Verilog 显示中不必要的空格
Unnecessary spaces in Verilog Display
我正在尝试以十进制显示一些 32 位值,除了我的 %b 和前一个字符之间奇怪的不必要的 spaces 之外,这工作正常。
例如:
如果我有一个十进制值为 33 的 32 位 reg a,我将使用类似这样的东西
initial
begin
$display("a=%d;", a);
end
cmd 中的输出类似于:
a= ___________________33;
该行仅代表 %b 和前一个字符之间的长空白 space。
有人可以向我解释为什么会这样吗?我怎样才能摆脱它们?
在IEEE Std 1800-2012 (21.2.1.3) 中您可以找到以下信息:
When displaying decimal values, leading zeros are suppressed and replaced by spaces. In other radices, leading zeros are always displayed.
这就是为什么 33
之前有这么多空格的原因。实现你想要的最简单方法是:
$display("a=%0d;", a);
通过在 %
字符和 d
(表示基数的字母)之间添加 0
,将覆盖显示数据的自动调整大小。结果将以尽可能小的尺寸打印。
我正在尝试以十进制显示一些 32 位值,除了我的 %b 和前一个字符之间奇怪的不必要的 spaces 之外,这工作正常。
例如: 如果我有一个十进制值为 33 的 32 位 reg a,我将使用类似这样的东西
initial
begin
$display("a=%d;", a);
end
cmd 中的输出类似于: a= ___________________33;
该行仅代表 %b 和前一个字符之间的长空白 space。 有人可以向我解释为什么会这样吗?我怎样才能摆脱它们?
在IEEE Std 1800-2012 (21.2.1.3) 中您可以找到以下信息:
When displaying decimal values, leading zeros are suppressed and replaced by spaces. In other radices, leading zeros are always displayed.
这就是为什么 33
之前有这么多空格的原因。实现你想要的最简单方法是:
$display("a=%0d;", a);
通过在 %
字符和 d
(表示基数的字母)之间添加 0
,将覆盖显示数据的自动调整大小。结果将以尽可能小的尺寸打印。