Structure d'un module
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 30 sur 90.
Un module est le bloc de construction de base en Verilog. Chaque conception est construite à partir de modules qui se connectent entre eux pour former des systèmes plus grands.
Un module est un composant matériel avec :
- Un nom
- Des entrées (signaux entrants)
- Des sorties (signaux sortants)
- Une logique interne (ce que fait le module)
Pensez à un module comme à une puce dotée de broches et d'un circuit interne.
Structure de base d'un module
Chaque module suit cette structure :
module module_name (
input signals,
output signals
);
// Déclarations internes (wires, regs, etc.)
// Logique (assign statements, always blocks, etc.)
endmoduleComposants d'un module
| Composant | Rôle |
|---|---|
Mot-clé module | Démarre la définition du module |
module_name | Nom du module |
( ) | Liste des ports d'entrée et de sortie |
input / output | Déclare la direction des ports |
| Corps du module | Logique interne et connexions |
endmodule | Termine la définition du module |
Exemple de module simple
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleCe module :
- S'appelle
and_gate - A deux entrées (
a,b) - A une sortie (
c) - Contient une instruction
assigndéfinissant la logique
Règles pour la structure des modules
- Un module par fichier est une pratique courante
- Le `module_name` doit décrire sa fonction
- Les ports sont énumérés entre parenthèses après le nom
- Les entrées (Inputs) sont toujours
input(ne peuvent pas être écrites à l'intérieur) - Les sorties (Outputs) sont
output(peuvent êtreregouwire) <strong>endmodule</strong>doit fermer le module
Défi
Remplissez les parties manquantes pour compléter ce module.
Ce qu'il faut faire :
- Ajoutez le nom de module
my_and - Ajoutez
inputpourx - Ajoutez
inputpoury - Ajoutez
outputpourz - Ajoutez la logique interne en utilisant
assign
Essayez vous-même
module ______ ( // Ajouter le nom du module
input x, // Ajouter l'entrée
input y, // Ajouter l'entrée
output z // Ajouter la sortie
);
// Ajouter l'instruction assign ici (z = x & y)
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