Niveaux d’abstraction de conception
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 5 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 : Behavioral
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 vers le haut » ou « additionner deux nombres ».
Les détails internes de la manière dont le comptage ou l’addition s’effectue ne sont pas affichés. Ce niveau est le plus proche de la pensée humaine et est plus facile à écrire.
Level 2: RTL
Ce niveau montre comment data se déplace entre les registres et quelles opérations sont effectuées sur ces données. Vous pouvez voir le chemin des données : data va d’un registre vers un additionneur, puis revient au registre.
C’est le niveau auquel travaillent la plupart des concepteurs numériques, car il offre un bon équilibre entre compréhensibilité et niveau de détail suffisant pour créer du matériel.
Niveau 3 : niveau des portes
Ce niveau décrit le circuit à l’aide de portes logiques de base comme 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 niveau supérieur, et non écrit manuellement.
Pourquoi c’est important
- **Niveau supérieur** = Plus facile à écrire, moins de contrôle
- **Niveau inférieur** = Plus difficile à écrire, plus de contrôle
- **RTL** est le juste milieu pour la plupart des travaux de conception
Défi
Que faire :
- Exécutez ce code et observez comment la même opération est décrite à trois niveaux différents :
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 VerilogMatériel vs logicielVotre premier moduleCommentairesNiveaux d’abstraction de conception4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicEntraînez-vous par vous-même : Compilateur Verilog en ligne