Курсовая работа: Проектирование вычислительного устройства
Первый операнд находиться в регистре А, второй в регистре B, результат в регистре С. Разрядность А – 16 бит, В и С – 17. Считаем, что при умножении переполнения не происходит. Предполагаем, что имеем сумматор-вычитатель.
Флаги АЛУ: Z – признак 0, C – перенос, OV – переполнение.
4. 1. 1 Алгоритм сложения-вычитания
Рисунок 3
4. 1. 2 Алгоритм произведения
Для операции умножения в регистр A помещается множимое, в регистр B мнножитель, в регистре C произведение. Младшим считается 15 разряд.
Рисунок 4
4. 1. 3 Алгоритм деления
При выполнении операции деления в регистр A содержит делимое, B делитель, C остаток (частное). Ниже приведен алгоритм деления целых чисел без восстановления остатка.
Рисунок 5
4. 1. 4 Алгоритм логических операций
Алгоритм логических операций AND, OR, XOR приведен на рисунке 6.
Рисунок 6
4.2 Синтез I – автомата
В соответствии с методикой, изложенной в [3] получим:
Микрооперации используемые в микропрограммах +, -, /, * и логических операциях.
Y1 | B(0):=ùB(0) | Y15 | C:=C+1 |
Y2 | C:=A+B | Y16 | C(0):=1 |
Y3 | C:=A+ùB+1 | Y17 | C:=A(1:15) |
Y4 | ПП:=1 | Y18 | A(1:15):=B(2:16) |
Y5 | C(0):=A(0) | Y19 | C:=C+ùA(1:15)+1 |
Y6 | C:=B+ùA+1 | Y20 | C:=L1(C.0) |
Y7 | C(0):=B(0) | Y21 | Сч:=0 |
Y8 | Z:=0 | Y22 | B(1:16):=0 |
Y9 | C:=0 | Y23 | B(1:16):=L1(1:16).ùC(0) |
Y10 | Сч:=15 | Y24 | C:=B(1:15) |
Y11 | C:=C+A(1:15) | Y25 | C:=B |
Y12 | B(1:15):=R1(C(15).B(1:15)) | Y26 | C:=A&B |
Y13 | C:=R1(O.C) | Y27 | C:=AÚB |
Y14 | Сч:=Сч-1 | Y28 | C:=AÅB |
X1 | B(0) |
X2 | A(0)=B(0) |
X3 | C(0) |
X4 | A(0) |
X5 | C(1..15)=0 сравн с 0 |
X6 | B(15) |
X7 | Сч=0 |
X8 | B(1) |
X9 | A(0)ÅB(0) |
X10 | B(16) |
X11 | А=0 |
Разбиваем микрооперации на подмножества соответствующие внутренним словам ( регистрам).
YA ={y18 };
YB ={y1 ,y12 , y22 , y23 };
YC ={ y2 , y3 , y5 , y6 , y7 , y9 , y11 , y13 , y15 , y16 , y17 , y19 , y20 , y24 , y25 , y26 , y27 , y28 };
YСЧ ={ y10 , y14 , y21 };
YПП ={y4 };
YZ ={y8 };
На полученных множествах выделяем классы эквивалентных микроопераций Knj .
KA,1 ={y18 };
KB,1 ={y1 }; KB,2 ={y12 }; KB,3 ={y22 }; KB,4 ={y23 };
KC,1 ={y2, y3, y6, y11, y15, y19 };KC,2 ={ y5, y7, y16 };KC,3 ={y9 }; KC,4 ={y24 }; KC,5 ={y25 }; KC,6 ={y26 }; KC,7 ={y27 }; KC,8 ={y28 }; KC,9 ={y13 }; KC,10 ={y17 }; KC,11 ={y20 }
KСЧ,1 ={y10 }; KСЧ,2 ={y14 }; KСЧ,3 ={y21 }
KПП,1 ={y4 };
KZ,1 ={y8 }
Для KС1 составляем обобщенный оператор:
С:=А2+А1