
Вашкевич Н.П., Захаров А.П. Проектирование и моделирование микропрограммных цифровых устройств с помощью PCAD
.pdf21
Продолжение табл. 4
№ |
Наименование МО, условия ее |
Признаки, |
вырабатываемые |
в |
|
|||||||
п/п |
выполнения |
и |
представление |
в |
результате |
выполнения |
МО |
и |
|
|||
|
операторах присваивания |
|
комментарии |
|
|
|
|
|
||||
2 |
Проверка |
исходных чисел |
на |
Осуществляется так же как и |
|
|||||||
|
нуль |
|
|
|
для чисел |
с |
фиксированной |
|
||||
|
|
|
|
|
точкой |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
3 |
Установка регистров РСм и |
|
|
|
|
|
|
|
|
|||
|
РСМм в нуль |
|
|
|
|
|
|
|
|
|
|
|
|
РСм:=0; РСМм:=0 |
|
|
|
|
|
|
|
|
|
||
4 |
Другие |
|
микрооперации, |
Мантисса |
произведения Mz |
|
||||||
|
связанные с умножением мантисс |
может |
быть |
|
получена |
с |
|
|||||
|
сомножителей, |
выполняются |
так |
нарушением |
|
|
нормализации |
|
||||
|
же как и для чисел с |
вправо. |
Сигнал |
нарушения |
|
|||||||
|
фиксированной точкой для p=0 |
|
нормализации |
вправо |
HR=1 |
|
||||||
|
|
|
|
|
вырабатывается при z0=z1 |
|
|
|||||
5 |
Определение порядка результата |
Возможны особые случаи: |
|
|
||||||||
|
умножения Pz=Px+Py |
|
- |
при |
|
Pz>Pmax.доп. |
|
|||||
|
РСМp:=РСМp+Р1p |
|
вырабатывается |
|
сигнал |
пере- |
|
|||||
|
|
|
|
|
полнения порядка OV=1; |
|
|
|
||||
|
|
|
|
|
- |
при |
|
Pz<Pmin.доп. |
|
|||
|
|
|
|
|
вырабатывается |
|
сигнал |
анти- |
|
|||
|
|
|
|
|
переполнения, Uп=1 |
|
|
|
||||
|
|
|
|
|
|
|||||||
6 |
Нормализация |
|
результата |
Возможны особые случаи, как |
|
|||||||
|
умножения влево при HR=1: |
|
в п.5 |
|
|
|
|
|
|
|
||
|
Mz:=ALS (Mz,1); |
|
|
|
|
|
|
|
|
|
||
|
Pz:=Pz-1; |
|
|
|
|
|
|
|
|
|
|
|
|
РСМм:=ALS(РСМм,1); |
|
|
|
|
|
|
|
|
|
||
|
Р2м:=LS(Р2м,1); |
|
|
|
|
|
|
|
|
|
|
|
|
РСМp:=РСМp+(2n-1) |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 5 |
||
|
|
Деление чисел с фиксированной точкой |
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
|
|
|
|
|
|||||||||
№ |
Наименование МО, условия ее |
Признаки, вырабатываемые |
в |
||||||||||
п/п |
выполнения |
и представление |
в |
результате |
выполнения |
МО |
и |
||||||
|
операторах присваивания |
|
комментарии |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||
1 |
Запись |
исходных |
чисел |
в |
Для |
целых |
чисел |
|
делимое |
||||
|
регистры ОА: |
|
|
располагается |
так, |
|
чтобы |
||||||
|
- числа в прямом коде (модули |
младший разряд делимого был в |
|||||||||||
|
чисел) |
|
|
|
(n-1)-м разряде Р2. |
|
|
|
|
||||
|
|
|
|
Для |
простых |
дробей |
делимое |
||||||
|
РСМ(0/n):=|x(0/n)|; |
|
|
||||||||||
|
|
|
располагается так, чтобы старший |
||||||||||
|
Р2(0/n-1):=|x(n+1/2n)|; |
|
|
||||||||||
|
|
|
разряд |
делимого |
располагался |
в |
|||||||
|
Р1:=|y|; |
|
|
|
старшем разряде РСМ после кода |
||||||||
|
- числа в дополнительном коде |
знака делимого. |
|
|
|
|
|
||||||
|
РСМ(0/n):=[x(0/n)]2; |
|
|
Для чисел в прямом коде в |
|||||||||
|
|
|
знаковом |
разряде |
регистров |
||||||||
|
Р2(0/n-1):=[x(n+1/2n)]2; |
|
устанавливаются нули |
|
|
|
|
||||||
|
Р1:=[y]2 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Проверка |
исходных |
чисел |
на |
В |
результате |
проверки |
|
|||||
|
нуль |
|
|
|
исходных |
чисел |
на |
нуль |
|||||
|
|
|
|
|
вырабатываются сигналы: |
|
|
||||||
|
|
|
|
|
- |
сигнал |
нулевого |
результата |
|||||
|
|
|
|
|
при x=0, y |
0; |
|
|
|
|
|
||
|
|
|
|
|
- сигнал деления на нуль при |
||||||||
|
|
|
|
|
x |
0, y=0; |
|
|
|
|
|
|
- сигнал вещественной неопределенности при x=y=0
3 Запись в счетчик тактов числа тактов деления
СчТ:=n

23
Продолжение табл. 5
№ |
Наименование МО, условия ее |
Признаки, |
вырабатываемые |
в |
||||||
п/п |
выполнения и представление в |
результате |
выполнения |
МО |
и |
|||||
|
операторах присваивания |
комментарии |
|
|
|
|||||
4 |
Пробное вычитание (сложение) |
Сигнал |
переполнения вы- |
|||||||
|
для анализа на переполнение: |
рабатывается: |
|
|
|
|||||
|
- для чисел в прямом коде |
- для чисел в прямом коде при |
||||||||
|
анализ на переполнение вы- |
С=1 (остаток положительный); |
|
|||||||
|
полняется вычитанием делителя из |
- для чисел в дополнительном |
||||||||
|
делимого |
коде при РСМ(0)1=x0. |
|
|
||||||
|
РСМ:= РСМ + |
|
|
|
|
|||||
|
Р1+1; |
При |
наличии |
переполнения |
||||||
|
- для чисел в дополнительном |
операция деления прекращается. |
|
|||||||
|
коде для этой цели выполняется |
При |
отсутствии переполнения |
|||||||
|
вычитание при x0=y0 |
осуществляется |
сдвиг |
влево |
в |
|||||
|
РСМ:= РСМ + |
|
|
РСМ и Р2 после чего начинаются |
||||||
|
Р1+1, а при |
|||||||||
|
x0 y0 сложение в сумматоре |
такты |
деления, |
для |
чисел |
в |
||||
|
дополнительном |
|
коде |
|||||||
|
РСМ:=РСМ+Р1 |
|
||||||||
|
формируется код знака частного |
|||||||||
|
|
|
|
|
z0 (см. п.5) |
|
|
|
|

24
Продолжение табл. 5
№ |
Наименование МО, |
условия |
ее |
Признаки, |
вырабатываемые |
в |
|||||||||
п/п |
выполнения |
и |
представление |
в |
результате выполнения |
МО |
и |
||||||||
|
операторах присваивания |
|
|
комментарии |
|
|
|
|
|||||||
5 |
Определение |
|
|
кода |
знака |
Для чисел в прямом коде код |
|||||||||
|
частного и его запись в регистр |
знака |
частного |
формируется |
|||||||||||
|
частного: |
|
|
|
|
|
|
|
комбинационной |
|
схемой, |
||||
|
- для чисел в прямом коде код |
реализующей |
|
сложение |
по |
||||||||||
|
знака |
частного |
определяется |
по |
модулю 2 кодов знаков делимого |
||||||||||
|
формуле z0=x0 y0. Р2(n):=z0; |
|
и делителя. |
|
|
|
|
||||||||
|
|
Для |
чисел |
в |
дополнительном |
||||||||||
|
- для чисел в дополнительном |
||||||||||||||
|
коде |
код |
|
знака |
|
частного |
коде |
код |
знака |
частного |
|||||
|
определяется |
по |
результату |
формируется |
автоматически |
в |
|||||||||
|
пробного вычитания |
(сложения) |
результате |
анализа |
|
на |
|||||||||
|
таким образом: |
|
|
|
|
|
|
переполнение |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
для y0=1 |
zо = |
|
о; |
|
|
|
|
|
|
|
|
|
||
|
C |
|
|
|
|
|
|
|
|
|
|||||
|
для y0=0 z0=C0; |
|
|
|
|
|
|
|
|
|
|||||
|
- код знака частного заносится в |
|
|
|
|
|
|
||||||||
|
младший разряд регистра Р2 перед |
|
|
|
|
|
|
||||||||
|
выполнением тактов деления |
|
|
|
|
|
|
|
P2(n):= yo Co yo Co
6 Сдвиг влево в регистрах РСМ и Р2 выполняется:
-после пробного вычитания (сложения) в сумматоре;
-после вычитания или сложения
всумматоре в каждом такте деления
РСМ:=ALS(РСМ,1); Р2:=ALS(Р2,1)

25
Продолжение табл. 5
№ |
Наименование |
МО, условия |
ее |
Признаки, |
вырабатываемые |
в |
|||||
п/п |
выполнения |
и |
представление |
в |
результате |
выполнения МО |
и |
||||
|
операторах присваивания |
|
комментарии |
|
|
|
|||||
7 |
Сложение |
или |
вычитание |
в |
После каждого сложения или |
||||||
|
сумматоре |
после |
анализа |
на |
вычитания |
|
вырабатывается |
||||
|
переполнение для чисел в прямом |
сигнал |
С, |
по |
которому |
||||||
|
коде: |
|
|
|
|
|
определяется значение очередной |
||||
|
- при С=0 выполняется сложение |
цифры частного: |
|
|
|||||||
|
РСМ:=РСМ+Р1; |
|
|
zi=Ci |
|
|
|
|
|||
|
- |
при |
С=1 |
выполняется |
|
|
|
|
|
||
|
вычитание |
|
|
|
|
|
|
|
|
|
РСМ:= Р1+1
8 |
Сложение |
или вычитание |
в |
После |
каждого сложения или |
|||
|
сумматоре после |
анализа |
на |
вычитания |
вырабатывается |
|||
|
переполнение |
для |
чисел |
в |
сигнал |
С, |
по |
которому |
|
дополнительном коде: |
|
|
определяется в |
зависимости от |
|||
|
- при РСМ(0)=y0 |
выполняется |
знака делителя очередная цифра |
|||||
|
вычитание |
|
|
|
частного: |
|
|
|
|
|
|
|
zi=Ci при y0 =0; |
|
|||
|
|
|
|
|
|
|
РСМ:= РСМ + |
|
|
zi = |
|
при y0=1 |
|
|||
|
Р1+1; |
Ci |
|
|||||||
|
- при РСМ(0) |
y0 выполняется |
|
|
|
|
|
|
||
|
сложение |
|
|
|
|
|
|
|
|
|
|
РСМ:=РСМ+Р1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
9 |
Вычитание из |
счетчика тактов |
Вычитание |
единицы |
из |
|||||
|
единицы |
|
|
|
счетчика |
|
тактов выполняется |
|||
|
СчТ:=СчТ-1 |
|
|
|
после каждого такта деления. |
|
||||
|
|
|
|
При |
СчТ=0 |
вырабатывается |
||||
|
|
|
|
|
||||||
|
|
|
|
|
сигнал окончания тактов деления |

26
Продолжение табл. 5
№ |
Наименование |
МО, условия |
ее |
Признаки, |
вырабатываемые |
в |
|||
п/п |
выполнения и |
представление |
в |
результате выполнения |
МО |
и |
|||
|
операторах присваивания |
|
|
комментарии |
|
|
|
||
10 |
Коррекция |
частного |
при |
Коррекция |
частного |
при |
|||
|
делении |
чисел в |
дополнительном |
делении чисел в прямом коде не |
|||||
|
коде |
производится |
после |
требуется |
|
|
|
||
|
окончания тактов деления |
путем |
|
|
|
|
|||
|
прибавления |
единицы |
|
к |
|
|
|
|
|
|
содержимому регистра частного в |
|
|
|
|
||||
|
следующих случаях: |
|
|
|
|
|
|
-при делении ненацело для z0=1;
-при делении нацело для y0 = 1
P2 := P2 + 1

27
Продолжение табл. 5
№ |
Наименование |
МО, |
условия |
ее |
Признаки, |
вырабатываемые |
в |
|
п/п |
выполнения и представление |
в |
результате выполнения |
МО |
и |
|||
|
операторах присваивания |
|
комментарии |
|
|
|
||
11 |
Восстановление |
|
последнего |
Признаком |
отрицательного |
|||
|
остатка делимого для чисел в |
остатка делимого для |
прямого |
|||||
|
дополнительном |
коде |
произво- |
кода является появление нуля в |
||||
|
дится, если знаки остатка и |
регистре C |
|
|
|
|||
|
делимого не совпадают. Для этой |
|
|
|
|
|||
|
цели: |
|
|
|
|
|
|
|
|
- при РСМ(0) |
y0 выполняется |
|
|
|
|
||
|
сложение в сумматоре |
|
|
|
|
|
|
|
|
РСМ:=РСМ+Р1; |
|
|
|
|
|
|
|
- при РСМ(0)=y0 выполняется вычитание в сумматоре
РСМ:= РСМ + Р1+1.
Для чисел в прямом коде восстановление последнего остатка производится, если он отрицательный, выполнением операции сложения в сумматоре
РСМ:=РСМ+Р1
28
Таблица 6
Деление чисел c плавающей точкой
№ |
Наименование МО, условия ее |
Признаки, |
вырабатываемые |
в |
|||||||
п/п |
выполнения |
и представление |
в |
результате |
выполнения |
МО |
и |
||||
|
операторах присваивания |
|
комментарии |
|
|
|
|||||
1 |
Запись |
исходных |
чисел |
в |
Мантиссы |
делимого |
распо- |
||||
|
регистры мантисс и порядков ОА: |
лагаются так, чтобы старший |
|||||||||
|
- числа в прямом коде (модули |
разряд |
мантиссы |
располагался |
в |
||||||
|
чисел) |
|
|
|
|
старшем разряде РСМ после кода |
|||||
|
|
|
|
|
знака делимого. |
|
|
|
|||
|
РСМм(0/n):=|Mx(0/n)|, |
|
|
|
|
|
|||||
|
|
|
Для чисел в прямом коде в |
||||||||
|
Р2м(0/n-1):=|Mx(n+1/2n)|, |
|
знаковые |
разряды регистров |
|||||||
|
Р1м:=[My], |
|
|
|
устанавливаются нули |
|
|
||||
|
РСМp:=[Px]2, Р1p:=[Py]2; |
|
|
|
|
|
|
|
|||
|
- числа в дополнительном коде |
|
|
|
|
|
|
||||
|
РСМм(0/n):=[Mx(0/n)]2, |
|
|
|
|
|
|
|
|||
|
Р2м(0/n-1):=[Mx(n+1/2n)]2, |
|
|
|
|
|
|
|
|||
|
Р1м:=[My]2, |
|
|
|
|
|
|
|
|
||
|
РСМn:=[Px]2 ,Р1n:=[Py]2 |
|
|
|
|
|
|
|
|||
2 |
Проверка |
исходных |
чисел |
на |
Осуществляется так же как и |
||||||
|
нуль |
|
|
|
|
для чисел |
с |
фиксированной |
|||
|
|
|
|
|
|
точкой |
|
|
|
|
|
|
|
|
|||||||||
3 |
Пробное вычитание (сложение) |
При наличии переполнения для |
|||||||||
|
для анализа |
на переполнение |
чисел |
с |
плавающей |
точкой |
|||||
|
выполняется так же как и для |
осуществляется |
восстановление |
||||||||
|
деления |
двоичных |
чисел |
с |
мантиссы |
делимого |
|
с |
|||
|
фиксированной точкой |
|
|
последующей |
|
|
ее |
||||
|
|
|
|
|
|
денормализацией |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|

29
Продолжение табл. 6
№ |
Наименование |
МО, |
условия |
ее |
Признаки, |
вырабатываемые |
в |
||
п/п |
выполнения |
и |
представление |
в |
результате |
выполнения МО |
и |
||
|
операторах присваивания |
|
|
комментарии |
|
||||
4 |
Восстановление |
мантиссы |
При отсутствии переполнения |
||||||
|
делимого |
после |
пробного |
формируется код знака частного |
|||||
|
вычитания |
(сложения) |
при |
для чисел в дополнительном коде |
|||||
|
РСМ(0)1=x0. |
|
|
|
|
|
и осуществляется сдвиг в РСМ и |
||
|
Для этой |
цели в |
сумматоре |
Р2 после чего начинаются такты |
|||||
|
выполняется: |
|
|
|
|
|
деления чисел обоих кодов |
|
|
|
|
|
|
|
|
|
|
|
- сложение, если при анализе на переполнение выполнялось вычитание
РСМм:=РСМ(0)1+P1м;
- вычитание, если при анализе на переполнение выполнялось сложение
|
РСМ := |
РСМ(0) |
+ |
|
+2−n |
|
|
|
Р1 |
|
|||||
|
м |
1 |
|
м |
|
|
|
5 |
Денормализация |
|
мантиссы |
Знак мантиссы делимого после |
|||
|
делимого |
после анализа |
на |
сдвига сохраняется, так как сдвиг |
|||
|
переполнение производится |
при |
арифметический |
||||
|
РСМ(0)1=x0 |
сдвигом мантиссы Mx |
|
||||
|
вправо на 1 разряд и увеличением |
|
|||||
|
порядка Px на единицу |
|
|
|
|
|
|
|
P′x=Px+1; |
|
|
|
|
|
|
|
M′x:=ARS(Mx,1); |
|
|
|
|
|
|
|
РСМp:=РСМp+1 |
|
|
|
|
|
30
Продолжение табл. 6
№ |
Наименование |
МО, условия |
ее |
Признаки, |
вырабатываемые |
в |
|||
п/п |
выполнения и |
представление |
в |
результате |
выполнения |
МО |
и |
||
|
операторах присваивания |
|
|
комментарии |
|
|
|
||
6 |
Деление мантисс после анализа |
Если |
переполнение |
имело |
|||||
|
на переполнение осуществляется |
место, то код знака частного для |
|||||||
|
по алгоритму деления чисел с |
мантисс в |
дополнительном коде |
||||||
|
фиксированной точкой (для p=0); |
может сформироваться |
только |
в |
|||||
|
при этом необходимо иметь в |
результате первого такта деления, |
|||||||
|
виду, что при наличии перепол- |
выполняемого |
после |
денор- |
|||||
|
нения деление |
мантисс |
может |
мализации делимого. |
|
|
|||
|
производиться |
только |
после |
В результате деления нор- |
|||||
|
восстановления |
мантиссы |
мализованных мантисс и в случае |
||||||
|
делимого и ее денормализации |
|
деления |
денормали-зованных |
|||||
|
|
|
|
|
|||||
|
Mz:=M′x/My |
|
|
|
мантисс |
результат |
деления |
||
|
|
|
|
|
представляется |
|
в |
||
|
|
|
|
|
нормализованном виде |
|
|
||
|
|
|
|
|
|
|
|
|
|