基于FPGA設(shè)計DSP的實踐與改進
當(dāng)設(shè)計的系統(tǒng)需要對數(shù)字信號進行處理時,常采用通用 DSP(Digital Signal Process)處理器,這樣的設(shè)計方案通用性好,且還有各種較為成熟的 DSP算法可以參考。但是,這類方案通常是雙核設(shè)計,即采用通用控制器(MCU)加上通用 DSP處理器實現(xiàn),在實現(xiàn)系統(tǒng)時開發(fā)的復(fù)雜程度、難度都較大,也難以滿足定制特殊處理的需要。為了解決這些問題,人們開始尋求新的設(shè)計方案,基于通用處理器加上FPGA(大規(guī)??删庨T陣列)的架構(gòu)方案逐漸成為主流,在新的方案中通用控制器完成控制和管理功能,專用的數(shù)字信號處理和組合邏輯功能由 FPGA實現(xiàn),使得設(shè)計開銷與復(fù)雜程度明顯降低。
1 現(xiàn)行設(shè)計流程的不足
使用“MCU+FPGA”架構(gòu)方案的開發(fā)流程如圖 1所示 [1]。系統(tǒng)的設(shè)計之初是先由系統(tǒng)結(jié)構(gòu)設(shè)計小組制定出系統(tǒng)模型方案,并確定模型仿真正確之后將系統(tǒng)結(jié)構(gòu)的設(shè)計方案提交給FPGA設(shè)計人員,并依據(jù)系統(tǒng)模型用硬件描述語言創(chuàng)建系統(tǒng)同時創(chuàng)建測試平臺,比較系統(tǒng)級仿真結(jié)果與模型設(shè)計是否相符,當(dāng)不相符時則需要進行修改,并重新進行仿真驗證。在這種流程的開發(fā)中必定會存在很多的迭代與間歇。
分析其原因在于系統(tǒng)結(jié)構(gòu)設(shè)計人員與 FPGA設(shè)計人員的工作有重復(fù)與制約性。二者的工作同樣是進行系統(tǒng)設(shè)計,并且都要進行仿真,只不過前者是進行系統(tǒng)的軟件仿真,后者進行系統(tǒng)的硬件仿真。另外系統(tǒng)的建立需要幾位工程師的協(xié)同工作。如果當(dāng) FPGA設(shè)計人員驗證出系統(tǒng)設(shè)計有誤時,還要回轉(zhuǎn)給系統(tǒng)結(jié)構(gòu)設(shè)計人員等待修改完再重新進行硬件系統(tǒng)設(shè)計與仿真。
2 設(shè)計流程的改進
2.1 EDA設(shè)計工具
1) MATLAB的 Simulink環(huán)境
MATLAB是 MathWorks公司開發(fā)的功能強大的數(shù)學(xué)分析工具。并且被廣泛應(yīng)用于科學(xué)計算和工程計算中[2]。Simulink是基于 MATLAB平臺推出的一個強大的動態(tài)系統(tǒng)仿真環(huán)境。它以圖形化模式進行系統(tǒng)建模仿真,可以快速完成系統(tǒng)的設(shè)計。并且具有強大的代數(shù)、微分等模型系統(tǒng)的求解器[3]。 2) DSP Builder
DSP Builder是 Altera公司開發(fā)了基于 Simulink開發(fā)的 DSP設(shè)計工具。在 Simulink中作為一個工具箱出現(xiàn)。這樣使得用 FPGA設(shè)計DSP系統(tǒng)完全可以通過 Simulink的圖形化界面進行,只要簡單地進行 DSP Builder工具箱的模塊調(diào)用即可。從而使得一個復(fù)雜的電子系統(tǒng)設(shè)計變得相當(dāng)容易而且直觀。同時加速了 FPGA實現(xiàn)DSP 的開發(fā)流程 [4]。
2.2 改進開發(fā)流程
采用上述 EDA設(shè)計工具使得在系統(tǒng)在設(shè)計階段,由系統(tǒng)工程師負(fù)責(zé)系統(tǒng)的模型設(shè)計,并且在軟件的輔助下,進行硬件描述語言的代碼自動生成,最終可以下載到 FPGA中檢驗設(shè)計效果。即將系統(tǒng)結(jié)構(gòu)設(shè)計人員與 FPGA設(shè)計人員的工作合并從而改進的設(shè)計流程。如圖 2所示。
設(shè)計流程的開始是系統(tǒng)結(jié)構(gòu)設(shè)計人員基于 Simulink使用 DSP Builder工具箱提供的模塊建立系統(tǒng)模型。工具箱中的模塊涵蓋了算術(shù)和存儲功能,并且對其技術(shù)參數(shù)、數(shù)據(jù)格式、數(shù)據(jù)類型和總線寬度等屬性進行設(shè)置。系統(tǒng)模型設(shè)計完成后就進入仿真環(huán)節(jié)。這是基于系統(tǒng)的算法級仿真,設(shè)計者甚至不用關(guān)心目標(biāo)硬件系統(tǒng)的屬性。如果仿真結(jié)果沒有得到預(yù)期設(shè)計的結(jié)果,可以很快通過修改模型進行調(diào)整。當(dāng)仿真結(jié)束后使用 Signal Compiler模塊進行系統(tǒng)模型的 Simulink模型文件(.mdl文件)到硬件描述語言的轉(zhuǎn)換。這個過程將自動生成硬件描述語言的代碼。之后通過綜合以后產(chǎn)生出原子級網(wǎng)表文件(底層電路描述文件)。然后調(diào)用 Quartus II 的編譯器生成可以下載的門級網(wǎng)表文件,最后下載到 FPGA上就實現(xiàn)了 DSP系統(tǒng)的硬件化過程。操作流程如圖 3所示。
評論