文章目录

  • 概述
  • 系统结构
  • ISERDESE2模块
  • DRU相关
  • Bit Skip
    • 采样点右移

概述

问题:
A时钟域发出数据,B时钟与去采样,A与B是异步的,
如何保证采样的位置远离数据变化的位置?
下面文档推荐了一种过采样方法。
xapp523
假设前提:
输入数据是0.5 CLK0时钟周期变化1次。
FPGA内部可以产生4倍频率的时钟去采样,但是时序要求太高。
于是想到采用将时钟移相来采样。
CLK0 :移动0度。
CLK90 :移动90度。
CLK180:移动180度。
CLK270:移动270度。
数据采用延时来实现移相45度。
这样组合起来,将1个时钟周期分成了8份:
0,、45、90、135、180、225、270和315
为了稳定的采样到输入数据,先要知道数据的边沿落在哪个相位区间,
例如数据变化沿在0-45区间,那么采样的点在90、135是合适的。
例如数据变化沿在45-90区间,那么采样的点在0、135是合适的。
例如数据变化沿在90-135区间,那么采样的点在0、45是合适的。
例如数据变化沿在135-180区间,那么采样的点在45、90是合适的。
如果数据在传输过程变化区间不会变化,那么只要校准一次采样位置。
当数据的采样点需要变化,在变化过程中会产生采样点的切换,切换周围可能会丢失bit。这是难点。

系统结构

xilinx推荐用下图系统结构实现过采样。

ISERDESE2模块

下图是ISERDESE2模块的内部实现:

DRU相关

下图是数据流的采样点与比较点:


图中标记的解释:
Qx [M or S]x
Qx = the ISERDESE2 outputs Q1, Q2, Q3, or Q4
Mx or Sx =Qx的源是Mx还是Sx; the source ISERDESE2 (M = master, S = slave) of the data outputs (Qx)
其中
M :表示没延时45度。
Q1、Q2中的下标1、2是什么含义?—表示哪个时钟沿采样的。
CLK0 采样的数据下标是1;
CLK90 采样的数据下标是3;
CLK180采样的数据下标是2;
CLK270采样的数据下标是4;
M1、M2中的下标1、2是什么含义?
下标是时钟周期的序号。相同下标表示是同一个周期内的数据。
例如:Q1M1
在CLK0采样Master(没延时45度)的数据输出。

目的是找到数据的变化沿的范围。
E4[0:3]
手册上看的有点迷茫,下图可能会更加清晰一点。


在这一点上,应该很清楚数据是如何进入FPGA,然后馈送到DRU的用于边缘检测。DRU的下一步是处理比较数据。这很简单状态机,基于数据边缘所在的位置及其移动到的位置,然后选择远离数据边缘的采样点。

Bit Skip

采样点右移:原先采样点左侧一个时隙有跳变了。
采样点左移:原先采样点右侧一个时隙有跳变了。

采样点右移

例子1:
当原先是90度采样,原先数据变化在E4[0],加入现在数据变化在E4[1],那么再用90度采样不合适了,得用135度或者0度采样,暂时定为135度来分析,因为0度移动了2个位置,不方便分析。
例子2:
状态机原先是10状态采样135,,Q3 \Q7有效,当E4[2]==1,状态变化到00,转换成0度Q0、Q4有效。
在检测到原先采样点左侧时隙存在跳变时,此时状态机还在10,没跳,00,数据已经采样了,数据可能存在无效。当到达下一状态00的第一拍,这个bit 是10采样的,需要丢弃。这称为负位跳过。负位跳过每个时钟输出五位。

参考
https://blog.csdn.net/haoxingheng/article/details/50320145
https://blog.csdn.net/leixj025/article/details/109810241
https://blog.csdn.net/qq_41332806/article/details/109863482

FPGA使用ISERDES2过采样相关推荐

  1. 基于FPGA的FOC电流采样Bug调试记录

    #基于FPGA的FOC电流采样Bug调试记录 博主在调试FOC闭环控制中遇到了一个bug,冥思苦想两三天,最终一步步地调试时序,最终找到了bug,在调试过程中学会了debug的思想,也明白了调试过程中 ...

  2. 7系列FPGA数据手册:概述------中文翻译版

    7系列FPGA数据手册:概述------中文翻译版 总体介绍 7系列FPGA功能摘要 Spartan-7系列FPGA功能摘要 Artix-7系列FPGA功能摘要 Kintex-7系列FPGA功能摘要 ...

  3. 芯片工程师成长之路_一个FPGA工程师的成长之路

    最近逻辑组任务较多,人力不足,因此招了一些新员工.最近一段时间,也面试了很多人,各个行业和公司的都有,形形色色的人面试多了,也有一些感触,另外,年近而立,也需要总结一下.在此记录下来,与君共勉. 关于 ...

  4. 基于OMPAL138+FPGA的三相电能质量分析仪设计

    随着我国经济的快速发展,电力资源已经成为人民生活.社会生产的重要能源.由于各种各样的用电设备日益增多,使得实际电网中存在很多不平衡和非线性的冲击性负载,导致电网出现供电电压偏差.频率偏差.谐波.间谐波 ...

  5. DTMF双音频信令检测,基于Goertzel(戈泽尔算法),FPGA实现

    目录 1.引言 2.细节介绍 3.DTMF双音频信号的产生 4.DTMF双音频信号的检测 4.1(Goertzel)戈泽尔算法的使用 4.2戈泽尔算法的详细计算过程 4.3计算的优化 4.3.1时间复 ...

  6. 千兆网RGMII接口FPGA实现(基于RTL8211)

    RTL8211开发板上的常客,这次加一个RGMII版本的实现,在Altera的片子主要用到了ddio这个IP(你说是原语也可以),如果在Xilinx的片子上可以用相对应的IDDR和ODDR,反正就是F ...

  7. 从芯片到AI智能芯片,一文了解它的前世今生

    作者 | 元宵大师,Python高级工程师,致力于推动人工智能.大数据分析在金融量化交易领域中的应用.欢迎大家关注我的个人公众号<元宵大师带你用Python量化交易>. 责编 | 胡巍巍 ...

  8. 简述ospf的工作原理_现代数字存储示波器的工作原理简述

    示波器是一种用途十分广泛的电子测量仪器.俗话说,电是看不见摸不着的.但是示波器可以帮我们"看见"电信号,便于人们研究各种电现象的变化过程.所以示波器的核心功能,就和他的名字一样,是 ...

  9. OFDM子载波频率 知乎_通过基于SDR的信号处理实现的低复杂度便携式无源无人机监控...

    摘要: 本文概述了被动无人机的检测.开发了基于SDR的便携式通用软件无线电外围设备(USRP)原型,用于在两种情况下进行检测.在无人机与地面控制器通信的情况下,采用无人机信号的循环平稳性特征和伪多普勒 ...

  10. 中国如何在 AI 芯片实现弯道超车?

    作者 | 元宵大师 责编 | 胡巍巍 出品 | CSDN(ID:CSDNnews) 经过长期的发展和探索,在近几年人工智能不断取得突破性的进展,无论是人脸识别.语音识别.机器翻译.视频监控,还是交通规 ...

最新文章

  1. 对文件中的行,单词和字符进行迭代
  2. 积木式开发中Session的处理问题
  3. JPA(二):HellWord工程
  4. 9个元素换6次达到排序序列_程序员必须掌握的:10大排序算法梳理已整理好
  5. 深度系统安装移动硬盘启动_深度系统如何安装_电脑知识
  6. Python: 函数参数传递机制
  7. 通用的linux下安装配置svn独立服务
  8. opencart china 书籍主题
  9. gdal 使用 无法解析的外部_【小马哥学习笔记】STM32G071 PD0 PD2引脚使用注意事项...
  10. git使用笔记(二)分支与合并
  11. ROS--基于机器人操作系统设计与实现
  12. 现实的复杂性与系统的复杂性
  13. word字间距怎么调整成一样的【word教程】
  14. linux系统截图有快捷键吗,Linux下用快捷键截图
  15. flv转换mp4最简单方法
  16. iPhone手机总是弹出输入ID密码怎么办?
  17. Python批量查单词源码
  18. 畜牧兽医职称需要考英语和计算机,畜牧兽医专业技术职称考试试题
  19. 《金融时报》:技术的“可为”与“不可为”
  20. 一些学习经验总结和分享

热门文章

  1. 【知识分享】汽车搭载的车载摄像头分类
  2. java blazeds,java web开发学习-8 BlazeDS
  3. javascript将页面设为首页代码大全
  4. w ndows7旗舰版网卡驱动,Ghost windows7 64位系统旗舰版网卡驱动工具推荐下载
  5. 各大网站的wap站页面
  6. 中国各省份矢量地图-可编辑
  7. C语言大作业:车辆信息管理系统
  8. Android的六大布局详解
  9. Photoshop插件--删除暗调通道--脚本开发--PS插件
  10. 电工学的MATLAB实践,基于Matlab/Simulink的电工学电路仿真