Программирование на зыке VHDL: Конспект лекций, страница 4

Type STD_LOGIC

·  9 logic value system ('U', 'X', '0', '1', 'Z', ‘W', ‘L', ‘H','-')

¨  'W, 'L, 'H – «мягкие» величины (не поддерживаются при синтезе)

¨  'X' - used for unknown

¨  'Z' - (not 'z') used for tri-state

¨  '-' Don't Care

·  Resolved type: supports signals with multiple drives

Type STD_ULOGIC

·  Same 9 value system as STD_LOGIC

·  Unresolved type: Does not support multiple signal drives;

·  Error will occur

2.5.7. User-Defined Libraries/Packages - библиотеки и пакеты пользователя

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

LIBRARY WORK; --optional

USE WORK.<package name>.all;

Пакеты могут располагаться в других каталогах:

LIBRARY <any_name>;

USE <any_name>.<package_name>.all;

3. Основы моделирования архитектуры

Содержание раздела:

-  Основы концепции и использование сигналов

·  Signal Assignments – назначение сигналов

·  Concurrent Signal Assignment statements – операторы конкурентного назначения сигналов

·  Signal Delays – задержки сигналов

-  Processes - процессы

·  Implied -неявные

·  Explicit – явно определенные

-  Основы концепции и использование переменных

-  Sequential Statement – последовательностные операторы

·  If-Then

·  Case

·  Loops

3.1. Сигналы

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

-  Сигналы могут быть объявлены вPackages, Entity и Architecture

3.1.1. Присвоение сигналам значений

SIGNAL temp : STD_LOGIC_VECTOR (7 downto 0);

• All bits:

temp <= "10101010";

temp <= x"AA" ; (1076-1993)

• Single bit:

temp(7) <= ‘1’;

• Bit-slicing:

temp (7 downto 4) <= "1010";

• Single-bit: single-quote (')

• Multi-bit: double-quote (“)

3.1.2. Использование сигналов для передачи информации

3.1.3. Определение значения сигнала

-  Для определения значения сигнала используется запись: <=

-  Назначение сигнала подразумевает процесс (функцию), в которых этот сигнал будет имплементирован при синтезе схемы

3.1.4. Варианты назначения сигналов

Три варианта назначения сигнала:

Простое назначение - Simple Signal Assignment

Условное назначение - Conditional Signal Assignment

Назначение по выбору - Selected Signal Assignment

3.1.5. Простое назначение сигнала - Simple Signal Assignment

Формат:

<signal_name> <= <expression>;

Пример: введем в модель вспомогательный сигнал qa

qa<= r or t;

qb<= (qa and not (g xor h));    Þ implied process

Для описания процесса используются операторы VHDL

3.1.6. Операторы VHDL

Тип оператора

Обозначение оператора

Логические

and    or    nand    nor    xor    xnor  (1)

Отношения

=   /=   <   <=   >   >=

Сложение/вычитание

+    -    &

Присвоение знака

+    -

Умножение/деление

*    /    mod    rem

Другие

**    abs    not

(1) Поддерживаются только в VHDL '93

VHDL определяет функции Arithmetic & Booleanfunctions только для встроенных типов данных built-indatatypes, определенных вStandard package

-  Арифметические операторы такие как +, -, <, >, <=, >= определены только для типа INTEGER

-  Логические операторы такие как AND, OR, NOT определены только для типа BIT

Библиотекой VHDL по умолчанию (implicit library, built-in) является  Library STD.

Типы, определенные в Standard package:

BIT, BOOLEAN, INTEGER

Примечание: элементы в этой библиотеки можно не объявлять, они являются встроенными.

3.1.6.1. Пример использования арифметических функций

3.1.7. Переопределение операторов - Operator Overloading