Altifigence Academy

23 / 37 · Konsep

Waktu sampling dan hubungan sebab pada gelombang

Baca gelombang dengan memisahkan stabilisasi kombinasional, penangkapan clock, dan urutan kejadian.

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.

Pisahkan pemberian stimulus dan saat pengamatan
  1. Penggerakan masukan: Ubah a, b, dan sel
  2. Evaluasi kombinasional: y = sel ? b : a
  3. Tepi naik: Tangkap y tepat sebelum tepi
  4. Amati setelah pembaruan: Bandingkan sampled_y

Hitung acuan independen dahulu

yk=sk‾ak+skbk,qk+1=yky_k=\overline{s_k}a_k+s_kb_k,\qquad q_{k+1}=y_k

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.

Pilihan berlaku di peramban ini. Ubah kapan saja di bagian bawah halaman.