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行,但是非压缩结构体不可以):

结果:
本文介绍了Verilog HDL中的upacked和packed结构体,对比了它们的存储方式,强调了压缩结构体的连续位存储优势,以及在整体赋值和默认值设置上的区别。实例演示了如何在设计中使用这些特性来优化内存占用和性能。
2430

被折叠的 条评论
为什么被折叠?



