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

UptoLike

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

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