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

Cara menunda waktu di VHDL:Tunggu

Pada tutorial sebelumnya kita telah mempelajari bahwa sebuah proses dapat dianggap sebagai sebuah program thread. Kami juga mengetahui bahwa wait; pernyataan menyebabkan program berhenti tanpa batas. Tetapi apakah ada cara untuk membuat program menunggu nilai waktu selain selamanya?

Jika kita menghapus wait; sama sekali dan mencoba mengkompilasi program, kompiler akan mengeluh tentang infinite loop. Loop yang dirujuk oleh kompiler adalah loop proses . Sebuah utas proses dalam VHDL tidak akan pernah berhenti, ia akan terus berputar di antara begin dan end process; pernyataan. Harus ada wait pernyataan di suatu tempat di dalam loop proses.

Pos blog ini adalah bagian dari seri Tutorial VHDL Dasar.

Sedangkan wait; akan menyebabkan program berhenti selamanya, wait for pernyataan dapat digunakan untuk menunda program untuk waktu berapa pun.

Sintaks dari wait for pernyataannya adalah:
wait for <time_value> <time_unit>;
di mana <time_value> adalah angka dan <time_unit> adalah salah satu dari satuan waktu berikut:

fs femtodetik
ps pikodetik
n nanodetik
kami mikrodetik
md milidetik
dtk detik
min menit
jam jam

Olahraga

Video tutorial ini akan menunjukkan cara menggunakan wait for pernyataan untuk menjeda proses selama waktu tertentu.

Kode yang kita buat dalam tutorial ini:

entity T02_WaitForTb is
end entity;

architecture sim of T02_WaitForTb is
begin

    process is
    begin
        -- This is the start of the process "thread"
 
        report "Peekaboo!";
        
        wait for 10 ns;
        
        -- The process will loop back to the start from here
    end process;

end architecture;

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

VSIM 2> run
# ** Note: Peekaboo!
#    Time: 0 ns  Iteration: 0  Instance: /t02_waitfortb
# ** Note: Peekaboo!
#    Time: 10 ns  Iteration: 0  Instance: /t02_waitfortb
# ** Note: Peekaboo!
#    Time: 20 ns  Iteration: 0  Instance: /t02_waitfortb
...

Analisis

Dalam contoh ini kami menggunakan 10 ns , yang berarti 10 nanodetik. Saat bekerja dengan logika digital yang berjalan pada frekuensi clock MHz, Anda biasanya akan bekerja dengan peningkatan nanodetik.

Ketika kami menjalankan kode di simulator, itu dicetak "Cintip!" ke konsol setiap 10 ns. Karena ini adalah simulasi, report pernyataan membutuhkan waktu nol, dan begitu juga perulangan.

Bawa Pulang

Pergi ke tutorial berikutnya »


VHDL

  1. Memecahkan Waktu yang Tidak Diketahui
  2. Cara membuat daftar string di VHDL
  3. Cara membuat testbench berbasis Tcl untuk modul kunci kode VHDL
  4. Cara menggunakan Prosedur dalam Proses di VHDL
  5. Cara memasang simulator dan editor VHDL secara gratis
  6. Berapa detail untuk rencana kerja?
  7. Cara Mengetahui Waktunya Untuk Perawatan Rem Derek
  8. Cara Mengurangi Waktu Pelatihan untuk Pengelasan Robot
  9. Bagaimana cara mendapatkan asuransi mobil untuk pertama kalinya?
  10. Berapa Lama Waktu yang Dibutuhkan Proses Pembuatan Anda?