Assertions immédiates et concurrentes essentielles
Automatiser des contrôles locaux et synchrones, détecter X/Z et désactiver proprement un contrôle pendant le reset.
Une assertion pour une règle précise
Une assertion automatise un contrôle et exécute une action si celui-ci échoue. Elle complète le scoreboard : l'assertion convient aux invariants locaux et aux règles de signal, tandis que le scoreboard compare des transactions complètes.
Assertion immédiate : contrôler au point d'exécution
Une assertion immédiate est évaluée lorsque le processus atteint sa ligne. Elle convient dans une tâche, une fonction ou un bloc procédural :
checks++;
check_result: assert (actual === expected) else begin
errors++;
$error("actual=%h expected=%h time=%0t",
actual, expected, $time);
endLe label check_result permet de retrouver rapidement l'origine d'un échec. L'action else choisit la politique : $warning pour une anomalie tolérée, pour poursuivre la collecte ou si continuer n'a plus de sens.