Menu
Coddy logo textTech

Wartości domyślne zapobiegają zatrzaskom

Część sekcji Projektowanie RTL i weryfikacja ścieżki Verilog w Coddy. Lekcja 1 z 38.

Wyjście kombinacyjne musi być przypisane dla każdej ścieżki wejściowej. Jeśli blok always pomija przypisanie wyjścia, wyjście zachowuje swoją poprzednią wartość, co może prowadzić do wnioskowania o zatrzasku. Przypisanie default, po którym następują nadpisania, uwidacznia pokrycie.

Odpowiedni fragment; pozostałe deklaracje i połączenia są podane w wyzwaniu.

always @* begin
    y = 0;
    if (en) y = data;
end

default obejmuje ścieżkę, gdy sygnał jest wyłączony, więc wyjście zależy wyłącznie od bieżących wejść.

Przypisuj wartość każdemu wyjściu kombinacyjnemu na każdej ścieżce; używaj wartości domyślnych przed warunkowymi nadpisaniami.

challenge icon

Wyzwanie

Średni

Zaimplementuj bramkowane 8-bitowe wyjście: gdy en ma wartość jeden, y jest równe a; w przeciwnym razie y ma wartość zero. Przypisuj y na każdej ścieżce kombinacyjnej. Kolumny wyjściowe: y. Wszystkie wartości sygnałów wejściowych są znanymi wartościami binarnymi.

Uzupełnij design.v i zachowaj nazwy modułów oraz portów. Zablokowany plik testbench.v dostarcza zmiany sygnałów wejściowych i wyświetla wyjścia po ich ustaleniu. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Nie dodawaj do projektu wyświetlania, opóźnień ani koń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 (input en, input [7:0] a, output reg [7:0] y);
    // Zastąp ten tekst zastępczy własnym projektem.
    initial 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