边学边记录
#number; 为延时number秒
在initial中控制整个仿真的时间
例子:
initial
begin
$dumpfile(“main.vcd”);
$dumpvars(0,vara);
#100; //这样就控制了整个仿真的时间为100s
$finish;
end
$dumpfile(filename); 设定转储文件
$dumpvars(index,var); 设定监视的变量
一个半加器的代码
module add(input_a,input_b,answer,carry);
input input_a;
input input_b;
output answer,carry;
assign answer=input_a^input_b;
assign carry=input_a&input_b;
endmodule
module HELLO_TEST;
reg iclk=0;
reg a=0,b=0;
wire c,d;
always begin #1; iclk=!iclk; a=iclk; end
always begin #3; b=!b; end
add temp_add(.input_a(a),.input_b(b),.answer(c),.carry(d));
initial
begin
$dumpfile("main.vcd");
$dumpvars(0,temp_add);
#100;
$finish;
end
endmodule
进行仿真的makefile
main.vcd:main.v
iverilog main.v
./a.out
gtkwave main.vcd