Comparison Operators
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 21 sur 90.
Les opérateurs de comparaison comparent deux valeurs et renvoient soit 1 (vrai), soit 0 (faux).
Opérateurs de comparaison disponibles
| Opérateur | Signification |
|---|---|
== | Égal à |
!= | Différent de |
> | Supérieur à |
< | Inférieur à |
>= | Supérieur ou égal à |
<= | Inférieur ou égal à |
Exemple de code
module comparison_demo;
reg [3:0] a, b;
reg result;
initial begin
a = 5;
b = 3;
result = (a == b);
$display("5 == 3 : %d", result); // 0 (faux)
result = (a != b);
$display("5 != 3 : %d", result); // 1 (vrai)
result = (a > b);
$display("5 > 3 : %d", result); // 1 (vrai)
result = (a < b);
$display("5 < 3 : %d", result); // 0 (faux)
result = (a >= 5);
$display("5 >= 5 : %d", result); // 1 (vrai)
result = (a <= 3);
$display("5 <= 3 : %d", result); // 0 (faux)
$finish;
end
endmoduleSortie :
5 == 3 : 0
5 != 3 : 1
5 > 3 : 1
5 < 3 : 0
5 >= 5 : 1
5 <= 3 : 0Utiliser les comparaisons dans les conditions
Les comparaisons sont souvent utilisées dans les instructions if :
if (count == 10)
$display("Reached maximum");
if (value > threshold)
$display("Value is too high");Notes importantes
- Les résultats des comparaisons sont des valeurs de 1 bit (0 ou 1)
- Les comparaisons fonctionnent avec n’importe quelle largeur de bit
- Soyez prudent avec
==et!=lorsque les signaux contiennent X ou Z (ils renverront X)
Défi
Écrivez les expressions de comparaison correctes pour chaque tâche.
À faire :
- Vérifiez si
aequalsbet stockez le résultat danseq - Vérifiez si
aest greater thanbet stockez le résultat dansgt - Vérifiez si
aest less than or equal tobet stockez le résultat dansle
Essayez vous-même
module comparison_challenge;
reg [3:0] a, b;
reg eq, gt, le;
initial begin
a = 4'd7;
b = 4'd7;
eq = ______; // a est égal à b
gt = ______; // a est supérieur à b
le = ______; // a est inférieur ou égal à b
$display("a = %d, b = %d", a, b);
$display("a == b : %d", eq);
$display("a > b : %d", gt);
$display("a <= b : %d", le);
$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