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)。