Niveaux d'abstraction de conception
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 3 sur 90.
En conception numérique, nous pouvons décrire le même circuit à différents niveaux de détail. Verilog est un langage qui peut décrire des circuits à n'importe lequel de ces niveaux d'abstraction. C'est ce qui le rend puissant !
Voici les niveaux :
Niveau 1 : Comportemental
Ce niveau décrit ce que fait le circuit, et non comment il le fait. Il se concentre sur la fonction ou le comportement, comme « compter » ou « additionner deux nombres ».
Les détails internes de la manière dont le comptage ou l'ajout se produit ne sont pas affichés. Ce niveau est le plus proche de la pensée humaine et est plus facile à écrire.
Niveau 2 : RTL
Ce niveau montre comment les données circulent entre les registres et quelles opérations sont effectuées sur ces données. Vous pouvez voir le chemin des données : les données passent d'un registre à un additionneur, puis reviennent au registre.
C'est le niveau auquel la plupart des concepteurs numériques travaillent, car il offre un bon équilibre entre la facilité de compréhension et un niveau de détail suffisant pour concevoir du matériel.
Niveau 3 : Niveau porte
Ce niveau décrit le circuit en utilisant des portes logiques de base telles que AND, OR et XOR. Chaque connexion est explicitement représentée.
Ce niveau est très détaillé et difficile à écrire à la main. Il est généralement généré par des outils à partir de descriptions de plus haut niveau, et non écrit manuellement.
Pourquoi c'est important
- **Haut niveau** = Plus facile à écrire, moins de contrôle
- **Bas niveau** = Plus difficile à écrire, plus de contrôle
- **RTL** est le juste milieu pour la plupart des travaux de conception
Défi
Ce qu'il faut faire :
- Exécutez ce code et voyez comment la même opération est décrite à trois niveaux différents :
Aide-mémoire
Verilog peut décrire des circuits à différents niveaux d'abstraction :
- Comportemental (Behavioral) – Décrit ce que fait le circuit (ex: « additionner deux nombres »). Le plus facile à écrire, le moins de contrôle.
- RTL (Register Transfer Level) – Décrit comment les données circulent entre les registres et quelles opérations se produisent. Le niveau standard pour la plupart des travaux de conception numérique.
- Niveau porte (Gate Level) – Décrit le circuit en utilisant des portes logiques explicites (AND, OR, XOR). Le plus détaillé, le plus difficile à écrire ; généralement généré par des outils.
Compromis : Niveau plus élevé = plus facile à écrire, moins de contrôle. Niveau plus bas = plus difficile à écrire, plus de contrôle. Le RTL est le juste milieu.
Essayez vous-même
module abstraction_demo;
initial begin
$display("=== Design Abstraction Levels ===");
$display("");
$display("Level 1 (Behavioral):");
$display(" 'Add a and b' - no details how");
$display("");
$display("Level 2 (RTL):");
$display(" 'On clock edge, result <= a + b' - shows data flow");
$display("");
$display("Level 3 (Gate Level):");
$display(" 'XOR gates for sum, AND gates for carry' - actual gates");
$display("");
$finish;
end
endmoduleCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
1Introduction
Qu'est-ce que VerilogHardware vs SoftwareNiveaux d'abstraction de conceptionVotre premier moduleCommentaires4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloOpérateurs de comparaisonRécapitulatif - Mathématiques simplesOpérateurs bit à bit7Assignation et portes logiques
Assignation continueAssignation avec opérateursPrimitives de portes intégréesPortes AND OR NOTPortes XOR XNORRécapitulatif - Circuit à portes logiques10Prise de décision
Instruction IfIf - ElseRécapitulatif - Comparateur simpleInstruction CaseCasex et CasezRécapitulatif - Conception d'ALU2Types de données
Type WireType RegEntiers et RéelsVecteursTableauxParamètresRécapitulatif - Déclarer des signaux5Opérateurs - Partie 2
Opérateurs logiquesOpérateurs de réductionOpérateurs de décalageOpérateur de concaténationOpérateur conditionnelRécapitulatif - Défi sur les opérateurs11Boucles
Boucle ForBoucle WhileBoucle RépéterBoucle InfinieInstruction DisableRécapitulatif - Modèles de boucles3Système de numération
Représentation binaireNombres avec tailleNombres sans tailleNombres négatifsValeurs spéciales X et ZRécapitulatif - Formats de nombres6Modules
Structure d'un modulePorts d'entrée et de sortiePorts InoutInstanciation de moduleMappage de ports par nomMappage de ports par ordreRécapitulatif - Créer un module9Blocs procéduraux
Bloc AlwaysBloc InitialListe de sensibilitéAffectation bloquanteAffectation non bloquanteRécapitulatif - Always vs Initial12Projet Multiplexeur
Conception d'un Mux 2 vers 1Conception d'un Mux 4 vers 115Contrôleur de feux de circulation
Définition des étatsLogique de la machine à états