[摘 要] Simulink是MATLAB中的一種可視化仿真工具,廣泛應用于線性系統、數字控制以及數字信號處理的建模與仿真中。MATLAB在數字信號處理技術中,適合于前期對算法的模擬及對所得實訓數據的事后分析??删幊踢壿嬈骷m合對大量數據的并行處理。在可編程數字邏輯電路教學中應將兩者緊密結合起來,綜合運用。
[關鍵詞] 可編程邏輯電路; Simulink; MATLAB; 教學
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2011 . 24. 082
[中圖分類號] G712 [文獻標識碼] A [文章編號] 1673 - 0194(2011)24- 0141- 02
可編程數字邏輯電路是在20世紀70年代出現的,在ASIC基礎上發展起來的可編程、可配置新型電子邏輯器件??删幊踢壿嬈骷膽矛F在已經從電子器件的邏輯膠合向數字信號處理及板級集成發展。開發人員在面對數字信號處理等復雜的任務設計開發時將面對更大的困難,采用功能設計—設計輸入—功能仿真—綜合—綜合后仿真—布局布線—仿真與驗證—芯片編程調試這樣的傳統設計流程將會使開發周期、開發成本等各項指標不能達標,最終使開發項目失敗。為此各大廠商提出各自的解決方案。MATLAB是一種用于算法開發、數據可視化、數據分析以及數值計算的高級語言和交互式環境,使用MATLAB編程或開發算法的速度將大大提高。Simulink是MATLAB中的一種可視化仿真工具,廣泛應用于線性系統、數字控制以及數字信號處理的建模與仿真中。MATLAB在數字信號處理技術中,適合于前期對算法的模擬及所得實測數據的事后分析。可編程邏輯器件適合對大量數據的并行處理。因此將兩者緊密地結合起來,可以充分利用兩者的特長,快速有效地實現數字信號處理算法。在教學過程中應將兩者的綜合運用講授給學生。
目前三大可編程邏輯器件廠商Xilinx、Altera、Lattice占據90%以上的市場份額,各自都有完善產品鏈、開發工具鏈以及解決方案,都與MATLAB公司合作開發了相應的系統級建模工具,在很多方面擴展了Simulink平臺。這3家公司的建模工具分別是System Generator、DSP Builder、SYSDSP,它們都提供了系統級設計能力,允許在相同的環境進行軟、硬件的仿真、執行、驗證,而不需要書寫HDL代碼。在這些工具中可以直接對IP核進行調用,利用Simulink建模和仿真環境來實現FPGA設計,而無需了解和使用RTL級硬件語言,讓設計者能夠發揮基于FPGA的最大性能和靈活性,并縮短整個設計的周期。下面以System Generator為例介紹其開發流程。
System Generator可以看成MATLAB軟件中的一個硬件設計工具包,提供了豐富的的應用子模塊,實現信息和硬件綜合都能被自動添加到芯片的配置文件中,用戶無需熟悉FPGA的設計流程以及HDL語言,只需通過鼠標拖曳連接子模塊搭建成應用系統即可。首先安裝MATLAB及相應版本的ISE、System Generator。在Simulink的可視化環境中,根據系統的設計的功能將Xilinx模塊連接成所設計的系統,定義合適的系統參數;然后運用System Generator將Simulink模型轉換成硬件可執行模型,將定義的參數對應至硬件實現的實體以及輸入/輸出端口,并自動完成綜合、仿真與實現。整個開發流程分為浮點算法開發、浮點算法至定點算法實現、硬件系統設計與實現、代碼優化。下面將建立一個DDS正弦波形發生器系統,同時介紹System Generator的使用。此應用可以產生頻率、相位可調的正弦信號。
在MATLAB 環境中根據DDS控制原理建立如圖1所示的模型:在ROM中存儲正弦數據,ROM的Depth為:4096,Initial Value Vector 為:2047*sin(pi*(0:4095)/2048)+2047。System Generator 在編譯過程中自動產生一個存儲4 096 個正弦數據的ROM。ROM 中的每個值設置成12位無符號數。Accumulator 模塊用來進行相位的累加,AddSub 模塊將相位偏移量與相位累加值相加,作為ROM 的地址輸入。在仿真前,設置相位控制字為PWord=512,由公式算出移相后的波形應該較基準正弦波偏移2π·(PWord/Depth)=2π·(512/4096)=π/8;設置頻率控制字FWord=4,將仿真時間設置為2 048,這樣從理論上我們應該可以看到兩個周期的完整波形輸出。仿真時,將Scope中觀察到如圖2(a)所示的波形。改變控制字的值,就可以得到不同頻率、不同相位的波形,如圖2(b)所示。
在ISE 中實現并仿真。點擊System Generator的Generate 按鈕,生成可綜合的VHDL代碼,并在ISE中打開。先對代碼使用Synthesize-XST 進行綜合,通過之后可以觀察到系統RTL 級視圖。然后創建一個.tbw文件對綜合后的設計進行仿真,能夠得到和MATLAB 環境下一樣的仿真結果(按照正弦規律變化的離散數值序列)。
教學中我們可以充分利用MATLAB的可視環境,讓學生充分利用其強大的數據和仿真功能,在系統實現設計中能夠達到事半功倍的效果。