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

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

3天内不再提示

SystemVerilog中的Packed Union

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

packed union相比unpacked union最大的一个区别就是,在packed union中,所有成员的大小必须相同,这就保证了不管union中存储了哪一个成员,最终这个union的大小是一样的。也正是加了这个限制,所以packed union是可综合的。

类似于packed struct,我们可以对这个union整体进行算法、切分等运算。

typedef union packed {
int a;
bit [31:0] c;
} data;

上面的union声明加入了packed关键字。因为两个成员的大小相同:“int”是32位,“bit [31:0] c”是32位。所以声明为unpacked union是没问题的。

typedef union packed {
 logic [9:0] data;
 struct packed {
 bit p1;
 bit [2:0] p2;
 bit [1:0] p3;
 bit p4;
 bit [2:0] p5;
 } p_modes;
 } myUnion
 myUnion Union1;

在上面的union中有2个成员,分别都是10比特大小 “struct” “p_modes” 和“data” ,在物理内存中分配如下:

f010f73a-61db-11ed-8abf-dac502259ad0.png

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

    关注

    28

    文章

    1326

    浏览量

    109302
  • System
    +关注

    关注

    0

    文章

    161

    浏览量

    36572
  • union
    +关注

    关注

    0

    文章

    10

    浏览量

    4193

原文标题:SystemVerilog中的Packed Union

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

收藏 人收藏

    评论

    相关推荐

    SystemVerilog 中各种不同的联合解析

    联合分两种类型:打包 (packed) 和解包 (unpacked)。在上述示例中,我们指定的是打包联合。
    的头像 发表于 11-19 15:16 1843次阅读
    <b class='flag-5'>SystemVerilog</b> 中各种不同的联合解析

    SystemVerilog中的联合(union)介绍

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

    [启芯公开课] SystemVerilog for Verification

    学快速发展,这些趋势你了解吗?SystemVerilog + VM是目前的主流,在未来也将被大量采用,这些语言和方法学,你熟练掌握了吗?对SoC芯片设计验证感兴趣的朋友,可以关注启芯工作室推出的SoC芯片
    发表于 06-10 09:25

    systemverilog学习教程

    systemverilog的一些基本语法以及和verilog语言之间的区别。
    发表于 04-01 14:24

    请问UNIONUNION ALL的区别是什么?

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

    使用SystemVerilog来简化FPGA接口的连接方式

    FPGA接口的连接方式。    也许很多FPGA工程师对SystemVerilog并不是很了解,因为以前的FPGA开发工具是不支持SystemVerilog的,导致大家都是用VHDL或者Verilog来
    发表于 01-08 17:23

    SystemVerilog有哪些标准?

    SystemVerilog有哪些标准?
    发表于 06-21 08:09

    SpinalHDLBundle与普通数据类型之间的连接赋值转换

    SpinalHDLBundle与SystemVerilogpacked struct很像,在某些场景下,与普通数据类型之间的连接赋值可以通过asBits,assignFromBi
    发表于 10-18 14:22

    SystemVerilog Assertion Handbo

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    发表于 07-22 14:08 188次下载

    SystemVerilog的断言手册

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    发表于 07-22 14:12 20次下载

    unpacked数组和packed数组的主要区别

    unpacked数组和packed数组的主要区别是unpacked数组在物理存储时不能保证连续,而packed数组则能保证在物理上连续存储。
    的头像 发表于 10-18 09:13 1876次阅读

    SystemVerilog中的Packed Structure

    一个packed structure有很多的bits组成,这些bit在物理上连续存储。packed structure只允许包含packed数据类型。
    的头像 发表于 11-07 10:17 1653次阅读

    Systemverilog中的union

    SystemVerilog union允许单个存储空间以不同的数据类型存在,所以union虽然看起来和struct一样包含了很多个成员,实际上物理上共享相同的存储区域。
    的头像 发表于 11-09 09:41 602次阅读

    SystemVerilog中的tagged Unions是什么

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

    unionunion all有什么区别

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