使用RapidIO技術(shù)搭建可重構(gòu)信號處理平臺
摘 要: 軍事領(lǐng)域常選擇ADI公司的TS201芯片用于信號處理平臺,但由于其采用基于電路交換的LINK口進行連接,難以實現(xiàn)軍方對電子系統(tǒng)設(shè)計提出的可重構(gòu)性的需求。FPGA可以用來實現(xiàn)接口轉(zhuǎn)換功能,如果利用FPGA將基于電路交換的LINK口轉(zhuǎn)換成基于包交換的其他形式的接口,就能在不改變硬件連接的基礎(chǔ)上,實現(xiàn)DSP系統(tǒng)的重構(gòu)。本文介紹了一種基于串行RapidIO技術(shù)的可重構(gòu)的信號處理平臺,并對其中核心的FPGA的邏輯設(shè)計進行了討論。
在雷達、聲納、電子對抗等軍用電子設(shè)備中,數(shù)字信號處理機作為實現(xiàn)信號處理算法的平臺,起著至關(guān)重要的作用。在傳統(tǒng)的信號處理平臺中,軍事領(lǐng)域多選用ADI公司的TIgerShark系列的DSP芯片作為信號處理單元,在PCB的板內(nèi)和板間采用高速的LINK口進行互聯(lián)。
LINK口是一種源同步接口,可以達到很高的傳輸速度。但是,由于LINK口是基于電路交換的接口,連接的雙方獨占一條通路,LINK口一旦在硬件上連接起來,系統(tǒng)中的DSP網(wǎng)絡(luò)拓撲就固定不變了。由于信號處理算法的多樣性,系統(tǒng)中數(shù)據(jù)流的方向也很不確定,固定的DSP拓撲網(wǎng)絡(luò)只能針對一定的算法達到最優(yōu),當(dāng)數(shù)據(jù)流方向改變較大時,同樣的信號處理平臺的傳輸效率就會大大降低。這時,如果能夠重新調(diào)整DSP網(wǎng)絡(luò)的拓撲結(jié)構(gòu),會大大提高平臺的性能。
為了實現(xiàn)系統(tǒng)可重構(gòu)的特性,需要利用專門的FPGA芯片,將基于電路交換的LINK口轉(zhuǎn)換成基于(帶有路由信息的)包交換的其他格式的接口進行傳輸?,F(xiàn)在比較流行的基于包交換的接口有串行 RapidIO接口、 PCI Express接口和千兆以太網(wǎng)接口等。
串行RapidIO、PCI Express和千兆以太網(wǎng)技術(shù)都可以提供高速、可靠的點對點互聯(lián)。串行RapidIO技術(shù)是專門為嵌入式系統(tǒng)互聯(lián)而設(shè)計的,只要有足夠多的交換機,就可以實現(xiàn)任意結(jié)構(gòu)的拓撲。PCI Express技術(shù)是著眼于最大的兼容PCI總線技術(shù)而設(shè)計,為了能夠兼容傳統(tǒng)的PCI總線技術(shù),PCI Express的拓撲結(jié)構(gòu)只能是樹形結(jié)構(gòu)。這種結(jié)構(gòu)在PC機和服務(wù)器內(nèi)非常適用,如果合適的話,也能用在嵌入式系統(tǒng)內(nèi)。但在PCI Express的結(jié)構(gòu)中除了要有交換機,還需要有一個根聯(lián)合體來做統(tǒng)一的管理,這增加了硬件的開銷。千兆以太網(wǎng)技術(shù)是百兆以太網(wǎng)技術(shù)的升級,最初用于局域網(wǎng)內(nèi)和廣域網(wǎng)內(nèi)的互聯(lián),是非常可靠的互聯(lián)選擇。但千兆以太網(wǎng)技術(shù)較前2種技術(shù)的效率稍低,而且系統(tǒng)延時較大,不太適合實時嵌入式系統(tǒng)內(nèi)部的互聯(lián)。在這3種技術(shù)中,串行RapidIO技術(shù)是在嵌入式系統(tǒng)內(nèi)實現(xiàn)互聯(lián)的最佳選擇[1]。
1 RapidIO技術(shù)
RapidIO是一種高性能、低引腳數(shù)、基于包交換的系統(tǒng)級互聯(lián)協(xié)議,是專門為多種多樣的嵌入式系統(tǒng)互聯(lián)而建立的一種標(biāo)準(zhǔn)[1]。RapidIO接口主要適用于芯片到芯片和電路板到電路板之間的連接。在2008年3月由RapidIO組織公布的2.0版本的規(guī)范中,串行RapidIO鏈路可以支持每路1.25、2.5、3.125、5、6.25 GBaud的傳輸速率[2](1,2,2.5,4,5 Gb/s的有效數(shù)據(jù)率)?,F(xiàn)在FPGA的IP核能夠支持的主流配置是x1或x4的鏈路,每路支持2.5 Gb/s或3.125 Gb/s的傳輸速率。因此,如果采用x4的鏈路和3.125 Gb/s傳輸速率,就可以達到雙向各12.5 Gb/s的帶寬。另外,RapidIO也提供了較高級別的錯誤管理和錯誤恢復(fù)機制,是一種比較穩(wěn)定和可靠的互聯(lián)選擇[3]。
2 系統(tǒng)結(jié)構(gòu)設(shè)計
2.1 板卡內(nèi)DSP的連接結(jié)構(gòu)
DSP板是信號處理系統(tǒng)中最基本的組成模塊,它的結(jié)構(gòu)固定不變。本文選擇ADI公司的TS201系列芯片。每塊TS201芯片帶有4個高速LINK口,其中3個LINK口用于板卡內(nèi)DSP之間的連接,1個LINK口用來通過FPGA進行協(xié)議轉(zhuǎn)換,轉(zhuǎn)成串行RapidIO接口,實現(xiàn)與其他板卡之間的連接。板卡上共采用6塊TS201芯片,其拓撲結(jié)構(gòu)如圖1所示。圖中虛線部分表示DSP芯片之間的LINK口連接,實線部分表示DSP與FPGA的LINK口連接。
這種拓撲結(jié)構(gòu)能夠達到板卡內(nèi)DSP之間較高的傳輸速度,因為每個DSP直接或最多經(jīng)過一次中轉(zhuǎn)就能與板上任意其他的DSP進行通信。
2.2 板卡間DSP的連接結(jié)構(gòu)
在DSP板板卡之間用RapidIO接口連接有很多好處。最直接的好處是,由于RapidIO采用的是串行總線,這使得背板上的布線設(shè)計不再困難,系統(tǒng)可以擴展得更大。更重要的是,由于RapidIO是以數(shù)據(jù)包的格式傳送數(shù)據(jù)的,用戶可以通過改變數(shù)據(jù)包包頭中的路由信息來改變數(shù)據(jù)的流向。這使得系統(tǒng)的重構(gòu)變得十分容易。DSP板在系統(tǒng)中的連接如圖2所示。
在系統(tǒng)內(nèi), 任意2片(不同板卡上的)DSP芯片之間都可以建立連接。例如:如果用戶想要將DSP板1上的DSP4中的數(shù)據(jù)發(fā)送給DSP板3上的DSP6,只需在系統(tǒng)上電時提前將DSP板1上的FPGA內(nèi)部控制路由的寄存器(目標(biāo)板ID號設(shè)為3,目標(biāo)DSP分配的地址設(shè)置為6)通過軟件設(shè)置好即可。交換機收到數(shù)據(jù)后,會根據(jù)數(shù)據(jù)包中用戶配置的路由信息將數(shù)據(jù)包送往目標(biāo)DSP板,然后,目標(biāo)DSP板上的FPGA進一步將數(shù)據(jù)發(fā)送到目標(biāo)DSP芯片。在下一次的算法設(shè)計中,如果數(shù)據(jù)的流向改變很大時,用戶可以根據(jù)數(shù)據(jù)流向的特點,重新優(yōu)化DSP網(wǎng)絡(luò)的拓撲結(jié)構(gòu),以適應(yīng)不同的算法。
重構(gòu)DSP網(wǎng)絡(luò)拓撲的過程在傳統(tǒng)的信號處理平臺中是很難實現(xiàn)的。在多數(shù)情況下,由于DSP拓撲結(jié)構(gòu)不夠靈活,算法設(shè)計者受限于固定的DSP拓撲結(jié)構(gòu),只能降低系統(tǒng)的使用效率,從而使大量的DSP資源閑置,降低了系統(tǒng)的處理能力。而在這種新的信號處理平臺架構(gòu)中,用戶只需要通過軟件界面設(shè)置路由信息即可完成整個平臺結(jié)構(gòu)的改變,系統(tǒng)不會因為算法的改變而降低使用效率。
2.3 FPGA內(nèi)部的邏輯設(shè)計
在DSP板卡上有一塊Altera公司的StraTIx II GX系列的FPGA芯片。這塊FPGA芯片專門用來實現(xiàn)LINK口與RapidIO接口之間的數(shù)據(jù)轉(zhuǎn)換,將6路LINK口數(shù)據(jù)整合到1路RapidIO通路中。數(shù)據(jù)接收和發(fā)送的邏輯結(jié)構(gòu)如圖3所示。
當(dāng)DSP發(fā)送數(shù)據(jù)時,F(xiàn)PGA的LINK口接收模塊將收到的數(shù)據(jù)緩存到FIFO中,數(shù)據(jù)輪詢狀態(tài)機按順序檢查FIFO的存儲狀態(tài)。當(dāng)FIFO內(nèi)的數(shù)據(jù)滿足RapidIO包最大負載(256 B)時,啟動1次RapidIO數(shù)據(jù)發(fā)送操作。另外,由于LINK口傳輸協(xié)議不包含數(shù)據(jù)長度,所以1次LINK口傳輸?shù)臄?shù)據(jù)長度不可能正好是256 B的整數(shù)倍。如果當(dāng)前FIFO內(nèi)有低于256 B的數(shù)據(jù),而當(dāng)前LINK口又沒有處于傳輸狀態(tài),也認為LINK口完成了1次數(shù)據(jù)發(fā)送,這時也啟動一次RapidIO數(shù)據(jù)發(fā)送操作。
在每次啟動RapidIO數(shù)據(jù)發(fā)送操作之前,配置寄存器模塊會根據(jù)不同的DSP號將對應(yīng)的路由信息輸入給RapidIO的IP核。RapidIO的IP核負責(zé)將輸入的路由信息和數(shù)據(jù)一起打包并發(fā)送出去。
在RapidIO的數(shù)據(jù)接收端,當(dāng)RapidIO核接收到數(shù)據(jù)時,首先檢查數(shù)據(jù)包包頭中的目標(biāo)板ID號信息。如果目標(biāo)板ID號與本地的ID號一致,說明數(shù)據(jù)包是發(fā)往這個板卡的,然后RapidIO核將接收到的數(shù)據(jù)和DSP地址信息傳遞給數(shù)據(jù)分發(fā)狀態(tài)機,由數(shù)據(jù)分發(fā)狀態(tài)機根據(jù)地址信息將數(shù)據(jù)分發(fā)到對應(yīng)的FIFO中。最后,由LINK口發(fā)送模塊將數(shù)據(jù)傳給目標(biāo)DSP。
這種將不同的信號相互交織在不同時間段內(nèi),沿著同一個信道傳輸,在接收端再用某種方法將各個時間段內(nèi)不同的信號提取出來的方式,類似于通信中的時分復(fù)用的機制。
2.4 功能仿真
為了驗證rapidIO IP核的邏輯功能和LINK口與rapidIO接口的轉(zhuǎn)換邏輯功能,將2個rapidIO核的td[3:0],rd[3:0]對接起來。其中一個rapidIO核的后端連接發(fā)送數(shù)據(jù)包的控制邏輯,另一個rapidIO核后端連接接收數(shù)據(jù)包的控制邏輯。將LINK口邏輯、接口轉(zhuǎn)換邏輯和rapidIO核邏輯串接起來,然后在數(shù)據(jù)發(fā)送端施加激勵信號,在數(shù)據(jù)接收端進行數(shù)據(jù)檢驗。整個過程如圖4所示。
在仿真過程中,最關(guān)鍵的部分是驗證rapidIO核的邏輯功能。Altera公司提供的rapidIO IP核的邏輯層接口符合avalon總線的接口時序[4](avalon總線是由Altera公司提出,用于在基于FPGA的片上系統(tǒng)中連接片內(nèi)處理器和片內(nèi)外設(shè)的總線結(jié)構(gòu))。對rapidIO核的控制可以參照avalon規(guī)范[5]。
2.5 缺陷及解決方案
在系統(tǒng)中,每路LINK口實現(xiàn)300 MB/s的帶寬,如果6路LINK口同時發(fā)送數(shù)據(jù),總帶寬將達到14 Gb/s,已經(jīng)超出了RapidIO的IP核所能支持的最大帶寬。這時,RapidIO鏈路將成為數(shù)據(jù)傳輸?shù)钠款i,從而造成DSP的傳輸速率降低。另外,當(dāng)少于3個DSP發(fā)送數(shù)據(jù)時,又會造成RapidIO鏈路的浪費。這像大城市中的交通一樣,在上下班高峰時道路會擁堵,在其他時間,道路又暢通無阻。生活中,很多人會避免上下班高峰時期出行。類似地,在使用此系統(tǒng)時,應(yīng)該盡量避免在一塊DSP板卡上同時發(fā)送6個DSP的數(shù)據(jù)到其他板卡。
本文提出了一種利用RapidIO技術(shù)搭建的可重構(gòu)的信號處理平臺,并簡要介紹了其邏輯功能的實現(xiàn)。該平臺的最大優(yōu)勢就是系統(tǒng)的可重構(gòu)性。使用這樣的信號處理平臺,DSP工程師可以根據(jù)不同算法的數(shù)據(jù)流向重新搭建出更加優(yōu)化的DSP網(wǎng)絡(luò)拓撲結(jié)構(gòu),從而提高數(shù)據(jù)的傳輸效率??傊芍貥?gòu)的信號處理平臺能夠靈活地改變系統(tǒng)中DSP網(wǎng)絡(luò)的拓撲結(jié)構(gòu)以適應(yīng)各種數(shù)據(jù)流向的應(yīng)用,為用戶和國家節(jié)省大量的設(shè)備購買費用和研發(fā)時間。