Типы языка VHDL

ЦЕЛЫЙ ТИП

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

type Apples is range 0 to 75;  -- диапазон задаётся по возврастающей
type Oranges is range 0 to 75;
type Word_index is range 31 downto 0; -- диапазон задаётся по убывающей

РУГУЛЯРНЫЙ ТИП

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

Негораниченный объявляется так:

type имя_типа is 
     array ( имя_типа_диапазона range<>) of имя_типа_элемента;

Ограниченный:

type имя_типа is 
     array ( имя_типа_диапазона of имя_типа_элемента );

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

type MATR is array ( integer range<>, integer range<> ) of integer;

ФИЗИЧЕСКИЙ ТИП

Представляется числом, еденица которого представляет еденицу физической величиныю. Самым распространённым примером является время:

type time is range -9 to +9
     units 
          fs;
          ps = 1000 fs;
          ns = 1000 ps;
          us = 1000 ns;
          ms = 1000 us;
          sec = 1000 ms;
          min = 60 sec;
          hr = 60 min;
     end units;

ПРЕДОПРЕДЕЛЕННЫЕ ТИПЫ ДАННЫХ

type boolean is (false, true);
type bit is ('0','1');
type integer is range -2147483647 to 2147483647;

subtype natural is integer range 0 to 2147483647; -- подтип
type bit_vector is array(natural range<> ) of bit;

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

Просмотров:   1893