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

Cara menggunakan For-Loop di VHDL

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:

VSIM 2> run
# ** Note: i=1
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=2
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=3
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=4
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=5
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=6
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=7
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=8
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=9
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=10
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb

Analisis

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

Pergi ke tutorial berikutnya »


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