Warunkowe generate
Część sekcji Projektowanie RTL i weryfikacja ścieżki Verilog w Coddy. Lekcja 14 z 38.
Instrukcja warunkowa generate wybiera strukturę sprzętową na podstawie stałego parameter. Dla danej instancji elaborowana jest tylko jedna gałąź. Proceduralna instrukcja warunkowa lub wyrażenie warunkowe z sygnałem wybiera zachowanie w czasie wykonywania; nie zastępuje konfiguracji generate.
Odpowiedni fragment; pozostałe deklaracje i połączenia są podane w wyzwaniu.
generate
if(INVERT) begin: inverted
assign y = ~a;
end else begin: direct
assign y = a;
end
endgenerateParametr parameter wybiera, który sterownik zostanie utworzony dla tej instancji.
Używaj generate-if do stałej konfiguracji, a zwykłego wyboru RTL do elementów sterujących działających w czasie wykonywania.
Wyzwanie
ŚredniUżyj warunkowego generate: MODE=0 przekazuje a bez zmian; MODE=1 odwraca wszystkie osiem bitów a. Wejście b jest nieużywane. MODE wynosi 0 albo 1. Testbench tworzy instancje obu konfiguracji i wypisuje najpierw y0, a potem y1.
Uzupełnij design.v i zachowaj nazwy modułów oraz porty. Zablokowany testbench.v dostarcza zmiany wejść i wypisuje wyjścia po ustaleniu ich wartości. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Nie dodawaj do projektu wypisywania, opóźnień ani zakończenia symulacji. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych dla każdej obserwacji, oddzielonych pojedynczą spacją i zakończonych znakiem nowej linii.
Spróbuj swoich sił
module dut #(parameter MODE=0) (input [7:0] a,b, output [7:0] y);
assign y=0;
endmoduleTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Projektowanie RTL i weryfikacja
1Niezawodna logika kombinacyjna RTL
Wartości domyślne zapobiegają zatrzaskomKoder priorytetowyWeryfikacja kodu one-hotBezpieczne dekodowanie casePodsumowanie — router żądań2Szerokości i arytmetyka ze znakiem
Zachowywanie bitów przeniesieniaPorównania ze znakiemArytmetyczne przesunięcia w prawoPrzepełnienie i nasyceniePodsumowanie — różnica ze znakiem3Wielokrotnego użytku RTL
Funkcje kombinacyjneParametry bezpieczne pod względem szerokościPętle generateWarunkowe generatePodsumowanie – wielokrotnego użytku maska bitowaPoćwicz samodzielnie: Kompilator Verilog online