Użycie instrukcji case
Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 66 z 90.
Wyzwanie
Zbuduj multiplekser 4-do-1, używając instrukcji case zamiast if-else.
Tablica prawdy
| sel | out |
|---|---|
| 00 | out = in0 |
| 01 | out = in1 |
| 10 | out = in2 |
| 11 | out = in3 |
Co należy zrobić:
- Utwórz moduł o nazwie
mux4to1_case - Dodaj wejścia
in0,in1,in2,in3(po 1 bicie każde) - Dodaj wejście
sel(2 bity) - Dodaj wyjście
out(1 bit, typreg) - Dodaj blok
always @(*) - Wewnątrz dodaj instrukcję
case (sel) - Dodaj przypadki dla
2'b00,2'b01,2'b10,2'b11 - Dodaj przypadek
default - Zakończ za pomocą
endcaseiendmodule
Spróbuj swoich sił
// TODO: Utwórz moduł o nazwie mux4to1_case
// TODO: Dodaj wejścia: in0, in1, in2, in3 (każde o szerokości 1 bitu)
// TODO: Dodaj wejście sel (2 bity)
// TODO: Dodaj wyjście out (typu reg)
// TODO: Dodaj blok always @(*)
// TODO: Dodaj instrukcję case (sel)
// TODO: Dodaj przypadek 2'b00: out = in0;
// TODO: Dodaj przypadek 2'b01: out = in1;
// TODO: Dodaj przypadek 2'b10: out = in2;
// TODO: Dodaj przypadek 2'b11: out = in3;
// TODO: Dodaj default: out = in0;
// TODO: Dodaj endcase
// TODO: Dodaj endmoduleWszystkie lekcje w sekcji Podstawy
1Wprowadzenie
Czym jest VerilogSprzęt a oprogramowanieTwój pierwszy modułKomentarzePoziomy abstrakcji projektu4Operatory, część 1
Operatory arytmetyczneOperator moduloOperatory porównaniaPowtórka — prosta matematykaOperatory bitowe7Przypisania i bramki
Przypisanie ciągłePrzypisanie z operatoramiWbudowane prymitywy bramekBramki AND, OR i NOTBramki XOR i XNORPodsumowanie — układ z bramek logicznych10Podejmowanie decyzji
Instrukcja ifIf-elsePowtórka – prosty komparatorInstrukcja caseCaseX i CaseZPowtórka – projektowanie ALU13Odmierzanie czasu i opóźnienia
Czym są opóźnieniaOpóźnienia bramekOpóźnienia przypisańDyrektywa timescaleGenerowanie zegaraPodsumowanie — kontrola czasu2Typy danych
Typ WireTyp RegLiczby całkowite i rzeczywisteWektoryTabliceParametryPowtórka — deklarowanie sygnałów5Operatory — część 2
Operatory logiczneOperatory redukcjiOperatory przesunięciaOperator konkatenacjiOperator warunkowyPowtórzenie — wyzwanie z operatorami11Pętle
Pętla forPętla whilePętla repeatPętla nieskończonaInstrukcja wyłączaniaPowtórka — wzorce pętli3System liczbowy
Reprezentacja binarnaLiczby o określonej szerokościLiczby o nieokreślonej szerokościLiczby ujemneWartości specjalne X i ZPodsumowanie — formaty liczb6Moduły
Struktura modułuPorty wejściowe i wyjściowePorty dwukierunkoweInstancjonowanie modułuMapowanie portów według nazwMapowanie portów według kolejnościPodsumowanie — zbuduj moduł9Bloki proceduralne
Blok alwaysBlok initialLista czułościPrzypisanie blokującePrzypisanie nieblokującePodsumowanie — always a initial12Projekt multipleksera
Projekt multipleksera 2 do 1Projekt multipleksera 4 do 115Sterownik sygnalizacji świetlnej
Definiowanie stanówLogika maszyny stanówPoćwicz samodzielnie: Kompilator Verilog online