Проектирование цифровых устройств с помощью языка описания аппаратуры VHDL. Бобрешов А.М - 40 стр.

UptoLike

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

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