NEXT

Sequentielle Anweisungen – NEXT

PACKAGE pack IS
TYPE integer_vector IS ARRAY (integer RANGE <>) OF integer;
END pack;

---------------------------

USE work.pack.all;
ENTITY anything IS
PORT (a, b : IN integer_vector (1 to 10);
result : OUT integer);
END anything;

---------------------------

ARCHITECTURE behavioral OF anything IS
BEGIN
PROCESS (a,b)
VARIABLE c, d : integer := 0;
BEGIN
first_dim_loop : FOR k IN a'RANGE LOOP
NEXT WHEN (a(k) = 0) OR (b(k) = 0);

d := a(k) * k**2;
c := c + d * b(k);
END LOOP ;

result <= c;

END PROCESS ;
END behavioral ;
Mit diesem VHDL-Modell wird eine Vektoroperation auf zwei Integervektoren durchgeführt. Die umfangreichen arithmetischen Gleichungen können entfallen, sobald einer der Vektorelemente 0 ist. Deshalb wird durch eine NEXT-Anweisung sofort zum nächsten Vektorelement gesprungen, wenn ein Null-Element entdeckt wird.

Auch bei der NEXT-Anweisungen ist wie bei EXIT die Angabe des LOOP-labels und einer Bedingung (wie im Beispiel geschehen) möglich.