推 monkeyleo:ㄟ 我剛剛解決了... 03/26 01:56
test bench
你說的是這個嗎?
我用的是altera的modelsim
這是我大二的作業的一部份
module test_shifter;
reg [31:0]data_in;
reg [4:0]pos;
reg dir;
reg [1:0]fun;
wire [31:0]data_out;
--以上是你verilog程式的變數嘛
--所以test bench建議用一樣名字的變數
--把他們想成C++的副程式會很好明白(不等同就是了...)
SHIFTER M1(data_out,data_in,pos,dir,fun);
--把程式呼叫進來
initial
$monitor("%0t data_in=%b pos=%b dir=%b fun=%b
data_out=%b",$time,data_in,pos,dir,fun,data_out);
--我忘記了...我只記得這一行無敵重要
--以下是我個人認為test bench最重要的部份了
initial
begin
--#號後面接數字
--是表示他們在delay多久之後執行
#10 data_in=32'b1000_1110_0110_0011_1000_0101_0100_0111;pos=0;dir=0;fun=2'b00;
--這一行就是在delay10個單位之後執行後面這段敘述
--可能是set一些變數或是灌一個pattern進去吧...我忘記題目了= =+
--要看你要做什麼事情而定
#10 pos=3; dir=0;
--10+10=20所以delay20之後你要做的事情是pos=3; dir=0
#10 pos=6; dir=0;
#10 pos=3; dir=1;
#10 pos=6; dir=1;
#10 pos=0; dir=0;fun=2'b01;
#10 pos=3; dir=0;
#10 pos=6; dir=0;
#10 pos=3; dir=1;
#10 pos=6; dir=1;
#10 pos=0;dir=0;fun=2'b1x;
#10 pos=3; dir=0;
#10 pos=6; dir=0;
#10 pos=3; dir=1;
#10 pos=6; dir=1;
--以上也都是在每過10個單位之後要做哪些事情
#10 $finish;
--結束
end
endmodule
應該不難吼~~~~~感覺蠻多廢話的= =+
因為你沒有告訴我你哪裡不懂XDD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.118.136