0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Systemverilog中的union

芯片验证工程师 来源:芯片验证工程师 作者:芯片验证工程师 2022-11-09 09:41 次阅读

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

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

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

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

22029e64-5f80-11ed-8abf-dac502259ad0.png

而对于结构体

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

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

222884d0-5f80-11ed-8abf-dac502259ad0.png

审核编辑:汤梓红

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

    关注

    28

    文章

    1351

    浏览量

    110077
  • System
    +关注

    关注

    0

    文章

    165

    浏览量

    36929
  • 结构体
    +关注

    关注

    1

    文章

    130

    浏览量

    10840
  • union
    +关注

    关注

    0

    文章

    10

    浏览量

    4259

原文标题:Systemverilog中的union

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    SystemVerilog的Virtual Methods

    SystemVerilog多态能够工作的前提是父类的方法被声明为virtual的。
    发表于 11-28 11:12 698次阅读

    SystemVerilog的“const”类属性

    SystemVerilog可以将类属性声明为常量,即“只读”。目的就是希望,别人可以读但是不能修改它的值。
    发表于 11-29 10:25 2135次阅读

    SystemVerilog的联合(union)介绍

    SystemVerilog ,联合只是信号,可通过不同名称和纵横比来加以引用。
    的头像 发表于 10-08 15:45 1387次阅读
    <b class='flag-5'>SystemVerilog</b><b class='flag-5'>中</b>的联合(<b class='flag-5'>union</b>)介绍

    请问UNIONUNION ALL的区别是什么?

    UNIONUNION ALL的区别
    发表于 11-17 07:25

    union 的概念及在嵌入式编程的应用

    union 在中文的叫法又被称为共用体,联合或者联合体,它定义的方式与 struct 是相同的,但是意义却与 struct 完全不同,下面是 union ...
    发表于 02-07 11:30 0次下载
    <b class='flag-5'>union</b> 的概念及在嵌入式编程<b class='flag-5'>中</b>的应用

    SystemVerilog$cast的应用

    SystemVerilog casting意味着将一种数据类型转换为另一种数据类型。在将一个变量赋值给另一个变量时,SystemVerilog要求这两个变量具有相同的数据类型。
    的头像 发表于 10-17 14:35 2847次阅读

    SystemVerilog可以嵌套的数据结构

    SystemVerilog除了数组、队列和关联数组等数据结构,这些数据结构还可以嵌套。
    的头像 发表于 11-03 09:59 1593次阅读

    SystemVerilog的struct

    SystemVerilog“struct”表示相同或不同数据类型的集合。
    的头像 发表于 11-07 10:18 2450次阅读

    SystemVerilog的tagged Unions是什么

    tagged union包含一个隐式成员,该成员存储tag,也就是标记,它表示这个union最终存储的到底是哪一个成员。
    的头像 发表于 11-10 10:02 1463次阅读

    SystemVerilog的Unpacked Unions

    unpacked union各个成员的大小可以是不同的。
    的头像 发表于 11-11 09:33 677次阅读

    SystemVerilog的Packed Union

    packed union相比unpacked union最大的一个区别就是,在packed union,所有成员的大小必须相同,这就保证了不管un
    的头像 发表于 11-12 09:05 1123次阅读

    SystemVerilog的Shallow Copy

    SystemVerilog的句柄赋值和对象复制的概念是有区别的。
    的头像 发表于 11-21 10:32 903次阅读

    SystemVerilog的Semaphores

    SystemVerilogSemaphore(旗语)是一个多个进程之间同步的机制之一,这里需要同步的原因是这多个进程共享某些资源。
    的头像 发表于 12-12 09:50 3363次阅读

    Systemverilog的Driving Strength讲解

    systemverilog,net用于对电路连线进行建模,driving strength(驱动强度)可以让net变量值的建模更加精确。
    的头像 发表于 06-14 15:50 1563次阅读
    <b class='flag-5'>Systemverilog</b><b class='flag-5'>中</b>的Driving Strength讲解

    unionunion all有什么区别

    UnionUnion All是SQL的两个关键字,它们用于将两个或多个SELECT语句的结果集合并在一起。这两个关键字虽然有相似的功能,但在实际使用中有一些重要的区别。下面将详细介绍Uni
    的头像 发表于 12-06 10:22 1110次阅读