Altifigence Academy

42 / 63 · Konsep

Verifikasi pergeseran dan penyelarasan data/valid

Temukan kesalahan yang tersembunyi oleh pola simetris dan kesalahan valid yang bergeser satu siklus.

Pilih pola yang mengungkap kesalahan

Menggeser hanya 0000 atau 1111 menyembunyikan pembalikan arah. Lacak tiap posisi dengan pola asimetris seperti 1000 atau satu bit 1. Keadaan awal selalu nol juga dapat menyembunyikan sebagian kesalahan inisialisasi dan penahanan.

Pada registerRegister Rangkaian penyimpan beberapa bit keadaan. Register sinkron mata kuliah ini menangkap masukan yang ditentukan pada tepi clock. Selengkapnya tiga bit awal 000, masukan 1,0,0 memberi 001→010→100. Arah sebaliknya memberi 100→010→001, berbeda sejak tepi pertama.

Tinjau dua representasi model acuan

Qnext=(2Q+d) mod 2NQ_{next}=(2Q+d)\bmod2^N

Bandingkan model numerik dengan RTL sliceSlice Pemilihan rentang bit berurutan pada vektor. Rentang pilihan menentukan lebar dan urutan bit hasil. Selengkapnya dan konkatenasi tiap tepi diterima. Untuk N=3, delapan keadaan dan dua masukan memberi 16 transisi yang dapat diuji seluruhnya. Tambahkan kombinasi reset/enable secara terpisah.

Setiap kolom mengamati tepi naikTepi naik Saat clock berubah 0 ke 1, berbeda dari tingkat yang mencakup seluruh interval CLK=1. Selengkapnya, masukan sebelum dan keadaan after sesudah; ini bukan tundaan fisikTundaan propagasi Waktu sejak masukan berubah hingga keluaran stabil pada nilai benar. Kesetaraan logika berbeda dari karakteristik waktu. Selengkapnya. Dari q awal=000, tepi kedua enable=0 sehingga q tetap 001 walaupun din berubah. Hitung tepi dan penerimaan secara terpisah.

Tanpa enable, seluruh keadaan berhenti
Lihat data gelombang
Data gelombang: setiap karakter mewakili satu interval; titik mempertahankan keadaan sebelumnya; p adalah satu siklus clock.
SinyalGelombangNilai bus
edge2345E0 → E1 → E2 → E3
enable101.
din10.1
q sesudah2.34001 → 010 → 101

Reproduksi gelombangnya: satu tepi din=1 memberi 001; tepi berikutnya enable=0,din=0 mempertahankan 001. Aktifkan enable dan berikan 0 lalu 1: 010 lalu 101. Model hanya menangani data; kebutuhan menghentikan valid dengan enable sama dibahas di bawah.

Bedakan masukan dan nilai tersimpan saat berhenti sementara

Reset sinkron lebih diprioritaskan daripada enable. Jika enable=0, pertahankan nilai tersimpan. q=000; q_next = (2q + din) mod 8

valid merupakan bagian jalur data

Jika data berhenti tetapi valid maju, atau sebaliknya, penerima mengonsumsi sampel salah. Bit keluaran benar saja tidak membuktikan antarmuka benar.

PengujianPerilaku harapan
Masukan kontinuUrutan benar dan latensi valid tetap
enable=0 di tengahData dan valid bertahan bersama
Reset di tengahValiditas frame lama dihapus
Frame berurutanAkhir frame lama dan awal baru dibedakan

Catat nomor penerimaan agar tidak tertukar dengan nomor clock. Contoh penyangkal minimum yang mencakup batas frame lebih efektif daripada membaca ulang gelombang panjang.

Coba sendiri

Data hanya bergeser saat enable=1, tetapi valid bergeser setiap clock. Stimulus apa yang paling mudah mengungkap kesalahan?

Baca penjelasan

Sisipkan tepi berhenti enable=0 di antara dua data berbeda. valid dapat tiba lebih awal atau melekat pada data salah. Bandingkan acuan yang menerapkan kondisi penerimaan sama pada data dan metadata.

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