I'm trying to display some 32-bit values in decimal format, and this is working fine other than the strange amount of unnecessary spaces between my %d
and the previous character.
For example, if I have a 32-bit reg
a with a decimal value of 33, I'll use something like this:
initial
begin
$display("a=%d;", a);
end
The output in cmd would look similar to this:
a= ___________________33;
The line just represents the long blank space between %d
and the previous character.
Can somebody explain to me why this happens and how can I get rid of the spaces?
In IEEE Std 1800-2012 (21.2.1.3) you can find following information:
When displaying decimal values, leading zeros are suppressed and replaced by spaces. In other radices, leading zeros are always displayed.
That's why you got so many spaces before 33
. The simplest way to achieve whay you want would be:
$display("a=%0d;", a);
By adding 0
between %
character and d
(letter that indicates the radix) the automatic sizing of displayed data is overridden. The result will be printed with minimum possible size.