ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »