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 als oder gleich |
<= | Kleiner als 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 : 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
- Seien Sie vorsichtig mit
==und!=, wenn Signale X oder Z enthalten (sie geben X zurück)
Aufgabe
Schreiben Sie die richtigen Vergleichsausdrücke für jede Aufgabe.
Was zu tun ist:
- Prüfen Sie, ob
agleichbist, und speichern Sie das Ergebnis ineq - Prüfen Sie, ob
agrößer alsbist, und speichern Sie das Ergebnis ingt - Prüfen Sie, ob
akleiner oder gleichbist, und speichern Sie das Ergebnis inle
Spickzettel
Vergleichsoperatoren in Verilog vergleichen zwei Werte und geben 1 (wahr) oder 0 (falsch) zurück.
| Operator | Bedeutung |
|---|---|
== | Gleich |
!= | Ungleich |
> | Größer als |
< | Kleiner als |
>= | Größer als oder gleich |
<= | Kleiner als oder gleich |
Vergleiche werden häufig in if-Anweisungen verwendet:
if (count == 10)
$display("Reached maximum");
if (value > threshold)
$display("Value is too high");Hinweis: Ergebnisse sind 1-Bit-Werte. Die Verwendung von == oder != mit Signalen, die X oder Z enthalten, gibt X zurück.
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 ist größer als b
le = ______; // a ist 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