基于FPGA的高速DMUX设计
扫描二维码
随时随地手机看文章
关键词:数据分路器;信号完整性;模数转换器;现场可编程门阵列
l 引言
随着信号速率和带宽的提高,信号采集的速率也相应地不断提高。如今模数转换器的速率已经达到1 GS/s。甚至2 GS/s。高速模数转换器输出数据流速率为赫兹千兆比特,会增加后端存储器和数据处理器件的设计难度,因此降速分流成为解决这一问题的必要方法。
2 降速分流的方法
降速分流通常有两种实现方案:一是使用DMUX专用集成器件,另一种是在FPGA上实现DMUX。
一般地说,这两种方式都能很好地实现降速分流,在性能上并无优劣之分。但是从整个系统考虑,第二种方式相对优于第一种方式,原因如下:
(1)由于工艺方面的限制,DMUX专用集成器件工作模式比较单一,且不能改变。通常DMUX专用集成器件如TS81102(Atmel公司)可以实现1:8模式(将数据速率降为原先的1/8,并给出8路输出)或者1:4模式(将速率降为原先的1/4,并给出4路输出)。
(2)DMUX专用集成器件输出的数据速率越低,其输出占用的数据线就越多,而要减少数据线,其数据速率又会相应提高,因此无论其采用何种工作模式,PCB设计难度都很大。
(3)DMUX专用集成器件功耗大(平均要高于5W),要使其正常工作,电源供电和散热问题会增加设计成本和设计难度。
(4)DMUX专用集成器件属于特殊芯片,不容易购买。
因此选用另一种方式来代替DMUX专用集成器件显得很必要。
基于Altera公司FPGA就可以实现DMUX的功能。其最大的优势在于存储模块和数据处理模块可以同时在FPGA中实现,相比较DMUX专用集成器件+FPGA这样的设计系统来说,结构上简化很多,而信号完整性却在很大程度上得到提高。
下面就以1:8工作模式为例,对两种方式的设计方案进行比较。
图l所示是采用DMUX专用集成器件的设计方案。模拟信号经过高速ADC转换后,输出高速率的8位数据和l位时钟Clkl,这些信号经过DMUX分流后再形成8路64位的数据和l位时钟Clk2(此时钟降为原先的1/8)。随后FPGA用Clk2来采样这些64位数据,再在控制信号的控制下处理这些数据。
利用FPGA实现DMUX后,就可以将DMUX和FPGA整合到一起,如图2所示。
与图1相比,图2在PCB设计上省略了DMUX和FPGA之间的64位数据线和1位时钟线,而这些数据线和时钟线通常会高于100 MHz,所以对PCB布线任何考虑不周都会造成信号完整性的严重下降。在图2中,DMUX在FPGA内直接实现,这可以在很大程度上提高设计的成功率,关键就是看FP-GA能不能接收ADC的8位高速数据和1位高速时钟。而实际上FPGA确实可以做到,下面就对其实现的各个方面分别加以介绍。
3 基于FPGA的DMUX实现的关键
3.1 器件的选择
要在FPGA中实现DMUX,FPGA必须具备两个条件:一是多个高速差分接收端口;二是FastDPLL(快速数字锁相环)。许多FPGA都能满足此要求,如Xilinx的Virtex4、Virtex Pro系列,Altera的Stratix系列(Stratix GX、StratixⅡ和Stratix)。它们在应用上各有特色,下面仅以Altera的Stratix系列为例来说明实现方式。
3.2 引脚的配置
要接收ADC的高速数据和时钟输出,必须将这些信号引脚配置到高速差分接收引脚上。但并不是所有的差分引脚都能作为高速差分接收引脚。数据接收引脚一般定义为DIFFIO_RX_P、DIF-FIO_RX_N,时钟接收引脚一般定义为CLK_DIF-FIO_RX__P、CLK_DIFFIO_RX_N。
在引脚的设置位置上也有一定的要求,如Stratix GX器件只可以在BANKl、2的差分引脚上实现;Stratix Ⅱ器件只可以在BANK3、4、7、8的差分引脚上实现;而Stratix器件可以在BANKl、2、5、6的差分引脚上实现。如果接收ADC信号的引脚不是配置在这些引脚上,那么就不能在FPGA内实现DMUX来接收这些高速信号。
对于时钟引脚,也要配置在这些BANK的专用时钟引脚上。如果有多个这样的时钟引脚可供选择,则应当选择那些Cload(负载电容)更小的引脚,这对于提高数据的接收速率很有帮助。
3.3 软件设置
3.3.1 FPGA片上阻抗的实现
接收模数转换器输出的高速差分线一般都需要终端阻抗匹配,如果这些终端匹配电阻都依靠片外电阻实现,就会增加PCB布局布线的难度和降低接收的信号完整性。FPGA的差分接收端口一般都带有差分片上阻抗匹配,如图3所示。
阻抗(RD)在100 Ω~170 Ω之间,其典型值为135 Ω,接近于差分线的差分阻抗。依靠这些片上匹配电阻,则不需要再外接电阻,并且会达到比外接电阻更好的效果。
软件方面只需设置终端阻抗为Differential。
3.3.2 FPGA高速差分接收模块的实现
在FPGA上主要是通过调用altlvds模块来接收ADC输出的高速差分数字信号,如图4所示。
altlvds模块内集成有Fast DPLL,通过它可以以45°为一级精确地调整输入时钟沿与数据之间的关系,从而保证建立和保持时间能够满足要求。
altlvds模块还利用输入时钟对输入数据进行双沿采集,将其转换为并行的多路数据。
其输入数据的通道数和分路比也可以通过软件灵活设置。设置的接收数据通道数最多为44通道(受限于FPGA的高速差分接收引脚数),最多可设置的分路比为1:10模式。
此外,此模块上可以设置接收的最高数据速率为840 Mb/s,最高接收时钟为420 MHz。
3.4 软件仿真
在Quartus Ⅱ中进行DMUX后的仿真结果如图5所示,输入数据(idata)为800 MHz,输入时钟(in-clk)为400 MHz。从仿真波形上可以看到,虽然输出的数据不是对得很准,但是输出的时钟(kaniclkp)可以保证能够完整地接收数据。
将输入数据(idata)改为l 000 MHz,输入时钟(inclk)改为500 MHz,其仿真结果仍然不错。
3.5 PCB设计
要使FPGA能够很好地接收模数转换器的输出信号,首先应该保证它们之间布线的差分阻抗满足要求。另外每对差分线要紧邻并且近似等长。
此外要尽量将FPGA的高速差分接收引脚配置在FPGA的外围,以保证模数转换器和FPGA的连线上尽量没有过孔。
PCB板材的选择也很重要,要尽量保证它们之间的布线都布置在最外层,并且布线板层要尽量选介质常数小的材料。
为了模块中的内部锁相环能够正常工作,还应该将内部锁相环的供电电源与外部数字电源隔开。图6中示出了一种电路连接方式,通过大电感将两种电源隔开,再通过多个电容并联滤波,以保证供给内部锁相环电源的稳定性。
4 结束语
经过实际测试,利用FPGA替代DMUX专用集成器件来接收模数转换器输出的信号,其接收的数据速率已经超过1 Gb/s,高于器件资料上给定的840 Mb/s的最高速率,完全达到设计要求。