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



在多维数组的低维中循环的标准方式是什么?固定较高的尺寸。

在以下示例中:

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

我看到警告:

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

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

您可以这样做:

$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

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

警告是让您知道您正在编写的代码可能与其他模拟器不兼容。我知道,有一段时间,另一个模拟器接受了foreach (array[i][j]),其中i以前没有被定义为与foreach(array[i,j])意思相同,而且语法与您尝试做的不兼容。

正确的语法是foreach (my_req[,j])

相关内容

  • 没有找到相关文章

最新更新