A1: for i in vect'range loop
valor := valor and vect(i);
end loop;
Sentencia FOR LOOP (ejemplo)
Sentencias secuenciales
La sentencia While Loop contiene una secuencia de sentencias que se repetirán mientras la condición se mantenga verdadera.
Sintaxis:
[ etiqueta: ] while condition loop
sentencias_secuenciales
end loop [ etiqueta ];
A1: while i < 8 loop
valor := valor and vect(i);
i := i + 1;
end loop;
Ejemplo:
Sentencia WHILE LOOP
Sentencias secuenciales
La sentencia Next es utilizada para dar por completa la ejecución de una de las iteraciones de un loop, pasando a la siguiente.
Permite saltear parte de la iteración de un loop. Si la condición especificada después de la palabra when es verdadera o no existe condición alguna entonces la sentencia es ejecutada. Con esto se logra saltear todas las sentencias que se encuentran por debajo hasta el final del loop y pasar el control a la primera sentencia de la próxima iteración.
Sintaxis:
[ label: ] next [ loop_label ] [ when condition ];
Sentencia NEXT
Sentencias secuenciales
L1: loop
k:= 0;
L2: for CountValue in 1 to 8 loop
next when CountValue = N;
if A(k) = 'U' then
next L1;
end if;
k:= k + 1;
end loop L2;
end loop L1;
(Gp:) Salta a la próxima iteración del loop L2
(Gp:) Salta al inicio del loop L1
Sentencia NEXT (ejemplo)
Sentencias secuenciales
Sentencia secuencial que es usada para terminar la ejecución de una sentencia loop. Si existe una condición la sentencia exit será ejecutada cuando esta sea verdadera y el control pasará a la primera sentencia luego del final del loop.
Sintaxis:
[ label: ] exit [ loop_label ] [ when condition ];
Sentencia EXIT
Sentencias secuenciales
L1: loop
L2: for i in aux'range loop
if aux(i) = ‘0' then
exit L1;
end if;
exit when i = N;
end loop L2;
…
end loop L1;
(Gp:) Sale del loop L1
(Gp:) Sale del loop L2
Sentencia EXIT (ejemplo)
Sentencias secuenciales
La sentencia wait provoca la suspensión de un process o un procedimiento.
Sintaxis:
[ label : ] wait [ sensitivity_clause ] [ condition_clause ] [ timeout_clause ] ;
sensitivity_clause ::= on sensitivity_list
sensitivity_list ::= signal_name { , signal_name }
condition_clause ::= until condition
condition ::= boolean_expression
timeout_clause ::= for time_expression
Sentencia WAIT
Sentencias secuenciales
Página anterior | Volver al principio del trabajo | Página siguiente |