應(yīng)用FPGA實(shí)現(xiàn)DSP與RapidIO網(wǎng)絡(luò)互聯(lián)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1. 引言
隨著通訊系統(tǒng)的數(shù)據(jù)處理量日益增大,過(guò)去總線形式的體系結(jié)構(gòu)逐漸成為約束處理能力進(jìn)一步提升的瓶頸。本文首先簡(jiǎn)單介紹了嵌入式設(shè)計(jì)中總線結(jié)構(gòu)的演化過(guò)程,從而引出新一代點(diǎn)對(duì)點(diǎn)串行交換結(jié)構(gòu)RapidIO。
在密集型實(shí)時(shí)信號(hào)處理應(yīng)用中,DSP 由于其本身結(jié)構(gòu)特點(diǎn)具有不可替代的位置。但是遺憾的是目前很多DSP不具有RapidIO 接口,而且也沒(méi)有ASIC 能夠?yàn)檫@些DSP提供RapidIO接口。為了在RapidIO 網(wǎng)絡(luò)中充分利用DSP 數(shù)據(jù)處理的優(yōu)勢(shì),我們采用FPGA 做一個(gè)轉(zhuǎn)接橋邏輯,將DSP 的總線連接到一個(gè)RapidIO 的IP 核,從而實(shí)現(xiàn)DSP 和RapidIO 網(wǎng)絡(luò)的互聯(lián)。
2. 總線結(jié)構(gòu)概述
2.1 總線結(jié)構(gòu)的演化
高速通信和超快速計(jì)算的需求日益增大,使得多處理器以及各種外部設(shè)備協(xié)同工作才能滿足實(shí)時(shí)快速的要求。傳統(tǒng)的系統(tǒng)中,這些處理器、處理器簇、外設(shè)之間的數(shù)據(jù)交互是基于并行的共享總線方式進(jìn)行。從單分段總線到級(jí)聯(lián)的多分段總線,這些基于共享總線的體系結(jié)構(gòu)中,所有的設(shè)備通訊競(jìng)爭(zhēng)帶寬,這樣交互數(shù)據(jù)成為了整體系統(tǒng)性能的瓶頸。不僅如此,并行總線所需要的大量IO 引腳也給系統(tǒng)的電器性能和機(jī)械性能帶來(lái)相當(dāng)?shù)目简?yàn)。因此,提高系統(tǒng)性能就迫切需要一種新的體系結(jié)構(gòu)。
目前新型的體系結(jié)構(gòu)是基于點(diǎn)對(duì)點(diǎn)串行交換結(jié)構(gòu)的體系。相比傳統(tǒng)的并行共享總線結(jié)構(gòu),串行交換結(jié)構(gòu)中的兩個(gè)端點(diǎn)交互數(shù)據(jù)不影響其他端點(diǎn)之間的數(shù)據(jù)交互,從而大大提高了系統(tǒng)帶寬,除此之外,串行交換結(jié)構(gòu)所需要的引腳也大大減少了,而且串行結(jié)構(gòu)采用的差分線連接也提高了信號(hào)傳輸?shù)木嚯x和可靠性。當(dāng)前流行的串行交換結(jié)構(gòu)主要有PCI-Express,InfiniBand,RapidIO 等。這些總線結(jié)構(gòu)的應(yīng)用范圍既有交叉有各有側(cè)重。
2.2 RapidIO 交換結(jié)構(gòu)
RapidIO 互連架構(gòu),它的設(shè)計(jì)與最流行的集成通信處理器、主機(jī)處理器以及網(wǎng)絡(luò)數(shù)字信號(hào)處理器相兼容,是高性能包交換互連技術(shù)。它滿足了高性能嵌入式系統(tǒng)行業(yè)對(duì)內(nèi)部系統(tǒng)互連的需求,包括可靠性、高帶寬和更快的總線速率。相比PCI、PCI-X、PCIE 和Infiniband來(lái)說(shuō),RapidIO 主要特性是具有極低的延遲性和高帶寬,并很容易實(shí)現(xiàn)和PCI、PCI-X、PCIE、FPDP、以太網(wǎng)等的橋接,適合用于芯片與芯片、板與板、系統(tǒng)與系統(tǒng)之間的高速數(shù)據(jù)傳輸。
3. 系統(tǒng)設(shè)計(jì)
3.1 工程背景
多片 DSP 形成處理器簇,共同完成快速實(shí)時(shí)的運(yùn)算已經(jīng)成為現(xiàn)代信號(hào)處理機(jī)一種流行的方式。但是目前大多數(shù)DSP 都不具備RapidIO 接口,所以我們采用FPGA,將DSP 的總線與一個(gè)RapidIO IP 核總線相連接,實(shí)現(xiàn)DSP 與RapidIO 網(wǎng)絡(luò)的通信。
3.2 芯片選型
我們選用 Analog 的TigerShark101(以下簡(jiǎn)稱TS101) DSP, ADSP-TS101S 是TigerSHARC 處理器系列中的首款器件。FPGA 選用Altera 的Stratix II GX 60 芯片。
Altera 的RapidIO 的IP 核兼容于2005 年2 月發(fā)布的RapidIO 互連標(biāo)準(zhǔn)1.3,實(shí)現(xiàn)了3種標(biāo)準(zhǔn)速度1.25G、2.5G、3.125G 下1x/4x 的物理層協(xié)議。同時(shí),Altera 公司的SOPC 工具提供了大量的成熟的IP 核和可裁剪的Avalon 總線,方便的幫助用戶實(shí)現(xiàn)模塊化設(shè)計(jì)。
3.3 系統(tǒng)結(jié)構(gòu)
將 TS101 的總線橋接到FPGA 的Avalon 總線上。其中,DSP 芯片是用來(lái)做大量的數(shù)據(jù)處理,F(xiàn)PGA 是DSP 和RapidIO 之間通訊的橋梁。FPGA 內(nèi)的RapidIO 接口有成熟的IP 核,將DSP 和RapidIO 的IP 核連接的關(guān)鍵在于實(shí)現(xiàn)DSP 外部總線到IP 核Avalon 總線的轉(zhuǎn)換。
TS101 內(nèi)部有一個(gè)寄存器SYSCON,用來(lái)控制外部端口、主機(jī)接口、多處理器接口的數(shù)據(jù)位寬、插入的等待周期、流水線深度等設(shè)置。由于這個(gè)寄存器在上電后只能修改一次,這里我們將外部端口配置位32 位的慢速協(xié)議,完成RapidIO 的維護(hù),門鈴等事務(wù);將主機(jī)接口配置位64 位的流水線協(xié)議,完成高速的IO 事務(wù)。通過(guò)轉(zhuǎn)接橋邏輯的轉(zhuǎn)換。
4. 轉(zhuǎn)接橋設(shè)計(jì)
4.1 轉(zhuǎn)接橋總體結(jié)構(gòu)
轉(zhuǎn)接橋邏輯為 TS101 總線接口與Avalon 總線接口轉(zhuǎn)換器,由四個(gè)模塊及輔助電路構(gòu)成。
4.2 總線模式控制電路
總線模式控制電路完成根據(jù)系統(tǒng)請(qǐng)求情況切換 TS101 總線端地址、數(shù)據(jù)以及相應(yīng)的控制信號(hào)的輸入輸出方向、功能及狀態(tài)。其中需要控制的部分包括:數(shù)據(jù)總線的輸入輸出方向連接及模式控制,地址總線的輸入輸出方向連接及模式控制,TS101 的讀控制信號(hào)的輸入輸出方向連接及模式控制,TS101 的寫控制信號(hào)的輸入輸出方向連接及模式控制,TS101 的ACK 信號(hào)的輸入輸出方向連接及模式控制。另外,該模塊中還完成一些控制信號(hào)的連接。
4.3 Host Master 模塊
Host_Master 模塊完成在系統(tǒng)工作于TS101 側(cè)控制模式時(shí)對(duì)Avalon 總線進(jìn)行讀寫的總線時(shí)鐘切換和相關(guān)部分工作時(shí)的控制。它大致可分為四部分完成:
1. 數(shù)據(jù)讀寫控制產(chǎn)生電路在數(shù)據(jù)寫時(shí)根據(jù)輸入管腳中的片選信號(hào)、寫信號(hào),將DSP 要寫入Avalon 總線的地址及數(shù)據(jù)寫入host_address_fifo 中。當(dāng)是數(shù)據(jù)讀時(shí),根據(jù)輸入管腳中的片選信號(hào)、讀信號(hào),將DSP 要寫入Avalon 總線的地址寫入host_addrfifo 中,同時(shí)產(chǎn)生數(shù)據(jù)讀等待信號(hào),當(dāng)從host_readdata_fifo 總線讀到數(shù)據(jù)后,該電路撤銷讀等待信號(hào),并將得到的數(shù)據(jù)送入TS101 的數(shù)據(jù)總線。
2. host_address_fifo 模塊完成在TS101 控制系統(tǒng)總線時(shí),DSP 接口時(shí)鐘到Avalon 總線地址及寫入數(shù)據(jù)的換時(shí)鐘控制。
3. host_readdata_fifo 模塊完成在TS101 控制系統(tǒng)總線時(shí),Avalon 總線到DSP 接口總線的讀入數(shù)據(jù)的換時(shí)鐘控制。
4. 數(shù)據(jù)讀控制狀態(tài)機(jī)電路部分完成TS101 的讀控制信號(hào)的產(chǎn)生,以及讀到的數(shù)據(jù)信號(hào)的存儲(chǔ)控制。
4.4 Avalon Master 模塊
Avalon_Master 模塊設(shè)計(jì)一個(gè)狀態(tài)機(jī)控制電路,完成在Avalon 總線上的地址、Byteenable、讀寫控制信號(hào)、讀數(shù)據(jù)信號(hào)和寫數(shù)據(jù)信號(hào)的產(chǎn)生與控制處理。同時(shí)還有等待讀數(shù)據(jù)到來(lái)以及讀數(shù)據(jù)確認(rèn)工作。
4.5 Avalon Slave 模塊
Avalon_Slave 模塊是一個(gè)Avalon 總線的從設(shè)備,它可接收Avalon 總線上其它主設(shè)備發(fā)送過(guò)來(lái)的數(shù)據(jù)寫請(qǐng)求、數(shù)據(jù)讀請(qǐng)求,同時(shí)將從通過(guò)Host 接口讀到的數(shù)據(jù)按相應(yīng)的總線規(guī)則送到數(shù)據(jù)總線上,同時(shí)產(chǎn)生數(shù)據(jù)有效信號(hào)。由于這里的設(shè)計(jì)采用可變讀等待設(shè)計(jì),同時(shí)還需要完成對(duì)TS101 數(shù)據(jù)讀取換鐘轉(zhuǎn)換。該模塊主要由以下三部分構(gòu)成:
1. ts101_slave_address_fifo 模塊模塊完成在Avalon 總線上的主設(shè)備控制系統(tǒng)總線時(shí),Avalon 總線到DSP 總線的地址及寫入數(shù)據(jù)的換時(shí)鐘控制。
2. ts101_slave_readdata_fifo 模塊模塊完成在Avalon 總線上的主設(shè)備控制系統(tǒng)總線時(shí),DSP 總線到Avalon 總線的讀入數(shù)據(jù)的換時(shí)鐘控制。
3. 數(shù)據(jù)讀控制電路部分完成讀數(shù)據(jù)的確認(rèn)以及讀值有效信號(hào)的產(chǎn)生。
4.6 Host Slave 模塊
Host_Slave 模塊為一個(gè)控制狀態(tài)機(jī)電路,它根據(jù)Avalon_Slave 模塊提供的信號(hào)完成對(duì)DSP 的主總線控制請(qǐng)求,帶發(fā)送信號(hào)的組織,發(fā)送和接收信號(hào)的確認(rèn)接收,包括產(chǎn)生HBRN信號(hào),并根據(jù)HBGN 信號(hào)的狀態(tài)產(chǎn)生讀寫控制信號(hào)、讀寫地址信號(hào)、寫數(shù)據(jù)信號(hào)以及從DSP中讀回待接收的讀數(shù)據(jù)信號(hào)。
5. 功能測(cè)試
目前,Altera 的RapidIO IP 核支持的RapidIO 事務(wù)有:讀操作NREAD 請(qǐng)求和響應(yīng),寫操作NWRITE 請(qǐng)求,帶響應(yīng)的寫操作NWRITE_R 請(qǐng)求和響應(yīng),流寫(SWRITE)請(qǐng)求,維護(hù)(MAINTENANCE)讀請(qǐng)求和相應(yīng),維護(hù)(MAINTENANCE)寫請(qǐng)求和響應(yīng),維護(hù)(MAINTENANCE)端口寫請(qǐng)求,門鈴(DOORBELL)請(qǐng)求和相應(yīng)。在實(shí)際的測(cè)試中,將這個(gè)電路板和Mercury 公司Ensemble MPQ-101 同時(shí)安裝在Silicontkx 的串行RapidIO 開(kāi)發(fā)平臺(tái)上,結(jié)果證實(shí)DSP 通過(guò)轉(zhuǎn)接橋邏輯控制RapidIO IP 核,已經(jīng)實(shí)現(xiàn)了所有的這些事務(wù)。
6. 總結(jié)和展望
RapidIO 作為下一代嵌入式互聯(lián)技術(shù),在國(guó)內(nèi)的信號(hào)處理平臺(tái)上的運(yùn)用越來(lái)越廣泛。但是目前很多處理芯片不具有RapidIO 的接口。利用FPGA可以方便快速定制一個(gè)合適的接口,為RapidIO 網(wǎng)絡(luò)增添各種豐富的節(jié)點(diǎn)。同時(shí),本文給出了實(shí)現(xiàn)這個(gè)轉(zhuǎn)接橋的思路做了詳細(xì)討論,這樣不同的DSP,甚至CPU 都可以利用這種思路來(lái)接入RapidIO 網(wǎng)絡(luò)。
在目前的設(shè)計(jì)中,一個(gè) FPGA 為一個(gè)DSP 提供轉(zhuǎn)接橋邏輯,過(guò)于浪費(fèi)FPGA 的資源。在緊接下來(lái)的設(shè)計(jì)中,我們將4 片DSP 組成一簇接入FPGA,從而提高單板的處理能力,同時(shí)提高了FPGA 的利用率。