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