Vergleichsoperatoren
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 21 von 90.
Vergleichsoperatoren vergleichen zwei Werte und geben entweder 1 (wahr) oder 0 (falsch) zurück.
Verfügbare Vergleichsoperatoren
| Operator | Bedeutung |
|---|---|
== | Gleich |
!= | Ungleich |
> | Größer als |
< | Kleiner als |
>= | Größer oder gleich |
<= | Kleiner oder gleich |
Codebeispiel
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 (falsch)
result = (a != b);
$display("5 != 3 : %d", result); // 1 (wahr)
result = (a > b);
$display("5 > 3 : %d", result); // 1 (wahr)
result = (a < b);
$display("5 < 3 : %d", result); // 0 (falsch)
result = (a >= 5);
$display("5 >= 5 : %d", result); // 1 (wahr)
result = (a <= 3);
$display("5 <= 3 : %d", result); // 0 (falsch)
$finish;
end
endmoduleAusgabe:
5 == 3 : 0
5 != 3 : 1
5 > 3 : 1
5 < 3 : 0
5 >= 5 : 1
5 <= 3 : 0Vergleiche in Bedingungen verwenden
Vergleiche werden häufig in if-Anweisungen verwendet:
if (count == 10)
$display("Reached maximum");
if (value > threshold)
$display("Value is too high");Wichtige Hinweise
- Vergleichsergebnisse sind 1-Bit-Werte (0 oder 1)
- Vergleiche funktionieren mit jeder Bitbreite
- Sei vorsichtig mit
==und!=, wenn Signale X oder Z enthalten (sie geben X zurück)
Aufgabe
Schreibe die richtigen Vergleichsausdrücke für jede Aufgabe.
Was zu tun ist:
- Überprüfe, ob
agleichbist, und speichere das Ergebnis ineq - Überprüfe, ob
agrößer alsbist, und speichere das Ergebnis ingt - Überprüfe, ob
akleiner oder gleichbist, und speichere das Ergebnis inle
Probier es selbst
module comparison_challenge;
reg [3:0] a, b;
reg eq, gt, le;
initial begin
a = 4'd7;
b = 4'd7;
eq = ______; // a ist gleich b
gt = ______; // a größer als b
le = ______; // a kleiner oder gleich 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
endmoduleDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – einfache MathematikBitweise Operatoren7Zuweisungen und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-GrundelementeUND-, ODER- und NICHT-GatterXOR- und XNOR-GatterRückblick – Logikgatter-Schaltung10Entscheidungsfindung
If-AnweisungIf – ElseRückblick – Einfacher KomparatorCase-AnweisungCasex und CasezRückblick – ALU-Entwurf13Zeitsteuerung und Verzögerungen
Was sind Verzögerungen?GatterverzögerungenZuweisungsverzögerungenTimescale-DirektiveTakterzeugungZusammenfassung – Zeitsteuerung2Datentypen
Wire-TypReg-TypInteger und RealVektorenArraysParameterZusammenfassung – Signale deklarieren5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenSchiebeoperatorenVerkettungsoperatorBedingter OperatorRückblick – Operatoren-Herausforderung11Schleifen
For-SchleifeWhile-SchleifeWiederholungsschleifeEndlosschleifeAnweisung deaktivierenRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit fester BreiteZahlen ohne feste BreiteNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturInput- und Output-PortsInout-PortsModulinstanziierungPortzuordnung nach NamenPortzuordnung nach ReihenfolgeRückblick – Ein Modul erstellenÜbe selbstständig: Online-Verilog-Compiler