《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 運用FPGA解決DSP設計難題

運用FPGA解決DSP設計難題

2013-07-18
作者:Reg Zatrepalek
來源:Hardent 公司 DSP/FGPA 設計專家
關鍵詞: FPGA DSP

本文以實踐為基礎,對 DSPFPGA 技術進行了簡要回顧,并詳細比較了這兩種架構在 FIR 濾波器應用中的優劣。

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

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

FPGA 已成為需要高性能 DSP 功能的系統的理想選擇。事實上,與單獨的數字信號處理器相比,FPGA 技術能夠為高難度的 DSP 問題提供大為簡化的解決方案。要明白其中的緣由,需要回顧一下 DSP 的肇始和發展。

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

圖 1 - 傳統 DSP 架構

傳統的數字信號處理器是設計用于實現專門目的的微處理器,非常適合算法密集的任務,但性能受時鐘速率及其內部設計的有序性的限制,從而限制了它們對 輸入的數據采樣每秒最多執行的運算次數。一般來說,算術邏輯單元 (ALU) 運算一次需要三或四個時鐘周期。多核架構可以提升性能,但提升的幅度仍有限。因此,采用傳統的信號處理器設計必須將架構元件重復用于算法實現。對每次執行 的加、乘、減或其它任何基本運算,每次運算都必須循環通過 ALU,不管是內部還是外部反饋。

但令人遺憾的是,在處理當今眾多的高性能應用時,這種傳統的 DSP 難以滿足系統的要求。為此在過去已經提出過多種解決方案,其中包括在一個器件中使用多個ALU,或在一個開發板上布置多個 DSP 器件。但是,這些方案往往會造成成本大幅上升,同時把問題直接推向另一個領域。例如,用多個器件提高性能遵循指數曲線。要讓性能提高一倍,需要兩個器件。 再提高一倍,則需要四個器件,依此類推。另外,編程人員的工作重點也從注重信號處理功能轉為多個處理器與內核之間的任務調度。這樣會產生大量額外的代碼, 而且這些代碼會成為系統開銷,而非用于解決眼前的數字信號處理問題。

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

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

如何比對 FPGA 的,下面以一個同時使用傳統 DSP 架構和 FPGA 架構的 FIR 濾波器實現方案為例,來說明每種架構的優劣。

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

最簡單的 FIR 濾波器的構造采用一系列延遲元件、乘法器和加法器樹或加法器鏈來實現。

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

該等式中的各項代表著輸入樣本、輸出樣本和系數。假設 S 為連續輸入樣本流,Y 為經濾波后產生的輸出樣本流,n 和 k 對應特定的瞬時時間。則如果要計算時間 n 時的輸出樣本 Y(n),需要在 N 各時間點的樣本群組,即S(n)、S(n-1)、s(n-2)…s(n-N+1)。N 輸入樣本群組乘以 N系數,加總后得出最終結果 Y。

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

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

在選擇濾波器的理想長度和系數值時,有多種設計工具可供使用。其目的是通過選擇適當的參數來實現所需的濾波器性能。參數選擇最常用的設計工具是 MATLAB®。一旦選定參數,就可以按照數學等式完成實現。

實現 FIR 濾波器的基本步驟包括:
1. 對輸入的數據流采樣

2. 在緩沖區組織輸入樣本,以便讓每個采集到的樣本與每項濾波器系數相乘

3. 讓每個數據樣本與每項系數相乘,并累加結果

4. 輸出濾波結果。

使用“相乘累加法”在處理器上實現 FIR 濾波器的典型 C 語言程序,如下列代碼所示:
/*
*采集輸入的數據樣本
*/
datasample = input();
/*
*將新數據樣本導入緩沖器
*/
S[n] = datasample;
/*
*將每個數據樣本與每項系數相乘并累加結果
*/
y = 0;
for (i = 0; i {
y += k[i] * S[(n + i) %N];
}
n = (n+1) %N;
/*
* 輸出濾波結果
*/
output(y);

圖 3 所示的實現方案被稱為相乘累加或 MAC 型實現方案。這基本上就是用傳統的 DSP 處理器實現濾波器的方法。采用內核時鐘速率為 1.2GHz 的典型 DSP 處理器實現的 31 抽頭 FIR 濾波器的最高性能約為 9.68 MHz,即最大的輸入數據率為 968 Msps。

圖 3 - 用傳統 DSP 實現的 MAC

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

圖 4 - 采用 FPGA 實現的 MAC 引擎 FIR 濾波器

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

如果采用 MAC 模式,則 DSP48 非常適用,因為DSP48 Slice 內含輸入寄存器、輸出寄存器和加法器單元。實現 31 抽頭 MAC 引擎需要一個 DSP48、一個18 KbBlock RAM 和 9 個邏輯 Slice。另外還需要一些 Slice 用于采樣、系數地址生成和控制。如果 FPGA 內置有 600MHz的時鐘,則在一個 -3 速度等級的賽靈思 7 系列器件中該濾波器能夠以 19.35MHz 的輸入采樣速率運行,即1,935Msps。

如果系統規范要求更高性能的 FIR 濾波器,則可采用并行結構來實現。圖 5 顯示了 Direct Form Type I 實現方案的方框圖。

圖 5 - 采用 FPGA 實現的 Direct Form I FIR 濾波器

Direct Form I 濾波器能夠在 FPGA 中實現最高性能的設計。這種結構通常也稱為收縮型 FIR 濾波器,它采用流水線和加法器鏈讓 DSP48 Slice 發揮出最高性能。輸入首先饋送到用作數據樣本緩沖器的級聯寄存器。每個寄存器隨后向 DSP48 提供一個樣本,隨即乘以對應的系數。加法器鏈負責存儲部分結果,然后順序相加,得到最終結果。

這種設計無需外部邏輯支持濾波器,且該結構可擴展用于支持任意數量的系數。由于沒有高扇出的輸入信號,故這種結構能夠實現最高性能。實現 31 抽頭 FIR 濾波器僅需要 31 個 DSP48 Slice。如果 FPGA 內置有 600MHz 的時鐘,則在一個 -3 速度等級的賽靈思 7 系列器件中該濾波器能夠以 600MHz 的輸入采樣速率運行,即 600Msps。

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

這個實例只反映出采用 PFGA 實現 FIR 濾波器的部分技巧。為充分利用數據采樣率規范,可對該器件進行進一步的定制,此時數據采樣率可在順序 MAC 運算極值和完全并行運算極值之間任取。用戶還可考慮在涉及對稱系數、內插、抽取、多通道或多速率的性能和資源利用方面進行更多權衡取舍。賽靈思 CORE Generator™ 或System Generator 實用工具可幫助用戶充分發掘這些設計變量和技巧。

在傳統 DSP 和 FPGA 之間決策
傳統數字處理器已經有多年的應用歷史,當然不乏為特定問題提供最佳解決方案的實例。如果系統采樣率低于數 KHz 且為單通道設計,DSP 可能是不二之選。但是,當采樣率增加到數 MHz 以上,或者系統要求多通道,FPGA 就越來越具優勢。在高數據速率條件下,DSP 只能勉為其能地在不造成任何損耗的情況下采集、處理和輸出數據。這是因為在處理器中存在大量共享的資源、總線,乃至內核。而 FPGA 能夠為每項功能提供專門的資源。

DSP 是基于指令而非時鐘的器件。一般來說,對單個樣本上的任何數學運算需要三條或四條指令。數據必須經輸入端采集,發送到處理內核,每完成一次運算需循環通過 內核,然后發送到輸出端。相比之下,FPGA 基于時鐘,故每個時鐘周期都有可能在輸入數據流上進行一次數學運算。

由于 DSP 的運算以指令或代碼為基礎,編程機制為標準的 C 語言,或者在需要更高性能的情況下,用低級匯編語言。這種代碼可能包含高級決策樹或者分支運算,難以在 FPGA 中實現。例如現存的大量用于執行預設功能或標準的代碼,比如音頻和語音編解碼器。

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

從 DSP 轉向 FPGA
考查一些主要標準有利于在傳統 DSP 和 FPGA 之間做出決策(見表 1)。

表 1 - 選擇 DSP 和 FPGA 時考慮的主要標準

軟件編程人員的數量遠遠超過硬件設計人員的數量,這已是不爭的事實。DSP 編程人員的數量與 FPGA 設計人員的數量之間的關系也是如此。不過讓系統架構師或者 DSP設計人員轉為使用 FPGA 的難度并不像讓軟件編程人員轉為從事硬件設計那么大。有大量的資源可以顯著簡化 DSP算法開發和 FPGA 設計工作。

主要的障礙是轉換問題描述和解決的思路,即從基于樣本和事件的方法轉向基于時鐘的方法。如果能夠在設計流程的系統架構和定義階段就能夠完成,對這種轉換的理解和應用就會簡單得多。由彼此隔絕的不同工程師和數學專家負責
系統架構的定義,DSP 算法的開發和 FPGA 的設計是司空見慣的事情。當然,如果每個成員對其他開發小組成員面臨
的難題有一定程度的認識的話,這個過程會順利得多。

要支持 FPGA 實現方案,架構師不需要高度精通FPGA 設計。只需要對器件、資源和工具有基本的理解即可。通過提供的多種專題課程,可以快速進階。

具體的進階方式取決于工程師的背景和專業知識。具體就 DSP 類課程而言,就有算法開發課、高效設計課和System Generator 設計課。如果用戶期望成為在 FPGA 進行 DSP 設計的高手,Hardent 和其他賽靈思授權培訓合作伙伴提供的三大課程可幫助您快速入門:DSP 入門、使用賽靈思 FPGA 完成 DSP 設計的必備技巧、使用 SystemGenerator 進行 DSP 設計。

Hardent 還提供介紹賽靈思器件、HDL 設計入門語言、優化技巧,以及設計與調試策略的公共課。另外還有專門針對高速 I/O 設計、嵌入式處理和 DSP 設計技巧的專業課程和研討會。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 精品无人区麻豆乱码1区2区 | 国产精品激情丝袜美女 | 日日狠狠| 欧洲成人r片在线观看 | 色中色在线视频 | 日本成人中文字幕 | 成人福利在线视频免费观看 | 91精品在线视频观看 | 古代级a毛片在线 | 亚洲日韩视频免费观看 | 免费看一级a一片毛片 | 色哟哟在线网站 | 欧美在线视频网 | 麻豆精品传媒一二三区在线视频 | 大片免费播放器 | 日韩在线观看一区 | 天天舔天天爽 | 国产亚洲欧美ai在线看片 | 日本三级香港三级人妇gg在线 | 日韩国产精品欧美一区二区 | 手机国产精品一区二区 | 又www又黄又爽啪啪网站 | 色福利网 | 99免费视频观看 | 91精品国产综合久久青草 | 男女在线观看视频 | 中文字幕在线一区二区三区 | 成人一级视频 | 国产成人精品视频免费大全 | 免费啪啪社区免费啪啪手机版 | 1204手机在线观看免费高清 | 日本经典在线三级视频 | 日本亚洲欧美国产日韩ay高清 | 亚洲欧美日韩精品 | 日本福利视频 | 久久九九视频 | 性视频一级 | 韩日福利视频 | 国产三级精品三级在专区中文 | 久久综合九色综合欧美就去吻 | 美女网站黄免费 |