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

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    10,46 Кб
  • Опубликовано:
    2013-03-31
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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















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

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

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

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

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

а1а2b1b2pПS1S2Пример операции в четверичной с/с000001113+3+0=12000011003+3+1=13000100003+0+0=03000111013+0+1=10001001013+1+0=10001011103+1+1=11001101103+2+0=11001111113+2+1=12010000000+3+0=03010011010+3+1=10010100010+0+0=00010110100+0+1=01011000100+1+0=01011010110+1+1=02011100110+2+0=02011110000+2+1=03100001011+3+0=10100011101+3+1=11100100101+0+0=01100110111+0+1=02101000111+1+0=02101010001+1+1=03101100001+2+0=03101111011+2+1=10110001102+3+0=11110011112+3+1=12110100112+0+0=02110110002+0+1=03111000002+1+0=03111011012+1+1=10111101012+2+0=10111111102+2+1=11

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

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

C0*C000000000010001100100001010011000111010011000010001101111100000000-000010000y-00011000yy000y1-0010000y0000y0y00yyy-0010100y0y00y0100yy10010y-0011000yy000yyy00y1y001y0001yy-0011100yyy00yy100y11001yy001y10011y-010010y00y0y0010y0y10yy0y0yy010yyyy0yyy1-10000y0000y000yy00yyy0y00y0y0yy0yy0y0yyyyy00y-10001y000yy0001y00y1y0y0yy0y01y0yyyy0yy1yy0011000y-10111y0yyyy0yy1y0y11y01yyy01y1y011yy0111yyyy110yyy10yy1-11000yy000yy00yyy0yyyyy00yyy0yyyyy0yyyyyy100y1y0001y00y1yyyy-11001yy00yyy001yy0y1yyy0yyyy01yyyyyyyyy1y10011y00y1y0011yyy11100y11101yyy0yyyy01yyyy1yy10yyy101yy1yyyy1y1y1y011yy0y1yy011y1y111y0y11110yyyy0yyyyyyyy1yyy1y0yy1yyyy110yy11yy1yyy1yyy01yyyy1y11y11yy011111yyyyyyyyy1yyy11yy1yyyy1y1yy11yyy111y1yy11yyyy1yyy11y11111yyyA10000x 00x00 x0000000x1 00x01 0x001 x000100x110010x 001x0001x10011xx0111x10011000x 1x0001x0011x1111100x

A1 = {0000x; 00x00; x0000; 000x1; 00x01; 0x001; x0001; 00x11; 0010x; 001x0; 001x1; 0011x; x0111; x1001; 1000x; 1x000; 1x001; 1x111; 1100x; 11x01; 111x1; 1111x}= {Ø}= {00000; 00001; 00011; 00100; 00101; 00110; 00111; 01001; 10000; 10001; 10111; 11000; 11001; 11101; 11110; 11111}= {0000x; 00x00; x0000; 000x1; 00x01; 0x001; x0001; 00x11; 0010x; 001x0; 001x1; 0011x; x0111; x1001; 1000x; 1x000; 1x001; 1x111; 1100x; 11x01; 111x1; 1111x}

C1*C10000x00x00x0000000x100x010x001x000100x110010x001x0001x10000x-00x0000000-x00000000000000-000x1000010000y0000y-00x010000100x0y0000y00001-0x001000010000y0000y0000100001-x0001000010000yx000y000010000100001-00x11000y100xyy000yy0001100xy1000y1000y1-0010x00y0x0010000y0000y010010100y0100y01001y1-001x000y000010000y0000yxy0010y00y0y00y0y0011y00100-001x100y010010y00y0y00yx10010100y0100y010011100101001xy-0011x00yyx001y000yy000y11001y100yy100yy100111001yx0011000111x011100yy1001yyx0yyy00y11001y100yy1x0yy100111001y10011y00111x10010y0010y00yxy00y0y0010y00101001xy0010y0y10yy010yy0y0yy011000xy000xy000010000y0001y0001y000110001y00y1y0y0xy0y00y0y011x000y0000y000010000y000yy000yyx00y1000yy00yyy0y00y0y00y0y0y1x001y0001y000y1000yy0001y0001yx00110001y00y1y0y01y0y0yy0y011x111y0yy1y01yy10yyyy0y11y01y1yxyy110yy1y0111y01y1y011yy01111100xyy00xyy0001y000yy001yy001y10011y001yy0y1yyy0xyyy00yyy0111x01yy001yyx0y1y00yyy001yyx01y10011y001yyxy1yy101yy10yyy101111x1yyy01yy10y1yy0yyyyx1yy101y1y011yy01yy111yy101yy1xyyy1x11111xyyyyxyy1y01yyy0yyy11yy1y1y1yy11yyy1yy111yy1yxyy110yy111A200x0x x000x00x0xx000x00xx100xx1xx001xx001Ø001xx001xxØA2 = {00x0x; x000x; 00xx1; xx001; 001xx; 1x00x}; Z1 = {x0111; 1x111; 11x01; 111x1; 1111x};= {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*C200x0xx000x00xx1xx001001xx1x00x00x0x-x000x0000x-00xx100x0100001-xx00100001x000100001-001xx0010x00y0x001x100y01-1x00xy000x1000xy00011x001y0y0x-A3ØØØØØØ= {Ø}

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

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

z#(Z-z)x01111x11111x01111x11111x00x0xx000x00xx1xx001001xx1x00xx0111-1111111x01111x11111x00x0xx000x000x1 00x01xx0010010x 001x01x00x1x11100111-11x01111011111000x0xx000x000x1 00x01xx0010010x 001x01x00x11x010011111111-Ø1111000x0xx000x000x1 00x010x001 x00010010x 001x01000x 1x000111x100111Ø11001-1111000x0xx000x000x1 00x010x001 x00010010x 001x01000x 1x0001111x00111Ø11001Ø-00x0xx000x000x1 00x010x001 x00010010x 001x01000x 1x00000x0x00111Ø11001Ø11110-1000x0001101001 10001001101000x 1x000x000x00111Ø11001Ø111100010x-0001101001001101100000xx1ØØ11001Ø11110001001000x-010010011011000xx001ØØØØ11110001001000000011-0011011000001xxØØØØ11110Ø100000001101001-110001x00xØØØØ11110ØØ000110100100110-ОстатокØØØØ11110ØØ00011010010011011000

z#(Z-z) n L00000000010001100100001010011000111010011000010001101111100011110ØØØØØØØØØØØØ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#E00000000010001100100001010011000111010011000010001101111111x000000000100011001000010100110001110100110000100011011100xx100000ØØ00100Ø00110Ø01001100001000110111xx00100000ØØ00100Ø00110ØØ10000Ø10111001xx00000ØØØØØØØ10000Ø101111x00x00000ØØØØØØØØØ10111Остаток00000ØØØØØØØØØ10111

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


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

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

C0*C0000000001100100001110100101010011010111010000100111010000000-00011000yy-0010000y0000yyy-0011100yyy00y11001yy-010010y00y0y0y10yy0y0yyy1-010100y0y00y01y0yyy00yy1y010yy-011010yy0y0yyy10y10y0y1y101y0101yyy-011100yyy00yy1y0y1y00y11y01yyy01y10011yy-10000y0000y00yyy0y00y0yyyyy00yyy0y0yyy0yyyyy0-10011y00yyy0011y0yyyy0y11yy0y1yy01yyyyy1yyy1y100yy-10100y0y00y0yyyy0100y01yyyyy0yyyyy0yy10yyy1y010y0010yyy-10111y0yyyy0y11y01yyy0111yyyy1yyy1yyy1y1yy11y10yyy10y11101yy11001yy00yyy0y1yyy0yyyyy1y1001y10yyy1y01y1yyy1y00y1y0y11yy0y11010yy0y0yy01yyyyy0yyy1yy10yyy1010y1yyyy1y101y0y01y01y1yyy011101yyy0yyyyy1yy10yyy1y1y1y01y1yyyy1101y11yy1yy0y1yyy11y10y11110yyyy0yyy1yyy1y0yy11yy1yyyy1y10y11yyy11101yyy01yy1y1y1y0A100x00 x000000x11 x0011x0100x011101x01 x100101x10 x1010x1101x111010x0010x11Ø

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 };= { 00x00; x0000; 00x11; x0011; x0100; x0111; 01x01; x1001; 01x10; x1010; x1101; x1110; 10x00; 10x11; 11x01; 11x10 }

C1*C100x00x000000x11x0011x0100x011101x01x100101x10x1010x110100x00-x000000000-00x1100xyy000yy-x0011000yyx00yy00011-x010000100x0y00001yyx0yyy-x0111001yyx0yyy00111x0y11x01yy-01x010yx0y0y00y0yxy10y0y10y10y0y1y1-x10010y00yxy00y0y0y1xy0y1xyy0yxyyy101001-01x100yxy00y0y00yx1y0y01y0y1y00y11y01xyy010yy-x10100y0y0xy0y00y01yxy01yxyyy0xyy1y010yyx10yy01010-x11010y10yxyy0y0y1y1xyyy1xy10yxy1y101101x1y01011yyx1yyy-x11100y1y0xyyy00y11yxyy1yxy1y0xy11y011yyx1yyy01110x1y10x11yy10x00y0x0010000y0xyy100yy10100101yyyyx0y1y00yyyxy01y0y01y10y10x11y0xyy100yyy0x1110011101yy10111yyxy11y0y1yyx1y1y01y1y1y111x01yyx0y1y00yyyxy11y0y11y10y1y1y1y1x0111001y1xyy110yy1110111x10yyxy01y0y0yyx1y1y01y1y1y01y11yy1xyy110yyy1x1011010111yyA2x0x00x0x00x0x11x0x11ØØx1x01x1x01x1x10x1x10Ø

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*C2x0x00x0x11x1x01x1x10x0x00-x0x11x0xyy-x1x01xyx0yxyxy1-x1x10xyxy0xyx1yx1xyy-A3ØØØØ

A3 = { Ø }

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

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

z#(Z-z)x0x00x0x11x1x01x1x10x0x00-x0x11x1x01x1x10x0x11x0x00-x1x01x1x10x1x01x0x00x0x11-x1x10x1x10x0x00x0x11x1x01-Остатокx0x00x0x11x1x01x1x10

z#(Z-z) n L000000001100100001110100101010011010111010000100111010010111x0x0000000Ø00100ØØØØØ10000Ø10100Øx0x11Ø00011Ø00111ØØØØØ10011Ø10111x1x01ØØØØ01001Ø01101ØØØØØx1x10ØØØØØ01010Ø01110ØØØØ

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

Z´ = Z - E = { Ø }

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

сумматор рот умножитель минимизация


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

ПерМнМтУпрПерРезультатРезультат операции в четверичной ССP1X1X2Y1Y2HPQ1Q20000000013*0+0=00000001000Выход 030000100003*1+0=03000011000Выход 030001001113*2+0=12000101000Выход 03000110XXX3*3+0=21000111XXXВыход 030010000010*0+0=00001001001Выход 000010100010*1+0=00001011001Выход 000011000010*2+0=00001101001Выход 00001110XXX0*3+0=00001111XXXВыход 000100000011*0+0=00010001010Выход 010100100101*1+0=01010011010Выход 010101000111*2+0=02010101010Выход 01010110XXX1*3+0=03010111XXXВыход 010110000012*0+0=00011001011Выход 020110100112*1+0=02011011011Выход 020111001012*2+0=10011101011Выход 02011110XXX2*3+0=12011111XXXВыход 02100000XXX3*0+1=00100001XXXВыход 03100010XXX3*1+1=10100011XXXВыход 031001001003*2+1=13100101XXXВыход 03100110XXX3*3+1=22100111XXXВыход 03101000XXX0*0+1=01101001XXXВыход 00101010XXX0*1+1=01101011XXXВыход 001011000100*2+1=01101101XXXВыход 00101110XXX0*3+1=01101111XXXВыход 00110000XXX1*0+1=01110001XXXВыход 01110010XXX1*1+1=02110011XXXВыход 011101000001*2+1=03110101XXXВыход 01110110XXX1*3+1=10110111XXXВыход 01111000XXX2*0+1=01111001XXXВыход 02111010XXX2*1+1=03111011XXXВыход 021111001102*2+1=11111101XXXВыход 02111110XXX2*3+1=13111111XXXВыход 02

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

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

X1X1XXX1XXX1

P1=P1X1X2Y1H+P1X1X2Y1H+P1X1X2Y1+P1X1X2Y1

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

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

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

111xx1111xx11x1x1

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

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

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

Литература

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

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

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!