《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > FPGA成為需要高性能DSP功能系統(tǒng)的理想選擇

FPGA成為需要高性能DSP功能系統(tǒng)的理想選擇

2018-08-21
關(guān)鍵詞: FPGA DSP ALU

  DSP對(duì)電子系統(tǒng)設(shè)計(jì)來(lái)說(shuō)非常重要,因?yàn)樗軌蜓杆俚販y(cè)量,、過(guò)濾或壓縮即時(shí)的模擬信號(hào)。這樣有助于實(shí)現(xiàn)數(shù)字世界和真實(shí)(模擬)世界的通信。但隨著電子系統(tǒng)進(jìn)一步精細(xì)化,,需要處理多種模擬信號(hào)源,迫使工程師不得不做出艱難的決策,。是使用多個(gè)DSP并將其功能與系統(tǒng)的其余部分同步更具優(yōu)勢(shì),?還是采用一個(gè)能夠處理多功能的具有精細(xì)軟件的高性能DSP更具優(yōu)勢(shì)?

  由于當(dāng)今的系統(tǒng)非常復(fù)雜,,在許多情況下,,單DSP的實(shí)現(xiàn)方案根本沒(méi)有足夠的處理能力。同時(shí),,系統(tǒng)架構(gòu)也不能滿足多芯片系統(tǒng)帶來(lái)的成本,、復(fù)雜性和功耗要求。

  FPGA已成為需要高性能DSP功能的系統(tǒng)的理想選擇,。事實(shí)上,,與單獨(dú)的數(shù)字信號(hào)處理器相比,F(xiàn)PGA技術(shù)常常能夠?yàn)楦唠y度的DSP挑戰(zhàn)提供大為簡(jiǎn)化的解決方案,。要明白其中的緣由,,需要回顧一下DSP的起源以及發(fā)展。

  

1.jpg

圖1:傳統(tǒng)的DSP架構(gòu),。

  專用微處理器

  在過(guò)去二十年里,,傳統(tǒng)的DSP架構(gòu)一直在竭盡全力地跟上不斷提高的性能需求的步伐。但隨著視頻系統(tǒng)大踏步地邁進(jìn)高清和3D時(shí)代,,并且通信系統(tǒng)為實(shí)現(xiàn)更高帶寬已將現(xiàn)有技術(shù)發(fā)揮到極致,,設(shè)計(jì)人員需要替代性的實(shí)現(xiàn)策略。常用于實(shí)現(xiàn)數(shù)字信號(hào)處理算法的硬件不外乎如下三種基本器件之一:微處理器,、邏輯電路和存儲(chǔ)器,。部分設(shè)計(jì)還需要額外的硬件來(lái)實(shí)現(xiàn)模數(shù)(A/D)和數(shù)模(D/A)轉(zhuǎn)換以及高速數(shù)字接口。

  傳統(tǒng)的數(shù)字信號(hào)處理器是設(shè)計(jì)用于實(shí)現(xiàn)專門目的的微處理器,。這類處理器非常適合算法密集的任務(wù),,但是性能卻受時(shí)鐘速率和其內(nèi)部設(shè)計(jì)順序性的限制。這限制了它們對(duì)輸入數(shù)據(jù)采樣每秒最多執(zhí)行的運(yùn)算次數(shù),。一般來(lái)說(shuō),,每執(zhí)行一次算術(shù)邏輯單元(ALU)運(yùn)算需要三或四個(gè)時(shí)鐘周期。多核架構(gòu)可以提升性能,,但是提升幅度仍然有限,。因此,,采用傳統(tǒng)的信號(hào)處理器設(shè)計(jì)必須將架構(gòu)單元重復(fù)用于算法實(shí)現(xiàn)。對(duì)每次執(zhí)行的加,、減,、乘或其它任何基本運(yùn)算,不論是內(nèi)部還是外部反饋,,每次執(zhí)行都必須循環(huán)通過(guò)ALU.

  不幸的是,,在處理當(dāng)今眾多的高性能應(yīng)用時(shí),這種傳統(tǒng)的DSP難以滿足系統(tǒng)的要求,。在過(guò)去為此提出過(guò)多種解決方案,,包括在一個(gè)器件中使用多個(gè)ALU,或在一塊板上布置多個(gè)DSP器件,。然而,,這些方案往往會(huì)造成成本的大幅上升,并且只是把問(wèn)題推向另一個(gè)領(lǐng)域,。例如:用多個(gè)器件提高性能遵循指數(shù)曲線,。要讓性能提高一倍,需要兩個(gè)器件,。再提高一倍,,則需要四個(gè)器件,依此類推,。另外,,編程人員往往從注重信號(hào)處理功能轉(zhuǎn)為注重多個(gè)處理器與內(nèi)核之間的任務(wù)調(diào)度。這樣會(huì)產(chǎn)生大量的附加代碼,,而且這些代碼會(huì)成為系統(tǒng)開(kāi)銷,,而不是用于解決眼前的數(shù)字信號(hào)處理問(wèn)題。

  FPGA技術(shù)的引入為解決DSP實(shí)現(xiàn)方案日益增長(zhǎng)的復(fù)雜性帶來(lái)了福音,。FPGA最初開(kāi)發(fā)用于整合和集中分立的存儲(chǔ)器和邏輯電路,,以實(shí)現(xiàn)更高的集成度、更出色的性能以及更高的靈活性,。FPGA技術(shù)已成為當(dāng)今使用的幾乎每一款高性能系統(tǒng)的重要組成部分,。與傳統(tǒng)的DSP相比,F(xiàn)PGA是由可配置邏輯塊(CLB),、存儲(chǔ)器,、DSP邏輯片(Slice)及一些其它元件組成的統(tǒng)一陣列構(gòu)成的巨大并行結(jié)構(gòu)。它們既可以使用VHDL和Verilog等高級(jí)描述語(yǔ)言進(jìn)行編程,,也可以在方框圖中用系統(tǒng)生成器(System Generator)編程,。FPGA還提供眾多的專用功能和IP核,用于以高度優(yōu)化的方式直接完成實(shí)現(xiàn)方案,。

  在FPGA中完成數(shù)字信號(hào)處理的主要優(yōu)勢(shì)在于能夠根據(jù)系統(tǒng)要求定制實(shí)現(xiàn)方案,。這意味著對(duì)于多通道或高速系統(tǒng),,用戶可以充分利用FPGA器件的并行性來(lái)實(shí)現(xiàn)性能的最佳化,而對(duì)低速系統(tǒng),,則可以更多地采用串行方式完成設(shè)計(jì),。這樣,設(shè)計(jì)人員就能夠根據(jù)算法和系統(tǒng)的要求來(lái)定制實(shí)現(xiàn)方案,,而不必折衷期望的理想設(shè)計(jì)來(lái)迎合純順序器件的諸多局限,。另外,超高速I/O通過(guò)最大限度地提高從捕捉經(jīng)處理鏈再到最終輸出的數(shù)據(jù)流,,可進(jìn)一步降低成本并減少瓶頸問(wèn)題,。

  下面以一個(gè)同時(shí)使用傳統(tǒng)DSP架構(gòu)和FPGA架構(gòu)的FIR濾波器實(shí)現(xiàn)方案為例,來(lái)說(shuō)明每種解決方案的優(yōu)劣,。

  數(shù)字FIR濾波器實(shí)例

  有限脈沖響應(yīng)(FIR)濾波器是一種使用最廣的數(shù)字信號(hào)處理元件。設(shè)計(jì)人員使用濾波器來(lái)改變數(shù)字信號(hào)的幅度或頻譜,,通常用于隔離或突出樣本數(shù)據(jù)頻譜中的特定區(qū)域,。從這個(gè)角度說(shuō),可以把濾波器視為信號(hào)的預(yù)處理方式,。在典型的濾波器應(yīng)用中,,輸入數(shù)據(jù)樣本通過(guò)小心同步的數(shù)學(xué)運(yùn)算與濾波器系數(shù)相結(jié)合(這取決于濾波器的類型和實(shí)現(xiàn)策略),隨后數(shù)據(jù)樣本進(jìn)入下一個(gè)處理階段,。如果數(shù)據(jù)源和目的地都是模擬信號(hào),,則數(shù)據(jù)樣本必須首先通過(guò)A/D轉(zhuǎn)換器,而結(jié)果則必須饋送給D/A轉(zhuǎn)換器,。

  最簡(jiǎn)單的FIR濾波器類型采用一系列的延遲元件,、乘法器和加法器樹(shù)或加法器鏈來(lái)實(shí)現(xiàn)。

  下面的等式是單通道FIR濾波器的數(shù)學(xué)表達(dá)式:

2.jpg

  該等式中的各項(xiàng)分別代表輸入樣本,、輸出樣本和系數(shù),。假設(shè)S為連續(xù)的輸入樣本流,Y為經(jīng)濾波后產(chǎn)生的輸出樣本流,,那么n和k則對(duì)應(yīng)特定的瞬時(shí)時(shí)間,。這樣,若要計(jì)算時(shí)間n時(shí)的輸出樣本Y(n),,則需要一組在N個(gè)不同時(shí)間點(diǎn)的樣本,,即:S(n)、S(n-1),、s(n-2),、…s(n-N+1)。將這組N個(gè)輸入樣本乘以N個(gè)系數(shù)并求和,,便可得出最終結(jié)果Y.

  圖2是一個(gè)簡(jiǎn)單的31抽頭FIR濾波器(長(zhǎng)度N=31)的方框圖,。

  

3.jpg

圖2:長(zhǎng)度為31抽頭的FIR濾波器,。

  在選擇濾波器的理想長(zhǎng)度和系數(shù)值時(shí),有多種設(shè)計(jì)工具可供使用,。其目的是通過(guò)選擇適當(dāng)?shù)膮?shù)來(lái)實(shí)現(xiàn)所需的濾波器性能,。參數(shù)選擇最常用的設(shè)計(jì)工具是MATLAB.一旦選定了濾波器參數(shù),就可以用數(shù)學(xué)等式實(shí)現(xiàn),。

  實(shí)現(xiàn)FIR濾波器的基本步驟包括:對(duì)輸入數(shù)據(jù)流采樣,;在緩沖區(qū)組織輸入樣本,以便讓每個(gè)捕捉到的樣本與每項(xiàng)濾波器系數(shù)相乘,;讓每個(gè)數(shù)據(jù)樣本與每項(xiàng)系數(shù)相乘,,并累加結(jié)果,;輸出濾波結(jié)果,。

  使用“相乘累加法”在處理器上實(shí)現(xiàn)FIR濾波器的典型C語(yǔ)言程序,如下列代碼所示:

  /*

  *捕捉輸入數(shù)據(jù)樣本

  */

  datasample=input(),;

  /*

  *將新數(shù)據(jù)樣本裝入緩沖器

  */

  S[n]=datasample;

  /*

  *將每個(gè)數(shù)據(jù)樣本與每項(xiàng)系數(shù)相乘并累加結(jié)果

  */

  y=0;

  for(i=0;i{

  y+=k[i]*S[(n+i)%N];

  }

  n=(n+1)%N;

  /*

  *輸出濾波結(jié)果

  */

  output(y),;

  圖3所示的實(shí)現(xiàn)方案被稱為相乘累加或MAC型實(shí)現(xiàn)方案,。這基本上就是用傳統(tǒng)的DSP處理器實(shí)現(xiàn)濾波器的方法。采用內(nèi)核時(shí)鐘速率為1.2GHz的典型DSP處理器并以這種方式實(shí)現(xiàn)的31抽頭FIR濾波器的最高性能約為9.68MHz,,或最大的輸入數(shù)據(jù)率為968MS/s.

  

4.jpg

圖3:用傳統(tǒng)DSP實(shí)現(xiàn)的MAC.

  而FPGA提供了許多不同的實(shí)現(xiàn)和優(yōu)化選擇,。如果需要高資源效率的實(shí)現(xiàn),MAC引擎法則相當(dāng)理想,。還是以31抽頭濾波器為例來(lái)說(shuō)明濾波器規(guī)范對(duì)所需邏輯資源的影響,,這種實(shí)現(xiàn)方案的方框圖如圖4所示。

  

5.jpg

圖4:采用FPGA實(shí)現(xiàn)的MAC引擎FIR濾波器,。

  這種設(shè)計(jì)需要存儲(chǔ)器存儲(chǔ)數(shù)據(jù)和系數(shù),,可以混合采用FPGA內(nèi)部的RAM和ROM.RAM用于存儲(chǔ)數(shù)據(jù)樣本,故而采用循環(huán)的RAM緩沖器實(shí)現(xiàn),。字的數(shù)量與濾波器抽頭數(shù)相等,,位寬按樣本大小設(shè)置。ROM用于存儲(chǔ)系數(shù),。在最糟糕的情況下,,字的數(shù)量與濾波器抽頭的數(shù)量相等,但如果存在對(duì)稱,,則可以減少字的數(shù)量,。位寬必須足以支持最大的系數(shù)。因?yàn)閿?shù)據(jù)樣本和系數(shù)數(shù)據(jù)都隨每個(gè)周期改變,,所以需要全乘法器,。累加器負(fù)責(zé)將產(chǎn)生的結(jié)果累加起來(lái)。因?yàn)殡S著濾波器采集數(shù)據(jù),,累加器的輸出會(huì)隨每個(gè)時(shí)鐘周期改變,,所以需要捕捉寄存器,。當(dāng)全套N個(gè)樣本完成累加后,輸出寄存器負(fù)責(zé)捕捉最終結(jié)果,。

  如果采用MAC模式,,DSP48則非常適用,因?yàn)镈SP48 Slice內(nèi)含輸入寄存器,、輸出寄存器和加法器單元,。實(shí)現(xiàn)31抽頭MAC引擎需要的資源包括一個(gè)DSP48、一個(gè)18kb塊RAM(block RAM)和9個(gè)邏輯片,。另外,,還需要一些邏輯片用于采樣、系數(shù)地址生成和控制,。如果FPGA內(nèi)置有600MHz的時(shí)鐘,,則在一個(gè)-3速度等級(jí)的Xilinx 7系列器件中,該濾波器能夠以19.35MHz或1,,935MS/s的輸入采樣速率運(yùn)行,。

  如果系統(tǒng)規(guī)范需要更高性能的FIR濾波器,則可采用并行結(jié)構(gòu)來(lái)實(shí)現(xiàn),。圖5顯示了直接I型實(shí)現(xiàn)方案的方框圖。

  

6.jpg

圖5:采用FPGA實(shí)現(xiàn)的直接I型FIR濾波器,。

  直接I型濾波器結(jié)構(gòu)能夠在FPGA中實(shí)現(xiàn)最高性能,。這種結(jié)構(gòu)(通常也被稱作脈動(dòng)FIR濾波器)采用流水線和加法器鏈,使DSP48 Slice發(fā)揮出最高性能,。輸入饋送到用作數(shù)據(jù)樣本緩沖器的級(jí)聯(lián)寄存器,;每個(gè)寄存器向DSP48提供一個(gè)樣本,然后乘以對(duì)應(yīng)的系數(shù),;加法器鏈存儲(chǔ)部分乘積,,然后依次相加,從而得到最終結(jié)果,。

  這種設(shè)計(jì)無(wú)需外部邏輯電路支持濾波器,,并且該結(jié)構(gòu)可擴(kuò)展用于支持任意數(shù)量的系數(shù)。因?yàn)闆](méi)有高扇出的輸入信號(hào),,所以這種結(jié)構(gòu)能夠?qū)崿F(xiàn)最高性能,。實(shí)現(xiàn)31抽頭FIR濾波器僅需要31個(gè)DSP48邏輯片。如果FPGA內(nèi)置有600MHz的時(shí)鐘,,則在一個(gè)-3速度等級(jí)的Xilinx 7系列器件中,,該濾波器能夠以600MHz或600MS/s的輸入采樣速率運(yùn)行。

  從這個(gè)實(shí)例可以清晰地看出,,F(xiàn)PGA不僅在性能上顯著超越了傳統(tǒng)的數(shù)字信號(hào)處理器,,而且要求的時(shí)鐘速率也顯著降低(因此,,功耗也顯著降低)。

  這個(gè)實(shí)例只反映了采用PFGA實(shí)現(xiàn)FIR濾波器的兩種技術(shù),。為了充分利用數(shù)據(jù)采樣率規(guī)范,,可對(duì)該器件進(jìn)行進(jìn)一步定制,此時(shí),,數(shù)據(jù)采樣率可在連續(xù)MAC運(yùn)算極值和全并行運(yùn)算極值之間任取,。用戶還可考慮在包括對(duì)稱系數(shù)、插值,、抽選,、多通道或多速率的資源利用和性能方面進(jìn)行更多的權(quán)衡取舍。Xilinx CORE Generator或System Generator實(shí)用工具可以幫助用戶充分發(fā)掘這些設(shè)計(jì)變量和技術(shù),。

  在傳統(tǒng)DSP和FPGA之間選擇

  傳統(tǒng)的數(shù)字處理器已經(jīng)有多年的應(yīng)用歷史,,當(dāng)然具有為特定問(wèn)題提供最佳解決方案的實(shí)例。如果系統(tǒng)采樣率低于數(shù)kHz且為單通道實(shí)現(xiàn),,DSP可能是不二之選,。但是,當(dāng)采樣率增加到數(shù)MHz以上,,或者如果系統(tǒng)要求多通道,,F(xiàn)PGA就越來(lái)越具優(yōu)勢(shì)。在高數(shù)據(jù)率條件下,,DSP可能只能勉為其難地在不造成任何損耗的情況下采集,、處理和輸出數(shù)據(jù)。這是因?yàn)樵谔幚砥髦写嬖诖罅康墓蚕碣Y源,、總線乃至內(nèi)核,。然而,F(xiàn)PGA卻能夠?yàn)槊宽?xiàng)功能提供專門的資源,。

  DSP是基于指令而非基于時(shí)鐘的器件,。一般來(lái)說(shuō),對(duì)單個(gè)樣本上的任何數(shù)學(xué)運(yùn)算需要三到四條指令,。數(shù)據(jù)必須首先經(jīng)輸入端采集,,再發(fā)送到處理內(nèi)核,每完成一次運(yùn)算后再循環(huán)通過(guò)內(nèi)核,,然后發(fā)送到輸出端,。相比之下,F(xiàn)PGA基于時(shí)鐘,,故每個(gè)時(shí)鐘周期都有可能在輸入數(shù)據(jù)流上進(jìn)行一次數(shù)學(xué)運(yùn)算,。

  由于DSP的運(yùn)算以指令或代碼為基礎(chǔ),編程機(jī)制為標(biāo)準(zhǔn)C語(yǔ)言,或者在需要更高性能的情況下,,采用低級(jí)匯編語(yǔ)言,。這種代碼可能包含高級(jí)的決策樹(shù)或者轉(zhuǎn)移操作,而難以在FPGA中實(shí)現(xiàn),。例如:存在大量的用于執(zhí)行如音頻和電話編解碼器之類的預(yù)定義功能或標(biāo)準(zhǔn)的遺留代碼,。

  FPGA廠商和第三方合作伙伴已經(jīng)意識(shí)到將FPGA用于高性能DSP系統(tǒng)的優(yōu)勢(shì),并且如今已有許多IP核廣泛應(yīng)用于視頻,、圖像處理,、通信、汽車,、醫(yī)療和軍用等大部分垂直應(yīng)用市場(chǎng),。與將高級(jí)系統(tǒng)方框圖映射成為C語(yǔ)言代碼的DSP設(shè)計(jì)相比,將高級(jí)系統(tǒng)方框圖分解為FPGA模塊和IP核會(huì)更加簡(jiǎn)便易行,。

  從DSP轉(zhuǎn)向FPGA

7.jpg

  考查一些主要標(biāo)準(zhǔn)將有利于在傳統(tǒng)DSP和FPGA之間做出決策(表1),。

  軟件編程人員的數(shù)量遠(yuǎn)遠(yuǎn)超過(guò)硬件設(shè)計(jì)人員的數(shù)量,這已是不爭(zhēng)的事實(shí),。DSP編程人員的數(shù)量與FPGA設(shè)計(jì)人員的數(shù)量之間的關(guān)系也是如此,。不過(guò),讓系統(tǒng)架構(gòu)師或者DSP設(shè)計(jì)人員轉(zhuǎn)為使用FPGA的難度,,并不像讓軟件編程人員轉(zhuǎn)為從事硬件設(shè)計(jì)那么大,。有大量的資源可以顯著減輕對(duì)DSP算法開(kāi)發(fā)和FPGA設(shè)計(jì)工作的學(xué)習(xí)過(guò)程。

  主要的障礙是從基于樣本和事件的方法轉(zhuǎn)向基于時(shí)鐘的問(wèn)題描述和解決方案,。如果能夠在設(shè)計(jì)流程的系統(tǒng)架構(gòu)和定義階段就能夠完成,,對(duì)這種轉(zhuǎn)換的理解和應(yīng)用就會(huì)簡(jiǎn)單得多。由不同的工程師和數(shù)學(xué)專家來(lái)定義系統(tǒng)架構(gòu)(DSP算法和FPGA設(shè)計(jì)在某種程度上相互孤立)是很尋常的事情,。當(dāng)然,如果每個(gè)成員對(duì)其他小組成員面臨的難題有一定程度認(rèn)識(shí)的話,,這個(gè)過(guò)程會(huì)順利得多,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]