Menu
Coddy logo textTech

Opérateurs de comparaison

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 est égal à b et stockez le résultat dans eq
  2. Vérifiez si a est supérieur à b et stockez le résultat dans gt
  3. Vérifiez si a est inférieur ou égal à 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