文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.07.007
中文引用格式: 董選明. 基于4DSP+FPGA架構(gòu)數(shù)據(jù)處理板設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(7):29-33,37.
英文引用格式: Dong Xuanming. A digital processing board design based on the architecture of 4DSP and FPGA[J]. Application of Electronic Technique,2016,42(7):29-33,37.
0 引言
隨著數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)和現(xiàn)場(chǎng)可編程門(mén)陣列器件(Field-Programmable Gate Array,F(xiàn)PGA)的發(fā)展,DSP+FPGA架構(gòu)在數(shù)據(jù)及信號(hào)處理系統(tǒng)中的應(yīng)用愈來(lái)愈廣泛。傳統(tǒng)的DSP芯片一般采用馮-諾依曼(Von Neumann)結(jié)構(gòu)或某種類(lèi)型擴(kuò)展,此種結(jié)構(gòu)本質(zhì)上是串行的,當(dāng)遇到需要處理的數(shù)據(jù)量大且處理速度高,但對(duì)運(yùn)算結(jié)構(gòu)相對(duì)較簡(jiǎn)單的底層信號(hào)處理算法來(lái)說(shuō)顯不出優(yōu)點(diǎn),適合采用FPGA硬件實(shí)現(xiàn)。因此,采用DSP+FPGA架構(gòu)的系統(tǒng)可以將二者優(yōu)點(diǎn)結(jié)合起來(lái),兼顧速度和靈活性,既滿足底層信號(hào)處理要求,又滿足高層信號(hào)處理要求。
德州儀器(TI)推出TMS320C66x系列最新數(shù)字信號(hào)處理器TMS320C6678與 TMS320TCI6609,是目前具有最高定/浮點(diǎn)運(yùn)算能力的一代數(shù)字信號(hào)處理器,為開(kāi)發(fā)人員帶來(lái)業(yè)界性能最高、功耗最低的DSP。TI TMS320C6678多核DSP非常適合需要超高性能、低功耗以及簡(jiǎn)單可編程性場(chǎng)合的應(yīng)用。TI不但為HPC(High Performance Computing)提供免費(fèi)優(yōu)化庫(kù),無(wú)需花費(fèi)時(shí)間優(yōu)化代碼,即可便捷地實(shí)現(xiàn)最高性能,而且還支持C語(yǔ)言與OpenMP等標(biāo)準(zhǔn)編程語(yǔ)言,因此開(kāi)發(fā)人員可便捷地移植應(yīng)用,啟動(dòng)C66x多核DSP的開(kāi)發(fā)[1],充分發(fā)揮低功耗與高性能優(yōu)勢(shì)。為了滿足超高數(shù)據(jù)處理性能、低功耗以及簡(jiǎn)單可編程性場(chǎng)合的應(yīng)用,設(shè)計(jì)了一款基于TI8核高性能DSP 芯片TMS320C6678和Xilinx公司FPGA芯片XC5VSX95T的數(shù)據(jù)處理電路模塊,在6 U尺寸的模塊上設(shè)計(jì)了4片高性能DSP,定點(diǎn)運(yùn)算處理能力可達(dá)1 280 GMAC,浮點(diǎn)運(yùn)算處理能力可達(dá)640 GFLOP,并設(shè)計(jì)了大容量DDR3內(nèi)存(每片DSP內(nèi)存為1 GB,共4 GB)和2 GB的固態(tài)存儲(chǔ),使得其可實(shí)現(xiàn)高性能、高數(shù)據(jù)吞吐量的定點(diǎn)/浮點(diǎn)運(yùn)算。
模塊設(shè)計(jì)了大吞吐量的串行RapidIO(Serial Rapid IO,SRIO)和千兆以太網(wǎng),對(duì)外與其他模塊進(jìn)行數(shù)據(jù)通信,數(shù)據(jù)帶寬達(dá)60 Gb/s,使得大數(shù)據(jù)量的輸入、大數(shù)據(jù)量處理和輸出成為現(xiàn)實(shí)。
1 電路總體設(shè)計(jì)
數(shù)據(jù)處理模塊的電路總體設(shè)計(jì)基于4×DSP+FPGA架構(gòu),電路總體設(shè)計(jì)框圖如圖1所示。
從功能上看,數(shù)據(jù)處理模塊可分為DSP小系統(tǒng)、FPGA模塊、RapidIO數(shù)據(jù)交換模塊[2]、以太網(wǎng)模塊、AD轉(zhuǎn)換模塊、各電平轉(zhuǎn)換模塊及其他電源、時(shí)鐘和控制邏輯等輔助電路,加上DSP、FPGA等必要的驅(qū)動(dòng)程序和板內(nèi)的控制邏輯,形成一個(gè)完整的、一體化的數(shù)字系統(tǒng)硬件平臺(tái)。
1.1 DSP小系統(tǒng)
DSP小系統(tǒng)主要包含:DSP芯片組、DDR3內(nèi)存、Flash數(shù)據(jù)存儲(chǔ)、RS232接口、SRIO接口、SPI(Setial Peripheral Interface)接口。
如圖1所示,第一個(gè)DSP小系統(tǒng)作為主系統(tǒng),其他3個(gè)DSP系統(tǒng)作為從系統(tǒng)。4片DSP之間的通訊如下:在啟動(dòng)過(guò)程中,從DSP給主DSP送1個(gè)GPIO(General Purpose Input/Output)信號(hào),通過(guò)電平方式表示已經(jīng)啟動(dòng)起來(lái)。系統(tǒng)啟動(dòng)后,從DSP的信息通過(guò)SRIO發(fā)送給主DSP。J30J-31為調(diào)試接口,對(duì)外提供DSP的JTAG(Joint Test Action Group)口(板內(nèi)成菊花鏈[3])、串口、4個(gè)控制LED燈的GPIO口以及CPLD、FPGA的JTAG加載口。4個(gè)DSP的JTAG形成菊花鏈[4],連到調(diào)試接口J30J-31上。同時(shí),4個(gè)DSP的串口都連到調(diào)試接口上方便調(diào)試,該模塊設(shè)計(jì)只用主DSP的串口。兩個(gè)DSP之間,用超鏈接(Hyperlink)進(jìn)行通訊[1]。
1.1.1 DSP
電路設(shè)計(jì)采用4片TI公司的TMS320C6678芯片,配合外圍時(shí)鐘、復(fù)位、DDR3、Flash等,為整個(gè)模塊提供數(shù)字處理平臺(tái)。TMS320C6678芯片為高性能八核數(shù)字信號(hào)處理器,外頻采用100 MHz,內(nèi)核主頻為1 GHz,采用擴(kuò)展溫度型號(hào),工作溫度-40 ℃~+100 ℃。該芯片內(nèi)部集成8個(gè)C66x CorePac DSPs的核,每個(gè)核工作在1 GHz。在C66x 器件上,通過(guò)擴(kuò)展SIMD(Single Instruction Multiple Data)指令的寬度,提高了向量處理能力,可以處理128 bit的向量指令[1]。例如,QMPY32 指令可以執(zhí)行兩個(gè)32 bit數(shù)據(jù)向量的元素對(duì)元素相乘。
C66xDSP對(duì)浮點(diǎn)操作也支持SIMD。增強(qiáng)的向量處理能力加上原有的指令并行等級(jí),DSP 程序員通過(guò)應(yīng)用TI的C/C++優(yōu)化編譯器可以開(kāi)發(fā)出更高級(jí)的并行代碼。每個(gè)核具有獨(dú)立的32 K數(shù)據(jù)一級(jí)cache和32 K指令一級(jí)cache,共享512 K二級(jí)cache。C66xDSP存儲(chǔ)單元接口支持DDR3 EMIF64內(nèi)存, 控制單元片內(nèi)共享4 096 K SRAM存儲(chǔ)空間,支持高速串行接口,包括1路SRIO接口、兩路PCIe接口、兩路SGMII(Serial Gigabit Media Independent Interface)以太網(wǎng)接口等。C66xDSP支持其他低速接口如UART(Universal Asynchronous Receiver/Transmitter)串口,24位尋址寬度的MIF16并行總線、SPI、I2C、GPIOs等。
1.1.2 DDR3內(nèi)存
每片DSP設(shè)計(jì)采用4片MT41J128M16HA并聯(lián),提供64 bit數(shù)據(jù)位寬,共1 GB容量。MT41J128M16HA是Micro公司生產(chǎn)的DDR3 SDRAM,規(guī)格為16 Meg×16×8 Banks,單片16位寬度,256 MB容量。
1.1.3 Flash數(shù)據(jù)存儲(chǔ)
Flash數(shù)據(jù)存儲(chǔ)采用Spansion公司S29GL01G Flash芯片,16位寬度128 MB字節(jié)空間。一部分空間放置BOOT,主要用作存放操作系統(tǒng)的代碼以及用戶代碼、用戶配置和用戶數(shù)據(jù)。通過(guò)CPLD控制存儲(chǔ)系統(tǒng)的啟動(dòng)程序、系統(tǒng)程序和用戶程序。DSP只能提供24位地址線,F(xiàn)lash所需的高兩位地址線通過(guò)CPLD來(lái)擴(kuò)展。CPLD采用Lattice公司的LCMXO2280C芯片,在DSP和其他芯片通訊間實(shí)現(xiàn)電平轉(zhuǎn)換功能。
1.1.4 RS232接口
采用2片MAX3232作為RS232接口電平轉(zhuǎn)換芯片,共提供4路RS232接口。DSP和鏈接器之間連接MAX3232芯片,完成TTL/CMOS電平的UART信號(hào)轉(zhuǎn)換成標(biāo)準(zhǔn)的RS232信號(hào)輸出和標(biāo)準(zhǔn)的RS232信號(hào)轉(zhuǎn)換成TTL/COMS電平輸入。
1.1.5 SRIO和SPI接口
SRIO接口通過(guò)80HCPS1848芯片進(jìn)行數(shù)據(jù)交換,實(shí)現(xiàn)與FPGA、3個(gè)從DSP及客戶板通訊。SPI接口實(shí)現(xiàn)對(duì)AD9516的配置,給ADC提供可變的參考時(shí)鐘。
1.2 FPGA模塊
FPGA模塊主要用做高速ADC的算法處理,包含DDR2、SRIO、高速ADC、RS422接口、JTAG/IO等接口部分。FPGA模塊如圖2所示。
1.2.1 FPGA
FPGA模塊設(shè)計(jì)采用Xilinx公司FPGA芯片XC5VSX95T。XC5VSX95T是Xilinx公司的Virtex-5 SXT系列FPGA器件,帶有高級(jí)串行連接的信號(hào)處理邏輯,相對(duì)其他系列擁有更豐富的DSP資源。芯片XC5VSX95T有邏輯模塊160×54,最大RAM模塊1 120 Kb,DSP48E 640個(gè),CMT時(shí)鐘管理6個(gè)RocketIO,GTP 16個(gè),總IObank 20個(gè),最大使用IO數(shù)680個(gè)[5]。本電路采用1.2~3.3 V I/O操作電壓,14 720 slices,19個(gè)bank,640個(gè)用戶IO,1PCIe,4 MAC,16個(gè)GTP,配合外圍時(shí)鐘、復(fù)位、FPGA啟動(dòng)加載電路等,為整個(gè)模塊提供邏輯算法。
1.2.2 數(shù)據(jù)緩存電路
數(shù)據(jù)緩存電路由2片Micron公司的MT47H128M16-SDRAM芯片構(gòu)成,單片容量2 Gb(16 M×16 bit×8 bank),共512 MB DDR2。該內(nèi)存芯片14 bit行地址,10 bit列地址,1.8 V供電,最高頻率800 MHz,支持突發(fā)讀寫(xiě)或者突發(fā)讀單寫(xiě),支持自刷新,64 ms內(nèi)刷新8 192次[6],掛在FPGA上為系統(tǒng)提供數(shù)據(jù)緩存、協(xié)助系統(tǒng)完成多路控制等功能。
1.2.3 RS422接口
采用2片MAX3076完成RS422電平轉(zhuǎn)換,提供2路RS422通信接口,支持單通道全雙工,16 Mb/s,3.3 V工作電壓,帶15 kV ESD(Electro-Static Discharge)保護(hù)。
1.2.4 JTAG接口
JATG信號(hào)直接由FPGA引出到連接器J30J-31,作為調(diào)試及客戶指示燈接口。
1.3 RapidIO模塊
RapidIO模塊為4個(gè)DSP及FPGA提供數(shù)據(jù)交換,同時(shí),對(duì)外提供6個(gè)x4端口,使整個(gè)系統(tǒng)能夠通過(guò)SRIO數(shù)據(jù)交換實(shí)現(xiàn)通訊。RapidIO模塊電平轉(zhuǎn)換功能如圖3所示。
選用IDT公司的RapidIO數(shù)據(jù)交換芯片80HCPS18-48CRMI完成數(shù)據(jù)電平轉(zhuǎn)換。該芯片是一款高性能RapidIO交換芯片,符合串行RapidIO2.1 協(xié)議要求[2],擁有48路SRIO端口,可配置為12×4、18×2、18×1的端口工作方式,傳輸速率可為1.25 Gbaud、2.5 Gbaud、3.125 Gbaud、5.0 Gbaud或 6.25 Gbaud;芯片內(nèi)部交換帶寬達(dá)到240 Gb/s,提供無(wú)阻塞的全雙工交換能力,可配置為短潛伏期(latency)的直通轉(zhuǎn)發(fā)(Cut-Through)或存儲(chǔ)轉(zhuǎn)發(fā)(Store-and-Forward)數(shù)據(jù)流,最大可支持40個(gè)同時(shí)多點(diǎn)傳送(multicast)和發(fā)送傳遞信號(hào)(broadcast),同時(shí)具有全局路由或本地端口路由。該芯片內(nèi)核電壓1.0 V,IO電壓3.3 V,串/并化器電壓1.2 V[7]。
1.4 以太網(wǎng)模塊
圖1中每個(gè)DSP均可通過(guò)以太網(wǎng)同計(jì)算機(jī)通信,完成輸入輸出測(cè)試功能。以太網(wǎng)模塊如圖4所示。
電路設(shè)計(jì)用MAVELL公司的PHY芯片88e1145。該芯片是一款4端口千兆以太網(wǎng)收發(fā)器[8],支持GMII、TBI、RGMII、RTBI以及SGMII接口,有4個(gè)RGMII時(shí)鐘模式,1.25 GHz串/并化器應(yīng)用于1000BASE-X光纖接口。每個(gè)收發(fā)器支持CAT5雙絞線100BASE-TX、1000BASE-T全雙工或半雙工以太網(wǎng)、CAT3/4/5電纜10BASE-T全雙工或半雙工以太網(wǎng),支持IEEE 100BASE-FX光纖網(wǎng)絡(luò)。同時(shí),每個(gè)端口支持PECL(The PHP Extension Community Library)接口應(yīng)用于100BASE-FX,F(xiàn)EFI(Far-End Fault Indication)遠(yuǎn)距離錯(cuò)誤指示,集成數(shù)字自適應(yīng)均衡器、回聲消除器和串?dāng)_消除器,自動(dòng)MDI/MDIX切換,用戶配置port-by-port獨(dú)立MAC接口,支持IEEE 802.3U 自動(dòng)協(xié)商,軟件可編程LED模式,兩線串行接口和MDC/MDIO,CRC校驗(yàn)和包計(jì)數(shù)器,包生成器,自動(dòng)校正MAC接口輸出。
1.5 電源方案實(shí)現(xiàn)
根據(jù)數(shù)據(jù)處理板內(nèi)電壓種類(lèi)和各芯片上電順序需求分析以及提供的電源情況,電源設(shè)計(jì)方案如圖5所示。
板上功耗最大的為80HCPS1848芯片,其所需的電源有1 V、1.2 V、3.3 V。1 V由LTM4620和TPS74801DRCT提供,1.2 V由LTM4620提供,3.3 V由3.5 V經(jīng)LTM4620提供。LTM4620輸入電壓范圍為4.5 V~16 V,輸出范圍0.6 V~5.3 V,可實(shí)現(xiàn)單端26 A、雙端13 A電流輸出。TPS74801DRCT輸出電壓可調(diào),電流1.5 A。
DSP所需電源有1 V、1.5 V、1.8 V。1 V直接由UCD9222+UCD7242提供。1.5 V和1.8 V由5 V經(jīng)LTM4620提供。DSP有上電時(shí)序要求,UCD9222+UCD7242通過(guò)軟件控制4片DSP的上電時(shí)序,每個(gè)延時(shí)2 ms啟動(dòng),內(nèi)核電壓上電完成后,再上1.8 V和1.5 V,1.8 V和1.5 V通過(guò)LTM4620芯片的track腳的容值不同來(lái)調(diào)整,同時(shí),也將RUN腳拉到CPLD,由前級(jí)power good來(lái)推動(dòng)后級(jí)的使能。
對(duì)電源要求較高的ADC、PLL供電,均用LDR(Low Dropout Regulator)提供。
1.6 時(shí)鐘方案實(shí)現(xiàn)
圖6為時(shí)鐘方案圖,DSP所需的時(shí)鐘有100 MHz、156.25 MHz。156.25 MHz時(shí)鐘由125M晶振通過(guò)MAX3638提供,而3個(gè)100 MHz時(shí)鐘則由外部100 MHz晶振通過(guò)CY2DL1504ZXIT提供。CPLD、PHY、FPGA配置所需25 MHz時(shí)鐘,由外部晶振經(jīng)過(guò)驅(qū)動(dòng)器CY23EP05提供。RapidIO數(shù)據(jù)交換芯片所需的156.25 MHz時(shí)鐘由25 MHz外部時(shí)鐘通過(guò)CDCM61004得到。FPGA芯片所需的時(shí)鐘有23.04 MHz、100 MHz和125 MHz,23.04 MHz由外部時(shí)鐘提供,100 MHz和125 MHz時(shí)鐘由25 MHz外部時(shí)鐘通過(guò)ICS844N255AkILft提供。
1.7 復(fù)位電路
為了使電路可靠工作,復(fù)位電路特別重要,本電路板設(shè)計(jì)了上電復(fù)位、看門(mén)狗復(fù)位和芯片單獨(dú)復(fù)位3種復(fù)位模式,圖7為復(fù)位電路框圖。上電復(fù)位是整板硬復(fù)位,使用專(zhuān)用復(fù)位芯片MAX811、控制邏輯配合實(shí)現(xiàn);第二種看門(mén)狗復(fù)位,由DSP給CPLD喂狗[9],CPLD內(nèi)部做計(jì)時(shí)器,一旦異常,產(chǎn)生復(fù)位脈沖,給板內(nèi)所有器件復(fù)位(包括DSP)。這種復(fù)位方式可通過(guò)脈寬控制進(jìn)行調(diào)整:由DSP給CPLD喂狗,CPLD計(jì)時(shí),一旦異常,由CPLD給復(fù)位芯片送出復(fù)位脈沖,復(fù)位芯片產(chǎn)生復(fù)位信號(hào)送給CPLD,CPLD將復(fù)位信號(hào)分發(fā)給整板,對(duì)所有器件進(jìn)行復(fù)位;第三種通過(guò)DSP給CPLD寫(xiě)寄存器,由CPLD獨(dú)立復(fù)位各個(gè)芯片。
MAX811芯片內(nèi)部自帶上電復(fù)位時(shí)間控制,芯片產(chǎn)生的復(fù)位信號(hào)送入控制邏輯CPLD,由CPLD控制復(fù)位板上所有芯片,其最小140 ms的復(fù)位時(shí)間可保證可靠地復(fù)位整個(gè)系統(tǒng)。手動(dòng)復(fù)位由板上提供的按鈕以及MAX811內(nèi)建的施密特整形電路及延時(shí)輸出電路,外加CPLD共同實(shí)現(xiàn)。看門(mén)狗復(fù)位,由CPLD內(nèi)建看門(mén)狗控制邏輯,配合MAX811共同完成看門(mén)狗功能。芯片單獨(dú)復(fù)位則是通過(guò)板內(nèi)控制單元(CPU)通過(guò)寫(xiě)CPLD提供的復(fù)位控制寄存器的方式,實(shí)現(xiàn)各芯片單獨(dú)復(fù)位。
2 結(jié)束語(yǔ)
基于4×DSP(8核DSP TMS320C6678)+FPGA架構(gòu)設(shè)計(jì)的數(shù)據(jù)處理模塊具有高速信號(hào)處理能力和高帶寬的數(shù)據(jù)輸入輸出接口,處于國(guó)內(nèi)領(lǐng)先地位,可用于高性能數(shù)據(jù)處理、信號(hào)處理、圖像處理等場(chǎng)合。在設(shè)計(jì)中采用了寬溫、低功耗的DSP,使其具有高可靠性、低功耗、高密度、耐振動(dòng)性以及寬溫度工作范圍的特性,可廣泛用于航空設(shè)備、車(chē)載設(shè)備、惡劣條件下工作的特種設(shè)備,大大提高設(shè)備的穩(wěn)定性和數(shù)據(jù)處理性能。
參考文獻(xiàn)
[1] Texas Instruments Data Manual.TMS320C6678 multicore fixed and floating-point digital signal processor[EB/OL].
[2015-12-15].http://www.ti.com.
[2] RapidIOTM.Interconnect Specification[EB/OL].[2015-12-18].http://www.rapidio.org.
[3] 美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(ANSI).ANSI_VITA 46.0-2007_American National Standard for VPX Baseline Standard[EB/OL].[2015-12-18].http://www.vita.com.
[4] JTAG.國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議[EB/OL].[2015-12-20].http://www.jtag.com.
[5] Xilinx.Virtex-5 Family Overview[EB/OL].[2015-12-13].http://www.xilinx.com.
[6] MachXO.Family Handbook(Lattice semiconductor corporation[EB/OL].[2015-11-19].http://www.datasheetarchive.com.
[7] Idt.80HCPS1848 Product Specification[EB/OL].[2015-12-19].http://www.idt.com.
[8] Marvell.Alaska Quad Gigabit Ethernet Transceiver 88E1141/88E1145[EB/OL].[2015-12-13].http://www.marvell.com.
[9] 張雪芹,楊立軍,胡炫.TMS320F2812系統(tǒng)中的軟件復(fù)位方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(2):70-71.