SENTENCIA IF sentencia_if::= [etiqueta:] if condicion(boolean) then {sentencias_secuenciales} {elsif condicion then {sentencias_secuenciales}} [else {sentencias_secuenciales}] end if [etiqueta];
SENTENCIA IF
El orden en el que se sitúan las ‘condiciones’ dentro del ifelsif es importante, pues si hay dos ciertas, se ejecutará únicamente la primera.
SENTENCIA CASE sentencia_case::= [etiqueta:] case expresion is when valor=>{sentencias_secuenciales} {...} end case [etiqueta]; valor ::=(expresion_simple|rango_discreto|others){|...}
•Los valores de elección no pueden solapar sus rangos . •Los valores de elección deben cubrir todos los valores posibles de ‘expresion’
SENTENCIA CASE
SENTENCIA CASE
SENTENCIA CASE
BUCLES sentencia_loop::= [etiqueta:] [while condicion|for id in rango_discreto] loop {sentencias_secuenciales} end loop [etiqueta];
BUCLES
BUCLES
BUCLES
BUCLES La sentencia next se utiliza en un bucle para detener una ejecución y pasar a la siguiente iteración: sentencia_next::= [etiqueta:]next [etiqueta_loop][when condicion];
BUCLES La sentencia exit se utiliza para salir de un bucle de forma incondicional. sentencia_exit::= [etiqueta:]exit [etiqueta_loop][when condicion];
•Una sentencia null no efectúa ninguna acción. •En algunas ocasiones la sintaxis del lenguaje exige la poner una sentencia
Sentencia ASSERT •Proporciona mensajes si no se cumple una condición en tiempo de ejecución. •Se utiliza en la depuración de modelos. •Puede llegar a detener la ejecución de una simulación sentecia_assert::= [etiqueta:] assert condicion [report expresion] [severity expresion]; type severity_level is (note,warning,error,failure);
Asignación secuencial de señales declaracion_señal::= signal identificador{,...}:subtipo[tipo_señal][:=expresion ]; tipo_señal::= register|bus asignacion_señal ::= [label]identificador