Оператор ожидания события wait
| Назад | Cодержание | Следующая |
Изучение VHDLПоследовательные операторы.Оператор ожидания события wait.Этот оператор уже упоминался при описании вычислительной модели для программирования на VHDL, принципов работы симулятора.На этом операторе выполнение процесса останавливается, в момент остановки выполняются присваивания сигналам и процесс продолжает исполнение при появлении события, которое выбирается этим оператором. Синтаксис оператора wait: \оператор wait\::=wait [on ,\имя сигнала\ {,\имя сигнала\}] где ключевое слово on начинает список чувствительности, until — условие ожидания, а for — задержку ожидания. По оператору продолжение выполнения процесса начнется по событию изменения сигналов CLK или RST. По оператору wait until CLK=’1′; продолжение начнется в момент изменения состояния CLK из ‘0’ в ‘1’, т.е. по фронту этого сигнала. Оператор wait for CLK_PERIOD; остановит процесс на время, заданное переменной CLK_PERIOD типа time. Возможно комбинирование списка чувствительности, условия ожидания в одном операторе. Оператор wait без списка чувствительности, условия ожидания и задержки ожидания остановит процесс до конца моделирования. Иногда при моделировании необходимо, чтобы процесс вначале один раз выполнил, например, процедуру 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_simulation=true и останавливается.
Анатолий Сергиенко |
| Назад | Cодержание | Следующая |