Разработка вычислительного устройства для выполнения операции умножения двоичных чисел

Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 20:29, курсовая работа

Краткое описание

Цель курсового проекта: разработать вычислительное устройство для выполнения операции умножения двоичных чисел.
Исходные данные:
числа с фиксированной запятой со знаком, представленные в прямом коде;
количество разрядов: 4;
алгоритм умножения: на один разряд множителя, начиная со старших;
разрядов множителя, со сдвигом частного произведения влево.

Содержание работы

ВВЕДЕНИЕ 4
1 СЛОВЕСНОЕ ОПИСАНИЕ ОПЕРАЦИИ УМНОЖЕНИЯ 5
2 БЛОК-СХЕМА АЛГОРИТМА ВЫПОЛНЕНИЯ ОПЕРАЦИИ 8
3 ОПРЕДЕЛЕНИЕ НАБОРА УПРАВЛЯЮЩИХ СИГНАЛОВ 9
4 СИНТЕЗ АЛУ 10
5 ВРЕМЕННАЯ ДИАГРАММА УПРАВЛЯЮЩИХ СИГНАЛОВ 12
6 СХЕМНОЕ РЕШЕНИЕ УСТРОЙСТВА УПРАВЛЕНИЯ 13
7 МИКРОПРОГРАММА ВЫПОЛНЕНИЯ КОМАНДЫ УМНОЖЕНИЯ 16
ЗАКЛЮЧЕНИЕ 18
ПРИЛОЖЕНИЕ 1 Структурная схема арифметического устройства 19
ПРИЛОЖЕНИЕ 2 Листинг программы 20
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23

Содержимое работы - 1 файл

ВВЕДЕНИЕ.docx

— 289.98 Кб (Скачать файл)

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ 4

1 СЛОВЕСНОЕ ОПИСАНИЕ  ОПЕРАЦИИ УМНОЖЕНИЯ 5

2 БЛОК-СХЕМА АЛГОРИТМА  ВЫПОЛНЕНИЯ ОПЕРАЦИИ 8

3 ОПРЕДЕЛЕНИЕ НАБОРА  УПРАВЛЯЮЩИХ СИГНАЛОВ 9

4 СИНТЕЗ АЛУ 10

5 ВРЕМЕННАЯ ДИАГРАММА  УПРАВЛЯЮЩИХ СИГНАЛОВ 12

6 СХЕМНОЕ РЕШЕНИЕ  УСТРОЙСТВА УПРАВЛЕНИЯ 13

7 МИКРОПРОГРАММА ВЫПОЛНЕНИЯ  КОМАНДЫ УМНОЖЕНИЯ 16

ЗАКЛЮЧЕНИЕ 18

ПРИЛОЖЕНИЕ 1  Структурная схема арифметического устройства 19

ПРИЛОЖЕНИЕ 2 Листинг программы 20

СПИСОК  ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23 

 

ВВЕДЕНИЕ

     Язык  ассемблера — язык программирования "низкого уровня". В отличие от языка машинных кодов позволяет использовать более удобные для человека мнемонические (символьные) обозначения команд. При этом для перевода с языка ассемблера в понимаемый процессором машинный код требуется специальная программа, также называемая ассемблером.

     Ассемблер — родной язык компьютера. Можно сказать, что компьютер «думает» на ассемблере. Поэтому программы, написанные на других языках, таких как Си, нужно сначала перевести на ассемблер, чтобы компьютер их понял и смог исполнить.

       Цель курсового проекта: разработать  вычислительное устройство для  выполнения операции умножения  двоичных чисел.

     Исходные  данные:

  • числа с фиксированной запятой со знаком, представленные в прямом коде;
  • количество разрядов: 4;
  • алгоритм умножения: на один разряд множителя,  начиная со старших;
  • разрядов множителя, со сдвигом частного произведения влево.
  •  

1 СЛОВЕСНОЕ ОПИСАНИЕ ОПЕРАЦИИ УМНОЖЕНИЯ

     Операция  умножения является наиболее частой после сложения. Умножение может  выполняться суммированием сдвинутых  на один или несколько разрядов частичных  произведений, каждое из которых является результатом умножения множимого  на соответствующий разряд (разряды) множителя.

     При точном умножении двух чисел количество значащих цифр произведения может в  пределе достичь двойного количества значащих цифр сомножителей. Еще сложнее  возникает ситуация при умножении  нескольких чисел. Поэтому в произведении только в отдельных случаях используют двойное количество разрядов.

     Наиболее  просто операция умножения выполняется  в прямом коде. При этом на первом этапе определяется знак произведения путем сложения знаковых разрядов сомножителей по модулю 2, затем производится перемножение модулей сомножителей согласно двоичной таблице умножения. Результату присваивается  полученный знак.

     Так как умножение производится в  двоичной системе счисления, частные  произведения либо равны 0 (при умножении  на 0), либо самому сомножителю (при умножении  на 1), сдвинутому на соответствующее  количество разрядов.

     Произведение  можно получить двумя путями:

  • сдвигом множимого на требуемое количество разрядов и прибавлением полученного очередного частичного произведения к ранее накопленной сумме частичных произведений;
  • сдвигом суммы ранее полученных частичных произведений на каждом шаге на 1 разряд и последующим прибавлением к сдвинутой сумме неподвижного множимого либо 0.

     Причем  каждый из этих методов может различаться  еще и тем, с младших или  со старших разрядов начинается умножение. 

     Пример

     А=0,1101; В=0,1011;

           1а)  0,1101   1б)  0,1101

                 0,1011     0,1011

                  1101      1101

            1101      0000

            0000      1101

            1101   1101  

            10001111     10001111 

     Основываясь на вышеизложенном можно создать 4 основных метода машинного умножения в  прямом коде:

  • умножение младшими разрядами множителя со сдвигом накапливаемой суммы частных произведений вправо;
  • умножение младшими разрядами множителя со сдвигом множимого влево;
  • умножение старшими разрядами множителя со сдвигом накапливаемой суммы частных произведений влево;
  • умножение старшими разрядами множителя со сдвигом множимого вправо;

     Эти методы можно представить в виде схемы (рисунок 1.1). 

     Рисунок 1.1Схема алгоритмов умножения 

     Обозначения, используемые на рисунке: - частичное произведение, - частичная сумма.

     В данном курсовом проекте используется 3 метод умножения.

     Умножение, начиная со старших  разрядов множителя  при сдвиге суммы  частичных произведений влево

     Регистр множителя и сумматор частичных  произведений должны иметь цепи сдвига влево. Регистр множимого не имеет  цепей сдвига. Последовательность действий в каждом цикле выполнения умножения  определяется старшим разрядом регистра множителя. При этом методе сумматор частичных произведений должен иметь  двойную длину. И данный метод  требует дополнительного по сравнению  с первым методом оборудования. Но он применяется в некоторых АЛУ, т.к. позволяет без дополнительных цепей сдвига выполнять и деление (а при первом методе для выполнения деления необходимы дополнительные цепи сдвига влево в регистре множимого (частного) и в сумматоре частичных  произведений (разностей). 

 

     

2 БЛОК-СХЕМА АЛГОРИТМА ВЫПОЛНЕНИЯ ОПЕРАЦИИ

Рисунок 2.1Алгоритм операции умножения чисел с фиксированнойзапятой, заданных в прямом коде, со старших разрядов множителя 

 

     

3 ОПРЕДЕЛЕНИЕ НАБОРА УПРАВЛЯЮЩИХ СИГНАЛОВ

     Каждой  переменной, представленной в алгоритме, в схеме должен соответствовать  элемент хранения. Разрядность модуля произведения равна сумме разрядностей сомножителей.

     Исходя  из этого, определим состав оборудования, необходимого для реализации АЛУ заданного типа для n = 4 (таблица 3.1). 

Таблица 3.1 – Состав оборудования

Схема Разрядность Функции Управляющий сигнал
Регистр модуля множимого RGX 8 Загрузка. Сдвиг  в сторону младших разрядов. УС1 УС2
Регистр модуля множителя RGY 4 Загрузка. Сдвиг  в сторону старших разрядов. УС3 УС4
Регистр модуля результата RGZ 8 Загрузка. Установка  в "0". УС5 УС6
Триггер знака множимого TX   Загрузка УС7
Триггер знака множителя TY   Загрузка УС8
Триггер знака результата TZ   Загрузка УС9
АЛУ 8 Комбинационный  сумматор
Комбинационные схемы   Получение на входе  АЛУ сигналов "0" или RGX в зависимости от значения yi  
 

 

4 СИНТЕЗ АЛУ

     Синтез  АЛУ проходит в несколько этапов:

  1. Сначала необходимо выбрать метод, по которому предполагается выполнение операции.
  2. Составить словесный алгоритм соответствующих действий.
  3. Построить блок-схему алгоритма и определить набор управляющих сигналов.
  4. Исходя из алгоритма и формата исходных данных, следует определить набор составляющих АЛУ элементов.
  5. Затем требуется определить связи между элементами и установить порядок функционирования устройства.
  6. Построить временную диаграмму управляющих сигналов, которые должны быть поданы на АЛУот устройства управления.

     Пусть операнды имеют вид:

     [X]пк = x0x1x2…xn

     [Y]пк = y0y1y2…yn

     где x0, y0 – знаковые разряды, ПК – прямой код.

     Операция  умножения чисел с фиксированной запятой, заданных в прямом коде, со старших разрядов множителя выполняется по следующей формуле:

     Sign Z = Sign X Å Sign Y

     |Z| = y1•|X|•2-1+ y2•|X|•2-2 +…+yn•|X|•2-n

     Рассмотрим  алгоритм решения задачи. Пусть имеется  два числа:

     [X]пк = 0.1101; SignX = 0

     [Y]пк = 1.1011; SignY = 1

     Алгоритм  решения задачи имеет вид:

     Вычисление  знака числа

     SignZ = 0 Å 1 = 1

     Модули  исходных чисел имеют вид:

     |X| = 0. 1 1 0 1

     |Y| = 0. 1 0 1 1

     где y1=1, y2=0, y3=1, y4=1.

     Пошаговая операция вычисление произведения двух чисел в соответствии с приведенной  формулой выглядит следующим образом:

             +0.00000000   |Z| = 0

     y1 = 1      0.01101000   1•|X|•2-1

             +0.01101000  |Z| = |Z| + |X|•2-1

     y2 = 0      0.00000000   0*|X |•2-2

             +0.01101000  |Z| = |Z| + 0

     y3 = 1       0.00011010   1•|X|•2-3

             +0.10000010  |Z| = |Z| + |X|•2-3

     y4 = 1       0.00001101   1•|X|•2-4

              -0.10001111  |Z| = |Z| + |X|•2-4

Информация о работе Разработка вычислительного устройства для выполнения операции умножения двоичных чисел