23 / 37 · Konsep
Waktu sampling dan hubungan sebab pada gelombang
Baca gelombang dengan memisahkan stabilisasi kombinasional, penangkapan clock, dan urutan kejadian.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Satu nilai waktu tetap memiliki urutan
Sinyal yang tampak berubah pada timestamp sama tidak berubah serentak tanpa sebab. Pada simulator RTL berbasis kejadian, kejadian aktif dan pembaruan nonblockingNonblocking Penugasan <= pada RTL sekuensial: sisi kanan dievaluasi lalu pembaruan dijadwalkan, sehingga register pada tepi sama menghitung dari keadaan lama. Selengkapnya diproses sebelum nilai stabil. Perangkat nyata berubah setelah clock-to-Q dan tundaan propagasiTundaan propagasi Waktu sejak masukan berubah hingga keluaran stabil pada nilai benar. Kesetaraan logika berbeda dari karakteristik waktu. Selengkapnya kombinasional. Bedakan kedua model.
Buat prediksi dengan urutan penerapan masukan → evaluasi kombinasional → tangkap tepi naikTepi naik Saat clock berubah 0 ke 1, berbeda dari tingkat yang mencakup seluruh interval CLK=1. Selengkapnya → pembaruan keadaan. Periksa kapan alat menerapkan masukan dan merekam hasil.
Jadwal kejadian serta perekaman simulator nyata harus dipastikan. Empat tahap berikut memisahkan langkah prediksi, bukan berarti empat periode clock.
- Penggerakan masukan: Ubah a, b, dan sel
- Evaluasi kombinasional: y = sel ? b : a
- Tepi naik: Tangkap y tepat sebelum tepi
- Amati setelah pembaruan: Bandingkan sampled_y
Hitung acuan independen dahulu
Hitung y setiap kelompok masukan dan buat kolom terpisah untuk tepi ketika q menerimanya. Baris perbedaan pertama antara hasil nyata dan harapan membantu melokalisasi sebab: penerapan masukan, fungsi seleksi, atau penyimpanan.
Bedakan transisi dan keadaan stabil
Jika kedua data sama saat seleksi berubah, keluaran akhirnya harus sama, tetapi perbedaan tundaan internal dapat menghasilkan glitch singkat. Sebaliknya, transisi normal menuju nilai lain tidak otomatis disebut glitch. Perbandingan gelombang logika dan analisis timing fisik menjawab pertanyaan berbeda.
Pada testbench umum, mengganti stimulus pada tepi naik yang sama dengan DUT lalu langsung membaca nilai dapat menimbulkan race. Pisahkan waktu penggerakan dan pengamatan, atau gunakan sinkronisasi jelas seperti clocking block. Praktikum DDS memakai JSON masukan dan aturan satu clock alat; jangan menambahkan testbench #delay sembarangan.
Coba sendiri
Jika y dan sampled_y sama-sama 1 di akhir, dapatkah disimpulkan bahwa semua siklus sebelumnya benar?
Baca penjelasan
Tidak. Seleksi terbalik atau penyimpanan terlambat satu siklus dapat memberi hasil akhir sama jika a=b=1. Bandingkan nilai harapan di setiap tepi dan sertakan perubahan sel saat a dan b berbeda.