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:
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
Utas proses akan berhenti pada wait for untuk waktu yang ditentukan secara tepat
Semua pernyataan selain wait pernyataan membutuhkan waktu simulasi nol