Pada tutorial sebelumnya kita belajar membuat infinite loop dengan menggunakan loop penyataan. Kami juga mempelajari cara keluar dari loop dengan menggunakan exit penyataan. Tetapi bagaimana jika kita ingin loop berulang beberapa kali? For-Loop adalah cara termudah untuk melakukannya.
For-Loop memungkinkan Anda untuk melakukan iterasi pada rentang bilangan bulat atau item enumerated yang tetap. Item yang termasuk dalam iterasi saat ini akan tersedia dalam loop melalui konstanta yang dideklarasikan secara implisit.
Pos blog ini adalah bagian dari seri Tutorial VHDL Dasar.
Sintaks For-Loop adalah:
for <c> in <r> loop
end loop;
<c> adalah nama arbitrer untuk konstanta yang akan tersedia di dalam loop. <r> adalah rentang bilangan bulat atau nilai enumerasi yang akan diulangi oleh loop. Rentang bilangan bulat dapat berupa penambahan atau pengurangan.
Kode VHDL untuk rentang peningkatan termasuk semua 10 angka dari 0 hingga 9:
0 to 9
Kode VHDL untuk rentang penurunan termasuk semua 10 angka dari 9 hingga 0:
9 downto 0
Kode VHDL untuk rentang yang hanya menyertakan angka 0:
0 to 0
Kode VHDL untuk rentang kosong yang tidak memiliki angka sama sekali:
0 to -1
Olahraga
Kode terakhir yang kita buat dalam tutorial ini:
entity T04_ForLoopTb is
end entity;
architecture sim of T04_ForLoopTb is
begin
process is
begin
for i in 1 to 10 loop
report "i=" & integer'image(i);
end loop;
wait;
end process;
end architecture;
Output ke konsol simulator saat kita menekan tombol run di ModelSim:
Tidak sepenuhnya tidak terduga, For-Loop kami berulang sepuluh kali sebelum diakhiri. Nilai i dicetak ke konsol simulator sepuluh kali pada waktu simulasi 0. Tidak ada pernyataan tunggu di dalam loop, dan oleh karena itu loop membutuhkan waktu nol untuk diselesaikan. Akhirnya, program masuk ke jeda tak terbatas pada wait; .
Kami mempelajari cara mengonversi bilangan bulat menjadi string dengan menggunakan integer'image() , dan kami menggunakan & karakter untuk menggabungkan dua string bersama.
Bawa Pulang
For-Loop dapat melakukan iterasi pada rentang bilangan bulat yang bertambah atau berkurang
Rentang yang bertambah dilambangkan dengan to , dan rentang penurunan sebesar downto
Integer dapat dikonversi menjadi string dengan menggunakan integer'image()
Dua string dapat digabungkan dengan menggunakan karakter rangkaian string &