Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MAX+PLUSII.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
982.02 Кб
Скачать
      1. Комбинационная логика

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

        1. Реализация булевых выражений и уравнений

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

В качестве примера приведён файл boole1.tdf, в котором даны два простых булевых выражения, представляющих два логических элемента.

SUBDESIGN boole1

(

a0, a1, b : INPUT;

out1, out2 : OUTPUT;

)

BEGIN

out1 = a1 & !a0;

out2 = out1 # b;

END;

Здесь выход out1 получается в результате логической операции И, применённой ко входу a1 и инвертированному входу a0, а выход out2 получается в результате применения логической операции ИЛИ к выходу out1 и входу b. Поскольку эти уравнения обрабатываются одновременно, последовательность их следования в файле не важна.

        1. Объявление NODE (узел)

Узел, который объявляется в секции переменных VARIABLE в объявлении NODE, можно использовать для хранения промежуточных выражений.

Это полезно делать, если булево выражение повторяется несколько раз и его целесообразно заменить именем узла. Файл boole1.tdf можно переписать по-другому.

SUBDESIGN boole2

(

a0, a1, b : INPUT;

out : OUTPUT;

)

VARIABLE

a_equals_2 : NODE;

BEGIN

a_equals_2 = a1 & !a0;

out = a_equals_2 # b;

END;

Здесь объявляется узел a_equals_2, и ему присваивается значение выражения a1 & !a0. Использование узлов помогает экономить ресурсы устройств, если узел используется в нескольких выражениях.

        1. Определение групп

Важным понятием AHDL является группа. Она может включать в себя до 256 элементов (бит), рассматривается как совокупность узлов и участвует в различных действиях как единое целое. В булевых уравнениях группа может быть приравнена булевому выражению, другой группе, одному узлу, VCC, GND, 1 или 0. В каждом случае значения группы разные.

Если группа определена, для краткого указания всего диапазона ставят две квадратные скобки [ ]. Например, группу a[4..1] можно кратко записать как a[ ].

      1. Описание цифровой схемы на языке ahdl

О пишем проект из лабораторной работы №1 на языке AHDL. Для этого вначале создаётся проект, как описано в первой лабораторной работе. В качестве файла верхнего уровня задаётся текстовый файл c расширением .tdf. Для этого выбираем в меню File пункт New… В появившемся окне (рисунок 2.24) выбирается тип создаваемого файла – Text Editor file.

Рисунок 2.24 – Меню New

Затем, исходя из заданного булева выражения создаём в окне текстового редактора программу.

SUBDESIGN project2 % Задание символического имени подпроекта %

( % и объявление его входов и выходов %

A : INPUT; % Назначение ресурсов %

B : INPUT;

C : INPUT;

D : INPUT;

Y : OUTPUT;

)

BEGIN

Y = A & B & C & D -- Присвоение Y значения

# !A & !B & !C & !D -- булева ыражения

# A & !B & !C & D

# A & B & !C & !D

# !A & B & C & !D

# !A & B & !C & D

# !A & !B & C & D;

END; % Оператор окончания проекта %

С охраним данный документ как файл AHDL, с расширением .tdf (рисунок 2.25).

Рисунок 2.25 – Сохранение файла AHDL

Теперь можно создать графическое изображение символа, реализующего функцию, описанную в файле project2.tdf. Для этого выбирается пункт New… из меню File, где в уже знакомом меню (рисунок 2.24) задаётся тип создаваемого файла – Symbol Editor file. В открывшемся символьном редакторе, с помощью примитивов рисования создаётся графическое изображение символа. При этом следует задать контакты символа. Для этого следует дважды кликнуть левой кнопкой мышки в том месте, где предполагается создать контакт. Появится окно (рисунок 2.26), в котором нужно указать имя контакта, его тип ( вход или выход), отображение его имени и статус по умолчанию (используется или нет).

Рисунок 2.26 – Окно задания контактов

П роделав эту операцию с каждым контактом символа, получим изображение символа (рисунок 2.27).

Рисунок 2.27 – Создание символа в символьном редакторе

После того как символ создан, нужно сохранить его под тем же именем, что и файл его описания (project.tdf) с расширением .sym.

Т еперь можно создать графическое изображение схемы используя созданный символ (рисунок 2.28).

Рисунок 2.28 – Схема с новым символом

Теперь проект готов к компиляции.

Д ля тестирования временных параметров нужно создать файл входных сигналов в сигнальном редакторе. Подадим на вход сигналы в порядке следования их в таблице истинности данной схемы (рисунок 2.29). Высокий уровень – 1, низкий – 0.

Рисунок 2.29 – Входные сигналы схемы

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

Р езультаты, полученные во время компиляции и тестирования временных параметров (рисунок 2.30), говорят о том, что схема работает правильно и может быть реализована на ПЛИС фирмы Altera.

Рисунок 2.30 – Сигналы на входах и выходе схемы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]