Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Verilog

Blok Awal Verilog: Tujuan, Sintaks, dan Penggunaan yang Tidak Dapat Disintesis

Kumpulan pernyataan Verilog biasanya dieksekusi secara berurutan dalam simulasi. Pernyataan ini ditempatkan dalam blok prosedural. Terdapat terutama dua jenis blok prosedural dalam Verilog - initial dan always

Sintaks

  initial [single statement] initial begin [multiple statements] end  

Blok initial digunakan untuk apa?

Sebuah blok initial tidak dapat disintesis dan oleh karena itu tidak dapat dikonversi menjadi skema hardware dengan elemen digital. Oleh karena itu blok initial tidak memiliki kegunaan yang besar selain untuk digunakan dalam simulasi. Blok ini terutama digunakan untuk menginisialisasi variabel dan menggerakkan port desain dengan nilai tertentu.

Kapan blok initial dimulai dan berakhir?

Sebuah blok initial dimulai pada awal simulasi pada waktu 0 unit. Blok ini akan dieksekusi hanya sekali selama seluruh simulasi. Eksekusi blok initial selesai setelah semua pernyataan dalam blok dieksekusi.

Gambar yang ditampilkan di atas memiliki module bernama behave yang memiliki dua sinyal internal bernama a dan b. Blok initial hanya memiliki satu pernyataan dan oleh karena itu tidak perlu menempatkan pernyataan di dalam begin dan end. Pernyataan ini menugaskan nilai 2'b10 ke a saat blok initial dimulai pada waktu 0 unit.

Apa yang terjadi jika ada elemen keterlambatan?

Kode yang ditunjukkan di bawah ini memiliki pernyataan tambahan yang menugaskan beberapa nilai ke sinyal b. Namun ini hanya terjadi setelah 10 unit waktu dari eksekusi pernyataan sebelumnya. Ini berarti a ditugaskan pertama dengan nilai yang diberikan dan kemudian setelah 10 unit waktu, b ditugaskan ke 0.

Berapa banyak blok initial yang diizinkan dalam sebuah modul?

Tidak ada batasan pada jumlah blok initial yang dapat didefinisikan di dalam sebuah modul.

Kode yang ditunjukkan di bawah ini memiliki tiga blok initial semuanya dimulai pada waktu yang sama dan berjalan secara paralel. Namun, tergantung pada pernyataan dan keterlambatan di dalam setiap blok initial, waktu yang dibutuhkan untuk menyelesaikan blok dapat bervariasi.

Dalam contoh ini, blok pertama memiliki keterlambatan 20 unit, sementara blok kedua memiliki total keterlambatan 50 unit (10 + 40) dan blok terakhir memiliki keterlambatan 60 unit. Oleh karena itu simulasi memakan waktu 60 unit waktu untuk selesai karena setidaknya ada satu blok initial yang masih berjalan hingga 60 unit waktu.

$finish adalah tugas sistem Verilog yang memberitahu simulator untuk mengakhiri simulasi saat ini.

Jika blok terakhir memiliki keterlambatan 30 unit waktu seperti yang ditunjukkan di bawah ini, simulasi akan berakhir pada 30 unit waktu sehingga membunuh semua blok initial lain yang aktif pada waktu tersebut.

  initial begin #30 $finish; end  

Periksa contoh flash yang ditunjukkan di bawah ini untuk melihat bagaimana blok initial dieksekusi dalam simulasi.

Klik di sini untuk slideshow dengan contoh simulasi !


Verilog

  1. Menguasai Verilog: Tutorial Lengkap untuk Desain Sirkuit Digital
  2. Menguasai Konkatenasi Verilog: Panduan Praktis
  3. Dasar-dasar Verilog: Ringkasan Ringkas
  4. Memahami Penugasan Verilog: Jenis, Sintaks, dan Praktik Terbaik
  5. Perbedaan Kunci Penugasan Blokir dan Non-Blokir Verilog
  6. Menguasai Fungsi Verilog untuk Desain RTL yang Efisien
  7. Memahami Tugas Verilog: Fungsi vs Tugas, Sintaks, dan Penggunaan
  8. Generator Jam Verilog: Panduan Desain dan Implementasi
  9. Menguasai Fungsi Matematika Verilog untuk Desain Perangkat Keras yang Efisien
  10. Menguasai $timeformat Verilog: Kontrol Presisi dan Tampilan