在上一期中,該文重點(diǎn)介紹了FPGA與DSP的含義、種類、原理和特點(diǎn),那么本期還將繼續(xù)為大家介紹FPGA與DSP兩者的比較,希望能給廣大讀者提供借鑒意義。
FPGA與DSP的比較
一般,F(xiàn)PGA可以說是并行處理,硬件方式,具實(shí)時(shí)性;DSP是線性處理指令,獨(dú)占執(zhí)行方式,非實(shí)時(shí)。FPGA要考慮各模塊之間的握手協(xié)調(diào);DSP則要考慮中斷響應(yīng)和子功能程序掛起的優(yōu)先級。
雖然FPGA與DSP都用于某個(gè)功能的硬件電路實(shí)現(xiàn),但是它們的側(cè)重點(diǎn)有所不同。現(xiàn)從下列三個(gè)方面比較如下。
從內(nèi)部資源上比較
FPGA側(cè)重于設(shè)計(jì)具有某個(gè)功能的硬件電路,內(nèi)部資源是VersaTiles(ActelFPGA)之類的微小單元,F(xiàn)PGA的內(nèi)部單元初始在編程前都是使用HDL語言實(shí)現(xiàn)硬件電路的設(shè)計(jì)描述。FPGA可以內(nèi)部實(shí)現(xiàn)ALU、加法器、乘法器、累加器、FIFO、SRAM、DDRcontroller、FFT、HDLC、DMA、PWM等數(shù)字電路,F(xiàn)PGA內(nèi)部的連線資源,將這些功能模塊的內(nèi)部和模塊之間的信號連接起來,構(gòu)成較大的模塊。目前的FPGA都可以直接內(nèi)嵌諸如ARM7、CoretexM1、Core8051等微處理器,用于FPGA的軟核的,也有的廠商將一些硬件模塊直接做到FPGA中,即FPGA內(nèi)部的硬核。傳統(tǒng)的FPGA都是實(shí)現(xiàn)純數(shù)字電路的,只有Actel的FPGA實(shí)現(xiàn)了數(shù)?;旌系腜SC單芯片技術(shù),真正的提升和擴(kuò)大了FPGA的應(yīng)用功能和領(lǐng)域。多數(shù)FPGA都有PLL、DLL之類的鎖相環(huán),Slew可調(diào),Actel還內(nèi)建了OSC、RTC、Power manager之類的硬件單元,甚至Actel的Fusion系列還內(nèi)建了600kbps的12bit的ADC以及MOSFET Driver之類的模擬接口,內(nèi)部有User Flash Memeory,F(xiàn)lash ROM等資源可以實(shí)現(xiàn)真正的PSC、Bootloader之類的功能。
DSP主要是側(cè)重算法處理,內(nèi)部資源主要是乘法器、加法器之類的資源,有SPI、UART等接口,接受一定的指令集。內(nèi)部的資源基本上都是現(xiàn)成的,非常方便于客戶的使用。但是相對來講其功能是有局限性的,所以主要用于某些特定的領(lǐng)域。DSP也有內(nèi)嵌的鎖相環(huán)、計(jì)數(shù)器、Baud rate發(fā)生器,有的DSP也有ADC模擬接口。
從使用的編程語言上比較
FPGA主要使用HDL,包括VHDl、Verilog,還有數(shù)?;旌系拿枋稣Z言Verilog-AMS等;而DSP使用C、C++等匯編語言編程。
從功能角度上比較
FPGA普遍用于實(shí)現(xiàn)數(shù)字電路模塊,基本上能實(shí)現(xiàn)所有的數(shù)字電路,以及客戶特定需求的數(shù)字處理模塊。FPGA的IO橋接種類繁多,不同種類級別的FPGA支持的IO標(biāo)準(zhǔn)和協(xié)議都不盡相同,但是這些IO的驅(qū)動(dòng)能力或是電壓都是可編程配置的。Actel的Fusion還能用于電流/電壓檢測、溫度的檢測、MOSFET driver、電源管理等,其獨(dú)特的Flash工藝技術(shù)可以依靠電池供電工作,和掉電實(shí)時(shí)保存數(shù)據(jù),超低功耗,多種工作模式(Static、Sleep mode)。尤其IGLOO芯片的功能在Sleep mode下功耗只有5uW,因而可用于手機(jī)、GPS之類的移動(dòng)設(shè)備中。此外,用FPGA可實(shí)現(xiàn)ASIC前期的設(shè)計(jì)驗(yàn)證,能實(shí)現(xiàn)DSP、CPU、MCU等功能,內(nèi)存控制器,用于工業(yè)的PWM、SVPWM、Clarke、Park的正逆變換的實(shí)現(xiàn),VGA控制,數(shù)據(jù)的編解碼,解復(fù)用,高達(dá)上Gbps的信號處理,實(shí)現(xiàn)協(xié)議的轉(zhuǎn)換等功能,都是DSP難以勝任的。
DSP內(nèi)部有很多現(xiàn)成的硬件模塊和接口以及控制器,但是需要軟件編程設(shè)定,可以實(shí)現(xiàn)PWM控制、接口控制、UART接口、SPI接口等功能。但是由于受指令集的時(shí)鐘周期的限制,DSP不能處理太高的信號,至于說上Gbps的信號,LVDS之類的信號就很難涉及了。所以相應(yīng)的應(yīng)用領(lǐng)域會(huì)有所限制。但是,不同的領(lǐng)域設(shè)計(jì)方案不同,考慮的側(cè)重點(diǎn)也會(huì)不同,有些領(lǐng)域設(shè)計(jì)者愛好使用DSP,如算法實(shí)現(xiàn),協(xié)議的處理等換作FPGA來處理那就得不償失。 [nextpage]
隨著FPGA本身成本和體積的不斷降低,性能不斷上升,ASIC的市場大部分都已經(jīng)不可否認(rèn)地讓給了FPGA,技術(shù)融合已經(jīng)是一條必經(jīng)之路。因CPU指令流水線的管道數(shù)有限,只能支持?jǐn)?shù)量有限的指令并行處理;而FPGA則可以為之提供多管道,同時(shí)并行處理大量指令,且FPGA還可執(zhí)行大量的數(shù)據(jù)吞吐操作,因此在指令和數(shù)據(jù)兩方面FPGA都能獲得比傳統(tǒng)CPU更大的工作效率,從而產(chǎn)生了CPU+FPGA的組合。
FPGA器件可以實(shí)現(xiàn)各功能塊同時(shí)工作,實(shí)現(xiàn)指令級、比特級、流水線級甚至是任務(wù)級的并行執(zhí)行,其效率遠(yuǎn)遠(yuǎn)高過通用DSP處理器。但FPGA以前都是為驗(yàn)證ASIC原型而設(shè)計(jì),因此雖然FPGA在節(jié)省工程開發(fā)時(shí)間上效率非常高,但是在利用效率方面卻比DSP要遜色。一般,F(xiàn)PGA芯片價(jià)格貴過DSP,不過FPGA同時(shí)可并行處理的數(shù)字信號運(yùn)算量大于DSP,當(dāng)數(shù)字信號運(yùn)算需求量夠大的時(shí)候,F(xiàn)PGA在性價(jià)比上才會(huì)超過DSP。雖然FPGA擁有取代DSP的良好后續(xù)發(fā)展,但多核心處理器是FPGA的威脅。
ARM具有比較強(qiáng)的事務(wù)管理功能,可以用來跑界面以及應(yīng)用程序等,其優(yōu)勢主要體現(xiàn)在控制方面,而DSP主要是用來計(jì)算的,比如進(jìn)行加密解密、調(diào)制解調(diào)等,優(yōu)勢是強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度。FPGA可以用VHDL或verilogHDL來編程,靈活性強(qiáng),由于能夠進(jìn)行編程、除錯(cuò)、再編程和重復(fù)操作,因此可以充分地進(jìn)行設(shè)計(jì)開發(fā)和驗(yàn)證。當(dāng)電路有少量改動(dòng)時(shí),更能顯示出FPGA的優(yōu)勢,其現(xiàn)場編程能力可以延長產(chǎn)品在市場上的壽命,而這種能力可以用來進(jìn)行系統(tǒng)升級或除錯(cuò)。
值得指出的是,Altera、Xilinx等公司開發(fā)了實(shí)現(xiàn)數(shù)字信號處理算法的FPGA,它們提供軟件或VHDL等開發(fā)語言,通過軟件編程用硬件實(shí)現(xiàn)特定的數(shù)字信號處理算法。由于它具有通用性的特點(diǎn),并可以實(shí)現(xiàn)算法的并行運(yùn)算,因而可代替DSP作為獨(dú)立的數(shù)字信號處理器或作為DSP芯片的協(xié)處理器應(yīng)用。通用的DSP的靈活性主要體現(xiàn)在軟件容易更改,以及對各種算法處理和復(fù)雜算法的實(shí)現(xiàn)上,而對硬件本身的更改則不行。FPGA是由大量的邏輯宏單元組成,通過配置可使這些邏輯宏單元形成不同的硬件結(jié)構(gòu),從而可構(gòu)成不同的電子系統(tǒng)來完成不同的功能。由FPGA構(gòu)成的DSP電路同樣以并行或順序方式工作:在并行工作方面,F(xiàn)PGA與專用DSP相當(dāng),但遠(yuǎn)優(yōu)于通用DSP,如通用DSP需大量運(yùn)算指令完成的工作,F(xiàn)PGA可在一個(gè)周期內(nèi)完成;在順序執(zhí)行方面,F(xiàn)PGA比通用DSP快,且每一順序工作的時(shí)鐘周期中能同時(shí)并行完成許多執(zhí)行,而通用DSP卻不能。隨著多達(dá)數(shù)百萬門高密度FPGA的出現(xiàn),F(xiàn)PGA可嵌入許多面向DSP的專用硬核模塊,結(jié)合大量可配置于FPGA硬件結(jié)構(gòu)中的參數(shù)化的DSP IP軟核,開發(fā)者能十分容易地將整個(gè)DSP系統(tǒng)實(shí)現(xiàn)在一片F(xiàn)PGA中,從而實(shí)現(xiàn)了所謂可編程SoC,顯示了FPGA高速高帶寬的優(yōu)勢。
由此,可粗略地列出FPGA與DSP的比較如表1所示。由表1可知,兩者側(cè)重點(diǎn)不同而各有優(yōu)劣,一般專做數(shù)據(jù)處理用DSP;低端的FPGA比較善于做控制用,且用起來較靈活,想做什么控制器都可以自己編寫,而不用專用芯片。但現(xiàn)在,從整體性價(jià)比考慮,一般實(shí)時(shí)處理系統(tǒng)均采取DSP+FPGA相結(jié)合的結(jié)構(gòu)形式(未完待續(xù))。