7

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

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

MyPackedStruct myPackedStruct;

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

$display(...,myPackedStruct.field_name)?

4

2 回答 2

9

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

$display("%p", myPackedStruct);

Modelsim 的输出:

 # '{bit1:x, byte1:x}

请参阅IEEE 1800-2012 SystemVerilog 语言规范21.2.1.7 Assignment pattern format中的部分。

于 2014-07-02T14:26:53.473 回答
7

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

$displayb("%p",myPackedStruct);

'{bit1:x, byte1:xxxxxxxx}

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

于 2014-07-02T14:28:46.380 回答