Représentation binaire
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 13 sur 90.
En Verilog, nous travaillons avec des circuits numériques qui ne comprennent que 0 et 1. Ceux-ci sont représentés en binaire.
Le binaire n'utilise que deux chiffres : 0 and 1. Chaque chiffre binaire est appelé un bit.
| Décimal | Binaire | Bits |
|---|---|---|
| 0 | 0 | 1 bit |
| 1 | 1 | 1 bit |
| 2 | 10 | 2 bits |
| 3 | 11 | 2 bits |
| 4 | 100 | 3 bits |
| 5 | 101 | 3 bits |
Écrire du binaire en Verilog
Pour écrire des nombres binaires en Verilog, utilisez le préfixe 'b :
4'b1010 // binaire 4 bits 1010 (décimal 10)
8'b11110000 // binaire 8 bits 11110000 (décimal 240)
2'b01 // binaire 2 bits 01 (décimal 1)Le nombre avant 'b indique à Verilog le nombre de bits que possède la valeur.
Comment convertir un nombre décimal en binaire
Divisez le nombre décimal par 2 de manière répétée et lisez les restes de bas en haut.
Exemple : Convertir 9 en binaire
| Étape | Division | Quotient | Reste |
|---|---|---|---|
| 1 | 9 ÷ 2 | 4 | 1 |
| 2 | 4 ÷ 2 | 2 | 0 |
| 3 | 2 ÷ 2 | 1 | 0 |
| 4 | 1 ÷ 2 | 0 | 1 |
Lisez les restes du dernier au premier : 1001
9 = 4'b1001
Exemple de code
module binary_example;
reg [3:0] a;
initial begin
a = 4'b1010; // Binaire 1010 = décimal 10
$display("a = %b (binary)", a);
$display("a = %d (decimal)", a);
$display("a = %h (hex)", a);
$finish;
end
endmoduleSortie :
a = 1010 (binary)
a = 10 (decimal)
a = a (hex)Défi
Complétez le code en écrivant les valeurs binaires manquantes.
Ce qu'il faut faire :
- Écrire le binaire pour le décimal 5 (4 bits)
- Écrire le binaire pour le décimal 14 (4 bits)
Aide-mémoire
Le binaire utilise uniquement 0 et 1. Chaque chiffre est un bit.
Écrivez du binaire en Verilog avec le préfixe 'b — le nombre qui le précède spécifie la largeur en bits :
4'b1010 // binaire 4 bits = décimal 10
8'b11110000 // binaire 8 bits = décimal 240Formats d'affichage : %b (binaire), %d (décimal), %h (hex).
Du décimal au binaire : divisez par 2 de manière répétée, lisez les restes de bas en haut.
// 9 ÷ 2 → 4 r1 → 2 r0 → 1 r0 → 0 r1 ⟹ 1001
// 9 = 4'b1001Essayez vous-même
module binary_challenge;
reg [3:0] a, b;
initial begin
// Écrire le binaire pour le décimal 5 (4 bits)
a = 4'b______;
// Write binary for decimal 14 (4 bits)
b = 4'b______;
$display("5 = %b", a);
$display("14 = %b", b);
$finish;
end
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