动态相位调整技术在动态相位调整技术在FPGA中的设计与实现中的设计与实现
提出一种基于FPGA的动态相位调整实现方案。在高速数据传输接口中,由于数据窗缩小以及传输路径不一致,
造成数据和时钟信号在FPGA的接收端发生位偏移和字偏移。动态相位调整技术根据当前各数据线物理状态,对
各信号线动态进行去偏移操作,克服了静态相位调整中参数不可再调的缺点,使接口不断适应外部环境的变
化,从而保证数据的可靠传输。
随着单线传输速率不断接近于1 Gb/s,使每位所占的时间窗不断减小,导致采样时钟对信号线的采样点很难在其有效区间进行
准确采样;再加上传输路径的不同,各数据线和采样时钟到达接收端的延迟时间不能保证完全一致,从而带来了各信号线之间
的位偏移(Bit Skew)和字偏移(Word Skew)[1],如图1所示。位偏移为采样时钟沿不在各数据窗口的中心位置采样,可能会导
致数据采样保持时间不够长,易使bit位发生瞬间突变,从而导致接收的数据不稳定;字偏移是指采样接收后的各数据信号之
间不同步,使得同时在发送端发送的数据在接收端却不能同一时刻被采样,导致接收的数据无效。
静态相位调整SPA(Static Phase Alignment)通过匹配时钟线和数据线的长度[2],使各信号在其传输线上延时相等。SPA过
程将耗费大量劳动和时间,而且其设定的参数静态只针对板卡当前的物理状态,不能适应外部环境的变化。采用动态相位调整
DPA(Dynamic Phase Alignment)技术[3],则根据当前各信号线物理状态,每次系统上电后,自动对各信号线进行去偏移操
作,从而使相位调整的参数适合当前物理状态,保证了相位调整的时效性。所以,DPA技术能够使通信接口不断适应外部环
境的变化,避免由于相位偏移而导致的数据采样错误,从而保证了数据的可靠传输。
1 DPA在FPGA上实现
为保证接送端可靠并有效接收数据,用于去偏移的DPA设计方案必须具有消除位偏移和字偏移的功能。在DPA过程中,发送
端不停地发送训练序列,而接收端首先对承载各数据的传输线进行位校正,利用PFGA内部的IDELAY功能,对各个数据线进
行不同程度的精确线延迟操作,使数据窗的中心位置都正对着采样时钟的边沿;在完成位调整的基础上,接收端以bit为基本
单位,利用BITSLIP功能分别调整各数据线解串后的并行数据,使并行输出数据都调整到预先设定的同步字模式,从而实现各
数据通道接收数据同步。在SPI4-4.2接口中[4],其训练序列定为“00000000001111111111”,其同步字为“0011”。
1.1 ISERDES核介绍
在接口设计中采用了Xilinx 公司的Xc4vlx160 FPGA[5],在FPGA间的收发双方利用16个外部差分管脚进行器件间高速传输。
每个输出管脚都在FPGA内部对应一个并串转换(OSERDES)核,该核内有倍频电路以及并串转换功能,将内部的并行数据串
化后送到发送端的外部输出管脚。
接收端的每个输入管脚在FPGA内部都对应一个串并转换核(ISERDES),在其内部分别嵌入IDELAY线延迟核和BITSLIP位偏
移核,如图2所示。IDELAY线延迟核将串行输入数据在其内部进行精确延迟,提供可调的64级抽头线延迟功能,对应的最大
延迟时间为5 ns,则Bit alignment提供的最小延迟颗粒度为78.125 ps,其初始化值设为零延迟。IDELAY线延迟核提供dlyce和
dlyinc两个输入控制信号。当dlyce输入为高电平时,表明IDELAY处于工作状态,此时dlyinc每置一周期的高电平,信号线的延
迟就增加一级;而dlyinc每置一周期的低电平,信号线的延迟就减少一级。
BITSLIP字偏移核内部提供串并转换和位调整功能,每个并串转换器的最大并行输出宽度为6,若需要更宽的并行数据输出,
可以以主从模式将两个相邻的ISERDES连接在一起,最大提供10位的并行输出。BITSLIP的位调整功能将并行输出数据存储
并对数据进行移位,提供bitslp输入控制信号,通过控制bitslip信号,对输出数据进行左移或右移,最终使并行输出数据的排序
满足本DPA方案中设定的同步字格式。
1.2 DPA设计方案
由于FPGA之间数据总线宽度为16 bit位,当FPGA的内部总线宽度为64 bit位时,从管脚输入的串行数据将被转换成4 bit位宽
的内部并行格式。在DPA训练过程中,发送端分5个周期发送训练序列“0000_0000_0011_1111_1111”,以5个周期为一次循
环,如此反复。定义“0011”为同步字,作为各数据线解串后需匹配的固定数据格式。
在接收端的DPA包括位校正(Bit alignment)和字校正(Word alignment)2个模块,如图3所示,并以5个周期作为基本时间
单位进行去偏移操作。Bit alignment模块通过控制Idelay硬核的dlyce和dlyinc两输入信号,对每个数据线都进行精确的线延
迟,使采样时钟沿正好位于各自信号数据窗的中心位置。各个数据通道的Bit alignment调整完成以后,分别给其Word
alignment模块发送ready信号,然后Word alignment模块通过Bitslip字偏移核进行字调整,使各信号线的并行输出数据中出现
同步字匹配,即“0011”,表明采样后的数据分别为“0000”、“0000”、“0011”、“1111”和“1111”,从而接收端的各信号线的并行
输出都保持同步,此时即可认为接收端已完成DPA功能,两FPGA之间可以发送有效数据。
当其支持内128 bit位宽格式时,输入的串行数据被转换为8 bit位宽的内部并行格式,训练序列
为“00000000_00000000_00001111_11111111_11111111”,同步字定为“00001111”, 其DPA的具体实现过程不再详述。
2 DPA内部功能模块
2.1 Bit alignment位校正模块
Bit alignment校正模块的主要功能是对输入的串行流进行精确的线延迟,最终使采样时钟沿置于被采数据窗的中心位置。由于
各数据流经过不同的传输路径后所产生的线延迟不可知,只知周期性的训练序列被采样输出5个4位并行数据,其集合