首页|资源下载
登录|注册

您现在的位置是:首页 > 技术阅读 >  Systemverilog中的union

Systemverilog中的union

时间:2024-07-17

SystemVerilog union允许单个存储空间以不同的数据类型存在,所以union虽然看起来和struct一样包含了很多个成员,实际上物理上共享相同的存储区域。

结构体占用的内存空间是其中所有成员的存储空间之和,而联合体所占用的存储空间是等于其中所有成员中最大的存储空间。

union {
int a;
byte b;
bit [15:0] c;
} data;

在上面的例子中,由于占用最大存储空间的成员是int a,所以这个联合体的存储空间是32bit,示意图如下

而对于结构体

struct {
int a;
byte b;
bit [15:0] c;
} data;

所占用的存储空间是所有成员之和。示意图如下