Écriture du module
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 43 sur 90.
Défi
Un demi-additionneur est un circuit qui additionne deux bits uniques et vous indique :
- sum — le résultat (0 ou 1)
- carry — s'il y a un dépassement (1 lorsque les deux entrées valent 1)
Exemple
| a | b | sum | carry |
|---|---|---|---|
| 0 | 0 | 0 | pas de dépassement |
| 0 | 1 | 1 | pas de dépassement |
| 1 | 0 | 1 | pas de dépassement |
| 1 | 1 | 0 | dépassement (carry = 1) |
Lorsque vous additionnez 1 + 1 en binaire, le résultat est 0 avec une retenue de 1 (tout comme 5 + 5 = 0 avec une retenue de 1 en décimal).
Avant d'ajouter la logique, nous devons créer le conteneur du module — la coque vide qui contiendra notre circuit de demi-additionneur.
Pour un demi-additionneur, voici les tâches :
- Créez un module appelé
half_adder - Ajoutez deux entrées :
aetb - Ajoutez deux sorties :
sumetcarry
Essayez vous-même
// Tâche 1 : Créer un module nommé half_adder
// Tâche 2 : Ajouter deux entrées : a et b
// Tâche 3 : Ajouter deux sorties : sum et carry
// La logique sera ajoutée plus tard
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