Оператор ожидания события 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одержание | Следующая |