Prioritas Reset dan Enable
Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 16 dari 38.
Blok clocked dapat menyimpan nilai dalam register dengan tidak menyertakan assignment pada tepi clock yang dinonaktifkan. Penyimpanan yang disengaja ini berbeda dari latch kombinasi yang tidak disengaja. Tulis prioritas yang jelas antara reset, load, dan enable. Reset di sini bersifat sinkron: reset hanya berlaku pada tepi naik clock.
Cuplikan yang relevan; deklarasi dan koneksi di sekitarnya disediakan dalam tantangan.
always @(posedge clk) begin
if(rst) q <= 0;
else if(en) q <= data;
endReset menjadi prioritas saat kedua kontrol diaktifkan, dan tepi selain reset saat enable nonaktif mempertahankan q.
Gunakan satu rantai prioritas yang dikendalikan oleh clock, lalu tentukan perilaku reset, load, enable, dan hold secara tepat.
Tantangan
SedangImplementasikan register 8-bit q dengan reset sinkron aktif-tinggi rst dan enable en. Pada tepi naik, reset diprioritaskan dan mengosongkan q; jika tidak, tepi yang diaktifkan akan memuat a, sedangkan tepi yang dinonaktifkan mempertahankan q. Kolom output: q. 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 dikunci menyediakan 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 dalam desain. 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 en, input [7:0] a, output reg [7:0] q);
// Ganti placeholder ini dengan desainmu.
initial q = 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