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

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

2018-08-21
關鍵詞: FPGA DSP ALU

  DSP對電子系統(tǒng)設計來說非常重要,因為它能夠迅速地測量、過濾或壓縮即時的模擬信號。這樣有助于實現(xiàn)數(shù)字世界和真實(模擬)世界的通信。但隨著電子系統(tǒng)進一步精細化,需要處理多種模擬信號源,迫使工程師不得不做出艱難的決策。是使用多個DSP并將其功能與系統(tǒng)的其余部分同步更具優(yōu)勢?還是采用一個能夠處理多功能的具有精細軟件的高性能DSP更具優(yōu)勢?

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

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

  

1.jpg

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

  專用微處理器

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

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

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

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

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

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

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

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

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

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

2.jpg

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

  圖2是一個簡單的31抽頭FIR濾波器(長度N=31)的方框圖。

  

3.jpg

圖2:長度為31抽頭的FIR濾波器。

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

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

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

  /*

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

  */

  datasample=input();

  /*

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

  */

  S[n]=datasample;

  /*

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

  */

  y=0;

  for(i=0;i{

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

  }

  n=(n+1)%N;

  /*

  *輸出濾波結(jié)果

  */

  output(y);

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

  

4.jpg

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

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

  

5.jpg

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

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

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

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

  

6.jpg

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

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

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

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

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

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

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

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

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

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

  從DSP轉(zhuǎn)向FPGA

7.jpg

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

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

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


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: yy6080网午夜毛片一级 | 欧美最新一区二区三区四区 | 黑丝美女网站 | 国产成人女人在线视频观看 | 亚洲午夜久久久精品影院视色 | 免费人成在线观看视频播放 | 久久.com| 成人精品第一区二区三区 | 伊人网国产 | 男人下身进女人阳道视频 | 美女视频网站黄色 | 国产色妇 | 六月丁香啪啪六月激情 | 天堂在线观看视频观看www | 国产视频1区 | 手机在线国产精品 | 午夜资源网 | 国产精品国内免费一区二区三区 | a毛片视频 | 亚洲香蕉 | 男女在线无遮挡毛片免费 | 日本三级一区二区三区 | 国产中文在线 | 小明成人永久视频在线观看 | 日韩a毛片免费全部播放完整 | 亚洲一区精品视频在线 | 伊人久久综在合线亚洲不卡 | 又粗又硬又大久久久 | 成人激情免费视频 | 一二三区乱码一区二区三区码 | 亚洲精品视频在线播放 | 在线精品日韩一区二区三区 | 一级欧美在线的视频 | 国产精品久久久久久 | 亚洲一区二区三区免费观看 | 日韩午夜小视频 | 欧美顶级黄色大片免费 | 91成人抖音 | 久久久国产精品免费 | 99在线视频免费观看 | 手机看片1024久久精品你懂的 |