Riepilogo - Progettazione di una ALU
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 57 di 90.
Sfida
Un’ALU (unità aritmetico-logica) è un circuito digitale che accetta due ingressi, esegue un’operazione su di essi e produce un’uscita. Esegue operazioni aritmetiche e logiche su due ingressi in base a un segnale di selezione. Il segnale select sceglie una operazione da eseguire.
Come funziona
| select | Operazione | Uscita |
|---|---|---|
2'b00 | Addizione | a + b |
2'b01 | Sottrazione | a - b |
2'b10 | AND bit a bit | a & b |
2'b11 | OR bit a bit | a | b |
Costruisci una semplice ALU usando un’istruzione case.
Cosa fare:
- Crea un modulo chiamato
alu - Aggiungi gli ingressi:
a(4 bit),b(4 bit),select(2 bit) - Aggiungi l’uscita:
result(4 bit, di tipo reg) - Aggiungi un blocco
always @(*) - Al suo interno, aggiungi un’istruzione
case (select) - Aggiungi quattro casi per
2'b00,2'b01,2'b10,2'b11 - Aggiungi un caso
defaultper impostareresult = 0 - Chiudi con
endcaseeendmodule
Provalo tu
// TODO: Crea il modulo alu
// TODO: Aggiungi gli ingressi (a, b, select)
// TODO: Aggiungi l'uscita (result)
// TODO: Aggiungi il blocco always @(*)
// TODO: Aggiungi case (select)
// TODO: Aggiungi case 2'b00: result = a + b;
// TODO: Aggiungi case 2'b01: result = a - b;
// TODO: Aggiungi case 2'b10: result = a & b;
// TODO: Aggiungi case 2'b11: result = a | b;
// TODO: Aggiungi default: result = 0;
// TODO: Aggiungi endcase
// TODO: Aggiungi endmoduleTutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online