我在试着展示时间。但是它返回值0。怎么了?
代码:
module hello_world;
integer in_reg;
initial
begin
in_reg = 3'd2;
$monitor($time, " In register value = %b\n",in_reg[2:0]);
end
endmodule产出:
0在寄存器值= 010
发布于 2018-12-19 10:01:18
没什么不对。当$monitor语句输出其行时,模拟时间为0。
我猜您知道,只要$monitor的输入发生变化,它就会输出一行。但是,它不会对$time这样做,因为这样做没有什么意义。(它什么时候输出一行?每一个ns?每个ps?每个飞碟?)
因此,您的代码将in_reg设置为3'd2,然后$monitor显示它。然后模拟结束。其他什么都不会发生。
发布于 2018-12-20 06:28:43
试一试,下面的代码将每10 as打印10次in_reg内容,模拟时间将显示为10,20,...etc
`timecale 1ns/1ps
module hello_world;
integer in_reg;
initial
begin
in_reg = 3'd2;
repeat(10)
begin
#10;
$display($time, " In register value = %b\n",in_reg);
end
end
endmodulehttps://stackoverflow.com/questions/53848223
复制相似问题