基于模型的DDS芯片設計與實(shí)現
2 在MATLAB 中建立的DDS 模型并在ISE 中實(shí)現本文引用地址:http://dyxdggzs.com/article/152145.htm
Simulink 是一個(gè)可用于多領(lǐng)域動(dòng)態(tài)系統仿真的平臺,為動(dòng)態(tài)系統提供建模和分析的方 法,提供交互的圖形化方框圖環(huán)境帶有為信號處理、通信和控制等可定制的模塊集。System Generator 就是Xilinx 公司的一個(gè)專(zhuān)有模塊集(Blockset),它是Simulink 的一個(gè)插件, 包括基本DSP 函數和邏輯算符,其中包含的預先定義好的模塊可以保證FPGA 實(shí)現時(shí)位和周 期的正確。用它可以自動(dòng)生成VHDL 語(yǔ)言、測試向量等文件,還可以自動(dòng)將特定的設計模塊 映射成高度優(yōu)化的IP 核模型。在本文介紹的設計中,最后生成的工程文件中就自動(dòng)映射出 一個(gè)累加器核和一個(gè)單口塊ROM 核。
根據DDS 控制原理在MATLAB 環(huán)境中建立如下的模型(圖1):其中在存儲正弦數據的RO中設定Depth 為:4096,Initial Value Vector 為:2047*sin(pi*(0:4095)/2048)+2047, 即讓System Generator 在編譯過(guò)程中自動(dòng)產(chǎn)生一個(gè)存儲4096 個(gè)正弦數據的ROM。為了配合 使用開(kāi)發(fā)板上的D/A 模塊,ROM 中的每個(gè)值設置成12 位無(wú)符號數。Accumulator 模塊用來(lái)進(jìn) 行相位的累加,AddSub 模塊將相位偏移量與相位累加值相加,作為ROM2 的地址輸入。在仿 真前,設置相位控制字為PWord=512,由公式算出移相后的波形應該較基準正弦波偏移;設置頻率控制字FWord=4,將仿真時(shí)間設置為2048,這樣 從理論上我們應該可以看到兩個(gè)周期的完整波形輸出。運行仿真,可以在Scope 中觀(guān)察到如圖2.1 中波形。改變控制字的值,就可以得到不同頻率、不同相位的波形(圖2.2)。
2.2 在ISE 中實(shí)現并仿真
點(diǎn)擊System Generator 圖標中的generate 按鈕,生成可綜合的VHDL 代碼,并在ISE 中打開(kāi)。先對代碼使用Synthesize-XST 進(jìn)行綜合,通過(guò)之后可以觀(guān)察到系統RTL 級視圖。 然后創(chuàng )建一個(gè).tbw 文件對綜合后的設計進(jìn)行仿真,能夠得到和MATLAB 環(huán)境下一樣的仿真結 果(按照正弦規律變化的離散數值序列)。為了能夠在實(shí)驗板上實(shí)現設計,在ISE 環(huán)境中建立 頂層文件,將System Generator 產(chǎn)生的文件與PicoBlaze 的控制程序文件結合,再進(jìn)行對 應的功能仿真,正確后加載約束文件,生成比特流文件。
隔離器相關(guān)文章:隔離器原理
評論