Файл: Баранов, С. И. Синтез микропрограммных автоматов.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.10.2024

Просмотров: 97

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

знак вычитаемого, хранящегося в Ргі (sign Р г і: = (sign Рг1)0бр)- Остальная часть алгоритма полностью совпадает с алгоритмом сложения на рис. 8-2.

ГСА операции умножения изображена на рис. 8-4. Множимое и множитель в начале операции помещены соответственно в Ргі и См. Первый шаг операции состоит в передаче множителя из См в Рг2 (Рг2: = См). После этого сумматор, на котором будут накапливаться частичные произведения, «обнуляется»( См: = 0), а в счетчик тактов записывается число разрядов множителя (СчТ: = я). Далее, если в младшем разряде множителя записана единица (Рг2 [я] = 1), к сумме частичных произведений добавляется множимое (См: = См -f- Ргі), в противном случае (Рг2 [п] = 0) это действие пропускается. После этого сумма частичных произведений и множитель сдвигаются вправо на 1 разряд (См: = У?1 (См),

уя

Уе

У«

■У7 ■У,

~Уіо

■Уз

■Уг

&

 

 

1------ :------ 1 0

J

 

 

П П ' = 1

■«--- ^upiCirtSjH.

 

 

 

 

7

 

/7/7

С ч Т

-У,г

 

 

 

 

 

 

 

 

 

 

■Ув

 

Конец

 

71 *

 

 

 

 

Рис. 8-1.

Операционная часть АУ

Рис. 8-2. ГСА Гх операции сло­

 

 

 

 

жения

 

Рг2: = 7?1 (Рг2)), из счетчика тактов вычитается единица (СчТ: = СчТ—1), а

восвободившийся в связи со сдвигом старший разряд Рг2 записывается младший разряд сумматора (Рг2 [1]: = См [л]). Если не все разряды множителя обра­ ботаны (Сч ТФ 0), операции суммирования и сдвигов повторяются. После того как СчТ окажется равным нулю, старшие л разрядов произведения оказываются

вСм. Далее делается округление л-разрядного произведения в зависимости от

значения

(л + 1)-го разряда, который находится,

в первом разряде Рг2. Если

Рг2 [1J =

1,

то значение в сумматоре увеличивается на единицу л-го разряда

(См: =

См +

2—л). После этого определяется знак результата в зависимости от

знаков

сомножителей: если они разные (sign Ргі

ф sign Рг2), то результату

присваивается отрицательный знак (sign См: = 1),

если одинаковые (sign Ргі =

= sign

Рг2),

то это действие пропускается и в знаковом разряде сумматора ос­

тается

нуль — результат положителен.

 

IV * 7*

179


ГСА операции деления изображена на рис. 8-5. Перед началом операции Делимое хранится на сумматоре, а делитель в Ргі. Для получения частного в ходеоперации используется Рг2, который предварнтелышочпщается(Рг2: = 0), и в его знаковый разряд заносится единица, если на сумматоре — отрицатель­ ное число (sign Рг2: = 1). После этого знаковый разряд сумматора обнуляется и в счетчик тактов заносится п (sign См: — 0; СчТ: = п). Далее из делимого вы­ читается делитель (См: = См + (Ргі)0бр). и если на первом шаге окажется, что

знак сумматора положителен (sign См =

0), то делимое больше делителя, резуль­

тат больше единицы, т.

 

е. будет пере­

 

полнение

разрядной

сетки,

что

и

фикси­

 

руется (ПП: =

1).

Если

делимое

меньше

 

делителя,

то

результат

 

первого

 

вычи­

 

тания

отрицателен

(sign

 

См =

1),

 

после

 

чего

частное

сдвигается

в

влево

на

один

 

разряд (Рг2: =

L 1 (Рг2)),

(л +

1)-й разряд

 

Рг2

заносится

инверсия

знака

 

сум-

 

 

 

 

 

 

 

 

 

 

Г

 

 

 

 

 

 

 

 

 

 

См=-См*Рг1 У,

 

 

 

 

 

 

 

 

 

РгІ-МІРП)

 

 

 

 

 

 

 

 

 

 

Cv'RUCn)

у,

 

 

 

 

 

 

 

 

 

Рг2[і]Чм[п]

СчѴ-СчТ-1

У*

signСм:-1 Ч10

 

Конец,

Ук

Рис. 8-3. ГСА Г 2 операции вы­

Рис. 8-4. ГСА Г3 опера­

читания

ции умножения

матора — значение цифры частного на данном шаге, число в сумматоре удваи­ вается сдвигом влево на один разряд (См: = L 1 (См)), а из счетчика тактов вы­ читается единица, так как мы переходим к получению следующей цифры част­ ного (СчТ: = СчТ — 1). Если на каком-либо из предыдущих вычитаний в сум­ маторе оказывается отрицательное число (sign См = 1), то к сдвинутому влево содержимому сумматора добавляется делитель (См: = См + Ргі), в противном случае (при sign См = 0) делитель вычитается (См: = См + (Рг1)0бр)- Спустя п циклов (СчТ = 0) модуль частного заносится в сумматор (См: = |Рг2|), после

180


чего результат округляется по значению (л +

1):й цифры частного, которая

к этому моменту занесена и (я + 1)-іі разряд Рг2,

п в зависимости от знаков де­

лимого и делителя, которые хранятся в знаковых разрядах Рг2 и РгІ, в сумма­

торе

формируется

 

знак

 

результата.

 

Таким образом, для выполнения

сло­

 

жения, вычитания, умножения

и деления

 

в операционном

устройстве

 

АУ должны

 

быть реализованы следующие микроопера­

 

ции:

Уі: См: = (См)обр;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

у»: См: =

См +

РгІ;

 

 

 

 

 

 

 

Уз : См: =

См +

(Рг1)0бр;

 

 

 

 

 

Уі : ПП: = 1;

 

 

 

 

 

 

 

 

 

у5 : sign РгІ: =

(sign

 

 

 

 

 

 

 

уа : Рг2: = См;

 

 

 

 

 

 

 

 

 

у7: См: =

0;

 

 

 

 

 

 

 

 

 

Ув '■СчТ: = я;

 

 

 

 

 

 

 

 

 

уа : Рг2: =

Ri (Рг2);

 

 

 

 

 

 

 

у10 : См: = Ri (См);

 

 

 

 

 

 

 

Уп '■Рг2 [1]: = См [л];

 

 

 

 

 

 

 

у1г: СчТ: = СчТ — 1;

 

 

 

 

 

 

 

Уіз : См: = См + 2_,!;

 

 

 

 

 

 

 

Уы '■sign

См: =

1;

 

 

 

 

 

 

 

Ун : Рг2: = 0;

 

 

 

 

 

 

 

 

 

Уіа : sign Яг2: =

1;

 

 

 

 

 

 

 

у17: sign См: = 0;

 

 

 

 

 

 

 

 

Уis"- Рг2: = И (Рг2);______

 

 

 

 

Ую : Рг2

[я + 1]: = sign См;

 

 

 

 

у20 : См: = И (См);

 

 

 

 

 

 

 

1/гг : См: =

|Рг2 |.

 

 

 

 

 

 

 

 

В ГСА

на

рис.

8-2 — 8-5

слева

от

 

операторных

вершин

запишем

символы

 

этих

микроопераций.

 

Кроме

того,

пере­

 

нумеруем

различные

 

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

и

 

запишем операторы

 

—Кщ

справа

 

или

 

над операторной вершиной. Рядом с услов­

 

ными вершинами запишем символы логи­

 

ческих условий:

 

 

 

 

 

 

 

 

 

 

хг : sign См;

 

 

 

 

 

 

 

 

 

x2 : sign РгІ;

См [П];

 

 

 

 

 

 

хя : sign См =

 

 

 

 

 

 

Хі : Рг2 [я];

 

 

 

 

 

 

 

 

 

х5 : СчТ = 0;

 

 

 

 

 

 

 

 

 

 

Рг2 [1];

 

sign Рг2;

 

 

 

 

 

х7 : sign РгІ =

 

 

 

 

 

Хд : СчТ = я;

1].

 

 

 

 

 

 

 

Ха ■Рг2 [я +

 

 

 

 

 

 

Матричные

 

схемы

алгоритмов

для

Рис. 8-5. ГСА Г4 операции деле-

граф-схем Г г—Л, приведены

в табл.

8-1—

ния

8-4.

 

 

 

 

 

 

Kj

встречается дважды. Так как при объединении

В ГСА Гі и Г2 оператор

все операторы в пределах одной

ГСА должны быть различными, в MCA Мг и

Л42 второй оператор

 

переобозначен и заменен на Ур

181


У»

Уі

У2

Уз

У4

у;

Уо

Уі

У2

Уз

У4

у5

у;

Уі

*1

У і

*1

 

 

 

 

Таблица 8-1

MCA M-L операции сложения

 

 

У 2

У з

У 4

у ;

У к

Х\Х2

Ѵ а

 

 

 

X2

*2

 

 

 

 

 

*1*3

*1

*1*3

 

 

*1*3

*1

*1*3

 

 

 

 

1

*3

MCA Мг операции вычитания

У ,

У з

У 4

У 6

1

Хп *2

*1*3

*1*3

* 1 * 2

* 1 * 2

А'з

Таблица 8-2

у ; У,С

*і *1*3

*і *1*3

1

*3

*3

 

182


Y 2

^0

^2

у.

^7

Х і

^8 *5*4

у»

Ум

^2 ^3

У.

^3

А

У9

Ум

У11

У»

Yіз *1 Х1

У и

*5*1 *5*1

У15

MCA M3 операции умножения

 

Таблица 8-3

 

 

 

у

6

У 7

^8

 

У 9

Г ю

 

Ук

 

1

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

*4

 

 

 

 

 

 

 

 

*5*4

 

*5*8

*5*8*7

д.'5л:6а:7

 

 

 

 

 

 

 

 

*7

 

 

 

 

 

 

 

 

1

 

MCA Mi операции деления

 

Таблица 8-4

 

 

 

 

У 4

^9

^10

^11

Уі*

Уіз

Уі4

у »

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1

 

 

*8*1

 

 

 

 

 

*8

 

 

 

 

 

 

 

*8*1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

* 7

 

 

 

 

 

* 7

 

 

 

 

 

 

 

 

1

 

 

 

 

*1

*1

 

 

 

 

 

 

 

 

1

 

 

 

' *6

ха

* 0 * 7

* 9 * 7

183