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 |
!= | Nicht gleich |
> | Größer als |
< | Kleiner als |
>= | Größer oder gleich |
<= | Kleiner oder gleich |
Code-Beispiel
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 : 0Verwendung von Vergleichen in Bedingungen
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
- Vorsicht bei
==und!=, wenn Signale X oder Z enthalten (sie geben X zurück)
Aufgabe
Schreibe die korrekten Vergleichsausdrücke für jede Aufgabe.
Was zu tun ist:
- Prüfe, ob
abgleicht (equals) und speichere das Ergebnis ineq - Prüfe, ob
agrößer ist als (greaterthan)bund speichere das Ergebnis ingt - Prüfe, ob
akleiner oder gleichbist (lessthanorequal) 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. SoftwareAbstraktionsebenen im DesignDein erstes ModulKommentare4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – Einfache MathematikBitweise Operatoren7Zuweisung und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-PrimitiveAND OR NOT GatterXOR XNOR GatterZusammenfassung - Logikgatterschaltung10Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher KomparatorCase-AnweisungCasex und CasezWiederholung - ALU-Design5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenShift-OperatorenVerkettungsoperatorBedingter OperatorZusammenfassung – Operator-Challenge11Schleifen
For-SchleifeWhile-SchleifeRepeat-SchleifeEndlosschleifeDisable-AnweisungRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit GrößenangabeZahlen ohne GrößenangabeNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturEingangs- und Ausgangs-PortsInout-PortsModul-InstanziierungPort-Mapping nach NamePort-Mapping nach ReihenfolgeZusammenfassung – Ein Modul erstellen