Memahami "Verilog default: '1"
Saya punya beberapa pertanyaan tentang fungsi kode ini dan cara kerjanya:
x <= '{default:'1} ;
- Apa tujuan dari kata kunci "default"?
- Apa tujuan dari tanda kutip tunggal dalam sebelum 1 dalam kasus ini?
- Apa tujuan dari tanda kutip tunggal dalam sebelum {dalam kasus ini?
Jawaban
Kutipan tunggal bagian dalam sebelum angka 1 adalah isian literal numerik. The '0, '1, 'z, dan 'xliteral akan diperpanjang untuk mengisi lebar konteks apa pun yang mereka digunakan dalam.
Kutipan tunggal terluar sebelum {artinya ini adalah pola tugas ke array atau struct. Pola penugasan memerlukan nilai untuk setiap elemen dari array atau struct, yang dapat diurutkan secara posisional atau dicocokkan dengan nama / indeks. Saat dicocokkan dengan nama / indeks, default:berfungsi sebagai kecocokan dengan elemen apa pun yang tidak ditentukan.
Ini semua dijelaskan di bagian 10.9 Pola penugasan di IEEE 1800-2017 SystemVerilog LRM
Sejauh yang aku tahu:
- SystemVerilog-nya
- '{} mendefinisikan struct (tanpa nama)
- default: '1, karena lebar default adalah 32bit, adalah 32x' 1 'sebagai konstanta
(jika tidak benar, mohon koreksi saya)