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

UptoLike

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

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