Menu
Coddy logo textTech

Recap - ALU Design

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

challenge icon

Aufgabe

Eine ALU (Arithmetisch-logische Einheit) ist eine digitale Schaltung, die zwei Eingaben entgegennimmt, eine Operation mit ihnen durchführt und eine Ausgabe erzeugt. Sie führt arithmetische und logische Operationen an zwei Eingaben basierend auf einem select-Signal durch. Das select-Signal wählt eine auszuführende Operation aus.

So funktioniert sie

selectOperationAusgabe
2'b00Additiona + b
2'b01Subtraktiona - b
2'b10Bitweises ANDa & b
2'b11Bitweises ORa | b

Erstelle eine einfache ALU mit einer case-Anweisung.

Aufgabe:

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

Probier es selbst

// TODO: Erstelle module alu 

  // TODO: Füge inputs (a, b, select) hinzu
  
  // TODO: Füge output (result) hinzu

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

Übe selbstständig: Online-Verilog-Compiler