Instrucciones assert y report
Son instrucciones utilizadas para depurar/comprobar el funcionamiento de un modelo
Informan en función de si una condición NO es falsa, permitiendo suspender (si es necesario) la simulación en curso
Formato de la instrucción
Assert expresionBooleana
[report expresionReport]
[severity expresionSeverity];donde
expresionBooleana es la comparación que debe cumplirse
expresionReport es la notificación que se envía desde el simulador
expresionSeverity es del tipo severity_level y viene definido como
type severity_level is (note, warning, error, failure);
Note -> Informa con mensajes informativos
Warning -> Proporciona avisos sobre situaciones no usuales
Error -> Indica que se ha producido un error que requiere de alguna acción
Failure -> Implica inconsistencias que no deben ocurrir
Comentarios
Assert implica a una condición que en situación normal debe cumplirse. Cuando salta un aviso o error es debido a que la condición no se ha cumplido
Como se observa, existen 4 posibles notificiones, que van desde informar sobre un hecho o acción a terminar el proceso por haberse producido un error
En ausencia de mensaje se informa de Assert violation
Se asume Error cuando no se especifica el nivel de severidad. Para cada simulador puede especificarse el nivel de severidad con que se interrumpe la simulación
Ejemplo:
assert longitud /= 0
report "longitud nula!"
severity warning;