Modulo-Operator
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 20 von 90.
Ein weiterer grundlegender arithmetischer Operator ist der Modulo-Operator (%). Er gibt den Rest einer Division an.
Wenn du eine Zahl durch eine andere teilst, gibt der Modulo-Operator an, was übrig bleibt.
| Ausdruck | Ergebnis | Erklärung |
|---|---|---|
10 % 3 | 1 | 10 ÷ 3 = 3 mit Rest 1 |
15 % 4 | 3 | 15 ÷ 4 = 3 mit Rest 3 |
8 % 2 | 0 | 8 ÷ 2 = 4 mit Rest 0 |
Code-Beispiel
module modulo_demo;
reg [7:0] result;
initial begin
result = 10 % 3;
$display("10 %% 3 = %d", result); // 1
result = 15 % 4;
$display("15 %% 4 = %d", result); // 3
result = 8 % 2;
$display("8 %% 2 = %d", result); // 0
$finish;
end
endmoduleHäufige Anwendungsfälle
Prüfen, ob eine Zahl gerade oder ungerade ist:
if (number % 2 == 0)
$display("Even");
else
$display("Odd");Überlauf eines Zählers (0 bis 9, dann zurück auf 0):
count = (count + 1) % 10;Ermittle die letzte Ziffer einer Zahl:
last_digit = value % 10; // 123 % 10 = 3Aufgabe
Berechne die Reste für jeden Ausdruck.
Was zu tun ist:
- Berechne
17 % 5und speichere das Ergebnis inmod1 - Berechne
22 % 7und speichere das Ergebnis inmod2 - Berechne
14 % 4und speichere das Ergebnis inmod3
Probier es selbst
module modulo_challenge;
reg [7:0] mod1, mod2, mod3;
initial begin
mod1 = ______; // 17 % 5
mod2 = ______; // 22 % 7
mod3 = ______; // 14 % 4
$display("17 %% 5 = %d", mod1);
$display("22 %% 7 = %d", mod2);
$display("14 %% 4 = %d", mod3);
$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