Определим размеры регистров и внутренних шин:
???????????????????????????????????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={В, ЧТ, СЧ, ТП} и составляем таблицу операторов, реализуемых ОА.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.