Mendeteksi Tepi pada Sampel
Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 19 dari 38.
Suatu level dapat tetap tinggi selama banyak siklus, sedangkan pulsa peristiwa seharusnya berlangsung selama satu siklus. Simpan level sampel sebelumnya, lalu bandingkan dengan level saat ini. Detektor tepi ini mengasumsikan input sudah sinkron dengan clock ini; detektor ini bukan sinkronisator lintas domain clock.
Kutipan yang relevan; deklarasi dan koneksi di sekitarnya disertakan dalam tantangan.
previous <= sig;
rising <= sig & ~previous;Level lama yang tersimpan menghasilkan satu pulsa pada transisi yang disampling.
Bandingkan level saat ini dan sebelumnya yang disampel. Gunakan detektor ini hanya dengan input sinkron.
Tantangan
SedangUntuk sinyal sig yang sudah sinkron dengan clk, hasilkan pulsa satu siklus yang terdaftar pada setiap transisi 0 ke 1 yang tersampel. rst sinkron menghapus level sebelumnya yang tersimpan dan pulsa. Karena itu, sig bernilai tinggi pada tepi pertama yang tidak sedang reset akan menghasilkan pulsa. Kolom output: pulse. Semua kontrol dan data stabil sebelum setiap tepi naik clock; hasil diamati setelahnya.
Lengkapi design.v dan pertahankan nama module serta port-nya. testbench.v yang terkunci memberikan perubahan input dan mencetak output setelah stabil. Testbench memilih skenario menggunakan argumen simulator seperti +CASE=1; input standar tidak diperlukan. Jangan tambahkan pencetakan, penundaan, atau penghentian simulasi ke design. Output yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan dengan satu spasi dan diakhiri dengan baris baru.
Coba sendiri
module dut (input clk, input rst, input sig, output reg pulse);
// Ganti placeholder ini dengan desainmu.
initial pulse = 0;
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Desain dan Verifikasi RTL
1RTL Kombinasional yang Andal
Nilai Default Mencegah LatchEncoder PrioritasValidasi One-HotDekode Case yang AmanRangkuman: Router Permintaan4RTL Sekuensial Terkendali
Prioritas Reset dan EnablePencacah SaturasiPipeline Data dan ValidMendeteksi Tepi pada SampelRingkasan: Pencacah Peristiwa2Lebar Bit dan Aritmetika Bertanda
Mempertahankan Bit CarryPerbandingan BertandaPergeseran Kanan AritmetikaOverflow dan SaturasiRangkuman, Selisih Bertanda3RTL yang Dapat Digunakan Kembali
Fungsi KombinasionalParameter yang Aman terhadap LebarGenerate loopGenerate dengan KondisiRingkasan: Masker Bit yang Dapat Digunakan Kembali6Testbench dengan Pemeriksaan Mandiri
Pemeriksaan Empat KeadaanTask Checker yang Dapat Digunakan UlangModel Referensi dan SkorCakupan Batas dan KontrolRangkuman: Audit PenjumlahLatihan sendiri: Compiler Verilog online