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