1.upacked结构体,结构体每个成员变量,都是单独存放的。结构体不能整体赋值,但是可以整体复制给另一个同类型结构体。
typedef struct
{
logic [15:0] addr;
logic [31:16] data1;
}
2.pakced结构体
typedef struct packed
{
logic [15:0] addr;
logic [31:16] data1;
}
结构体可以作为端口信号定义。压缩结构体以向量形式将结构体的所有成员存储为连续位,存取顺序如下。压缩结构的成员变量不可以是实数或短实数变量、非压缩结构体、非压缩联合体体或非压缩的数组。
addr | data1 |
[31:16] | [15:0] |
3.设置默认值
`{default:0/1}
例子(注意压缩结构体可以整体赋值15行,但是非压缩结构体不可以):
结果: