Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SystemVerilog中分析压缩结构以确定它';s码?_Verilog_System Verilog - Fatal编程技术网

在SystemVerilog中分析压缩结构以确定它';s码?

在SystemVerilog中分析压缩结构以确定它';s码?,verilog,system-verilog,Verilog,System Verilog,在SystemVerilog中,有没有一种方法可以分析压缩结构并确定其总体大小(以位为单位) typedef struct packed unsigned { logic [15:0] field_1; logic [7:0] field_2; logic [15:0] field_3; logic [4:0] field_4; } my_struct; 例如,我希望能够确定上述结构的大小为45 我查看了的“聚合数据类型”部分(第7章

在SystemVerilog中,有没有一种方法可以分析压缩结构并确定其总体大小(以位为单位)

typedef struct packed unsigned {
    logic [15:0]    field_1;
    logic  [7:0]    field_2;
    logic [15:0]    field_3;
    logic  [4:0]    field_4;
} my_struct;
例如,我希望能够确定上述结构的大小为45

我查看了的“聚合数据类型”部分(第7章),没有看到类似的内容

这可能吗?如果是,如何使用?

使用§20.6.2表达式大小系统函数中的
$bits()

$bits
系统函数返回将表达式保存为位流所需的位数

来自以下方面的直接示例:

。。。鉴于宣言:

typedef struct {
logic valid;
bit [8:1] data;
} MyType;
表达式
$bits(MyType)
应返回9,即MyType类型变量所需的数据位数