小数显示中不必要的空格

问题描述 投票:0回答:1

我正在尝试以十进制格式显示一些 32 位值,除了我的

%d
和前一个字符之间有奇怪数量的不必要的空格外,这工作正常。

例如,如果我有一个 32 位

reg
a,其十进制值为 33,我将使用如下所示的内容:

initial
begin
    $display("a=%d;", a);
end

cmd 中的输出将类似于以下内容:

a= ___________________33;

该行仅代表

%d
和前一个字符之间的长空格。 有人可以向我解释为什么会发生这种情况以及如何摆脱空格吗?

verilog space
1个回答
18
投票

IEEE Std 1800-2012 (21.2.1.3) 中,您可以找到以下信息:

显示十进制值时,前导零将被抑制并替换为空格。在其他基数中,始终显示前导零。

这就是为什么你之前有这么多空格

33
。实现你想要的最简单的方法是:

$display("a=%0d;", a);

通过在

0
字符和
%
(表示基数的字母)之间添加
d
,将覆盖显示数据的自动调整大小。结果将以尽可能小的尺寸打印。

© www.soinside.com 2019 - 2024. All rights reserved.