Altifigence Academy

30 / 63 · Konsep

Keadaan berikutnya pencacah dan prioritas reset

Satukan kenaikan, penahanan, reset, dan perputaran, lalu hitung hasil tiap tepi.

Definisikan fungsi melalui keadaan berikutnya dahulu

Pencacah bebas NN bit dengan reset sinkron dan enable adalah:

Ck+1={0rk=1(Ck+1) mod 2Nrk=0, ek=1Ckrk=0, ek=0C_{k+1}=\begin{cases} 0&r_k=1\\ (C_k+1)\bmod2^N&r_k=0,\ e_k=1\\ C_k&r_k=0,\ e_k=0 \end{cases}

ResetReset Kontrol yang mengembalikan keadaan ke nilai awal tertentu. Sifat sinkron/asinkron dan prioritas terhadap kontrol lain harus ditetapkan. paling diprioritaskan; enable=0 mempertahankan keadaan. Pada visualisasi di bawah, ubah enable untuk membandingkan kenaikan dan penahanan nilai.

Dari q awal=11, memilih reset=1 hanya mengubah keadaan berikutnya menjadi 00. Majukan clock untuk melihat kapan nilai tersimpan berubah. Lepas reset dan ikuti 00→01→10→11→00; saat enable=0, pastikan tepi clock terus terjadi tetapi q bertahan.

Bandingkan keadaan sebelum dan sesudah tepi naik

Reset sinkron lebih diprioritaskan daripada enable. Jika enable=0, pertahankan nilai tersimpan. q=11; q_next = (q + 1) mod 4

Prediksi setiap tepi

Dengan keadaan awal 3, reset=1 pada tepi pertama lalu 0, hasil setelah tepi adalah 0,1,2,3,0. Walaupun reset diaktifkan di antara tepi, registerRegister Rangkaian penyimpan beberapa bit keadaan. Register sinkron mata kuliah ini menangkap masukan yang ditentukan pada tepi clock. Selengkapnya sinkron tidak langsung menjadi 0 sebelum tepi naikTepi naik Saat clock berubah 0 ke 1, berbeda dari tingkat yang mencakup seluruh interval CLK=1. Selengkapnya.

Tepireset sebelum tepiC lamaC baru
1130
2001
3012
4023
5030

Setiap kolom gelombang mengamati satu tepi. Masukan menunjukkan nilai sebelum tepi; keadaan dengan akhiran after menunjukkan nilai sesudah pembaruan. Penjajaran menunjukkan urutan sampel, bukan tundaan propagasiTundaan propagasi Waktu sejak masukan berubah hingga keluaran stabil pada nilai benar. Kesetaraan logika berbeda dari karakteristik waktu. Selengkapnya fisik. Dari 3, reset pertama mengalahkan kenaikan; tepi terakhir berputar dari 3 ke 0.

Reset dan putaran pencacah 2 bit
Lihat data gelombang
Data gelombang: setiap karakter mewakili satu interval; titik mempertahankan keadaan sebelumnya; p adalah satu siklus clock.
SinyalGelombangNilai bus
edge23452E0 → E1 → E2 → E3 → E4
reset10...
count sebelum2345211 → 00 → 01 → 10 → 11
count sesudah2345200 → 01 → 10 → 11 → 00

Jangan mencampur jenis reset

if(rst) dalam always_ff @(posedge clk) adalah reset sinkron, berbeda dari reset yang tepinya ditambahkan pada daftar kejadian. Pelepasan reset asinkron memiliki syarat recovery/removal; jangan menggantinya hanya agar lebih cepat menjadi 0.

Untuk pulsa berkala, tetapkan keadaan pemicunya: apakah tinggi selama count maksimum, atau satu siklus setelah tepi kembali ke 0? Persamaan dan waktu pengamatannya berbeda.

Coba sendiri

Pencacah tiga bit bernilai 7. Tepi pertama rst=0,en=0, berikutnya rst=0,en=1. Berapa masing-masing keadaannya?

Baca penjelasan

Tepi pertama mempertahankan 7; tepi kedua berputar dalam tiga bit menjadi 0. Menyimpan nilai 8 membutuhkan lebar lebih besar atau kebijakan saturasi/kesalahan tersendiri.

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