多路高速互连信息处理系统及其FPGA实现*

2020-11-16 04:33
关键词:收发器串口端口

郭 静

(1.重庆工商大学 人工智能学院,重庆 400067;2.检测控制集成系统重庆市工程实验室,重庆 400067)

0 引 言

国防、军工等领域的数据量爆炸式增长使得对信号处理系统的运算处理速度、数据带宽、传输速率和通道数量等方面的要求愈来愈高。随着硬件设计工艺的发展以及为了满足各行业对高速数据传输的应用需求,各大品牌主流FPGA 产品都在芯片中集成了多路高速串行收发器[1],这种高速串行收发器可以用于实现串行Rapid IO(SRIO)、PCIe以及以太网等标准的高速串行总线,也可以用于实现简单的自定义传输协议,具有很大的应用灵活性[2]。本文使用Xilinx公司的FPGA及其集成的高速串行收发器设计了一种多路高速互连信息处理系统。该系统采用VPX标准和SRIO交换技术,提供多路高速FPGA GHT(Gigabit Transceiver)高速收发器信号以及多路千兆网络接口实现模块板内外的高速数据交互,具有处理能力强、数据吞吐量大的特点,获得了良好的实践效果。该系统可广泛应用于雷达、通信、电子对抗、声呐等领域。

1 多路高速互连信息处理系统设计

基于VPX的多路高速互连处理系统的核心组件,采用3片Xilinx公司Virtex-7 FPGA 690T芯片用于接口连接与信号处理,1片飞思卡尔T2080高性能PPC(Power Architecture PC)处理器用于系统控制及数据处理,同时使用1片第二代SRIO交换芯片CPS1432,用于板内外高速互连,通过VPX接口与系统组成数据传输网络,以实现数据传输和处理的高效结合。其中FPGA芯片功能强大,资源丰富,在本设计中实现的主要功能是板间10 Gbps高速GTH信号通信。PPC配置了1通道DDR3 SDRM,大大提高了处理性能,还设计了1路4x SRIO到CPS1432芯片交换,速度可达到5 Gbps,从而也提高板内各芯片之间的通信能力[3]。系统还设计了3路千兆网络接口用于测试和数据传输,其中1路 1000 Base-T 到前面板,2路1000 Base-X到VPX接口。系统的各个主芯片均连接4 GB的DDR3, 扩展了板载内存,各个主芯片还连接了128 MB的Nor Flash,用于数据处理和重要信息存储,极大地扩展了系统的存储器容量以满足不同的应用需求[4]。系统背板采用6U尺寸的VPX20连接器,系统前面板使用J63-31连接器,主要用于FPGA_JTAG调试以及min串口与网络支持PPC调试,前面板还设计了8个LED指示灯,用于反应系统工作状态。在板上控制器(OBC)方面,系统采用Xilinx公司XC3S1400AN芯片来管控整板工作状态以及做3片FPGA的主机端加载。整个系统互连原理框图如图1 所示。

2 FPGA设计

Virtex-7系列FPGA作为业内高端高性能FPGA产品,在逻辑规模、串行I/O带宽、抖动性、收发器、DSP性能和低功耗等方面表现突出[5],可以减少整个嵌入式系统内器件使用的总数量,从而降低系统成本以及互连和设计方面的复杂度,在高速网络设备中得到了越来越广泛的应用[6]。Xilinx公司的Virtex-7FFGA690T芯片提供3 600个DSPSlices、690 k逻辑单元、600个IO口。该芯片拥有80个GTH通道,其中每个GTH通道有一个GTH(TX)发送模块和一个GTH(RX)接收模块,收发最大速率可达13.1 Gbps。该芯片还支持Gen2SRIO和最大2组64位DDR3控制器。

2.1 FPGA功能及连接设计

基于VPX的多路高速互连处理系统中,FPGA设计是关键技术之一。为了实现板间多路10 Gbps高速GTH信号通信,如FPGA功能框图(见图2)所示,将板外信号通过VPX总线接入FPGA的32个GTH通道,再经过GTH通道选择模块和信道化算法模块进行传输和处理。处理后的信号可通过SRIO交换技术传出板外,也可传入PPC进行数据处理或CRT逻辑仿真。系统中OBC的Debug模块连接FPGA的4个GTH通道可对FPGA进行主机端加载。板内信号通过FPGA的4个GTH发送模块传入光纤接口光模块,可供板外其他系统使用。

本系统选用3片该芯片进行互连(见图1),再与SRIO交换芯片和VPX总线连接器合理连接,设计细节如下:

(1) 总共56路GTH(TX)和96路GTH(RX)连接到VPX接口,板内32路GTH。其中,FPGA1有32路GTH(RX)连接到VPX连接器P2口,12路GTH(TX)连接到P4口,16路GTH(TX)连接到FPGA3芯片,4路GTH(TX)连接到光模块SNAP12。FPGA2有32路GTH(RX)连接到VPX连接器P3口,12路GTH(T)连接到P4口,16路GTH(TX)连接到FPGA3芯片,4路GTH(TX)连接到光模块SNAP12。FPGA3有32路GTH(RX)连接到VPX连接器P5口,32路GTH(TX)连接到P6口,16路GTH(RX)连接到FPGA1芯片,16路GTH(RX)连接到FPGA2芯片,4路GTH(TX)连接到光模块SNAP12。各路传输速率可达10 Gbps;

(2) 每片FPGA挂接一组64位DDR3存储器,容量为4 GB,速率800 Mbps;

(3) 每片FPGA外挂一片NorFlash,容量为128 MB,用于存放系数;

(4) 每片FPGA有一组4xSRIO连接到CPS1432,速度可达到5 Gbps;

(5) 另外有一片FPGA外挂两片18位QDR存储器,总位宽36位。

2.2 FPGA GTH时钟设计

该模块大量使用GTH高速接口,为满足不同的应用场景,其接口也需满足不同速率配置需求,这就对FPGA GTH参考时钟的设计提出巨大的挑战。因为Virtex-7 FPGA提高了集成度,故其高速串行收发器不再独占一个单独的参考时钟,而是以Quad来对串行高速收发器进行分组[7],1个COMMOM 和4个串行高速收发器组成1个Quad,每个串行高速收发器称为1个Channel。也即,1个Quad包含1个时钟模块CMT(Clock Management Tiles)、4个频率范围为1.65 GHz~5.16 GH的Channel PLL(CPLL)和1个频率范围为8.0 GHz~13.1 GHz的Quad PLL(QPLL)。当GTH的线速度非常高,其CPLL的频率范围已无法满足需求时,QPLL就配合其工作。每个Quad都有两个专用的差分参考时钟输入引脚(MGTREFCLK0 和MGTREFCLK1)可以连接到外部时钟源。根据Xilinx设计资料以及设计软件提供的信息,对本系统上FPGAGTH时钟设计需求进行了统计如表1所示,最终确定GTH参考时钟MGTREFCLK0选择125 MHz,MGTREFCLK1选择200 MHz,即可满足不同接口速率对时钟的需求。

表1 GTH接口数量时钟需求统计(单位:Hz)Table 1 Statistics of clock requirements for the number of GTH interfaces (Hz)

Xilinx FPGA可满足高速同步电路对时钟触发沿的苛刻需求。对FPGA的设计而言,最好的时钟设计方案是采用专用的全局时钟输入引脚驱动单个全局时钟,并用后者去控制设计中的每个触发器。全局时钟资源作为专用的布线资源,其处于全铜布线层上,故使用全局时钟资源不会影响芯片的其他布线资源,可大量使用。Virtex-7 FPGA 690T集成了专用时钟资源和时钟管理模块。它含有20个CMT,每个CMT由MMCM(Mixed-Mode Clock Manager) 混合时钟管理器和PLL(Phase-Locked Loop)锁相环组成[8]。每个CMT负责管理其所在Quad中的4个CPPL和1个QPLL。每个CMT需要通过IBUFG原语调用[9]。每个Quad有两个外部差分参考时钟源,每个外部参考时钟的输入必须经过IBUFDS_GTE2原语之后才能使用。对于每一个Quad来说,可以选择两个不同的参考时钟,每一个CHANNEL的接收端和发送端都可以独立选择参考时钟。对于第一个外部参考时钟(MGTREFCLK0),将IBUFDS_GTE2输出连接到单个Quad的COMMON和4个CHANNEL。类似地,对于第二个外部参考时钟(MGTREFCLK1),将IBUFDS_GTE2输出连接到这个Quad的COMMON和4个CHANNEL。然后用户可以通过相关参数的设置动态选择参考时钟源,这种方式就能实现GTH多参考时钟设计。又因Virtex-7 FPGA GTH时钟具有共享能力,即Quad(n-1)及Quad(n+1)可以使用Quad(n)的参考时钟作为其参考时钟,结合本系统的需求,在考虑PCB布局布线、减少晶振数量的原则下,对本系统的3片FPGA GTH共享时钟设计如图3和图4所示。

每片FPGA均由4片125 MHz的晶振[10]和4个Clock Buffer来配合管理GTH时钟。将FPGA1和FPGA2的Quad210~217中的32路接收端口连接至VPX连接器,Quad118~116中的12路发送端口连接至VPX连接器,Quad115和114中的4路发送端口分别连接至SRIO和光模块,Quad110~113中的16路发送端口连接至FPGA3。将FPGA3的Quad212~219中的32路发送端口连接至VPX连接器,Quad214~217中的16路发送端口连接至FPGA1,Quad210~213中的16路发送端口连接至FPGA2,Quad112~119中的32路接收端口连接至VPX连接器,Quad110和111中的4路发送端口分别连接至光模块和SRIO。从这种设计中能看出,FPGA3中GTH的Transceiver存在复用的情况,即GTH Quad 214~217的16路接收端口连接至FPGA1,16发送端口连接至VPX连接器;GTH Quad 212~213的8路接收端口连接至FPGA2,8发送端口连接至VPX连接器。目前,对GTH的Transceiver收发独立使用仅考虑速率一致的情况,同一Transceiver收发独立使用且速率不一致的情况待验证。

2.3 FPGA主机端加载设计

如图5所示,本系统板载FPGA1、FPGA2、FPGA3均通过主机端加载方式实现逻辑代码加载。逻辑代码通过网络传输至T2080,T2080将数据通过LB总线经OBC下载至Nor Flash,上电后,OBC通过FPGA1、FPGA2、FPGA3(FPGA1、2、3均配置为Slave SelectMap模式)的专用加载接口,将代码加载进FPGA。

3 FPGA板内板间GTH测试

本文研制的信息处理系统的测试在实验室环境下进行。测试所需的设备包括2块信息处理待测系统板、1台CHASSIS-VPX-4U-A测试机箱、1台测试计算机、1个USB-RS232串口、千兆交换机,标准的RS232转换成mini串口调试线缆、标准千兆网线以及10GVPX连接跳线。通过命令测试方法,本系统经过了主机端加载测试、存储测试、网络测试、FPGA板内板间GTH测试、FPGA DDR测试、FPGA QDR测试、Rapid IO板内板间测试等共16项功能测试。此处仅介绍FPGA板内板间GTH测试。为了测试系统FPGA板内GTH是否工作正常,将系统板PPC与3片FPGA采用图6方式连接。PPC通过串口发送一条指令,使FPGA1和FPGA2通过板内的GTH(X16)不停地发送数据到FPGA3,FPGA3收到数据后,与本地数据进行比较。比较结果反馈给PPC,并通过串口显示出来。为了测试系统FPGA板间GTH是否工作正常,将测试机箱插入两块待测系统板,将两块待测系统板通过VPX跳线互连起来,也即将一块系统板的TX接到另一块系统板的RX(图7)。由于跳线有限,故一次只能测X8。板间GTH测试时,将PPC通过串口发送一条指令,使系统板1通过板间的GTH不停地接收系统板2发送的数据, 系统板1收到数据后,与本地数据进行比较。比较结果反馈给PPC,并通过串口显示出来。

测试计算机可以通过系统PCB测试板与模块SGMII建立网络连接,4路4x SRIO到VPX 连接器P1口,4路4xSRIO分别连到3片FPGA 和T2080处理器,它们的速度均能达到5 Gbps。系统板内 32路GHT ibert测试结果如图8所示,可看出每路通道能正常通信,并且均能达到10 Gbps的数据传输速率。其他所有FGPA GTH的测试结果图与该图相似,也分别能看出3片FPGA每路GTH速率均可达10 Gbps。此处不再提供全部测试结果图。

4 结束语

基于VPX的多路高速互连信息处理系统具有高带宽、高速率、低误码率数据传输能力。系统采用VPX结构标准和SRIO2.1总线,板载了3片FPGA芯片,通过严谨地设计和仿真,最后再加载测试。该系统在6U尺寸内很好地实现了板间96路10 Gbps高速数据信号接收、56路10 Gbps高速数据信号发送、12路10 Gbps高速数据光信号发送,板内32路10 Gbps高速数据信号互连。同时该系统10 Gbps数据传输通路可满足军工级苛刻环境应用要求。

猜你喜欢
收发器串口端口
华为交换机端口Hybrid 模式的应用
某重型汽车方向盘LIN 开关故障分析
一种有源二端口网络参数计算方法
一种端口故障的解决方案
隔离型三端口变换器的H∞鲁棒控制
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
MCS—51单片机中的多串口通讯技术的应用
光纤收发器常见故障原因