在FPGA中,动态相位调解(DPA)主要实现LVDS接口吸收时对时钟和数据通道的相位赔偿,以抵达准确吸收的目的。在LVDS输入吸收时,随着单线传输速率一直靠近于1 Gb/s,使每位所占的时间窗一直减小,导致采样时钟对信号线的采样点很难在其有用区间举行准确采样;再加上传输路径的差别,各数据线和采样时钟抵达吸收端的延迟时间不可包管完全一致,从而带来了各信号线之间的位偏移(Bit Skew)和字偏移(Word Skew),如下图所示。
位偏移为采样时钟沿不在各数据窗口的中心位置采样,可能会导致数据采样坚持时间不敷长,易使bit位爆发瞬间突变,从而导致吸收的数据不稳固;字偏移是指采样吸收后的各数据信号之间差别步,使得同时在发送端发送的数据在吸收端却不可统一时刻被采样,导致吸收的数据无效。因此我们可能需要将时钟的相位做出调解,使得时钟能稳固的收罗到输入的数据。事情的焦点就是锁相环PLL的相位调解功效,爆发时钟的差别相位,接着看哪些相位能准确地收罗到输入数据,然后取窗口中心的一个时钟相位,作为正常事情时的采样时钟。这样接口上具有最大的时序裕量,从而包管链路的可靠性。
pg电子的PLL IP支持动态相位调解功效。在IP Creator中例化PLL的IP时,翻开动态相位调解功效,即可开启PLL输出时钟的相位动态调解。
IP例化示例图
在勾选了动态相位之后,IP会开启动态相位调解对应的信号接口。其中PHASESEL[1:0]可选择做动态相位调解的输出端口,“00”选择CLKOP通道,“01”选择CLKOS通道,“10”选择CLKOS2通道,“11”选择CLKOS3通道;PHASEDIR选择相位调解偏向,“1”体现相位做正向调解,“0”体现相位做负向调解;PHASESTEP为动态相位调解的触发信号,每一个脉冲实现一次相位调解。
动态相位调解的实现代码如下所示,通过按键切换动态相位调解的偏向
使用按键触发天生动态调解的脉冲信号,每一次按键,完成一次相位调解
下图程序中,CH_SEL为相位调解的时钟通道选择,例程中设置为“01”,即实现动态相位调解的通道为CLKOS
在测试中,选择将CLKOP通道输出的时钟作为参考信号,与CLKOS信号做比照。划分选择了0次相位调解、18次相位调解、36次相位调解和54次相位调解,其测试效果如下图所示。实测60调解实现相位360°偏移。
图1 初始相位
图2 18次相位调解
图3 36次相位调解
图4 54次相位调解
若有客户朋侪需要获取源码,请联系pg电子的市场销售职员。