在多维数组的低维中循环的标准方式是什么?固定较高的尺寸。
在以下示例中:
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])