10728

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

Практическая работа

Информатика, кибернетика и программирование

Умножение закодированного двоично - четверичного множимого на два разряда в дополнительных кодах. Преобразование множителя производится для исключение из процесса умножения диады 10 и 11 множителя

Русский

2012-04-01

213.7 KB

31 чел.

+Министерство образования Республики Беларусь

Учреждение образования

Белорусский государственный университет информатики и радиоэлектроники

Кафедра электронных вычислительных машин

Пояснительная записка к типовому расчету по дисциплине

«Арифметические и логические основы вычислительной техники»

Тема: Разработка сумматора-умножителя

Проверил:

Выполнил:

Лукьянова И. В.

Минск 2012

Исходные данные:

исходные сомножители: Мн = 79,63; Мт = 43,29;

алгоритм умножения: А(умножение начинается с младших разрядов со сдвигом частичных сумм вправо);

метод умножения: умножение закодированного двоично – четверичного множимого на два разряда в дополнительных кодах. Преобразование множителя производится для исключение из процесса умножения диады 10 и 11 множителя.;

коды четверичных цифр множимого для перехода к двоично-четверичной системе кодирования:  

04    01,  14   10,   24   11,   34   00 (Мн)

04    00,  14   01,   24   10,   34   11 (Мт)

тип синтезируемого умножителя: структурные схемы приведены для  умножителя 2-го типа (ОЧC, ОЧУС, регистр результата).

Способ минимизации и логический базис для аппаратной реализации ОЧС (Алгоритм Рота) и ОЧУС (Карты Карно-Вейча), ОЧС реализуется на мультиплексорах.

Функционально полный логический базис для схемы ОЧC:

XX2

X1  X2

Логический базис для реализации ОЧС:

&

 1

mod 2

Функционально полный логический базис для схемы ОЧУС:

X1+X2

X

Логический базис для реализации ОЧУС:

1

1

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

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

Множимое:

79|4                          Мн4 = 1033,22                              

76  |19|4                     Мн2/4  = 10010000,111101

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

                     3  4|1

              0

0,63

     4

2,52

     4

2,08

     

Множитель:

43|4                          Мт4 = 223,102                             

40  |10|4                     Мт2/4 = 1101110,010110

  3    8| 2 4                     в соответствии с заданной кодировкой множителя

         2    5

          20

          20

             

0,29

     4

1,16

     4

0,64

     4

2,56

     4

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

Мн = 0,00110011100000

Рмн  =0.1100 (закодирован по заданию)

Мт = 0,00111101011101

Рмт = 0.0100 (закодирован традиционно)

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

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

 Рмн = 0.1100           +03

       Рмт = 0.0100            +04

                      Р    = 0.0100               07

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

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

зн Мн     зн Мт = 0    0 = 0

Для умножения мантисс необходимо предварительно преобразовать множитель, чтобы исключить диаду 11 (34), заменив ее на триаду 101 и диаду 10 (24).

Преобразованный множитель имеет вид:

Мтп =

Мн = 0,103322

2Мн = 0,213310

3Мн = 0,323232

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

Четверичная с/с

Двоично-четверичная с/с

Комментарии

0.

0000000000000

0.

 00000000000000000000000000

Σ0

0.

213310

0.

 00000000000011000011100000

П1=[Мн]*4

0.

21331000000

0.

 00000000000011000011100000

Σ1

3.

3333323321000

0.

 10101010100110100111000000

П2=[-Мн]*41

3.

3333330322300

0.

 10101010101000100101100000

Σ2

0.

0000200320000

0.

 00000000010000100100000000

П3=[2Мн]*42

0.

0000131302300

0.

 00000000111011100001100000

Σ3

0.

0001001300000

0.

 00000011000011100000000000

П4=[Мн]*43

0.

0001133202300

0.

 00000011111010010001100000

Σ4

3.

3333323321000

0.

 10101010100110100111000000

П5=[-Мн]*44

3.

3331120202300

0.

 10101011110100010001100000

Σ5

0.

0000000000000

0.

 00000000000000000000000000

П6=0

3.

3331120202300

0.

 10101011110100010001100000

Σ6

0.

1001300000000

0.

 11000011100000000000000000

П7=[Мн]*46

0.

0333020202300

0.

 00101010000100010001100000

Σ7

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

(Мн*Мт)4 = 333020,202300

(Мн*Мт)10 = 4040,995

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

Мн10 · Мт10 = 65,75 · 61,46 = 4040,542

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

  = 4040,995 – 4040,542= 0,453

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

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

Разработка функциональных схем основных узлов

сумматора-умножителя.

                         Логический синтез ОЧС.

ОЧС  - это комбинационное устройство,  имеющее 5 входов (2 разряда одного слагаемого,2 разряда второго слагаемого и вход переноса) и 3 выхода. Принцип работы ОЧС описывается с помощью таблицы истинности ( Табл. 2.).Разряды обоих слагаемых закодированы: 0 – 11; 1 – 10; 2 – 00; 3 – 01.В таблице 2 истинности безразличные наборы отсутствуют, т.к. ОЧС синтезируется для схемы второго типа.

а1

а2

b1

b2

p

П

S1

S2

Пример операции в четверичной с/с

0

0

0

0

0

1

1

1

3+3+0=12

0

0

0

0

1

1

0

0

3+3+1=13

0

0

0

1

0

0

0

0

3+0+0=03

0

0

0

1

1

1

0

1

3+0+1=10

0

0

1

0

0

1

0

1

3+1+0=10

0

0

1

0

1

1

1

0

3+1+1=11

0

0

1

1

0

1

1

0

3+2+0=11

0

0

1

1

1

1

1

1

3+2+1=12

0

1

0

0

0

0

0

0

0+3+0=03

0

1

0

0

1

1

0

1

0+3+1=10

0

1

0

1

0

0

0

1

0+0+0=00

0

1

0

1

1

0

1

0

0+0+1=01

0

1

1

0

0

0

1

0

0+1+0=01

0

1

1

0

1

0

1

1

0+1+1=02

0

1

1

1

0

0

1

1

0+2+0=02

0

1

1

1

1

0

0

0

0+2+1=03

1

0

0

0

0

1

0

1

1+3+0=10

1

0

0

0

1

1

1

0

1+3+1=11

1

0

0

1

0

0

 1

0

1+0+0=01

1

0

0

1

1

0

1

1

1+0+1=02

1

0

1

0

0

0

1

1

1+1+0=02

1

0

1

0

1

0

0

0

1+1+1=03

1

0

1

1

0

0

0

0

1+2+0=03

1

0

1

1

1

1

0

1

1+2+1=10

1

1

0

0

0

1

1

0

2+3+0=11

1

1

0

0

1

1

1

1

2+3+1=12

1

1

0

1

0

0

1

1

2+0+0=02

1

1

0

1

1

0

0

0

2+0+1=03

1

1

1

0

0

0

0

0

2+1+0=03

1

1

1

0

1

1

0

1

2+1+1=10

1

1

1

1

0

1

0

1

2+2+0=10

1

1

1

1

1

1

1

0

2+2+1=11

                                                                                                                                    Таблица 2


Минимизация функции P алгоритмом Рота:

L={ 00000,00001,00011,00100,0010100110,00111,01001,10000,10001,10111,11000,11001,11101,11110,11111}; N= Ø

Поиск простых импликант

C0*C0

00000

00001

00011

00100

00101

00110

00111

01001

10000

10001

10111

11000

11001

11101

11110

11111

00000

-

00001

0000y

-

00011

000yy

000y1

-

00100

00y00

00y0y

00yyy

-

00101

00y0y

00y01

00yy1

0010y

-

00110

00yy0

00yyy

00y1y

001y0

001yy

-

00111

00yyy

00yy1

00y11

001yy

001y1

0011y

-

01001

0y00y

0y001

0y0y1

0yy0y

0yy01

0yyyy

0yyy1

-

10000

y0000

y000y

y00yy

y0y00

y0y0y

y0yy0

y0yyy

yy00y

-

10001

y000y

y0001

y00y1

y0y0y

y0y01

y0yyy

y0yy1

yy001

1000y

-

10111

y0yyy

y0yy1

y0y11

y01yy

y01y1

y011y

y0111

yyyy1

10yyy

10yy1

-

11000

yy000

yy00y

yy0yy

yyy00

yyy0y

yyyy0

yyyyy

y100y

1y000

1y00y

1yyyy

-

11001

yy00y

yy001

yy0y1

yyy0y

yyy01

yyyyy

yyyy1

y1001

1y00y

1y001

1yyy1

1100y

-

11101

yyy0y

yyy01

yyyy1

yy10y

yy101

yy1yy

yy1y1

y1y01

1yy0y

1yy01

1y1y1

11y0y

11y01

-

11110

yyyy0

yyyyy

yyy1y

yy1y0

yy1yy

yy110

yy11y

y1yyy

1yyy0

1yyyy

1y11y

11yy0

11yyy

111yy

-

11111

yyyyy

yyyy1

yyy11

yy1yy

yy1y1

yy11y

yy111

y1yy1

1yyyy

1yyy1

1y111

11yyy

11yy1

111y1

1111y

-

A1

0000x
00x00
x0000

000x1
00x01
0x001
x0001

00x11

0010x
001x0

001x1

0011x

x0111

x1001

1000x
1x000

1x001

1x111

1100x

11x01

111x1

1111x

Ø

A1 = { 0000x; 00x00; x0000; 000x1; 00x01; 0x001; x0001; 00x11; 0010x; 001x0; 001x1; 0011x; x0111; x1001; 1000x; 1x000; 1x001; 1x111; 1100x; 11x01; 111x1; 1111x }

Z0 = { Ø }

B1 = { 00000; 00001; 00011; 00100; 00101; 00110; 00111; 01001; 10000; 10001; 10111; 11000; 11001; 11101; 11110; 11111 }

C1 = { 0000x; 00x00; x0000; 000x1; 00x01; 0x001; x0001; 00x11; 0010x; 001x0; 001x1; 0011x; x0111; x1001; 1000x; 1x000; 1x001; 1x111; 1100x; 11x01; 111x1; 1111x }

C1*C1

0000x

00x00

x0000

000x1

00x01

0x001

x0001

00x11

0010x

001x0

001x1

0011x

x0111

x1001

1000x

1x000

1x001

1x111

1100x

11x01

111x1

1111x

0000x

-

00x00

00000

-

x0000

00000

00000

-

000x1

00001

0000y

0000y

-

00x01

00001

00x0y

0000y

00001

-

0x001

00001

0000y

0000y

00001

00001

-

x0001

00001

0000y

x000y

00001

00001

00001

-

00x11

000y1

00xyy

000yy

00011

00xy1

000y1

000y1

-

0010x

00y0x

00100

00y00

00y01

00101

00y01

00y01

001y1

-

001x0

00y00

00100

00y00

00yxy

0010y

00y0y

00y0y

0011y

00100

-

001x1

00y01

0010y

00y0y

00yx1

00101

00y01

00y01

00111

00101

001xy

-

0011x

00yyx

001y0

00yy0

00y11

001y1

00yy1

00yy1

00111

001yx

00110

00111

-

x0111

00yy1

001yy

x0yyy

00y11

001y1

00yy1

x0yy1

00111

001y1

0011y

00111

00111

-

x1001

0y001

0y00y

xy00y

0y001

0y001

01001

xy001

0y0y1

0yy01

0yy0y

0yy01

0yyy1

xyyy1

-

1000x

y000x

y0000

10000

y0001

y0001

y0001

10001

y00y1

y0y0x

y0y00

y0y01

y0yyx

10yy1

1y001

-

1x000

y0000

y0000

10000

y000y

y000y

yx00y

1000y

y00yy

y0y00

y0y00

y0y0y

y0yy0

10yyy

1100y

10000

-

1x001

y0001

y000y

1000y

y0001

y0001

yx001

10001

y00y1

y0y01

y0y0y

y0y01

y0yy1

10yy1

11001

10001

1x00y

-

1x111

y0yy1

y01yy

10yyy

y0y11

y01y1

yxyy1

10yy1

y0111

y01y1

y011y

y0111

y0111

10111

11yy1

10yy1

1xyyy

1xyy1

-

1100x

yy00x

yy000

1y000

yy001

yy001

y1001

1y001

yy0y1

yyy0x

yyy00

yyy01

yyyyx

1yyy1

11001

1y00x

11000

11001

11yy1

-

11x01

yy001

yyx0y

1y00y

yy001

yyx01

y1001

1y001

yyxy1

yy101

yy10y

yy101

yy1y1

1y1y1

11001

1y001

1100y

11001

111y1

11001

-

111x1

yyy01

yy10y

1yy0y

yyyx1

yy101

y1y01

1yy01

yy111

yy101

yy1xy

yy1x1

yy111

1y111

11y01

1yy01

11y0y

11y01

11111

11y01

11101

-

1111x

yyyyx

yy1y0

1yyy0

yyy11

yy1y1

y1yy1

1yyy1

yy111

yy1yx

yy110

yy111

yy11x

1y111

11yy1

1yyyx

11yy0

11yy1

11111

11yyx

111y1

11111

-

A2

00x0x
x000x

00x0x

x000x

00xx1

00xx1

xx001

xx001

Ø

001xx

001xx

Ø

Ø

Ø

Ø

1x00x

1x00x

Ø

Ø

Ø

Ø

Ø

Ø

A2 = { 00x0x; x000x; 00xx1; xx001; 001xx; 1x00x } ;   Z1 = { x0111; 1x111; 11x01; 111x1; 1111x };

B2 = { 0000x; 00x00; x0000; 000x1; 00x01; 0x001; x0001; 00x11; 0010x; 001x0; 001x1; 0011x; x1001; 1000x; 1x000; 1x001; 1100x } ;   C2 = { 00x0x; x000x; 00xx1; xx001; 001xx; 1x00x }


C2*C2

00x0x

x000x

00xx1

xx001

001xx

1x00x

00x0x

-

x000x

0000x

-

00xx1

00x01

00001

-

xx001

00001

x0001

00001

-

001xx

0010x

00y0x

001x1

00y01

-

1x00x

y000x

1000x

y0001

1x001

y0y0x

-

A3

Ø

Ø

Ø

Ø

Ø

Ø

A3 = { Ø }

Конечное множество простых импликант Z = { x0111; 1x111; 11x01; 111x1; 1111x; 00x0x; x000x; 00xx1; xx001; 001xx; 1x00x }

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

z#(Z-z)

x0111

1x111

11x01

111x1

1111x

00x0x

x000x

00xx1

xx001

001xx

1x00x

x0111

-

11111

11x01

111x1

1111x

00x0x

x000x

000x1
00x01

xx001

0010x
001x0

1x00x

1x111

00111

-

11x01

11101

11110

00x0x

x000x

000x1
00x01

xx001

0010x
001x0

1x00x

11x01

00111

11111

-

Ø

11110

00x0x

x000x

000x1
00x01

0x001
x0001

0010x
001x0

1000x
1x000

111x1

00111

Ø

11001

-

11110

00x0x

x000x

000x1
00x01

0x001
x0001

0010x
001x0

1000x
1x000

1111x

00111

Ø

11001

Ø

-

00x0x

x000x

000x1
00x01

0x001
x0001

0010x
001x0

1000x
1x000

00x0x

00111

Ø

11001

Ø

11110

-

1000x

00011

01001
10001

00110

1000x
1x000

x000x

00111

Ø

11001

Ø

11110

0010x

-

00011

01001

00110

11000

00xx1

Ø

Ø

11001

Ø

11110

00100

1000x

-

01001

00110

11000

xx001

Ø

Ø

Ø

Ø

11110

00100

10000

00011

-

00110

11000

001xx

Ø

Ø

Ø

Ø

11110

Ø

10000

00011

01001

-

11000

1x00x

Ø

Ø

Ø

Ø

11110

Ø

Ø

00011

01001

00110

-

Остаток

Ø

Ø

Ø

Ø

11110

Ø

Ø

00011

01001

00110

11000

z#(Z-z) n L

00000

00001

00011

00100

00101

00110

00111

01001

10000

10001

10111

11000

11001

11101

11110

11111

11110

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

11110

Ø

00011

Ø

Ø

00011

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

01001

Ø

Ø

Ø

Ø

Ø

Ø

Ø

01001

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

00110

Ø

Ø

Ø

Ø

Ø

00110

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

11000

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

11000

Ø

Ø

Ø

Ø

Множество L-экстремалей E = { 1111x; 00xx1; xx001; 001xx; 1x00x }

Z´ = Z - E = { x0111; 1x111; 11x01; 111x1; 00x0x; x000x }

L#E

00000

00001

00011

00100

00101

00110

00111

01001

10000

10001

10111

11000

11001

11101

11110

11111

1111x

00000

00001

00011

00100

00101

00110

00111

01001

10000

10001

10111

11000

11001

11101

Ø

Ø

00xx1

00000

Ø

Ø

00100

Ø

00110

Ø

01001

10000

10001

10111

11000

11001

11101

Ø

Ø

xx001

00000

Ø

Ø

00100

Ø

00110

Ø

Ø

10000

Ø

10111

11000

Ø

11101

Ø

Ø

001xx

00000

Ø

Ø

Ø

Ø

Ø

Ø

Ø

10000

Ø

10111

11000

Ø

11101

Ø

Ø

1x00x

00000

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

10111

Ø

Ø

11101

Ø

Ø

Остаток

00000

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

10111

Ø

Ø

11101

Ø

Ø

Множество кубов, непокрываемых L-экстремалями, L´ = L # E = { 00000; 10111; 11101 }


Минимизация функции S1 алгоритмом Рота:

L={ 00000,00101,00110,00111,01011,01100,01101,01110,10001,10010,10011,10100,11000,11001,11010,11111} ; N=Ø;

Поиск простых импликант.

C0*C0

00000

00101

00110

00111

01011

01100

01101

01110

10001

10010

10011

10100

11000

11001

11010

11111

00000

-

00101

00y0y

-

00110

00yy0

001yy

-

00111

00yyy

001y1

0011y

-

01011

0y0yy

0yyy1

0yy1y

0yy11

-

01100

0yy00

0y10y

0y1y0

0y1yy

01yyy

-

01101

0yy0y

0y101

0y1yy

0y1y1

01yy1

0110y

-

01110

0yyy0

0y1yy

0y110

0y11y

01y1y

011y0

011yy

-

10001

y000y

y0y01

y0yyy

y0yy1

yy0y1

yyy0y

yyy01

yyyyy

-

10010

y00y0

y0yyy

y0y10

y0y1y

yy01y

yyyy0

yyyyy

yyy10

100yy

-

10011

y00yy

y0yy1

y0y1y

y0y11

yy011

yyyyy

yyyy1

yyy1y

100y1

1001y

-

10100

y0y00

y010y

y01y0

y01yy

yyyyy

yy100

yy10y

yy1y0

10y0y

10yy0

10yyy

-

11000

yy000

yyy0y

yyyy0

yyyyy

y10yy

y1y00

y1y0y

y1yy0

1y00y

1y0y0

1y0yy

1yy00

-

11001

yy00y

yyy01

yyyyy

yyyy1

y10y1

y1y0y

y1y01

y1yyy

1y001

1y0yy

1y0y1

1yy0y

1100y

-

11010

yy0y0

yyyyy

yyy10

yyy1y

y101y

y1yy0

y1yyy

y1y10

1y0yy

1y010

1y01y

1yyy0

110y0

110yy

-

11111

yyyyy

yy1y1

yy11y

yy111

y1y11

y11yy

y11y1

y111y

1yyy1

1yy1y

1yy11

1y1yy

11yyy

11yy1

11y1y

-

A1

Ø

001x1
0x101

0011x
0x110

Ø

Ø

0110x
011x0

Ø

Ø

100x1
1x001

1001x
1x010

Ø

Ø

1100x
110x0

Ø

Ø

Ø

A1 = { 001x1; 0x101; 0011x; 0x110; 0110x; 011x0; 100x1; 1x001; 1001x; 1x010; 1100x; 110x0 };  Z0 = { 00000; 01011; 10100; 11111 };

B1 = { 00101; 00110; 00111; 01100; 01101; 01110; 10001; 10010; 10011; 11000; 11001; 11010 }; C1 = { 001x1; 0x101; 0011x; 0x110; 0110x; 011x0; 100x1; 1x001; 1001x; 1x010; 1100x; 110x0 };

C1*C1

001x1

0x101

0011x

0x110

0110x

011x0

100x1

1x001

1001x

1x010

1100x

110x0

001x1

-

0x101

00101

-

0011x

00111

001y1

-

0x110

0011y

0x1yy

00110

-

0110x

0y101

01101

0y1yx

011y0

-

011x0

0y1xy

0110y

0y110

01110

01100

-

100x1

y0yx1

y0y01

y0y11

y0y1y

yyy01

yyyxy

-

1x001

y0y01

yxy01

y0yy1

yxyyy

y1y01

y1y0y

10001

-

1001x

y0y11

y0yy1

y0y1x

y0y10

yyyyx

yyy10

10011

100y1

-

1x010

y0y1y

yxyyy

y0y10

yxy10

y1yy0

y1y10

1001y

1x0yy

10010

-

1100x

yyy01

y1y01

yyyyx

y1yy0

y1y0x

y1y00

1y001

11001

1y0yx

110y0

-

110x0

yyyxy

y1y0y

yyy10

y1y10

y1y00

y1yx0

1y0xy

1100y

1y010

11010

11000

-

A2

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

A2 = { Ø }

Конечное множество простых импликант Z = { 00000; 01011; 10100; 11111; 001x1; 0x101; 0011x; 0x110; 0110x; 011x0; 100x1; 1x001; 1001x; 1x010; 1100x; 110x0 }

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

z#(Z-z)

00000

01011

10100

11111

001x1

0x101

0011x

0x110

0110x

011x0

100x1

1x001

1001x

1x010

1100x

110x0

00000

-

01011

10100

11111

001x1

0x101

0011x

0x110

0110x

011x0

100x1

1x001

1001x

1x010

1100x

110x0

01011

00000

-

10100

11111

001x1

0x101

0011x

0x110

0110x

011x0

100x1

1x001

1001x

1x010

1100x

110x0

10100

00000

01011

-

11111

001x1

0x101

0011x

0x110

0110x

011x0

100x1

1x001

1001x

1x010

1100x

110x0

11111

00000

01011

10100

-

001x1

0x101

0011x

0x110

0110x

011x0

100x1

1x001

1001x

1x010

1100x

110x0

001x1

00000

01011

10100

11111

-

01101

00110

0x110

0110x

011x0

100x1

1x001

1001x

1x010

1100x

110x0

0x101

00000

01011

10100

11111

00111

-

00110

0x110

01100

011x0

100x1

1x001

1001x

1x010

1100x

110x0

0011x

00000

01011

10100

11111

Ø

01101

-

01110

01100

011x0

100x1

1x001

1001x

1x010

1100x

110x0

0x110

00000

01011

10100

11111

Ø

01101

Ø

-

01100

01100

100x1

1x001

1001x

1x010

1100x

110x0

0110x

00000

01011

10100

11111

Ø

Ø

Ø

01110

-

Ø

100x1

1x001

1001x

1x010

1100x

110x0

011x0

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

-

100x1

1x001

1001x

1x010

1100x

110x0

100x1

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

Ø

-

11001

10010

1x010

1100x

110x0

1x001

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

Ø

10011

-

10010

1x010

11000

110x0

1001x

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

Ø

Ø

11001

-

11010

11000

110x0

1x010

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

Ø

Ø

11001

Ø

-

11000

11000

1100x

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

11010

-

Ø

110x0

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

-

Остаток

00000

01011

10100

11111

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø


z#(Z-z) n L

00000

00101

00110

00111

01011

01100

01101

01110

10001

10010

10011

10100

11000

11001

11010

11111

00000

00000

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

01011

Ø

Ø

Ø

Ø

01011

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

10100

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

10100

Ø

Ø

Ø

Ø

11111

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

Ø

11111

Множество L-экстремалей E = { 00000; 01011; 10100; 11111 }; Z´ = Z - E = { 001x1; 0x101; 0011x; 0x110; 0110x; 011x0; 100x1; 1x001; 1001x; 1x010; 1100x; 110x0 };

L#E

00000

00101

00110

00111

01011

01100

01101

01110

10001

10010

10011

10100

11000

11001

11010

11111

00000

Ø

00101

00110

00111

01011

01100

01101

01110

10001

10010

10011

10100

11000

11001

11010

11111

01011

Ø

00101

00110

00111

Ø

01100

01101

01110

10001

10010

10011

10100

11000

11001

11010

11111

10100

Ø

00101

00110

00111

Ø

01100

01101

01110

10001

10010

10011

Ø

11000

11001

11010

11111

11111

Ø

00101

00110

00111

Ø

01100

01101

01110

10001

10010

10011

Ø

11000

11001

11010

Ø

Остаток

Ø

00101

00110

00111

Ø

01100

01101

01110

10001

10010

10011

Ø

11000

11001

11010

Ø

Множество кубов, непокрываемых L-экстремалями, L´ = L # E = { 00101; 00110; 00111; 01100; 01101; 01110; 10001; 10010; 10011; 11000; 11001; 11010 }

Минимизация функции S2 алгоритмом Рота:

L={ 00000,00011,00100,00111,01001,01010,01101,01110,10000,10011,10100,10111,11001,11010,11101,11110} ; N=Ø;

Поиск простых импликант.

C0*C0

00000

00011

00100

00111

01001

01010

01101

01110

10000

10011

10100

10111

11001

11010

11101

11110

00000

-

00011

000yy

-

00100

00y00

00yyy

-

00111

00yyy

00y11

001yy

-

01001

0y00y

0y0y1

0yy0y

0yyy1

-

01010

0y0y0

0y01y

0yyy0

0yy1y

010yy

-

01101

0yy0y

0yyy1

0y10y

0y1y1

01y01

01yyy

-

01110

0yyy0

0yy1y

0y1y0

0y11y

01yyy

01y10

011yy

-

10000

y0000

y00yy

y0y00

y0yyy

yy00y

yy0y0

yyy0y

yyyy0

-

10011

y00yy

y0011

y0yyy

y0y11

yy0y1

yy01y

yyyy1

yyy1y

100yy

-

10100

y0y00

y0yyy

y0100

y01yy

yyy0y

yyyy0

yy10y

yy1y0

10y00

10yyy

-

10111

y0yyy

y0y11

y01yy

y0111

yyyy1

yyy1y

yy1y1

yy11y

10yyy

10y11

101yy

-

11001

yy00y

yy0y1

yyy0y

yyyy1

y1001

y10yy

y1y01

y1yyy

1y00y

1y0y1

1yy0y

1yyy1

-

11010

yy0y0

yy01y

yyyy0

yyy1y

y10yy

y1010

y1yyy

y1y10

1y0y0

1y01y

1yyy0

1yy1y

110yy

-

11101

yyy0y

yyyy1

yy10y

yy1y1

y1y01

y1yyy

y1101

y11yy

1yy0y

1yyy1

1y10y

1y1y1

11y01

11yyy

-

11110

yyyy0

yyy1y

yy1y0

yy11y

y1yyy

y1y10

y11yy

y1110

1yyy0

1yy1y

1y1y0

1y11y

11yyy

11y10

111yy

-

A1

00x00
x0000

00x11
x0011

x0100

x0111

01x01
x1001

01x10
x1010

x1101

x1110

10x00

10x11

Ø

Ø

11x01

11x10

Ø

Ø

A1 = { 00x00; x0000; 00x11; x0011; x0100; x0111; 01x01; x1001; 01x10; x1010; x1101; x1110; 10x00; 10x11; 11x01; 11x10 }; Z0 = { Ø }

B1 = { 00000; 00011; 00100; 00111; 01001; 01010; 01101; 01110; 10000; 10011; 10100; 10111; 11001; 11010; 11101; 11110 };

C1 = { 00x00; x0000; 00x11; x0011; x0100; x0111; 01x01; x1001; 01x10; x1010; x1101; x1110; 10x00; 10x11; 11x01; 11x10 }


C1*C1

00x00

x0000

00x11

x0011

x0100

x0111

01x01

x1001

01x10

x1010

x1101

x1110

10x00

10x11

11x01

11x10

00x00

-

x0000

00000

-

00x11

00xyy

000yy

-

x0011

000yy

x00yy

00011

-

x0100

00100

x0y00

001yy

x0yyy

-

x0111

001yy

x0yyy

00111

x0y11

x01yy

-

01x01

0yx0y

0y00y

0yxy1

0y0y1

0y10y

0y1y1

-

x1001

0y00y

xy00y

0y0y1

xy0y1

xyy0y

xyyy1

01001

-

01x10

0yxy0

0y0y0

0yx1y

0y01y

0y1y0

0y11y

01xyy

010yy

-

x1010

0y0y0

xy0y0

0y01y

xy01y

xyyy0

xyy1y

010yy

x10yy

01010

-

x1101

0y10y

xyy0y

0y1y1

xyyy1

xy10y

xy1y1

01101

x1y01

011yy

x1yyy

-

x1110

0y1y0

xyyy0

0y11y

xyy1y

xy1y0

xy11y

011yy

x1yyy

01110

x1y10

x11yy

-

10x00

y0x00

10000

y0xyy

100yy

10100

101yy

yyx0y

1y00y

yyxy0

1y0y0

1y10y

1y1y0

-

10x11

y0xyy

100yy

y0x11

10011

101yy

10111

yyxy1

1y0y1

yyx1y

1y01y

1y1y1

1y11y

10xyy

-

11x01

yyx0y

1y00y

yyxy1

1y0y1

1y10y

1y1y1

y1x01

11001

y1xyy

110yy

11101

111yy

1yx0y

1yxy1

-

11x10

yyxy0

1y0y0

yyx1y

1y01y

1y1y0

1y11y

y1xyy

110yy

y1x10

11010

111yy

11110

1yxy0

1yx1y

11xyy

-

A2

x0x00

x0x00

x0x11

x0x11

Ø

Ø

x1x01

x1x01

x1x10

x1x10

Ø

Ø

Ø

Ø

Ø

Ø

A2 = { x0x00; x0x11; x1x01; x1x10 }

Z1 = { Ø }

B2 = { 00x00; x0000; 00x11; x0011; x0100; x0111; 01x01; x1001; 01x10; x1010; x1101; x1110; 10x00; 10x11; 11x01; 11x10 }

C2 = { x0x00; x0x11; x1x01; x1x10 }

C2*C2

x0x00

x0x11

x1x01

x1x10

x0x00

-

x0x11

x0xyy

-

x1x01

xyx0y

xyxy1

-

x1x10

xyxy0

xyx1y

x1xyy

-

A3

Ø

Ø

Ø

Ø

A3 = { Ø }

Конечное множество простых импликант Z = { x0x00; x0x11; x1x01; x1x10 }

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

z#(Z-z)

x0x00

x0x11

x1x01

x1x10

x0x00

-

x0x11

x1x01

x1x10

x0x11

x0x00

-

x1x01

x1x10

x1x01

x0x00

x0x11

-

x1x10

x1x10

x0x00

x0x11

x1x01

-

Остаток

x0x00

x0x11

x1x01

x1x10

z#(Z-z) n L

00000

00011

00100

00111

01001

01010

01101

01110

10000

10011

10100

10111

11001

11010

11101

11110

x0x00

00000

Ø

00100

Ø

Ø

Ø

Ø

Ø

10000

Ø

10100

Ø

Ø

Ø

Ø

Ø

x0x11

Ø

00011

Ø

00111

Ø

Ø

Ø

Ø

Ø

10011

Ø

10111

Ø

Ø

Ø

Ø

x1x01

Ø

Ø

Ø

Ø

01001

Ø

01101

Ø

Ø

Ø

Ø

Ø

11001

Ø

11101

Ø

x1x10

Ø

Ø

Ø

Ø

Ø

01010

Ø

01110

Ø

Ø

Ø

Ø

Ø

11010

Ø

11110

Множество L-экстремалей E = { x0x00; x0x11; x1x01; x1x10 }

Z´ = Z - E = { Ø }

Минимальное покрытие - множество L-экстремалей E = { x0x00; x0x11; x1x01; x1x10 }

Логический синтез ОЧУС

ОЧУС – это комбинационное устройство, имеющее шесть входов (два разряда из регистра множимого, два разряда из регистра множителя, вход переноса и управляющий вход h) и три выхода. Принцип работы ОЧУС описывается с помощью таблицы истинности (таблица 2). Разряды множителя закодированы: 04    00,  14   01,   24   10,   34   11. Разряды множимого закодированы: 04    01,  14   10,   24   11,   34   00. Управляющий вход h определяет тип операции: 0 – умножение закодированных цифр, поступивших на информационные входы, и добавление переноса; 1 – вывод на выходы без изменения значений разрядов, поступивших из регистра множимого.

Пер

Мн

Мт

Упр

Пер

Результат

Результат операции в четверичной СС

P1

X1

X2

Y1

Y2

H

P

Q1

Q2

0

0

0

0

0

0

0

0

1

3*0+0=00

0

0

0

0

0

1

0

0

0

Выход 03

0

0

0

0

1

0

0

0

0

3*1+0=03

0

0

0

0

1

1

0

0

0

Выход 03

0

0

0

1

0

0

1

1

1

3*2+0=12

0

0

0

1

0

1

0

0

0

Выход 03

0

0

0

1

1

0

X

X

X

3*3+0=21

0

0

0

1

1

1

X

X

X

Выход 03

0

0

1

0

0

0

0

0

1

0*0+0=00

0

0

1

0

0

1

0

0

1

Выход 00

0

0

1

0

1

0

0

0

1

0*1+0=00

0

0

1

0

1

1

0

0

1

Выход 00

0

0

1

1

0

0

0

0

1

0*2+0=00

0

0

1

1

0

1

0

0

1

Выход 00

0

0

1

1

1

0

X

X

X

0*3+0=00

0

0

1

1

1

1

X

X

X

Выход 00

0

1

0

0

0

0

0

0

1

1*0+0=00

0

1

0

0

0

1

0

1

0

Выход 01

0

1

0

0

1

0

0

1

0

1*1+0=01

0

1

0

0

1

1

0

1

0

Выход 01

0

1

0

1

0

0

0

1

1

1*2+0=02

0

1

0

1

0

1

0

1

0

Выход 01

0

1

0

1

1

0

X

X

X

1*3+0=03

0

1

0

1

1

1

X

X

X

Выход 01

0

1

1

0

0

0

0

0

1

2*0+0=00

0

1

1

0

0

1

0

1

1

Выход 02

0

1

1

0

1

0

0

1

1

2*1+0=02

0

1

1

0

1

1

0

1

1

Выход 02

0

1

1

1

0

0

1

0

1

2*2+0=10

0

1

1

1

0

1

0

1

1

Выход 02

0

1

1

1

1

0

X

X

X

2*3+0=12

0

1

1

1

1

1

X

X

X

Выход 02

1

0

0

0

0

0

X

X

X

3*0+1=00

1

0

0

0

0

1

X

X

X

Выход 03

1

0

0

0

1

0

X

X

X

3*1+1=10

1

0

0

0

1

1

X

X

X

Выход 03

1

0

0

1

0

0

1

0

0

3*2+1=13

1

0

0

1

0

1

X

X

X

Выход 03

1

0

0

1

1

0

X

X

X

3*3+1=22

1

0

0

1

1

1

X

X

X

Выход 03

1

0

1

0

0

0

X

X

X

0*0+1=01

1

0

1

0

0

1

X

X

X

Выход 00

1

0

1

0

1

0

X

X

X

0*1+1=01

1

0

1

0

1

1

X

X

X

Выход 00

1

0

1

1

0

0

0

1

0

0*2+1=01

1

0

1

1

0

1

X

X

X

Выход 00

1

0

1

1

1

0

X

X

X

0*3+1=01

1

0

1

1

1

1

X

X

X

Выход 00

1

1

0

0

0

0

X

X

X

1*0+1=01

1

1

0

0

0

1

X

X

X

Выход 01

1

1

0

0

1

0

X

X

X

1*1+1=02

1

1

0

0

1

1

X

X

X

Выход 01

1

1

0

1

0

0

0

0

0

1*2+1=03

1

1

0

1

0

1

X

X

X

Выход 01

1

1

0

1

1

0

X

X

X

1*3+1=10

1

1

0

1

1

1

X

X

X

Выход 01

1

1

1

0

0

0

X

X

X

2*0+1=01

1

1

1

0

0

1

X

X

X

Выход 02

1

1

1

0

1

0

X

X

X

2*1+1=03

1

1

1

0

1

1

X

X

X

Выход 02

1

1

1

1

0

0

1

1

0

2*2+1=11

1

1

1

1

0

1

X

X

X

Выход 02

1

1

1

1

1

0

X

X

X

2*3+1=13

1

1

1

1

1

1

X

X

X

Выход 02

В таблице выделено 36 безразличных наборов, т.к. на входы ОЧУС из разрядов множителя не может поступить код 11, при работе ОЧУС как сумматора на вход переноса не может поступить 1, а при умножении на 0 или 1 на вход переноса также не может поступить 1.

Минимизация P1 картами Карно-Вейча

              000     001   001    010   110    111   101    100

X

1

X

1

X

X

X

1

X

X

X

1

000

001

011

010

110

111

101

100

      _______     __                     __                             ____
P1=P1X1X2Y1H+P1X1X2Y1H+P1X1X2Y1+P1X1X2Y1

Эффективность минимизации:

К=(4*5+4+5)/29=1

Минимизация Q1 картами Карно-Вейча

              000     001   011    010   110    111   101    100

1

1

1

x

x

1

1

1

1

x

x

1

1

x

1

x

1

000

001

011

010

110

111

101

100

           ________                     __                          __          __             __          __             __          __                                   __
Q1=P1X1X2Y1H+P1X1Y1H+P1X1X2Y1+P1X1Y1H+P1X1Y1Y2+P1X2Y1Y2

Эффективность минимизации:

К=(11*5+11+5)/41=1.73

Минимизация Q2 картами Карно-Вейча

              000     001   001    010   110    111   101    100

1

1

1

1

1

1

1

1

1

1

 1

1

1

1

1

1

000

001

011

010

110

111

101

100
       ______   __       __  __      __

Q2=P1Y2H+P1X2Y2+P1X2Y1

Эффективность минимизации:

К=(16*5+16+5)/19=5.31

Cинтез ОЧС на основе мультиплексоров

Мультиплексор – это логическая схема, имеющая n информационных входов, m управляющих входов и один выход. При этом должно выполняться условие n = 2m.На выход мультиплексора может быть пропущен без изменений любой (один) логический сигнал, поступающий на информационные входы. Порядковый номер информационного входа, значение с которого в данный момент должно быть передано на выход, определяется двоичным кодом на управляющих входах.

Для синтеза ОЧС будем использовать мультиплексор  “один из восьми”, так как он наиболее удобен для реализации функции от 5 переменных.

Входы I0,I1,…, I7 - это информационные входы мультиплексора.  

Входы  П, S1, S2 - управляющие входы.

a1a2b1

b2p

П

Псхема

S1

S1схема

S2

S2схема

000

00

1

1

1

01

1

0

0

10

0

0

0

11

1

0

1

001

00

1

0

1

01

1

1

0

10

1

1

0

11

1

1

1

010

00

0

0

0

01

1

0

1

10

0

0

1

11

0

1

0

011

00

0

1

0

01

0

1

1

10

0

1

1

11

0

0

0

100

00

1

0

1

01

1

1

0

10

0

1

0

11

0

1

1

101

00

0

const 1

1

1

01

0

0

0

10

0

0

0

11

1

0

1

110

00

1

1

0

01

1

1

1

10

0

1

1

11

0

0

0

111

00

0

0

0

01

1

0

1

10

1

0

1

11

1

1

0

Логический синтез преобразователя множителя (ПМ)

 

Преобразователь множителя (ПМ) служит для исключения из множителя диад 11, заменяя их на триады 101.

   ПМ

P2

S1

S2

M

Qn

Qn-1

P1

 

Схематическое изображение ПМ.

Таблица 5.13. Таблица истинности ПМ.

Входы ПМ

Выходы ПМ

Qn-1

Qn

P1

P2

S1

S2

M

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

1

0

0

0

1

0

0

1

1

0

1

0

0

1

0

0

0

1

0

0

1

0

1

1

0

1

1

1

1

0

1

0

1

1

1

1

1

1

0

0

0

После некоторых преобразований получим:

 P = Qn-1QnP1 + Qn-1QnP1 + Qn-1QnP1= Qn-1P1 + Qn-1QnP1

 

S1 = Qn-1QnP1+ Qn-1QnP1

 

S2 = Qn-1QnP1+ Qn-1QnP1 + Qn-1QnP1 + Qn-1QnP1 = QnP1 + QnP1

 

M= Qn-1QnP1 + Qn-1QnP1



Литература

1. Методические указания к курсовому проекту.

2. Арифметические и логические основы вычислительной техники(учебное пособие)



 

А также другие работы, которые могут Вас заинтересовать

22462. Предмет, метод, цели и задачи товароведения как научной дисциплины 16.02 KB
  Товароведение - наука и учебная дисциплина об основополагающих характеристиках товаров, определяющих их потребительскую ценность, и факторах обеспечения этих характеристик или комплексная дисциплина, которая изучает потребительскую стоимость...
22463. Роль и значение товароведения в таможенном деле 17.68 KB
  Внешнеторговая деятельность – это деятельность по осуществлению сделок в области внешней торговли товарами, услугами, информацией и интеллектуальной собственностью. Она регулируется Федеральным законом...
22464. Товар в таможенном деле. Товар как объект исследования при таможенном декларировании и контроле. Товары риска и товары прикрытия 28.32 KB
  Потребительная стоимость товаров выступает как мера их полезности и проявляется через основополагающие товароведные характеристики. Характеристика – совокупность отличительных свойств, признаков предмета или явления.