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

Cara menggunakan Loop Sementara di VHDL

Dalam tutorial sebelumnya, kita belajar bagaimana menggunakan For-Loop untuk melakukan iterasi pada rentang integer. Tetapi bagaimana jika kita menginginkan kontrol loop yang lebih rinci daripada sekadar rentang bilangan bulat tetap? Kita bisa menggunakan While-Loop untuk ini.

While-Loop akan terus mengulangi kode terlampir selama ekspresi yang diuji untuk mengevaluasi ke true . Oleh karena itu, While-Loop cocok untuk situasi di mana Anda tidak tahu persis berapa banyak iterasi yang diperlukan sebelumnya.

Pos blog ini adalah bagian dari seri Tutorial VHDL Dasar.

Sintaks dari While-Loop adalah:

while <condition> loop
end loop;

<condition> adalah true boolean atau false . Itu juga bisa menjadi ekspresi yang mengevaluasi ke true atau false . Kondisi dievaluasi sebelum setiap iterasi dari loop, dan loop hanya akan berlanjut jika kondisinya true .

Contoh ekspresi yaitu true jika i kurang dari 10:

i < 10

Contoh ekspresi yaitu true jika i bukan 10:

i /= 10

Contoh ekspresi yang true jika i lebih besar dari atau sama dengan 0, dan kurang dari 2 8 =256:

i >= 0 and i < 2**8;

Operator relasional:

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

Operator logika:

tidak a benar jika a adalah salah
a dan b benar jika a dan b benar
a atau b benar jika a atau b benar
a dan b benar jika a atau b salah
a atau b benar jika a dan b salah
a xor b benar jika tepat salah satu dari a atau b benar
a xnor b benar jika a dan b sama

Olahraga

Dalam tutorial video ini, kita belajar menggunakan variabel untuk mengontrol While-Loop:

Kode terakhir yang kita buat dalam tutorial ini:

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;

Output ke konsol simulator saat kita menekan tombol run di ModelSim:

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 membuat variabel integer i dan memberikan nilai awal 0. Kami menggunakan ekspresi di While-Loop yang bernilai true selama i kurang dari 10. Karena kami menambahkan i dengan 2 di setiap iterasi, angka terakhir yang dicetak adalah 8.

Pada iterasi berikutnya, i < 10 dievaluasi menjadi false karena 10 tidak kurang dari 10. Setelah loop dihentikan, program menekan tombol wait; di mana ia berhenti tanpa batas.

Bawa Pulang

Ikuti Kuis VHDL Dasar – bagian 1 »
atau
Lanjutkan ke tutorial selanjutnya »


VHDL

  1. Bagaimana Kami Menggunakan Molibdenum?
  2. Cara membuat daftar string di VHDL
  3. Bagaimana menghentikan simulasi di testbench VHDL
  4. Cara membuat pengontrol PWM di VHDL
  5. Cara menghasilkan angka acak di VHDL
  6. Cara menggunakan Prosedur dalam Proses di VHDL
  7. Cara menggunakan Fungsi Tidak Murni di VHDL
  8. Cara menggunakan Fungsi di VHDL
  9. Cara membuat Mesin Finite-State di VHDL
  10. Cara Menggunakan Penggiling Pemotong