Verilog未在简单赋值中输出预期值
我的问题:当我给一个四位变量赋值时,当我简单地输出值时,会得到一个意外的结果。我以前从未见过这种情况,我想知道我是否在语法上做错了什么Verilog未在简单赋值中输出预期值,verilog,Verilog,我的问题:当我给一个四位变量赋值时,当我简单地输出值时,会得到一个意外的结果。我以前从未见过这种情况,我想知道我是否在语法上做错了什么 module main; reg [3:0] x; initial begin $monitor("%b",x); x=0010; end endmodule 我得到的输出是1010。但是,我希望得到0010的输出。感谢您的帮助 Verilog将您的数字解释为十进制,因
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;
致:
您得到了正确的值:10(十进制)或您编写的0010 decimal。但我希望%b在监视器中返回二进制值。还有,为什么它会打印两个10?不,它会打印出二进制的10(十进制),也就是你给它的十进制:0010
x='b0010;