首页 > 解决方案 > Verilog在简单赋值中没有输出期望值

问题描述

我的问题:当我给一个四位变量赋值时,当我简单地输出这个值时,我得到了一个意想不到的结果。我以前从未见过这种情况,并且想知道我是否在语法上做错了什么。

module main;   
     reg [3:0] x;   
     initial 
     begin
         $monitor("%b",x);
         x=0010;
     end 
endmodule

我得到1010. 但是,我希望得到0010. 任何帮助表示赞赏!

标签: verilog

解决方案


Verilog 将您的数字解释为十进制,因为您没有指定基数。Verilog 代码中的数字0010是十进制的十 (10),它是1010二进制格式。 x=0010是一样的x=10。您需要添加一个二进制基本说明符。改变:

     x=0010;

至:

     x='b0010;

推荐阅读