Printing 在系统Verilog中打印压缩结构

Printing 在系统Verilog中打印压缩结构,printing,struct,verilog,system-verilog,packed,Printing,Struct,Verilog,System Verilog,Packed,我有一个定义如下的压缩结构 typedef struct packed { logic bit1; logic [7:0] byte1; } MyPackedStruct; MyPackedStruct myPackedStruct; 是否有任何SV内置函数可以用于打印类似于上面的结构,但有更多字段,而无需编写自己的方法来使用 $display(…,myPackedStruct.field_name)?您可以使用%p格式元素 $display("%p", myPackedSt

我有一个定义如下的压缩结构

typedef struct packed {
    logic bit1;
    logic [7:0] byte1;
} MyPackedStruct;

MyPackedStruct myPackedStruct;
是否有任何SV内置函数可以用于打印类似于上面的结构,但有更多字段,而无需编写自己的方法来使用


$display(…,myPackedStruct.field_name)

您可以使用
%p
格式元素

$display("%p", myPackedStruct);
Modelsim的输出:

 # '{bit1:x, byte1:x}

请参见

中的
21.2.1.7分配模式格式部分
,您可以使用%p-漂亮的打印:

$displayb("%p",myPackedStruct);

'{bit1:x, byte1:xxxxxxxx}

它将以赋值模式打印,但您将无法选择字段或其顺序,或应用任何其他单独的格式。%p适用于快速简便的显示,但大多数人最终都会编写一种方法,以完全按照他们想要的方式对其进行格式化。

+1感谢规范中的章节参考。不知怎的,我错过了这一节。这也适用于打印动态数组。您可以将其用于任何未打包的数组,但您可能希望在某种循环中格式化任何大型数组。无法编辑此帖子:“建议的编辑队列已满”,但$displayb应为空$display@Bamban
$displayb
是我想要用二进制基数打印的东西。好的!那么,很抱歉我发表了明确的评论。你知道我在哪里可以找到LRM中关于displayb的文档吗?