- •Министерство общего и профессионального образования российской федерации
- •Введение
- •1 Цели и задачи курсового проектирования
- •2 Тематика и содержание курсовых проектов
- •3 Задание к курсовому проектированию
- •Перечень заданий
- •VII.Управление триггерами
- •4 Правила оформления пояснительной записки
- •5. Правила оформления графического материала.
- •6 Методика курсового проектирования
- •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) такта умножения.