ВУЗ:
Составители:
40
модуля или проектного модуля, иерархически старшего по отношению к
данному. Различают два вида подпрограмм - процедуры (procedure) и
функция (function).
Оба вида содержат в своем теле набор последовательных
операторов, которые задают совокупность действий, исполняемых после
вызова этой подпрограммы. Процедура возвращает результаты либо путем
непосредственного преобразования объектов, определенных в
вызывающей программе (глобальных сигналов или переменных), либо за
счет сопоставления объектов через список соответствий. Функция же
определяет единственное значение, используемое в выражениях, в которые
включен вызов этой функции.
Спецификация подпрограммы определяет ее интерфейс - имя,
входные и выходные данные. Входные данные подпрограммы
специфицируются направлением in, выходные — направлением out, а
данные, которые воспринимаются подпрограммой и возвращаются в
вызывающую программу измененными, — как inout. Указание категории
элемента списка (constant, variable или signal) обеспечивает контроль
корректности использования подпрограммы. По умолчанию определено,
что сопоставляемый объект относится к категории variable.
Несоответствие типа или категории фактического или формального
параметра является ошибкой.
В разделе деклараций подпрограммы могут определяться локальные,
т. е. определенные только в теле подпрограммы, объекты: вложенные
подпрограммы, типы и подтипы данных, переменные, константы,
атрибуты. Раздел операторов содержит только последовательные
операторы.
Язык VHDL, в отличие от традиционных языков программирования,
различает последовательный и параллельный вызов подпрограммы.
Синтаксически они одинаковы, но различна их локализация и правила
исполнения. Вызов функции трактуется как параллельный, если входит в
параллельный оператор, чаще всего - в оператор параллельного
присваивания, и как последовательный, если входит в последовательный
оператор.
Оператор вызова процедуры является последовательным, если
локализован в теле процесса или теле другой подпрограммы. В иных
случаях оператор вызова подпрограммы интерпретируется как
параллельный оператор. Одна и та же подпрограмма может вызываться как
параллельным, так и последовательным оператором. Параллельный вызов
процедуры фактически эквивалентен процессу, тело которого совпадает с
телом процедуры с точностью до обозначений, а список инициализаторов
содержит входные фактические параметры оператора вызова.
40
модуля или проектного модуля, иерархически старшего по отношению к
данному. Различают два вида подпрограмм - процедуры (procedure) и
функция (function).
Оба вида содержат в своем теле набор последовательных
операторов, которые задают совокупность действий, исполняемых после
вызова этой подпрограммы. Процедура возвращает результаты либо путем
непосредственного преобразования объектов, определенных в
вызывающей программе (глобальных сигналов или переменных), либо за
счет сопоставления объектов через список соответствий. Функция же
определяет единственное значение, используемое в выражениях, в которые
включен вызов этой функции.
Спецификация подпрограммы определяет ее интерфейс - имя,
входные и выходные данные. Входные данные подпрограммы
специфицируются направлением in, выходные — направлением out, а
данные, которые воспринимаются подпрограммой и возвращаются в
вызывающую программу измененными, — как inout. Указание категории
элемента списка (constant, variable или signal) обеспечивает контроль
корректности использования подпрограммы. По умолчанию определено,
что сопоставляемый объект относится к категории variable.
Несоответствие типа или категории фактического или формального
параметра является ошибкой.
В разделе деклараций подпрограммы могут определяться локальные,
т. е. определенные только в теле подпрограммы, объекты: вложенные
подпрограммы, типы и подтипы данных, переменные, константы,
атрибуты. Раздел операторов содержит только последовательные
операторы.
Язык VHDL, в отличие от традиционных языков программирования,
различает последовательный и параллельный вызов подпрограммы.
Синтаксически они одинаковы, но различна их локализация и правила
исполнения. Вызов функции трактуется как параллельный, если входит в
параллельный оператор, чаще всего - в оператор параллельного
присваивания, и как последовательный, если входит в последовательный
оператор.
Оператор вызова процедуры является последовательным, если
локализован в теле процесса или теле другой подпрограммы. В иных
случаях оператор вызова подпрограммы интерпретируется как
параллельный оператор. Одна и та же подпрограмма может вызываться как
параллельным, так и последовательным оператором. Параллельный вызов
процедуры фактически эквивалентен процессу, тело которого совпадает с
телом процедуры с точностью до обозначений, а список инициализаторов
содержит входные фактические параметры оператора вызова.
Страницы
- « первая
- ‹ предыдущая
- …
- 38
- 39
- 40
- 41
- 42
- …
- следующая ›
- последняя »
