35 / 37 · Konsep
Kompilasi, lint dan sintesis: cakupan diagnostik
Tetapkan sumber, top dan bahasa serta bedakan sintaks, lebar, latch dan pemeriksaan fungsi.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Tetapkan tugas alat
Hasil bergantung pada sumber, top, parameter, bahasa dan versi. Kompilasi DUT beserta dependensi dan pilih testbench sebagai top terpisah. Jangan sintesis pembangkit clock testbench atau menyamakan modul tak diinstansiasi dengan modul diuji. Contoh memakai subset yang praktis untuk sintesis; simulator dan engine produk bisa mendukung bagian berbeda. .sv tidak otomatis mengaktifkan semua fitur.
Kompilasi dan simulasi memiliki cakupan berbeda
Kompilasi dapat menolak sintaks, modul hilang dan referensi invalid, tetapi tidak membuktikan aritmetika atau prioritas. Simulasi membandingkan skenario yang dijalankan; PASS berlaku pada perbandingan dan sumber itu. Untuk laboratorium:
iverilog -g2012 -s tb -o sim.vvp modulo_tick.sv tb.sv
vvp sim.vvpCatat kedua status. Menjalankan sim.vvp lama setelah kompilasi gagal dapat memberi PASS menyesatkan. Buat berkas baru tiap konfigurasi dan berhenti bila kompilasi gagal.
Periksa sebabnya
| Diagnostik | Pertanyaan |
|---|---|
| Modul hilang | Berkas dan nama benar? |
| Pemotongan | Bit, carry atau tanda mana hilang? |
| Latch disimpulkan | Jalur kombinasional mana tidak menugaskan? |
| Banyak penggerak | Siapa pemilik variabel? |
| Sinyal tak digunakan | Sengaja atau koneksi hilang? |
| Putaran kombinasional | Kembali ke masukan tanpa register? |
Jangan menonaktifkan semua peringatan demi log bersih. Perbaiki atau catat pengecualian sempit, sengaja dan diuji. Kategori berubah per versi. Referensi resmi peringatan Verilator menjelaskan WIDTH, LATCH. Bila terpasang, opsi tambahan:
verilator --lint-only --top-module periodic_accumulator modulo_tick.sv periodic_accumulator.svIni jalur saran, bukan bukti eksekusi. Bedakan perintah dijalankan dari yang diusulkan.
Sintesis adalah batas lain
Pemeriksaan generik Yosys:
yosys -p 'read_verilog -sv modulo_tick.sv periodic_accumulator.sv; hierarchy -check -top periodic_accumulator; proc; opt; check -assert; stat'Memeriksa front end dan struktur generik, bukan sumber daya FPGA tertentu, placement, routing, timing atau manufaktur. Pemetaan teknologi serta constraint membutuhkan pekerjaan lain.
Praktik: pisahkan varian rusak
Buat tiga salinan sementara: nama anak salah, jumlah sembilan bit disimpan delapan, penugasan kombinasional hilang. Lihat apa yang dideteksi alat dan apa yang memerlukan uji fungsi. Lebar bisa sengaja, latch bisa berhasil dikompilasi: bandingkan persyaratan. Simpan kegagalan relevan bersama sumber dipulihkan. Diagnostik belum dijelaskan tetap tertunda.