Оглавление
Постановка задачи
Исходные данные к курсовому проекту
Разработка алгоритма умножения
Разработка структурной схемы устройства
Синтез преобразователя множителя
Логический синтез одноразрядного четверичного умножителя-сумматора
Логический синтез одноразрядного четверичного сумматора
Синтез МПА делителя
Постановка задачи
Курсовой проект предполагает синтез цифровых схем арифметических устройств, выполняющих операции сложения, вычитания, умножения и деления над числами, представленными в форме с плавающей запятой в двоичной и двоично-четверичной системах счисления.
По исходным данным необходимо разработать:
1. Алгоритм выполнения операции умножения, для чего потребуется:
-
перевести исходные числа из десятичной системы счисления в двоично-десятичную;- представить числа в форме с плавающей запятой;
- произвести перемножение чисел по алгоритму “Г” в дополнительных разрядах на два разряда одновременно;
- оценить погрешность вычисления после перевода результата в исходную систему счисления.
2. Алгоритм выполнения операций сложения и вычитания.
3. Структурную схему комбинированного устройства (сложение и умножение), содержащую узлы для действия над мантиссами и порядками, и определить время умножения с учетом временных задержек в комбинационных схемах.
4. Функциональные схемы основных узлов проектируемого сумматора-умножителя в заданном логическом базисе. Для этого провести:
- логический синтез комбинационного одноразрядного четверичного сумматора (ОЧС) на основе составленной таблицы истинности для суммы слагаемых с учетом переноса из младшего разряда, используя при этом алгоритм извлечения (Рота), и оценить эффективность минимизации;
- логический синтез одноразрядного комбинационного четверичного умножителя-сумматора (ОЧУС), путем минимизации переключательных функций по каждому выходу схемы. Минимизация выполняется с применением карт Карно-Вейча с последующей оценкой эффективности минимизации;
- логический синтез комбинационной схемы преобразователя множителя (ПМ);
- построить функциональную схему ОЧС на мультиплексорах;
- построить функциональную схему ПМ и ОЧУС в заданном базисе;
5. Определить время умножения на один разряд и на n разрядов множителя.
6. Разработать алгоритм выполнения операции деления.
7. Функциональную схему делителя, представив его как управляющий автомат, для чего необходимо:
- построить граф связности автомата;
- разметить его для синтеза автомата Мура;
- построить таблицу переходов автомата;
- определить переключательные функции выходных сигналов и сигналов обратной связи;
- построить функциональную схему делителя на базе программируемой логической матрицы и заданных триггеров.
Исходные данные к курсовому проекту
В качестве исходных данных к курсовому проекту задается следующее:
1. Исходные операнды - десятичные числа с целой и дробной частью, над которыми производится операция умножения (36,39 & 53,25).
2. Алгоритм выполнения операции умножения Г.
3. Метод ускоренного умножения на базе которого строится умножитель:
- умножение закодированного двоично-четверичного множимого на 2 разряда двоичного множителя одновременно в дополнительных кодах;
Преобразование множителя в обоих случаях производится для исключения из процесса умножения диады множителя 11.
4. Двоичные коды четверичных цифр множимого для работы в двоично-четверичной системе счисления (представляется кодом: 04 - 00, 14 - 11, 24 - 01, 34 - 10). Множитель представляется обычным весомозначным кодом: 04 - 00, 14 - 01, 24 - 10, 34 - 11.
5. Тип синтезируемого устройства умножения, определяемый основными структурными узлами, на базе которых строится умножитель:
- умножитель 2-го типа строится на базе ОЧУС, ОЧС и регистра результата.
6. Способ минимизации и логический базис для аппаратной реализации ОЧС и ОЧУС (функционально полный базис представлен
функцией x1 + x 2 :Таблица 1. Таблица истинности:
X1 | X2 | 1 | не 1 |
0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 |
ОЧС реализуется на мультиплексорах).
7. Алгоритм выполнения операции деления:
- деление с восстановлением остатков;
8. Класс синтезируемого микропрограммного автомата: Мура.
9. Логический базис для аппаратной реализации делителя, как управляющего автомата: ПЛМ и триггеры для организации цепи обратной связи (Т -триггеры).
Разработка алгоритма умножения
1. Перевод сомножителей из десятичной системы счисления в четверичную:
МНОЖИМОЕ
36 | 4 0,39 Мн4 =210,1203
36 9 | 4 4
0 8 2 1,56 Мн2/4 = 011100,11010010
1 4
2,24
4
0,96
4
3,84
4
3,36
МНОЖИТЕЛЬ
53| 4 0,25 Мт4 = 311,1
52 13 | 4 4 Мт2/4 = 110101,01
1 12 3 1,00
1
2. Запишем сомножитель в форме с плавающей запятой в прямом коде:
Мн = 0,01110011010010 Рмн = 0,0010 +03 закодирован по заданию
Мт = 0,11010101 Рмт = 0,0011 +03 незакодирован по заданию
[Мт]д = Мт = 0,31114 = 0,110101012/4
[Мт]дп = 0,1010101012/4
Мн = 0,2101203
[-Мн]д = 3,1232131
3. Умножение двух чисел с плавающей запятой на 2 разряда множителя одновременно в дополнительных кодах сводится к сложению порядков, формированию знака произведения, преобразованию разрядов множителя с целью исключения диады 11, и перемножению мантисс сомножителей.
Порядок произведения будет равен:
Рмн = 0.0010+ 03
Рмт = 0.0011 03
Р = 0.1101 12
результат закодирован в соответствии с заданием на кодировку множимого.
Знак произведения определяется суммой по модулю два знаков сомножителей, т.е.:
зн Мн + зн Мт = 0 + 0 = 0. Для умножения мантисс необходимо предварительно преобразовать множитель, чтобы исключить диаду 11(34), заменив ее на триаду 101.Перемножение мантисс по алгоритму «Г» приведено втаблице 2:
[Мт]дп = 0,1010101012/4
Мн = 0,2101203
[-Мн]д = 3,1232131
Таблица 2. Умножение по алгоритму “Г”.
Четверичная с/с | ||
ЗНАК | РЕГИСТР РЕЗУЛЬТАТА | ДЕЙСТВИЯ |
0. | 000000000000 | |
0. | 000000000000 | +0 |
0. | 000000000000 | |
0. | 021012030000 | +Мн>>1 |
0. | 021012030000 | |
3. | 331232131000 | -Мн>>2 |
10. | 012310221000 | |
0. | 000210120300 | +Мн>>3 |
10. | 013121001300 | |
0. | 000021012030 | +Мн>>4 |
0. | 013202013330 | |
0. | 000002101203 | +Мн>>5 |
0. | 013210121133 | Рез. В доп коде |
0. | 013210121133 | Рез. В пр. коде |
132101,21133 | ||
1937,5927734375 | 10 с/с |
4. После окончания умножения необходимо оценить погрешность вычислений. Для этого полученное произведение (Мн*Мт4=013210121133 РМн*Мт = 6) приводится к нулевому порядку, а затем переводится в десятичную систему счисления:
Мн*Мт4 = 132101,21133 РМн*Мт = 0;
Мн*Мт10 = 1937,5927734375.
Результат прямого перемножения операндов дает следующее значение:
Мн10*Мт10 = 36,39 * 53,25 = 1937,7675.
Абсолютная погрешность:
D = 1937,7675 - 1937,5927734375 = 0,17473.
Относительная погрешность:
D 0,17473
d = = = 0,00009017 (d = 0,00901%)Мн*Мт 1937,7675
Эта погрешность является суммарной, накопленной за счет приближенного перевода из 10 с/с в четверичную обоих сомножителей, а также за счет округления полученного результата произведения.
В случае отрицательного множимого:
[Мт]дп = 0,1010101012/4
Мн = - 0,2101203
[Мн]д = 3,1232131
[-Мн]д = 0,2101203
Четверичная с/с | ||
ЗНАК | РЕГИСТР РЕЗУЛЬТАТА | ДЕЙСТВИЯ |
0. | 000000000000 | |
0. | 000000000000 | +0 |
0. | 000000000000 | |
3. | 312321310000 | +Мн>>1 |
3. | 312321310000 | |
0. | 002101203000 | -Мн>>2 |
3. | 321023113000 | |
3. | 333123213100 | +Мн>>3 |
10. | 320212332100 | |
3. | 333312321310 | +Мн>>4 |
10. | 320131320010 | |
3. | 333331232131 | +Мн>>5 |
10. | 320123212201 | Рез. В доп коде |
1. 3 – 4=1 | 013210121133 | Рез. В пр. коде |
132101,21133 | ||
1937,5927734375 | 10 с/с |
Разработка структурной схемы устройства
Структурная схема строится на основе следующих блоков
· Многоразрядный регистр сдвига
Dn Q1
С Qn
S1
S2
“+1”
Предназначен для хранения и сдвига n-разрядного значения числа. Регистр имеет n информационных входов D1 – Dn , управляющий вход разрешения записи в регистр С , управляющие входы сдвига содержимого регистра влево S1 и вправо S2 , управляющий вход добавления 1 к содержимому регистра “+1”, и n выходов Q1- Qn . Все управляющие функции выполняются при поступлении 1 на соответствующий управляющий вход.