Курсовая работа: Проектирование четверичных сумматора и умножителя

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Введение

Данная курсовая работа содержит результаты теоретических и экспериментальных исследований по дисциплине “Арифметические и логические основы вычислительной техники”, включает совокупность аналитических, расчётных, экспериментальных заданий и предполагает выполнение конструкторских работ и разработку графической документации.

Целью данной курсовой работы является проектирование таких цифровых устройств, как четверичные сумматор и умножитель (ЧС и ЧУ). Сумматор и умножитель являются одними из центральных узлов арифметико-логического устройства (АЛУ) вычислительной машины, поэтому глубокое понимание принципов его работы критически важно для современного инженера. Для того чтобы спроектировать данное устройство, необходимо пройти несколько последовательных этапов разработки:

1. Разработка алгоритма умножения;

2. Построение структуры одноразрядных четверичных умножителя и сумматора;

3. Составление таблицы истинности одноразрядных четверичных умножителя и сумматора в заданной кодировке;

4. Минимизация одноразрядных четверичных умножителя и сумматора;

5. Построение комбинационных схем одноразрядных четверичных умножителя и сумматора в заданном логическом базисе.

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

1. Разработка алгоритма умножения

1.1 Перевод сомножителей из десятичной системы счисления в четверичную

Заданная кодировка цифр: 04 - 002, 14 - 012, 24 - 102, 34 - 112.

Исходные сомножители: Мн10 = 61,12; Мт10=19,77.

1.1.1 Перевод множимого в четверичную систему счисления.

_ 61

4

60

_ 15

4

1

12

3

3

0,12

*

4

0,48

*

4

1,92

*

4

3,68

Мн4 =331,013, в соответствии с заданной кодировкой цифр:

Мн2/4= 111101,000111.

1.1.2 Перевод множителя в четверичную систему счисления

_ 19

4

0,77

16

4

4

*

4

3

4

1

3,08

0

*

4

3,20

*

4

0,80

Мт4 =103,330, в соответствии с заданной кодировкой цифр:

Мт2/4=010011,111100.

1.2 Запишем сомножители в форме с плавающей запятой в прямом коде

Мн2 = 1,11101000111, РМн = 1.0100 +0310 - закодировано по заданию;

Мт2 = 0,10011111100, РМт = 0.0011 +0310 - закодировано традиционно.

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

Порядок произведения будет равен:

РМн = 1.0100 034

РМт = 0.0011 034

РМн•Мт = 1.0111 034

Результат закодирован в соответствии с заданием на кодировку множимого.

Знак «произведение» определяется как сумма по модулю «два» знаков множителей.

зн Мн ? зн Мт = 0 ? 0 = 0

Для умножения мантисс необходимо предварительно преобразовать множитель. При умножении чисел в прямых кодах диада 11(34) заменяется на триаду 101, а диада 10 заменяется на триаду 110.

Перемножение мантисс по алгоритму “А” приведено в табл. 1. [2]

4. После окончания умножения необходимо оценить погрешность вычислений. Для этого полученное произведение (Мн•Мт = 0,100310021222, РМн•Мт = 3) приводится к нулевому порядку, а затем переводится в десятичную систему счисления:

Мн•Мт4 =100310,021222РМн•Мт = 0;

Мн•Мт10 = 1076,1511.

Результат прямого перемножения операндов дает следующее значение:

Мн10 · Мт10 = 61,12 · 19,77 = 1208,3424.

Абсолютная погрешность:

Д = 1208,3424- 1076,1511= 132,1913.

Относительная погрешность:

,

Эта погрешность получена за счет приближенного перевода из десятичной системы счисления в четверичную обоих сомножителей, а также за счет округления полученного результата произведения. [9]

Таблица 1 - Перемножение мантисс по алгоритму «А»

Четверичная с/с

Двоично-четверичная с/с

Комментарии

0.

0000000000000

0.

00 00 00 00 00 00 00 00 00 00 00 00 00

?0

0.

0000001013310

0.

00 00 00 00 00 00 01 00 01 11 11 01 00

П1=[Мн]д

0.

0000001013310

0.

00 00 00 00 00 00 01 00 01 11 11 01 00

?1

0.

0000010133100

0.

00 00 00 00 00 01 00 01 11 11 01 00 00

?1•22

3.

3333332320030

1.

11 11 11 11 11 11 10 11 10 00 00 11 00

П2=[-Мн]д

0.

0000003113130

0.

00 00 00 00 00 00 11 01 01 11 01 11 00

?2

0.

0000031131300

0.

00 00 00 00 00 11 01 01 11 01 11 00 00

?2•22

0.

0000001013310

0.

00 00 00 00 00 00 01 00 01 11 11 01 00

П3=[Мн]д

0.

0000032211210

0.

00 00 00 00 00 11 10 10 01 01 10 01 00

?3

0.

0000322112100

0.

00 00 00 00 11 10 10 01 01 10 01 00 00

?3•22

0.

0000002033220

0.

00 00 00 00 00 00 10 00 11 11 10 10 00

П4=[2Мн]д

0.

0000330211320

0.

00 00 00 00 11 11 00 10 01 01 11 10 00

?4

0.

0003302113200

0.

00 00 00 11 11 00 10 01 01 11 10 00 00

?4•22

0.

0000001013310

0.

00 00 00 00 00 00 01 00 01 11 11 01 00

П5=[Мн]д

0.

0003303133110

0.

00 00 00 11 11 00 11 01 11 11 01 01 00

?5

0.

0033031331100

0.

00 00 11 11 00 11 01 11 11 01 01 00 00

?5•22

0.

0000001013310

0.

00 00 00 00 00 00 01 00 01 11 11 01 00

П6=[Мн]д

0.

0033033011010

0.

00 00 11 11 00 11 11 00 01 01 00 01 00

?6

0.

0330330110100

0.

00 11 11 00 11 11 00 01 01 00 01 00 00

?6•22

0.

0000002033220

0.

00 00 00 00 00 00 10 00 11 11 10 10 00

П7=[2Мн]д

0.

0330332203320

0.

00 11 11 00 11 11 10 10 00 11 11 10 00

?7

2. «Логический синтез одноразрядного четверичного умножителя

2.1 Построение структуры ОЧУ

В устройстве одноразрядного четверичного умножителя множимое и множитель перемещаются в соответствующие регистры, а на управляющий вход ФДК F2 поступает «0». Диада множителя поступает на входы преобразователя множителя. Единица переноса в следующую диаду, если она возникает, должна быть добавлена к следующей диаде множителя (выход 1 ПМ). В регистре множителя после каждого такта умножения содержимое сдвигается на два двоичных разряда и в конце умножения регистр обнуляется. Выход 2 ПМ переходит в единичное состояние, если текущая диада содержит отрицание. В этом случае инициализируется управляющий вход F1 формирователя дополнительного кода и на входах ФДК формируется дополнительный код множимого с обратным знаком (умножение на -1). [9]

Принцип работы ФДК, в зависимости от управляющих сигналов, приведён в таблице 2.1.

Таблица 2.1 - Режимы работы формирователя дополнительного кода

Сигналы на входах ФДК

Результат на выходах ФДК

F1

F2

0

0

Дополнительный код множимого

0

1

Дополнительный код слагаемого

1

0

Меняется знак Мн

1

1

Меняется знак слагаемого

На выходах 3 и 4 ПМ формируются диады преобразованного множителя, которые поступают на входы ОЧУ вместе с диадами множимого. ОЧУ предназначен лишь для умножения двух четверичных цифр. Если в процессе умножения возникает перенос в следующий разряд, необходимо предусмотреть возможность его прибавления. [6]

Рисунок 1 - Структурная схема сумматора-умножителя первого типа. Алгоритм умножения «А»

2.2 Составление таблицы истинности в заданной кодировке

Одноразрядный четверичный умножитель - это комбинационное устройство, имеющее 5 двоичных входов (2 разряда из регистра Мн, 2 разряда из регистра Мт и управляющий вход h) и 4 двоичных выхода. [2]

Принцип работы ОЧУ представлен с помощью таблицы истинности (таблица 3).

Разряды множителя закодированы: 04 - 002, 14 - 012, 24 - 102, 34 - 112.

Разряды множимого закодированы традиционно.

Управляющий вход h определяет тип операции:

- «0» - умножение закодированных цифр, поступивших на информационные входы;

- «1» - вывод на выходы без изменения значения разрядов, поступивших

из регистра множимого.

В таблице 1 выделено восемь безразличных наборов, т. к. на входы ОЧУ из разрядов множителя не может поступить код «11».

Таблица 2.2 - Таблица истинности ОЧУ [1]

Мн

Мт

Упр

Ст. разряды

Мл. разряды

Пример операции

в четвертичной с/с

x1

x2

y1

y2

h

P1

P2

Р3

Р4

0

0

0

0

0

0

0

0

0

0*0 = 00

0

0

0

0

1

0

0

0

0

Выход - код «00»

0

0

0

1

0

0

0

0

0

0*1 = 00

0

0

0

1

1

0

0

0

0

Выход - код «00»

0

0

1

0

0

0

0

0

0

0*2 = 00

0

0

1

0

1

0

0

0

0

Выход - код «00»

0

0

1

1

0

x

x

x

x

0*3 = 00

0

0

1

1

1

x

x

x

x

Выход - код «00»

0

1

0

0

0

0

0

0

0

1*0 = 00

0

1

0

0

1

0

0

0

1

Выход - код «01»

0

1

0

1

0

0

0

0

1

1*1 = 01

0

1

0

1

1

0

0

0

1

Выход - код «01»

0

1

1

0

0

0

0

1

0

1·2 = 02

0

1

1

0

1

0

0

0

1

Выход - код «01»

0

1

1

1

0

x

x

x

x

1*3 = 03

0

1

1

1

1

x

x

x

x

Выход - код «01»

1

0

0

0

0

0

0

0

0

2*0 = 00

1

0

0

0

1

0

0

1

0

Выход - код «02»

1

0

0

1

0

0

0

1

0

2*1 = 02

1

0

0

1

1

0

0

1

0

Выход - код «02»

1

0

1

0

0

0

1

0

0

2*2 = 10

1

0

1

0

1

0

0

1

0

Выход - код «02»

1

0

1

1

0

x

x

x

x

2*3 = 12

1

0

1

1

1

x

x

x

x

Выход - код «02»

1

1

0

0

0

0

0

0

0

3*0 = 00

1

1

0

0

1

0

0

1

1

Выход - код «03»

1

1

0

1

0

0

0

1

1

3*1 = 03

1

1

0

1

1

0

0

1

1

Выход - код «03»

1

1

1

0

0

0

1

1

1

3*2 = 12

1

1

1

0

1

0

0

1

1

Выход - код «03»

1

1

1

1

0

x

x

x

x

3*3 = 21

1

1

1

1

1

x

x

x

x

Выход - код «03»