Menu
Coddy logo textTech

Wiederholung - ALU-Design

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 57 von 90.

challenge icon

Aufgabe

Eine ALU (Arithmetic Logic Unit) ist eine digitale Schaltung, die zwei Eingänge entgegennimmt, eine Operation an ihnen durchführt und einen Ausgang erzeugt. Sie führt arithmetische und logische Operationen auf zwei Eingängen basierend auf einem Auswahlsignal aus. Das select-Signal wählt eine auszuführende Operation aus.

Wie es funktioniert

selectOperationAusgang
2'b00Additiona + b
2'b01Subtraktiona - b
2'b10Bitweises UNDa & b
2'b11Bitweises ODERa | b

Erstellen Sie eine einfache ALU mit einer case-Anweisung.

Was zu tun ist:

  1. Erstellen Sie ein Modul namens alu
  2. Fügen Sie Eingänge hinzu: a (4-Bit), b (4-Bit), select (2-Bit)
  3. Fügen Sie einen Ausgang hinzu: result (4-Bit, Typ reg)
  4. Fügen Sie einen always @(*)-Block hinzu
  5. Fügen Sie darin eine case (select)-Anweisung hinzu
  6. Fügen Sie vier Fälle für 2'b00, 2'b01, 2'b10, 2'b11 hinzu
  7. Fügen Sie einen default-Fall hinzu, um result = 0 zu setzen
  8. Schließen Sie mit endcase und endmodule ab

Probier es selbst

// TODO: Erstelle Modul alu 

  // TODO: Eingänge hinzufügen (a, b, select)
  
  // TODO: Ausgang hinzufügen (result)

  // TODO: always @(*)-Block hinzufügen
  
  // TODO: case (select) hinzufügen
  
  // TODO: case 2'b00: result = a + b; hinzufügen
  
  // TODO: case 2'b01: result = a - b; hinzufügen
  
  // TODO: case 2'b10: result = a & b; hinzufügen
  
  // TODO: case 2'b11: result = a | b; hinzufügen
  
  // TODO: default: result = 0; hinzufügen
  
  // TODO: endcase hinzufügen

// TODO: endmodule hinzufügen

Alle Lektionen in Grundlagen