SystemVerilog
L'extension qui a fait de Verilog à la fois un langage de conception et un langage de vérification. En pratique, deux langages différents qui partagent une extension de fichier.
Le versant conception est modeste mais précieux : types plus stricts, structures compactées (packed) et énumérations, et blocs comme always_ff et always_comb où l'on déclare son intention, de sorte que l'outil peut protester quand le code ne la respecte pas. Les interfaces permettent de regrouper des signaux apparentés au lieu de les énumérer dans l'en-tête de chaque module. Le versant vérification est nettement plus vaste et orienté objet — classes, héritage, génération de stimuli aléatoires sous contraintes, mesure de couverture fonctionnelle et assertions à base de propriétés — et c'est sur lui que repose tout UVM. La scission est si marquée que concepteurs et ingénieurs de vérification travaillent en pratique dans des sous-ensembles distincts et peinent souvent à lire le code des autres.