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

UptoLike

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

42
Параметры, определяющие количественные свойства реализаций (например, разряд-
ность данных, время задержки), в выражениях внутри подчиненных архитектурных тел яв-
ляются обычными константами. Но, кроме того, часто применяются параметры структурного
характера, уточняющие функции, реализуемые конкретными вхождениями параметризован-
ного модуля и/или его структуру. Чаще всего такие параметры объявляются в операторах ге-
нерации, синтаксис которых определен как:
<оператор генерации>::=
<метка оператора генерации>: <схема генерации> generate
<параллельный оператор>
{<параллельный оператор>}
end generate [<метка оператора генерации>];
<схема генерации>::=
if <булевское выражение>
| for <имя> in <диапазон>
Схема генерации с ключевым словом if разрешает (или блокирует) создание компо-
нентов, представленных вложенными параллельными операторами. Схема с ключевым сло-
вом
for определяет число компонентов, создаваемых в структуре модуля в зависимости от
значения параметра настройки.
В случаях, когда вариативность компонента достигается разработкой нескольких архи-
тектурных тел, т. е. первичному проектному модулю (
entity) этого компонента в библио-
теке проекта соответствует несколько различных архитектурных тел, проектный модуль
высшего уровня иерархии должен содержать объявление конфигурации компонента. Объ-
явление конфигурации определяет, какое именно архитектурное тело компонента использу-
ется в текущем проекте или сеансе отладки. Объявление конфигурации компонента подчи-
няется следующему синтаксическому правилу:
<конфигурация компонента>::=
for <спецификация компонента> use <индикатор привязки>;
<список вхождений>::=
<метка вхождения> {,<метка вхождения>}
| others
| all
<индикатор привязки>::=
entity <имя сущности> (<имя архитектурного тела>)
<спецификация компонента> ::= <список вхождений> : <имя компонента>
4.13. Пакеты
Мы уже неоднократно обращались к понятию пакета (package) в VHDL. Пакетэто
программный модуль, содержащий описание объектов, доступных нескольким другим про-
граммным модулям. В пакете могут быть объявлены глобальные типы, константы, функции,
сигналы и т. п. Фактически, общие для нескольких подпроектов типы и сигналы можно объ-
явить только в пакете.
Рассмотрим более формально правила записи пакетов.
     Параметры, определяющие количественные свойства реализаций (например, разряд-
ность данных, время задержки), в выражениях внутри подчиненных архитектурных тел яв-
ляются обычными константами. Но, кроме того, часто применяются параметры структурного
характера, уточняющие функции, реализуемые конкретными вхождениями параметризован-
ного модуля и/или его структуру. Чаще всего такие параметры объявляются в операторах ге-
нерации, синтаксис которых определен как:
<оператор генерации>::=
<метка оператора генерации>: <схема генерации> generate
<параллельный оператор>
{<параллельный оператор>}
end generate [<метка оператора генерации>];
<схема генерации>::=
if <булевское выражение>
| for <имя> in <диапазон>
     Схема генерации с ключевым словом if разрешает (или блокирует) создание компо-
нентов, представленных вложенными параллельными операторами. Схема с ключевым сло-
вом for определяет число компонентов, создаваемых в структуре модуля в зависимости от
значения параметра настройки.
     В случаях, когда вариативность компонента достигается разработкой нескольких архи-
тектурных тел, т. е. первичному проектному модулю (entity) этого компонента в библио-
теке проекта соответствует несколько различных архитектурных тел, проектный модуль
высшего уровня иерархии должен содержать объявление конфигурации компонента. Объ-
явление конфигурации определяет, какое именно архитектурное тело компонента использу-
ется в текущем проекте или сеансе отладки. Объявление конфигурации компонента подчи-
няется следующему синтаксическому правилу:
<конфигурация компонента>::=
for <спецификация компонента> use <индикатор привязки>;
<список вхождений>::=
<метка вхождения> {,<метка вхождения>}
| others
| all
<индикатор привязки>::=
entity <имя сущности> (<имя архитектурного тела>)
<спецификация компонента> ::= <список вхождений> : <имя компонента>

4.13. Пакеты
     Мы уже неоднократно обращались к понятию пакета (package) в VHDL. Пакет — это
программный модуль, содержащий описание объектов, доступных нескольким другим про-
граммным модулям. В пакете могут быть объявлены глобальные типы, константы, функции,
сигналы и т. п. Фактически, общие для нескольких подпроектов типы и сигналы можно объ-
явить только в пакете.
     Рассмотрим более формально правила записи пакетов.




                                             42