Altifigence Academy

35 / 37 · Concept

Compilation, lint et synthèse : portée des diagnostics

Fixez sources, top et langage et distinguez syntaxe, largeurs, verrous et fonction.

Définir la demande faite à l'outil

Un résultat dépend des sources, top, paramètres, langage et version. Compilez DUT et dépendances, avec banc comme top distinct. Ne synthétisez pas le générateur d'horloge du banc et ne confondez pas module non instancié et module testé. Les exemples utilisent un sous-ensemble synthétisable pratique; simulateur et moteur produit peuvent prendre en charge des parties différentes. .sv n'active pas magiquement toutes les fonctionnalités.

Compilation et simulation ont des portées différentes

La compilation peut refuser syntaxe, module manquant et référence invalide, sans prouver arithmétique ou priorité. La simulation compare les scénarios exécutés; PASS concerne ces comparaisons et cette source. Pour le banc:

text
iverilog -g2012 -s tb -o sim.vvp modulo_tick.sv tb.sv
vvp sim.vvp

Notez les deux statuts. Exécuter une ancienne sim.vvp après compilation échouée peut donner un PASS trompeur. Produisez un nouveau fichier par configuration et arrêtez si la compilation échoue.

Examiner les causes

DiagnosticQuestion
Module absentFichier et nom corrects?
TroncatureQuels bits, retenue ou signe sont perdus?
Verrou inféréQuel chemin combinatoire n'affecte pas?
Plusieurs pilotesQui possède la variable?
Signal inutiliséIntention ou connexion manquante?
Boucle combinatoireRetour à l'entrée sans registre?

Ne masquez pas tout pour nettoyer le journal. Corrigez ou documentez une exception limitée, intentionnelle et testée. Les catégories changent selon version. La référence officielle des avertissements Verilator explique WIDTH, LATCH. Si installé, une option supplémentaire:

text
verilator --lint-only --top-module periodic_accumulator modulo_tick.sv periodic_accumulator.sv

C'est une voie proposée, pas une preuve d'exécution. Distinguez commandes utilisées et suggérées.

La synthèse constitue une autre étape

Une vérification Yosys générique:

text
yosys -p 'read_verilog -sv modulo_tick.sv periodic_accumulator.sv; hierarchy -check -top periodic_accumulator; proc; opt; check -assert; stat'

Elle examine frontal et structure générique, pas ressources FPGA spécifiques, placement, routage, clôture du timing ou fabrication. L'adaptation technologique et les contraintes demandent d'autres travaux.

Exercice : isoler les variantes défectueuses

Créez trois copies jetables: nom de module enfant incorrect, somme de neuf bits dans huit, affectation combinatoire manquante. Observez les détections de chaque outil et les besoins de test fonctionnel. Une troncature peut être voulue, un verrou peut compiler: comparez aux exigences. Conservez un échec pertinent avec source restaurée. Un diagnostic inexpliqué reste ouvert.

Votre choix s’applique à ce navigateur. Modifiez-le à tout moment en bas de page.