基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证

基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证,第1张

摘要:针对LVDS接口,研究并实现了一种基于FPGA的LVDS过采样技术,重点对LVDS过采样技术中系统组成、ISERDESE2、时钟采样、数据恢复单元、时钟同步状态机等关键技术进行了描述,并基于Xilinx FPGA进行了验证,传输速率达到了1.25Gbps。文章的研究为基于FPGA实现系统之间的高速互连具有一定的工程参考价值。

0 引言

在数字系统互联设计中,高速串行传输方式正逐步替代并行传输方式成为主流。作为串行传输标准的一种,低电压差分信号传输(LVDS)接口具有高速率、低功耗、低噪声和低电磁干扰等优点,广泛应用于高速数字系统设计中。而在实际应用中,采用现场可编程门阵列(FPGA)实现高速LVDS是一种性价比较高的技术途径。

本文介绍了一种基于FPGA实现异步LVDS过采样的技术,重点对系统组成、ISERDESE2、时钟采样、数据恢复单元、时钟同步状态机等关键技术进行了描述,并基于Xilinx FPGA进行了验证,传输速率达到了1.25Gbps。

1 异步过采样系统组成

本文采用Xilinx公司的7系列FPGA作为核心器件,基于SelecTIO资源实现了1.25Gbps的4X异步LVDS过采样技术。系统中包括ISERDESE 2、OSERDESE2、IDELAYE2、IDELAYCTRL、MMCME2、数据恢复单元(DRU)和时钟对齐状态机等功能单元,如图1所示。

基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证,基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证,第2张

对于输入的1.25Gbps数据流,复制成两路进入ISERDESE2,实现4X采样。ISERDESE2/OSERDESE2负责完成输入数据的串并/并串转换。
MMCME2负责将外部输入的125MHz时钟倍频产生各种不同的时钟,提供给ISERDESE2/OSERDESE2、DRU、时钟对状态机等逻辑使用。其中,CLK和CLK90频率为625MHz,通过BUFIO提供给ISERDESE2/OSERDESE2使用,IntClk和IntClkDiv分别为625MHz和312.5MHz,通过BUFG提供给DRU、ISERDESE2/OSERDESE2并行端、内部FPGA控制等逻辑使用。ClkRef为310MHz,提供给IDELAYCTRL使用。
DRU负责完成ISERDESE2串行端数据和并行端数据之间的跨时钟域设计。时钟对齐状态机负责实现BUFG和BUFIO不同时钟域之间的相位对齐。

2 关键设计

2.1 ISERDESE2
相对于Virtex-5系列FPGA中的ISERDES和Virtex-6系列FPGA中的ISERDESE1相比,7系列FPGA中的ISERDESE2实现下述的不同功能:
(1)提供IDDR触发器功能;
(2)提供一种专用的串并转换器,该转换器有特殊的时钟和逻辑特征,用于高速源同步应用;
(3)支持存储器模式,可支持QDR、DDR3等不同的存储器接口;
(4)支持过采样模式。

在以前的设计中,过采样是通过FPGA内部的SLICE触发器实现的,而在7系列FPGA中,过采样是通过配置ISERDESE2实现的,如图2所示。

基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证,基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证,第3张

2.2 时钟采样
MMCME2产生两个时钟CLK和CLK90用于ISERDESE2,两个时钟的正沿和负沿均被使用,相当于四个时钟。对于输入数据流,通过IBUFDS DIFFOUT复制成两路,一路的相位没有变化,另外一路通过IDELAYE2相位偏移45°。相位偏移过的数据送入从ISERDESE2,实现了双倍的数据采样率。

通过组合四个时钟相位和两路数据,实现了八个时钟采样相位,如图3所示。

基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证,基于FPGA的LVDS过采样技术研究并用Xilinx评估板进行验证,第4张

如图3所示,通过IDELAYE2实现输入数据的相位变化,而IDELAYE2的变化是通过IDELAYCTRL控制的。CLK和CLK90工作频率为625MHz,0°、90°、180°和270°的时钟沿位置分别在0、400、800和1200ps。输入数据流频率为1.25Gbps,相位偏移45°时,数据必须延迟
200ps。IDELAYCTRL设计频率为310MHz,单拍延迟为52ps,为了实现200ps的延迟,需延迟4拍。因此,对于主ISERDESE2,IDELAY VALUE值设为0,对于从ISERDESE2,IDELAY VALUE值设为4。

2.3 DRU
用于ISERDESE2的CLK和CLK90均为局部时钟,只能工作在固定的I/O区域。ISERDESE2输出数据必须从局部时钟域(BUFIO)搬到全局时钟域(BUFG)中进行,需要进行跨时钟域(CDC) *** 作。

CDC *** 作在FPGA逻辑中以寄存器组形式实现。DRU中实现了CDC寄存器组和一些比较逻辑。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2610818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-10
下一篇 2022-08-10

发表评论

登录后才能评论

评论列表(0条)

保存