Menu
Coddy logo textTech

Weryfikacja kodu one-hot

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

Dane one-hot mają dokładnie jeden ustawiony bit. Dekoder generuje takie dane, a walidacja sprawdza dane wejściowe przed ich użyciem. Dla znanych wartości binarnych wartość różna od zera jest one-hot, gdy bits & (bits - 1) wynosi zero. Ta sekcja nie używa tego skrótu do klasyfikowania X ani Z.

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

assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);

Sprawdzenie, czy wartość jest niezerowa, wyklucza stan bezczynności; sztuczka bitowa odrzuca wiele ustawionych bitów.

Rozróżniaj zero, dokładnie jeden ustawiony bit i wiele ustawionych bitów podczas walidacji żądań.

challenge icon

Wyzwanie

Średni

W przypadku znanych 4-bitowych bitów wejściowych ustaw valid tylko wtedy, gdy dokładnie jeden bit jest ustawiony. Użyj sprawdzenia, czy wartość jest niezerowa, wraz z bits & (bits - 1). Kolumny wyjściowe: valid. Wszystkie wartości pobudzające są znanymi wartościami binarnymi.

Uzupełnij design.v i zachowaj nazwy modułów oraz porty. Zablokowany testbench.v dostarcza zmiany wejść i wyświetla wyjścia po ustaleniu się ich wartości. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Nie dodawaj wyświetlania, opóźnień ani kończenia symulacji do projektu. 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 [3:0] bits, output valid);
    // Zastąp ten element zastępczy własnym projektem.
    assign valid = 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