資源描述:
《實(shí)驗(yàn)6_正弦信號(hào)發(fā)生器設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、實(shí)驗(yàn)6_正弦信號(hào)發(fā)生器設(shè)計(jì)一、工作原理正弦信號(hào)發(fā)生器工作原理框圖如下:VHDL頂層設(shè)計(jì)(singt.vhd)8位D/A正弦波數(shù)據(jù)存儲(chǔ)ROM6位地址計(jì)數(shù)器其中正弦波數(shù)據(jù)存儲(chǔ)器采用6位地址線,8位數(shù)據(jù)線。即可存儲(chǔ)26(64個(gè)8位數(shù)據(jù))個(gè)字節(jié)數(shù)據(jù)。由FPGA中的宏功能模塊實(shí)現(xiàn)。D/A輸出信號(hào)頻率f與地址計(jì)數(shù)器輸入時(shí)鐘信號(hào)CLK頻率f0、每周期波形數(shù)據(jù)點(diǎn)數(shù)的關(guān)系如下:f=f0/64二、定制波形數(shù)據(jù)存儲(chǔ)文件初始化數(shù)據(jù)存儲(chǔ)文件有兩種格式:.mif文件和.hex文件。建立.mif文件過(guò)程如下:1、執(zhí)行“File→New”菜單,彈出建立文件對(duì)話框如下:選擇“Mem
2、oryInitializationFile”選項(xiàng)建立數(shù)據(jù)存儲(chǔ)文件,其字節(jié)數(shù)取:64;數(shù)據(jù)位寬取:8位,并輸入64個(gè)8位數(shù)據(jù)如下圖所示:2、執(zhí)行“File→Save”菜單,將上面的數(shù)據(jù)存儲(chǔ)文件保存在工程目錄data文件夾內(nèi)。文件命名為:romd.mif。如下圖所示:三、定制宏功能模塊(LPM_ROM)元件1、執(zhí)行“Tools→MegaWizardPlug-InManager”菜單,彈出如下圖所示對(duì)話框:選擇“Createanewcustom…”定制一個(gè)新的模塊。單擊“Next”按鈕,打開(kāi)如下對(duì)話框:在左欄選擇“LPM_ROM”,在左上角分別選擇:Cy
3、clone器件、VHDL語(yǔ)言方式,以及需要輸出的ROM數(shù)據(jù)存儲(chǔ)文件目錄及文件名,假設(shè)定義為romd.vhd2、單擊“Next”按鈕,彈出如下對(duì)話框:選擇存儲(chǔ)文件數(shù)據(jù)寬度為8位,字節(jié)數(shù)為64,選擇雙時(shí)鐘方式。單擊“Next”按鈕,彈出如下對(duì)話框:3、單擊“Next”按鈕,彈出如下對(duì)話框:在圖中設(shè)置初始化數(shù)據(jù)存儲(chǔ)文件的路徑,以及此存儲(chǔ)文件的名稱(chēng)ROM1。4、單擊“Next”按鈕,彈出如下對(duì)話框:5、單擊“Next”按鈕,彈出如下對(duì)話框:6、單擊“Finish”按鈕,完成宏功能模塊文件的定制。7、打開(kāi)定制好的宏功能模塊文件romd.vhd,可以看到其中調(diào)
4、用初始化數(shù)據(jù)文件的語(yǔ)句為:init_file=>"E:/EDA2/第七章/實(shí)例1_正弦信號(hào)發(fā)生器設(shè)計(jì)/data/romd.mif",將其修改為:init_file=>"./data/romd.mif", 即采用相對(duì)路徑,以便于移動(dòng)到其它路徑。四、完成頂層文件設(shè)計(jì)1、編輯頂層文件VHDL源程序如下:-------------------------------------------------------模塊功能:正弦波發(fā)生器頂層設(shè)計(jì)文件--入口參數(shù):時(shí)鐘信號(hào)clk--出口參數(shù):8位數(shù)據(jù)輸出:dout--程序編寫(xiě):zqp--創(chuàng)建時(shí)間:2007-10
5、-16--聯(lián)系方式:QQ:30871641--修改日志:--NO.1:----------------------------------------------------LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;--使用標(biāo)準(zhǔn)邏輯矢量USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsingtISPORT(clk:INSTD_LOGIC;dout:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--8位波形數(shù)據(jù)輸出END;ARCHITECTUREoneOFsingtISCO
6、MPONENTromd--調(diào)用波形數(shù)據(jù)存儲(chǔ)文件PORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0);--6位地址信號(hào)inclock:INSTD_LOGIC;--地址鎖存時(shí)鐘q:OUTSTD_LOGIC_VECTOR(7DOWNTO0)--8位數(shù)據(jù)輸出);ENDCOMPONENT;SIGNALq1:STD_LOGIC_VECTOR(5DOWNTO0);--內(nèi)部節(jié)點(diǎn)作為地址計(jì)數(shù)器BEGINPROCESS(clk)BEGINIFCLK'EVENTANDCLK='1'THENq1=q1+1;ENDIF;ENDPROCESS;u
7、1:romdPORTMAP(address=>q1,q=>dout,inclock=>clk);--元件例化END;2、建立工程編譯3、建立矢量波形文件仿真建立矢量波形文件仿真得到仿真波形圖如下: