Votre premier module
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 3 sur 90.
Un module est l’élément de base dans Verilog. Chaque élément de code Verilog se trouve à l’intérieur d’un module.
Imagine un module comme un composant avec :
- Entrées (signaux entrants)
- Sorties (signaux sortants)
- Comportement (ce qu’il fait)
Syntaxe de module
module module_name ( inputs, outputs );
// Tout ce qui se trouve à l'intérieur
endmoduleChaque module commence par module et se termine par endmodule.
Entrées et sorties
module and_gate(
input a, // a entre DANS le module
input b, // b entre DANS le module
output c // c sort HORS du module
);
// Le comportement va ici
endmodule- input = le signal entre dans le module
- output = le signal sort du module
Ajout d’un comportement
Nous faisons maintenant en sorte que le module fasse quelque chose :
module and_gate(
input a,
input b,
output c
);
assign c = a & b; // c vaut 1 seulement lorsque a ET b valent 1
endmoduleassignconnecte continuellement le côté droit au côté gauche&signifie AND en Verilog
Défi
Dans ce défi, vous devez créer un module simple qui effectue l’opération OR.
À faire :
- Le module doit être nommé
or_gate - Il doit avoir une entrée appelée
x - Il doit avoir une entrée appelée
y - Il doit avoir une sortie appelée
z - À l’intérieur du module, utilisez
assignpour rendrezégal àx OR y
L’en-tête du module et ses trois ports se trouvent déjà dans l’éditeur. La ligne que vous devez ajouter est l’instruction assign à l’intérieur du module.
Remarque : en Verilog, OR s’écrit avec le symbole barre verticale |. Elle produit 1 (vrai) si au moins une des entrées vaut 1 (vrai).
Essayez vous-même
// L'en-tête du module et ses ports sont déjà écrits pour vous
module or_gate(
input x,
input y,
output z
);
// À votre tour : utilisez assign pour définir z à x OR y
// En Verilog, OR s'écrit |
endmodule
Cette 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 conception4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloOpérateurs de comparaisonRécapitulatif - Mathématiques simplesOpérateurs bit à bit7Affectations et portes
Affectation continueAffectation avec opérateursPrimitives de portes intégréesPortes AND, OR et NOTPortes XOR et XNORRécapitulatif - Circuit de portes logiques10Prise de décision
Instruction IfIf - ElseRécapitulatif - Comparateur simpleInstruction CaseCasex et CasezRécapitulatif - Conception d'une 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 RepeatBoucle ForeverInstruction DisableRécapitulatif - Modèles de boucles3Système de numération
Représentation binaireNombres dimensionnésNombres non dimensionnésNombres négatifsValeurs spéciales X et ZRécapitulatif - Formats des nombres6Modules
Structure d’un modulePorts d’entrée et de sortiePorts InoutInstantiation d’un moduleAssociation des ports par nomAssociation des ports par ordreRécapitulatif - Construire un module9Blocs procéduraux
Bloc alwaysBloc initialListe de sensibilitéAffectation bloquanteAffectation non bloquanteRécapitulatif - always vs initial12Projet de multiplexeur
Conception d’un multiplexeur 2 vers 1Conception d’un multiplexeur 4 vers 115Contrôleur de feux de circulation
Définition des étatsLogique de la machine à étatsEntraînez-vous par vous-même : Compilateur Verilog en ligne