我有一个未压缩的int
数组:
int wanna_print [];
wanna_print = new[1];
可以这样打印:
$display("in hex: c86E [in dec: 51310] == %p", wanna_print[0]);
它将以十进制打印,但我需要以十六进制打印。
ofc我尝试了%0h,%h而不是%p,但它给出了此错误:参数2是解压缩类型,只能以'%p'格式打印。如何在十六进制中打印?%p可以以某种方式扩展吗?
我也尝试过$ sformatf,但其行为相同。
使用$displayh
在VCS中对我有用:
module tb;
int wanna_print [];
initial begin
wanna_print = new[1];
wanna_print[0] = 51310;
$displayh("in hex: c86E [in dec: 51310] == %p", wanna_print[0]);
end
endmodule
输出:
in hex: c86E [in dec: 51310] == 0000c86e
$displayh
在IEEE Std 1800-2017的21.2.1.2节格式规范中进行了描述。
但是,我遇到了Cadence的编译错误。