Курсовая работа: Основы языка VHDL

signal GATE_DELAY: TIME := 10 ns;

В первом примере декларируется объект CLOCKтипа BIT, начальное значение при моделировании будет взято по умолчанию, т.е. 0 (набор значений типа BIT: 0,1 и крайнее левое значение 0).

Не все объекты в языке VHDLсоздаются путем декларирования, например, входные/выходные порты всегда считаются объектами класса signal.

1.4 Типы данных

Каждый объект в языке VHDLможет хранить значения, относящиеся к определенному набору. Это множество значений декларируется с помощью объявления типа (typedeclaration). Тип – это имя, которое связывается с определенным набором значений и набором операций. Некоторые типы предопределены языком VHDL. Например, BOOLEANимеет набор значений FALSE, TRUEи набор операторов: and, or, nor, nand, not. В языке имеется возможность создавать новые типы с использованием деклараций и задания набора операций.

Все возможные типы в VHDLраспадаются на четыре больших категории:

- scalar(скалярные),

- composite(композитные) – они состоят из элементов одного типа (массивы) или различного типа (записи),

- accesstype(типы доступа) – обеспечивают доступ к данному типу через указатели,

- filetypes(тип – файл) – обеспечивает доступ к объектам, содержащим последовательности значений данного типа.

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

-enumeration(перечислимый тип),

-integer(целый тип),

-physical(физический тип),

-floatingpoint(тип “с плавающей запятой”).

Перечислимый тип

В декларации определяется набор определенных пользователем значений, например:

type MVL is ('U','0','1','Z);

type MICRO_OP is (LOAD, STORE, ADD, SUB, MUL, DIV);

MVL – перечислимый тип с упорядоченным набором значений: 'U', '0', '1', и 'Z'. MICRO_OP имеетнаборзначений: LOAD, STORE, ADD, SUB, MUL, DIV. Порядок записи значений в декларации определяет лексику, т.е. значение справа всегда больше значения слева: STORE<DIVistrue, SUB> MULisfalse. Значения в перечислимых типах имеют позиционный номер. Позиционный номер самого левого элемента 0. Значения в перечислимых типах еще называют enumerationliterals(литералы перечислимого типа). Например, вдекларации:

type CAR_STATE is (STOP, SLOW, MEDIUM, FAST);

литералами являются STOP, SLOW, MEDIUM, FASTи только они могут присваиваться переменной CAR_STATE.

Целый тип

Integer– целое, задает тип, набор значений которого находится в заданном целочисленном диапазоне, например:

type INDEX is range 0 to 15;

type WORD_LENGTH is range 31 downto 0;

subtype DATA_WORD is WORD_LENGTH range 15 downto 0;

type MY_WORD is range 4 to 6;

INDEX– это переменная целочисленного типа, набор значений которой размещен в диапазоне целых от 0 до 15. DATA_WORD– подтип WORLD_LENGTHв диапазоне от 15 до 0. В отличие от перечислимых в целочисленных типах позиционный номер равен величине значения, например, для значения 31 переменной WORD_LENGTHпозиция равна 31.

Тип “с плавающей запятой”

Тип floatingpointобладает набором значений в заданном диапазоне вещественных чисел, например:

type TTL_VOLTAGE is range 1.4 to 5.5

type REAL_DATA is range 0.0 to 31.9;

К-во Просмотров: 849
Бесплатно скачать Курсовая работа: Основы языка VHDL