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

Utilisation des 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 de comparaison sont des valeurs de 1 bit (0 ou 1)
  • Les comparaisons fonctionnent avec n'importe quelle largeur de bits
  • Soyez prudent avec == et != lorsque les signaux contiennent X ou Z (ils retourneront X)
challenge icon

Défi

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

Ce qu'il faut 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

Aide-mémoire

Les opérateurs de comparaison en Verilog comparent deux valeurs et renvoient 1 (vrai) ou 0 (faux).

OpérateurSignification
==Égal à
!=Différent de
>Supérieur à
<Inférieur à
>=Supérieur ou égal à
<=Inférieur ou égal à

Les comparaisons sont couramment utilisées dans les instructions if :

if (count == 10)
  $display("Reached maximum");

if (value > threshold)
  $display("Value is too high");

Remarque : Les résultats sont des valeurs de 1 bit. L'utilisation de == ou != avec des signaux contenant X ou Z renverra X.

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