首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以下代码的输出是意外的:

以下代码的输出是意外的:
EN

Stack Overflow用户
提问于 2018-12-19 09:32:35
回答 2查看 68关注 0票数 0

我在试着展示时间。但是它返回值0。怎么了?

代码:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-19 10:01:18

没什么不对。当$monitor语句输出其行时,模拟时间为0。

我猜您知道,只要$monitor的输入发生变化,它就会输出一行。但是,它不会对$time这样做,因为这样做没有什么意义。(它什么时候输出一行?每一个ns?每个ps?每个飞碟?)

因此,您的代码将in_reg设置为3'd2,然后$monitor显示它。然后模拟结束。其他什么都不会发生。

票数 2
EN

Stack Overflow用户

发布于 2018-12-20 06:28:43

试一试,下面的代码将每10 as打印10次in_reg内容,模拟时间将显示为10,20,...etc

代码语言:javascript
复制
`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
endmodule
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53848223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档