Menu
Coddy logo textTech

Operatori di confronto

Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 21 di 90.

Gli operatori di confronto confrontano due valori e restituiscono 1 (vero) oppure 0 (falso).

Operatori di confronto disponibili

OperatoreSignificato
==Uguale a
!=Diverso da
>Maggiore di
<Minore di
>=Maggiore o uguale a
<=Minore o uguale a

Esempio di codice

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 (falso)
    
    result = (a != b);
    $display("5 != 3 : %d", result);  // 1 (verdadero)
    
    result = (a > b);
    $display("5 > 3  : %d", result);  // 1 (verdadero)
    
    result = (a < b);
    $display("5 < 3  : %d", result);  // 0 (falso)
    
    result = (a >= 5);
    $display("5 >= 5 : %d", result);  // 1 (verdadero)
    
    result = (a <= 3);
    $display("5 <= 3 : %d", result);  // 0 (falso)
    $finish;
  end
endmodule

Output:

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

Usare i confronti nelle condizioni

I confronti sono spesso usati nelle istruzioni if:

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

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

Note importanti

  • I risultati dei confronti sono valori a 1 bit (0 o 1)
  • I confronti funzionano con qualsiasi larghezza di bit
  • Fai attenzione a == e != quando i segnali contengono X o Z (restituiranno X)
challenge icon

Sfida

Scrivi le espressioni di confronto corrette per ogni attività.

Cosa fare:

  1. Verifica se a è uguale a b e memorizza il risultato in eq
  2. Verifica se a è maggiore di b e memorizza il risultato in gt
  3. Verifica se a è minore o uguale a b e memorizza il risultato in le

Provalo tu

module comparison_challenge;
  reg [3:0] a, b;
  reg eq, gt, le;
  
  initial begin
    a = 4'd7;
    b = 4'd7;
    
    eq = ______;   // a è uguale a b
    gt = ______;   // a è maggiore di b
    le = ______;   // a è minore o uguale a 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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Verilog online