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:
tidaka
benar jika a adalah salah
adanb
benar jika a dan b benar
aataub
benar jika a atau b benar
adanb
benar jika a atau b salah
aataub
benar jika a dan b salah
axorb
benar jika tepat salah satu dari a atau b benar
axnorb
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:
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
Perulangan While akan terus berlanjut selama kondisinya true
Kondisi dievaluasi sebelum setiap iterasi dari While-Loop
Variabel dapat dideklarasikan dan digunakan dalam suatu proses
Ikuti Kuis VHDL Dasar – bagian 1 » atau Lanjutkan ke tutorial selanjutnya »