ModelSim软件仿真步骤教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用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。

再將先前所開啟的增加檔案的視窗關閉,按close。

4.按下compile all。

Compile成功沒有顯示出錯誤訊息, 則開始模擬波形

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設為wire

count 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 = 8'b01101101;

end

initial 設定reset訊號一開始為0,經過10ns為1,begin 再經過10ns又變為0

reset = 1'b0;

reset = #10000 1'b1;

reset = #10000 1'b0;

end

initial

begin

load= 1'b0;

load= #30000 1'b1;

load= #10000 1'b0;

end

initial

begin

start = 1'b0;

start = #60000 1'b1; end

endmodule

相关文档
最新文档