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
| Operatore | Significato |
|---|---|
== | 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
endmoduleOutput:
5 == 3 : 0
5 != 3 : 1
5 > 3 : 1
5 < 3 : 0
5 >= 5 : 1
5 <= 3 : 0Usare 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)
Sfida
Scrivi le espressioni di confronto corrette per ogni attività.
Cosa fare:
- Verifica se
aè uguale abe memorizza il risultato ineq - Verifica se
aè maggiore dibe memorizza il risultato ingt - Verifica se
aè minore o uguale abe memorizza il risultato inle
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
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online