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 / 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

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

Bauen Sie eine einfache ALU unter Verwendung einer case-Anweisung.

Aufgabe:

  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 den Ausgang hinzu: result (4-Bit, reg-Typ)
  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: 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 hinzu

Alle Lektionen in Grundlagen