Arithmetische Operatoren
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 19 von 90.
Verilog bietet grundlegende arithmetische Operatoren: + (Addition), - (Subtraktion), * (Multiplikation) und / (Division).
Code-Beispiel:
module arithmetic_demo;
reg [3:0] a, b;
reg [7:0] add, sub, mul, div;
initial begin
a = 4'd9;
b = 4'd4;
add = a + b; // 9 + 4 = 13
sub = a - b; // 9 - 4 = 5
mul = a * b; // 9 * 4 = 36
div = a / b; // 9 / 4 = 2
$display("9 + 4 = %d", add);
$display("9 - 4 = %d", sub);
$display("9 * 4 = %d", mul);
$display("9 / 4 = %d", div);
$finish;
end
endmoduleAusgabe:
9 + 4 = 13 9 - 4 = 5 9 * 4 = 36 9 / 4 = 2
Wichtige Hinweise
- Division führt eine Ganzzahldivision durch (keine Brüche)
- Stellen Sie sicher, dass das Ergebnisregister breit genug für Multiplikationsergebnisse ist
Aufgabe
In dieser Herausforderung müssen Sie die richtigen arithmetischen Ausdrücke unter Verwendung der Operatoren +, -, * und / schreiben.
Was zu tun ist:
- Berechnen Sie
a + bund speichern Sie das Ergebnis inadd - Berechnen Sie
a - bund speichern Sie das Ergebnis insub - Berechnen Sie
a * bund speichern Sie das Ergebnis inmul - Berechnen Sie
a / bund speichern Sie das Ergebnis indiv
Spickzettel
Verilog arithmetische Operatoren: +, -, *, /
reg [3:0] a, b;
reg [7:0] add, sub, mul, div;
add = a + b;
sub = a - b;
mul = a * b;
div = a / b; // integer division (no fractions)Hinweis: Stellen Sie sicher, dass das Ergebnisregister breit genug ist, insbesondere bei Multiplikationen.
Probier es selbst
module arithmetic_challenge;
reg [3:0] a, b;
reg [7:0] add, sub, mul, div;
initial begin
a = 4'd12;
b = 4'd5;
add = ______; // a + b
sub = ______; // a - b
mul = ______; // a * b
div = ______; // a / b
$display("12 + 5 = %d", add);
$display("12 - 5 = %d", sub);
$display("12 * 5 = %d", mul);
$display("12 / 5 = %d", div);
$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