访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
使用Stratix GX系列器件实现高速数据总线的DPA功能
内容导读:

使用Stratix GX系列器件实现高速数据总线的DPA功能
Using Stratix GX Series Device to Realize DPA Function in High Speed Data Bus Line


Altera公司供稿
摘 要:对于单根高速数据信号线实现DPA功能并不难,但是对于高速数据总线而言实现DPA功能就需要考虑各信号线间的相位关系,本文档以SPI4.2接口为例阐述高速数据总线实现DPA功能的原理及方法。并对设计中的宽容度进行计算分析。供读者参考。
关键词: Stratix GX;Stratix II;DPA;SPI4-P2
缩略语清单:
Stratix GX : Altera 公司FPGA,具有DPA功能,同样具有DPA功能的FPGA还有Altera公司的Stratix II系列器件。
DPA : 动态相位调整。
SPI4-P2: System Physical Interface Level 4 Phase 2,OIF(the Optical Internetworking Forum)制定的工作
在OC192的、物理层或链路层间或两个对等体间的系统物理接口。
TCCS: Channel-to-channel skew 数据通道的抖动,包含时钟的抖动。
RSKM: Receiver skew margin。
---随着各方面的技术的进步,各种芯片接口的速率逐步提高,以通信类芯片为例,通信类芯片接口速率由数年前的100Mb/s、155Mb/s 提高到622Mb/s,又从622Mb/s提高到2.5Gb/s,现在又从2.5Gb/s提高到10Gb/s……。芯片接口需求的提高迫使新的芯片接口协议出现。从芯片设计角度来讲,芯片提高接口的速率有两个方法,第一种方法,大量的增加芯片的管脚数目来提高接口速率,优点是实现难度小,与低速接口设计类似,缺点是资源消耗非常大;第二种方法,提高接口信号线的速率来提高接口速率,优点是资源消耗低,缺点是实现难度较高。
以10Gb/s类接口为例,对于第一种方法代表性的接口是VIX V3接口,使用约300根管脚实现10Gb/s速率的数据传输;对于第二种方法,代表性的接口是SPI4.2接口,使用约80根管脚实现10Gb/s速率的数据传输。对于大多数用户,为了简化芯片及PCB设计及降低成本而使用第二种方法。
对于第二种设计高速接口的方法,每根数据线信号速率一般在500Mb/s~1Gb/s之间,这样的话,这些高速信号的采样窗口就变的很难选择,高速数据信号线与参考时钟间对应相位关系,高速数据信号间的对应相位关系就非常重要了,稍有相位偏差就会导致数据采样错误,有时高速数据信号间的对应相位稍微大一点就会导致无法选择有效的采样窗口同时采样这些高速信号。
我们看一个例子(见图1)。首先,对于采样窗口(sampling window),当数据采样位于采样窗口内时,数据才可以被正确采样。
如果同时存在两组或两组以上的高速信号(见图2),当△t=t1-t2 大于采样窗口时,两个LVDS 高速信号通道无法同时获得正确的采样窗口。Altera 意识到很多设计者在设计高速数据传输系统时所面临的问题,将动态相位调整(DPA)功能集成到了Stratix GX、Stratix II 系列器件中。
DPA实现原理如图3所示。对于一路高速数据,在Stratix GX(或Stratix II)中根据参考时钟由Fast PLL产生8个不同相位的时钟ClockA~D'',这8个不同相位的时钟分别对数据进行采样,根据采样结果选择一个最佳的时钟作为本高速通道数据采样参考时钟。
在Stratix GX、Stratix II器件中集成的这项功能极大地简化了PCB的设计难度,消除了因偏移引起的相位对齐的问题。DPA 解决了高速接口信号面临的最关键的数据采样问题。DPA消除了导致最初产品发布推迟的潜在时序问题。设计者使用DPA可以更多地关注实现和优化而非复杂的板级设计问题。
DPA实现电路如图4所示。当使用Stratix GX、Stratix II器件,并使用DPA功能时,单根高速数据信号线的实现是非常简单的,而对于高速数据总线而言,除使用DPA功能外还需要考虑各信号线间的相位关系。无论多精密的PCB的布局布线也不能保证所有的高速信号线间相位完全一致,更何况高速信号线经常作为板级互连使用,需要经过数个接插件或者电缆。 因高速信号线间的延时不同,相位的差异使得数据采样窗口不同,在使用DPA功能时使用的采样时钟也不完全相同。综合这些因数,一组高速信号的接收端在将高速串行数据转为并行数据后,这些并行数据间最终会有数位相差(见图5)。
对于C1 C2 C3,同时输入00000000001111111111 的数据,因t1t2t3互不相同,当使用DPA来采样数据时,对应的采样时钟也不相同,几种延时加起来,这些延时累积就会造成数据通道间的数据位差,在高速通道的接收端就看到C2比C1提前一位,C3比C1延后一位,C2与C3间相差2位的数据。
C1 C2 C3的情况就属于我们常说的高速通道间的不同步现象,为了使得高速接口的各高速通道同步,我们常用一些同步协议来训练这些高速接口,保证这些高速接口的各通道间数据同步。在同步协议中使用一些有特殊意义的字符来作为标志位,对齐各通道,这些字符我们称为同步字,如在以802.3协议为标准的接口同步字是K28.5,在SPI4接口中同步字为“00000000001111111111”,不同的接口标准有不同的同步字。
高速接口的每个通道传送的都是串行数据,这些串行数据在用户逻辑侧转为并行数据后与原始数据的数据位对应关系并不固定,在接收侧,这些数据对应原始数据左移或右移了几位,这与高速通道的连接有关,每次复位芯片,每次插拔高速接口所在的单板或插件,这种对应关系都会发生变化,我们知道每次进行数据同步时都是对应一个未知的数据移位关系。
要进行高速接口通道间数据同步,我们必须确认各通道与原始数据的数据移位关系,然后才能进行相应的数据移位,将各通道数据进行对齐。首先我们将收到的数据与同步字进行比较,得出相应的数据移位关系,以SPI4接口同步字为例(见图6),对于SPI4接口同步字为00000000001111111111,将LVDS的接收端并行接口配置为10位宽,得到9种数据移位情况,需要注意的是Pa=9位与Pb=1位仅相差2位。
因接收的数据与原始数据相比的数据移位,在每次启动时都是一个随机值。当数据移位集中在Pa=9、Pb=0、Pc=1时,这些位置是不能把Pa作为对齐数据通道时使用的移位因子进行数据移位的。因为,在Pa=9这种情况下,接收数据的移位应当为-1而不是9。对于这种情况,我们必须把各通道得到的P值进行变换,使得P值远离0和9,则可得到P的中间值为4。变换方法是将各通道得到的P值同时进行十进制下加‘1’操作取个位数,当个位数中间值为4时停止加法操作。这时得到的P值就可以直接作为通道间对齐的数据移位因子使用。例如,刚才Pa=9、Pb=0、Pc=1时,变换后Pa=3、Pb=4、Pc=5。
对于SPI4接口的各高速数据通道(共17个)经DPA后进行通道间数据对齐的逻辑结构如图7所示。
Check_P模块检测LVDS信号数据移位情况(给出P值),sync_counter模块对17个LVDS通道的P值进行计算,得出需要移位的数值,将该数值传给data_shift模块完成数据移位。我们来看一下这种基于SPI4.2接口使用DPA的高速数据接口数据采样的宽容度。这里我们假设SPI4.2接口运行在800Mb/s的情况。对于800Mb/s的数据信号,其采样窗口一般在几百皮秒之间。
基于DPA的工作原理,无论各LVDS通道与参考时钟的相位关系如何变化,总能得到正确的采样窗口,LVDS通道和参考时钟间的相位关系可以忽略。这样,宽容度的计算主要基于LVDS各通道间所能容忍的最大延时差(或相位差)。
对于前面的例子,我们采用比较10位数据得到9种数据移位的情况:在数据移位时,我们取基准点为中间值4,数据偏差范围为0~9。最好情况下,基准点正好在中间位置,这时SPI4.2接口能够容忍0~9位的数据延时。在800Mb/s下每位的延时为1.25ns(或360°相位差),则最好情况下能够容忍11.25ns(1.25×9)的延时差。最坏情况下,基准点正好为最大移位情况,这时SPI4.2接口能够容忍0~4位的数据延时。则最坏情况下能够容忍5ns(1.25×4)的延时差。
对于一般情况来说,同一组总线内,两根高速数据线间相差5ns已经是比较极端的情况了。如果因特殊原因,5ns的延时差依然不能满足的话,可采用增加数据移位数目的方法来解决。同样的计算方法,如果使用比较20位数据得到19种数据移位的情况,最好情况下能容忍23.75ns的延时差,最坏情况下能够容忍11.25ns的延时差。

参考文献
1 Stratix GX handbook (link: http://www.altera.com.cn/literature/lit-sgx.jsp)
2 Stratix II handbook (link: http://www.altera.com.cn/literature/lit-stx2.jsp)

 
标签:
来源:今日电子 作者: 时间:2002/1/1 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐