Menu
Coddy logo textTech

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érateurSignification
==É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
endmodule

Sortie :

5 == 3 : 0
5 != 3 : 1
5 > 3  : 1
5 < 3  : 0
5 >= 5 : 1
5 <= 3 : 0

Utiliser 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)
challenge icon

Défi

Écrivez les expressions de comparaison correctes pour chaque tâche.

À faire :

  1. Vérifiez si a equals b et stockez le résultat dans eq
  2. Vérifiez si a est greater than b et stockez le résultat dans gt
  3. Vérifiez si a est less than or equal to b et stockez le résultat dans le

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
endmodule
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur Verilog en ligne