2 / 37 · Konsep
Sinyal dan port: kontrak lebar, arah, dan waktu
Baca antarmuka dan pisahkan acuan verifikasi keluaran kombinasional dari keluaran keadaan.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Membaca daftar port sebagai kontrak rangkaian
input logic [7:0] data adalah port yang membawa delapan bit bersamaan, bukan delapan nilai yang tiba berurutan. Tipe logic saja tidak menciptakan penyimpanan. Perilaku perangkat keras ditentukan oleh penugasan kombinasional atau blok sekuensial berbasis tepi yang menggerakkannya.
Selain lebar dan arah, periksa kapan sinyal valid, siapa penggeraknya, dan nilainya setelah reset. Tanpa informasi ini, modul yang benar sendiri-sendiri dapat membentuk sistem yang salah.
Dua jenis keluaran pada MUX yang sama
Praktikum mengamati hasil pilihan y bersama nilai tersimpannya sampled_y.
Persamaan pertama menyatakan fungsi kombinasional; persamaan kedua adalah model sinkron ideal yang menyimpan y stabil tepat sebelum tepi. Membandingkan kedua keluaran tanpa syarat dengan masukan pada saat yang sama dapat menyatakan registerRegister Rangkaian penyimpan beberapa bit keadaan. Register sinkron mata kuliah ini menangkap masukan yang ditentukan pada tepi clock. Selengkapnya yang benar sebagai salah.
assign y = sel ? b : a;
always_ff @(posedge clk) sampled_y <= y;Simulator memiliki urutan pemrosesan kejadian bahkan pada nilai waktu yang sama. Komponen nyata memiliki syarat setupSetup Waktu minimum data harus stabil sebelum tepi tangkap. Jika dilanggar, hasil tersimpan tidak dijamin. Selengkapnya/hold dan tundaan clock-to-Q. Kedua persamaan tidak menghapus perbedaan ini; keduanya menjadi dasar penentuan waktu pengamatan pada verifikasi fungsi.
Panah menunjukkan ketergantungan data. Jika a, b, atau sel berubah, y berubah dahulu; sampled_y hanya menyimpan nilai baru pada tepi naikTepi naik Saat clock berubah 0 ke 1, berbeda dari tingkat yang mencakup seluruh interval CLK=1. Selengkapnya.
- a · b · sel: Masukan bersamaan
- MUX → y: Hitung dengan seleksi saat ini
- DFF → sampled_y: Simpan y pada tepi naik
Pertanyaan peninjauan
- Apakah sel masukan 0/1 yang pasti atau sinyal eksternal asinkron?
- Setelah y berubah, apakah perbandingan dengan sampled_y dilakukan setelah tepi valid berikutnya?
- Apakah nilai awal sampled_y ditentukan resetReset Kontrol yang mengembalikan keadaan ke nilai awal tertentu. Sifat sinkron/asinkron dan prioritas terhadap kontrol lain harus ditetapkan. Selengkapnya atau pengaturan inisialisasi alat?
Nilai awal eksplisit pada praktikum membuat model 0/1 dapat direproduksi. Pengaturan itu tidak menjamin perilaku penyalaan daya chip nyata.
Coba sendiri
a berubah dari 0 ke 1 di antara tepi clock sementara sel tetap 0. Kapan y dan sampled_y masing-masing berubah?
Baca penjelasan
y berubah setelah evaluasi atau propagasi jalur kombinasional. sampled_y diperbarui pada tepi naik berikutnya yang menangkap nilai itu. Perubahan dekat tepi menimbulkan masalah setup/hold nyata, sehingga model sederhana ini tidak cukup untuk menyimpulkan keamanan operasi.