Systemverilog中的union

描述

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

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

 

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

 

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

union

而对于结构体

 

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

 

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

union

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分