以下是一些modelsim代码:
begin
tb_in_top = 0;
#5 tb_in_top = 4'b0000;#5 tb_in_top = 4'b0001;
#5 tb_in_top = 4'b0010;#5 tb_in_top = 4'b0011;
#5 tb_in_top = 4'b0100;#5 tb_in_top = 4'b0101;
#5 tb_in_top = 4'b0110;#5 tb_in_top = 4'b0111;
#5 tb_in_top = 4'b1000;#5 tb_in_top = 4'b1001;
#5 tb_in_top = 4'b1010;#5 tb_in_top = 4'b1011;
#5 tb_in_top = 4'b1100;#5 tb_in_top = 4'b1101;
#5 tb_in_top = 4'b1110;#5 tb_in_top = 4'b1111;
#100 $finish;
end
#5和#100代表什么?这些行号是?这段代码有问题吗?
答案 0 :(得分:8)
它不是“ModelSim”代码,而是“Visual Studio”代码。这是Verilog。
#
令牌表示延迟,以纳秒为单位。
所以这段代码意味着:
(...继续计数,每5秒将tb_in_top递增1次......)
是的,Verilog有for
个循环,是的,应该是一个。
for
循环看起来像:
integer index;
reg [3:0] tb_in_top;
begin
tb_in_top = 0;
for(index = 0; index < 16; index = index + 1)
begin
#5 tb_in_top = tb_in_top + 4'h1;
end
#100 $finish;
end
最后,请注意,使用#
时间延迟操作的Verilog无法合成逻辑;它只能用于模拟。