Menu
Coddy logo textTech

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
endgenerate

Parametr 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.

challenge icon

Wyzwanie

Średni

Uż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;
endmodule
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Projektowanie RTL i weryfikacja

Poćwicz samodzielnie: Kompilator Verilog online