Comparison Operators
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 |
|---|---|
== | Equal zu |
!= | Nicht equal zu |
> | Greater than |
< | Less than |
>= | Greater than oder gleich |
<= | Less than 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 korrekten Vergleichsausdrücke für jede Aufgabe.
Was zu tun ist:
- Check, ob
aequalsb, und speichere das Ergebnis ineq - Check, ob
agreater thanbist, und speichere das Ergebnis ingt - Check, ob
aless than or equal tobist, 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 Designs4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicÜbe selbstständig: Online-Verilog-Compiler