Pemeriksaan Empat Keadaan
Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 26 dari 38.
testbench harus menangani nilai yang tidak diketahui secara sengaja. Kesetaraan biasa dapat menghasilkan X, yang dapat menyembunyikan kegagalan dalam kondisi if. Kesetaraan dan ketidaksetaraan case, === dan !==, membandingkan keempat nilai secara literal dan menghasilkan Boolean yang diketahui. XOR reduksi yang diikuti perbandingan case dengan X dapat mendeteksi bit yang tidak diketahui. Gunakan ini sebagai pemeriksaan simulasi, bukan sebagai model perangkat keras yang mendeteksi nilai X fisik.
Kutipan yang relevan; deklarasi dan koneksi di sekitarnya disediakan dalam tantangan.
if(actual !== expected) errors = errors + 1;Perbedaan yang melibatkan X atau Z dihitung, alih-alih menghilang karena kondisi yang tidak diketahui.
Gunakan perbandingan empat keadaan secara eksplisit dalam pemeriksa simulasi dan tentukan cara menangani nilai yang tidak diketahui.
Tantangan
SedangIni adalah pemeriksa khusus simulasi, bukan logika datapath yang dapat disintesis. Tetapkan mismatch saat actual dan expected berbeda dalam perbandingan empat keadaan. Jika keduanya memiliki X atau Z yang sama pada posisi yang sama, keduanya dianggap sama. Hasilnya harus always berupa 0 atau 1 yang diketahui. Kolom keluaran: mismatch. Semua nilai stimulus adalah nilai biner yang diketahui.
Lengkapi design.v dan pertahankan nama module serta port-nya. testbench.v yang dikunci menyediakan perubahan input dan mencetak keluaran setelah nilainya stabil. File tersebut memilih skenario menggunakan argumen simulator seperti +CASE=1; input standar tidak diperlukan. Jangan tambahkan pencetakan, jeda, atau penghentian simulasi ke dalam desain. Keluaran yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan dengan satu spasi dan diakhiri dengan baris baru.
Coba sendiri
module dut (input [3:0] actual, input [3:0] expected, output mismatch);
// Ganti placeholder ini dengan rancanganmu.
assign mismatch = 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 Permintaan2Lebar 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