Zliczanie zaakceptowanych próbek
Część sekcji Projektowanie RTL i weryfikacja ścieżki Verilog w Coddy. Lekcja 34 z 38.
Wyzwanie
TrudnyZbuduj jeden Sample Monitor w pięciu krokach. Zliczaj zaakceptowane próbki w count: zwiększaj wartość o jeden przy każdym zboczu en, które nie resetuje ani nie czyści, aż do osiągnięcia 15. rst lub clear resetuje count oraz total. Zaakceptowane próbki o wartości zero również zwiększają count. Zachowaj wszystko z poprzednich kroków, w tym testbench i wcześniejsze zachowanie wyjściowe. Wszystkie wartości wejściowe są znane. Scenariusze zawierają najwyżej 40 zboczy, więc 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 w tym kroku.
Uzupełnij design.v i zachowaj nazwy modułów oraz porty. Zablokowany testbench.v dostarcza zmiany wejść i wypisuje 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 wypisywania, opóźnień ani kończenia symulacji. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych dla każdej obserwacji, rozdzielonych pojedynczą spacją i zakończonych 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);
always @(posedge clk)begin
if(rst)total<=0;else if(clear)total<=0;else if(en)total<=total+data;
count<=0;
end
assign alarm=0;
endmoduleWszystkie lekcje w sekcji Projektowanie RTL i weryfikacja
1Niezawodna logika kombinacyjna RTL
Wartości domyślne zapobiegają zatrzaskomKoder priorytetowyWeryfikacja kodu one-hotBezpieczne dekodowanie casePodsumowanie — router żądań4Sterowany sekwencyjny RTL
Priorytet resetu i zezwoleniaLiczniki nasycającePotokowanie danych i sygnału validWykrywanie próbkowanych zboczyPodsumowanie — licznik zdarzeń7Projekt — monitor próbek
Gromadzenie próbekPrzyjmowanie włączonych próbek2Szerokości i arytmetyka ze znakiem
Zachowywanie bitów przeniesieniaPorównania ze znakiemArytmetyczne przesunięcia w prawoPrzepełnienie i nasyceniePodsumowanie — różnica ze znakiemPoćwicz samodzielnie: Kompilator Verilog online