Menu
Coddy logo textTech

Wyzwanie – potok parzystości

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

challenge icon

Wyzwanie

Średni

Zbuduj dwustopniowy potok parzystości. Najpierw przechwyć dane bajtu i in_valid. Na następnym zboczu, jeśli nie jest aktywny reset, wyjściowa parzystość jest wynikiem operacji XOR redukcyjnego na poprzednio przechwyconym bajcie, gdy jego poprzedni sygnał valid jest w stanie wysokim; w przeciwnym razie wynosi zero. out_valid to opóźniony sygnał valid. Synchroniczny sygnał rst czyści oba etapy i wyjścia. Kolumny wyjściowe: parity, out_valid. Wszystkie sygnały sterujące i dane są stabilne przed każdym narastającym zboczem zegara; wyniki są odczytywane później.

Uzupełnij design.v i zachowaj nazwy modułów oraz portów. Zablokowany plik testbench.v dostarcza zmiany wejść i wypisuje wyjścia po ich ustabilizowaniu. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Nie dodawaj do projektu instrukcji wypisywania, opóźnień ani kończenia symulacji. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych na każdą obserwację, oddzielonych pojedynczą spacją i zakończonych znakiem nowej linii.

Spróbuj swoich sił

module dut (input clk, input rst, input in_valid, input [7:0] data, output reg parity, output reg out_valid);
    // Zastąp ten kod zastępczy własnym projektem.
    initial parity = 0;
    initial out_valid = 0;
endmodule

Wszystkie lekcje w sekcji Projektowanie RTL i weryfikacja

Poćwicz samodzielnie: Kompilator Verilog online