SystemVerilog中的struct

描述

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;

 

 审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分