Uso dell'istruzione case
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 66 di 90.
Sfida
Realizza un multiplexer 4 a 1 usando un'istruzione case invece di if-else.
Tabella della verità
| sel | out |
|---|---|
| 00 | out = in0 |
| 01 | out = in1 |
| 10 | out = in2 |
| 11 | out = in3 |
Cosa fare:
- Crea un modulo denominato
mux4to1_case - Aggiungi gli ingressi
in0,in1,in2,in3(1 bit ciascuno) - Aggiungi l'ingresso
sel(2 bit) - Aggiungi l'uscita
out(1 bit, di tiporeg) - Aggiungi un blocco
always @(*) - Al suo interno, aggiungi un'istruzione
case (sel) - Aggiungi i casi
2'b00,2'b01,2'b10,2'b11 - Aggiungi un caso
default - Concludi con
endcaseeendmodule
Provalo tu
// TODO: Crea un modulo chiamato mux4to1_case
// TODO: Aggiungi gli ingressi: in0, in1, in2, in3 (1 bit ciascuno)
// TODO: Aggiungi l'ingresso sel (2 bit)
// TODO: Aggiungi l'uscita out (di tipo reg)
// TODO: Aggiungi il blocco always @(*)
// TODO: Aggiungi case (sel)
// TODO: Aggiungi il caso 2'b00: out = in0;
// TODO: Aggiungi il caso 2'b01: out = in1;
// TODO: Aggiungi il caso 2'b10: out = in2;
// TODO: Aggiungi il caso 2'b11: out = in3;
// TODO: Aggiungi default: out = in0;
// 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