ФИЗИЧЕСКИЕ ТИПЫ ЯЗЫКА VHDL . АТРИБУТЫ ФИЗИЧЕСКИХ ТИПОВ.



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

Организация физических типов в VHDL позволяет установить соответствие между различными единицами измерения.

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

Определение имеет следующий синтаксис:

type name is range simple_expression (to/downto) simple_expression units

ed;

Ked=X ed;

end units name;

Здесь:

- ed — имя первичного модуля;

- ked — имя вторичного модуля.

Например:

type length is range 0 to 1E9

units

um;  -- micron

mm=1000 um;

m=1000 mm;

mi1=254 um;

inch= 1000 mil;

end units length;

Величина, описанная типом length, может принимать значения от 0 um до 1Е9 um. Для задания значения величины может использоваться и действительное число. Оно будет округлено до ближайшего целого в основных единицах измерения.

Табпица - Атрибуты физических типов

Атрибут                                Описание

T'pos(x)                              Номер позиции х в T

Т' val (n)                              Значение в Т на позиции n

T'succ(x)                            Значение в т на позиции, на 1 большей, чем х

T'pred(x)                            Значение в т на позиции, на 1 меньшей, чем х

T'leftof(х)                        Значение в T на позиции, на 1 левее, чем х

T'rightof (х)                      Значение в Т на позиции, на 1 правее, чем х


ПРЕОБРАЗОВАНИЕ СКАЛЯРНЫХ ТИПОВ ЯЗЫКА VHDL

Тип определяет множество значений и множество применимых к ним операций.

Для выполнения ряда операций требуется, чтобы операнды были одного и того же типа. Преобразование типов integer в real и наоборот, осуществляется следующим образом:

Real (integer_value); integer(real_value)

При преобразовании действительного числа к целому производится округление до ближайшего целого.

Для преобразования данных из одного перечислимого типа в другой, могут использоваться атрибуты pos и val. Например:

Variable i2:bit;

i2:=bit' val (boolean' pos (true));

Атрибут image может быть использован при сохранении результатов работы в файле, а атрибут value - при чтении данных из файла.
35.ПЕРЕЧИСЛЯЕМЫЕ ТИПЫ ЯЗЫКА VHDL

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

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

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

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-1) . . . 231-1 (-2147483647 . . . 2147483647). Стандарт языка позволяет также объявлять объекты типа 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. Результат выражения представляет собой одномерный массив, содержащий элементы типа


Дата добавления: 2020-04-08; просмотров: 247; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!