數字電路設計中DSP和FPGA的比較與選擇

来源:http://www.cnblogs.com/yinknight/archive/2017/06/10/6978697.html
-Advertisement-
Play Games

博主研究生所在的實驗室是搞雷達的,項目所涉及的板卡都是DSP+FPGA架構的,至於原因,只知道FPGA是並行的,用來處理速度要求高,運算結構簡單的大數據量過程或演算法,比如接收處理天線各陣元採樣的初始數據等;DSP是順序的,用來處理數據量較低但運算量較大的演算法,比如DBF演算法、矩陣求逆演算法等。看了下麵 ...


博主研究生所在的實驗室是搞雷達的,項目所涉及的板卡都是DSP+FPGA架構的,至於原因,只知道FPGA是並行的,用來處理速度要求高,運算結構簡單的大數據量過程或演算法,比如接收處理天線各陣元採樣的初始數據等;DSP是順序的,用來處理數據量較低但運算量較大的演算法,比如DBF演算法、矩陣求逆演算法等。看了下麵的文章,有了更全面的理解。

原文地址:http://www.chinaaet.com/article/index.aspx?id=13921

摘  要: DSP和FPGA是目前數字電路設計採用的兩種主要手段,其各有自身的優缺點,故在設計數字系統前必需進行方案選擇。DSP+FPGA結構的新思想的出現以及嵌入DSP模塊的FPGA設計方案使得數字電路設計有了更大的選擇空間。

關鍵詞: DSP  FPGA  DSP+FPGA  嵌入DSP模塊的FPGA

數字信號處理技術和大規模集成電路技術的迅猛發展,為我們設計數字電路提供了新思路和新方法。當前數字系統設計正朝著速度快、容量大、體積小、重量輕的方向發展。DSP和FPGA技術的發展使這一趨勢成為可能和必然。

和電腦一樣,數字信號處理的理論從60年代崛起以來,到80年代DSP產生,它飛速發展改變了信號處理的面貌。今天DSP已廣泛應用在語音、圖像、通訊、雷達、電子對抗、儀器儀錶等各個領域。DSP起了十分關鍵的作用,成為數字電路設計的主要方法。

二十世紀80年代以來,一類先進的門陣列——FPGA的出現,產生了另一種數字電路設計方法,具有十分良好的應用前景。基於FPGA的數字電路設計方式在可靠性、體積、成本上的優勢是巨大的。

除了上述兩種方案,還有DSP+FPGA方案,以及選擇內部嵌入DSP模塊的FPGA實現系統的方案。

1 DSP和FPGA的結構特點

1.1 DSP的結構特點

DSP是一種具有特殊結構的微處理器。DSP晶元的內部採用程式和數據分開的哈佛結構,具有專門的硬體乘法器,廣泛採用流水線操作,提供特殊的DSP 指令,可以用來快速地實現各種數字信號處理演算法。根據數字信號處理的要求,DSP晶元一般具有如下的一些主要特點:

(1)在一個指令周期內可完成一次乘法和一次加法;

(2)程式存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址,可以同時訪問指令和數據;

(3)片內具有快速RAM,通常可通過獨立的數據匯流排在兩塊中同時訪問;

(4)具有低開銷或無開銷迴圈及跳轉的硬體支持;

(5)快速的中斷處理和硬體I/O支持;

(6)具有在單周期內操作的多個硬體地址產生器;

(7)可以並行執行多個操作;

(8)支持流水線操作,使取指、解碼和執行等操作可以重疊執行。

1.2 FPGA的結構特點

FPGA的結構是由基於半定製門陣列的設計思想而得到的。從本質上講,FPGA是一種比半定製還方便的ASIC(Application Specific Integrated Circuit 專用集成電路)設計技術。

FPGA的結構主要分為三部分:可編程邏輯塊、可編程I/O模塊、可編程內部連線。可編程邏輯塊和可編程互連資源的構造主要有兩種類型:即查找表類型和多路開關型。

查找表型FPGA的可編程邏輯單元是由功能為查找表的SRAM(Static Random Access Memory 靜態隨機存取存儲器)構成函數發生器,由它來控制執行FPGA應用函數的邏輯。SRAM的輸出為邏輯函數的值,由此輸出狀態控制傳輸門或多路開關信號的通斷,實現與其它功能塊的可編程連接。多路開關型可編程邏輯塊的基本構成是一個多路開關的配置。利用多路開關的特性,在多路開關的每個輸入接到固定電平或輸入信號時,可實現不同的邏輯功能。大量的多路開關和邏輯門連接起來,可以構成實現大量函數的邏輯塊。

FPGA由其配置機制的不同分為兩類:可再配置型和一次性編程型。近幾年來,FPGA因其具有集成度高、處理速度快以及執行效率高等優點,在數字系統的設計中得到了廣泛應用。

2 DSP與FPGA性能比較

DSP內部結構使它所具有的優勢為:所有指令的執行時間都是單周期,指令採用流水線,內部的數據、地址、指令及DMA(Direct Memory Access直接存儲器存取)匯流排分開,有較多的寄存器。

與通用微處理器相比,DSP晶元的通用功能相對較弱些。DSP是專門的微處理器,適用於條件進程,特別是較複雜的多演算法任務。在運算上它受制於時鐘速率,而且每個時鐘周期所做的有用操作的數目也受限制。例如TMS320C6201只有兩個乘法器和一個200 MHz 的時鐘,這樣只能在每秒完成400M的乘法。

將模擬演算法、具體指標要求映射到通用DSP中,比較典型的DSP通過彙編或高級語言如C語言進行編程,實時實現方案。如果DSP採用標準C程式,這種C代碼可以實現高層的分支邏輯和判斷。例如通信系統的協議堆棧,這是很難在FPGA上實現的。從效果來說,採用DSP器件的優勢在於:軟體更新速度快,極大地提高了系統的可靠性、通用性、可更換性和靈活性,但DSP的不足是受到串列指令流的限制。

FPGA有很多自由的門,通過將這些門連接起來形成乘法器、寄存器、地址發生器等等。這些只要在框圖級完成,許多塊可以從簡單的門到FIR(Finite Impulse Response 有限衝激響應)或FFT(Fast Fourier Transform 快速傅里葉變換)在很高的級別完成。但它的性能受到它所有的門數及時鐘速度的限制。例如,一個具有20萬門的Virtex 器件可以實現200MHz時鐘的10個16位的乘法器。

FPGA包含有大量實現組合邏輯的資源,可以完成較大規模的組合邏輯電路設計;與此同時,它還包含有相當數量的觸發器,藉助這些觸發器,FPGA又能完成複雜的時序邏輯功能。通過使用各種EDA (Electronic Design Automatic 電子設計自動化)工具,設計人員可以很方便地將複雜的電路在FPGA中實現。象微處理器一樣,許多FPGA可以無限的重新編程,載入一個新的設計方案只需要幾百毫秒。甚至現場產品可以很簡單而且快速的實現。這樣,利用重配置可以減少硬體的開銷。

超過幾MHz的取樣率,一個DSP僅僅能完成對數據非常簡單的運算。而這樣簡單的運算用FPGA將很容易實現,並且能達到非常高的取樣速率。在比較低的取樣速率時,整體上很複雜的程式可以使用DSP,這對於FPGA來講是很困難的。

對於較低速的事件,DSP是有優勢的。可以將它們排隊,並保證它們都能執行,但是在它們處理前可能會有些時延。而FPGA不能處理多事件,因為每個事件都有專用的硬體,但是採用這種專用硬體實現的每個事件的方式可以使各個事件同時執行。

如果需要主工作環境進行切換,DSP可以通過在程式里分出一個新的子程式的方式來完成,而對於每種配置FPGA需要建立專門的資源。如果這些配置是比較小的,那麼在FPGA中可以同時存在幾種配置;如果配置較大則意味著FPGA需要重新配置,而這種方法只在某些時候可以採用。

最後,FPGA是以框圖方式編程的,這樣很容易看數據流。DSP是按照指令的順序流來編程的。大多數的單處理系統都是以某種框圖方式開始設計的。實際上,系統設計者大多認為將框圖移植給FPGA比將其轉化為DSP的C代碼更容易。

3 如何進行DSP和FPGA方案選擇

3.1 方案選擇原則

在選擇數字系統核心處理部分的方案時,有很多因素需要考慮。例如如何充分利用已有資源(包括軟、硬體)、系統要求的工作時鐘速率以及演算法或工作方式的特點等,這些對最佳方案的選擇有很大的影響。

具體地說,在最初的方案論證階段,可以根據如下問題的回答情況來進行方案選擇:

(1)該系統的取樣速率是多少?

如果高於幾MHz,FPGA是理所當然的選擇。

(2)系統是否已經使用C語言編製的程式?如果是,DSP可以直接地實現。它可能達不到方案的最佳實現,但很容易進一步開發。

(3)系統的數據率是多少?

如果高於20~30Mbyte/second,則用FPGA處理更佳。

(4)有多少個條件操作?

如果沒有,FPGA是很好的;如果很多,則軟體的實現即DSP的實現是更好的選擇。

(5)系統是否使用浮點?

如果是,則使用可編程的DSP更好。目前為止,一些FPGA開發商,如Xilinx 公司的核還不支持浮點,儘管自己可以設計。

(6)所需要的庫是否能夠獲得?

DSP和FPGA都提供諸如FIR或FFT等基本的構建模塊。然而,更複雜的或專用的構件可能得不到,這將決定選擇。

3.2 方案選擇示例

下麵提供了幾個數字電路設計例子,有助於理解前面介紹的方案選擇原則。

(1)用於無線數據接收機的抽樣濾波器。典型的CIC(Control Integrated Circuit 控制集成電路)濾波器工作在50~100MHz的取樣率,5步CIC有10個寄存器和10個加法器。要求加速度在500~1000MHz。

在這一速率下任何的DSP處理器將很難實現。然而CIC只有非常簡單的結構,這樣以FPGA來實現將會很簡單。100MHz的取樣率可以達到,甚至某些型號的FPGA還可以有些剩餘資源來實現進一步的處理。

(2)實現通信堆棧協議——ISDN(Integrated Services Digital Network 綜合服務數字網)。IEEE1394有很複雜、大量的C代碼,完全不適合用FPGA來實現;但是用DSP來實現卻很簡單。不僅如此,一個信號編碼基數可以得到保留,這樣可以使代碼堆棧在某一產品的DSP上來實現,或者在另一塊DSP上的分離的協議處理器來實現。這將給專門提供為代碼堆棧授權的供應廠家以機會。

(3)數字射頻接收機的基帶處理器。一些類型的接收機需要FFT來獲得信號,然後匹配濾波器一次獲得信號,這兩個模塊可以很簡單的用任何一種方案實現。然而如果要求工作模式轉換/信號獲得和信號接收的轉換;則採用DSP方案更適合。因為FPGA方案需要同時完成兩個模塊。

這裡要註意,射頻用FPGA實現更好,因為這是一個混合、多任務的系統。如果應用更大的FPGA,這樣兩個模塊可以同時用一個FPGA來實現。

(4)圖象處理器。對於圖象的處理過程多是簡單的和重覆的,這樣很適合用FPGA實現。然而,一個成像處理流程往往用於在所觀測的目標識別“斑點”或“感興趣的區域”。這些“斑點”可能大小不一樣,造成後端的判斷及處理過程趨於複雜。同時,所用的演算法往往是自適應的,取決於斑點是什麼樣的。所以用DSP構成圖象處理管道的後端處理部分是合適的。

總之,DSP和FPGA代表著兩種數字系統的信號處理的過程,各有所長和不足之處。對於許多高速採樣頻率的應用,特別是任務比較固定或重覆的情況下,適合採用FPGA方案;同樣,對於較低的取樣速率和有很高複雜度的軟體問題的情況適合採用DSP方案。

4 新的設計思想

4.1  DSP+FPGA結構

DSP+FPGA結構最大的特點是結構靈活,有較強的通用性,適於模塊化設計,從而能夠提高演算法效率;同時其開發周期較短,系統易於維護和擴展。

例如,一個由DSP+FPGA 結構實現的實時信號處理系統中,低層的信號預處理演算法處理的數據量大,對處理速度的要求高,但運算結構相對比較簡單,適於用FPGA進行硬體實現,這樣能同時兼顧速度及靈活性。高層處理演算法的特點是所處理的數據量較低層演算法少,但演算法的控制結構複雜,適於用運算速度高、定址方式靈活、通信機制強大的DSP晶元來實現。

FPGA可以完成模塊級的任務,起到DSP的協處理器的作用。它的可編程性使它既具有專用集成電路的速度,又具有很高的靈活性。

DSP具有軟體的靈活性;而FPGA具有硬體的高速性,從器件上考察,能夠滿足處理複雜演算法的要求。這樣DSP+FPGA的結構為設計中如何處理軟硬體的關係提供了一個較好的解決方案。同時,該系統具有靈活的處理結構,對不同結構的演算法都有較強的適應能力,尤其適合實時信號處理任務。

4.2 嵌入DSP模塊的FPGA

應用將一些能實現基本數字信號處理功能的DSP模塊嵌入的FPGA晶元是數字電路設計的另一個大趨勢。

有些公司已經或計劃把基於ASIC的微處理器或DSP芯核與可編程邏輯陣列集成組合在一塊晶元上。FPGA提供的DSP性能已超過1280億MAC每秒,大大高於目前主流供應商所能提供的傳統DSP的性能。

其中,Xilinx作為世界可編程邏輯器件的領導廠商,擁有先進的FPGA技術以及先進的開發工具。2000年11月,推出Xilinx XtremeDSP行動,試圖進入這一市場。Virtex-II可以提供6千億MAC(乘法累加運算)每秒的性能。採用這種並行結構,256階FIR濾波器中的每個樣本可以在一個時鐘周期內處理完,因此極大地改善了DSP的性能和效率。

Xilinx XtremeDSP行動的目標是希望滿足寬頻革命的高性能挑戰。其它特性還包括根據如晶元面積(相應於使用的資源)和系統頻率來優化DSP設計。XtremeDSP行動還推出了一些開發工具以彌補傳統上在DSP和FPGA設計方法間存在的差距。

新的Virtex-II系列的增強結構使其在實現需要計算的演算法時具有獨特的優勢。Xilinx提供的測試數據表明,Xilinx FPGA比業界最快的DSP運行要快100倍。因此,單個FPGA即可代替傳統上所謂的DSP處理器陣列。

目前世界上的許多手機基站產品採用了Xilinx公司Virtex-E FPGA。為了建立大量的連接,手機基站需要處理大量的數據,其中大部分是採用某種DSP實現的。

性能比較突出的還有QuickLogic公司推出的QuickDSP系列,它提供了嵌入式的DSP構件塊和可編程的邏輯靈活性。這個新的系列除了提供以前的可編程的邏輯和存儲模塊外,還包括專用的乘加模塊。這些合成的模塊可以實現DSP功能。支持DSP功能的軟體可以由公司獲得,除了QuickWorks開發軟體外,DSP 嚮導包讓使用者產生優化的功能,如定點或浮點算術邏輯,FIR和IIR(Infinite Impulse Response無限衝激響應)濾波器等,只要滑鼠點擊幾下即可。

可以預測,在不久的將來,單一的DSP或FPGA實現的數字系統會被DSP+FPGA的結構或嵌入DSP模塊的FPGA設計結構所取代。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 小時候家裡定了《讀者》的月刊,裡面記錄一個故事:說有有個偏僻的鄉村一日突然來了一個美女,她攜著萬貫家財子女在當地安家落戶,成了當地的鄉紳。她讓她的子女世世代代的保守這個秘密,直到這個秘密不會再對家族帶來災難。她就是陳圓圓。當年吳三桂領清兵入關,衝冠一怒為紅顏,改寫了中國的歷史,自己卻能全身而退的那個 ...
  • 文件命名規則: 1.嚴格區分大小寫; 2.長度不能超過255個字元; 3.不能使用/當文件名 mkdir:創建空目錄 -p:parent,父目錄,逐級創建 -v:verbose,列印詳細信息 命令行展開:mkdir -pv /mnt/test/{x/m,y} 波浪線展開:~USERNAME tree ...
  • 需要把線上的access日誌發送到另一個程式接收 開始想著用python實現,雖然python也有實現類似tail F的方式,但太麻煩,而且效率也有折扣 偶然發現了shell可以實現網路client,並且只用幾行代碼就可以實現 先上代碼: 超級簡單,實際處理的邏輯的代碼就2行以下是代碼說明: 第一行 ...
  • 1.rsync 與傳統的cp、tar備份方式相比,rsync具有安全性高、備份迅速、支持增量備份的優點,通過rsync可以解決對實時性要求不高的數據備份需求,例如定期的備份文件伺服器數據到遠端伺服器,對本地磁碟定期做數據鏡像等。 隨著應用系統規模不斷的擴大,對數據安全性和可靠性也提出了更高的要求,r ...
  • Apache主機一般支持.htaccess偽靜態,即可以實現綁定功能變數名稱到子目錄、一個空間多個站點。 ...
  • RAID防止硬碟物理損壞以及增加存儲設備的吞吐量,RAID常見的組合有0、1、5、和10 RAID0:至少需要兩塊硬碟,可以有效提高硬碟的性能和吞吐量,但沒有數據的冗餘和錯誤修複能力 將多塊硬碟通過硬體或軟體的方式串聯在一起,成為一個大的捲集,將數據依次寫到各個硬碟中,這樣性能會極大提升, 但若任意... ...
  • 命令 參數 說明 useradd 用於創建新的用戶 -d 指定用戶的家目錄(預設為/home/username) -D 顯示預設值 -e 新賬戶的過期日期,格式“YYYY-MM-DD” -g 指定一個初始用戶組(必須已經存在) -G 指定一個或多個擴展用戶組 -N 不創建同名的用戶組 -s 指定預設 ...
  • ADC0809轉換誤差+-1位,ADC0808轉換誤差+-5位 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...