Syntax 如何在SystemVerilog中以十六进制显示/打印未打包的类型?
我有一个未打包的Syntax 如何在SystemVerilog中以十六进制显示/打印未打包的类型?,syntax,integer,hex,verilog,system-verilog,Syntax,Integer,Hex,Verilog,System Verilog,我有一个未打包的int数组: int wanna_print []; wanna_print = new[1]; 它可以这样打印: $display("in hex: c86E [in dec: 51310] == %p", wanna_print[0]); 它将以十进制打印,但我需要十六进制 我尝试了%0h,%h而不是%p,但出现了以下错误: 参数2是未打包类型,只能以“%p”格式打印。 如何以十六进制打印? %p是否可以扩展 我也尝试了$sformaf,但它的行为是相
int
数组:
int wanna_print [];
wanna_print = new[1];
它可以这样打印:
$display("in hex: c86E [in dec: 51310] == %p", wanna_print[0]);
它将以十进制打印,但我需要十六进制
我尝试了%0h
,%h
而不是%p
,但出现了以下错误:
参数2是未打包类型,只能以“%p”格式打印。
如何以十六进制打印?
%p
是否可以扩展
我也尝试了
$sformaf
,但它的行为是相同的。使用$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
IEEE标准1800-2017第21.2.1.2节格式规范中描述了“$displayh
”
但是,Cadence出现编译错误。我曾与西门子/Mentor Questa合作,并在那里工作,谢谢!这是LRM中的一个公开问题