劉葉盛 孫斯亮 王麗莉 劉慶 魏冬冬 上海航天電子技術(shù)研究所
引言:對于信號處理,軟件無線電的思想是建立通用的硬件平臺,將模數(shù)轉(zhuǎn)換電路(A/D)盡量靠近天線,通過軟件編程實(shí)現(xiàn)各種功能,解放硬件電路。該思想對數(shù)字信號處理提出了更高的要求,原本由模擬電路實(shí)現(xiàn)的濾波、調(diào)制、解調(diào)、頻率合成等信號處理算法均需由軟件實(shí)現(xiàn)。
采用傳統(tǒng)的開發(fā)方法時,復(fù)雜的信號處理算法給軟件實(shí)現(xiàn)帶來了較大難度;測試激勵的產(chǎn)生需要專業(yè)的工具產(chǎn)生,為覆蓋測試帶來了難度;對于較復(fù)雜的系統(tǒng),無論是后期測試還是迭代改進(jìn),維護(hù)的難度較大且極易出錯。基于原型實(shí)現(xiàn)的信號處理設(shè)計(jì)方法,系統(tǒng)原型建立完成后即可進(jìn)行仿真驗(yàn)證,修改激勵也更加便捷,并且可以利用豐富的信號分析工具進(jìn)行過程監(jiān)控(軟件仿真測試一般僅有波形),極大的降低了軟件的開發(fā)難度,提高了方案驗(yàn)證的效率。
System Generator是進(jìn)行數(shù)字信號處理開發(fā)的一種系統(tǒng)級(或算法級)設(shè)計(jì)工具,是DSP高層系統(tǒng)設(shè)計(jì)與FPGA實(shí)現(xiàn)之間的橋梁。將FPGA開發(fā)的一些模塊嵌入到Simulink庫中,借助Simulink提供的強(qiáng)大的高水平的運(yùn)行環(huán)境,實(shí)現(xiàn)圖形化設(shè)計(jì)和數(shù)字信號定點(diǎn)仿真。System Generator支持自動代碼生成,并且可以直接生成比特流文件,下載到FPGA板卡進(jìn)行硬件測試。
Simulink提供了一個創(chuàng)建和仿真動態(tài)系統(tǒng)的可視化環(huán)境,System Generator以Xilinx Blockset 塊的形式嵌入在Simulink庫里。Xilinx Blockset塊包含豐富的IP模塊,專門用于數(shù)字信號處理的運(yùn)算。這些模塊經(jīng)過反復(fù)驗(yàn)證和優(yōu)化,是進(jìn)行高效率設(shè)計(jì)的基礎(chǔ)。利用System Generator進(jìn)行系統(tǒng)級建模,可以包含數(shù)據(jù)流、HDL模塊、IP模塊以及MATLAB語言函數(shù)等,針對特定的邏輯或算法可以通過可擴(kuò)展開發(fā)的Black Box模塊定義實(shí)現(xiàn)。
原型顧名思義是一個原始模型,或稱參考模型。原型開發(fā)技術(shù)廣泛應(yīng)用于軟件研制,系統(tǒng)建模,生產(chǎn)制造,生物醫(yī)學(xué),甚至歷史分析領(lǐng)域。原型作為一個基礎(chǔ)參考模型,對于需求分析和增量更新有著重要的存在意義。原型仿真是基于創(chuàng)建模型的仿真系統(tǒng),原型模型是增量模型的一種形式,是在開發(fā)系統(tǒng)之前,構(gòu)造一個原型,在該原型的基礎(chǔ)上,逐漸完成整個系統(tǒng)的開發(fā)工作。
快速原型是利用原型輔助軟件開發(fā)的一種新思想。一般在需求分析階段很難得到完全、一致、準(zhǔn)確、合理的需求說明,在獲得一組基本需求說明后,就快速的“實(shí)現(xiàn)”,繼而通過原型反饋,加深對系統(tǒng)的理解,待用戶評價(jià)或試用后,對需求說明進(jìn)行補(bǔ)充和精確化,消除不協(xié)調(diào)的系統(tǒng)需求。
基于System Generator的信號處理快速原型設(shè)計(jì)參考圖1。需求分析和系統(tǒng)方案確定了系統(tǒng)的原型框架。通過原型系統(tǒng)的仿真,驗(yàn)證需求的實(shí)現(xiàn)情況及算法的合理性,以及是否達(dá)到詳細(xì)設(shè)計(jì)的預(yù)期。完成原型系統(tǒng)的仿真后即可進(jìn)行代碼實(shí)現(xiàn),該過程可以參考原型系統(tǒng)的架構(gòu)及功能模塊,即建立原型的過程已經(jīng)完成了軟件的詳細(xì)設(shè)計(jì)。軟件測試可以利用原型仿真的輸入作為測試激勵。對于信號處理,復(fù)雜的調(diào)制、信道、加噪等信號均可以通過原型系統(tǒng)快速生成,加快仿真測試的進(jìn)度。
圖1 快速原型設(shè)計(jì)流程
數(shù)字信號處理通常從中頻信號的接收開始,處理完成后,根據(jù)需求輸出相應(yīng)的中頻信號。圖2設(shè)計(jì)了一個典型的數(shù)字信號處理原型系統(tǒng),可看作通用平臺。
圖2 數(shù)字信號處理原型系統(tǒng)
完成系統(tǒng)方案的詳細(xì)設(shè)計(jì)后,對系統(tǒng)原型進(jìn)行細(xì)化,完成整個設(shè)計(jì)方案,圖3為包含信號處理算法的原型仿真框圖。
圖3 數(shù)字信號處理算法仿真框圖
圖3中,算法原型可以為代碼實(shí)現(xiàn)提供直觀的架構(gòu)和功能框圖,可視化模塊均可以通過IP實(shí)現(xiàn),Black box模塊可以直接移植為代碼,極大地降低了代碼設(shè)計(jì)的難度和復(fù)雜度。硬件測試時,可以利用Chipscope等在線調(diào)試工具抓取過程數(shù)據(jù)和輸出結(jié)果,與原型仿真比對,驗(yàn)證設(shè)計(jì)的正確性。在需求更新或迭代升級時,通過需求分析進(jìn)行反饋,在原型的基礎(chǔ)上進(jìn)行更新,便于追溯,避免二次開發(fā)時可能引入的問題或缺陷。
基于軟件平臺的設(shè)計(jì)和仿真,僅能在一定程度上驗(yàn)證時序邏輯和算法的正確性,難以復(fù)現(xiàn)真實(shí)的信號激勵;真正意義的硬件實(shí)現(xiàn),如果是僅對于設(shè)計(jì)或算法的研究驗(yàn)證,不僅耗費(fèi)了大量的硬件資源,而且開發(fā)周期冗長,還需要面臨從軟件仿真直接到硬件實(shí)現(xiàn)的風(fēng)險(xiǎn),且每一次的修改效率較低。本文介紹的基于System Generator的信號處理快速原型設(shè)計(jì)方法,提供了一種快速實(shí)現(xiàn)軟件仿真和硬件實(shí)現(xiàn)的思路。