Menu
CoddyTech

Pembangkitan Clock

Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 71 dari 90.

Clock adalah sinyal yang terus berganti antara 0 dan 1 secara berkala. Clock penting untuk logika sekuensial seperti flip-flop dan pencacah.

Mengapa Membuat Clock

Dalam testbench, kamu memerlukan clock untuk menguji rangkaian sekuensial. Clock mengendalikan perilaku flip-flop, register, dan mesin status.

Metode untuk Membuat Clock

MethodDeskripsi
always dengan delay #Metode yang paling umum
Perulangan foreverMetode alternatif
Perulangan repeatUntuk jumlah siklus yang tetap

Metode 1: Blok always dengan jeda

reg clk;

initial begin
  clk = 0;
end

always #5 clk = ~clk;
  • clk = 0 pada waktu 0
  • Setiap 5 satuan waktu, clk berubah status
  • Periode = 10 satuan waktu
  • Frekuensi = 1/10 = 0.1 per satuan waktu

Metode 2: Perulangan tanpa akhir

reg clk;

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

Hasilnya sama seperti method always.

Metode 3: Ulangi dalam Siklus Tetap

reg clk;

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

Menghasilkan tepat 10 tepi clock (5 siklus lengkap), lalu berhenti.

challenge icon

Tantangan

Tambahkan kode yang hilang untuk menghasilkan clock yang berganti setiap 4 satuan waktu (periode = 8 satuan waktu).

Yang harus dilakukan:

  1. Inisialisasi clk ke 0 pada waktu 0 menggunakan blok initial
  2. Gunakan blok always dengan penundaan untuk mengganti clk setiap 4 satuan waktu

Coba sendiri

module clock_challenge;
  reg clk;
  
  // TODO: Langkah 1: Tambahkan blok initial untuk mengatur clk = 0
  
  
  // TODO: Langkah 2: Tambahkan blok always untuk membalik nilai clk setiap 4 satuan waktu
  

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

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Verilog online