基于Xilinx FPGA的LVDS高速串行通信系统(二)--数据对齐训练【文末源码】
章节合集:
基于Xilinx FPGA的LVDS高速串行通信系统 - 完整源码解决方案(一)
前面章节我们分享了LVDS原理、帧加载格式、数据编码,接下来分享的内容是数据对齐训练。
核心功能模块
1. LVDS接收端
物理层接收(lvds_rx_recv.v)
-
Xilinx SelectIO原语封装(ISERDES)
-
10:1串并转换
-
IDELAY输入延迟控制(0-31抽头)
-
异步FIFO跨时钟域缓冲
-
差分信号接收处理
训练同步模块(lvds_rx_training.v)
-
训练序列检测(K28.5同步字符)
-
IDELAY抽头扫描算法
-
Bitslip位边界对齐
-
状态机控制的训练流程
8b/10b解码器(lvds_receive.v)
-
10位到8位解码
-
控制字符识别(SOF/SYNC/EOF/TTC/ATC)
-
64位有效载荷数据提取
-
帧状态标志输出
2. LVDS发送端
8b/10b编码器(lvds_send.v)
-
8位数据到10位编码转换
-
运行差异(RD)跟踪
-
DC平衡维护
-
控制字符生成
-
帧格式组装
物理层发送(lvds_tx_top.v)
-
异步FIFO缓冲
-
训练序列生成
-
SelectIO并串转换(OSERDES)
-
LVDS差分输出
-
时钟输出生成
3. 系统集成(lvds_top.v / gsds_LVDS.v)
-
完整收发器整合
-
时钟管理
-
复位控制
01
—
数据对齐训练器设计原理
LVDS 通信的传输速率非常高,最高可达 3Gbps 的传输速率。因 此,无法忽略板上的布局走线的延迟及输出与信号的传输延迟,除了保证相应的传 输协议,还需要进行数据的校验。为了抑制外界因素带来的电磁串扰,常常选择差 分走线的方式来抑制噪。差分走线需要考虑等长,不同的走线长度会影响传输延迟, 其次点对点的端口连接传输线也会影响传输延迟。例如,时钟线和数据线是分开的 两对差分线,在主机端时钟与数据是对齐的,然而到从机端却无法保证数据和时钟 是对齐的,在主机端数据是在时钟的上升沿发生跳变,传输至从机端后时钟的上升 沿到来之后数据可能已经发生跳变或者还未发生跳变,从而导致数据解码时出错。
针对上述问题,本文设计了数据对齐训练器,通过对数据的延迟来保证数据和 时钟的对齐,从而克服传输延迟带来的误差。SelectIO 就是一种专业的 FPGA IO 资 源,可用于对引脚的输入数据进行延迟。SelectIO 的资源主要包括电气特性、IO 逻 辑、高级IO逻辑资源。其逻辑资源结构图如下图所示。

首先,每一个SelectIO 的引脚都可以作为输入、输出、三态门。其中 HR_BANK支持3.3 V的电平标准,而HP_BANK专用于高速信号设计,支持的电平 标准为1.8 V,需要专用的传输线阻抗匹配设计。其管脚除了单端信号还可以被分配 为LVDS差分信号。IO逻辑资源分别为IDELAYE2、ODELAYE2。IDELAYE2被叫 做输入延迟模块,其作用是将输入的信号进行延迟,对数据的对齐训练是至关重要 的。ODELAYE2 被叫做输出延迟模块,可以对输出数据进行延迟。输入延迟模块的原语框图如图所示。

IDELAY2 可以设置不同的延迟类型。当设置为固定模式(FIXED)时,延迟值固 定在由 IDELAY_VALUE 属性设置确定的节拍数上。当属性设置为可变模式 (VARIABLE)时,通过调整tap 值来确定延迟的时间。既可以通过设置CE = 1和 INC=1 来增加延迟,也可以通过设置CE = 1和INC=0来减少延迟。当属性设置为 可加载可变延迟(VAR_LOAD 或 VAR_LOAD_PIPE)时,可以更改可变的tap并动态 的加载延迟值。IDELAY_VALUE 的属性可以设定tap的初始值。tap的取值范围为 0 ~ 31 之间的任意整数,默认值为零。tap的延迟分辨率与输入时钟 C 有关,其延迟分辨率的表达式所示。

在本设计中,输入时钟为 200 MHz,那么对应的tap的分辨率为 78.125 ps,取 整后为78 ps。那么整个延迟的最大调节值为2500 ps。在本设计中,需要对输入延迟 进行动态的调节,因此选择的延迟模式为可加载可变延迟模式,其动态调节延迟的 时序逻辑图如图所示。

可以看出,在时刻 1时,时钟上升沿来临,此时LD为高电平,INC和 CE均为低电平,将输入的延迟值5’b01010传输给tap。当时刻2到来后由于INC和 CE均为高电平因此延迟值自动加1,tap3=tap2+1。在时刻3的时候。LD为高电平, INC和CE都为低电平,此时又将新的延迟设定值加载到tap10上为5’b01010。 通过前面的分析可以知道在输入时钟为200 MHz的情况下,IDELAY2的最大时 延为2500 ps。当LVDS线缆的长度为几十米的情况下,那么时钟和数据之间的延迟 可能会达到几十纳秒以上,此时仅靠 IDELAY2 无法完成时延的调节需要依靠 ISERDESE2完成调节。ISERDESE2是串并转换模块,将输入的串行数据转换为并行 数据。OSERDESE2 是并串转换模块,将输出的并行数据转换为串行数据。其原语 框图如图所示。

下一章讲具体训练逻辑。。。。
源码:
1、IP核版本:IP核版本
2、:所有源码
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)