Арифметически-логическое устройство (АЛУ) для выполнения операции деления без восстановления остатка, страница 2

Определим размеры регистров и внутренних шин:

???????????????????????????????????7

Здесь А1 и А2 – внутренние шины, А – регистр делимого, В – регистр делителя, ЧТ – регистр частного, СЧ – регистр счетчика. Его формат рассчитывается так:

(количество разрядов под мантиссу)  .

ТП – триггер переполнения (если появляется переполнение, то он переключается из 0 в 1, потому для него достаточно одного разряда).

Теперь можно перейти к разработке микропрограммы и структуры АЛУ.

Блок – схема (содержательный граф) этого алгоритма на Ф-языке. Она состоит из трех основных частей: обработки порядков, обработки мантисс и нормализации мантиссы результата. Отмечаем все операторные вершины (кроме начальной и конечной) как yi, а логические условия xi, на основе чего составляем закодированный граф.

Разработка ОА начинается с составления таблицы микроопераций и логических условий, реализуемых данным ОА.

Обозначение

Логическое условие

x1

А(0) – знак порядка делимого

x2

В(0) – знак порядка делителя

x3

ЧТ(0:1)=10 – положительное переполнение

x4

ЧТ():1)=01 – отрицательное переполнение

x5

И=0 – если делитель равен 0

x6

А(7) – знак мантиссы делимого

x7

А(7) – знак мантиссы делителя

x8

ЧТ(8) – старший разряд мантиссы частного

x9

ЧТ (0) – 0 разряд знака порядка частного

x10

ЧТ(1) – 1 разряд знака порядка частного

Обозначение

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

y1

ЧТ(8:24):=0 – обнуляем мантиссу частного

y2

А(0:6):=11.7А(2:6)+1 – перевод в доп. код

y3

В(0:6):=00,В(2:6) – присваиваем знак плюс

y4

В(0:6):=11.7В(2:6)+1 – перевод в доп. код

y5

ЧТ(0:6):=А(0:6)+В(0:6) – сложение порядков

у6

А(8:24):=R1(0,А(8:24)) – сдвиг вправо

y7

А(0:6):=А(2:6)+1 – в младший разряд +1

y8

А:=11.7,А(8:24)+1 – перевод в доп. код

y9

В(0:1):= 0 – обнуляем знак делителя

y10

ЧТ:=0 – обнуляем частное

y11

А:=А+0,В(8:24) – сумма

y12

ТП:=1 – ТП  в 1

y13

СЧ:=1710

y14

А:=L1(A,0) – сдвиг влево

y15

А:=А+11.7В(8:24)+1 – А минус В

y16

ЧТ(8:24):=L1(ЧТ(8:24),А(0)) – сдвиг влево

y17

СЧ:=СЧ-1 – счетчик -1

y18

ЧТ(7):=А(7)в(7) – логическое сложение

y19

ЧТ(8:24):=R1(0,ЧТ(8:24)) – сдвиг вправо

y20

ЧТ(0:6):=ЧТ(0:6)+1 – в младший разряд +1

y21

ЧТ(0:6):=11.7ЧТ(0:6) – перевод в доп. код

Алгоритм выполнения заданной операции описан на Ф-языке, в котором используются следующие операции:

R1(0,А) – сдвиг А на 1 разряд вправо и в освободившиеся разряды добавить 0

L1(А,0) – сдвиг А на 1 разряд влево и в освободившиеся разряды добавить 0

.7 – инверсия

Распределим регистры по шинам: выделяем подмножества (А1, А2)

А1={A}, A2={В, ЧТ, СЧ, ТП} и составляем таблицу операторов, реализуемых ОА.