verilog - 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;
至:
x='b0010;
推荐阅读
- html - Gmail 之类 CSS 中的文本框工具提示
- .net - WCF Webservice 请求:在 SecurityTokenReference 中添加引用标记而不是 KeyIdentifier 标记
- audiokit - Audiokit Control 交互捕获
- jdbc - 即使在指定 quote.sql.identifiers=NEVER 之后,table.whitelist 也区分大小写
- python - 当我有高度不平衡的数据时,我应该平衡测试集吗?
- javascript - How to Create Chart.JS Bar Graph with Min, Max & Average
- android - 第三方应用程序是否可以从 ram 中删除未使用的进程?
- flutter - 如何在模拟器中测试颤振指纹代码?
- php - 如何将字段从文本更改为选项框?
- javascript - 如何在动态附加的内部元素上附加点击事件?