Перечислимые типы языка VHDL. — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Перечислимые типы языка VHDL.

2017-06-05 686
Перечислимые типы языка VHDL. 0.00 из 5.00 0 оценок
Заказать работу

Перечислимый тип – это такой тип данных, при котором количество всех возможных значений конечно.

Перечислимый тип объявляется путем перечисления названий элементов-значений. Объекты, тип которых объявлен как перечислимый, могут содержать только те значения, которые указаны при перечислении. Элементы перечислимого типа должны быть идентификаторами или символами, которые должны быть уникальными в пределах одного типа. Повторное использование названий элементов в других перечислимых типах разрешается.

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

TYPE имя_типа IS (название_элемента, название_элемента);

Пример

Type State_type IS (stateA, stateB, stateC);

VARIABLE State: State_type;

State:= stateB

В данном примере объявляется переменная State, допустимыми значениями которой являются stateA, stateB, stateC.

Любой перечислимый тип имеет внутреннюю нумерацию: первый элемент всегда имеет номер 0, второй – номер 1 и т. д. Порядок нумерации соответствует порядку перечисления.

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

Значения определенных пользователем перечислимых типов могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены как для перечислимых типов, так и для одномерных массивов, содержащих элементы этих типов. Результат выражения имеет тип BOOLEAN.

Тип BOOLEAN

Тип BOOLEAN является перечислимым типом. Объект данного типа может принимать значения FALSE (ложь) и TRUE (истина), причем FALSE эквивалентно 0, а TRUE эквивалентно 1. Все три типа объектов в VHDL (константы, переменные и сигналы) могут иметь тип BOOLEAN.

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

Для операндов типа BOOLEAN и одномерных массивов, содержащих элементы типа BOOLEAN определены все логические операции (AND, OR, NAND, NOR, XOR и NOT). Тип и размер операндов должны быть одинаковыми. Тип и размер результата такой же как тип и размер операндов.

Оператор конкатенации

Оператор конкатенации также определен для операндов типа BOOLEAN и одномерных массивов, содержащих элементы типа BOOLEAN. Результат выражения представляет собой одномерный массив, содержащий элементы типа BOOLEAN; размер массива равен сумме размеров операндов.

Тип INTEGER

Стандарт VHDL определяет тип INTEGER для использования в арифметических выражениях. По умолчанию объекты типа INTEGER имеют размерность 32 бита и представляют целое число в интервале –(231(-). Стандарт языка позволяет также объявлять объекты типа INTEGER, имеющие размер меньше 32 бит, используя ключевое слово RANGE, ограничивающее диапазон возможных значений:

SIGNAL X: INTEGER RANGE –127 TO 127

Данная конструкция определяет X как 8-битное число.

Кроме того, можно определить ограниченный целый тип, используя следующую конструкцию:

TYPE имя_типа IS RANGE диапазон_индексов;

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

Значения типа INTEGER могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены для операндов типа INTEGER и одномерных массивов, содержащих элементы типа INTEGER. Результат выражения имеет тип BOOLEAN.

Арифметические операторы

Операторы +, –, ABS допустимы для операндов типа INTEGER. Результат выражения имеет тип INTEGER.

Операторы *, /, MOD, REM допустимы в следующих случаях:

если оба операнда являются константами (CONSTANT);

если второй операнд является константой и его значение равно 2n, где n = 0, 1, 2, 3….

Применение операторов *, /, MOD, REM недопустимо если оба операнда являются сигналами (SIGNAL) или переменными (VARIABLE).

Тип BIT

Объект данного типа может принимать значение '0' (лог.0) или '1' (лог.1).

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

Значения типа BIT могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены для операндов типа BIT и одномерных массивов, содержащих элементы типа BIT. Результат выражения имеет тип BOOLEAN.

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

Для операндов типа BIT и одномерных массивов, содержащих элементы типа BIT определены все логические операции (AND, OR, NAND, NOR, XOR и NOT). Тип и размер операндов должны быть одинаковыми. Тип и размер результата такой же как тип и размер операндов.

Тип STD_LOGIC

Типы STD_LOGIC является перечислимым типом. Объекты типа STD_LOGIC могут принимать 9 значений: '0', '1', 'Z', '–', 'L', 'H', 'U', 'X', 'W'.

Для синтеза логических схем используются только первые четыре:

'0' – логический "0"; '1' – логическая "1"; 'Z' – третье состояние; '–' – не подключен.

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

Значения типа STD_LOGIC могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены для операндов типа STD_LOGIC и одномерных массивов, содержащих элементы типа STD_LOGIC. Результат выражения имеет тип BOOLEAN.

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

Для операндов типа STD_LOGIC и одномерных массивов, содержащих элементы типа STD_LOGIC определены все логические операции (AND, OR, NAND, NOR, XOR и NOT). Тип и размер операндов должны быть одинаковыми. Тип и размер результата такой же как тип и размер операндов.

Оператор конкатенации

Оператор конкатенации также определен для операндов типа STD_LOGIC и одномерных массивов, содержащих элементы типа STD_LOGIC. Результат выражения представляет собой одномерный массив, содержащий элементы типа STD_LOGIC.


Поделиться с друзьями:

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

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.