Составители:
39
Язык VHDL, в отличие от традиционных языков программирования, различает после-
довательный и параллельный вызов подпрограммы. Синтаксически они одинаковы, но раз-
лична их локализация и правила исполнения. Вызов функции трактуется как параллельный,
если входит в параллельный оператор, чаще всего — в оператор параллельного присваива-
ния, и как последовательный, если входит в последовательный оператор.
Оператор вызова процедуры является последовательным, если локализован в теле про-
цесса или теле другой подпрограммы. В иных случаях оператор вызова подпрограммы ин-
терпретируется как параллельный оператор. Одна и та же подпрограмма может вызываться
как параллельным, так и последовательным оператором. Как и другие последовательные
операторы, оператор последовательного вызова выполняется после исполнения всех опера-
торов, предшествующих ему в теле процесса или теле подпрограммы. Параллельный опера-
тор вызова исполняется после изменения любого из сигналов, перечисленных в списке соот-
ветствий этого оператора. Иными словами, параллельный вызов процедуры эквивалентен
процессу, тело которого совпадает с телом процедуры с точностью до обозначений, а список
чувствительности содержит входные фактические параметры оператора вызова.
Большое значение в подпрограммах имеет оператор возврата
return. В процедуре
этот оператор прекращает ее исполнение, передавая управление вызывающей программе.
Если исполнен оператор
return в процедуре, вызванной последовательным оператором, то
после него выполняется оператор вызывающей программы, следующий за оператором вызо-
ва. После исполнения оператора
return в процедуре, вызванной параллельным оператором,
интерпретатор программы обращается к календарю событий и инициирует исполнение опе-
ратора, связанного со следующим событием в календаре. При отсутствии оператора возврата
исполнение процедуры завершается последним оператором в порядке записи.
Оператор возврата в теле функции обязателен. Он также прекращает исполнение под-
программы, но, кроме того, выполняет присвоение значения результату, который подставля-
ется в вызывающей программе на месте вызова функции.
4.11. Структурное представление проекта
В предыдущих разделах рассмотрено несколько языковых понятий, служащих структу-
ризации описания проекта: понятия процесса, блока, подпрограммы.
Язык VHDL предоставляет еще одну возможность структуризации описания — так на-
зываемые структурные архитектурные тела (Structural Architectural Body, SAB). Струк-
турное архитектурное тело представляет проект в виде набора компонентов и их связей, т. е.
приближает описание к реальной конфигурации проектируемого устройства, как минимум, к
представлению разработчика об этой конфигурации. Все используемые в проекте компонен-
ты должны иметь свое
entity и однозначно заданное поведение, например поведенческое
архитектурное тело, которое следует заранее скомпилировать в библиотеку проекта или
иную библиотеку, объявленную перед
entity составного проекта.
SAB представляется наиболее эффективным средством создания иерархических про-
ектов. Применение концепции SAB облегчает совместную работу нескольких исполнителей
Язык VHDL, в отличие от традиционных языков программирования, различает после- довательный и параллельный вызов подпрограммы. Синтаксически они одинаковы, но раз- лична их локализация и правила исполнения. Вызов функции трактуется как параллельный, если входит в параллельный оператор, чаще всего — в оператор параллельного присваива- ния, и как последовательный, если входит в последовательный оператор. Оператор вызова процедуры является последовательным, если локализован в теле про- цесса или теле другой подпрограммы. В иных случаях оператор вызова подпрограммы ин- терпретируется как параллельный оператор. Одна и та же подпрограмма может вызываться как параллельным, так и последовательным оператором. Как и другие последовательные операторы, оператор последовательного вызова выполняется после исполнения всех опера- торов, предшествующих ему в теле процесса или теле подпрограммы. Параллельный опера- тор вызова исполняется после изменения любого из сигналов, перечисленных в списке соот- ветствий этого оператора. Иными словами, параллельный вызов процедуры эквивалентен процессу, тело которого совпадает с телом процедуры с точностью до обозначений, а список чувствительности содержит входные фактические параметры оператора вызова. Большое значение в подпрограммах имеет оператор возврата return. В процедуре этот оператор прекращает ее исполнение, передавая управление вызывающей программе. Если исполнен оператор return в процедуре, вызванной последовательным оператором, то после него выполняется оператор вызывающей программы, следующий за оператором вызо- ва. После исполнения оператора return в процедуре, вызванной параллельным оператором, интерпретатор программы обращается к календарю событий и инициирует исполнение опе- ратора, связанного со следующим событием в календаре. При отсутствии оператора возврата исполнение процедуры завершается последним оператором в порядке записи. Оператор возврата в теле функции обязателен. Он также прекращает исполнение под- программы, но, кроме того, выполняет присвоение значения результату, который подставля- ется в вызывающей программе на месте вызова функции. 4.11. Структурное представление проекта В предыдущих разделах рассмотрено несколько языковых понятий, служащих структу- ризации описания проекта: понятия процесса, блока, подпрограммы. Язык VHDL предоставляет еще одну возможность структуризации описания — так на- зываемые структурные архитектурные тела (Structural Architectural Body, SAB). Струк- турное архитектурное тело представляет проект в виде набора компонентов и их связей, т. е. приближает описание к реальной конфигурации проектируемого устройства, как минимум, к представлению разработчика об этой конфигурации. Все используемые в проекте компонен- ты должны иметь свое entity и однозначно заданное поведение, например поведенческое архитектурное тело, которое следует заранее скомпилировать в библиотеку проекта или иную библиотеку, объявленную перед entity составного проекта. SAB представляется наиболее эффективным средством создания иерархических про- ектов. Применение концепции SAB облегчает совместную работу нескольких исполнителей 39
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »