SystemVerilog foreach语法,用于循环遍历多维数组的较低维度

Vic*_*sky 4 arrays foreach system-verilog multidimensional-array

循环遍历多维数组的较低维度的标准方法是什么?随着更高的维度固定.

在以下示例中:

  automatic int i = 2;
  foreach (my_req[i][j]) begin // <-- WARNING
    $display("i:%0d,j:%0d", i, j);
  end
Run Code Online (Sandbox Code Playgroud)

我看到了警告:

** Warning: testbench.sv(16): (vlog-LRM-2897) Using non-standard foreach loop variable list syntax.
Run Code Online (Sandbox Code Playgroud)

EDA Playground上的完整代码示例:http://www.edaplayground.com/x/nh

Tud*_*imi 7

你可以这样做:

$display("Loop through i=2");
begin
  automatic int i = 2;
  foreach (my_req[,j]) begin // notice the "," before j
    $display("i:%0d,j:%0d", i, j);
  end
end
Run Code Online (Sandbox Code Playgroud)

EDA Playground上的工作代码:http://www.edaplayground.com/x/2Qn