Составители:
25
между собой и с окружением проектируемой системы. Параллельные операторы могут быть
простыми и составными. Составной оператор включает несколько простых операторов, для
которых определены общие условия инициализации. Такая совокупность операторов назы-
вается телом составного оператора. Важнейшим составным оператором является оператор
процесса
process, синтаксис которого определен следующим образом:
<оператор процесса>::=
[<метка процесса>:] process[(<список чувствительности>)] [is]
<раздел деклараций>
begin
<раздел операторов>
end process [<метка процесса>];
<раздел операторов>::= {<последовательный оператор>}
Ключевое слово is в версии VHDL'93 является необязательным, а в VHDL'87 недопус-
тимо в данной конструкции.
Последовательные операторы могут записываться только в теле оператора
process.
При моделировании фрагменты алгоритма, заключенные в оператор process, будут испол-
няться друг за другом после возникновения в системе инициализирующего события — из-
менении одного из сигналов, перечисленных в списке чувствительности, или в заранее оп-
ределенный момент времени. Параллельные операторы в теле процесса не определены. Пе-
ременные могут быть определены только в теле процесса, а сигналы во всем архитектурном
теле.
Общие правила интерпретации оператора process можно свести к следующим:
9 Процесс "запускается" при изменении любого сигнала, перечисленного в спи-
ске чувствительности. Если список чувствительности пуст, то процесс безусловно
исполняется при начальном запуске, а также сразу за исполнением последнего
оператора в разделе операторов этого процесса. При этом надо иметь в виду, что
оператор процесса без списка чувствительности обязательно должен содержать в
своем теле оператор ожидания
wait (см. раздел 4.7.3). Иначе исполнение любых
других операторов в программе блокируется.
9 Все операторы раздела операторов выполняются подряд друг за другом от на-
чала до конца, за исключением случаев приостановки исполнения действий опе-
ратором
wait. Тогда после приостановки может быть инициировано исполнение
других процессов и параллельных операторов, а реализация операторов, следую-
щих за оператором
wait, продолжится после наступления события, объявленного
в этом операторе.
4.7. Последовательные операторы
Последовательные операторы (Sequential Statement) по характеру исполнения подоб-
ны операторам традиционных языков программирования высокого уровня. Операторы этого
типа обязательно вложены в оператор process или подпрограмму и выполняются последо-
вательно друг за другом в порядке записи. Результаты исполнения последовательных опера-
торов недоступны прочим программным модулям, по крайней мере, до того, как будет вы-
между собой и с окружением проектируемой системы. Параллельные операторы могут быть простыми и составными. Составной оператор включает несколько простых операторов, для которых определены общие условия инициализации. Такая совокупность операторов назы- вается телом составного оператора. Важнейшим составным оператором является оператор процесса process, синтаксис которого определен следующим образом: <оператор процесса>::= [<метка процесса>:] process[(<список чувствительности>)] [is] <раздел деклараций> begin <раздел операторов> end process [<метка процесса>]; <раздел операторов>::= {<последовательный оператор>} Ключевое слово is в версии VHDL'93 является необязательным, а в VHDL'87 недопус- тимо в данной конструкции. Последовательные операторы могут записываться только в теле оператора process. При моделировании фрагменты алгоритма, заключенные в оператор process, будут испол- няться друг за другом после возникновения в системе инициализирующего события — из- менении одного из сигналов, перечисленных в списке чувствительности, или в заранее оп- ределенный момент времени. Параллельные операторы в теле процесса не определены. Пе- ременные могут быть определены только в теле процесса, а сигналы во всем архитектурном теле. Общие правила интерпретации оператора process можно свести к следующим: 9 Процесс "запускается" при изменении любого сигнала, перечисленного в спи- ске чувствительности. Если список чувствительности пуст, то процесс безусловно исполняется при начальном запуске, а также сразу за исполнением последнего оператора в разделе операторов этого процесса. При этом надо иметь в виду, что оператор процесса без списка чувствительности обязательно должен содержать в своем теле оператор ожидания wait (см. раздел 4.7.3). Иначе исполнение любых других операторов в программе блокируется. 9 Все операторы раздела операторов выполняются подряд друг за другом от на- чала до конца, за исключением случаев приостановки исполнения действий опе- ратором wait. Тогда после приостановки может быть инициировано исполнение других процессов и параллельных операторов, а реализация операторов, следую- щих за оператором wait, продолжится после наступления события, объявленного в этом операторе. 4.7. Последовательные операторы Последовательные операторы (Sequential Statement) по характеру исполнения подоб- ны операторам традиционных языков программирования высокого уровня. Операторы этого типа обязательно вложены в оператор process или подпрограмму и выполняются последо- вательно друг за другом в порядке записи. Результаты исполнения последовательных опера- торов недоступны прочим программным модулям, по крайней мере, до того, как будет вы- 25
Страницы
- « первая
- ‹ предыдущая
- …
- 23
- 24
- 25
- 26
- 27
- …
- следующая ›
- последняя »