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

Страницы работы

Фрагмент текста работы

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

По исходным данным необходимо разработать и определить:

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. Разработка алгоритма сложения.

  1. Представим слагаемые в форме с плавающей запятой:

А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    закодированы по заданию

  1. Проведем сравнение порядков. 

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

Для оценки погрешности сложения полученная сумма  приводится

Похожие материалы

Информация о работе