Составители:
37
Драйверы сигнала
inputs неявно рассматриваются как битовый массив, границы ко-
торого определяются стандартным атрибутом range.
На практике обычно используется девятизначный алфавит
std_logic или
std_ulogic. Первый отличается тем, что для него заранее предусмотрена функция разре-
шения и он фактически является подтипом для
std_ulogic. В случае, если предлагаемая
функция разрешения не устраивает разработчика, он может определить её самостоятельно и
создать свой подтип на основе
std_ulogic.
4.10. Подпрограммы
Подпрограммы в VHDL, как и в других алгоритмических языках, обеспечивают, во-
первых, структуризацию описания проекта за счет разделения его на законченные внутренне
определенные блоки, а во-вторых, являются средством экономии времени проектировщика,
позволяя заменить несколько описаний сходных фрагментов алгоритма одним объявлением
подпрограммы и соответствующими ссылками на нее (вызовами) в основном тексте.
Каждая подпрограмма, встречающаяся в проектном модуле, должна быть представлена
телом подпрограммы в разделе деклараций этого модуля или проектного модуля, иерархиче-
ски старшего по отношению к данному.
Различают два вида подпрограмм: процедуры (
procedure) и функции (function).
Оба вида содержат в своем теле набор последовательных операторов, которые задают
совокупность действий, исполняемых после вызова этой подпрограммы. Процедура возвра-
щает результаты либо путем непосредственного преобразования объектов, определенных в
вызывающей программе (глобальных сигналов или переменных), либо за счет сопоставления
объектов через список соответствий. Функция же определяет единственное значение, ис-
пользуемое в выражениях, в которые включен вызов этой функции.
Объявления подпрограмм отображаются в текстах телами подпрограмм, которые под-
чиняются следующему синтаксическому правилу:
<тело подпрограммы>::=
<спецификация подпрограммы> is
<раздел деклараций подпрограммы>
begin
{<последовательный оператор>}
end [procedure | function] <имя подпрограммы>;
<спецификация подпрограммы>::=
procedure <имя подпрограммы> [(интерфейсный список>)]
| function <имя подпрограммы> [(интерфейсный список>)] return <тип>
<интерфейсный список>::=
<элемент интерфейсного списка>
{;<элемент интерфейсного списка>}
<элемент интерфейсного списка>::=
[constant | variable | signal] <формальный параметр>
{,<формальный параметр>} :<направление> <тип> [:=<константное выражение>]
Спецификация подпрограммы определяет ее интерфейс (имя, входные и выходные
данные). Формальный параметр следует понимать как имя, присваиваемое на время испол-
Драйверы сигнала inputs неявно рассматриваются как битовый массив, границы ко- торого определяются стандартным атрибутом range. На практике обычно используется девятизначный алфавит std_logic или std_ulogic. Первый отличается тем, что для него заранее предусмотрена функция разре- шения и он фактически является подтипом для std_ulogic. В случае, если предлагаемая функция разрешения не устраивает разработчика, он может определить её самостоятельно и создать свой подтип на основе std_ulogic. 4.10. Подпрограммы Подпрограммы в VHDL, как и в других алгоритмических языках, обеспечивают, во- первых, структуризацию описания проекта за счет разделения его на законченные внутренне определенные блоки, а во-вторых, являются средством экономии времени проектировщика, позволяя заменить несколько описаний сходных фрагментов алгоритма одним объявлением подпрограммы и соответствующими ссылками на нее (вызовами) в основном тексте. Каждая подпрограмма, встречающаяся в проектном модуле, должна быть представлена телом подпрограммы в разделе деклараций этого модуля или проектного модуля, иерархиче- ски старшего по отношению к данному. Различают два вида подпрограмм: процедуры (procedure) и функции (function). Оба вида содержат в своем теле набор последовательных операторов, которые задают совокупность действий, исполняемых после вызова этой подпрограммы. Процедура возвра- щает результаты либо путем непосредственного преобразования объектов, определенных в вызывающей программе (глобальных сигналов или переменных), либо за счет сопоставления объектов через список соответствий. Функция же определяет единственное значение, ис- пользуемое в выражениях, в которые включен вызов этой функции. Объявления подпрограмм отображаются в текстах телами подпрограмм, которые под- чиняются следующему синтаксическому правилу: <тело подпрограммы>::= <спецификация подпрограммы> is <раздел деклараций подпрограммы> begin {<последовательный оператор>} end [procedure | function] <имя подпрограммы>; <спецификация подпрограммы>::= procedure <имя подпрограммы> [(интерфейсный список>)] | function <имя подпрограммы> [(интерфейсный список>)] return <тип> <интерфейсный список>::= <элемент интерфейсного списка> {;<элемент интерфейсного списка>} <элемент интерфейсного списка>::= [constant | variable | signal] <формальный параметр> {,<формальный параметр>} :<направление> <тип> [:=<константное выражение>] Спецификация подпрограммы определяет ее интерфейс (имя, входные и выходные данные). Формальный параметр следует понимать как имя, присваиваемое на время испол- 37
Страницы
- « первая
- ‹ предыдущая
- …
- 35
- 36
- 37
- 38
- 39
- …
- следующая ›
- последняя »