Menu
Coddy logo textTech

Clock Generation

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası. Ders 71 / 90.

Bir Clock, düzenli aralıklarla 0 ve 1 arasında sürekli olarak toggle yapan bir sinyaldir. Clock'lar, flip-flop'lar ve sayaçlar gibi ardışık mantık devreleri için gereklidir.

Neden bir Clock Oluşturulur

Testbench'lerde sıralı devreleri test etmek için bir Clock'a ihtiyacın vardır. Clock, flip-flop'ların, register'ların ve durum makinelerinin davranışını yönlendirir.

Clock Üretme Yöntemleri

YöntemAçıklama
always ile # gecikmesiEn yaygın yöntem
forever döngüsüAlternatif yöntem
repeat döngüsüSabit sayıda cycles için

Yöntem 1: Gecikmeli always bloğu

reg clk;

initial begin
  clk = 0;
end

always #5 clk = ~clk;
  • clk = 0 zaman 0'da
  • Her 5 time units'te, clk değişir
  • Period = 10 time units
  • Frekans = 1/10 = zaman birimi başına 0.1

Yöntem 2: Sonsuz Döngü

reg clk;

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

always yöntemiyle aynı sonuç.

Yöntem 3: Sabit Döngü Sayısı Kadar Tekrarla

reg clk;

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

Tam olarak 10 saat kenarı (5 tam döngü) üretir ve ardından durur.

challenge icon

Görev

Her 4 time units'te geçiş yapan bir saat oluşturmak için eksik kodu ekleyin (period = 8 time units).

Yapılacaklar:

  1. Zaman 0'da bir initial bloğu kullanarak clk değerini 0 olarak başlatın
  2. Her 4 time units'te clk değerini değiştirmek için gecikmeli bir always bloğu kullanın

Kendin dene

module clock_challenge;
  reg clk;
  
  // TODO: Adım 1 - clk = 0 ayarlamak için initial bloğu ekle
  
  
  // TODO: Adım 2 - clk'yi her 4 zaman biriminde toggle etmek için always bloğu ekle
  

  initial begin
    $monitor("Time %0t: clk = %b", $time, clk);
    #20;
    $display("Clock generated for 20 time units");
    $finish;
  end
endmodule
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi