Товары в корзине: 0 шт Оформить заказ
Стр. 1
 

142 страницы

821.00 ₽

Купить ГОСТ Р 50754-95 — официальный бумажный документ с голограммой и синими печатями. подробнее

Официально распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль".

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

Настоящий стандарт распространяется на программные и технические средства проектирования радиоэлектронной аппаратуры (РЭА) и больших интегральных схем (БИС).

Стандарт определяет синтаксис и семантику языка VHDL, который предназначен для формального представления цифровых систем (ЦС) различного уровня функциональной (вычислительный комплекс, ЭВМ, устройство, узел) и (или) конструктивной (шкаф, стойка, блок, плата, БИС) сложности на различных уровнях детализации (алгоритм функционирования, регистровые передачи, вентильная схема). VHDL-описание ЦС используется для функции представления ЦС в процессе ее проектирования, для изучения ЦС в процессе ее эксплуатации и ремонта.

Стандарт применяется в автоматизированных системах проектирования РЭА и БИС

  Скачать PDF

Оглавление

0.1 Область применения

0.2 Нормативные ссылки

0.3 Введение

0.4 Определения

1. Объекты проекта и конфигурации

1.1 Объявления объектов

1.1.1 Заголовок объекта

1.1.1.1 Параметры настройки

1.1.1.2 Порты

1.1.2 Раздел объявлений объекта

1.1.3 Раздел операторов объекта

1.2 Архитектурные тела

1.2.1 Раздел объявлений архитектурного тела

1.2.2 Раздел операторов архитектурного тела

1.3 Объявления конфигурации

1.3.1 Конфигурация блока

1.3.2 Конфигурация компонента

2. Подпрограммы и пакеты

2.1 Объявления подпрограмм

2.1.1 Формальные параметры

2.1.1.1 Передача параметров класса constani и variable

2.1.1.2 Передача параметров класса signal

2.2 Тела подпрограмм

2.3 Совмещение подпрограмм

2.3.1 Совмещение операций

2.4 Функции разрешения

2.5 Объявления пакетов

2.6 Тела пакетов

2.7 Правила согласования

3. Типы

3.1 Скалярные типы

3.1.1 Перечисляемые типы

3.1.1.1 Предопределенные перечисляемые типы

3.1.2 Целые типы

3.1.2.1 Предопределенные целые типы

3.1.3 Физические типы

3.1.3.1 Предопределенные физические типы

3.1.4 Плавающие типы

3.1.4.1 Предопределенные плавающие типы

3.2 Составные типы

3.2.1 Индексируемые типы

3.2.1.1 Ограничения индекса и дискретные диапазоны

3.2.1.2 Предопределенные индексируемые типы

3.2.2 Структурные типы

3.3 Ссылочные типы

3.3.1 Неполные описания типов

3.3.2 Размещение и уничтожение объектов

3.4 Файловые типы

3.4.1 Файловые операции

4. Объявления

4.1 Объявления типов

4.2 Объявления подтипов

4.3 Объекты

4.3.1 Объявления объектов

4.3.1.1 Объявления констант

4.3.1.2 Объявления сигналов

4.3.1.3 Объявления переменных

4.3.2 Объявления файлов

4.3.3 Объявления интерфейсов

4.3.3.1 Списки интерфейсов

4.3.3.2 Списки сопоставлений

4.3.4 Объявление дополнительного имени

4.4 Объявление атрибутов

4.5 Объявления компонентов

5. Спецификации

5.1 Спецификация атрибута

5.2 Спецификация конфигурации

5.2.1 Связывающее указание

5.2.1.1 Аспект объекта проекта

5.2.1.2 Аспект отображения параметров настройки и аспект отображения портов

5.2.2 Неявное связывающее указание

5.3 Спецификация отключения

6. Имена

6.1 Имена

6.2 Простые имена

6.3 Составные имена

6.4 Индексируемые имена

6.5 Сечения

6.6 Атрибуты

7. Выражения

7.1 Выражения

7.2 Операторы

7.2.1 Логические операторы

7.2.2 Операторы отношения

7.2.3 Аддитивные операторы

7.2.4 Мультипликативные операторы

7.2.5 Прочие операторы

7.3 Операнды

7.3.1 Литералы

7.3.2 Агрегаты

7.3.2.1 Агрегаты структур

7.3.2.2 Агрегаты массивов

7.3.3 Вызовы функций

7.3.4 Квалифицированные выражения

7.3.5 Преобразование типа

7.3.6 Генераторы

7.4 Статические выражения

7.5 Универсальные выражения

8. Последовательные операторы

8.1 Оператор ожидания

8.2 Оператор утверждения

8.3 Оператор назначения сигнала

8.3.1 Изменение планируемой выходной формы сигнала

8.4 Оператор присваивания переменной

8.4.1 Присваивание индексируемой переменной

8.5 Оператор вызова процедуры

8.6 Условный оператор

8.7 Оператор выбора

8.8 Оператор цикла

8.9 Оператор перехода

8.10 Оператор выхода

8.11 Оператор возврата

8.12 Пустой оператор

9. Параллельные операторы

9.1 Оператор блока

9.2 Оператор процесса

9.2.1 Драйверы

9.3 Параллельный вызов процедуры

9.4 Параллельный оператор утверждения

9.5 Параллельный оператор назначения сигнала

9.5.1 Условное назначение сигнала

9.5.2 Выборочное назначение сигнала

9.6 Оператор конкретизации компонента

9.6.1 Конкретизация компонента

9.7 Оператор генерации

10. Область действия и видимость

10.1 Область объявлений

10.2 Область действия объявлений

10.3 Видимость

10.4 Описания использования

10.5 Контекст разрешения совмещения

11. Модули проекта и их анализ

11.1 Модули проекта

11.2 Библиотеки проекта

11.3 Описание контекста

11.4 Порядок анализа

12. Предвыполнение и выполнение

12.1 Предвыполнение иерархии проекта

12.2 Предвыполнение заголовка блока

12.2.1 Описание параметров настройки

12.2.2 Описание отображения параметров настройки

12.2.3 Описание портов

12.2.4 Описание отображения портов

12.3 Предвыполнение раздела объявлений

12.3.1 Предвыполнение объявления

12.3.1.1 Объявления и тела подпрограмм

12.3.1.2 Объявления типов

12.3.1.3 Объявления подтипов

12.3.1.4 Объявления объектов

12.3.1.5 Объявления дополнительных имен

12.3.1.6 Объявления атрибутов

12.3.1.7 Объявления компонентов

12.3.2 Предвыполнение спецификации

12.3.2.1 Спецификации атрибутов

12.3.2.2 Спецификации конфигураций

12.3.2.3 Спецификация отключения

12.4 Предвыполнение раздела операторов

12.4.1 Операторы блока

12.4.2 Операторы генерации

12.4.3 Операторы конкретизации компонентов

12.4.4 Другие параллельные операторы

12.5 Динамическое предвыполненение

12.6 Выполнение модели

12.6.1 Распространение значений сигналов

12.6.2 Изменение неявных сигналов

12.6.3 Цикл моделирования

13. Лексические элементы

13.1 Набор символов

13.2 Лексические элементы, разделители и ограничители

13.3 Идентификаторы

13.4 Абстрактные литералы

13.4.1 Десятичные литералы

13.4.2 Базированные литералы

13.5 Символьные литералы

13.6 Строковые литералы

13.7 Битово-строковые литералы

13.8 Комментарии

13.9 Зарезервированные слова

13.10 Возможные замены символов

14. Предопределенное окружение языка

14.1 Предопределенные атрибуты

14.2 Пакет STANDART

14.3 Пакет TEXTIO

Приложение А (справочное) Сводка синтаксических правил

Показать даты введения Admin

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ ЦИФРОВЫХ

СИСТЕМ — VHDL

ОПИСАНИЕ ЯЗЫКА

ПЗ 3—94/122


Издание официальное

ГОССТАНДАРТ РОССИИ

МОСКВА

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ ЦИФРОВЫХ

СИСТЕМ - VHDL

ОПИСАНИЕ ЯЗЫКА

МОСКВА

1995

Идентифицировать

(Identify)


Иерархия проекта (Design Hierarchy)


Изменяться

(Update)


Именованное сопоставление (Named Association)

Имя

(Name)


—    Считается, что имя в элементе сопоставления агрегата, используемого в назначении или присваивании целевого объекта, идентифицирует сигнал или переменную и каждый подэлемент этого сигнала или переменной (8.3., 8.4)

—    Иерархия проекта представляет собой иерархию объектов проекта, получаемую в результате успешной декомпозиции объекта проекта на подкомпоненты, которые, в свою очередь, также декомпозируются (1)

—    Считается, что значение сигнала изменяется или явно, если этот сигнал используется в качестве целевого объекта в операторе назначения сигнала; или косвенно, если этот сигнал сопоставлен с объектом интерфейса, вид которого out, buffer, inout или linkage, или один из подэлементов сигнала изменяется (4.3.3)

—    Считается, что элемент сопоставления является именованным, если формальный указатель в нем задан явно (4.3.3.2, 7.3.2)


Ищ единицы (Unit Name)

Индексируемый тип (Array Туре)


Инерционная задержка (Inertial Delay)


Интервал времени блокировки (Timeout Interval)


Источник

(Source)


—    Каждая форма объявления сопоставляет с описываемым понятием идентификатор. Только внутри области действия этого объявления существуют места, в которых возможно использовать этот идентификатор для ссылки на сопоставленное с ним объявленное понятие; такие места определяются правилами видимости. В таких местах считается, что этот идентификатор является именем этого понятия (4, 6.1)

—    В объявлении физического типа каждое объявление единицы (как базовой, так и вторичной) определяет имя единицы (3.1.3)

—    Значение индексируемого типа состоит из элементов, имеющих один и тот же подтип (а, следовательно, один и тот же тип). Каждый элемент однозначно отличается индексом (для одномерного массива) или последовательностью индексов (для многомерного массива). Каждый индекс должен быть значением дискретного типа и находиться в соответствующем диапазоне индекса (3.2.1)

—    Инерционная задержка представляет собой модель задержки, используемую при моделировании переключательных схем; импульс, длительность которого меньше, чем время переключения схемы, не будет передан. Эта задержка является умалчиваемой для операторов назначения сигнала (8.3)

—    Интервал времени блокировки, задаваемый описанием времени блокировки оператора ожидания (until предложение), определяет максимальное время, на которое процесс приостанавливается этим оператором (8.1)

—    Источник сигнала поставляет значение сигнала. Источником может быть либо драйвер, либо порт экземпляра компонента, с которым этот сигнал сопоставлен, либо собрание источников (составной источник) (4.3.1.2)


Константа

(Constant)

Конфигурация

(Configuration)


Локально статическое выражение (Locally Static Expression)


—    Константой является объект, значение которого изменить нельзя (4.3.1.1)

—    Конфигурация описывает, каким образом экземпляры компонентов в конкретном блоке связываются с объектами проекта для того, чтобы определить компоновки объектов проекта при формировании полного проекта (1, 1.3)

—    Выражение, которое может быть вычислено в течение анализа модуля проекта, в котором оно используется, является локально статическим выражением (7.4)


Локально статическое имя

(Locally Static Name)

— Считается, что имя является локально статическим, если каждое выражение в этом имени является локально статическим (6.1)

Локально статическое первичное (Locally Static Primary)

— Локально статическое первичное — это одна из определенной группы первичных, включающая литералы, ряд констант и ряд атрибутов (7.4)

Множество чувствительности (Sensitivity Set)

— Множеством чувствительности оператора ожидания является множество сигналов, к которым этот оператор чувствителен. Явно множество чувствительности задается описанием чувствительности (on предложение); или оно может подразумеваться описанием условия (until предложение) (8.1)

Модель

(Model)

— Результатом предвыполнения иерархии проекта является модель, которая может быть выполнена с целью моделирования проекта, представленного этой моделью (12.6)

Модуль проекта (Design Unit)

— Модуль проекта может быть независимо проанализирован и помещен в библиотеку проекта. Модулем проекта является объявление объекта, объявление архитектуры, объявление конфигурации, объявление пакета или объявление тела пакета (11.1)

Нарушение утверждения (Assertion Violation)

— Нарушение утверждения возникает в том случае, когда вычисление условия в операторе утверждения дает ложное значение (8.2)

Неограниченный подтип

(Unconstrained

Subtype)

— Подтип считается неограниченным, если он связан с условием, которое не налагает никаких ограничений (4.3)

Неполная константа (Deferred Constant)

— Неполной константой является константа, описанная (с помощью объявления неполной константы) в объявлении пакета и не имеющая значения; неполная константа имеет соответствующее полное описание в соответствующем теле пакета, определяющее значение этой константы (4.3.1.1)

Неполное описание типа (Incomplete Туре Declaration)

— Неполное описание типа используется для определения рекурсивных ссылочных типов (3.3.1)

Непосредственная область действия (Immediate Scope)

— Непосредственной областью действия объявления, стоящей непосредственно внутри данной области объявлений, является часть области Действия, распространяющаяся от начала объявления до конца области объявлений (10.2)

Непосредственно внутри (Immediately Within)

— Считается, что объявление стоит непосредственно внутри области объявлений, если область является самой внутренней областью, объемлющей это объявление, не учитывая при этом область объявлений (если она есть), сопоставленную с самим объявлением (10.1)

Несопоставленный формальный параметр (Unassociated Formal)

— Формальный параметр, не имеющий сопоставленного с ним фактического параметра, является несопоставленным (5.2.1.2)

Неявное выражение (Default Expression)

— Неявное выражение обеспечивает неявное значение, используемое для формального параметра настройки, порта или параметра, если этот объект интерфейса не сопоставлен. Неявное выражение также используется для обеспечения начального значения сигналов и их драйверов (4.3.1.2, 4.3.3)

Неявный сигнал (Implicit Signal)

— Любой из сигналов S'Stable(T) или S'Quiet(T), а также любой неявный сигнал GUARD является неявным сигналом (12.6.2)

6

Нижняя граница (Lower Bound)

— Для диапазона L to R или L downto R наименьшее из значений L и R называется нижней границей диапазона (3.1)

Нисходящий

(Descending)

— Диапазон L (downto) R называется нисходящим диапазоном (3.1)

Область действия (Scope)

— Областью действия объявления является часть текста, в которой объявление может быть видимо. Эта часть определяется правилами видимости и совмещения (10.2)

Обозначать

(Denote)

— В тех местах, где объявление видимо, идентификатор, заданный в этом объявлении, обозначает понятие, описанное в этом объявлении

Объект

(Object)

— Понятие, содержащее значение конкретного типа, является объектом. Существуют три класса объектов: константы, сигналы и переменные (4.3)

Объект проекта (Design Entity)

— Объявление объекта вместе с сопоставленным ему типом архитектуры определяет объект проекта. Различные объекты проекта могут использовать одно и то же объявление объекта, что позволяет описывать различные компоненты с одинаковым интервалом или различные представления одного и того же компонента (1)

Объявление

(Declaration)

— Объявление определяет понятие и сопоставляет идентификатор (или другое обозначение) с этим понятием. Такое сопоставление имеет эффект внутри области текста, называемой областью действия объявления. Внутри области действия объявления существуют места, где можно использовать этот идентификатор для ссылки на сопоставленное с ним описанное понятие. В таких местах этот идентификатор является простым именем этого понятия; в свою очередь считается, что это имя обозначает сопоставленное с ним понятие

Объявление объекта (Entity Declaration)

— Объявление объекта устанавливает интерфейс между конкретным объектом проекта и средой, в которой он используется. Оно также содержит объявления и операторы, составляющие часть этого объекта. Конкретное объявление объекта может быть использовано множеством объектов проекта, имеющих различную архитектуру. Таким образом объявление объекта потенциально может представлять класс объектов проекта, имеющих одинаковый интерфейс (1, 1.1)

Ограничение

(Constraint)

— Ограничение определяет (необязательно собственное) подмножество значений типа. Существуют ограничения индекса, ограничения диапазона и ограничения размера (3)

Ограничение диапазона (Range Constraint)

— Ограничение диапазона задает диапазон значений в типе (3.1, 3.1.2)

Ограничение индекса (Index Constraint)

— Ограничение индекса устанавливает диапазон индекса для каждого индекса в индексируемом типе и, тем самым, границы массива (3.2.1.1)

Омограф

(Homograph)

— Каждое из двух объявлений считается омографом другого, если оба они имеют один и тот же идентификатор, и совмещение разрешено для одного из двух. Если совмещение разрешено для обоих объявлений, то каждое из двух является омографом другого, если они имеют один и тот же идентификатор, символ оператора или символьный литерал, а также профиль параметров и типа результата (10.3)

Отдельное объявление объекта (Single Object Declaration)

— Объявление объекта называется отдельным, если список идентификаторов в этом объявлении содержит один идентификатор (4.3.1)

Ошибка

(Error)

— Ошибка является условием, при котором исходное описание становится недействительным. Если ошибка обнаружена во время анализа модуля


Ошибочный

(Erroneous)

Параллельный оператор (Concurrent Statement)


Параметр

(Parameter)


Параметр генерации (Generate Parameter)

Параметр настройки (Generic)


проекта, то для этого исходного описания не будет создан соответствующий библиотечный модуль. Ошибка выполнения вызывает прекращение процесса моделирования (11.4)

—    Термин “ошибочный” используется в отношении ошибочного условия, которое не всегда может быть обнаружено (2.1.1.1)

—    Параллельные операторы выполняются асинхронно без определенной относительной последовательности. Параллельные операторы используются для описания потока данных и структуры (9)

—    Параметр — это константа, переменная или сигнал, объявленные в списке интерфейса спецификации подпрограммы. Характеристики класса объектов, к которому данный параметр принадлежит, также являются характеристиками этого параметра. Кроме того, параметр имеет сопоставленный ему вид, задающий направление прохождения данных через этот параметр (2.1.1)

—    Параметр генерации объявляется оператором генерации (9.7)


— Параметр настройки является константой, описанной в объявлении компонента или в объявлении объекта. В отличие от констант, значение параметра настройки может быть задано извне либо в операторе конкретизации компонента, либо в спецификации конфигурации (1.1.1.1)


Параметр цикла (Loop Parameter)

Пассивный

(Quiet)

Пассивный процесс (Passive Process)


Первичный

(Primary)

Переменная

(Variable)

Перечисляемый тип (Enumeration Туре)


—    Параметр цикла объявляется самим оператором цикла (8.8)

—    В данном цикле моделирования сигнал, не являющийся активным, считается пассивным (12.6.1)

—    Считается, что оператор процесса является пассивным процессом, если ни сам процесс, ни какая-либо из процедур, для которых этот процесс является родителем, не содержат оператор назначения сигнала (9.2)

—    Один из элементов, составляющих выражение, называется первичным (7.1)

—    Переменная — объект с единственным текущим значением (4.3.1.3)


Плавающий тип (Floating Point Types)

Планируемая выходная форма сигнала (Projected Output Waveform)


—    Перечисляемый тип представляет собой тип, значения которого определяются значением списка или перечислением этих значений. Значения представляются интервалами перечисления (3.1, 3.1.1)

—    Плавающие типы обеспечивают приближенное представление действительных чисел (3.1, 3.1.4)

—    Планируемая выходная форма сигнала состоит из последовательности, содержащей одну или более транзакций, представляющих текущее и планируемые будущие значения драйвера (9.2.1)


Подключен

(Connected)


Подразумевать

(Imply)


Подтип

(Subtype)


Формальный порт, сопоставленный с фактическим портом или сигналом, считается подключенным. Формальный порт, сопоставленный с зарезервированным словом open, считается неподключенным (1.1.1.2)

Считается, что связывающее указание в спецификации конфигурации подразумевает объект проекта, обозначаемый непосредственно, косвенно или по умолчанию (5.2.1.1)

Подтип — тип вместе с наложенным ограничением (3)


8


Подтип индекса (Index Subtype)

— Подтипом индекса для конкретной позиции индекса в массиве является подтип, обозначаемый меткой типа в соответствующем определении подтипа индекса (3.2.1)

Подтип результата (Result Subtype)

— Подтипом результата функции является подтип значения, возвращаемого этой функцией (2.1)

Подходить

(Appropriate)

— Считается, что префикс подходит для типа, если тип этого префикса является рассматриваемым типом или тип префикса является ссылочным типом, который указывает на рассматриваемый тип (6.1)

Подэлемент

(Subelement)

— Термин “подэлемент” используется взамен термина “элемент”, когда необходимо обозначить либо элемент, либо элемент другого элемента. В тех местах, где подэлементы исключены, используется термин “элемент” (3)

Позиционное

сопоставление

(Positional

Association)

— Считается, что элемент сопоставления является позиционным, если он не содержит явного формального указателя; в этом случае фактический указатель в данной позиции списка сопоставления относится к элементу интерфейса, стоящему в той же позиции в списке интерфейса (4.3.3.2, 7.3.2)

Полное объявление (Full Declaration)

— Полное объявление константы представляет собой объявление константы, стоящее в теле пакета и имеющее тот же идентификатор, что и неполное объявление константы, стоящее в соответствующем объявлении пакета. Полным объявлением типа является объявление, соответствующее неполному объявлению типа (2.6)

Полностью связан (Fully Bound)

— Экземпляр компоненты является полностью связанным, если связывающее указание для этого экземпляра подразумевает и объект и архитектуру (5.2.1.1)

Полный контекст (Complete Context)

— Полным контекстом является либо объявление, либо спецификация, либо оператор (10.5)

Порт

(Port)

— Портом является сигнал, описанный в списке интерфейса объявления объекта или в списке интерфейса объявления компонента. Кроме характеристик сигналов, порт имеет сопоставленный ему вид; этот вид ограничивает направления прохождения данных, допустимые для этого порта (1.1.1.2, 4.3.1.2)

Последовательный

оператор

(Sequential Statement)

— Последовательные операторы выполняются последовательно один за другим. Они используются для алгоритмического описания (8)

Предвыполнение

(Elaboration)

— Процесс, при помощи которого объявление достигает своего эффекта, называется предвыполнением объявления. После своего предвыполнения объявление считается предвыполненным. До окончания своего предвыполнения объявление считается (а также и до предвыполнения) не предвыполненным (12)

Преобразуемый

(Convertible)

— Операнд является преобразуемым, если существует неявное преобразование типа операции в данный тип (7.3.5)

Принадлежать диапазону (Belong)

— Считается, что значение V принадлежит диапазону, если отношенит (нижняя граница диапазона < ■ V) и (V < - верхняя граница диапазона) оба являются истинными (3.1)

Принадлежать подтипу (Belong)

— Считается, что значение принадлежит подтипу конкретного типа, если оно принадлежит этому типу и удовлетворяет наложенному ограничению (3)

Приостанавливать

(Suspend)

— Процесс, который прекратил свое выполнение и ожидает событие или истечение временного интервала, считается приостановленным (12.6.3)


Простое имя (Simple Name)


Профиль типа параметров (Parameter Туре Profile)

Профиль типа параметров и результата

(Parameter and Result Type Profile

Пустая транзакция (Null Transaction)

Пустое сечение (Null Slice)

Пустой диапазон (Null Range)


Пустой массив (Null Array)


Пустой элемент формы сигнала

(Null Waveform Element)

Рабочая библиотека (Working Library)


—    Простое имя понятия — это либо идентификатор, сопоставленный этому понятию при его объявлении, либо другой идентификатор, сопоставленный этому понятию в объявлении дополнительного имени (6.2)

—    Считается, что два списка этих параметров имеют один и тот же профиль типа параметров, если и только если они содержат одинаковое количество параметров и в каждой позиции списков соответствующие параметры имеют один и тот же базовый тип (2.3)

—    Считается, что две подпрограммы имеют один и тот же профиль типа параметров и результата, если и только если обе они имеют один и тот же профиль типа параметров и либо обе они являются функциями с одинаковым базовым типом результата, либо ни одна из них Не является функцией (2.3)

—    Транзакция, получаемая вычислением пустого элемента формы сигнала, является пустой транзакцией (8.3.1)

—    Сечение, дискретный диапазон которого есть пустой диапазон, является пустым сечением (6.5)

—    Пустой диапазон — это диапазон, задающий пустое подмножество значений; диапазон L to R является пустым диапазоном, если L>R; диапазон L downto R является пустым диапазоном, если L<R (3.1)

—    Если в ограничении индекса массива какой-либо из дискретных диапазонов определяет пустой диапазон, то такой массив является пустым массивом, не имеющим компонентов (3.2.1.1)

—    Пустой элемент формы сигнала используется для отключения драйвера защищенного сигнала (8.3.1)


Разрешение

(Resolution)


Разрешенное значение (Resolved Value)


Разрешенный сигнал (Resolved Signal)

Распространяется

(Extend)


Регистр

(Register)


Регулярная структура (Regular Structure)


—    Библиотека Проекта, в которую помещается результат анализа (библиотечный модуль) модуля проекта, является рабрчей библиотекой (11.2)

—    Разрешение — процесс выявления разрешенного значения разрешенного сигнала, основанный на значениях множества источников этого сигнала (2.4, 4.3.1.2)

—    Разрешенным значением сигнала является результат функции разрешения, сопоставленной с этим сигналом, определяемый как функция от множества входов, представленных источниками этого сигнала (2.4, 4.3.1.2)

—    Разрешенный сигнал — сигнал, который имеет сопоставимую ему функцию разрешения (4.3.1.2)

—    Если считается, что часть текста в области объявлений с разобщенными частями распространяется от некоторой особой точки раздела объявлений до конца этой области, то эта часть является соответствующим подмножеством этой области объявлений (и не включает промежуточных сегментов объявлений, стоящих между объявлением интерфейса и соответствующим объявлением тела) (10.1)

—    Регистр — это один из видов защищенного сигнала. Регистр сохраняет свое последнее значение даже в том случае, если все его драйверы отключены (4.3.1.2)

—    Регулярная структура состоит из экземпляров одного или более компонентов, устроенных и взаимосвязанных (при помощи сигналов)


ю


Родитель

(Parent)

в повторяющемся режиме. Каждый экземпляр может иметь характеристики, зависящие от его позиции внутри группы экземпляров. Регулярные структуры могут быть представлены через использование оператора генерации (9.7)

— Считается, что процесс или подпрограмма являются родителем данной процедуры, если этот процесс или подпрограмма содержат оператор вызова процедуры этой процедуры или ее родителя (2.2)

Самый длинный статический префикс (Longest Static Prefix

— Самым длинным статическим префиксом имени сигнала является само имя, если оно является статическим именем сигнала; в противном случае им является самый длинный префикс имени, являющегося статическим именем сигнала (6.1)

Связанный

(Bound)

— Метка считается связанной, если она идентифицирована в списке экземпляров спецификации конфигурации (5.2)

Сечение

(Slice)

— Сечением является одномерный массив, состоящий из последовательности следующих друг за другом элементов другого одномерного массива (6.5)

Сигнал

(Signal)

— Сигнал — объект, имеющий историю своих прошлых значений. Сигнал может иметь множество драйверов, каждый из которых имеет свое текущее значение и планируемые будущие значения. Термин “сигнал” относится к объектам, описанным либо при помощи объявлений сигнала, либо при помощи объявлений порта (4.3.1.2)

Символьный тип (Character Type)

— Перечисляемый тип является символьным типом, если, по крайней мере, один из его литералов перечисления является символьным литералом (3.1.1)

Скалярный тип (Scalar Type)

— Скалярный тип — тип, значения которого не имеют элементов. Скалярными типами являются: целые, плавающие, физические и перечисляемые типы (3, 3.1)

Скрытый

(Hidden)

— Объявление может быть скрыто в своей области действия, если последняя содержит омограф этого объявления. Скрытое объявление не является непосредственно видимым (10.3)

Слева от (То the Left Of)

— Считается, что значение VI находится слева от значения V2 внутри данного диапазона, если оба они принадлежат этому диапазону и V2 следует за VI (в случае восходящего диапазона) или V2 предшествует VI (в случае нисходящего диапазона) (3.1)

Событие

(Event)

— Считается, что на сигнале произошло событие, если текущее значение этого сигнала изменилось в результате замещения этого сигнала его эффективным значением (12.6.1)

Совместимый

(Compatible)

— Ограничение диапазона совместимо с подтипом, если каждая граница этого диапазона принадлежит этому подтипу или если это ограничение диапазона определяет пустой диапазон. Ограничение индекса совместимо с индексируемым типом, если и только если ограничение, определяемое каждым дискретным диапазоном в этом ограничении индекса, совместимо с соответствующим подтипом индекса в этом индексируемом типе (3.1, 3.2.1)

Совмещение

(Overloading)

— Идентификаторы или литералы перечисления, обозначающие два разных понятия, считаются совмещенными. Совмещенными также могут быть литералы перечисления, подпрограммы и предопределенные операторы (2.3.1, 3.1.1)

Согласование

(Conform)

— Считается, что две спецификации программы согласуются, если (исключая ряд допустимых минимальных вариаций) они представлены одной и той же последовательностью лексических элементов, и


Соответствующий

элемент

(Matching Element)


Сопоставленный драйвер (Associated Dttjver)


Составной тип (Composite Туре)


Спецификация

(Specification)


Спецификация

подпрограммы

(Subprogram

Specification)

Список интерфейса (Interface List)


соответствующим лексическим элементам дается правилами видимости одинаковое значение. Согласование аналогично определено для объявления неполных констант (2.7)

—    Соответствующими элементами являются элементы двух значений составного типа, определенных таким образом, что они подходят друг другу при использовании их в ряде логических операций и операциях отношения (7,2.2)

—    Сопоставленный драйвер для оператора назначения сигнала — это отдельный драйвер этого сигнала в (явном или эквивалентном) операторе процесса, содержащем этот оператор назначения (9.2.1)

—    Составной тип — тип, значения которого состоят из элементов. Имеются два класса составных типов: индексируемый и структурный типы 13, 3.2)

—    Спецификация сопоставляет дополнительную информацию с ранее объявленным понятием. Существуют четыре вида спецификаций: спецификации атрибута, спецификации инициализации, спецификации конфигурации и спецификации отключения (5)

—    Спецификация подпрограммы задает обозначение подпрограммы, все формальные параметры подпрограммы (если они есть) и тип результата (в случае, если подпрограмма является функцией) (2.1)


— Список интерфейса описывает объекты интерфейса, требуемые подпрограммой, компонентом, объектом проекта или оператором блока (4.3.3.1)


Список интерфейса настройки (Generic Interface List)

Список интерфейса параметров (Parameter Interface List)

Список интерфейса портов

(Port Interface List)

Список сопоставления (Association List)


— Список интерфейса настройки определяет локальные или формальные константы настройки (1.1.1.1, 4.3.3.1)


Ссылочный тип (Access Type)

Статический

(Static)

Статический диапазон (Static Range)

Статическое имя (Static Name)


—    Список интерфейса параметров описывает параметры для подпрограммы. Он может содержать объявления констант интерфейса, объявления переменных интерфейса, объявления сигналов интерфейса или комбинацию этих объявлений (4.3.3.1)

—    Список интерфейса портов описывает порты блока, компонента или объекта проекта. Он состоит только из объявлений сигналов интерфейса (1.1.1.2, 4.3.1.1)

—    Список сопоставления устанавливает соответствие между именами локальных или формальных портов или параметров и локальными или фактическими именами и выражениями (4.3.3.2)

—    Значение ссылочного типа может указывать на объект, созданный генератором (3.3)

—    См. локально статический и глобально статический


Статическое имя сигнала

(Static Signal Name)


—    Статическим диапазоном является диапазон, границы которого представлены статическими выражениями (7.4)

—    Имя считается статическим, если каждое выражение, входящее в это имя как часть (например, выражение индекса), является статическим (6.1)

—    Статическое имя сигнала — это статическое имя, обозначающее сигнал

(6.1)


12


—    Структурный тип является составным типом. Значения структурного типа состоят из именованных элементов (3.2.2, 7.3.2.1).

Структурный тип (Record Туре)

Текущее значение (Current Value)

Тело архитектуры (Architecture Body)

—    Текущим значением драйвера является компонент значения транзакции, компонент времени которой не превышает текущего времени моделирования (9.2.1)

Тип

(Туре)

Транзакция

(Traiisaction)

—    Тело архитектуры описывает внутреннюю организацию или функционирование объекта проекта. Каждое тело архитектуры, сопоставленное с конкретным объявлением объекта проекта, определяет уникальный объект проекта. Архитектура может быть использована для описания поведения, данных или структуры объекта проекта (1, 1.2)

—    Тип — множество значений и операций над ними (3)

Транспортная задержка (Transport Delay)

—    Транзакция представляет собой совокупность, состоящую из двух компонентов: значения и времени. Компонент значения представляет (текущее или) будущее значение драйвера; компонент времени представляет относительную задержку до того момента, когда это значение станет текущим (9.2.1)

Удовлетворять

(Satisfy)

—    транспортная задержка является дополнительной моделью задержки для назначения сигнала. Транспортная задержка является характеристикой устройств (таких как линии передачи), которые выставляют бесконечно малую частоту срабатывания: любой импульс передается независимо от того, насколько мала его длительность (8.3)

Указываемый подтип (Designated Subtype)

—    Считается, что значение удовлетворяет ограничению, если это значение находится в подмножестве, определяемом этим ограничением (3, 3.2.1.1)

—    Указываемым подтипом ссылочного типа является подтип, определяемый указанием подтипа в описании этого ссылочного типа

(3.3)

Указываемый тип (Designated Туре)

—    Указываемым типом ссылочного типа является базовый тип подтипа, определяемого указанием подтипа в описании этого ссылочного типа

Указывать

(Designate)

Укороченная операция

(Short_Circuit

Operation)

(3.3)

—    Считается, что непустое ссылочное значение указывает на объект

(3.3)

Универсальный

действительный

(Universal_Real)

Универсальный целый (Universal_Integer)

Упорядоченный слева направо

(Left_to_Right Order)

—    Укороченная операция — операция, для которой правый операнд вычисляется только в том случае, когда левый имеет определенное значение. Укороченными операциями являются предопределенные логические операции aid, or, nand и nor, определенные для операндов типов BIT и BOOLEAN (7.2)

—    Плавающие литералы — литералы анонимного предопределенного типа, называемого универсальный_действительный в данном руководстве (3.1.4, 7.3.1)

—    Целые литералы — литералы анонимного предопределенного типа, называемого универсальный_целый в данном руководстве (3.1.2, 7.3.1)

—    Последовательность значений конкретного диапазона является упорядоченной слева направо, если каждое значение в этой последовательности стоит левее следующего значения в этой последовательности внутри этого диапазона (за исключением последнего значения) (3.1)


Файловый тип (File Туре)

Файл проекта (Design File)

Фактический параметр (Actual)


Физический тип (Physical Туре)

Формальный параметр (Formal)


Форма сигнала (Waveform)


Функция разрешения (Resolution Function)


Целый тип (Integer Туре)

Числовой тип (Numeric Туре)

Читать

(Read)

Шина

(Bus)


Экземпляр

(Instance)


Элемент сопоставления (Association Element)

Эффективное значение (Effective Value)


Ядро модели (Kernel Process)


—    Файловые типы обеспечивают доступ к файлам, находящимся в среде главной системы (3, 3.4)

—    Файл проекта представляет собой последовательность, состоящую из одного или более модулей проекта (11.1)

—    Фактический параметр это либо выражение, либо порт, либо сигнал, либо переменная, сопоставленные с формальным портом, формальным параметром или формальным параметром настройки (1.1.1.2, 4.3.3.2, 5.2.1.2)

—    Физический тип используется для представления измерений некоторой величины (3.1, 3.1.3)

—    Формальным параметром является либо формальный порт или формальный параметр настройки объекта проекта, либо формальный параметр подпрограммы (2.1, 2.1.1, 4.3.3.2, 5.2.1.2)

—    Форма сигнала состоит из серий транзакций. Каждая транзакция представляет будущее значение драйвера сигнала. Все транзакции в форме сигнала упорядочены по времени,то есть одна транзакция возникает перед другой в том случае, если первая представляет значение, запланированное на более ранний срок, чем значение, представленное другой транзакцией (8.3)

—    Определяемая пользователем функция, вычисляющая разрешенное значение разрешенного сигнала, называется функцией разрешения (2.4, 4.3.1.2)

—    Значения целого типа представляют целые числа внутри заданного диапазона (3.1, 3.1.2)

—    Числовым типом является либо целый, либо плавающий, либо физический тип (3.1)

—    Считается, что значение объекта читается, если имеется ссылка на его значение или на его атрибут (4.3.3)

— Шина является одним из видов защищенного сигнала. Шина принимает задаваемые пользователем значения, когда все ее источники отключены (4.3.3, 4.3.1.2)

—    Оператор конкретизации компонента представляет экземпляр соответствующего компонента. Каждый экземпляр компонента может иметь различные фактические параметры, сопоставляемые с его локальными портами или параметрами настройки (9.6.1)

— Элемент сопоставления связывает фактический или локальный параметр с локальным или формальным параметром (4.3,3.2)

—    Эффективное значение конкретного сигнала представляет собой значение, получаемое вычислением ссылки на этот сигнал внутри выражения (12.6.1)

—    Ядро модели осуществляет выполнение операций ввода/вывода, распространение значений сигналов и изменение значений неявных сигналов (таких, как S’Stable(N)); а также выявление происходящих событий, выполнение соответствующих процессов в ответ на эти события (12.6)


1 ОБЪЕКТЫ ПРОЕКТА И КОНФИГУРАЦИИ

Объект проекта (design entity) является первичной абстракцией аппаратных средств в VHDL. Он представляет собой часть аппаратного проекта, который имеет четко определенные входы и выходы и который выполняет четко определенную функцию. Объект проекта может представлять всю проектируемую систему, некоторую подсистему, плату, кристалл, макро-ячейку, логический элемент или любой другой


14


Предисловие

1    РАЗРАБОТАН И ВНЕСЕН Российским научно-исследовательским институтом информационных систем (РосНИИ ИС) и Всероссийской ассоциацией организаций, заинтересованных в применении языка VHDL (ВАЯПС).

2    ПРИНЯТ и ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 13.03.95. . . N 129.

3    Настоящий стандарт содержит полный аутентичный текст стандарта “IEEE Std 1076—87. IEEE Standard VHDL. Language Reference Manual” (IEEE Std 1076—87. Стандарт Института инженеров по электротехнике и радиоэлектронике США на Язык Описания Аппаратуры Сверхскоростных Интегральных Схем. Руководство пользователя языка). При обнаружении разночтений приоритет имеет IEEE Std 1076—87.

4    ВВЕДЕН ВПЕРВЫЕ

© ИПК Издательство стандартов, 1995

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Госстандарта России

п

уровень абстракции, находящийся между перечисленными. Конфигурация (configuration) может быть использована для описания того, как объекты проекта должны быть соединены для создания полного проекта.

Объект проекта может быть описан в терминах иерархии блоков (blocks), каждый из которых представляет часть всего проекта. Блоком верхнего уровня в такой иерархии является сам объект проекта; такой блок является внешним (external) блоком, который располагается в библиотеке и может быть использован в качестве компонента в других проектах. Вложенные блоки в этой иерархии являются внутренними (internal) блоками, описанными с помощью операторов блока (см. 9.1).

Объект проекта может также быть описан в терминах взаимосвязанных компонентов. Каждый компонент объекта проекта может быть связан с объектом проекта более низкого уровня для того, чтобы определить структуру или поведение этого компонента. Результатом успешной декомпозиции объекта проекта в компоненты и связывания этих компонентов с другими объектами проекта, которые в свою очередь могут быть декомпозированы таким же способом, является иерархия объектов проекта, представляющих весь проект в целом. Такая совокупность объектов проекта называется иерархией проекта (design hierarchy). Само связывание, необходимое для описания иерархии проекта, может быть задано в конфигурации объекта верхнего уровня в этой иерархии.

В данном разделе даны способы описания объектов проекта и конфигураций. Объект проекта описывается объявлением объекта (entity declaration) вместе с соответствующим архитектурным телом (architecture body). Конфигурация описывается объявлением конфигурации (configuration declaration).

1.1. Объявления объектов

Объявление объекта описывает интерфейс между данным объектом проекта и средой, в которой он используется. Оно также может содержать объявления и операторы, являющиеся составной частью этого объекта. Данное объявление объекта может совместно использоваться многими объектами проекта, имеющими различную архитектуру. Таким образом, объявление объекта может потенциально представлять некоторый класс объектов проекта с одним и тем же интерфейсом.

Пример —

entity_declaration :: -entity identifier is entity_header entity_declarative_part [ begin entity_statement_part ] end [ entity_simple_name ];

Заголовок объекта (entity header) и раздел объявлений (entity declarative part) состоят из описательных элементов, присущих каждому объекту проекта, чей интерфейс описывается данным объявлением объекта. Раздел операторов объекта (entity statement part), если он имеется, задает параллельные операторы, присутствующие в каждом объекте проекта такого класса.

Если в конце описания объекта используется простое имя (simple name), то оно должно совпадать с идентификатором (identifier) этого описания.

1.1.1 Заголовок объекта

Заголовок объекта содержит объявления объектов, используемых для связи между объектом проекта и окружающей средой.

entity_header :: -

[ formal_generic_clause ] t /ormo/_port_clause ]

generic_clause :: -

generic (generic_list);

port_clause :: -port (port_list);

Список параметров настройки (generic list) в формальном описании настройки (formal generic clause) задает общие константы, значения которых определяются окружающей средой. Список портов (port list) в формальном описании портов (formal port clause) задает вхсдные/выходные порты объекта проекта.

15

ГОСТ Р 50754-95

СОДЕРЖАНИЕ

0.1 Область применения..................................................... 1

0.2 Нормативные ссылки .................................................... 1

0.3 Введение........................................................... 1

0.4 Определения......................................................... 2

1    Объекты проекта и конфигурации.............................................. 14

1.1    Объявления объектов .................................................... 15

1.1.1    Заголовок объекта..................................................... 15

1.1.1.1    Параметры настройки.................................................. 16

1.1.1.2    Порты .......................................................... 16

1.1.2    Раздел объявлений объекта................................................ 17

1.1.3    Раздел операторов объекта ................................................ 18

1.2 Архитектурные тела......... 18

1.2.1    Раздел объявлений архитектурного тела......................................... 19

1.2.2    Раздел операторов архитектурного тела......................................... 19

1.3 Объявления конфигурации .................................................20

1.3.1    Конфигурация блока ...................................................21

1.3.2    Конфигурация компонента ................................................22

2    Подпрограммы и пакеты ...................................................23

2.1    Объявления подпрограмм ..................................................23

2.1.1    Формальные параметры..................................................24

2.1.1.1    Передача параметров класса constant и variable ...................................24

2    1.1.2 Передача параметров класса signal...........................................25

2.2    Тела подпрограмм......................................................25

2.3    Совмещение подпрограмм..................................................26

2.3.1    Совмещение операций ..................................................27

2.4    Функции разрешения....................................................27

2.5    Объявления пакетов.....................................................28

2.6    Тела пакетов.........................................................29

2.7    Правила согласования.................................................... 30

3    Типы..............................................................31

3.1    Скалярные типы.......................................................31

3.1.1    Перечисляемые типы ...................................................32

3.1.1.1    Предопределенные перечисляемые типы........................................32

3.1.2    Целые типы ........................................................33

3.1.2.1    Предопределенные целые типы.............................................33

3.1.3    Физические типы.....................................................33

3.1.3.1    Предопределенные физические типы..........................................35

3.1.4    Плавающие типы .....................................................35

3.1.4.1    Предопределенные плавающие типы..........................................35

3.2    Составные типы.......................................................36

3.2.1    Индексируемые типы ...................................................36

3.2.1.1    Ограничения индекса и дискретные диапазоны....................................37

3.2.1.2    Предопределенные индексируемые типы........................................38

3.2.2    Структурные типы.....................................................39

3.3    Ссылочные типы ......................................................39

3.3.1    Неполные описания типов ................................................40

3.3.2    Размещение и уничтожение объектов..........................................41

3.4    Файловые типы.......................................................41

3.4.1    Файловые операции....................................................41

4    Объявления ..........................................................42

4.1    Объявления типов............... 42

4.2    Объявления подтипов ....................................................43

4.3    Объекты ...........................................................44

4.3.1    Объявления объектов ...................................................44

4.3.1.1    Объявления    констант ..................................................44

4.3.1.2    Объявления    сигналов ..................................................45

4.3.1.3    Объявления    переменных ................................................46

4.3.2    Объявления файлов....................................................47

4.3.3    Объявления интерфейсов .................................................47

4.3.3.1 Списки интерфейсов ..................................................49

4-3.3.2 Списки сопоставлений..................................................49

III

4.3.4    Объявление дополнительного имени ..................... 50

4.4    Объявление атрибутов....................................................51

4.5    Объявления компонентов ..................................................52

5    Спецификации.........................................................52

5.1    Спецификация атрибута ..................................................52

5.2    Спецификация конфигурации ...............................................53

5.2.1    Связывающее указание..................................................54

5.2.1.1    Аспект объекта проекта.................................................54

5.2.1.2    Аспект отображения параметров настройки и аспект отображения портов.....................55

5.2.2    Неявное связывающее указание .............................................55

5.3 Спецификация отключения.................................................56

6    Имена .............................................................57

6.1    Имена ............................................................57

6.2    Простые имена ....................................................... 58

6.3    Составные имена ......................................................58

6.4    Индексируемые имена ...................................................59

6.5    Сечения ...........................................................59

6.6    Атрибуты...........................................................59

7    Выражения........................................................... 60

7.1    Выражения.......................................................... 60

7.2    Операторы..........................................................60

7.2.1    Логические операторы...................................................61

7.2.2    Операторы отношения................................................... 61

7.2.3    Аддитивные операторы .................................................. 62

7.2.4    Мультипликативные операторы •.............................................. 63

7.2.5    Прочие операторы ..................................................... 64

7.3 Операнды .......................................................... 65

7.3.1    Литералы.......................................................... 65

7.3.2    Агрегаты .......................................................... 66

7.3.2.1    Агрегаты структур....................................................66

7.3.2.2    Агрегаты массивов....................................................66

7.3.3    Вызовы функций ..................................................... 67

7.3.4    Квалифицированные выражения............................................. 67

7.3.5    Преобразование типа ................................................... 68

7.3.6    Генераторы......................................................... 69

7.4    Статические выражения ........ 69

7.5    Универсальные выражения................................................. 71

8    Последовательные операторы.................................................71

8.1    Оператор    ожидания.....................................................72

8.2    Оператор    утверждения ...................................................72

8.3    Оператор    назначения    сигнала ...............................................73

8.3.1    Изменение планируемой выходной формы сигнала...................................74

8.4    Оператор присваивания переменной............................................75

8.4.1    Присваивание индексируемой переменной........................................76

8.5    Оператор    вызова процедуры ................................................ 76

8.6    Условный    оператор    ..................................................... 76

8.7    Оператор    выбора ...................................................... 76

8.8    Оператор    цикла....................................................... 77

8.9    Оператор    перехода    ..................................................... 78

8.10    Оператор выхода...................................................... 78

8.11    Оператор возврата ..................................................... 78

8.12    Пустой оператор......................................................79

9    Параллельные операторы...................................................79

9.1    Оператор    блока ....................................................... 79

9.2    Оператор    процесса    ..................................................... 80

9.2.1    Драйверы.......................................................... 81

9.3    Параллельный вызов процедуры.............................................. 81

9.4    Параллельный оператор утверждения ........................................... 82

9.5    Параллельный оператор назначения сигнала ....................................... 82

9.5.1    Условное назначение сигнала .............................................. 84

9.5.2    Выборочное назначение сигнала ............................................. 85

9.6    Оператор конкретизации компонента ........................................... 85

9.6.1    Конкретизация компонента................................................ 86

9.7    Оператор генерации.....................................................88

10    Область действия и видимость ...............................................88

10.1    Область объявлений ....................................................88

10.2    Область действия объявлений............................................... 89


10.3    Видимость.......................

10.4    Описания использования...............

10.5    Контекст разрешения совмещения .........

11    Модули проекта и их анализ.............

11.1    Модули проекта ...................

11.2    Библиотеки проекта . ................

11.3    Описание контекста .................

11.4    Порядок анализа...................

12    Предвыполнение и выполнение............

12.1    Предвыполнение иерархии проекта .........

12.2    Предвыполнение заголовка блока..........

12.2.1    Описание параметров настройки .........

12.2.2    Описание отображения параметров настройки . .

12.2.3    Описание портов..................

12.2.4    Описание отображения портов ..........

12.3 Предвыполнение раздела объявлений........

12.3.1    Предвыполнение объявления............

12.3.1.1    Объявления и тела подпрограмм ........

12.3.1.2    Объявления типов ................

12.3.1.3    Объявления подтипов ..............

12.3.1.4    Объявления объектов...............

12.3.1.5    Объявления дополнительных имен .......

12.3.1.6    Объявления атрибутов ..............

12.3.1.7    Объявления компонентов.............

12.3.2 Предвыполнение спецификации..........

12.3.2.1    Спецификации атрибутов ............

12.3.2.2    Спецификации конфигураций..........

12.3.2.3    Спецификация отключения ...........

12.4 Предвыполнение раздела операторов........

12.4.1    Операторы блока..................

12.4.2    Операторы генерации ...............

12.4.3    Операторы конкретизации компонентов .....

12.4.4    Другие параллельные операторы .........

12.5    Динамическое предвыполнение ...........

12.6    Выполнение модели .................

12.6.1    Распространение значений сигналов .......

12.6.2    Изменение неявных сигналов...........

12.6.3    Цикл моделирования................

13    Лексические элементы.................

13.1    Набор символов ...................

13.2    Лексические элементы, разделители и ограничители

13.3    Идентификаторы...................

13.4    Абстрактные литералы................

13.4.1    Десятичные литералы ...............

13.4.2    Базированные литералы..............

13.5    Символьные литералы................

13.6    Строковые литералы.................

13.7    Битово-строковые литералы.............

13.8    Комментарии.....................

13.9    Зарезервированные слова ..............

13.10    Возможные замены символов ...........

14    Предопределенное окружение языка.........

14.1    Предопределенные атрибуты.............

14.2    Пакет STANDARD...................

14.3    Пакет ТЕХТЮ.....................

Приложение А Сводка синтаксических правил .....

V


ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ ЦИФРОВЫХ СИСТЕМ VHDL Описание языка

VHSIC Hardware Description Language. Language reference manual

Дата введения 1996—01—01

0.1 ОБЛАСТЬ ПРИМЕНЕНИЯ

Настоящий стандарт распространяется на программные и технические средства проектирования радиоэлектронной аппаратуры (РЭА) и больших интегральных схем (БИС).

Стандарт определяет синтаксис и семантику языка VHDL (Very high speed integrated circuit Hardware Description Language), который предназначен для формального представления цифровых систем (ЦС) различного уровня функциональной (вычислительный комплекс, ЭВМ, устройство, узел) и (или) конструктивной (шкаф, стойка, блок, плата, БИС) сложности на различных уровнях детализации (алгоритм функционирования, регистровые передачи, вентильная схема). VHDL-описание ЦС используется для фиксации представления ЦС в процессе ее проектирования, для изучения ЦС в процессе ее эксплуатации и ремонта.

Стандарт применяется в автоматизированных системах проектирования РЭА и БИС.

0.2 НОРМАТИВНЫЕ ССЫЛКИ

В настоящем стандарте использованы ссылки на следующие стандарты:

ГОСТ 27463-87 Системы обработки информации. 7-битные кодированные наборы символов ГОСТ 27465-87 Системы обработки информации. Символы. Классификация, наименование и обозначение

ГОСТ Р 34.303-92 Системы обработки информации. 8-битные кодированные наборы символов

0.3 ВВЕДЕНИЕ

Описание языка VHDL дано при помощи контекстно-независимого синтаксиса вместе с контекстнозависимыми синтаксическими и семантическими требованиями, представленными в повествовательной форме. Контекстно-независимое описание синтаксиса дано в упрощенном варианте форм Бэкуса-Наура, а именно:

а)    слова, состоящие из строчных букв алфавита и содержащие в ряде случаев символ подчеркивания, используются для обозначения синтаксических категорий, например:

formal_port_list.

Если имя категории используется не по назначению (то есть не для описания синтаксических правил), то символы подчеркивания заменяются пробелами. Для данного примера это будет formal port list;

б)    слова, выделенные жирным шрифтом, используются для обозначения служебных (зарезервированных) слов языка VHDL, например:

array;

в)    вертикальная черта служит для разделения альтернативных употреблений, если последние не заключены вместе с этим символом в фигурные скобки. В противном случае вертикальная черта является частью конструкции, например:

letter_or_digit::- letter I digit choice :: - choice { I choice }

г)    квадратные скобки используются для выделения дополнительных (необязательных) употреблений, например два следующих правила являются эквивалентными:

return_statement :: - return [expression]; retum_statement :: *■ return;

Издание официальное


д)    фигурные скобки используются для выделения повторяющихся употреблений. Повторение может иметь место 0 и более раз; повторение раскрывается в рекурсивной форме слева направо. Например, два следующих правила являются эквивалентными:

term :: - factor {multiplying_operator factor}

term :: - factor I term multiplying_operator factor I

е)    если имя какой-нибудь синтаксической категории частично слева выделено курсивом, то это эквивалентно невыделенной части имени категории и рассматривается как дополнительная семантическая информация. Например, type_name и subtypejtame для понятия name являются эквивалентными;

ж)    выделение жирным шрифтом терминов в тексте указывает на определение этих терминов;

з)    термин si*nple_name используется в каждом случае употребления идентификатора, который уже обозначает некоторое объявленное понятие.

В некоторых разделах данного документа содержатся примеры и замечания. Примеры иллюстрируют возможные формы употребления описанных конструкций. Замечания используются для выделения последовательностей правил, описанных в данном разделе или в другом месте, и не должны рассматриваться как часть определения языка.

0.4 ОПРЕДЕЛЕНИЯ

В настоящем стандарте применяются следующие термины:


Агрегат

(Aggregate)


Активный драйвер (Active Driver)


Анализ

(Analysis)


Анонимный

(Anonymous)


Атрибут

(Attribute)


ASCII


Библиотека

(Library)

Библиотека проекта (Design Library)


—    Вычисление агрегата вырабатывает значение составного типа. Это значение задается указанием значений каждого из элементов агрегата. Для указания сопоставления значения и элемента может быть использовано либо позиционное сопоставление, либо именованное сопоставление (7.3.2)

—    Драйвер считается активным в течение цикла моделирования, в котором он принимает новое значение, независимо от того, отличается или нет это значение от предыдущих значений драйвера (12.6.1)

—    Анализ файла проекта, содержащего VHDL-описание, подразумевает синтаксический и семантический анализ этого описания и добавление промежуточной формы представления модулей проекта в библиотеку проекта (11.1)

—    Ряд имен создается неявно; простое имя такого описания не всегда определено и в этом случае такое описание считается анонимным. Базовый тип числового типа или индексируемого типа является анонимным типом; аналогично, объект, указываемый ссылочным значением, является анонимным (4.1)

—    Атрибут определяет некоторую характеристику именованного понятия. Некоторые атрибуты являются предопределенными атрибутами и могут быть одним из следующих видов: типом, диапазоном, значением, сигналом или функцией. Остальные атрибуты определяются пользователем и всегда являются константами (4.4)

—    Американский стандартный код обмена информацией. Пакет Standard содержит определение типа Character, представляющего набор символов ASCII (3.1.1, 14.2)

—    См. Библиотека проекта (design library).


Библиотека ресурсов (Resource Library)


—    Библиотека проекта представляет собой зависящее от реализации средство, позволяющее хранить промежуточные представления проанализированных описаний (11.2)

—    Библиотека ресурсов — библиотека, содержащая библиотечные модули, ссылка на которые имеется в анализируемом модуле (11.2)


2


Библиотечный модуль (Library Unit)

— Библиотечным модулем является промежуточная форма представления проанализированного модуля проекта (11.1)

Блок

(Block)

— Блок представляет часть иерархии проекта. Блоком является либо внешний блок, либо внутренний блок (1)

Бокс

(Box)

— Символ < > (называемый боксом) в определении подтипа индекса указывает на неопределенный диапазон (различные объекты этого типа необязательно должны иметь одинаковые границы и направления) (3.2.1)

Верхняя граница (Upper Bound)

— Для диапазона L to R или L downto R наибольшая из величин L или R называется верхней границей диапазона (3.1)

Вид

(Mode)

— Вид порта или параметра задает направление прохождения информации через этот порт или параметр. Значениями вида являются in, out, inout, buffer или linkage (4.3.3)

Видимый

(Visible)

— Объявление идентификатора считается видимым в конкретном месте текста, если согласно правилам видимости объявление определяет возможный смысл появления этого идентификатора. Видимость объявления может достигаться косвенно (то есть при помощи расширенных имен) или непосредственно (то есть при помощи простых имен) (10.3)

Внешний блок (External Block)

— Внешним блоком является блок, определяемый объектом проекта (1)

Внутренний блок (Internal Block)

— Вложенный блок в модуле проекта, определяемый оператором блока, является внутренним блоком (1)

Возобновляться

(Resume)

— Процесс, возобновляющийся в данном цикле моделирования, становится готовым для выполнения и выполнится в конце данного цикла моделирования (12.6.3)

Восходящий

(Ascending)

— Диапазон L to R называется восходящим диапазоном (3.1)

Входы

(Inputs)

— Сигналы, идентифицируемые самым длинным статическим префиксом каждого имени сигнала, входящего в качестве первичного в каждое выражение (отличное от выражения времени) внутри параллельного оператора назначения сигнала, являются входами этого оператора (9.5)

Выполняться

(Execute)

— Считается, что процесс выполняется, если он выполняет действия, заданные алгоритмом, описанным в разделе операторов этого процесса (12.6)

Выражение

(Expression)

— Выражение определяет вычисление значения (7.1)

Выражение защиты (Guard Expression)

— Выражение защиты представляет собой выражение, сопоставляемое с оператором блока, которое управляет назначением защищенных сигналов внутри этого блока (4.3.1.2., 9.1)

Выражение начального значения (Initial Value Expression)

— Выражение начального значения задает начальное значение, присваиваемое переменной или константе (4.3.1.3)

Генератор

(Allocator)

— Генератор является операцией, используемой для создания анонимных переменных объектов, доступных через ссылочные значения (3.3, 7.3.6)

ГОСТ Р 50754-95

Глобальное

статическое выражение (Globally Static Expression)

Глобальное статическое первичное (Globally Static Primary)

Диапазон

(Range)

Диапазон индекса (Index Range)

Дискретный диапазон (Discrete Range)

Дискретный массив (Discrete Array)

Дискретный тип (Discrete Type)

Дополнительное имя (Alias)

Драйвер

(Driver)

—    Глобальное статическое выражение является выражением, которое может быть вычислено в процессе предвыполнения иерархии проекта, в которой оно находится. Локально статическое выражение также является глобально статическим (7.4)

—    Глобальным статическим первичным является локальное статическое первичное или одна из определенных групп первичных, являющихся глобально статическими (7.4)

— Диапазон задает подмножество значений скалярного типа (3.1)

—    Диапазон значений, принадлежащих диапазону, соответствующему некоторому индексу, является диапазоном индекса (3.2.1)

—    Дискретным диапазоном является диапазон, границы которого имеют дискретный тип (3.2.1.1)

—    Дискретным массивом является одномерный массив, элементы которого имеют дискретный тип (7.2.2)

—    Дискретным типом является перечисляемый тип или целый тип (3.1)

— Альтернативное имя объекта (4.3.4)

Зависеть от библиотечного модуля (Depend)

Зависеть от значения

сигнала

(Depend)

—    Драйвер сигнала представляет собой вместилище проектируемой выходной формы этого сигнала. Значение сигнала является функцией текущих значений его драйверов. Каждый процесс, содержащий значение сигнала, неявно содержит драйвер этого сигнала. Оператор назначения сигнала оказывает влияние только на сопоставленный с ним драйвер

—    Модуль проекта, содержащий явно или неявно ссылку на другие библиотечные модули, зависит от этих модулей. Эта зависимость оказывает влияние на допустимый порядок анализа модулей проекта

Задающее значение (Driving Value)

Защита

(Guard)

Защищенное назначение (Guarded Assignment)

Защищенный сигнал (Guard Signal)

—    Текущее значение неявного сигнала R считается зависимым от текущего значения другого сигнала S, если R обозначает неявный сигнал S’STABLE(T), S’QUIET(T) или S’TRANSACTION, или, если R обозначает неявный сигнал GUARD, a S является любым другим неявным сигналом, имя которого задано внутри выражения защиты, определяющего текущее значение R (12.6.2)

—    Задающим значением сигнала является значение, которое этот сигнал поставляет в качестве источника другого сигнала (12.6.1)

См. выражение защиты (guard expression)

—    Защищенным назначением является параллельный оператор назначения сигнала, содержащий опцию guarded (9.5)

Защищенный целевой объект

(Guarded Target)

—    Сигнал, объявленный с использованием описателей register или bus является защищенным сигналом. Для таких сигналов назначение внутри оператора назначения защищенного сигнала имеет специальный смысл (4.3.1.2)

—    Целевой объект оператора назначения сигнала, состоящий исключительно из защищенных сигналов, является защищенным целевым объектом. Целевой объект, состоящий только из незащищенных сигналов, является незащищенным целевым объектом (9.5)

4