Введение
Данная курсовая работа содержит результаты теоретических и экспериментальных исследований по дисциплине “Арифметические и логические основы вычислительной техники”, включает совокупность аналитических, расчётных, экспериментальных заданий и предполагает выполнение конструкторских работ и разработку графической документации.
Целью данной курсовой работы является проектирование таких цифровых устройств, как четверичные сумматор и умножитель (ЧС и ЧУ). Сумматор и умножитель являются одними из центральных узлов арифметико-логического устройства (АЛУ) вычислительной машины, поэтому глубокое понимание принципов его работы критически важно для современного инженера. Для того чтобы спроектировать данное устройство, необходимо пройти несколько последовательных этапов разработки:
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» |