System verilog 动态数组中删除特定索引的方法
是否有其他方法可以从动态数组中删除特定的索引值 这是我的eg,用于删除数组a的索引2,并将其存储到数组b中System verilog 动态数组中删除特定索引的方法,system-verilog,System Verilog,是否有其他方法可以从动态数组中删除特定的索引值 这是我的eg,用于删除数组a的索引2,并将其存储到数组b中 module top; bit[3:0] a []; bit[3:0] b []; int k=0; initial begin a={5,6,7,8,9}; foreach (a[i]) $display ("a[%0d]:%d",i,a[i]); b = new [a.size-1]; foreach (a[i
module top;
bit[3:0] a [];
bit[3:0] b [];
int k=0;
initial
begin
a={5,6,7,8,9};
foreach (a[i])
$display ("a[%0d]:%d",i,a[i]);
b = new [a.size-1];
foreach (a[i]) begin
if (i == 2) begin
continue;
end
b[k++] = a[i];
end
foreach (b[i])
$display ("b[%0d]:%d",i,b[i]);
end
endmodule
输出:
a[0]: 5
a[1]: 6
a[2]: 7
a[3]: 8
a[4]: 9
b[0]: 5
b[1]: 6
b[2]: 8
b[3]: 9
不可以。动态阵列设计为作为一个整体进行分配。队列是您想要的,它们是专门为一次添加和删除一个元素而设计的
module top;
bit[3:0] a [];
bit[3:0] b [$];
initial
begin
a={5,6,7,8,9};
foreach (a[i])
$display ("a[%0d]:%d",i,a[i]);
b = a
b.delete(2);
foreach (b[i])
$display ("b[%0d]:%d",i,b[i]);
end
endmodule