Qu'est-ce que SystemVerilog ?
Langage qui étend Verilog. Il offre des fonctions de conception comme le type logic, always_ff et always_comb, et des fonctions de vérification comme les classes, la randomisation sous contraintes et les assertions.
Nom japonais: SystemVerilog
« SystemVerilog » apparaît dans 10 questions d'entraînement réparties sur 2 thèmes, dont HDL et vérification, Flot de conception de circuits intégrés et EDA.
Domaine: HDL et vérification
Ce que SystemVerilog apporte à la conception
SystemVerilog, normalisé sous la référence IEEE 1800, est un sur-ensemble de Verilog qui ajoute des fonctionnalités aussi bien pour décrire le matériel que pour le vérifier. Côté conception, le type logic remplace la séparation déroutante entre wire et reg de Verilog pour les signaux à pilote unique ; always_ff, always_comb et always_latch expriment le matériel voulu ; et les enums, structs, packages et interfaces rendent le RTL plus lisible et moins sujet aux erreurs. En Verilog, reg signifie simplement un signal affecté dans un bloc always, pas nécessairement une bascule. Les signaux à pilotes multiples, comme les bus trois états, utilisent toujours wire, et logic est un type à quatre états qui peut contenir X et Z.
Code synthétisable et code réservé aux bancs de test
Seule une partie de SystemVerilog décrit du matériel. Le sous-ensemble synthétisable, qui comprend logic, always_ff, always_comb, les enums, structs, packages et interfaces, est accepté par les outils de synthèse et devient des portes. Les classes, la randomisation, la couverture et la plupart des types de données dynamiques n'existent qu'en simulation, où ils décrivent l'environnement autour de la conception. Les assertions peuvent être rattachées au RTL et utilisées en simulation, en vérification formelle et parfois en émulation, mais elles ne sont pas transformées en logique fonctionnelle. VHDL reste le principal langage alternatif, notamment dans certaines équipes FPGA et aérospatiales.
Questions fréquentes
Quelle est la différence entre Verilog et SystemVerilog ?
SystemVerilog est un sur-ensemble de Verilog qui ajoute des constructions de conception plus sûres comme logic, always_ff et always_comb, ainsi que des fonctions de vérification comme les classes, les stimuli aléatoires sous contraintes, la couverture fonctionnelle et les assertions. Le code Verilog existant est en général du SystemVerilog valide.
SystemVerilog est-il synthétisable ?
Son sous-ensemble de conception l'est, notamment logic, always_ff, always_comb, les structs, les enums et les interfaces. Les constructions de vérification comme les classes, la randomisation et les covergroups sont réservées à la simulation.
Faut-il utiliser logic à la place de wire et reg ?
Pour les signaux à pilote unique, logic fonctionne qu'il soit piloté par une instruction assign ou par un bloc always ; il remplace donc les deux dans la plupart du code. Utilisez wire pour les nets à pilotes multiples, comme les bus trois états.