我正在尝试以十进制显示一些 32 位值,除了 %b 和前一个字符之间有奇怪数量的不必要的空格外,这工作正常。
例如:
如果我有一个 32 位 reg a,其十进制值为 33,我将使用类似的东西
initial
begin
$display("a=%d;", a);
end
cmd 中的输出将类似于以下内容:
= ___________________33;
该行仅表示 %b 和前一个字符之间的长空格。
有人可以向我解释为什么会发生这种情况吗?我怎样才能摆脱它们?
In IEEE 标准 1800-2012(21.2.1.3) 您可以找到以下信息:
显示小数值时,前导零被抑制并替换为空格。在其他基数中,始终显示前导零。
这就是为什么你之前有这么多空格33
。实现你想要的最简单的方法是:
$display("a=%0d;", a);
通过增加0
之间%
性格和d
(表示基数的字母)显示数据的自动调整大小被覆盖。结果将以尽可能小的尺寸打印。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)