- •Министерство общего и профессионального образования российской федерации
- •Введение
- •1 Цели и задачи курсового проектирования
- •2 Тематика и содержание курсовых проектов
- •3 Задание к курсовому проектированию
- •Перечень заданий
- •VII.Управление триггерами
- •4 Правила оформления пояснительной записки
- •6 Методика курсового проектирования
- •5. Правила оформления графического материала.
- •6.1 Управляющий автомат с программируемой логикой
- •6.1.1 Построение функциональных схем
- •6.1.2 Кодирование микрокоманды
- •6.1.3 Разработка структурной схемы уу
- •6.1.4 Расчет быстродействия уу
- •6.2 Проектирование блока сопроцессора для алгебраического суммирования чисел с фиксированной запятой
- •6.2.1 Суммирование чисел с фиксированной запятой перед старшим разрядом
- •6.2.2 Алгебраическое суммирование с использованием модифицированных обратного и дополнительного кодов
- •6.2.3 Методика выполнения алгебраического сложения при представлении в машине слагаемых и суммы в дополнительном и обратном кодах
- •6.2.5 Проектирование операционной части блока
- •6.3 Проектирование блока умножения чисел с фиксированной запятой
- •6.3.1 Методика выполнения операции умножения над прямыми кодами исходных чисел с фиксированной запятой
- •6.3.2. Методика выполнения умножения над дополнительными кодами чисел
- •6.3.3 Выполнение операции умножения над обратными кодами сомножителей
- •6.3.4 Умножение на два разряда одновременно
- •6.3.5. Деление чисел с фиксированной запятой перед старшим разрядом
- •6.4 Проектирование блока сопроцессора порядков для выполнения арифметических операций над числами с плавающей запятой
- •6.4.1 Умножение и деление чисел с плавающей запятой
- •5 Порядок защиты
6.3.2. Методика выполнения умножения над дополнительными кодами чисел
Операцию умножения над дополнительными кодами исходных чисел можно трактовать в общем виде следующим образом:
если Х>0 и Y>0, то поскольку [ Х>0 ]д =Х, [Y>0]д =Y специфика выполнения умножения здесь не проявляется;
если Х< 0, а Y>0, то [ Х<0 ]д = 2+Х и [ Х ]д [ Y ]д = 2Y + ХY - так называемое псевдопроизведение, и для того чтобы получить правильный результат [ ХY<0 ]д = 2+ХY, необходимо к псевдопроизведению прибавить 2 и вычесть 2Y;
если Х> 0, Y< 0, то [ Х ]д [ Y ]д = 2Х+2Y, и здесь необходима поправка, равная +2 и -2Х;
если Х< 0 и Y<0, то [Х]д [Y]д = (2+Х)(2+Y), а правильный результат ХY, и необходима поправка -4 - 2Х - 2Y.
Существует несколько способов введения поправок. Рассмотрим на примере умножения с младших разрядов множителя способ, обеспечивающий автоматическое введение поправок при любых знаках перемножаемых чисел.
Обозначим разряд дополнительного кода множителя, на который производится умножение через y(n+1-i). По отношению к данному разряду младший будет y(n+2-i). Алгоритм рассматриваемой методики заключается в следующем:
если y( n+1- i ) = y( n+2 - i ) ,то производится лишь сдвиг частичного произведения A( i - 1 )
;если y( n+1 - i ) = 0 , а y( n+2 - i ) = 1, то к A( i - 1 )
прибавляется [ Х ]д;если y( n+1 - i ) = 1 , а y( n+2 - i ) = 0, то из A( i - 1 )
вычитается [ Хд
]
или
к A(
i - 1)
прибавляется [ - [ Х ]д
]д.
Для этого алгоритма справедлива следующая рекуррентная формула:
A(
i )
= A(
i - 1 )
+ (у(
n+2 - i )
- у(
n+1 - i ) )
[ Х ]д
При этом операция состоит из n+1 такта для i=1,...,n+1 . Другими словами, умножение производится и на знаковый разряд множителя y0. После умножения на y0 получаем A( n+1 ) = [ Х ]д [ У ]д = [ Z ]д , сдвиг A( n+1 ) не производится.
Рассмотренная методика применима и к умножению со старших разрядов множителя. Алгоритм выполнения операции имеет следующий вид:
[Х]д
[У]д
= [Х]д
(у1-у0)
+ [Х]д
(у2-у1)
+ ...+[Х]д
(уn-уn-1)+[Х]д
(уn+1
-
уn)
6.3.3 Выполнение операции умножения над обратными кодами сомножителей
Рассмотрим методику умножения с младших разрядов с анализом знаков сомножителей:
если Х>0 и Y>0, то здесь используется обычная методика,
если Х<0 и Y>0, то в данном случае:
A( i ) = A( i - 1 )
+ [ Х<0 ]0
у(
n+1 - i )
Как частичные произведения, так и окончательное, будут представлены в обратном коде;
Если Х>0, а Y<0 ,то необходимо осуществить передачу [ -0, x1,...,xn ]0 = 1,
...
в сумматор, если y(
i )
= 0. При y(
i )
= 1 передача множимого не производится.
При этом y(
i ) -
цифры обратного кода отрицательного
множителя;
Если Х<0 и У<0 ,то при yi = 0 осуществляется передача не исходного кода [Х<0]0 = 1,
...
,
а положительного кода множимого
0,x1...xn,
который получается с помощью логической
операции отрицания; при y(
i )
= 1 передача множимого не осуществляется.
Произведение в этом случае получается
положительным.
Данную методику можно распространить и на умножение со старших разрядов обратных кодов.
Преимущество умножения чисел в дополнительных и обратных кодах заключается в том, что знак и цифровая часть произведения получаются за один этап, состоящий из (n+1) такта умножения.
