基于FPGA的LVDS高速差分板间接口应用
扫描二维码
随时随地手机看文章
随着ADC器件性能和DSP处理能力的提高,板间数据传输需要更高的带宽才能满足应用要求。以现在主流的工业CPCI总线为例,其传输带宽最高为4 Gbit/s,而采用FDPD以及最新FDPDII标准的工业总线,最大传输带宽也仅仅达到1.2 Gbit/s和3.2 Gbit/s,远远无法满足宽带接收机的传输接口带宽要求。因此,数字接收机内部的传输接口速率成为了有一个影响宽带数字接收机性能的瓶颈。
近年来出现的LVDS具有高速、低功率、抗干扰性能好的特点,非常适合于作为板间数据传输接口的标准。
本文基于图1实现了一种基于LVDS差分传输技术,采用DDR双倍数据率技术进一步提高了数据传输速率,使接口数据速率最高可达到18.4Gbit/s的板间传输接口,而总线宽度仅仅为23位。并且采用了速率可灵活调整的时钟产生电路,可实现200、400和800 MHz的DDR速率,完成了PCB布线及基于Xilinx Vertex2和Vertex4 FPGA的DDR收、发器综合设计。并成功应用在采用了55351—1259和54457-1258通用接插件的AD9218 ADC采集板与4处理器ADSP TS201数字信号处理板构成的通用信号处理系统上。
1 发送端与接收端系统设计
1.1 发送与接收系统框图
传输接口原理图如图2。
其中clkO和clkl80两路反相时钟由FPGA内部的DCM模块将板载时钟芯片产生的100 MHz时钟倍频产生,时钟可灵活配置为100、200和400 MHz从而满足不同速率ADC数据流量传输,关于DCM的配置方法下文有详细描述。
两个FIFO为FPGA内部的blockRAM软FIFO,是为了缓存来自ADC采集的数据。
传输控制逻辑是为了产生对FIFO、ODDR以及各个传输控制信号,其内部状态机状态转换图如图3。
data-tx为INCMOS2.5标准的单端控制信号,由该信号控制数据的传输与中止;ODDR模块的作用是将来自于两个FIFO的两路SDR单速率信号,转换为一路DDR信号。其内部原理下文有专门介绍。
DDR同步时钟clktx最高可由两级DCM倍频产生400MHz的数据传输始终,从而达到单路800 MHz的DDR数据速率。该时钟信号通过LVDS驱动器差分传输给接收端,作为接收同步时钟。
板间接插器一共分配了24路LVDS差分传输通道,其中一路分配给同步时钟clktx,剩下的23对均可作为数据传输用,因此可以达到800 MHz×23×1 bit=18.4 Gbit/s的接口速率。接收端原理图如图4。
接收端接收到由发送端传输来的DDR数据信号、DDR同步时钟clktx以及数据同步信号dma一tx。
传输端控制逻辑根据dma tx信号使能DDR接收器IDDR以及后端的FIFO。
DDR信号经过IDDR模块后生成两路普通数据信号D1out(9:0)和D2out(9:0),经过数据转换模块转换为32位浮点数,供给接收FIFO。
后端的四片ADSP TS201 DSP芯片通过SDRAM接口或者64位通用总线访问接收FIFO,提取AD采集的浮点数据,完成快速测频或者快速傅立叶变换等各种通用算法。
1.2 DDR信号产生电路:ODDR逻辑
DDR双倍数据传输模式相较于SDR(singledma rate)在不改变时钟信号前提下,可利用时钟的双沿(上升/下降沿)进行数据采集传输,从而获得接近于SDR两倍的数据传输率,所以DDR技术优势显而易见,既可以保持时钟信号不变及电路稳定性,又可较大幅度提高数据传输速率。
在发送端模块中,核心部分为ODDR模块,该模块的作用在于将两路SDR的数据率信号转换为DDR信号,分别在上升沿和下降沿进行传输。
ODDR模块由两个专用DDR寄存器和一个复用器组成,两个寄存器采用反相时钟输入,且复用器模块也由时钟驱动如图5(a)。
系统接收端通过IDDR模块将DDR信号分解为两路普通速率信号输出,由于在本应用中传输的DDR信号,上升沿为一路AD采集的信号,下降沿为另外一路AD采集的信号,把数据分为虚实两部,并且在后端DSP进行并行处理,需要两路SDR数据输出具有相同的相位,采取如图5(b)所示结构。
1.3 LVDS输出端口配置
Xilinx的Vertex系列FPGA均在IO端口集成了LVDS收发器。要采用LVDS差分标准传输信号,需要对FPGA的IO端口进行配置,从而使综合工具在FPGA布局布线流程中,将INDS驱动器结合到IO端口上。
在发送端,应在IO端口配置OBUFDS模块(图6)。
1.4 DCM时钟模块配置
本设计当中,传输端AD板与接收端DSP板上的FPGA外部时钟均为100 MHz,为了使用灵活可配置的接口工作速率,均采用DCM模块对时钟进行分频/倍频操作,可以将模块工作时钟在50~400 MHz进行灵活配置。
发送端采用Xilinx VertexlI XCl500 FPGA,速度等级为一5,DCM最高工作时钟为420 MHz,接收端采用Xinlin Vertex4 SX55 FPGA,速度等级为一11,DCM最高工作频率为450 MHz,经过验证,在400MHz下工作良好。
为了得到最高400 MHz的时钟频率,须采取级联DCM的方法,由第一级DCM产生50~200 MHz时钟信号,第二级DCM产生200~400 MHz时钟信号,BUFGCE为带使能端的全局时钟buffer,通过它选通200 MHz时钟才能使第二级DCM中的DLL成功锁定。
级联及反馈方式原理图如图8,均采用DCM-ADV实例。
第一级DCM例化参数如下,输入100 MHz,输出200 MH2,低速率模式:
值得注意的是,当传输模块配置在最高时钟频率下工作时,需要对整个模块进行比较细致的约束,才能使各模块之间的延迟不至于引起传输数据错误。其中最关键的约束在于时钟周期的全局约束以及对各个输入输出引脚的延时进行约束。限于篇幅,具体的约束方法不予赘述。
2 实现结果
以下为ChipScope 9在线逻辑分析仪软件捕捉的接收端波形。
Data为DDR输入信号;D1in、D2in为经过IDDR模块后从DDR信号中分离的两路SDR普通信号;Data tx为传输控制同步信号,该信号有效时,传输开始;Wr en为传输控制逻辑生成的FIFO写使能信号,因为Dlin、D2in信号须经过定点转浮点模块后再送到FIFO,所以FIFO写使能需要比D1in D2in延后一个周期图9用chipscope软件在400 MHz采样频率下截取,此时传输接口工作在200 MHz时钟频率下,单线传输速率400MBit/s,接口工作速率为9.2 Gbit/s。
系统硬件平台由AD采样板和DSP板组成,通过高速接口互联的平台如图10。
3 结语
本文在实现了一种高速的LVDS差分标准的板间数据接口,提出了具体的发送端与接收端系统框图并最终在Xilinx FPGA器件上进行了实现,在图10所示硬件平台上工作情况良好,该硬件平台的AD板为AD9218 105MSPS 10 bit采样芯片和XilinxVertexII FPGA构成,信号处理板为Xilinx Vertex4FPGA和4片ADSP TS201 DSP芯片构成。
当采用最高系统时钟400 MHz时,由于传输接口带宽高达18.4 Gbit/s,使得高速AD和信号处理机之间不再有数据传输瓶颈,因此对于数字接收机性能,如瞬时覆盖带宽、实时性的影响全部来自于AD转换器件性能和信号处理机的计算速度,从而解决了宽带数字接收机内部的数据传输问题。