Menu
Coddy logo textTech

Priorytet resetu i zezwolenia

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

Blok taktowany może przechowywać rejestr przez pominięcie przypisania na nieaktywnych zboczach. To celowe przechowywanie różni się od przypadkowego zatrzasku kombinacyjnego. Zapisz jawną kolejność priorytetów resetu, ładowania i aktywacji. Tutaj resety są synchroniczne: działają tylko na narastającym zboczu zegara.

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

always @(posedge clk) begin
    if(rst) q <= 0;
    else if(en) q <= data;
end

Reset ma priorytet, gdy oba sygnały sterujące są aktywne, a zbocza bez resetu, przy wyłączonym sygnale en, zachowują wartość q.

Użyj jednego taktowanego łańcucha priorytetów i precyzyjnie określ zachowanie dla resetowania, ładowania, włączania i podtrzymywania.

challenge icon

Wyzwanie

Średni

Zaimplementuj 8-bitowy rejestr q z synchronicznym resetem aktywnym stanem wysokim rst i zezwoleniem en. Na zboczu narastającym reset ma pierwszeństwo i zeruje q; w przeciwnym razie zbocza przy włączonym zezwoleniu ładują a, a zbocza przy wyłączonym zezwoleniu zachowują q. Kolumny wyjściowe: q. 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 testbench.v dostarcza zmiany wejściowe 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 zakoń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 clk, input rst, input en, input [7:0] a, output reg [7:0] q);
    // Zastąp ten symbol zastępczy swoim projektem.
    initial q = 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