
ModelSim软件仿真步骤教程资料.pdf
9页使用 ModelSim 模擬驗證 HDL code 1. 在模擬前先準備好我們要模擬的電路檔案(Verilog HDL ,TestBench, )2. 打開 ModelSim,新建一個 Project ,鍵入 Project name 按 OK 此處我們的 library name 為 default library name “work”不必更改3. 然後再加入我們所要模擬的電路檔案(若尚未準備,可開啟新檔案再將code 鍵入)選 Add Existing File ,將我們已編輯好的檔案加入將 我 們 所 需 要 的 檔 案 加 入 , 按Browse 選 擇 我 們 所 需 檔 案count.v, count_test.vt),按下 OK再將先前所開啟的增加檔案的視窗關閉,按close4. 按下 compile allCompile 成功沒有顯示出錯誤訊息, 則開始模擬波形5. 按下 Simulation, 選擇檔案所在的 Library (work), 點選 TestBench的 Module Name t_Gap_finder 按 OK 6. 承接上步驟將會跳出以下視窗,若要將所有訊號加入波型中觀察則選擇在testbench的 module name: count_tst按滑鼠右鍵選擇 Add Add to Wave。
7. 在波型畫面按下 Run All 開始模擬跑完後會跳出下面視窗選擇否則可觀察模擬波形,若按下是則會將ModelSim 關閉8. 觀察波形圖是否與功能符合,若與設計不符則修改設計並重複執行Step 4 到Step 8 Testbench 語法timescale 1 ps/ 1 ps 前面的 1ps 代表程式中最小的時間單位後面的 1ps 代表運算的精準度module count_tst(); testbench 命名 括號內不用加 I/O reg clk; 將 Input 設為 reg reg 7:0 in; reg reset; reg start; reg load; wire 3:0 num; Output 設為 wirecount i1 ( 將要測試的 HDL 名字寫進來, il 只是一個隨便的命名 .clk(clk), 將 HDL 的 port 和 testbench 的 port 做連接.in(in), .num(num), .reset(reset), .start(start), .load(load) ); initial clk=0; initial 為只執行一次的訊號, clk 訊號一開始為 0 initial #150000 $finish; 經過 150ns 結束模擬always always 用在重複性的訊號clock 就是一種begin 設定每 5ns clk 訊號反向#5000 clk=!clk; end initial 設定 in 訊號為 01101101 begin in = 8b01101101; end initial 設定 reset 訊號一開始為 0,經過 10ns 為 1,begin 再經過 10ns 又變為 0 reset = 1b0; reset = #10000 1b1; reset = #10000 1b0; end initial begin load= 1b0; load= #30000 1b1; load= #10000 1b0; end initial begin start = 1b0; start = #60000 1b1; end endmodule 。
