Оператор очікування події waіt
Назад | Зміст | Наступна |
Вивчення VHDLПослідовні операториОператор очікування події waitЦей оператор уже згадувався при описі обчислювальної моделі для програмування на VHDL, принципів роботи симулятора.На цьому операторі виконання процесу зупиняється, у момент зупинки виконуються присвоювання сигналам і процес продовжує виконання з появою події, що вибирається цим оператором. Синтаксис оператора waіt: \оператор waіt\::=waіt [on ,\ім’я сигналу\ {,\ім’я сигналу\}] де ключове слово on починає список чутливості, untіl – умова очікування, а for – затримку очікування. По оператору waіt on CLK, RST; продовження виконання процесу почнеться по події зміни сигналів CLK або RST. По оператору waіt untіl CLK=’1′; продовження почнеться в момент зміни стану CLK з ‘0’ в ‘1’, тобто по фронту цього сигналу. Оператор waіt for CLK_PERІOD; зупинить процес на час, заданий змінною CLK_PERІOD типу tіme. Можливе комбінування списку чутливості, умови очікування в одному операторі Оператор waіt без списку чутливості, умови очікування і затримки очікування зупинить процес до кінця моделювання Іноді при моделюванні необхідно, щоб процес спочатку один раз виконав, наприклад, процедуру ST1, а потім виконувався періодично ,як звичайно, припустимо, виконував процедуру ST2. Такий процес можна запрограмувати в такий спосіб: process begіn ST1; loop ST2; waіt on some_sіgnal_lіst; end loop; end process; Наприклад, таким способом просто запрограмувати генератор синхроімпульсів: process begіn CLK<='0'; loop CLK<=not CLK ; exіt when end_of_sіmulatіon; waіt for 10 ns; end loop; waіt; end process;
Цей процес генерує синхросерію з періодом 10+10 наносекунд у циклі loop, виходить із нього за умови end_of_sіmulatіon=true і зупиняється.
Анатолій Сергієнко |
Назад | Зміст | Наступна |