为了满足超高性能数据处理以及低功耗、简单可编程性的应用,设计了一款基于TI TMS320C6678芯片和Xilinx公司XC5VSX95T芯片的4DSP+FPGA架构的数据处理板,同时设计了高带宽的数据输入输出接口以及相关的时钟、电源和复位电路,并通过具体的硬件电路实现。该数据处理板可广泛应用于航空设备、车载设备、恶劣条件下工作的特种设备,将有效提高设备的数据处理性能。
0 引言
随着数字信号处理器(Digital Signal Processor,DSP)和现场可编程门阵列器件(Field-Programmable Gate Array,FPGA)的发展,DSP+FPGA架构在数据及信号处理系统中的应用愈来愈广泛。传统的DSP芯片一般采用冯-诺依曼(Von Neumann)结构或某种类型扩展,此种结构本质上是串行的,当遇到需要处理的数据量大且处理速度高,但对运算结构相对较简单的底层信号处理算法来说显不出优点,适合采用FPGA硬件实现。因此,采用DSP+FPGA架构的系统可以将二者优点结合起来,兼顾速度和灵活性,既满足底层信号处理要求,又满足高层信号处理要求。
德州仪器(TI)推出TMS320C66x系列最新数字信号处理器TMS320C6678与 TMS320TCI6609,是目前具有最高定/浮点运算能力的一代数字信号处理器,为开发人员带来业界性能最高、功耗最低的DSP。TI TMS320C6678多核DSP非常适合需要超高性能、低功耗以及简单可编程性场合的应用。TI不但为HPC(High Performance Computing)提供免费优化库,无需花费时间优化代码,即可便捷地实现最高性能,而且还支持C语言与OpenMP等标准编程语言,因此开发人员可便捷地移植应用,启动C66x多核DSP的开发[1],充分发挥低功耗与高性能优势。为了满足超高数据处理性能、低功耗以及简单可编程性场合的应用,设计了一款基于TI8核高性能DSP 芯片TMS320C6678和Xilinx公司FPGA芯片XC5VSX95T的数据处理电路模块,在6 U尺寸的模块上设计了4片高性能DSP,定点运算处理能力可达1 280 GMAC,浮点运算处理能力可达640 GFLOP,并设计了大容量DDR3内存(每片DSP内存为1 GB,共4 GB)和2 GB的固态存储,使得其可实现高性能、高数据吞吐量的定点/浮点运算。
模块设计了大吞吐量的串行RapidIO(Serial Rapid IO,SRIO)和千兆以太网,对外与其他模块进行数据通信,数据带宽达60 Gb/s,使得大数据量的输入、大数据量处理和输出成为现实。
1 电路总体设计
数据处理模块的电路总体设计基于4×DSP+FPGA架构,电路总体设计框图如图1所示。
从功能上看,数据处理模块可分为DSP小系统、FPGA模块、RapidIO数据交换模块[2]、以太网模块、AD转换模块、各电平转换模块及其他电源、时钟和控制逻辑等辅助电路,加上DSP、FPGA等必要的驱动程序和板内的控制逻辑,形成一个完整的、一体化的数字系统硬件平台。
1.1 DSP小系统
DSP小系统主要包含:DSP芯片组、DDR3内存、Flash数据存储、RS232接口、SRIO接口、SPI(Setial Peripheral Interface)接口。
如图1所示,第一个DSP小系统作为主系统,其他3个DSP系统作为从系统。4片DSP之间的通讯如下:在启动过程中,从DSP给主DSP送1个GPIO(General Purpose Input/Output)信号,通过电平方式表示已经启动起来。系统启动后,从DSP的信息通过SRIO发送给主DSP。J30J-31为调试接口,对外提供DSP的JTAG(Joint Test Action Group)口(板内成菊花链[3])、串口、4个控制LED灯的GPIO口以及CPLD、FPGA的JTAG加载口。4个DSP的JTAG形成菊花链[4],连到调试接口J30J-31上。同时,4个DSP的串口都连到调试接口上方便调试,该模块设计只用主DSP的串口。两个DSP之间,用超链接(Hyperlink)进行通讯[1]。
1.1.1 DSP
电路设计采用4片TI公司的TMS320C6678芯片,配合外围时钟、复位、DDR3、Flash等,为整个模块提供数字处理平台。TMS320C6678芯片为高性能八核数字信号处理器,外频采用100 MHz,内核主频为1 GHz,采用扩展温度型号,工作温度-40 ℃~+100 ℃。该芯片内部集成8个C66x CorePac DSPs的核,每个核工作在1 GHz。在C66x 器件上,通过扩展SIMD(Single Instruction Multiple Data)指令的宽度,提高了向量处理能力,可以处理128 bit的向量指令[1]。例如,QMPY32 指令可以执行两个32 bit数据向量的元素对元素相乘。
C66xDSP对浮点操作也支持SIMD。增强的向量处理能力加上原有的指令并行等级,DSP 程序员通过应用TI的C/C++优化编译器可以开发出更高级的并行代码。每个核具有独立的32 K数据一级cache和32 K指令一级cache,共享512 K二级cache。C66xDSP存储单元接口支持DDR3 EMIF64内存, 控制单元片内共享4 096 K SRAM存储空间,支持高速串行接口,包括1路SRIO接口、两路PCIe接口、两路SGMII(Serial Gigabit Media Independent Interface)以太网接口等。C66xDSP支持其他低速接口如UART(Universal Asynchronous Receiver/Transmitter)串口,24位寻址宽度的MIF16并行总线、SPI、I2C、GPIOs等。
1.1.2 DDR3内存
每片DSP设计采用4片MT41J128M16HA并联,提供64 bit数据位宽,共1 GB容量。MT41J128M16HA是Micro公司生产的DDR3 SDRAM,规格为16 Meg×16×8 Banks,单片16位宽度,256 MB容量。
1.1.3 Flash数据存储
Flash数据存储采用Spansion公司S29GL01G Flash芯片,16位宽度128 MB字节空间。一部分空间放置BOOT,主要用作存放操作系统的代码以及用户代码、用户配置和用户数据。通过CPLD控制存储系统的启动程序、系统程序和用户程序。DSP只能提供24位地址线,Flash所需的高两位地址线通过CPLD来扩展。CPLD采用Lattice公司的LCMXO2280C芯片,在DSP和其他芯片通讯间实现电平转换功能。
1.1.4 RS232接口
采用2片MAX3232作为RS232接口电平转换芯片,共提供4路RS232接口。DSP和链接器之间连接MAX3232芯片,完成TTL/CMOS电平的UART信号转换成标准的RS232信号输出和标准的RS232信号转换成TTL/COMS电平输入。
1.1.5 SRIO和SPI接口
SRIO接口通过80HCPS1848芯片进行数据交换,实现与FPGA、3个从DSP及客户板通讯。SPI接口实现对AD9516的配置,给ADC提供可变的参考时钟。
1.2 FPGA模块
FPGA模块主要用做高速ADC的算法处理,包含DDR2、SRIO、高速ADC、RS422接口、JTAG/IO等接口部分。FPGA模块如图2所示。
1.2.1 FPGA
FPGA模块设计采用Xilinx公司FPGA芯片XC5VSX95T。XC5VSX95T是Xilinx公司的Virtex-5 SXT系列FPGA器件,带有高级串行连接的信号处理逻辑,相对其他系列拥有更丰富的DSP资源。芯片XC5VSX95T有逻辑模块160×54,最大RAM模块1 120 Kb,DSP48E 640个,CMT时钟管理6个RocketIO,GTP 16个,总IObank 20个,最大使用IO数680个[5]。本电路采用1.2~3.3 V I/O操作电压,14 720 slices,19个bank,640个用户IO,1PCIe,4 MAC,16个GTP,配合外围时钟、复位、FPGA启动加载电路等,为整个模块提供逻辑算法。
1.2.2 数据缓存电路
数据缓存电路由2片Micron公司的MT47H128M16-SDRAM芯片构成,单片容量2 Gb(16 M×16 bit×8 bank),共512 MB DDR2。该内存芯片14 bit行地址,10 bit列地址,1.8 V供电,最高频率800 MHz,支持突发读写或者突发读单写,支持自刷新,64 ms内刷新8 192次[6],挂在FPGA上为系统提供数据缓存、协助系统完成多路控制等功能。
1.2.3 RS422接口
采用2片MAX3076完成RS422电平转换,提供2路RS422通信接口,支持单通道全双工,16 Mb/s,3.3 V工作电压,带15 kV ESD(Electro-Static Discharge)保护。
1.2.4 JTAG接口
JATG信号直接由FPGA引出到连接器J30J-31,作为调试及客户指示灯接口。
1.3 RapidIO模块
RapidIO模块为4个DSP及FPGA提供数据交换,同时,对外提供6个x4端口,使整个系统能够通过SRIO数据交换实现通讯。RapidIO模块电平转换功能如图3所示。
选用IDT公司的RapidIO数据交换芯片80HCPS18-48CRMI完成数据电平转换。该芯片是一款高性能RapidIO交换芯片,符合串行RapidIO2.1 协议要求[2],拥有48路SRIO端口,可配置为12×4、18×2、18×1的端口工作方式,传输速率可为1.25 Gbaud、2.5 Gbaud、3.125 Gbaud、5.0 Gbaud或 6.25 Gbaud;芯片内部交换带宽达到240 Gb/s,提供无阻塞的全双工交换能力,可配置为短潜伏期(latency)的直通转发(Cut-Through)或存储转发(Store-and-Forward)数据流,最大可支持40个同时多点传送(multicast)和发送传递信号(broadcast),同时具有全局路由或本地端口路由。该芯片内核电压1.0 V,IO电压3.3 V,串/并化器电压1.2 V[7]。
1.4 以太网模块
图1中每个DSP均可通过以太网同计算机通信,完成输入输出测试功能。以太网模块如图4所示。
电路设计用MAVELL公司的PHY芯片88e1145。该芯片是一款4端口千兆以太网收发器[8],支持GMII、TBI、RGMII、RTBI以及SGMII接口,有4个RGMII时钟模式,1.25 GHz串/并化器应用于1000BASE-X光纤接口。每个收发器支持CAT5双绞线100BASE-TX、1000BASE-T全双工或半双工以太网、CAT3/4/5电缆10BASE-T全双工或半双工以太网,支持IEEE 100BASE-FX光纤网络。同时,每个端口支持PECL(The PHP Extension Community Library)接口应用于100BASE-FX,FEFI(Far-End Fault Indication)远距离错误指示,集成数字自适应均衡器、回声消除器和串扰消除器,自动MDI/MDIX切换,用户配置port-by-port独立MAC接口,支持IEEE 802.3U 自动协商,软件可编程LED模式,两线串行接口和MDC/MDIO,CRC校验和包计数器,包生成器,自动校正MAC接口输出。
1.5 电源方案实现
根据数据处理板内电压种类和各芯片上电顺序需求分析以及提供的电源情况,电源设计方案如图5所示。
板上功耗最大的为80HCPS1848芯片,其所需的电源有1 V、1.2 V、3.3 V。1 V由LTM4620和TPS74801DRCT提供,1.2 V由LTM4620提供,3.3 V由3.5 V经LTM4620提供。LTM4620输入电压范围为4.5 V~16 V,输出范围0.6 V~5.3 V,可实现单端26 A、双端13 A电流输出。TPS74801DRCT输出电压可调,电流1.5 A。
DSP所需电源有1 V、1.5 V、1.8 V。1 V直接由UCD9222+UCD7242提供。1.5 V和1.8 V由5 V经LTM4620提供。DSP有上电时序要求,UCD9222+UCD7242通过软件控制4片DSP的上电时序,每个延时2 ms启动,内核电压上电完成后,再上1.8 V和1.5 V,1.8 V和1.5 V通过LTM4620芯片的track脚的容值不同来调整,同时,也将RUN脚拉到CPLD,由前级power good来推动后级的使能。
对电源要求较高的ADC、PLL供电,均用LDR(Low Dropout Regulator)提供。
1.6 时钟方案实现
图6为时钟方案图,DSP所需的时钟有100 MHz、156.25 MHz。156.25 MHz时钟由125M晶振通过MAX3638提供,而3个100 MHz时钟则由外部100 MHz晶振通过CY2DL1504ZXIT提供。CPLD、PHY、FPGA配置所需25 MHz时钟,由外部晶振经过驱动器CY23EP05提供。RapidIO数据交换芯片所需的156.25 MHz时钟由25 MHz外部时钟通过CDCM61004得到。FPGA芯片所需的时钟有23.04 MHz、100 MHz和125 MHz,23.04 MHz由外部时钟提供,100 MHz和125 MHz时钟由25 MHz外部时钟通过ICS844N255AkILft提供。
1.7 复位电路
为了使电路可靠工作,复位电路特别重要,本电路板设计了上电复位、看门狗复位和芯片单独复位3种复位模式,图7为复位电路框图。上电复位是整板硬复位,使用专用复位芯片MAX811、控制逻辑配合实现;第二种看门狗复位,由DSP给CPLD喂狗[9],CPLD内部做计时器,一旦异常,产生复位脉冲,给板内所有器件复位(包括DSP)。这种复位方式可通过脉宽控制进行调整:由DSP给CPLD喂狗,CPLD计时,一旦异常,由CPLD给复位芯片送出复位脉冲,复位芯片产生复位信号送给CPLD,CPLD将复位信号分发给整板,对所有器件进行复位;第三种通过DSP给CPLD写寄存器,由CPLD独立复位各个芯片。
MAX811芯片内部自带上电复位时间控制,芯片产生的复位信号送入控制逻辑CPLD,由CPLD控制复位板上所有芯片,其最小140 ms的复位时间可保证可靠地复位整个系统。手动复位由板上提供的按钮以及MAX811内建的施密特整形电路及延时输出电路,外加CPLD共同实现。看门狗复位,由CPLD内建看门狗控制逻辑,配合MAX811共同完成看门狗功能。芯片单独复位则是通过板内控制单元(CPU)通过写CPLD提供的复位控制寄存器的方式,实现各芯片单独复位。
2 结束语
基于4×DSP(8核DSP TMS320C6678)+FPGA架构设计的数据处理模块具有高速信号处理能力和高带宽的数据输入输出接口,处于国内领先地位,可用于高性能数据处理、信号处理、图像处理等场合。在设计中采用了宽温、低功耗的DSP,使其具有高可靠性、低功耗、高密度、耐振动性以及宽温度工作范围的特性,可广泛用于航空设备、车载设备、恶劣条件下工作的特种设备,大大提高设备的稳定性和数据处理性能。
评论
查看更多