Dasar-dasar Perancangan RTL
Nyatakan rangkaian digital dalam SystemVerilog. Pelajari tipe, lebar, tanda, logika kombinasional dan sekuensial, modul, parameter serta generate. Periksa batas dan kegagalan dengan testbench mandiri, lalu hubungkan pulsa berkala ke akumulator dan simpan bukti yang dapat direproduksi.
Yang akan Anda pelajari
- Menentukan lebar, tanda, penggerak, waktu valid dan nilai reset tiap sinyal.
- Memisahkan penugasan kombinasional lengkap dari pembaruan keadaan berdasarkan clock.
- Membangun struktur statis dengan parameter dan generate serta memeriksa konfigurasi batas.
- Menyusun modul memakai koneksi port bernama dan fungsi.
- Menulis stimulus tanpa race serta model acuan mandiri.
- Membedakan bukti kompilasi, simulasi, sintesis dan eksekusi DDS.
Sebelum memulai
Latihan di browser memakai model pembelajaran, bukan kompilasi atau eksekusi HDL. Untuk menjalankan kode sumber secara terpisah, ikuti panduan Digital Design Studio untuk sistem operasi Anda dan masuk bila tindakan tersebut memerlukannya.
Instalasi dan penggunaan pertama ↗ · Unduhan ↗Kurikulum
- RTL dan kontrak modul
- RTL: menggambarkan rangkaian yang bekerja bersamaanKonsep
Pisahkan urutan perangkat lunak dari struktur perangkat keras paralel serta tentukan keadaan, keadaan berikutnya dan pengamatan.
- Sinyal dan port: kontrak lebar, arah, dan waktuKonsep
Baca antarmuka dan pisahkan acuan verifikasi keluaran kombinasional dari keluaran keadaan.
- Modul, port dan instans: koneksi sebagai kontrakKonsep
Susun modul kombinasional dengan koneksi bernama dan periksa penggerak tunggal serta batas hierarki.
- Pemeriksaan: keluaran kombinasional dan tersimpanKuis
Bedakan perubahan masukan dan pengamatan register.
- Tipe, lebar, tanda dan ekspresi
- logic, wire, X/Z dan lebar eksplisitKonsep
Pisahkan tipe, penggerak dan penyimpanan serta uji literal, perbandingan, perluasan dan nilai tak diketahui.
- Indeks vektor, urutan bit, dan tandaKonsep
Baca jalur data dengan memisahkan indeks, urutan transmisi serial, dan interpretasi aritmetika.
- Lebar slice, konkatenasi, dan pengulanganKonsep
Bangun jalur data dengan menghitung lebar total dan syarat pelestarian nilai.
- Komplemen dua, perluasan tanda, dan overflowKonsep
Bedakan interpretasi signed dari syarat overflow penjumlahan melalui persamaan dan contoh penyangkal.
- Pemeriksaan: rentang dan perluasan eksplisitKuis
Periksa lebar masukan dan keluaran bersama.
- RTL kombinasional lengkap dan verifikasi
- RTL kombinasional dan penugasan lengkapKonsep
Nyatakan fungsi sama dengan operator kondisional dan always_comb serta temukan kelalaian yang membentuk latch.
- Enkoder dan prioritas: memilih satu dari beberapa permintaanKonsep
Bedakan asumsi masukan enkoder one-hot dari valid dan hasil seleksi enkoder prioritas.
- Verifikasi MUX: pengujian menyeluruh dan propertiKonsep
Periksa cakupan masukan kombinasional dan penyimpanan secara terpisah, lalu minimalkan contoh penyangkal.
- Pemeriksaan desain: kesetaraan seleksi dan waktu pengamatanKuis
Bedakan verifikasi yang cukup dengan tabel kebenaran dari yang memerlukan pengamatan clock.
- Keadaan, penugasan dan prioritas reset
- Flip-flop, enable, dan prioritas kontrolKonsep
Definisikan penahanan, pemuatan, dan reset melalui keadaan berikutnya serta hindari clock gating tidak disengaja.
- Penugasan nonblocking dan pembaruan keadaan serentakKonsep
Pisahkan nilai lama dan berikutnya untuk menafsirkan RTL pipeline serta pencacah dengan tepat.
- Pencacah modulo, saturasi, dan pulsa terminalKonsep
Rancang penanganan maksimum dan siklus tepat sinyal terminal-count.
- Praktikum: verifikasi reset, perputaran, dan invarian pencacahPraktikum
Bandingkan tiap tepi dengan acuan dan pisahkan pengaruh inisialisasi, reset, serta lebar bit.
- Pemeriksaan: lebar, prioritas, dan batas perputaranKuis
Periksa nilai batas dan kontrol yang aktif bersamaan berdasarkan kontrak transisi keadaan.
- Parameter dan pembentukan struktur statis
- parameter, localparam, $clog2 dan konfigurasi batasKonsep
Pisahkan masukan saat eksekusi dari konfigurasi serta rancang lebar dan akhir untuk N=1 dan nilai bukan pangkat dua.
- generate: membangun rangkaian statis dengan perulanganKonsep
Gunakan genvar dan generate-if untuk hierarki bernama dan periksa susunan lane.
- function automatic dan ekspresi pakai ulangKonsep
Tulis fungsi tanpa waktu simulasi serta periksa lebar, tanda dan kemandirian acuan.
- Pemeriksaan: N=1 dan lebarKuis
Pisahkan lebar minimum dan keadaan valid.
- Testbench dan verifikasi mandiri
- Waktu sampling dan hubungan sebab pada gelombangKonsep
Baca gelombang dengan memisahkan stabilisasi kombinasional, penangkapan clock, dan urutan kejadian.
- Praktik: testbench yang melaporkan kegagalannya sendiriPraktikum
Pisahkan DUT, stimulus, acuan dan pemeriksaan untuk reset, enable dan putaran tanpa race.
- Rencana verifikasi, cakupan, dan model acuan independenKonsep
Bedakan tes lolos dari kontrak terpenuhi dan masukkan batas, persilangan, serta contoh minimum.
- Debug pencacah dan contoh penyangkal minimumKonsep
Rancang pengujian singkat yang membedakan kesalahan reset, enable, dan batas perputaran.
- Pemeriksaan: acuan dan raceKuis
Pilih harapan mandiri dan pengamatan setelah pembaruan.
- Penyusunan modul dan praktik terpadu
- Mesin keadaan: memisahkan keadaan, transisi, dan keluaranKonsep
Bangun FSM dari tabel spesifikasi dan bandingkan Moore/Mealy, keadaan ilegal, serta kebijakan permintaan.
- Proyek terpadu: detektor 101 bertumpang tindihKonsep
Terapkan pengurangan keadaan, validitas masukan, keluaran berregister, dan verifikasi independen dalam satu desain.
- Ready/valid dan buffer elastis satu tempatKonsep
Rancang transfer tanpa kehilangan/duplikasi dan masukan/keluaran bersamaan pada jalur yang dapat berhenti.
- Pipeline perkalian-penjumlahan dan penyelarasan dataKonsep
Bagi operasi dengan register dan selaraskan data, valid, serta operand tambahan per transaksi.
- Praktik terpadu: pulsa berkala dan akumulator diaktifkanPraktikum
Tetapkan transfer dengan nilai lama dan uji jeda, pulsa berurutan serta reset bersamaan.
- Diagnostik alat dan cakupan hasil
- Setup, hold, dan anggaran timingKonsep
Pisahkan jalur maksimum dan minimum serta hitung hold yang berbeda dari frekuensi clock.
- Batas domain clock dan metastabilitasKonsep
Pahami cakupan sinkroniser dua tahap dan bedakan level satu bit, pulsa singkat, serta transfer multibit.
- Kompilasi, lint dan sintesis: cakupan diagnostikKonsep
Tetapkan sumber, top dan bahasa serta bedakan sintaks, lebar, latch dan pemeriksaan fungsi.
- Catatan eksekusi dan melanjutkan praktik DDSKonsep
Sertakan sumber, masukan, harapan, kegagalan dan versi agar praktik dapat diulang.
- Pemeriksaan akhir: fungsi dan buktiKuis
Pisahkan hasil lokal dari penerimaan praktik DDS gratis.