System Verilog 系列学习(3)----数组、结构体和联合体

Verilog中没有结构体,用户常常以相同的字符开始或结尾来命名信号名,以此表示一组相关的信号。system verilog中增加了类似C语言中的结构体类型,可以方便的表示一组相关的信号。结构体表示如下:

struct {
    int          a,b;       //32bit variables
    opcode_t     opcode;    //user-defined type
    logic[23:0]  address;   //24-bit variable
    bit          error;     //1-bit 2-state var
} Instruction_Word;

结构体中的成员变量可以是任意variable类型,但不可以是net型。结构体成员变量的引用和C语言类似:

<structure_name>.<variable_name>

例如:

Instruction_Word.address = 32'hF000001E;

结构体也可以是自定义类型,如:

typedef struct {     //structure definition
    logic  [31:0]  a,b;       
    logic  [7:0]   opcode;    
    logic  [23:0]  address;   
} Instruction_Word_t;

Instruction_Word_t  IW;  //structure allocation

初始化结构体:在声明的同时初始化,格式为:‘{…}(注意与verilog拼接符{…}区分),数据类型必须完全匹配,如:

Instruction_Word_t  IW = '{100,3,8'hFF,0};

如果不按照原有顺序赋值,则必须指明,如:

  IW = '{address:0,opcode:8'hFF,a:100,b:3};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值