Utilisation de l'instruction Case
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 66 sur 90.
Défi
Construisez un multiplexeur 4 vers 1 en utilisant une instruction case au lieu de if-else.
Table de Vérité
| sel | out |
|---|---|
| 00 | out = in0 |
| 01 | out = in1 |
| 10 | out = in2 |
| 11 | out = in3 |
Ce qu'il faut faire :
- Créez un module nommé
mux4to1_case - Ajoutez les entrées
in0,in1,in2,in3(1 bit chacune) - Ajoutez l'entrée
sel(2 bits) - Ajoutez la sortie
out(1 bit, de typereg) - Ajoutez un bloc
always @(*) - À l'intérieur, ajoutez une instruction
case (sel) - Ajoutez des cas pour
2'b00,2'b01,2'b10,2'b11 - Ajoutez un cas
default - Terminez avec
endcaseetendmodule
Essayez vous-même
// TODO: Créer un module nommé mux4to1_case
// TODO: Ajouter les entrées : in0, in1, in2, in3 (1 bit chacune)
// TODO: Ajouter l'entrée sel (2 bits)
// TODO: Ajouter la sortie out (type reg)
// TODO: Ajouter un bloc always @(*)
// TODO: Ajouter case (sel)
// TODO: Ajouter le cas 2'b00: out = in0;
// TODO: Ajouter le cas 2'b01: out = in1;
// TODO: Ajouter le cas 2'b10: out = in2;
// TODO: Ajouter le cas 2'b11: out = in3;
// TODO: Ajouter default: out = in0;
// TODO: Ajouter endcase
// TODO: Ajouter endmoduleToutes 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