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

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

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

умножения текущей диады Мн · Мт с переносом из предыдущей диады предназначены ОЧС. Следовательно, чтобы полностью сформировать частичное произведение четверичных сомножителей, необходима комбинация цепочек ОЧУ и ОЧС. Частичные суммы формируются в аккумуляторе. На первом этапе он обнулен, и первая частичная сумма получается за счет сложения первого частичного произведения (сформированного на выходах  ОЧС) и нулевой частичной суммы (хранящейся в аккумуляторе). Далее в аккумуляторе происходит сложение i-й частичной суммы с (i+1)-м частичным произведением, результат сложения сохраняется. Содержимое аккумулятора сдвигается на один четверичный разряд влево в конце каждого такта умножения по алгоритму «В».

       Режимы работы формирователя дополнительного кода. Таблица 1.

Сигналы на входах ФДК

Результат на выходах ФДК

F1

F2

         0                      0

Дополнительный код множимого

         0                      1

Дополнительный код слагаемого

         1                      0

Меняется знак Мн

         1                      1

Меняется знак слагаемого

На четырех выходах ОЧУ формируется результат умножения диад Мн·Мт. Максимальной цифрой в диаде преобразованного множителя является двойка, поэтому в старшем разряде произведения максимальной цифрой может оказаться только «1» :

                                                 3     ·    2       =    1 2.

                                               max       maх        

                                                Мн        Мт     

Это означает, что на младшие входы ОЧС никогда не поступят диады цифр, соответствующие кодам «2» и «3», следовательно, в таблице истинности работы ОЧС будут содержаться 16 безразличных входных наборов.

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

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

·  2 разряда из регистра Мн, преобразованные в ФДК;

·  2 разряда из регистра Мт, преобразованные в ПМ;

·  управляющий вход h.

Разряды множителя закодированы в обыкновенной двоичной с/с:

0 - 00; 1 - 01; 2 - 10; 3 - 11.

Разряды множимого закодированы в соответствии с заданием:

 0 - 11; 1 - 10; 2 - 00; 3 - 01.

Управляющий вход h определяет тип операции:

0 - умножение закодированных цифр, поступивших на информационные входы ОЧУ.

1 - вывод на выходы без изменения значения разрядов, поступивших из регистра множимого.

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

          Таблица истинности ОЧУ. Таблица 1.

Мн

Мт

Упр.

Старшие разряды

Младшие разряды

Пример операции

x1

x2

y1

y2

h

P1

P2

P3

P4

в четверичной с/с

0

0

0

0

0

1

1

1

1

2·0=00

0

0

0

0

1

1

1

0

0

Выход – код «02»

0

0

0

1

0

1

1

0

0

2·1=02

0

0

0

1

1

1

1

0

0

Выход – код «02»

0

0

1

0

0

1

0

1

1

2·2=10

0

0

1

0

1

1

1

0

0

Выход – код «02»

0

0

1

1

0

x

x

x

x

2·3=12

0

0

1

1

1

x

x

x

x

Выход – код «02»

0

1

0

0

0

1

1

1

1

3·0=00

0

1

0

0

1

1

1

0

1

Выход – код «03»

0

1

0

1

0

1

1

0

1

3·1=03

0

1

0

1

1

1

1

0

1

Выход – код «03»

0

1

1

0

0

1

0

0

0

3·2=12

0

1

1

0

1

1

1

0

1

Выход – код «03»

0

1

1

1

0

x

x

x

x

3·3=21

0

1

1

1

1

x

x

x

x

Выход – код «01»

1

0

0

0

0

1

1

1

1

1·0=00

1

0

0

0

1

1

1

1

0

Выход – код «01»

1

0

0

1

0

1

1

1

0

1·1=01

1

0

0

1

1

1

1

1

0

Выход – код «01»

1

0

1

0

0

1

1

0

0

1·2=02

1

0

1

0

1

1

1

1

0

Выход – код «01»

1

0

1

1

0

x

x

x

x

1·3=03

1

0

1

1

1

x

x

x

x

Выход – код «00»

1

1

0

0

0

1

1

1

1

0·0=00

1

1

0

0

1

1

1

1

1

Выход – код «00»

1

1

0

1

0

1

1

1

1

0·1=00

1

1

0

1

1

1

1

1

1

Выход – код «00»

1

1

1

0

0

1

1

1

1

0·2=00

1

1

1

0

1

1

1

1

1

Выход – код «00»

1

1

1

1

0

x

x

x

x

0·3=00

1

1

1

1

1

x

x

x

x

Выход – код «02»

Множество безразличных кубов для всех выходов:

N ={00110, 00111, 01110, 01111, 10110, 10111, 11110, 11111}, которые минимизируются в ХХ11Х.

Так как в Р1 все 1, то его минимизация не представляет для нас интереса.

Рассмотрим Р2. Так как в Р2 только два “0”, то и склеивать будем по нулям.

Определим  множество единичных кубов:

L = {00100, 01100}.

C0=LUN={01100,00100,XX11X}

C0*C0

00100

01100

xx11x

00100

─────

01100

0x100

─────

xx11x

001x0

011x0

─────

 Z0={}

C1= = {0X100, 011X0, 001X0}

C1*C1

0x100

001x0

011x0

0x100

─────

001x0

─────

011x0

0x1x0

─────

Z1={}

C2 = {0X1X0}

C2*C2

0x1x0

0x1x0

 ─────

Z=Z0UZ1UZ2UZ3={0X1X0 }

Так как в Z только 1 куб, то E =  Z ={0X1X0} и является единственной обязательной импликантой.

Для проверки выполним L#E.

L#E

00100

01100

0x1x0

NULL

NULL

 L#E={}

= Fmin= E = {0X1X0} = , следовательно Р2 =

Р3. Определим  множество единичных кубов:

L = {00000, 00100, 01000, 10000, 10001, 10010, 10011, 10101, 11000, 11001, 11010, 11011, 11100, 11101}.

C0 = LUN={00000, 00100, 01000, 10000, 10001, 10010, 10011, 10101, 11000, 11001, 11010, 11011, 11100, 11101, XX11X}

C1 = {00X00, 0X000, X0000, 001X0, X1000, 1000X, 100X0, 1X000, 100X1, 10X01, 1X001, 1001X, 1X010, 10X10, 1X011, 10X11, 1X101, 101X1, 1100X, 110X0, 11X00, 110X1, 11X01, 11X01, 1101X, 11X10, 11X11, 1110X, 111X0, 111X1}

Z1 = {00X00, 001X0}

C2 = {XX000, 100XX, 1X00X, 1X0X0, 10XX1, 1X0X1, 1XX01, 1X01X, 10X1X, 1XX10, 1XX11, 1X1X1, 110XX, 11X0X, 11XX0, 11XX1, 11X1X, 111XX}

Z2 = {XX000}

C3 = {1X0XX, 1XXX1, 1XX1X, 11XXX}

Z3 = {1X0XX, 1XXX1, 1XX1X, 11XXX}


C0*C0

00000

00100

01000

10000

10001

10010

10011

10101

11000

11001

11010

11011

11100

11101

XX11X

00000

  ───

00100

00x00

  ───

01000

0x000

  ───

10000

x0000

  ───

10001

1000x

  ───

10010

100x0

  ───

10011

100x1

1001x

  ───

10101

10x01

  ───

11000

x1000

1x000

  ───

11001

1x001

1100x

  ───

11010

1x010

110x0

  ───

11011

1x011

110x1

1101x

  ───

11100

11x00

  ───

11101

1x101

11x01

1110x

  ───

XX11X

001x0

10x10

10x11

101x1

11x10

11x11

111x0

111x1

  ───

Поиск простых импликант (С00).


C1*C1

00x00

0x000

x0000

001x0

x1000

1000x

100x0

1x000

100x1

10x01

1x001

1001x

1x010

10x10

1x011

10x11

1x101

101x1

1100x

110x0

11x00

110x1

11x01

1101x

11x10

11x11

1110x

111x0

00x00

 ───

0x000

 ───

x0000

 ───

001x0

 ─── 

x1000

xx000

 ─── 

1000x

 ─── 

100x0

 ─── 

1x000

xx000

 ─── 

100x1

100xx

 ─── 

10x01

 ─── 

1x001

1x00x

 ─── 

1001x

100xx

 ─── 

1x010

1x0x0

 ─── 

10x10

 ─── 

1x011

1x0x1

1x01x

 ─── 

10x11

10xx1

10x1x

 ─── 

1x101

1xx01

 ─── 

101x1

10xx1

 ─── 

1100x

1x00x

 ─── 

110x0

1x0x0

 ─── 

11x00

 ─── 

110x1

1x0x1

110xx

 ─── 

11x01

1xx01

11x0x

 ─── 

1101x

1x01x

110xx

 ─── 

11x10

1xx10

11xx0

 ─── 

11x11

1xx11

11xx1

11x1x

 ─── 

1110x

11x0x

 ─── 

111x0

11xx0

 ─── 

111x1

1x1x1

11xx1

111xx

Поиск простых импликант (С11).


C2*C2

xx000

100xx

1x00x

1x0x0

10xx1

1x0x1

1xx01

1x01x

10x1x

1xx10

1xx11

1x1x1

110xx

11x0x

11xx0

11xx1

11x1x

xx000

───

100xx

───

1x00x

───

1x0x0

───

10xx1

───

1x0x1

1x0xx

───

1xx01

───

1x01x

1x0xx

───

10x1x

───

1xx10

───

1xx11

1xxx1

1xx1x

───

1x1x1

1xxx1

───

110xx

1x0xx

───

11x0x

───

11xx0

───

11xx1

1xxx1

11xxx

───

11x1x

1xx1x

11xxx

───

111xx

11xxx

Поиск простых импликант (С22).

Поиск простых импликант (С33).

C3*C3

1X0XX

1XXX1

1XX1X

11XXX

1X0XX

 ────

1XXX1

 ────

1XX1X

 ────

11XXX

 ────

Новых кубов (четвертой размерности) не образовалось. На этом заканчивается этап поиска простых импликант, так как |С4|£1. Множество простых импликант

Z = Z0UZ1UZ2UZ3 = {00X00, 001X0, XX000, 1X0XX, 1XXX1, 1XX1X, 11XXX}

Следующий этап – поиск L-экстремалей на множестве простых импликант. Для этого используется операция # (решетчатое вычитание). Из каждой простой импликанты поочередно вычитаются все остальные простые импликанты Z#(Z\z), результат операции (последняя строка таблицы) указывает на то, что L-экстремалями стали следующие простые импликанты:  

E = {001x0, xx000, 1xxx1, 1xx1x, 11xxx}. 

Необходимо проверить, нет ли среди них таких, которые стали L-экстремалями за счет безразличных кубов. Для этого из кубов множества L вычитаются остатки простых импликант.

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

Z#(Z\z)

00x00

001x0

xx000

1x0xx

1xxx1

1xx1x

11xxx

00x00

────

zzz1z
00110

11zzz

1x000  x1000

y1z11
1x0xx

y1z1y
1xxx1

y1zy1
1xx1x

yyz11
11xxx

001x0

zz0zz
00000

────

y1yzz  1yyzz
1x000  x1000

y1yz1
1x0xx

y10zy
1xxx1

y10z1
1xx1x

yy0z1
11xxx

xx000

zzzzz

zzyyz
00110

────  ────

zzz11
1x01x  1x0x1

zz11y
1xxx1

zz1y1
1xx1x

zz111
111xx  11x1x  11xx1

1x0xx

yzyzz
00110

zzzzz  0zzzz

       01000

──── ────

zz1zz
1x1x1

zz1zz
1x11x

zzyzz   zz1zz   zz1zz
111xx  1111x  111x1

1xxx1

yzzzy
00110

            yzzzy 

            01000

zzzz0  zzzzz
1x010      

────

zzzz0
1x110

zzzz0   zzzz0   zzzzz
111x0  11110                          

1xx1x

yzzzz
00110

             yzzyz 

             01000

zzzzz

zzz0z
1x101

────

zzz0z   zzzzz
11100       

11xxx

yyzzz
00110

             yzzzz 

             01000

z0zzz
10101

z0zzz
10110

────  ────

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

L∩ Ê

00000

00100

01000

10000

10001

10010

10011

10101

11000

11001

11010

11011

11100

11101

00110

01000

01000

10101

10101

10110

11100

11100

Теперь Е1 = {xx000, 1xxx1, 11xxx}.

Далее необходимо проанализировать, какие из исходных единичных кубов (множество L) не покрыты найденной L-экстремалью.

Поиск непокрытых исходных кубов

L#E

00000

00100

01000

10000

10001

10010

10011

10101

11000

11001

11010

11011

11100

11101

xx000

zzzzz

zzyzz
00100

zzzzz

zzzzz

zzzzy

zzzyz
10010

zzzyy
10011

zzyzy
10101

zzzzz

zzzzy
11001

zzzyz
11010

zzzyy
11011

zzyzz
11100

zzyzy
11101

1xxx1

yzzzy
00000

yzzzy
00100

yzzzy
01000

zzzzy
10000

zzzzz

zzzzy
10010

zzzzz

zzzzz

zzzzy
11000

zzzzz

zzzzy
11010

zzzzz

zzzzy
11100

zzzzz

11xxx

yyzzz
00000

yyzzz
00100

yzzzz
01000

zyzzz
10000

zyzzz
10001

zyzzz
10010

zyzzz
10011

zyzzz
10101

zzzzz

zzzzz

zzzzz

zzzzz

zzzzz

zzzzz

Видно, что L-экстремалью не покрыты два единичных куба

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

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