劉葉盛 孫斯亮 王麗莉 劉慶 魏冬冬 上海航天電子技術研究所
引言:對于信號處理,軟件無線電的思想是建立通用的硬件平臺,將模數轉換電路(A/D)盡量靠近天線,通過軟件編程實現各種功能,解放硬件電路。該思想對數字信號處理提出了更高的要求,原本由模擬電路實現的濾波、調制、解調、頻率合成等信號處理算法均需由軟件實現。
采用傳統的開發方法時,復雜的信號處理算法給軟件實現帶來了較大難度;測試激勵的產生需要專業的工具產生,為覆蓋測試帶來了難度;對于較復雜的系統,無論是后期測試還是迭代改進,維護的難度較大且極易出錯。基于原型實現的信號處理設計方法,系統原型建立完成后即可進行仿真驗證,修改激勵也更加便捷,并且可以利用豐富的信號分析工具進行過程監控(軟件仿真測試一般僅有波形),極大的降低了軟件的開發難度,提高了方案驗證的效率。
System Generator是進行數字信號處理開發的一種系統級(或算法級)設計工具,是DSP高層系統設計與FPGA實現之間的橋梁。將FPGA開發的一些模塊嵌入到Simulink庫中,借助Simulink提供的強大的高水平的運行環境,實現圖形化設計和數字信號定點仿真。System Generator支持自動代碼生成,并且可以直接生成比特流文件,下載到FPGA板卡進行硬件測試。
Simulink提供了一個創建和仿真動態系統的可視化環境,System Generator以Xilinx Blockset 塊的形式嵌入在Simulink庫里。Xilinx Blockset塊包含豐富的IP模塊,專門用于數字信號處理的運算。這些模塊經過反復驗證和優化,是進行高效率設計的基礎。利用System Generator進行系統級建模,可以包含數據流、HDL模塊、IP模塊以及MATLAB語言函數等,針對特定的邏輯或算法可以通過可擴展開發的Black Box模塊定義實現。
原型顧名思義是一個原始模型,或稱參考模型。原型開發技術廣泛應用于軟件研制,系統建模,生產制造,生物醫學,甚至歷史分析領域。原型作為一個基礎參考模型,對于需求分析和增量更新有著重要的存在意義。原型仿真是基于創建模型的仿真系統,原型模型是增量模型的一種形式,是在開發系統之前,構造一個原型,在該原型的基礎上,逐漸完成整個系統的開發工作。
快速原型是利用原型輔助軟件開發的一種新思想。一般在需求分析階段很難得到完全、一致、準確、合理的需求說明,在獲得一組基本需求說明后,就快速的“實現”,繼而通過原型反饋,加深對系統的理解,待用戶評價或試用后,對需求說明進行補充和精確化,消除不協調的系統需求。
基于System Generator的信號處理快速原型設計參考圖1。需求分析和系統方案確定了系統的原型框架。通過原型系統的仿真,驗證需求的實現情況及算法的合理性,以及是否達到詳細設計的預期。完成原型系統的仿真后即可進行代碼實現,該過程可以參考原型系統的架構及功能模塊,即建立原型的過程已經完成了軟件的詳細設計。軟件測試可以利用原型仿真的輸入作為測試激勵。對于信號處理,復雜的調制、信道、加噪等信號均可以通過原型系統快速生成,加快仿真測試的進度。

圖1 快速原型設計流程
數字信號處理通常從中頻信號的接收開始,處理完成后,根據需求輸出相應的中頻信號。圖2設計了一個典型的數字信號處理原型系統,可看作通用平臺。

圖2 數字信號處理原型系統
完成系統方案的詳細設計后,對系統原型進行細化,完成整個設計方案,圖3為包含信號處理算法的原型仿真框圖。

圖3 數字信號處理算法仿真框圖
圖3中,算法原型可以為代碼實現提供直觀的架構和功能框圖,可視化模塊均可以通過IP實現,Black box模塊可以直接移植為代碼,極大地降低了代碼設計的難度和復雜度。硬件測試時,可以利用Chipscope等在線調試工具抓取過程數據和輸出結果,與原型仿真比對,驗證設計的正確性。在需求更新或迭代升級時,通過需求分析進行反饋,在原型的基礎上進行更新,便于追溯,避免二次開發時可能引入的問題或缺陷。
基于軟件平臺的設計和仿真,僅能在一定程度上驗證時序邏輯和算法的正確性,難以復現真實的信號激勵;真正意義的硬件實現,如果是僅對于設計或算法的研究驗證,不僅耗費了大量的硬件資源,而且開發周期冗長,還需要面臨從軟件仿真直接到硬件實現的風險,且每一次的修改效率較低。本文介紹的基于System Generator的信號處理快速原型設計方法,提供了一種快速實現軟件仿真和硬件實現的思路。