Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Автоматизация проектирования радиоэлектронных устройств связи..pdf
Скачиваний:
12
Добавлен:
15.11.2022
Размер:
5.53 Mб
Скачать

полного проекта, используется объявление конфигурации (configuration ^declaration).

В языке VHDL предусмотрен механизм пакетов для часто исполь­ зуемых описаний, констант, типов, сигналов. Эти описания помещаются в объявлении пакета (package declaration). Если пользователь использует не­ стандартные операции или функции, их интерфейсы описываются в объ­ явлении пакета, а тела содержатся в теле пакета (package_body).

Таким образом, при описании цифровой системы на языке VHDL, пользователь может использовать пять различных типов описаний: объяв­ ление объекта проекта, архитектурное тело, объявление конфигурации,

объявление пакета и тело пакета. Каждое из описаний является само­ стоятельной конструкцией языка VHDL, может быть независимо рассмот­ рено анализатором и поэтому получило название «модуль проекта» (design_unit). Модули проекта, в свою очередь, можно разбить на две кате­ гории: первичные и вторичные. К первичным модулям относятся различ­ ного типа объявления. Ко вторичным - отдельно анализируемые тела пер­ вичных модулей. Один или несколько модулей проекта могут быть поме­ щены в один файл, называемый файлом проекта (design_file).

Каждый проанализированный модуль проекта помещается в библио­ теку проекта (design_library) и становится библиотечным модулем (library_unit). Данная реализация позволяет создать любое число библиотек проекта. Каждая библиотека проекта в языке VHDL имеет логическое имя (идентификатор). Фактическое имя файла, содержащего эту библиотеку, может совпадать или не совпадать с логическим именем библиотеки проекта.

По отношению к сеансу работы VHDL существует два класса биб­ лиотек проекта: рабочие библиотеки и библиотеки ресурсов.

Рабочая библиотека - это библиотека, с которой в данном сеансе работает пользователь и в которую помещается библиотечный модуль, по­ лученный в результате анализа модуля проекта.

Библиотека ресурсов - это библиотека, содержащая библиотечные модули, ссылка на которые имеется в анализируемом модуле проекта.

В каждый конкретный момент пользователь работает с одной рабо­ чей библиотекой и произвольным числом библиотек ресурсов.

2.1.2. Лексические элементы языка

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

2.1.2.1.Используемые символы

Втексте VHDL-описания разрешено использовать только символы

таблицы ASCII:

- заглавные и строчные латинские буквы (A Z, а ... z) - считаются равнозначными во всех выражениях;

- цифры 0 9;

-символ пробела;

-специальные символы (табл. 2.1).

 

 

Разрешенные символы VHDL

 

Таблица 2.1

 

 

 

 

 

Название

 

Символ

Название

 

Символ

Кавычки

 

и

Точка, период

 

 

 

 

#

 

 

/

Диез

 

Слэш, деление

 

 

Амперсант

 

&

Двоеточие

 

 

 

Апостроф

 

1

Точка с запятой

 

 

9

Левая круглая скобка

(

Меньше

 

 

<

Правая круглая скобка

>

Равно

 

 

=

Звезда, умножение

*

Больше

 

 

>

Плюс

 

+

Подчеркивание

 

 

 

Запятая

 

 

Вертикальная черта

т

Дефис, минус

 

 

Левая квадратная

скобка

 

!

[

Восклицательный

знак

Правая квадратная

скобка

]

Доллар

 

$

Левая фигурная

скобка

{

Процент

знак

%

Правая фигурная

скобка

}

Вопросительный

?

Тильда

 

 

 

Коммерческое at

 

@

 

 

 

 

Обратный слэш

 

\

 

 

 

 

Разделителем может быть либо символ пробела, либо символ управ­ ления форматом, либо конец строки.

Ограничителем может быть один из символов:

&' ( ) * + , - / : < = >,

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

 

Таблица 2.2

Составные символы VHDL

Название

Символ

Стрелка

=>

Возведение в степень

**

Присваивание переменной

:=

Не равно

/=

Больше или равно

>=

Меньше или равно, назначение сигнала

<=

Блок

о

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

Идентификаторы могут содержать латинские буквы в верхнем и нижнем регистре, цифры и символ подчеркивания, например: COUNT, X, Clk_OUT, Decoder.

Идентификаторы, перечисленные ниже, зарезервированы в языке для специального назначения (зарезервированные слова):

ABS

ELSE

MAP

REM

ACCESS

ELSEIF

MOD

REPORT

AFTER

END

NAND

RETURN

ALIAS

ENTITY

NEW

SELECT

ALL

EXIT

NEXT

SEVERITY

AND

FILE

NOR

SIGNAL

ARCHITECTURE

FOR

NOT

SUBTYPE

ARRAY

FUNCTION

NULL

THEN

ASSERT

GENERATE

OF

TO

ATTRIBUTE

GENERIC

ON

TRANSPORT

BEGIN

GUARDED

OPEN

TYPE

BLOCK

IF

OR

UNITS

BODY

IMPORT

OTHERS

UNTIL

BUFFER

IN

OUT

USE

BUS

INITIALIZE

PACKAGE

VARIABLE

CASE

INOUT

PORT

WAIT

COMPONENT

IS

PROCEDURE

WHEN

CONFIGURATION LABEL

PROCESS

WHILE

CONSTANT

LIBRARY

RANGE

WITH

DISCONNECT

LINKAGE

RECORD

XOR

DOWNTO

LOOP

REGISTER

 

2.1.2.З. Комментарий

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

Пример:

—комментарий

end; ~ длинные комментарии могут быть разделены ~ на несколько строк

2.1.2.4.Литералы

Ввыражениях языка часто используются литералы: абстрактные,

символьные, строковые, битово-строковые.

Абстрактные литералы делятся на действительные (содержат точку)

ицелые (не содержат точку).

Абстрактные литералы бывают десятичными и базированными. Десятичным литералом (decimal literal) является абстрактный лите­

рал, выраженный в десятичной системе счисления (т.е. база счисления 10). Символ подчеркивания, стоящий между двумя соседними цифрами десятичного литерала, не оказывает влияния на значение этого абстрактно­

го литерала.

Выражение экспоненты в целом литерале не должно содержать знак минус. Значение 0 экспоненты разрешено только в целых литералах.

Пример:

целые литералы: 11,0, 123_456; действительные литералы: 11.0, 0.331, 3.141_592;

действительные литералы с экспонентой: 2.64Е-12, 6.023Е+24. Базированный литерал (based literal) - это абстрактный литерал, вы­

раженный в форме, которая явно содержит базу счисления (base).

База счисления может находиться в пределах от 2 до 16. База счис­ ления и экспонента должны быть выражены десятичным числом.

Буквой, используемой в качестве расширенной цифры (extended digit), может быть буква от А до F, соответственно представляющая цифру

от 10 до 15. Значение каждой расширенной цифры не должно превышать значения базы.

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

Пример:

-целые литералы значения 255: 2#1111_1 111#, 16#FF#, 016#0FF#;

-действительные литералы значения 4095.0: 16#F.FF#E+2, 2#1.1111_1111_111#Е11.

Символьный литерал формируется включением одного из 95 графи­ ческих символов (включая символ пробела) между двумя символами апо­ строфа (‘), например: ‘Г Символьный литерал содержит значение сим­ вольного типа.

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

Пример:

-"Setup time is too short" - сообщение об ошибке;

-"" - пустой строковый литерал;

- "", "А", - три односимвольных строковых литерала. Битово-строковые литералы формируются из последовательности

расширенных цифр, заключаемой между двумя символами кавычки, ис­ пользуемых как скобки строки битов, и которой предшествует специфика­ тор базы (base specifier).

Спецификатор базы может принимать значения В (bin), О (oct), X (hex). Если спецификатором базы счисления является В, то в качестве расширенных цифр могут выступать только цифры 0 и 1; если О, то - циф­ ры 0 7; и если X, то - цифры 0 9 и А ... F.

Битово-строковый литерал имеет значение, представляющее собой последовательность значений предопределенного типа BIT (т.е. последо­ вательность из ‘0’ и ‘Г). Если указатель базы есть О или X, то значением литерала является последовательность, полученная замещением каждой расширенной цифры последовательностью из трех или соответственно че­ тырех значений предопределенного типа BIT.

Длина битово-строкового литерала равна числу значений типа BIT в представленной последовательности.

Пример:

-X"FFF" = В"1111_1111_1111";

-0 ”777" = В" 111_111_111";

-Х”777" = В"0111 0111 0111".