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
| Method | Deskripsi |
|---|---|
always dengan delay # | Metode yang paling umum |
Perulangan forever | Metode alternatif |
Perulangan repeat | Untuk jumlah siklus yang tetap |
Metode 1: Blok always dengan jeda
reg clk;
initial begin
clk = 0;
end
always #5 clk = ~clk;clk = 0pada waktu 0- Setiap 5 satuan waktu,
clkberubah 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
endHasilnya sama seperti method always.
Metode 3: Ulangi dalam Siklus Tetap
reg clk;
initial begin
clk = 0;
repeat (10) begin
#5 clk = ~clk;
end
endMenghasilkan tepat 10 tepi clock (5 siklus lengkap), lalu berhenti.
Tantangan
Tambahkan kode yang hilang untuk menghasilkan clock yang berganti setiap 4 satuan waktu (periode = 8 satuan waktu).
Yang harus dilakukan:
- Inisialisasi
clkke 0 pada waktu 0 menggunakan blokinitial - Gunakan blok
alwaysdengan penundaan untuk mengganticlksetiap 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
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
1Pengantar
Apa Itu VerilogPerangkat Keras vs Perangkat LunakModul PertamamuKomentarTingkat Abstraksi Desain4Operator Bagian 1
Operator AritmetikaOperator ModuloOperator PerbandinganUlasan, Matematika SederhanaOperator Bitwise7Penugasan dan Gerbang
Penugasan KontinuPenugasan dengan OperatorPrimitif Gerbang BawaanGerbang AND, OR, NOTGerbang XOR, XNORUlasan: Rangkaian Gerbang Logika10Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Komparator SederhanaPernyataan CaseCasex dan CasezRangkuman: Desain ALU13Timing dan Penundaan
Apa Itu PenundaanPenundaan GerbangPenundaan PenugasanDirektif TimescalePembangkitan ClockRangkuman: Kontrol Timing5Operator Bagian 2
Operator LogikaOperator ReduksiOperator GeserOperator PenggabunganOperator KondisionalRangkuman, Tantangan Operator3Sistem Bilangan
Representasi BinerBilangan BerukuranBilangan Tanpa UkuranBilangan NegatifNilai Khusus X dan ZRingkasan: Format Bilangan6Modul
Struktur ModulPort Input dan OutputPort InoutInstansiasi ModulPemetaan Port Berdasarkan NamaPemetaan Port Berdasarkan UrutanRangkuman: Bangun Modul9Blok Prosedural
Blok alwaysBlok initialDaftar SensitivitasPenugasan BlockingPenugasan Non-BlockingRangkuman: always vs initial15Pengendali Lampu Lalu Lintas
Menentukan StatusLogika Mesin StatusLatihan sendiri: Compiler Verilog online