Votre premier module
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 4 sur 90.
Un module est le bloc de construction de base en Verilog. Chaque morceau de code Verilog se trouve inside un module.
Pensez à un module comme à un composant avec :
- des Inputs (signaux entrants)
- des Outputs (signaux sortants)
- un Behavior (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.
Inputs and Outputs
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
Ajouter un Behavior
Maintenant, nous faisons 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 quand a ET b valent 1
endmoduleassignconnecte en continu le côté droit au côté gauche&signifie ET en Verilog
Défi
Dans ce défi, vous devez créer un module simple qui effectue l'opération OU (OR).
Ce qu'il faut faire :
- Le module doit être nommé
or_gate - Il doit avoir une entrée nommée
x - Il doit avoir une entrée nommée
y - Il doit avoir une sortie nommée
z - À l'intérieur du module, utilisez
assignpour rendrezégal àx OR y
L'en-tête du module et ses trois ports sont déjà présents dans l'éditeur. La ligne que vous devez ajouter est l'instruction assign à l'intérieur du module.
Remarque : En Verilog, l'opérateur OU s'écrit avec le symbole barre verticale |. Il renvoie 1 (vrai) si au moins une des entrées est 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
);
// À vous : 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 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