Menu
Coddy logo textTech

Generowanie zegara

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 71 z 90.

Zegar to sygnał, który regularnie przełącza się między 0 a 1. Zegary są niezbędne w logice sekwencyjnej, takiej jak przerzutniki i liczniki.

Dlaczego generować sygnał zegarowy

W testbenchach potrzebujesz sygnału zegarowego do testowania układów sekwencyjnych. Sygnał zegarowy steruje działaniem przerzutników, rejestrów i automatów stanów.

Metody generowania zegara

MetodaOpis
always z opóźnieniem #Najczęściej stosowana metoda
Pętla foreverMetoda alternatywna
Pętla repeatDo ustalonej liczby cykli

Metoda 1: Blok always z opóźnieniem

reg clk;

initial begin
  clk = 0;
end

always #5 clk = ~clk;
  • clk = 0 w chwili 0
  • Co 5 jednostek czasu clk zmienia stan
  • Okres = 10 jednostek czasu
  • Częstotliwość = 1/10 = 0.1 na jednostkę czasu

Metoda 2: Pętla nieskończona

reg clk;

initial begin
  clk = 0;
  forever begin
    #5 clk = ~clk;
  end
end

Taki sam rezultat jak w przypadku metody always.

Metoda 3: Powtarzanie przez ustaloną liczbę cykli

reg clk;

initial begin
  clk = 0;
  repeat (10) begin
    #5 clk = ~clk;
  end
end

Generuje dokładnie 10 zboczy zegara (5 pełnych cykli), a następnie zatrzymuje się.

challenge icon

Wyzwanie

Dodaj brakujący kod, aby wygenerować zegar, który przełącza się co 4 jednostki czasu (okres = 8 jednostek czasu).

Co zrobić:

  1. Zainicjalizuj clk wartością 0 w chwili 0, używając bloku initial
  2. Użyj bloku always z opóźnieniem, aby przełączać clk co 4 jednostki czasu

Spróbuj swoich sił

module clock_challenge;
  reg clk;
  
  // TODO: Krok 1 - Dodaj blok initial, aby ustawić clk = 0
  
  
  // TODO: Krok 2 - Dodaj blok always, aby zmieniać stan clk co 4 jednostki czasu
  

  initial begin
    $monitor("Time %0t: clk = %b", $time, clk);
    #20;
    $display("Clock generated for 20 time units");
    $finish;
  end
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 Podstawy

Poćwicz samodzielnie: Kompilator Verilog online