Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Реализация цифровых автоматов в системе Quartus фирмы Altera

..pdf
Скачиваний:
10
Добавлен:
19.11.2023
Размер:
27.48 Mб
Скачать

Рис. 4. Схема МПУУ с мультиплексором

Получим файл программы (рис. 5).

Назовем файл PLA17. Ассемблируем его и получаем HEX файл:

:100000002002027040014C000000000000000000CF

:10001000000000000000000000E5905403F9EB49E7

:10002000F97A00900000E493F8E859F8E4A39368A3

:10003000A37004E4934AFAE4A393F870ECEA540C36

:10004000FB8AA080D4000000000000000000000037

:080050000000000000000000A8

:00000001FF

Загружаем его в ПЗУ. Запускаем моделирование для х1 = х2 = х3 = 0 (рис. 6). Периодически формируется состояние z4.

Установим х1 = 1 (рис. 7). Всегда формируется состояние z4. Далее: х1 = 0, х2 = 1, получаем z1, z2 & z3, затем – нули, петля

(рис. 8).

Если установить х1 = 0, х2 = 1, х3 = 1, то получим (рис. 9).

91

Рис. 5. Файл программы

92

Рис. 6. Моделирование для х1 = х2 = х3 = 0

Рис. 7. Моделирование для х1 = 1

93

Рис. 8. Моделирование для х1 = 0, х2 = 1, петля

Рис. 9. Моделирование для х1 = 0, х2 = 1, х3 = 1

2. Варианты заданий

Соответствуют вариантам из лабораторной работы № 1.

94

Лабораторная работа №8 СИНТЕЗ И ИССЛЕДОВАНИЕ СХЕМЫ МИКРОПРОГРАММНОГО

УСТРОЙСТВА УПРАВЛЕНИЯ СО СЧЕТЧИКОМ МИКРОКОМАНД

ИДВУМЯ ТИПАМИ МИКРОКОМАНД ПО ЗАДАННОЙ ГСА

ВСИСТЕМЕ QUARTUS II

Задание: синтезировать микропрограммное устройство управления со счетчиком микрокоманд и двумя типами микрокоманд по заданной графической схеме алгоритма – ГСА.

Пример. Сопоставим каждому из двух типов блоков ГСА два типа микрокоманды: 1) операционную – для блоков микрокоманд и 2) специальную или перехода – для блока ветвления

Признак микрокоманды ПМ = 1

Микрооперации

 

Операционная микрокоманда: ПМ = 1.

 

Признак микрокоманды

Код логического Адрес перехода

ПМ = 0

 

 

условия

 

 

Специальная, или переходов: ПМ = 0.

 

Если выполняются

опера-

D0

 

ционные микрокоманды, то по-

Q0

D1

следовательно выбираются ад-

Q1

D2

 

 

 

 

 

реса постоянного

запоминаю-

D3

Q2

Q3

щего устройства (ПЗУ) и после-

 

PE

 

довательно

выдаются

микро-

 

R

 

операции в операционное уст-

 

+1

 

ройство.

 

 

 

–1

 

Это может быть реализова-

Рис. 1. Условное графическое

но путем

перебора состояний

счетчика по счетному входу +1

обозначение счетчика

(рис. 1).

 

 

 

со счетным входом +1

 

 

 

 

 

Такой

счетчик

называется

 

 

счетчиком микрокоманд. Конечно, для задач реальной размерности он должен иметь достаточное число состояний. Нам хватит 4 состояний.

95

В случае выполнения специальной микрокоманды, если логическое условие равно единице, производится переход по указанному адресу с использованием входа предустановки РЕ по указанным в поле адреса данным Di. Если логическое условие равно нулю, то выбирается следующий адрес.

Если номер логического условия равен нулю, то это безусловный переход, и производится передача управления по указанному адресу (на входах Di).

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

 

БУС

CT2

ПЗУм

p

 

 

 

 

MS

p

+1

к

 

 

 

X

c

C/c

Амк

 

 

 

Aп

x

Ап

Ап

 

 

 

 

 

Рис. 2. МПУУ со счетчиком микрокоманд: MS – мультиплексор, БУС – блок управления СТ2, СТ2 – счетчик микрокоманд, ПЗУмк – память микрокоманд, Амк – адрес очередной микрокоманды, Ап – адрес перехода, X – переменные, x – текущая переменная, p – признак микрокоманды, с – синхросигнал тактового генератора, +1 – счет (выбор очередного адреса, инкремент), С/с – переход по заданному адресу

Получим, например, микропрограмму реализации алгоритма, изображенного на рис. 3, для автомата с двумя типами микрокоманд (табл. 1).

Адреса микрокоманд соответствуют блокам ГСА.

В рассмотренном автомате, если микрокоманда специальная (ПМ=0), разряды 1–2 используются для кодирования логического условия (значения указаны курсивом): 00 – безусловный пе-

96

реход, т.е. нет условия; 01 – х1; 10 – х2. Если микрокоманда операционная, то разряды 1–5 отводятся для микроопераций z1z5 соответственно.

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z1

 

0000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z2

 

0001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

X1

 

0010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z3

 

0011

 

 

 

 

 

 

 

 

 

 

 

0

 

X2

 

0100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0101

 

 

 

 

 

 

 

 

1

 

 

0111

 

 

 

 

 

 

Z4

 

 

 

Z5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0110

 

 

 

 

 

 

 

 

 

 

 

 

1000

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3. Некоторая ГСА

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Метка

 

Адрес

 

 

 

 

Микрокоманда

 

 

 

Комментарий

 

микрокоманды

П

1

 

 

2

3

4

 

5

 

6

 

 

 

 

 

 

М

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

1

1

 

 

0

0

0

 

0

 

0

Выдача z1 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код 60H

M0:

0

0

0

1

1

0

 

 

1

0

0

 

0

 

0

Выдача z2 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код 50H

 

0

0

1

0

0

1

 

 

0

1

0

 

0

 

0

Переход,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если х1 = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

на адрес 0001.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код 28H

 

0

0

1

1

1

0

 

 

0

1

0

 

0

 

0

Выдача z3 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код 48H

 

0

1

0

0

0

0

 

 

1

1

1

 

1

 

0

Переход, если

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2 = 1 по адресу

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0111 (метка М1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код 1EH

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

97

Окончание табл. 1

 

0

1

0

1

1

0

0

0

1

0

0

Выдача z4 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

Код 44H

 

0

1

1

0

0

0

0

0

0

0

0

Безусловный

 

 

 

 

 

 

 

 

 

 

 

 

переход

 

 

 

 

 

 

 

 

 

 

 

 

(БП) на начало.

 

 

 

 

 

 

 

 

 

 

 

 

Код 00H

M1:

0

1

1

1

1

0

0

0

0

1

0

Выдача z5 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

Код 42H

 

1

0

0

0

0

0

0

0

0

0

0

БП на начало.

 

 

 

 

 

 

 

 

 

 

 

 

Код 00H

Особенность микропрограммы – возврат в исходное состояние после окончания работы.

1. Выполнение эксперимента

На основании табл. 1 составим микропрограмму (старший разряд байта данных равен 0):

60H, 50H,28H,48H,1EH,44H,00H,42H, 00H.

Чтобы загрузить данную микропрограмму в ПЗУ, возникает необходимость создания HEX файла. Рассмотрим подробнее создание HEX файла в системе Quartus II.

Выбираем пункт меню File>New, во вновь открывшемся ок-

не выбираем Hexadecimal (Intel-Format) File (рис. 4).

После этого появится диалоговое окно, в котором предлагаетсяввести, требуемоеколичествословПЗУиширину слова(рис. 5).

Далее откроется таблица, в которую необходимо ввести данные (рис. 6).

Перед тем как вводить данные, щелкните правой кнопкой мыши на таблице и убедитесь, что в выпадающем меню, в пунктах Addres Radix и Memory Radix был выбран шестнадцатеричный ввод данных (Hexadecimal). Далее необходимо ввести константы в файл и сохранить файл в директории с проектом.

Соберем схему счетчика микрокоманд (см. рис. 3) вQuartus II. Для формирования МПУУ со счетчиком микрокоманд выберем микросхему счетчика с синхронной загрузкой данных. Например, микросхему 74163, которая имеет следующие выводы: ENT – (вход разрешения счета в последовательном режиме

98

работы счетчика), ENP – (вход разрешения счета в параллельном режиме работы счетчика), CLK – счетный вход, LOAD (LDN) – синхронная загрузка кода, A,B,C,D – входы данных, Q – выходы. Использование синхронного счетчика наиболее целесообразно, так как позволяет избежать гонок сигналов.

Рис. 4. Создание HEX файла

Рис. 5. Задание параметров HEX файла

99

Рис. 6. Ввод данных в HEX файл

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

Введем обозначения ПМ (признак микрокоманды) обозначим р, логическое условие – х. Синхросигналы обозначим с1, с2.

Запишем таблицу истинности для этих сигналов табл. 2.

Таблица 2

p

x

ENP

LD

0

0

1

1

0

1

0

0

1

0

1

1

1

1

1

1

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

F1 = p px .

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

Следует также отметить, так как в Quartus II нет возможности использования асинхронного ПЗУ, то в схему будет введен дополнительный сигнал тактовой частоты. Его значение такто-

100