Powtórzenie — wyzwanie z operatorami
Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 29 z 90.
Wyzwanie
Uzupełnij kod, zapisując poprawne wyrażenia dla każdego zadania. To wyzwanie obejmuje wszystkie operatory z tego rozdziału.
Co zrobić:
- Logiczne: Sprawdź, czy zarówno
value1, jak ivalue2są różne od zera, i zapisz wynik wlogic_out - Redukcja: Sprawdź, czy wszystkie bity zmiennej
vectormają wartość 1, i zapisz wynik wreduction_out - Przesunięcie: Przesuń
dataw lewo o 2 bity i zapisz wynik wshift_out - Konkatenacja: Połącz
highiloww wartość 8-bitową i zapisz wynik wconcat_out - Warunkowe: Zapisz większą z wartości `a` i `b` w
cond_out
Spróbuj swoich sił
module operator_challenge;
reg [3:0] value1, value2;
reg logic_out;
reg [3:0] vector;
reg reduction_out;
reg [7:0] data;
reg [7:0] shift_out;
reg [3:0] high, low;
reg [7:0] concat_out;
reg [3:0] a, b;
reg [3:0] cond_out;
initial begin
// Logiczne
value1 = 4'd6;
value2 = 4'd0;
logic_out = ______; // Sprawdź, czy zarówno value1, jak i value2 są różne od zera
// Redukcja
vector = 4'b1111;
reduction_out = ______; // Check if all bits of vector are 1
// Shift
data = 8'b00001111;
shift_out = ______; // Przesuń data w lewo o 2 bity
// Konkatenacja
high = 4'b1010;
low = 4'b1100;
concat_out = ______; // Połącz high i low w 8-bitową wartość
// Warunkowe
a = 4'd7;
b = 4'd12;
cond_out = ______; // Zapisz większą z wartości `a` i `b`
$display("6 && 0 = %d", logic_out);
$display("&4'b1111 = %d", reduction_out);
$display("00001111 << 2 = %b", shift_out);
$display("{1010, 1100} = %b", concat_out);
$display("max(7, 12) = %d", cond_out);
$finish;
end
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