我正在寻找一种优雅的方法来映射数组中的条目,而不是创建新数组的 for 循环。例如
class A;
int int_member;
endclass
A class_container[$];
int int_members_only[$];
initial begin
// Assume class_container is populated
// 'map' is not an available function
int_members_only= class_container.map(x) with (x.int_member);
// Yes, you can do this but I want to know if there's another way
foreach (class_container[i_class]) begin
int_members_only.push_back(class_container[i_class].int_member);
end
end
SystemVerilog 中没有任何东西可以进行这种映射。与您的示例最接近的功能是流操作符。 (11.4.14 流运算符(打包/解包)),但这仅在类中只有一个成员时才有效。我认为这不是您需要的一般情况。
选择 1800-2023 SV LRM 他们引入了名为map()的方法。