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 dans Verilog. Chaque conception est construite à partir de modules qui se connectent entre eux pour former des systèmes plus vastes.
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 avec des broches et 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 (instructions assign, blocs always, etc.)
endmoduleParties d'un module
| Partie | Objectif |
|---|---|
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 du port |
| 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 :
- Est nommé
and_gate - Possède deux entrées (
a,b) - Possède 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 nom du module doit décrire sa fonction
- Les ports sont listés entre parenthèses après le nom
- Les entrées sont toujours
input(ne peuvent pas être écrites à l'intérieur) - Les sorties 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 du module
my_and - Ajoutez
inputpourx - Ajoutez
inputpoury - Ajoutez
outputpourz - Ajoutez la logique interne en utilisant
assign
Aide-mémoire
Un module est le bloc de construction de base en Verilog — un composant matériel avec des entrées, des sorties et une logique interne.
module module_name (
input a,
input b,
output c
);
// Logique interne
assign c = a & b;
endmodulemodule/endmodule— début et fin de la définitioninput— signal entrant (lecture seule à l'intérieur du module)output— signal sortant (peut êtreregouwire)assign— définit la logique combinatoire
Essayez vous-même
module ______ ( // Ajouter le nom du module
______ x, // Ajouter l'entrée
______ y, // Ajouter l'entrée
______ z // Ajouter la sortie
);
// Ajouter l'instruction d'assignation 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