Menu
Coddy logo textTech

Gromadzenie próbek

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

Zbuduj wielokrotnego użytku monitor dla strumienia próbek bez znaku. Będziesz sumować wartości, uwzględniać sygnały sterujące enable i clear, zliczać zaakceptowane próbki oraz informować, czy osiągnięto próg. We wszystkich pięciu krokach interfejs modułu i zablokowany testbench pozostają takie same. Zarezerwowane wyjścia zyskają swoje działanie w późniejszych krokach.

challenge icon

Wyzwanie

Trudny

Zbuduj jeden moduł Sample Monitor w pięciu krokach. Na każdym narastającym zboczu synchroniczny rst zeruje total; w przeciwnym razie do total dodawane są bez znaku dane. Użyj 16-bitowego rejestru total. W tym pierwszym kroku en i clear są nieużywane, a scenariusze utrzymują en=1 i clear=0. count i alarm to zarezerwowane wyjścia, które pozostają równe zero. Wszystkie wartości wejściowe są znane. Scenariusze zawierają najwyżej 40 zboczy, więc wartość total mieści się w 16 bitach. Stały testbench wypisuje total dla scenariuszy 1-9, total i count dla scenariuszy 10-12 oraz total, count i alarm dla scenariuszy 13-15. Oceniane są tylko scenariusze włączone dla tego kroku.

Uzupełnij design.v i zachowaj nazwy modułów oraz portów. Zablokowany 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 wypisywania, opóźnień ani kończenia symulacji. Oczekiwany wynik to jeden wiersz wartości dziesiętnych dla każdej obserwacji, oddzielonych pojedynczą spacją i zakończony znakiem nowej linii.

Spróbuj swoich sił

module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    initial begin total=0;count=0;end
    assign alarm=0;
endmodule

Wszystkie lekcje w sekcji Projektowanie RTL i weryfikacja

Poćwicz samodzielnie: Kompilator Verilog online