0****1
仿真驗證平臺結(jié)構(gòu)
仿真驗證主要作用是搭建一個測試平臺,測試和驗證程序設(shè)計的正確性,驗證設(shè)計是否實現(xiàn)了我們所預(yù)期的功能。其結(jié)構(gòu)如下圖所示。
圖中可以看到,這個測試平臺本身對外沒有輸入輸出端口的,我們需要通過實例化的方式將待測試模塊放置于仿真中,然后設(shè)計相應(yīng)的激勵信號加載在待測試模塊的輸入端,運行仿真后觀測輸出信號是否正確。
下圖是2選1多路選擇器的仿真測試代碼,我們依次解讀各部分內(nèi)容。
`timescale 1ns/1ps
`timescale是預(yù)編譯指令,用于定義時間單位和時間精度。此處,時間單位為1ns,時間精度為1ps。
因此,語句 always #10 a=~a 中“#10”表示延時10ns。
reg a,b,sel;
wire out;
信號聲明部分包含兩部分。
待測試模塊的輸入信號,在仿真文件中是需要設(shè)計的激勵信號,一般在always和initial語句中描述,因此,聲明為reg型。
待測試模塊的輸出信號是待觀察的信號,聲明為wire型。
initial begin
a=0;b=0;sel=0;
end
always #10 a=~a;
always #20 b=~b;
always #40 sel=~sel;
以上是激勵信號的描述。
mux2_1 uut(
.a(a),
.b(b),
.sel(sel),
.out(out)
);
以上是待測試模塊的實例化。uut是實例名,由用戶自定義,不能缺少。
0****2
仿真驗證一般步驟
? 新建仿真文件(.v),與源程序文件名不能相同。
? 模塊聲明:對外沒有輸入、輸出端口。
? 信號聲明:待測模塊的輸入信號聲明為reg型,輸出信號聲明為wire型。
? 設(shè)計激勵信號:對待驗證模塊的輸入端口信號進行模擬,覆蓋所有情況。
? 實例化待測模塊:對待測模塊進行實例化。
? 運行仿真:Run Behavioral Simulation(行為仿真)
? 觀察仿真結(jié)果:判斷被測試模塊的輸出響應(yīng)是否符合預(yù)期要求
03
如何觀察內(nèi)部信號
①scope窗口選則待測試模塊(uut是待測模塊實例名)。
②將想要觀察的信號拖到仿真波形窗口。
③重新加載仿真(relaunch simulation)。
-
仿真驗證
+關(guān)注
關(guān)注
0文章
26瀏覽量
8202 -
HDL語言
+關(guān)注
關(guān)注
0文章
48瀏覽量
9065 -
Verilog設(shè)計
+關(guān)注
關(guān)注
0文章
20瀏覽量
6604 -
多路選擇器
+關(guān)注
關(guān)注
1文章
22瀏覽量
6642
相關(guān)推薦
Verilog HDL入門教程(全集)
硬件驗證語言——簡介
使用ModelSim進行設(shè)計仿真
使用 ModelSim 進行設(shè)計仿真

Verilog HDL硬件描述語言_驗證
設(shè)計與驗證:Verilog HDL(清晰PDF)
基于System Verilog的可重用驗證平臺設(shè)計及驗證結(jié)果分析

如何使用Icarus Verilog+GTKWave來進行verilog文件的編譯和仿真

評論