當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]使用FPGA解決DSP設(shè)計(jì)難題

由于DSP能夠迅速測量、過濾或壓縮實(shí)時(shí)模擬信號,因此DSP在電子系統(tǒng)設(shè)計(jì)中非常重要。這樣,DSP有助于實(shí)現(xiàn)數(shù)字世界與真實(shí)(模擬)世界的通信。但是隨著電子系統(tǒng)變得越來越精細(xì),需要處理多個(gè)模擬信號源,工程師們不得不作出艱難的決策。是使用多個(gè)DSP并使其功能與系統(tǒng)的其余部分同步,還是使用一個(gè)能夠?qū)崿F(xiàn)多個(gè)功能的帶精細(xì)軟件的高性能DSP更具優(yōu)勢?

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

FPGA現(xiàn)已成為需要高性能DSP功能的系統(tǒng)的絕佳選擇。事實(shí)上,與獨(dú)立的數(shù)字信號處理器相比,F(xiàn)PGA技術(shù)一般可以為DSP難題提供更加簡單的解決方案。要了解其中的原因,需要回顧一下DSP的起源和發(fā)展過程。

專用微處理器

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

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

遺憾的是,在處理當(dāng)今眾多的高性能應(yīng)用時(shí),典型的DSP難以滿足系統(tǒng)要求。過去已經(jīng)提出過多種解決方案,包括在一個(gè)器件中使用多個(gè)ALU或者在一塊板上使用多個(gè)DSP器件;不過這類方案往往會大大增加成本,并且只會將問題轉(zhuǎn)移到另外一個(gè)領(lǐng)域。比如,用多個(gè)器件提高性能遵循指數(shù)曲線。要使性能提高一倍,需要用兩個(gè)器件,若要再提高一倍,則需要用四個(gè)器件,依此類推。此外,程序員關(guān)注的重點(diǎn)往往會從信號處理功能轉(zhuǎn)移到多個(gè)處理器和內(nèi)核之間的任務(wù)調(diào)度上。這會產(chǎn)生大量的附加代碼,而且這些代碼會成為系統(tǒng)開銷,而不是用于解決眼前的數(shù)字信號處理問題。

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

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

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

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

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

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

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

公式1

該等式中的各項(xiàng)分別表示輸入樣本、輸出樣本和系數(shù)。假設(shè)S為連續(xù)的輸入樣本流,Y為經(jīng)濾波后產(chǎn)生的輸出樣本流,那么n和k則對應(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è)簡單的31抽頭FIR濾波器(長度N=31)的框圖。


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


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

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

實(shí)現(xiàn)FIR濾波器的基本步驟包括:

1. 對輸入數(shù)據(jù)流采樣;
2. 在緩沖區(qū)組織輸入樣本,以便讓每個(gè)捕捉到的樣本與每項(xiàng)濾波器系數(shù)相乘;
3. 讓每個(gè)數(shù)據(jù)樣本與每項(xiàng)系數(shù)相乘,并累加結(jié)果;
4. 輸出濾波結(jié)果。

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

 

圖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。[!--empirenews.page--]


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

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


圖4:FPGA中的MAC引擎FIR濾波器

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

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

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


圖5:FPGA中的直接I型濾波器

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

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

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

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

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

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

DSP是基于指令而非基于時(shí)鐘的器件。一般來講,對單個(gè)樣本上的任何數(shù)學(xué)運(yùn)算需要三到四條指令。數(shù)據(jù)必須首先經(jīng)輸入端采集,再發(fā)送到處理內(nèi)核,每完成一次運(yùn)算后再循環(huán)通過內(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語言,或者在需要更高性能的情況下,采用低級匯編語言。這種代碼可能包含高級的決策樹或者轉(zhuǎn)移操作,而難以在FPGA中實(shí)現(xiàn)。例如,存在大量的用于執(zhí)行如音頻和電話編解碼器之類的預(yù)定義功能或標(biāo)準(zhǔn)的遺留代碼。

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

從DSP轉(zhuǎn)向FPGA

研究一些主要標(biāo)準(zhǔn)將有利于在傳統(tǒng)DSP和FPGA之間作出選擇(請參見表1)。

表1: 傳統(tǒng)DSP和FPGA之間的比較

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉