Integer And Real
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 8 sur 90.
En plus de wire et de reg, Verilog possède d’autres types de données pour les nombres, ayant des usages différents.
Integer
integer est une variable à usage général destinée au comptage et aux calculs.
- La taille par défaut est de 32 bits
- Signé (peut stocker des nombres negative)
- Utilisé principalement dans les bancs de test et les boucles for
Déclarer un integer :
integer i; // variable signée 32 bits
integer count; // Peut stocker des nombres négatifsUtilisation de integer :
integer i;
initial begin
i = 0; // Commence à 0
i = i + 1; // Compte vers le haut
i = -5; // Peut stocker des négatifs
$display("i = %d", i); // Affiche : i = -5
endReal
real sert à représenter des nombres à virgule flottante (des nombres avec des décimales).
- Stocke des valeurs fractionnaires
- Utilisé dans les bancs de test pour les calculs
- Ne peut pas être synthétisé en matériel
Déclarer un real :
real pi; // Variable à virgule flottante
real voltage;Utilisation de real :
real pi;
initial begin
pi = 3.14159; // Valeur décimale
pi = 22.0 / 7.0; // Résultat de la division
$display("pi = %f", pi); // Affiche : pi = 3.142857
endOù les utiliser
Dans les bancs d’essai : Les integer et real sont couramment utilisés pour les compteurs de boucles, les calculs et la vérification des valeurs attendues. Ils rendent le code de test plus facile à écrire et à comprendre.
Dans le matériel : Ces types ne sont généralement pas synthétisables, ce qui signifie qu’ils ne peuvent pas être transformés en circuits réels. Pour le matériel destiné à un FPGA ou à une puce, utilisez plutôt reg et wire.
Défi
Complétez le code pour faire fonctionner le banc de test.
À faire :
- Déclarez un entier appelé i (pour le compteur de boucle)
- Déclarez un réel appelé value (pour le calcul)
Essayez vous-même
module test;
// Déclare un entier appelé i
// Déclare un réel appelé value
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$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 VerilogMatériel vs logicielVotre premier moduleCommentairesNiveaux d’abstraction de conception4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicEntraînez-vous par vous-même : Compilateur Verilog en ligne