版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、實驗目的使用Verilog軟件編寫四種波形任意發(fā)生器的源代碼,用modelsim軟件進行仿真測試,進一步強化Verilog,modelsim軟件的編程能力為進一步的編程學習打下良好的基礎。二、實驗原理2.1該任意波形發(fā)生器要實現(xiàn)三個功能:(1)通過計數(shù)器并結合拼接操作產生四種波形正弦波,方波,三角波1,三角波形的5位數(shù)據地址。(2).設定ROM中對應波形地址地址的8位數(shù)值,將所有波形數(shù)值存儲到ROM中。(3).設定2位的波形選擇開關端口。波形選擇 正弦波 方波三角波1三角波2 2bit地址發(fā)生器(0-7) 0000000111clk 01000011113bit data7:0reset
2、1000010111 1100011111圖 1整體設計方案2.2 四種波形要在一個周期內等間隔取8個點,定義對應的數(shù)據,下圖為示意圖,由于編程序需要,數(shù)據會進行相應的修改。8881 三角波1 三角波2xy00yyx1x1 方波 正弦波1-1 圖2 四種波形一個周期內的取樣示意圖2.3 四種波形數(shù)據地址對應的數(shù)據的存儲器ROM根據示意圖,由于實際情況需要,將正弦波平移至x軸以上,并將所有波形的峰峰值取大100倍。下表1是ROM存儲器 正弦波波形選擇地址 取樣點的地址 ROM數(shù)據 000001710000120000010171000111000010029001010001102900111
3、方波1000100000100100101000101100110010001101100011101000111110010000 三角波1010001010010331001167101001001010167101103310111 三角波201100001100150110101001101115011100200111011331111067111110 表1 ROM存儲器3、 實驗內容3.1 任意波形發(fā)生器verilog程序代碼:module wave(data,clk,add1,reset);/頂層模塊端口定義output7:0data;input clk,reset;input
4、1:0 addr1;Wire1:0 addr1;wire clk,reset;/輸入輸出變量定義ADDR 4(addr,clk,addr1,reset);/地址發(fā)生器模塊調用rom 1(addr,data);/ROM存儲器模塊調用endmodulemodule ADDR(addr,clk,addr1,reset);output4:0 addr;input clk,reset;wire clk,reset;reg2:0 addr2;wire1:0 addr1;reg4:0 addr;initial addr2=3b000; /定義計數(shù)初值always (posedge clk or posedg
5、e reset)/每當有clk,或reset信號開啟程序beginif(reset) beginaddr2=0;/同步復位addr=7)/addr2計數(shù)至7時,addr2復位beginaddr2=0;endelse beginaddr2=addr2+1;/addr2由0至7計數(shù)addr=addr1,addr2;/addr1與addr2地址拼接為addr的最終地址endendendmodulemodule rom(addr,data);/數(shù)據存儲器模塊input4:0 addr;output7:0 data;function6:0 romout;/定義函數(shù),存儲32個波形取樣點地址的數(shù)據inpu
6、t4:0 addr;reg4:0 addr;wire7:0 data;case(addr)/根據不同地址,得到不同數(shù)據。0 : romout =171 ;1 : romout =200 ;2 : romout =171 ;3 : romout =100 ;4 : romout =29 ;5 : romout =0 ;6 : romout =29 ;7 : romout =100 ;8 : romout =0 ;9 : romout =0 ;10 : romout =0 ;11 : romout =0 ;12 : romout =100 ;13 : romout =100 ;14 : romou
7、t =100 ;15 : romout =100 ;16 : romout =0 ;17 : romout =0 ;18 : romout =33 ;19 : romout =67 ;20 : romout =100 ;21 : romout =67 ;22 : romout =33 ;23 : romout =0 ;24 : romout =0 ;25 : romout =50 ;26 : romout =100 ;27 : romout =150 ;28 : romout =200 ;29 : romout =133 ;30 : romout =67 ;31 : romout =0 ;de
8、fault : romout = 8hxx;endcaseendfunctionassign data = romout(addr);endmodule3.2 verilog在quartus軟件仿真截圖將代碼輸入后,建立波形文件,定義輸入輸出端口后進行仿真。3.2.1正弦波示意圖:將兩位波形選擇端設置為00,得出正弦波示意圖2圖23.2.2.方波示意圖:將兩位波形選擇端設置為01,得出方波示意圖3圖33.2.3 三角波1示意圖:將兩位波形選擇端設置為10,得出三角波1示意圖4圖43.2.4.三角波2示意圖:將兩位波形選擇端設置為11,得出三角波2示意圖5圖53.2.5結論:由上面的四個波形截圖
9、可知,在一個周期內,通過不同的波形選擇端控制,該程序實現(xiàn)了基本的任意波形產生的功能,產生了正確的波形數(shù)據,說明代碼編寫正確。3.3 modelsim任意波形發(fā)生器測試程序仿真3.3.1 任意波形發(fā)生器測試程序代碼。timescale 1ns/1nsinclude wave.vmodule wave_tp; /測試模塊的名字reg reset,clk;reg1:0 addr1; /測試輸入信號addr1定義為reg 型wire7:0 data; /測試輸出信號data定義為wire 型parameter dely=100;wave fourwave(data,clk,reset,addr1);
10、/調用測試對象always #(dely/2) clk=clk;initial beginreset=1;clk=0;addr1=0;#(dely*200) reset=0;/延遲200dely后先進行復位#(dely*200) addr1=2b00;/延遲200dely后測試出正弦波#(dely*200) addr1=2b01;/延遲200dely后測試出方波#(dely*200) addr1=2b10;/延遲200dely后測試出三角波1#(dely*200) addr1=2b11;/延遲200dely后測試出三角波2#(dely*200) $finish;/endendmodule 3.
11、3.2 modelsim測試程序仿真截圖將測試程序代碼與源程序代碼一起輸入后進行編譯,顯示波形如下:3.3.2.1正弦波測試圖6:將波形輸出格式設為模擬形式,可以看出正弦波的測試圖圖63.3.2.2方波測試圖7:將波形輸出格式設為離散輸出形式,可以看出方波的測試圖7圖73.2.2.3三角波1測試圖8:將波形輸出格式設為模擬形式,可以看出三角波1的測試圖8圖83.2.2.4三角波2測試圖9:將波形輸出格式設為模擬形式,可以看出三角波2的測試圖9圖93.3.3.總結由上面的四個測試波形截圖可知,在一個周期內,通過不同的波形選擇端控制,該程序實現(xiàn)了基本的任意波形產生的功能,產生了正確的實驗波形,說明
12、代碼編寫正確。4、 實驗總結4.1遇到的問題和對應的解決措施:(1)編程過程中沒有注意端口定義過程,沒有正確理解wire與reg類型的區(qū)別。導致出錯(解決辦法:輸出端口應設為可變的wire類型)。(2)一開始拼接操作用錯了地方,用在了ROM內部,導致錯誤。(解決辦法:應用在加法計數(shù)操作后)。(3)波形數(shù)據初值有負數(shù),無法正確顯示數(shù)字。(解決辦法:將波形數(shù)據平移至x軸以上即可顯示正確的波形數(shù)據)(4)一開始我是用拼接操作,有錯誤,無法正確顯示波形數(shù)據(解決辦法:通過case語句輸入波形選擇addr1端口,成功顯示了波形)。4.2收獲: 通過這次期末實驗,雖然花了較多時間,遇到了許多的難題,但讓我進一步認識了Verilog語言的使用,詳細了解了整個程序的設計和仿真過程,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版鋁合金模板工程安裝與環(huán)保評估合同4篇
- 2025年盆景市場推廣與銷售合作合同范本4篇
- 二零二五年度綠色建筑節(jié)能改造項目設計咨詢服務合同4篇
- 2025年移動通信網絡優(yōu)化服務合同范本
- 2025年度鋁扣板吊頂施工與維護一體化服務合同協(xié)議
- 2025游泳館會員卡年度健康體檢及運動康復服務協(xié)議3篇
- 2025年度凈身出戶離婚協(xié)議書模板與婚姻律師團隊全程支持服務協(xié)議3篇
- 上海建筑工地勞務合作協(xié)議樣書
- 2025年度個人物流運輸承包合同范本2篇
- 2025年度私立學校教師聘用合同范本(創(chuàng)新教育版)
- 眼的解剖結構與生理功能課件
- 小學網管的工作總結
- 2024年銀行考試-興業(yè)銀行筆試參考題庫含答案
- 泵站運行管理現(xiàn)狀改善措施
- 2024屆武漢市部分學校中考一模數(shù)學試題含解析
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術標準》
- 浙教版七年級下冊科學全冊課件
- 弧度制及弧度制與角度制的換算
- 瓦楞紙箱計算公式測量方法
- DB32-T 4004-2021水質 17種全氟化合物的測定 高效液相色譜串聯(lián)質譜法-(高清現(xiàn)行)
- DB15T 2724-2022 羊糞污收集處理技術規(guī)范
評論
0/150
提交評論