DSP實現方案的比較與應用選擇
摘 要:首先對比幾種DSP技術的實現方案,然后對基于通用可編程DSP和FPGA的兩種主流DSP應用設計技術作較詳細的比較,并提出應用選擇建議。
關鍵詞:DSP;實現方案;FPGA;PDSP;應用選擇
引言
數字信號處理(Digital Signal Processing ,簡稱DSP)是一種利用計算機或專用處理設備,以數字形式對信號進行采集、變換、濾波、估值、增強、壓縮和識別等處理,以得到符合人們需求的信號形式的一種技術。其應用領域甚為廣泛,涉及家用電器、多媒體系統、雷達衛星系統、移動通信、網絡會議、醫學儀器、實時圖像識別與處理、聯合戰術無線電系統和智能基站等方面。面對不同的場合與需求,DSP的實現有多種方案,本文對此進行分析和比較,希望能對學習DSP技術以及準備應用DSP技術進行設計的人員有所啟發和幫助。
DSP實現方案比較
根據使用目的和應用場合的不同,數字信號處理的實現方法一般可分為以下幾種。
在通用的計算機(如PC機)上用軟件(如C語言和Basic語言等)實現。這種方法的缺點是速度太慢,不能用于實時系統,只能用于教學和仿真研究。
在通用計算機系統中加上專用的加速處理機實現。由于大數據量處理時,加速卡和計算機之間的數據交換速度比較慢,因而通用計算機只能起到管理者的作用,而不能參與實時處理。
用通用的單片機實現。這種方法可用于一些不太復雜的數字信號處理,如數字控制等;但由于單片機采用的是馮諾依曼總線結構,所以在運算量大的實時控制系統中很難有所作為。
用專用的DSP芯片實現。在一些特殊的場合,要求的信號處理速度極高,用通用DSP芯片很難實現。專用于FFT、數字濾波和卷積等算法的DSP芯片將相應的信號處理算法在芯片內部用硬件實現,無需進行編程。這種方案的缺點是靈活性差,又由于開發工具還不夠完善,不適用于個人和小型單位開發。
用通用的可編程數字信號處理器(Programmable Digital Signal Processor,后簡稱PDSP)實現。與單片機相比,通用PDSP具有更加適用于數字信號處理的軟件和硬件資源,可用于復雜的數字信號處理算法,是可用指令或軟件編程的DSP。可選用的產品有TI公司的TMS320系列DSP芯片、AD公司的ADSP系列產品和Motorola等公司的產品。
用FPGA(Field-programmable Gate Array)等可編程門陣列實現數字信號處理算法(稱基于FPGA的DSP)。許多FPGA生產公司(如Altera和Xilinx等)都提供軟件或VHDL等開發語言,通過軟件編程用硬件實現特定的數字信號處理算法。由于具有通用性,并可以實現算法的并行運算,無論是作為獨立的數字信號處理器還是作為DSP芯片的協處理器,這一算法目前都是比較活躍的研究領域。而且,近年來,一些公司開發和設計出把FPGA、DSP和MCU等芯片結合在一起的大型可編程邏輯器件,成為今后幾年數字信號處理實現的一個很重要的方向。
綜上所述,在幾種方法中,第一種方法的缺點是速度慢,一般可用于DSP算法的模擬;第二種方法和第四種方法專業性強,應用受到很大限制,第二種方法不便于系統的獨立運行;第三種算法也只適用于簡單的DSP算法;第五種方法使數字信號處理的應用打開了新的局面。這種方法兼具有上述幾種方法的優點,既靈活、處理速度快、能力強,又可做到實時性。實際上通常講的數字信號處理器(Digital Signal Processor,簡稱DSPs或DSP)就是為了實現高速、實時信號處理的單片可編程微處理器芯片,在本文里稱為PDSP。
兩種主流技術的對比
通用PDSP和基于FPGA的DSP是當今兩大主流數字信號處理算法實現技術,引領著DSP技術應用的發展潮流。下面針對這兩種技術方案從硬件結構及性能、開發流程、開發技術標準化、仿真測試和知識產權自主性等方面進行比較,同時對應用方案的選擇提出建議。
1 硬件結構和性能發展
通用PDSP是一種基于精簡指令集計算機(Reduced Instruction Set Computer,RISC)的范例。通用PDSP采用了數據總線和程序總線分離的哈佛結構及改進哈佛結構,由至少一個快速陣列乘法器和一個擴展字寬的累加器構成,具有指令流控制,一個指令字可以同時控制片內多個功能單元的操作。其優勢源于大多數信號處理算法的乘-累加運算(multiply and accumulate,MAC)都是非常密集的,通過多級流水線結構,DSP可以獲得僅僅受陣列乘法器的速度限制的MAC速度。通用PDSP的優勢主要是具有很好的通用性和靈活性,與普通單片機應用系統十分相似,只要將調好的機器碼放在程序ROM中,就能使系統正常工作。
在PDSP中增加更多的MAC單元能進一步提高DSP的吞吐量,但對于某些一般數據處理量比較大的DSP算法,其通用性卻下降了,Viterbi編譯碼器和FIR濾波器就屬于這種情況。為解決這個問題,PDSP生產商將一些專用的硬件加速器類的協處理器模塊加入處理器結構,如Viterbi協處理器、Turbo協處理器和增強性濾波器協處理器等。由于這些協處理器本身的非通用性,即主要是傾向于某種或某些算法的協處理器,從而導致了PDSP無法適用于多種類型的DSP算法和DSP技術應用。結果成本增加,通用性也下降了,因此大部分的DSP應用場合并沒有從這種增加各種硬件加速器的DSP結構變化中得到好處。
通用PDSP處理器的靈活性主要體現在軟件更改容易以及對各種算法處理和復雜算法的實現上,而對硬件本身的更改則沒有任何靈活性而言。
FPGA器件是由大量的邏輯宏單元組成的,通過配置,可以使這些邏輯宏單元形成不同的硬件結構,從而構成不同的電子系統,完成不同的功能。由FPGA構成的DSP電路可以同樣以并行或順序方式工作。并行工作方面,FPGA與專用DSP器件相當,遠優于通用PDSP處理器,對于PDSP處理器需要大量運算指令完成的工作,FPGA可在一個周期內完成。而在順序執行方面,FPGA比通用DSP快,同時FPGA中可以使用各種狀態機,或使用嵌入式微處理器來完成工作,并且,每一順序工作的時鐘周期中能同時并行完成許多執行,而通用PDSP處理器卻不能。基于FPGA的DSP在各種應用場合具有主硬件用戶可定制性和可重配置性,硬件方面也表現出極大的靈活性,可根據需要通過改變FPGA中構成DSP系統的硬件結構來改變硬件的功能、技術指標、通信方式、硬件加密算法和編解碼方式等。隨著達數百萬門高密度的FPGA的出現,FPGA在原有的高密度的邏輯宏單元基礎上嵌入許多面向DSP的專用硬核模塊,結合大量可配置于FPGA硬件結構中的參數化的DSP IP,DSP開發者能十分容易地將整個DSP系統實現在一片FPGA中,從而實現了所謂的可編程SoC(System on Chip),即PSoC。迅速發展的FPGA以它高速高帶寬的優勢在DSP技術應用上顯示出其光輝的前景。
應用廣泛的通用PDSP處理器正面臨著FPGA的競爭,并且這種競爭日趨激烈。在先進通信基礎設施應用中,信號處理的工作量正在超出通用DSP的承受能力,這就為其他新類型器件(如FPGA)進入這些應用帶來了機會。
2 開發流程
上述兩種DSP技術實現方案的仿真有很大差別。通用PDSP開發中除了可以利用MATLAB等工具完成算法仿真外,唯一有實際意義的仿真是借助實時開發系統仿真,必須與實際的硬件系統相連后才能進行。這種“仿真”實為硬件調試,實際意義僅在于假設(事實也要求)待開發的硬件系統已經設計成功并能正常工作的條件下,完成DSP源程序在硬件系統上的調試。這種調試環節單一,許多軟硬件中的存在的問題定位十分困難,對于DSP器件組成的大系統調試效率很低。而基于FPGA的DSP開發流程中有多個層次的仿真測試和硬件調試環節:如基于MATLAB/Simulink模型的系統級仿真,包括對數字信號和模擬信號的仿真測試;利用HDL仿真器ModelSim進行RTL級功能仿真和模擬信號仿真;用ModelSim對DSP數字系統進行實時時序仿真;利用Quartus II中的門級仿真器進行時序仿真;利用嵌入式邏輯分析儀SignalTapII對DSP硬件系統進行測試。以上5個測試環節中任何一處發現問題,都可以隨時修正和排除。
3 系統知識產權自主性
由于基于FPGA的DSP系統主要是純硬件系統設計,可選的硬件實現方式很多,因此系統具有較好的自主知識產權屬性。基于PDSP處理器的系統則沒有這種屬性。
4 開發技術標準化、規范化和技術兼容性
不同系列功能特點的PDSP處理器結構有較大差別,需要選擇不同的匯編語言及其對應的仿真開發工具及編碼軟件,無論是設計流程、仿真開發工具還是開發語言都不可能得到標準化和規范化,較難與其他開發技術融為一體。
開發技術標準化和規范化是基于FPGA的DSP技術的優勢之一。自頂向下的設計流程為DSP開發技術的標準化奠定了基礎;標準化的硬件描述語言和大量支持這一語言的綜合器和仿真器構成這一技術的核心;功能強大、適用面廣的DSP開發集成環境將多種開發目標兼收并蓄;大規模的可重配置器件FPGA及相關的軟硬IP核確保了DSP系統的高效率和高質量。
5 系統集成度、功耗和可靠性等
由于CPU的靈活性,對于低速、低吞吐量和大量復雜運算的情況,通用PDSP處理器的系統成本要比FPGA系統低得多,但是此方案具有不可替代性。在多片DSP系統中,每一片DSP處理器都必須配置完整的輔助器件才能正常工作。其中包括諸如數據RAM、程序RAM和ROM、FIFO、雙口RAM和FPGA/CPLD輔助接口器件等。當這種系統成倍提高,功耗、集成度與可靠性等性能指標都將不同程度下降?;贔PGA的DSP系統的優勢主要源于可以形成單片系統。目前擁有大規模邏輯資源的FPGA完全能容納本來由多片DSP處理器構成的系統,從而使單片DSP系統在多項指標大幅度提高的前提下,成本和功耗大幅度下降,集成度和可靠性大幅度提高。
綜上所述,通用PDSP處理器和基于FPGA的DSP兩種技術各有千秋,有分工也有競爭。一般來說,通用PDSP處理器應用于復雜算法的領域(例如多重if-then-else結構),如果能夠滿足所需的MAC速度,通用DSP成本上更具有優勢。在先進通信基礎設施應用中,信號處理的工作量正在超出通用PDSP的承受能力,由于FPGA更高的速度以及可以通過一個芯片上的多級MAC單元來提供更高的帶寬,它的巨大性能優勢還是使其成為一些高端信號處理應用的技術選擇。在諸如3G移動基站、復雜實時工控系統、衛星導航設備、實時圖像處理和聯合戰術無線電通信系統等領域中,基于FPGA的DSP解決方案成為唯一的選擇。同時,FPGA也將在前端的可編程數字信號處理算法,例如FFT、FIR、IIR濾波器及CORDIC(Coordinate Ratation Digital Computer,旋轉數字式計算)等算法的實現方面大顯身手。面臨競爭產品的前后夾擊,通用PDSP的前景似乎不妙,但是,PDSP供應商也在不斷創新,以便其產品在更廣泛的應用中具有吸引力。例如,AD公司計劃使其Blackfin數字信號處理器支持Linux,此舉將使該系列數字信號處理器遠遠勝過一般通用處理器。摩托羅拉公司最近則宣布將把它的數字信號處理器與可重構硬件結合起來,以便抗衡FPGA的進步。隨著信號處理應用的不斷擴張,PDSP處理器很可能會繼續“借鑒”一些競爭技術的特性。
結束語
通過以上的分析,建議從事DSP應用的設計人員在運用DSP技術設計系統時要從應用領域、速度要求、可靠性、開發難易程度和價格等多方面綜合考慮,以選取適當的DSP實現方案以達到技術目標。
文章版權歸西部工控xbgk所有,未經許可不得轉載。