109.64K
Category: informaticsinformatics

Проектирование управляющего автомата с программируемой логикой. Расчетно-графическая работа №2

1.

Проектирование
управляющего автомата с
программируемой логикой
Расчетно-графическая работа №2

2.

Содержание пояснительной записки
к РГР
1. Титульный лист
2. Задание на проектирование АЛУ
3. Микропрограмма, представленная в форме блок-схемы
алгоритма
4. Определение формата микрокоманды
5. Кодировка микроопераций и логических условий (в форме
таблицы)
6. Содержимое ПЗУ микропрограммы (в форме таблицы)

3.

Задание на проектирование управляющего автомата
Предложить содержимое ПЗУ микропрограммы для
управляющего автомата, который реализует выполнение
одной арифметической и одной логической операций.
В рассматриваемом примере в качестве исходных данных предложен
абстрактная микропрограмма, представленная в форме блок-схемы
алгоритма.

4.

Микропрограмма, представленная в форме блок-схемы
алгоритма
1
Начало
0
у2, у6
0
х1
х2
2
1
1
у1, у4, у7
у1, у5, у8
7
2
у3, у5
у2, у9
8
3
у4
4
у11, у12, у13
1
0
5
у10
6
Конец
1
2

5.

Определение формата микрокоманды
На данном этапе необходимо получить формат микрокоманды, который будет
использовать микропрограммный автомат в соей работе. В качестве формата
микрокоманды необходимо получить некоторую совокупность полей определенной
разрядности.
В работе следует использовать естественную адресацию и смешанный способ
кодирования микроопераций.
Количество форматов микрокоманд – 1.
Параметры, влияющие на разрядность полей микрокоманды:
- количество различных микроопераций, формируемых управляющим автоматом (УА)
– влияет на длину поля микрооперации;
- количество различных логических условий определяет длину поля условия (х);
- количество вершин блок-схемы связано с общим числом микрокоманд, а
следовательно влияет на размер памяти микропрограммы и длину адреса поля
адреса микрокоманды.

6.

Определение формата микрокоманды
Попробуем реализовать разбиение множества Y на подмножества несовместимых
микроопераций.
Образуем три подмножества Y1, Y2, Y3, разместим в них микрооперации операторной
вершины.
Y1 = {y1}, Y2 = {y4}, Y3 = {y7}
Затем разместим следующие вершины.
Y1 = {y1}, Y2 = {y4,y5}, Y3 = {y7,y8}
Если микрооперации различных вершин совпадают, то такая операция будет присутствовать
только в одном подмножестве (не включается вторично).
Разместим микрооперации третьей вершины:
Y1 = {y1,y11}, Y2 = {y4,y5,y12}, Y3 = {y7,y8,y13}
Вершина (y2, y6) – обе микрооперации несовместимы с уже распределенными, поэтому могут
располагаться произвольно, лишь бы не вместе.
Y1 = {y1,y11,y2}, Y2 = {y4,y5,y12,y6}, Y3 = {y7,y8,y13}
Распределяем все оставшиеся микрооперации.
Y1 = {y1,y11,y2,y3,y10}, Y2 = {y4,y5,y12,y6}, Y3 = {y7,y8,y13,y9}

7.

Определение формата микрокоманды
Также необходимо добавить микрооперацию, свидетельствующую об
окончании выполнения алгоритма. Назовем её yk и включим в произвольное
множество.
Y1 = {y1,y11,y2,y3,y10}, Y2 = {y4,y5,y12,y6,yk}, Y3 = {y7,y8,y13,y9}
Для кодирования элементов необходимо брать на 1 код больше в случае,
если отсутствует микрооперация из этого подмножества в микрокоманде.
Т.е в Y3 нужно брать три двоичных разряда, а не два.
Оптимальное разбиение: |Yi|=2r-1, где r – натуральное число.
В подмножестве Y3 одна «лишняя» микрооперация, а среди Y1 и Y2 есть
свободные, перенесем её.
Окончательно получим:
Y1 = {y1,y2,y3,y10,y11}, Y2 = {y4,y5,y6,y9,y12,yk}, Y3 = {y7,y8,y13}

8.

Определение формата микрокоманды
• Поле микроопераций будет состоять из трех подполей Y1, Y2, Y3 размером
3, 3 и 2 двоичных разряда соответственно.
• Поле x занимает два разряда.
• В поле адреса будет располагаться адрес памяти – двоичный номер ячейки
(4 разряда), а в полях Yi и x - коды микроопераций и логических условий.
Y1
Y2
Y3
x
A1
3
3
2
2
4
Формат микрокоманды

9.

Кодировка микроопераций и логических условий
Закодируем микрооперации и логические условия как показано в
таблице, при желании можно использовать свою кодировку.
Код
Y1
Y2
Y3
Код
x
000
-
-
-
00
Константа 0
001
y1
y4
y7
01
х1
010
y2
y5
y8
10
х2
011
y3
y6
y13
11
Константа 1
100
y10
y9
101
y11
y12
110
-
yk
111
-
-

10.

Кодировка микроопераций и логических условий
Выбрав кодировку, можно начинать писать микропрограмму в машинных
микрокодах. Фактически формируется содержимое ПЗУ микропрограмм
Адрес
Y1
Y2
Y3
x
A1
0
010
011
00
01
0111(7)
1
001
001
01
00
xxxx
2
011
010
00
00
xxxx
3
000
001
00
00
xxxx
4
101
101
11
10
1001(9)
5
100
000
00
00
xxxx
6
000
110
00
00
xxxx
7
001
010
10
00
xxxx
8
010
100
00
11
0011(3)
9
000
000
00
01
0111(7)
10
000
000
00
11
0001(1)
Содержимое ПЗУ микропрограмм

11.

Кодировка микроопераций и логических условий
Объяснение адреса 0 (первая строка таблицы)
•в первом такте работы микропрограммы должны быть выданы
микрооперации y2 и y6 (см блок схему).
•из таблицы кодировки микроопераций следует, что y2 Y1(код 010), а y6 Y2
(код 011)
•микрооперации из множества Y3 отсутствуют.
•после первой операторной вершины следует условная вершина, содержащая
логическую переменную x1, она должна анализироваться в микрокоманде.
•при х1=0 должна выполняться микрокоманда (y1,y4,y7) по адресу 1, иначе –
микрокоманда (y1,y5,y8). Её адрес определяется позже.

12.

Кодировка микроопераций и логических условий
Объяснение адреса 1 (вторая строка таблицы)
•должна располагаться микрокоманда, формирующая микрооперации
(y1,y4,y7) и безусловно передающая управление следующей микрокоманде
(y3,y5) (в таблице она обозначена как A1).
•Заполняем строку таблицы для первой ячейки памяти: Y1=001, Y2=001,
Y3=01, x=00, A1=xxxx;
•В поле x этой микрокоманды код 00 указывает на тождественно ложное
условие (константу 0).

13.

Кодировка микроопераций и логических условий
Действуя аналогичным способом, заполняем строки таблицы,
соответствующие адресам ПЗУ 3, 4, 5, 6.
•В микрокоманде по адресу 4 выполняется условный переход по переменной
х2, причем адрес перехода х2=1 неизвестен.
•По адресу 6 размещается микрокоманда, соответствующая конечной
вершине на блок-схеме, завершающая работу микрооперацией уk.
•Микрокоманду, следующую за ее единичным выходом (y1,y5, y8), можно
разместить по свободному адресу 7. Поэтому поместим в поле адреса
перехода ячейки 0 код 0111(см. таблицу). Сама микрокоманда по адресу 7
формирует три микрооперации и переходит к микрокоманде по адресу 8(001
010 10 00 хххх).

14.

Кодировка микроопераций и логических условий
•Микрокоманда по адресу 8 не связана с логической вершиной, но она должна
передавать управление уже существующей (по адресу 3) микрокоманде.
Поэтому ее поле х=11 адресует тождественно истинное условие, а в поле
переадресации указан адрес 3.
•Остался неопределенным адрес перехода в микрокоманде по адресу 4.
Из блок-схемы видно, что следует проверить условие х1 – случай двух подряд
расположенных условных вершин. Если мы передадим управление на адрес 0
будут выполняться микрооперации y1, y4, y7, а это микрокомандой не
предусмотрено. Тогда следует включить дополнительно микрокоманды (по
адресам 9 и 10 в нашем случае), которые не формируют никаких
микроопераций, а обеспечивают только передачу управления.
• Первая (9) осуществляет условный переход по переменной х1 на адрес 7,
вторая (выполняется при х1=0) – безусловно по адресу 1. Теперь код
микропрограммы полностью сформирован.
English     Русский Rules