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),即二进制格式的 1010
。 x=0010
与 x=10
相同。您需要添加二进制基本说明符。变化:
x=0010;
至:
x='b0010;
我的问题: 当我给一个四位的变量赋值时,当我简单地输出值时,我得到了意想不到的结果。我以前从未见过这个,想知道我是否在语法上做错了什么。
module main;
reg [3:0] x;
initial
begin
$monitor("%b",x);
x=0010;
end
endmodule
我得到 1010
的输出。但是,我希望得到 0010
的输出。感谢您的帮助!
Verilog 将您的数字解释为十进制,因为您没有指定基数。您的 Verilog 代码中的数字 0010
是十进制十 (10),即二进制格式的 1010
。 x=0010
与 x=10
相同。您需要添加二进制基本说明符。变化:
x=0010;
至:
x='b0010;