книги / Реализация цифровых автоматов в системе Quartus фирмы Altera
..pdfРис. 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 отводятся для микроопераций z1–z5 соответственно.
Начало
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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