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