DSP+FPGA實(shí)時(shí)信號處理系統
1 信號處理系統的類(lèi)型與常用處理機結構
根據信號處理系統在構成、處理能力以及計算問(wèn)題到硬件結構映射方法的不同,將現代信號處理系統分為三大類(lèi):
·指令集結構(ISA)系統.在由各種微處理器、DSP處理器或專(zhuān)用指令集處理器等組成的信號處理系統中,都需要通過(guò)系統中的處理器所提供的指令系統(或微代碼)來(lái)描述各種算法,并在指令部件的控制下完成對各種可計算問(wèn)題的求解.
·硬連線(xiàn)結構系統.主要是指由專(zhuān)用集成電路(ASIC)構成的系統,其基本特征是功能固定、通常用于完成特定的算法,這種系統適合于實(shí)現功能固定和數據結構明確的計算問(wèn)題.不足之處主要在于:設計周期長(cháng)、成本高,且沒(méi)有可編程性,可擴展性差.
·可重構系統.基本特征是系統中有一個(gè)或多個(gè)可重構器件(如FPGA),可重構處理器之間或可重構處理器與ISA結構處理器之間通過(guò)互連結構構成一個(gè)完整的計算系統.
從系統信號處理系統的構成方式來(lái)看,常用的處理機結構有下面幾種:單指令流單數據流(SISD)、單指令流多數據流(SIMD)、多指令流多數據流(MIMD).
·SISD結構通常由一個(gè)處理器和一個(gè)存貯器組成,它通過(guò)執行單一的指令流對單一的數據流進(jìn)行操作,指令按順序讀取,數據在每一時(shí)刻也只能讀取一個(gè).弱點(diǎn)是單片處理器處理能力有限,同時(shí),這種結構也沒(méi)有發(fā)揮數據處理中的并行性潛力,所以在實(shí)時(shí)系統或高速系統中,很少采用SISD結構.
· SIMD結構系統由一個(gè)控制器、多個(gè)處理器、多個(gè)存貯模塊和一個(gè)互連網(wǎng)絡(luò )組成.所有“活動(dòng)的”處理器在同一時(shí)刻執行同一條指令,但每個(gè)處理器執行這條指令時(shí)所用的數據是從它本身的存儲模塊中讀取的.對操作種類(lèi)多的算法,當要求存取全局數據或對于不同的數據要求做不同的處理時(shí),它是無(wú)法獨立勝任的.另外,SIMD 一般都要求有較多的處理單元和極高的I/O吞吐率,如果系統中沒(méi)有足夠多的適合SIMD 處理的任務(wù),采用SIMD 是不合算的.
· MIMD結構就是通常所指的多處理機,典型的MIMD系統由多臺處理機、多個(gè)存儲模塊和一個(gè)互連網(wǎng)絡(luò )組成,每臺處理機執行自己的指令,操作數也是各取各的.MIMD結構中每個(gè)處理器都可以單獨編程,因而這種結構的可編程能力是最強的.但由于要用大量的硬件資源解決可編程問(wèn)題,硬件利用率不高.
2 DSP+ASIC結構
隨著(zhù)大規??删幊唐骷陌l(fā)展,采用DSP+ASIC結構的信號處理系統顯示出了其優(yōu)越性,正逐步得到重視.與通用集成電路相比,ASIC芯片具有體積小、重量輕、功耗低、可靠性高等幾個(gè)方面的優(yōu)勢,而且在大批量應用時(shí),可降低成本.
現場(chǎng)可編程門(mén)陣列(FPGA)是在專(zhuān)用ASIC的基礎上發(fā)展出來(lái)的,它克服了專(zhuān)用ASIC不夠靈活的缺點(diǎn).與其他中小規模集成電路相比,其優(yōu)點(diǎn)主要在于它有很強的靈活性,即其內部的具體邏輯功能可以根據需要配置,對電路的修改和維護很方便.目前,FPGA的容量已經(jīng)跨過(guò)了百萬(wàn)門(mén)級,使得FPGA成為解決系統級設計的重要選擇方案之一.
DSP+FPGA結構最大的特點(diǎn)是結構靈活,有較強的通用性,適于模塊化設計,從而能夠提高算法效率;同時(shí)其開(kāi)發(fā)周期較短,系統易于維護和擴展,適合于實(shí)時(shí)信號處理.
實(shí)時(shí)信號處理系統中,低層的信號預處理算法處理的數據量大,對處理速度的要求高,但運算結構相對比較簡(jiǎn)單,適于用FPGA進(jìn)行硬件實(shí)現,這樣能同時(shí)兼顧速度及靈活性.高層處理算法的特點(diǎn)是所處理的數據量較低層算法少,但算法的控制結構復雜,適于用運算速度高、尋址方式靈活、通信機制強大的DSP芯片來(lái)實(shí)現.
3 線(xiàn)性流水陣列結構
在我們的工作中,設計并實(shí)現了一種實(shí)時(shí)信號處理結構.它采用模塊化設計和線(xiàn)性流水陣列結構(圖1).
這種線(xiàn)性流水陣列結構具有如下特點(diǎn):
·接口簡(jiǎn)單.各處理單元(PU)之間采用統一的外部接口.
·易于擴充和維護.各個(gè)PU的內部結構完全相同,而且外部接口統一,所以系統很容易根據需要進(jìn)行硬件的配置和擴充.當某個(gè)模塊出現故障時(shí),也易于更換.
·處理模塊的規范結構能夠支持多種處理模式,可以適應不同的處理算法.
每個(gè)PU的核心由DSP芯片和可重構器件FPGA組成,另外還包括一些外圍的輔助電路,如存儲器、先進(jìn)先出(FIFO)器件及FLASH ROM等(圖2).可重構器件電路與DSP處理器相連,利用DSP處理器強大的I/O功能實(shí)現單元電路內部和各個(gè)單元之間的通信.從DSP的角度來(lái)看,可重構器件FPGA相當于它的宏功能協(xié)處理器(Co-processor).
PU中的其他電路輔助核心電路進(jìn)行工作.DSP和FPGA各自帶有RAM,用于存放處理過(guò)程所需要的數據及中間結果.FLASH ROM中存儲了DSP的執行程序和FPGA的配置數據.先進(jìn)先出(FIFO)器件則用于實(shí)現信號處理中常用到的一些操作,如延時(shí)線(xiàn)、順序存儲等.
每個(gè)PU單獨做成一塊PCB,各級PU之間通過(guò)插座與底板相連.底板的結構很簡(jiǎn)單,主要由幾個(gè)串連的插座構成,其作用是向各個(gè)PU提供通信通道和電源供應.可以根據需要安排底板上插座的個(gè)數,組成多級線(xiàn)性陣列結構.這種模塊化設計的突出優(yōu)點(diǎn)在于,它使得對系統的功能擴充和維護變得非常簡(jiǎn)單.需要時(shí),只要插上或更換PU電路板,就可以實(shí)現系統的擴展和故障的排除.每一級PU中的DSP都有通信端口與前級和后級PU電路板相連,可以很方便地控制和協(xié)調它們之間的工作.
4 應用實(shí)例
我們應用上述線(xiàn)性流水陣列結構實(shí)現了一個(gè)實(shí)時(shí)目標檢測系統,該系統的任務(wù)主要是接收攝像頭輸出的灰度圖象,經(jīng)預處理、編碼、直線(xiàn)擬合和目標識別后,輸出結果到PC機顯示.在這個(gè)任務(wù)中,預處理模塊包括抽樣、卷積和編碼等步驟,屬于低層的處理,其運算數據量大,但運算結構較規則,適于用FPGA進(jìn)行純硬件實(shí)現;而直線(xiàn)擬合及目標識別等高層圖象處理算法,所處理的數據量相對較少,但要用到多種數據結構,其控制也復雜得多,我們用DSP編程來(lái)實(shí)現.
重構處理模塊采用的是Xilinx公司的XC5200系列FPGA芯片.這是一種基于SRAM的現場(chǎng)可編程門(mén)陣列.表1給出了XC5200 系列FPGA的一些參數.
表1 XC5200系列FPGA的一些參數
器件 | XC5204 | XC5206 | XC5210 | XC5215 |
邏輯單元 | 480 | 784 | 1296 | 1936 |
最大邏輯門(mén) | 6000 | 10000 | 16000 | 23000 |
多功能塊 | 10×12 | 14×14 | 18×18 | 22×22 |
CLB | 120 | 196 | 324 | 484 |
觸發(fā)器 | 480 | 784 | 1296 | 1936 |
I/O | 124 | 148 | 196 | 244 |
XC5200系列FPGA邏輯功能的實(shí)現由內部規則排列的邏輯單元陣列(LCA)來(lái)完成,它是FPGA的主要部分.LCA的核心是可重構邏輯塊(CLB),四周是一些輸入/輸出塊(IOB).CLB和IOB之間通過(guò)片內的布線(xiàn)資源相連接.LCA由配置代碼驅動(dòng),CLB和IOB的具體邏輯功能及它們的互聯(lián)關(guān)系由配置數據決定.整個(gè)FPGA模塊的設計實(shí)現在Xilinx公司的Foundation 2.1i開(kāi)發(fā)平臺上完成.該系統支持設計輸入、邏輯仿真、設計實(shí)現(設計綜合)和時(shí)序仿真等系統開(kāi)發(fā)全過(guò)程.
我們選擇的是應用廣泛、性?xún)r(jià)比較高的TMS320C40芯片.它是美國TI公司推出的為滿(mǎn)足并行處理需求的32位浮點(diǎn)DSP.主要特性如下:
表2 常用微處理器對照表
處理器類(lèi)型 | DSP(Motorola) | ADSP | TMS320 | ||||
96002 | 56156 | 21020 | 2101 | C30 | C40 | C50 | |
字長(cháng)/bit | 32 | 16 | 32 | 16 | 32 | 32 | 16 |
指令周期/ns | 50 | 50 | 50 | 60 | 33 | 25 | 50 |
1024浮點(diǎn)FFT時(shí)間/ms | 1.04 | 2.33 | 0.96 | 2.07 | 2.36 | 1.93 | 3.42 |
·外部時(shí)鐘40MHz,內部時(shí)鐘20MHz,所有指令均單周期完成,處理器內部采用高度并行機制,可同時(shí)進(jìn)行多達11項各類(lèi)操作.
·兩套相同的外部數據、地址總線(xiàn),支持局部存儲器和全局共享存儲器.
·6個(gè)高速并行通信口,采用異步傳輸方式,最大速率可達20Mb/s.通過(guò)令牌傳遞可靈活實(shí)現數據雙向傳輸,這種結構很適合C40之間的互連.
·6個(gè)DMA通道,每個(gè)通道的最大速率可達20Mb/s.DMA內部總線(xiàn)與CPU的地址、數據、指令總線(xiàn)完全分開(kāi),避開(kāi)了總線(xiàn)使用上的瓶頸.
從結構和功能上看,C40很適合與可重構器件互相配合起來(lái)構成高速、高精度的實(shí)時(shí)信息處理系統,并完全可以勝任圖像信息的實(shí)時(shí)處理任務(wù);此外,C40的開(kāi)發(fā)系統也比較完備,支持C語(yǔ)言和匯編語(yǔ)言編程,能夠方便地進(jìn)行算法移植和軟/硬件的協(xié)同設計.
衡量系統的整體性能不僅要看所使用的器件和所能完成的功能,還要看器件之間采用怎樣的互連結構.XC5200可以完成模塊級的任務(wù),起到DSP的協(xié)處理器的作用.它的可編程性使它既具有專(zhuān)用集成電路的速度,又具有很高的靈活性.C40內部結構的主要優(yōu)勢是:所有指令的執行時(shí)間都是單周期,指令采用流水線(xiàn),內部的數據、地址、指令及DMA總線(xiàn)分開(kāi),有較多的寄存器.這些特征使它有較高的處理速度.FPGA具有硬件的高速性,而C40具有軟件的靈活性,從器件上考察,能夠滿(mǎn)足處理復雜算法的要求.同時(shí),C40的6個(gè)通信口和6個(gè)DMA通道使其能夠在不被中斷的情況下比較從容地應付與外界大量的數據交換.
從PU內部互連來(lái)看,C40使用了專(zhuān)用的通信口完成與FPGA的互連,能夠保證在任何情況下FPGA與C40的數據通道的暢通.另外,FPGA和C40各自都有輸入端口,使得系統的處理結構多樣化.比如,FPGA可以作為處理流程中的一個(gè)模塊,獨立完成某項功能,也可以作為C40的協(xié)處理器,通過(guò)C40的調用來(lái)完成特定的子函數.底板將互連性延伸到PU之間,使得多個(gè)電路板能夠組成多處理機系統.前級的C40既可以與下一級的C40通信,也可以將數據發(fā)送到下一級的FPGA.
綜上所述,本文提出的基于DSP+FPGA的線(xiàn)性流水陣列結構,為設計中如何處理軟硬件的關(guān)系提供了一個(gè)較好的解決方案.同時(shí),該系統具有靈活的處理結構,對不同結構的算法都有較強的適應能力,尤其適合實(shí)時(shí)信號處理任務(wù).
評論