在System Verilog中打印打包的结构

时间:2014-07-02 09:08:24

标签: printing struct verilog system-verilog packed

我有一个打包的结构,如下所示

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

MyPackedStruct myPackedStruct;

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

打印每个字段

$display(...,myPackedStruct.field_name)

2 个答案:

答案 0 :(得分:7)

您可以使用%p格式元素。

$display("%p", myPackedStruct);

Modelsim的输出:

 # '{bit1:x, byte1:x}

请参阅IEEE 1800-2012 SystemVerilog language spec.

中的21.2.1.7 Assignment pattern format部分

答案 1 :(得分:4)

您可以使用%p - 漂亮的打印:

$displayb("%p",myPackedStruct);

'{bit1:x, byte1:xxxxxxxx}

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