新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在數(shù)字電路設(shè)計(jì)方案中DSP與FPGA的比較與選擇

在數(shù)字電路設(shè)計(jì)方案中DSP與FPGA的比較與選擇

作者: 時(shí)間:2012-10-06 來(lái)源:網(wǎng)絡(luò) 收藏

信號(hào)處理技術(shù)和大規(guī)模集成電路技術(shù)的迅猛發(fā)展,為我們?cè)O(shè)計(jì)電路提供了新思路和新方法。當(dāng)前系統(tǒng)設(shè)計(jì)正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。技術(shù)的發(fā)展使這一趨勢(shì)成為可能和必然。

本文引用地址:http://butianyuan.cn/article/148356.htm

和計(jì)算機(jī)一樣,數(shù)字信號(hào)處理的理論從60年代崛起以來(lái),到80年代產(chǎn)生,它飛速發(fā)展改變了信號(hào)處理的面貌。今天已廣泛應(yīng)用在語(yǔ)音、圖像、通訊、雷達(dá)、電子對(duì)抗、儀器儀表等各個(gè)領(lǐng)域。DSP起了十分關(guān)鍵的作用,成為數(shù)字的主要方法。

二十世紀(jì)80年代以來(lái),一類(lèi)先進(jìn)的門(mén)陣列——的出現(xiàn),產(chǎn)生了另一種數(shù)字方法,具有十分良好的應(yīng)用前景?;?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/FPGA">FPGA的數(shù)字方式在可靠性、體積、成本上的優(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ì)上講,FPGA是一種比半定制還方便的ASIC(Application Specific Integrated Circuit 專(zhuān)用集成電路)設(shè)計(jì)技術(shù)。

FPGA的結(jié)構(gòu)主要分為三部分:可編程邏輯塊、可編程I/O模塊、可編程內(nèi)部連線。可編程邏輯塊和可編程互連資源的構(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),FPGA因其具有集成度高、處理速度快以及執(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ā)器,FPGA又能完成復(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í)候可以采用。

最后,FPGA是以框圖方式編程的,這樣很容易看數(shù)據(jù)流。DSP是按照指令的順序流來(lái)編程的。大多數(shù)的單處理系統(tǒng)都是以某種框圖方式開(kāi)始設(shè)計(jì)的。實(shí)際上,系統(tǒng)設(shè)計(jì)者大多認(rèn)為將框圖移植給FPGA比將其轉(zhuǎn)化為DSP的C代碼更容易。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉