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

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

3天内不再提示

SystemVerilog中的struct

芯片验证工程师 来源:芯片验证工程师 作者:芯片验证工程师 2022-11-07 10:18 次阅读

SystemVerilog“struct”表示相同或不同数据类型的集合。


struct可以作为一个整体使用,也可以单独通过名称引用组成这个struct的元素。由于这些元素的数据类型可能不相同,所以不能够使用数组。

如果需要在多个module或者类中使用相同的struct,则应该将struct定义(`typedef)放到SystemVerilog package中,然后将其导入到每个module或者class。

默认情况下,struct都是unpacked的,我们也可以显式地加上关键字。下面是一个简单的示例,展示了array和struct的区别。

// Normal arrays -> a collection of variables of same data type
 int array [10]; // all elements are of type ‘int’
 bit [7:0] mem [256]; // all elements are of type ‘bit’
 
 // Structures -> a collection of variables of same or different data types
 struct
 { 
 byte val1;
 int val2;
 string val3; } DataValue;

当然,我们也可以定义一个数组,其中数组中的每一个数据项都是一个struct.

 DataValue v1[20]; //array of structures
 
 struct
 { 
 byte val1;
 int val2[10]; //array within a structure
 string val3; } DataValue;

审核编辑:汤梓红

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

    关注

    28

    文章

    1343

    浏览量

    109985
  • System
    +关注

    关注

    0

    文章

    165

    浏览量

    36885
  • Struct
    +关注

    关注

    0

    文章

    31

    浏览量

    10857

原文标题:SystemVerilog中的struct

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

收藏 人收藏

    评论

    相关推荐

    SystemVerilog的Virtual Methods

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

    SystemVerilog的“const”类属性

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

    SystemVerilog的联合(union)介绍

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

    SystemVerilog的断言手册

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

    typedef struct的用法

    typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node{ }这样来定义结构体的话。在定义 node 的结构体变量时,需要这样写:struct node n;
    发表于 11-09 17:20 3354次阅读

    SystemVerilog$cast的应用

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

    SystemVerilog的操作方法

    SystemVerilog提供了几个内置方法来支持数组搜索、排序等功能。
    的头像 发表于 10-31 10:10 2688次阅读

    SystemVerilog可以嵌套的数据结构

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

    Systemverilog的union

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

    SystemVerilog的Shallow Copy

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

    SystemVerilog的Semaphores

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

    C++struct和class的区别?

    C++struct和class的区别是什么?C++struct和class的最大区别在于:         struct的成员默认是公有
    的头像 发表于 03-10 17:41 742次阅读

    带你了解SystemVerilog的关联数组

    SystemVerilog,我们知道可以使用动态数组实现数组元素个数的动态分配,即随用随分
    的头像 发表于 06-09 09:46 7294次阅读
    带你了解<b class='flag-5'>SystemVerilog</b><b class='flag-5'>中</b>的关联数组

    Systemverilog的Driving Strength讲解

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

    typedef struct和直接struct的区别

    在C语言中, typedef 和 struct 是两种不同的关键字,它们在定义和使用上有着明显的区别。 typedef struct 和直接 struct 在 C 语言中用于定义结构体类型,但它们在
    的头像 发表于 08-20 10:58 2474次阅读