具有默认初始值的struct类型localparam是否仍需初始化器?
问题解答
在SystemVerilog中,当你定义了带有默认初始值的结构体类型后,声明该类型的localparam时不需要额外指定初始化器。
针对你给出的示例代码:
typedef struct { int a = 1; } my_struct; localparam my_struct m;
这段代码是合法的,localparam m会自动继承结构体类型定义中成员a的默认值1,最终m.a的值就是1。
如果需要修改默认值,才需要显式添加初始化器,比如:
localparam my_struct m = '{a: 3};
此时m.a的值会被覆盖为3。
内容的提问来源于stack exchange,提问作者nachum
相关产品推荐
相关产品推荐

