Co to jest standard sposób zapętlenia dolnego wymiaru tablicy wielowymiarowej? Przy ustalonym wyższym wymiarze.
W poniższym przykładzie:
automatic int i = 2;
foreach (my_req[i][j]) begin // <-- WARNING
$display("i:%0d,j:%0d", i, j);
end
Widzę ostrzeżenie:
** Warning: testbench.sv(16): (vlog-LRM-2897) Using non-standard foreach loop variable list syntax.
Przykład pełnego kodu na placu zabaw EDA: http://www.edaplayground.com/x/nh
Odpowiedzi:
7 dla odpowiedzi № 1Możesz to zrobić:
$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
Kod roboczy na placu zabaw EDA: http://www.edaplayground.com/x/2Qn
4 dla odpowiedzi nr 2
Ostrzeżenie ma na celu poinformowanie cię, że kod, który piszesz, może nie być kompatybilny z innymi symulatorami. Wiem, że kiedyś zaakceptowano inny symulator foreach (array[i][j])
gdzie i
nie został wcześniej zdefiniowany jako oznaczający to samo, co foreach(array[i,j])
, a ta składnia nie byłaby zgodna z tym, co próbujesz zrobić.
Poprawna składnia jest foreach (my_req[,j])