Verilog 未在简单赋值中输出预期值

Verilog not outputting expected value in simple assignment

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

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

我得到 1010 的输出。但是,我希望得到 0010 的输出。感谢您的帮助!

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

     x=0010;

至:

     x='b0010;