System verilog SystemVerilog中结构的切片数组
假设有一个结构声明为:System verilog SystemVerilog中结构的切片数组,system-verilog,System Verilog,假设有一个结构声明为: typedef logic [7:0] Data; typedef struct packed { logic valid; Data data; } MyStruct; MyStruct foo [8]; 结构的数组声明为: typedef logic [7:0] Data; typedef struct packed { logic valid; Data data; } MyStruct; MyStruct foo [8];
typedef logic [7:0] Data;
typedef struct packed {
logic valid;
Data data;
} MyStruct;
MyStruct foo [8];
结构的数组声明为:
typedef logic [7:0] Data;
typedef struct packed {
logic valid;
Data data;
} MyStruct;
MyStruct foo [8];
除了使用for循环之外,还有其他方法可以从所有数组元素中提取字段并形成自己的数组/位向量吗
换句话说,我希望这样做,不幸的是,这似乎不是有效的SV语法
assign all_valid = & foo[7:0].valid;
在SystemVerilog中不能像这样分割数组,但由于您正在尝试进行缩减,因此可以使用一种数组操作方法:
assign all_valid = foo.and() with (item.valid);
参见1800-2012 LRM中的第7.12.3节阵列缩减方法。谢谢。那太好了!可惜Quartus不支持这一点。