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

Menguasai While Loop dalam VHDL: Kontrol Iterasi Dinamis

Membangun pada eksplorasi kami sebelumnya tentang for loops, tutorial ini membahas while loop—konstruksi canggih yang memungkinkan Anda mengontrol iterasi berdasarkan kondisi dinamis daripada rentang yang ditentukan sebelumnya.

while loop mengeksekusi tubuhnya berulang kali selama kondisi yang ditentukan tetap true. Ini membuatnya ideal untuk skenario di mana jumlah iterasi bergantung pada data runtime atau logika kompleks.

Postingan ini adalah bagian dari seri Tutorial Dasar VHDL.

Sintaks

while <condition> loop -- loop body end loop;

Kondisi <condition> harus mengevaluasi ke nilai boolean. Ini dapat berupa perbandingan sederhana atau ekspresi yang lebih rumit. Kondisi diperiksa sebelum setiap putaran, memastikan loop hanya melanjutkan saat tetap true.

Contoh Kondisi

Operator Relasional

=sama dengan
/=tidak sama dengan
<kurang dari
<=kurang dari atau sama dengan
>lebih dari
>=lebih dari atau sama dengan

Operator Logika

not abenar jika a salah
a and bbenar jika a dan b benar
a or bbenar jika a atau b benar
a nand bbenar jika a atau b salah
a nor bbenar jika a dan b salah
a xor bbenar jika tepat satu dari a atau b benar
a xnor bbenar jika a dan b sama

Latihan

Tonton video tutorial di bawah ini untuk melihat bagaimana variabel dapat mendorong while loop dalam praktik:

Kode Contoh

entity T05_WhileLoopTb is end entity; architecture sim of T05_WhileLoopTb is begin process is variable i : integer := 0; begin while i < 10 loop report "i=" & integer'image(i); i := i + 2; end loop; wait; end process; end architecture;

Keluaran Simulator

VSIM 2> run # ** Note: i=0 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=2 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=4 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=6 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=8 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb

Analisis

Kami menginisialisasi i ke 0 dan menggunakan i < 10 sebagai penahan loop. Karena loop meningkatkan i sebesar 2 setiap siklus, nilai terakhir yang dicetak adalah 8. Pada putaran berikutnya, kondisi mengevaluasi ke salah (10 tidak kurang dari 10), dan loop keluar. Pernyataan wait; berikutnya menangguhkan proses tak terbatas, pola umum untuk testbench.

Menguasai While Loop dalam VHDL: Kontrol Iterasi Dinamis

Poin Utama

Ikuti Kuis Dasar VHDL – bagian 1 atau lanjutkan ke tutorial berikutnya.

VHDL

  1. Bagaimana Molibdenum Mengubah Industri Modern: Penggunaan, Manfaat, dan Dinamika Pasokan
  2. Membuat Daftar String dalam VHDL: Praktik Terbaik & Contoh
  3. Mengakhiri Simulasi Testbench VHDL dengan Elegan
  4. Implementasi Pengontrol PWM dalam VHDL: Desain, Simulasi, dan Demo FPGA
  5. Menghasilkan Angka Acak dalam VHDL: Dari Uniform hingga OSVVM
  6. Memanfaatkan Prosedur Dalam Proses untuk Desain FSM VHDL yang Lebih Bersih
  7. Menggunakan Fungsi Tidak Murni di VHDL: Meningkatkan Keterbacaan dan Pemeliharaan FSM
  8. Menguasai Fungsi VHDL: Panduan Praktis untuk Desain Efisien
  9. Mendesain Mesin Status Terbatas dalam VHDL: Contoh Praktis Pengatur Lampu Lalu Lintas
  10. Menguasai Teknik Mesin Gerinda Cutter: Panduan Praktis