Wiederholung - ALU-Design
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 57 von 90.
Aufgabe
Eine ALU (Arithmetic Logic Unit / Arithmetisch-logische Einheit) ist eine digitale Schaltung, die zwei Eingänge entgegennimmt, eine Operation auf diesen ausführt und einen Ausgang erzeugt. Sie führt arithmetische und logische Operationen auf zwei Eingängen basierend auf einem Steuersignal aus. Das select-Signal wählt eine auszuführende Operation aus.
Funktionsweise
| select | Operation | Ausgang |
|---|---|---|
2'b00 | Addition | a + b |
2'b01 | Subtraktion | a - b |
2 me'b10 | Bitweises UND | a & b |
2'b11 | Bitweises ODER | a | b |
Bauen Sie eine einfache ALU unter Verwendung einer case-Anweisung.
Aufgabe:
- Erstellen Sie ein Modul namens
alu - Fügen Sie Eingänge hinzu:
a(4-Bit),b(4-Bit),select(2-Bit) - Fügen Sie den Ausgang hinzu:
result(4-Bit,reg-Typ) - Fügen Sie einen
always @(*)-Block hinzu - Fügen Sie darin eine
case (select)-Anweisung hinzu - Fügen Sie vier Fälle für
2'b00,2'b01,2'b10,2'b11hinzu - Fügen Sie einen
default-Fall hinzu, umresult = 0zu setzen - Schließen Sie mit
endcaseundendmoduleab
Probier es selbst
// TODO: Erstelle Modul alu
// TODO: Füge Eingänge hinzu (a, b, select)
// TODO: Füge Ausgang hinzu (result)
// TODO: Füge always @(*) Block hinzu
// TODO: Füge case (select) hinzu
// TODO: Füge case 2'b00: result = a + b; hinzu
// TODO: Füge case 2'b01: result = a - b; hinzu
// TODO: Füge case 2'b10: result = a & b; hinzu
// TODO: Füge case 2'b11: result = a | b; hinzu
// TODO: Füge default: result = 0; hinzu
// TODO: Füge endcase hinzu
// TODO: Füge endmodule hinzuAlle 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