Курсовой проект предполагает синтез цифровых схем арифметических устройств, выполняющих операции сложения и умножения над числами, представленными в форме с плавающей запятой в двоичной и двоично-четверичной системах счисления, в дополнительных кодах.
По исходным данным необходимо разработать и определить:
1. Алгоритм выполнения операции умножения, для чего потребуется:
Перевести исходные числа из десятичной системы счисления в четверичную;
Представить числа в форме с плавающей запятой;
Произвести умножение чисел согласно заданному алгоритму;
Оценить погрешность вычислений после перевода результата в исходную систему счисления.
2. Алгоритм выполнения операции сложения.
3. Структурную схему устройства, выполняющего сложение и умножение, содержащую узлы для действия над мантисcами и порядками; определить время умножения с учетом временных задержек в комбинационных схемах.
4. Функциональные схемы основных узлов устройства в заданном логическом базисе. Для этого провести:
Логический синтез комбинационного одноразрядного четверичного сумматора (ОЧС) на основе составленной таблицы истинности для суммы слагаемых с учетом переноса из младшего разряда, используя при этом карты Карно-Вейча и оценить эффективность минимизации;
Логический синтез одноразрядного четверичного умножителя (ОЧУ) путем минимизации переключательных функций по каждому выходу схемы, используя алгоритм Рота, с последующей оценкой эффективности минимизации;
Логический синтез комбинационной схемы преобразователя множителя(ПМ).
Построить схему ОЧС в заданном логическом базисе и на мультиплексорах.
Построить схему ОЧУ и ПМ в заданном логическом базисе.
5. Время умножения на один разряд и на n разрядов множителя.
2. Исходные данные
Для синтеза устройства, выполняющего операцию сложения и умножения двоично-четверичных чисел в форме с плавающей запятой в дополнительных кодах, были получены следующие исходные данные:
1. Исходные операнды – десятичные числа с целой и дробной частью, над которыми производится операция умножения: Мн=28,69, Мт=21,59.
2. Алгоритм выполнения операции умножения ¾ “Б”, (умножение начинается с младших разрядов множителя со сдвигом частичных произведений вправо).
3. Метод ускоренного умножения : умножение закодированного двоично-четверичного множимого на 2 разряда двоичного множителя одновременно в прямых кодах.
4. Кодирование четверичных цифр двоичными эквивалентами:
04 ® 01; 14 ® 10; 24 ® 11; 34 ® 00
5. Логический базис для реализации ОЧС:
Логический базис для реализации ОЧУ:
3. Разработка алгоритма умножения
1. Переведем сомножители из десятичной системы счисления в четверичную:
Мн10 ® Мн4
28 |
4 |
0,69 |
|||
28 |
7 |
4 |
4 |
||
0 |
4 |
1 |
2,76 |
||
3 |
4 |
||||
3,04 |
|||||
4 |
|||||
0,16 |
Мн10=28,69 Мн4=130,230 Мн2 / 4= 10 00 01 , 11 00 01
Мт10 ® Мт4
21 |
4 |
0,59 |
|||
20 |
5 |
4 |
4 |
||
1 |
4 |
1 |
2,36 |
||
1 |
4 |
||||
1,44 |
|||||
4 |
|||||
1,72 |
Мт10=21,59 Мт4=111,211 Мт2 / 4=01 01 01, 10 01 01
2. Представим сомножители в форме с плавающей запятой:
Мн = 0, 10 00 01 11 00 01 Pмн =0. 01 00 +0310 закодирован по заданию
Мт = 0, 01 01 01 10 01 01 Pмт =0. 00 11 +0310 закодирован традиционно
3. Порядок произведения равен сумме порядков множителей:
Pмн = |
0. 01 00 |
034 |
||
+ |
+ |
|||
Pмт = |
0. 00 11 |
034 |
||
0. 10 11 |
124 |
Результат закодирован в соответствии с заданием на кодировку множимого.
Знак произведения определяется суммой по модулю два знаков сомножителей, т.е.:
зн Мн Å зн Мн = 0 Å 0 = 0 => знак результата “плюс”.
Для умножения мантисс необходимо предварительно преобразовать множитель. При умножении чисел в дополнительных кодах диада 11 (34) заменяется на триаду
Преобразованный множитель имеет вид : Мтп4 = или Мтп2 =
Перемножение мантисс по алгоритму “Б” приведено в таблице :
Четверичная с/с |
Двоично-четверичная с/с |
Комментарии |
|||
0. |
000000000000 |
01. |
01 01 01 01 01 01 01 01 01 01 01 01 |
S0 |
|
0. |
000000210120 |
01. |
01 01 01 01 01 01 10 00 01 11 10 01 |
П1 = Мн |
|
0. |
000000210120 |
01. |
01 01 01 01 01 01 10 00 01 11 10 01 |
S1 |
|
0. |
000002101200 |
01. |
01 01 01 01 01 10 00 01 11 10 01 01 |
S1 *41 |
|
3. |
333333123220 |
11. |
11 11 11 11 11 11 00 10 11 10 10 01 |
П2 = Мн*(-1) |
|
0. |
000001231020 |
01. |
01 01 01 01 01 00 10 11 00 01 10 01 |
S2 |
|
0. |
000012310200 |
01. |
01 01 01 01 00 10 11 00 01 10 01 01 |
S2*41 |
|
0. |
000000210120 |
01. |
01 01 01 01 01 01 10 00 01 00 10 01 |
П3 = Мн |
|
0. |
000013120320 |
01. |
01 01 01 01 00 11 00 10 01 11 10 01 |
S3 |
|
0. |
000131203200 |
01. |
01 01 01 00 11 00 10 01 11 10 01 01 |
S3*41 |
|
0. |
000000210120 |
01. |
01 01 01 01 01 01 10 00 01 00 10 01 |
П4 = Мн |
|
01 01 01 00 11 10 01 00 11 11 10 01 |
000132013320 |
01. |
S4 |
||
01 01 00 11 10 01 00 11 11 10 01 01 |
001320133200 |
01. |
S4*41 |
||
0. |
000000210120 |
01. |
01 01 01 01 01 01 10 00 01 00 10 01 |
П5= Мн |
|
0. |
001321003320 |
01. |
01 01 00 11 10 00 01 01 11 11 10 01 |
S5 |
|
0. |
013210033200 |
01. |
01 00 11 10 00 01 01 11 11 10 01 01 |
S5**41 |
|
0. |
000000000000 |
01. |
01 01 01 01 01 01 01 01 01 01 01 01 |
П6 = Мн |
|
0. |
013210033200 |
01. |
01 00 11 10 00 01 01 11 11 10 01 01 |
S6 |
|
0. |
132100332000 |
01. |
00 11 10 00 01 01 11 11 10 01 01 01 |
S6*41 |
|
0. |
000000000000 |
01. |
01 01 01 01 01 01 01 01 01 01 01 01 |
П7 = Мн |
|
0. |
132100332000 |
01. |
00 11 10 00 01 01 11 11 10 01 01 01 |
S7 |
4. После окончания умножения необходимо оценить погрешность вычислений. Для этого полученное произведение (Мн*Мт4 = 0,131003320000 PМн*Мт4 = 124) приводится к нулевому порядку, а затем переводится в десятичную систему счисления:
Мн*Мт4 = 13100,3320000 PМн*Мт = 0;
Мн*Мт10 = 1936, 9681
Результат прямого перемножения операндов дает следующее значение:
Мн*Мт10 = 36,39 * 53,25 = 1937, 7675
Абсолютная погрешность:
∆= 1937,7675 – 1936,9681=0,7994
Относительная погрешность:
Эта погрешность накоплена за счет приближенного перевода из 10 системы счисления в четверичную обоих сомножителей, а также за счет округления полученного результата произведения.
4. Разработка алгоритма сложения.
А4 = 0,210120 PА =+03
А2 / 4 = 0, 10 00 01 00 10 01 PА =0. 01 11 закодированы по заданию
Б4 = 0,311100 PБ =+03
Б2 / 4 = 0, 11 00 00 00 01 01 PБ =0. 01 11 закодированы по заданию
PА = |
0. 01 11 |
0.034 |
||
+ |
+ |
|||
[PБ]д = |
1. 11 00 |
3.314 |
||
0. 10 10 |
0.004 |
3. Если порядки не равны необходимо произвести сдвиг мантиссы числа А вправо, если порядок этого числа меньше, или мантиссы числа Б, если его порядок меньше. Порядок суммы этих чисел равен большему порядку исходных чисел.
В данном случае сдвиг мантиссы не производится. Однако, во избежание переполнения разрядной сетки увеличим порядок обоих чисел:
А4 = 0,0210120 PА =+10
А2 / 4 = 0, 01 10 00 01 00 10 01 PА =0. 00 01
Б4 = 0,0311100 PБ =+10
Б2 / 4 = 0, 01 11 00 00 00 01 01 PБ =0. 00 01
4. Получим дополнительные коды слагаемых и произведем их сложение:
[А4] = 0,0210120
[А2 / 4] = 0, 01 10 00 01 00 10 01
[Б4] = 0,0311100
[Б2 / 4] = 0, 01 11 00 00 00 01 01
Четверичная с/с |
Двоично-четверичная с/с |
Комментарии |
|||
0, |
0210120 |
01, |
01 10 00 01 00 10 01 |
А |
|
0, |
0311100 |
01, |
01 11 00 00 00 01 01 |
Б |
|
0, |
1121220 |
01, |
00 00 10 00 10 10 01 |
А+Б |
Число (А+Б)4= 0,1121220 ,а его порядок P(А+Б) 4 =+04
Для оценки погрешности сложения полученная сумма приводится
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.