二十世紀(jì)80年代以來(lái),一類(lèi)先進(jìn)的門(mén)陣列——FPGA的出現(xiàn),產(chǎn)生了另一種數(shù)字電路設(shè)計(jì)方法,具有十分良好的應(yīng)用前景?;贔PGA的數(shù)字電路設(shè)計(jì)方式在可靠性、體積、成本上的優(yōu)勢(shì)是巨大的。
除了上述兩種方案,還有DSP+FPGA方案,以及選擇內(nèi)部嵌入DSP模塊的FPGA實(shí)現(xiàn)系統(tǒng)的方案。
1 DSP和FPGA的結(jié)構(gòu)特點(diǎn)
1.1 DSP的結(jié)構(gòu)特點(diǎn)
DSP是一種具有特殊結(jié)構(gòu)的微處理器。DSP芯片的內(nèi)部采用程序和數(shù)據(jù)分開(kāi)的哈佛結(jié)構(gòu),具有專(zhuān)門(mén)的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP 指令,可以用來(lái)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。根據(jù)數(shù)字信號(hào)處理的要求,DSP芯片一般具有如下的一些主要特點(diǎn):
(1)在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法;
(2)程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是兩個(gè)相互獨(dú)立的存儲(chǔ)器,每個(gè)存儲(chǔ)器獨(dú)立編址,可以同時(shí)訪問(wèn)指令和數(shù)據(jù);
(3)片內(nèi)具有快速RAM,通??赏ㄟ^(guò)獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問(wèn);
(4)具有低開(kāi)銷(xiāo)或無(wú)開(kāi)銷(xiāo)循環(huán)及跳轉(zhuǎn)的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器;
(7)可以并行執(zhí)行多個(gè)操作;
(8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。
1.2 FPGA的結(jié)構(gòu)特點(diǎn)
FPGA的結(jié)構(gòu)是由基于半定制門(mén)陣列的設(shè)計(jì)思想而得到的。從本質(zhì)上講,F(xiàn)PGA是一種比半定制還方便的ASIC(ApplicaTIon Specific Integrated Circuit 專(zhuān)用集成電路)設(shè)計(jì)技術(shù)。
FPGA的結(jié)構(gòu)主要分為三部分:可編程邏輯塊、可編程I/O模塊、可編程內(nèi)部連線??删幊踢壿媺K和可編程互連資源的構(gòu)造主要有兩種類(lèi)型:即查找表類(lèi)型和多路開(kāi)關(guān)型。
查找表型FPGA的可編程邏輯單元是由功能為查找表的SRAM(Static Random Access Memory 靜態(tài)隨機(jī)存取存儲(chǔ)器)構(gòu)成函數(shù)發(fā)生器,由它來(lái)控制執(zhí)行FPGA應(yīng)用函數(shù)的邏輯。SRAM的輸出為邏輯函數(shù)的值,由此輸出狀態(tài)控制傳輸門(mén)或多路開(kāi)關(guān)信號(hào)的通斷,實(shí)現(xiàn)與其它功能塊的可編程連接。多路開(kāi)關(guān)型可編程邏輯塊的基本構(gòu)成是一個(gè)多路開(kāi)關(guān)的配置。利用多路開(kāi)關(guān)的特性,在多路開(kāi)關(guān)的每個(gè)輸入接到固定電平或輸入信號(hào)時(shí),可實(shí)現(xiàn)不同的邏輯功能。大量的多路開(kāi)關(guān)和邏輯門(mén)連接起來(lái),可以構(gòu)成實(shí)現(xiàn)大量函數(shù)的邏輯塊。
FPGA由其配置機(jī)制的不同分為兩類(lèi):可再配置型和一次性編程型。近幾年來(lái),F(xiàn)PGA因其具有集成度高、處理速度快以及執(zhí)行效率高等優(yōu)點(diǎn),在數(shù)字系統(tǒng)的設(shè)計(jì)中得到了廣泛應(yīng)用。
2 DSP與FPGA性能比較
DSP內(nèi)部結(jié)構(gòu)使它所具有的優(yōu)勢(shì)為:所有指令的執(zhí)行時(shí)間都是單周期,指令采用流水線,內(nèi)部的數(shù)據(jù)、地址、指令及DMA(Direct Memory Access直接存儲(chǔ)器存取)總線分開(kāi),有較多的寄存器。
與通用微處理器相比,DSP芯片的通用功能相對(duì)較弱些。DSP是專(zhuān)門(mén)的微處理器,適用于條件進(jìn)程,特別是較復(fù)雜的多算法任務(wù)。在運(yùn)算上它受制于時(shí)鐘速率,而且每個(gè)時(shí)鐘周期所做的有用操作的數(shù)目也受限制。例如TMS320C6201只有兩個(gè)乘法器和一個(gè)200 MHz 的時(shí)鐘,這樣只能在每秒完成400M的乘法。
將模擬算法、具體指標(biāo)要求映射到通用DSP中,比較典型的DSP通過(guò)匯編或高級(jí)語(yǔ)言如C語(yǔ)言進(jìn)行編程,實(shí)時(shí)實(shí)現(xiàn)方案。如果DSP采用標(biāo)準(zhǔn)C程序,這種C代碼可以實(shí)現(xiàn)高層的分支邏輯和判斷。例如通信系統(tǒng)的協(xié)議堆棧,這是很難在FPGA上實(shí)現(xiàn)的。從效果來(lái)說(shuō),采用DSP器件的優(yōu)勢(shì)在于:軟件更新速度快,極大地提高了系統(tǒng)的可靠性、通用性、可更換性和靈活性,但DSP的不足是受到串行指令流的限制。
FPGA有很多自由的門(mén),通過(guò)將這些門(mén)連接起來(lái)形成乘法器、寄存器、地址發(fā)生器等等。這些只要在框圖級(jí)完成,許多塊可以從簡(jiǎn)單的門(mén)到FIR(Finite Impulse Response 有限沖激響應(yīng))或FFT(Fast Fourier Transform. 快速傅里葉變換)在很高的級(jí)別完成。但它的性能受到它所有的門(mén)數(shù)及時(shí)鐘速度的限制。例如,一個(gè)具有20萬(wàn)門(mén)的Virtex 器件可以實(shí)現(xiàn)200MHz時(shí)鐘的10個(gè)16位的乘法器。
FPGA包含有大量實(shí)現(xiàn)組合邏輯的資源,可以完成較大規(guī)模的組合邏輯電路設(shè)計(jì);與此同時(shí),它還包含有相當(dāng)數(shù)量的觸發(fā)器,借助這些觸發(fā)器,F(xiàn)PGA又能完成復(fù)雜的時(shí)序邏輯功能。通過(guò)使用各種EDA (Electronic Design AutomaTIc 電子設(shè)計(jì)自動(dòng)化)工具,設(shè)計(jì)人員可以很方便地將復(fù)雜的電路在FPGA中實(shí)現(xiàn)。象微處理器一樣,許多FPGA可以無(wú)限的重新編程,加載一個(gè)新的設(shè)計(jì)方案只需要幾百毫秒。甚至現(xiàn)場(chǎng)產(chǎn)品可以很簡(jiǎn)單而且快速的實(shí)現(xiàn)。這樣,利用重配置可以減少硬件的開(kāi)銷(xiāo)。
超過(guò)幾MHz的取樣率,一個(gè)DSP僅僅能完成對(duì)數(shù)據(jù)非常簡(jiǎn)單的運(yùn)算。而這樣簡(jiǎn)單的運(yùn)算用FPGA將很容易實(shí)現(xiàn),并且能達(dá)到非常高的取樣速率。在比較低的取樣速率時(shí),整體上很復(fù)雜的程序可以使用DSP,這對(duì)于FPGA來(lái)講是很困難的。
對(duì)于較低速的事件,DSP是有優(yōu)勢(shì)的??梢詫⑺鼈兣抨?duì),并保證它們都能執(zhí)行,但是在它們處理前可能會(huì)有些時(shí)延。而FPGA不能處理多事件,因?yàn)槊總€(gè)事件都有專(zhuān)用的硬件,但是采用這種專(zhuān)用硬件實(shí)現(xiàn)的每個(gè)事件的方式可以使各個(gè)事件同時(shí)執(zhí)行。
如果需要主工作環(huán)境進(jìn)行切換,DSP可以通過(guò)在程序里分出一個(gè)新的子程序的方式來(lái)完成,而對(duì)于每種配置FPGA需要建立專(zhuān)門(mén)的資源。如果這些配置是比較小的,那么在FPGA中可以同時(shí)存在幾種配置;如果配置較大則意味著FPGA需要重新配置,而這種方法只在某些時(shí)候可以采用。
最后,F(xiàn)PGA是以框圖方式編程的,這樣很容易看數(shù)據(jù)流。DSP是按照指令的順序流來(lái)編程的。大多數(shù)的單處理系統(tǒng)都是以某種框圖方式開(kāi)始設(shè)計(jì)的。實(shí)際上,系統(tǒng)設(shè)計(jì)者大多認(rèn)為將框圖移植給FPGA比將其轉(zhuǎn)化為DSP的C代碼更容易。
3 如何進(jìn)行DSP和FPGA方案選擇
3.1 方案選擇原則
在選擇數(shù)字系統(tǒng)核心處理部分的方案時(shí),有很多因素需要考慮。例如如何充分利用已有資源(包括軟、硬件)、系統(tǒng)要求的工作時(shí)鐘速率以及算法或工作方式的特點(diǎn)等,這些對(duì)最佳方案的選擇有很大的影響。
具體地說(shuō),在最初的方案論證階段,可以根據(jù)如下問(wèn)題的回答情況來(lái)進(jìn)行方案選擇:
(1)該系統(tǒng)的取樣速率是多少?
如果高于幾MHz,F(xiàn)PGA是理所當(dāng)然的選擇。
(2)系統(tǒng)是否已經(jīng)使用C語(yǔ)言編制的程序?如果是,DSP可以直接地實(shí)現(xiàn)。它可能達(dá)不到方案的最佳實(shí)現(xiàn),但很容易進(jìn)一步開(kāi)發(fā)。
(3)系統(tǒng)的數(shù)據(jù)率是多少?
如果高于20~30Mbyte/second,則用FPGA處理更佳。
(4)有多少個(gè)條件操作?
如果沒(méi)有,F(xiàn)PGA是很好的;如果很多,則軟件的實(shí)現(xiàn)即DSP的實(shí)現(xiàn)是更好的選擇。
(5)系統(tǒng)是否使用浮點(diǎn)?
如果是,則使用可編程的DSP更好。目前為止,一些FPGA開(kāi)發(fā)商,如Xilinx 公司的核還不支持浮點(diǎn),盡管自己可以設(shè)計(jì)。
(6)所需要的庫(kù)是否能夠獲得?
DSP和FPGA都提供諸如FIR或FFT等基本的構(gòu)建模塊。然而,更復(fù)雜的或?qū)S玫臉?gòu)件可能得不到,這將決定選擇。
3.2 方案選擇示例
下面提供了幾個(gè)數(shù)字電路設(shè)計(jì)例子,有助于理解前面介紹的方案選擇原則。
(1)用于無(wú)線數(shù)據(jù)接收機(jī)的抽樣濾波器。典型的CIC(Control Integrated Circuit 控制集成電路)濾波器工作在50~100MHz的取樣率,5步CIC有10個(gè)寄存器和10個(gè)加法器。要求加速度在500~1000MHz。
在這一速率下任何的DSP處理器將很難實(shí)現(xiàn)。然而CIC只有非常簡(jiǎn)單的結(jié)構(gòu),這樣以FPGA來(lái)實(shí)現(xiàn)將會(huì)很簡(jiǎn)單。100MHz的取樣率可以達(dá)到,甚至某些型號(hào)的FPGA還可以有些剩余資源來(lái)實(shí)現(xiàn)進(jìn)一步的處理。
(2)實(shí)現(xiàn)通信堆棧協(xié)議——ISDN(Integrated Services Digital Network 綜合服務(wù)數(shù)字網(wǎng))。IEEE1394有很復(fù)雜、大量的C代碼,完全不適合用FPGA來(lái)實(shí)現(xiàn);但是用DSP來(lái)實(shí)現(xiàn)卻很簡(jiǎn)單。不僅如此,一個(gè)信號(hào)編碼基數(shù)可以得到保留,這樣可以使代碼堆棧在某一產(chǎn)品的DSP上來(lái)實(shí)現(xiàn),或者在另一塊DSP上的分離的協(xié)議處理器來(lái)實(shí)現(xiàn)。這將給專(zhuān)門(mén)提供為代碼堆棧授權(quán)的供應(yīng)廠家以機(jī)會(huì)。
(3)數(shù)字射頻接收機(jī)的基帶處理器。一些類(lèi)型的接收機(jī)需要FFT來(lái)獲得信號(hào),然后匹配濾波器一次獲得信號(hào),這兩個(gè)模塊可以很簡(jiǎn)單的用任何一種方案實(shí)現(xiàn)。然而如果要求工作模式轉(zhuǎn)換/信號(hào)獲得和信號(hào)接收的轉(zhuǎn)換;則采用DSP方案更適合。因?yàn)镕PGA方案需要同時(shí)完成兩個(gè)模塊。
這里要注意,射頻用FPGA實(shí)現(xiàn)更好,因?yàn)檫@是一個(gè)混合、多任務(wù)的系統(tǒng)。如果應(yīng)用更大的FPGA,這樣兩個(gè)模塊可以同時(shí)用一個(gè)FPGA來(lái)實(shí)現(xiàn)。
(4)圖象處理器。對(duì)于圖象的處理過(guò)程多是簡(jiǎn)單的和重復(fù)的,這樣很適合用FPGA實(shí)現(xiàn)。然而,一個(gè)成像處理流程往往用于在所觀測(cè)的目標(biāo)識(shí)別“斑點(diǎn)”或“感興趣的區(qū)域”。這些“斑點(diǎn)”可能大小不一樣,造成后端的判斷及處理過(guò)程趨于復(fù)雜。同時(shí),所用的算法往往是自適應(yīng)的,取決于斑點(diǎn)是什么樣的。所以用DSP構(gòu)成圖象處理管道的后端處理部分是合適的。
總之,DSP和FPGA代表著兩種數(shù)字系統(tǒng)的信號(hào)處理的過(guò)程,各有所長(zhǎng)和不足之處。對(duì)于許多高速采樣頻率的應(yīng)用,特別是任務(wù)比較固定或重復(fù)的情況下,適合采用FPGA方案;同樣,對(duì)于較低的取樣速率和有很高復(fù)雜度的軟件問(wèn)題的情況適合采用DSP方案。
4 新的設(shè)計(jì)思想
4.1 DSP+FPGA結(jié)構(gòu)
DSP+FPGA結(jié)構(gòu)最大的特點(diǎn)是結(jié)構(gòu)靈活,有較強(qiáng)的通用性,適于模塊化設(shè)計(jì),從而能夠提高算法效率;同時(shí)其開(kāi)發(fā)周期較短,系統(tǒng)易于維護(hù)和擴(kuò)展。
例如,一個(gè)由DSP+FPGA 結(jié)構(gòu)實(shí)現(xiàn)的實(shí)時(shí)信號(hào)處理系統(tǒng)中,低層的信號(hào)預(yù)處理算法處理的數(shù)據(jù)量大,對(duì)處理速度的要求高,但運(yùn)算結(jié)構(gòu)相對(duì)比較簡(jiǎn)單,適于用FPGA進(jìn)行硬件實(shí)現(xiàn),這樣能同時(shí)兼顧速度及靈活性。高層處理算法的特點(diǎn)是所處理的數(shù)據(jù)量較低層算法少,但算法的控制結(jié)構(gòu)復(fù)雜,適于用運(yùn)算速度高、尋址方式靈活、通信機(jī)制強(qiáng)大的DSP芯片來(lái)實(shí)現(xiàn)。
FPGA可以完成模塊級(jí)的任務(wù),起到DSP的協(xié)處理器的作用。它的可編程性使它既具有專(zhuān)用集成電路的速度,又具有很高的靈活性。
DSP具有軟件的靈活性;而FPGA具有硬件的高速性,從器件上考察,能夠滿足處理復(fù)雜算法的要求。這樣DSP+FPGA的結(jié)構(gòu)為設(shè)計(jì)中如何處理軟硬件的關(guān)系提供了一個(gè)較好的解決方案。同時(shí),該系統(tǒng)具有靈活的處理結(jié)構(gòu),對(duì)不同結(jié)構(gòu)的算法都有較強(qiáng)的適應(yīng)能力,尤其適合實(shí)時(shí)信號(hào)處理任務(wù)。
4.2 嵌入DSP模塊的FPGA
應(yīng)用將一些能實(shí)現(xiàn)基本數(shù)字信號(hào)處理功能的DSP模塊嵌入的FPGA芯片是數(shù)字電路設(shè)計(jì)的另一個(gè)大趨勢(shì)。
有些公司已經(jīng)或計(jì)劃把基于ASIC的微處理器或DSP芯核與可編程邏輯陣列集成組合在一塊芯片上。FPGA提供的DSP性能已超過(guò)1280億MAC每秒,大大高于目前主流供應(yīng)商所能提供的傳統(tǒng)DSP的性能。
其中,Xilinx作為世界可編程邏輯器件的領(lǐng)導(dǎo)廠商,擁有先進(jìn)的FPGA技術(shù)以及先進(jìn)的開(kāi)發(fā)工具。2000年11月,推出Xilinx XtremeDSP行動(dòng),試圖進(jìn)入這一市場(chǎng)。Virtex-II可以提供6千億MAC(乘法累加運(yùn)算)每秒的性能。采用這種并行結(jié)構(gòu),256階FIR濾波器中的每個(gè)樣本可以在一個(gè)時(shí)鐘周期內(nèi)處理完,因此極大地改善了DSP的性能和效率。
Xilinx XtremeDSP行動(dòng)的目標(biāo)是希望滿足寬帶革命的高性能挑戰(zhàn)。其它特性還包括根據(jù)如芯片面積(相應(yīng)于使用的資源)和系統(tǒng)頻率來(lái)優(yōu)化DSP設(shè)計(jì)。XtremeDSP行動(dòng)還推出了一些開(kāi)發(fā)工具以彌補(bǔ)傳統(tǒng)上在DSP和FPGA設(shè)計(jì)方法間存在的差距。
新的Virtex-II系列的增強(qiáng)結(jié)構(gòu)使其在實(shí)現(xiàn)需要計(jì)算的算法時(shí)具有獨(dú)特的優(yōu)勢(shì)。Xilinx提供的測(cè)試數(shù)據(jù)表明,Xilinx FPGA比業(yè)界最快的DSP運(yùn)行要快100倍。因此,單個(gè)FPGA即可代替?zhèn)鹘y(tǒng)上所謂的DSP處理器陣列。
目前世界上的許多手機(jī)基站產(chǎn)品采用了Xilinx公司Virtex-E FPGA。為了建立大量的連接,手機(jī)基站需要處理大量的數(shù)據(jù),其中大部分是采用某種DSP實(shí)現(xiàn)的。
性能比較突出的還有QuickLogic公司推出的QuickDSP系列,它提供了嵌入式的DSP構(gòu)件塊和可編程的邏輯靈活性。這個(gè)新的系列除了提供以前的可編程的邏輯和存儲(chǔ)模塊外,還包括專(zhuān)用的乘加模塊。這些合成的模塊可以實(shí)現(xiàn)DSP功能。支持DSP功能的軟件可以由公司獲得,除了QuickWorks開(kāi)發(fā)軟件外,DSP 向?qū)О屖褂谜弋a(chǎn)生優(yōu)化的功能,如定點(diǎn)或浮點(diǎn)算術(shù)邏輯,F(xiàn)IR和IIR(Infinite Impulse Response無(wú)限沖激響應(yīng))濾波器等,只要鼠標(biāo)點(diǎn)擊幾下即可。
可以預(yù)測(cè),在不久的將來(lái),單一的DSP或FPGA實(shí)現(xiàn)的數(shù)字系統(tǒng)會(huì)被DSP+FPGA的結(jié)構(gòu)或嵌入DSP模塊的FPGA設(shè)計(jì)結(jié)構(gòu)所取代。