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

РАЗРАБОТКА АЛГОРИТМА УМНОЖЕНИЯ.

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

Множимое:

18| 4 0,72 Мн4 =102,2324

16 4| 4 4

2 0| 1 2,88

4 в соответствии с заданной кодировкой множимого

3,52 Мн2/4 =010010,101110

4

2,08

4

0,32

Множитель:

62| 4 в соответствии с заданной кодировкой множимого

60|15| 4

2 12 3 Мт4 =332,022

3 Мт2/4 =111110,001010

0,17

4

0,68

4

2,72

4

2,88

2. Запишем сомножители в форме с плавающей запятой в прямом (дополнительном) коде (т.к. алгоритм В):

Мн =0,00010010101110 Рмн= 0.0100 +0310 - закодировано по заданию

Мт =0,00111110001010 Рмт = 0.0100 +0410 - закодировано традиционно

3. Умножение двух чисел с плавающей запятой на 2 разряда множителя одновременно в прямых кодах сводится к сложению порядков, формированию знака произведения, преобразованию разрядов множителя согласно алгоритму и перемножению мантисс сомножителей.

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

Рмн = 0.0010 10

Рмт = 0.001010

Рмн*мт = 0.0100 20

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

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

ЗнМн разработка алгоритма умножения. - student2.ru зн Мт = 0 разработка алгоритма умножения. - student2.ru 0 = 0.

Для умножения мантисс необходимо предварительно преобразовать множитель, чтобы исключить диаду 11 (34), заменив ее на триаду 10 разработка алгоритма умножения. - student2.ru и диаду 10 (24), заменив ее на триаду 1 разработка алгоритма умножения. - student2.ru 0 . Преобразованный множитель имеет вид: Мтп4 =10120 разработка алгоритма умножения. - student2.ru

[Мт]п=0,10 разработка алгоритма умножения. - student2.ru 2022 (преобразованный)

[Мн]д=0,0102232

[-Мн]д=3,3231101

[2Мн]д=0,0211130

Структурная схема сумматора-умножителя 2-го типа. Алгоритм умножения «В», на 2 разряда множителя одновременно.  
ЗН
S1
P
S2
h
F1
F2
h
h
h
Qn-1
. . .
. . .
. . .
Qn
Qn-2
Q1
ОЧС
ОЧУС
ОЧС
ЗН
Ф Д К
ЗН
D1
Dm
РЕГИСТР МНОЖИМОГО
Р Е Г И С Т Р   М Н О Ж И Т Е Л Я  
РЕГИСТР РЕЗУЛЬТАТА
. . . .  
. . .
. . .
Dm+2
Преобра-зовательмножи-теля
mul/sum 0 1
Dm+1
0 1 0 1
ОЧС
ОЧУС
ОЧС
ОЧУС
ОЧС
ОЧУС
ОЧС

Умножение по алгоритмуВ:

Четвертичная с/с Двоично-четвертичная с/с Комментарии
Σ0
П1 = [Мн]д
Σ1
Σ1 * 4
П2 = 0
Σ2
Σ2 * 4
П3 = [-Мн]д
Σ3
Σ3 * 4
П4 = [2Мн]д
Σ4
Σ4 * 4
П5 = 0
Σ5
Σ5* 4
П6 = [2Мн]д
Σ6
Σ6 * 4
П7= [2Мн]д
Σ7


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

(Мн*Мт)4 = 102023,123030;

(Мн*Мт)10 = 1163,4248.

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

Мн10*Мт10 = 18,72 * 62,17 = 1163,8224.

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

D = |1163,8224- 1163,4248| =0,3976.

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

разработка алгоритма умножения. - student2.ru (δ = 0,03417%)

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

Логический синтез одноразрядного четверичного сумматора

ОЧС - это комбинационное устройство, имеющее 5 входов и 3 выхода:

· 2 разряда одного слагаемого (множимого);

· 2 разряда второго слагаемого (регистр результата);

· вход переноса из младшего ОЧС.

Разряды обоих слагаемых закодированы : 0 - 10; 1 - 00; 2 - 01; 3 -11.

Логический базис для реализации – А2.

Принцип работы ОЧС описывается с помощью следующей таблицы истинности:

A1 A2 B1 B2 p П S1 S2 Четверичная
1+1+0=02
1+1+1=03
1+2+0=03
1+2+1=10
1+0+0=01
1+0+1=02
1+3+0=10
1+3+1=11
2+1+0=03
2+1+1=10
2+2+0=10
2+2+1=11
2+0+0=10
2+0+1=03
2+3+0=11
2+3+1=12
0+1+0=01
0+1+1=02
0+2+0=02
0+2+1=03
0+0+0=00
0+0+1=01
0+3+0=03
0+3+1=10
3+1+0=10
3+1+1=11
3+2+0=11
3+2+1=12
3+0+0=03
3+0+1=10
3+3+0=12
3+3+1=13


Упрощение ОЧС картами Вейча

Для П

a1a2b1b2p
             
  1 1
     
         

Для S1

a1a2b1b2p
       
       
       
       

Для S2

a2

 
b2
b1

         
       
       
       

p
p
a1

Результат минимизации функций по картам Карно-Вейча

ОЧС функция P

разработка алгоритма умножения. - student2.ru

ОЧС функция S1

разработка алгоритма умножения. - student2.ru

разработка алгоритма умножения. - student2.ru

ОЧС функция S2

разработка алгоритма умножения. - student2.ru

разработка алгоритма умножения. - student2.ru

Реализация переключательной функции Q1 и P

Реализация переключательной функции Q2

Таблица истинности для ОЧС на мультиплексорах

a1a2b1 b2p П Псхема S1 S1схема S2 S2схема
b2p разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru
разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru
разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru
разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru
Const 0 разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru
разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru
Const 1 разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru
разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru разработка алгоритма умножения. - student2.ru

Проверка L-экстремалей

Множество L-экстремалей E ={x001x0; x111x0; xxxx11; xx1x1x }

Z´ = Z - E ={100xxx; 111xxx; 1xx0xx; 1xxx1x; xxx11x; 1xxxx1 }

Проверка покрытия множества Z´ множеством найденных L-экстремалей Е

L#E
x001x0 Ø Ø
x111x0 Ø Ø Ø Ø
xxxx11 Ø Ø Ø Ø Ø Ø Ø Ø
xx1x1x Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
Остаток Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø

Конечное минимальное множество= { x001x0; x111x0; xxxx11; xx1x1x }

РАЗРАБОТКА АЛГОРИТМА УМНОЖЕНИЯ.

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

Множимое:

18| 4 0,72 Мн4 =102,2324

16 4| 4 4

2 0| 1 2,88

4 в соответствии с заданной кодировкой множимого

3,52 Мн2/4 =010010,101110

4

2,08

4

0,32

Множитель:

62| 4 в соответствии с заданной кодировкой множимого

60|15| 4

2 12 3 Мт4 =332,022

3 Мт2/4 =111110,001010

0,17

4

0,68

4

2,72

4

2,88

2. Запишем сомножители в форме с плавающей запятой в прямом (дополнительном) коде (т.к. алгоритм В):

Мн =0,00010010101110 Рмн= 0.0100 +0310 - закодировано по заданию

Мт =0,00111110001010 Рмт = 0.0100 +0410 - закодировано традиционно

3. Умножение двух чисел с плавающей запятой на 2 разряда множителя одновременно в прямых кодах сводится к сложению порядков, формированию знака произведения, преобразованию разрядов множителя согласно алгоритму и перемножению мантисс сомножителей.

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

Рмн = 0.0010 10

Рмт = 0.001010

Рмн*мт = 0.0100 20

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

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

ЗнМн разработка алгоритма умножения. - student2.ru зн Мт = 0 разработка алгоритма умножения. - student2.ru 0 = 0.

Для умножения мантисс необходимо предварительно преобразовать множитель, чтобы исключить диаду 11 (34), заменив ее на триаду 10 разработка алгоритма умножения. - student2.ru и диаду 10 (24), заменив ее на триаду 1 разработка алгоритма умножения. - student2.ru 0 . Преобразованный множитель имеет вид: Мтп4 =10120 разработка алгоритма умножения. - student2.ru

[Мт]п=0,10 разработка алгоритма умножения. - student2.ru 2022 (преобразованный)

[Мн]д=0,0102232

[-Мн]д=3,3231101

[2Мн]д=0,0211130

Структурная схема сумматора-умножителя 2-го типа. Алгоритм умножения «В», на 2 разряда множителя одновременно.  
ЗН
S1
P
S2
h
F1
F2
h
h
h
Qn-1
. . .
. . .
. . .
Qn
Qn-2
Q1
ОЧС
ОЧУС
ОЧС
ЗН
Ф Д К
ЗН
D1
Dm
РЕГИСТР МНОЖИМОГО
Р Е Г И С Т Р   М Н О Ж И Т Е Л Я  
РЕГИСТР РЕЗУЛЬТАТА
. . . .  
. . .
. . .
Dm+2
Преобра-зовательмножи-теля
mul/sum 0 1
Dm+1
0 1 0 1
ОЧС
ОЧУС
ОЧС
ОЧУС
ОЧС
ОЧУС
ОЧС

Умножение по алгоритмуВ:

Четвертичная с/с Двоично-четвертичная с/с Комментарии
Σ0
П1 = [Мн]д
Σ1
Σ1 * 4
П2 = 0
Σ2
Σ2 * 4
П3 = [-Мн]д
Σ3
Σ3 * 4
П4 = [2Мн]д
Σ4
Σ4 * 4
П5 = 0
Σ5
Σ5* 4
П6 = [2Мн]д
Σ6
Σ6 * 4
П7= [2Мн]д
Σ7

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

(Мн*Мт)4 = 102023,123030;

(Мн*Мт)10 = 1163,4248.

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

Мн10*Мт10 = 18,72 * 62,17 = 1163,8224.

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

D = |1163,8224- 1163,4248| =0,3976.

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

разработка алгоритма умножения. - student2.ru (δ = 0,03417%)

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


Наши рекомендации