Язык описания электронной аппаратуры VHDL. Берчун Ю.В. - 25 стр.

UptoLike

Составители: 

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