Verilog Display中不必要的空间

时间:2015-07-12 09:36:51

标签: verilog spaces

我正在尝试以十进制显示一些32位值,除了我的%b和前一个字符之间的大量不必要的空格之外,这个工作正常。

例如: 如果我有一个小数值为33的32位reg a,我将使用类似这样的东西

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

cmd中的输出看起来与此类似: a = ___________________ 33;

该行只表示%b与前一个字符之间的长空格。 有人可以向我解释为什么会这样吗?我怎么能摆脱它们?

1 个答案:

答案 0 :(得分:13)

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

  

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

这就是为什么你在33之前有这么多空格的原因。实现你想要的最简单的方法是:

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

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