Memahami "Verilog default: '1"

Sep 09 2020

Saya punya beberapa pertanyaan tentang fungsi kode ini dan cara kerjanya:

x <= '{default:'1} ;
  1. Apa tujuan dari kata kunci "default"?
  2. Apa tujuan dari tanda kutip tunggal dalam sebelum 1 dalam kasus ini?
  3. Apa tujuan dari tanda kutip tunggal dalam sebelum {dalam kasus ini?

Jawaban

3 dave_59 Sep 09 2020 at 22:02

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

schnedan Sep 09 2020 at 21:44

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)