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;

 
Anterior
Volver a inicio curso
Volver a inicio capítulo
Siguiente


WcN - Joan Oliver. Diseño de circuitos digitales con VHDL: Síntesis secuencial