28
1 I207 - Digitaalloogika ja - süsteemid - L9 © Peeter Ellervee Kombinatoorsete Kombinatoorsete süsteemide disain süsteemide disain L7. Loogikafunktsioonide täpne minimeerimine L8. Loogikafunktsioonide heuristiline minimeerimine L9. Mitmevalentne loogika L9. Mitmevalentne loogika

Kombinatoorsete süsteemide disain

  • Upload
    winda

  • View
    54

  • Download
    4

Embed Size (px)

DESCRIPTION

Kombinatoorsete süsteemide disain. L8. Loogikafunktsioonide täpne minimeerimine L9. Loogikafunktsioonide heuristiline minimeerimine L10. Mitmevalentne loogika. Mitmevalentne loogika. MVL (Multiple-Valued Logic) Post'i algebra Boole’i algebra üldistus - PowerPoint PPT Presentation

Citation preview

Page 1: Kombinatoorsete süsteemide disain

1I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Kombinatoorsete Kombinatoorsete süsteemide disainsüsteemide disain

L7. Loogikafunktsioonide täpne minimeerimine L8. Loogikafunktsioonide heuristiline minimeerimine L9. Mitmevalentne loogikaL9. Mitmevalentne loogika

Page 2: Kombinatoorsete süsteemide disain

2I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Mitmevalentne loogikaMitmevalentne loogika

MVL (Multiple-Valued Logic)

Post'i algebra Boole’i algebra üldistus Kasutatakse matemaatilise baasina MVL

loogikalülide projekteerimisel Post, 1921. a. - esimene mitmeväärtuseline

(mitmevalentne) loogika

Page 3: Kombinatoorsete süsteemide disain

3I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Mitmevalentne loogikaMitmevalentne loogika

Võrdlus kahendloogikaga Kahendloogika –  (B,*,+,~), B={0,1}

täielikult määratud funktsioonid -  f : Bn B   ja f : Bn Bm mittetäielikult määratud funktsioonid -

f : Bn {0,1,-}m    ( ka  f:Bn{0,1,*}m )

AND, OR, NOT – loogikafunktsioonide täielik süsteem

MV-loogika –   ({Pi},MIN,MAX,literal), Pi={0,1,...,mi-1} mittetäielikult määratud funktsioonid - f : P1xP2x...xPn Pm

või ka  f : P1xP2x...xPn {0,1,-}m  

MIN, MAX, literal - MVL-funktsioonide täielik süsteem

Page 4: Kombinatoorsete süsteemide disain

4I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Mitmevalentne loogikaMitmevalentne loogika

MIN(x, y) – minimaalne x ja y väärtus [·] AND kahendloogikas

MAX(x, y) – maksimaalne x ja y väärtus [+] OR kahendloogikas

literaal (literal) – unaarne operatioon –xi

{ci} = mi-1, kui xi=ci, muidu 0 kahend - xi

{0} == x’i xi{1} == xi xi

{0,1} == -   (don’t-care)

MVL -    x1{2} x1

2 x3{0,2} x3

{0} + x3{2}

hulk-literaal – xi{S} = mi-1, kui xS

f()=x’fx’()+xfx()      /      f()=x0fx0()+x1fx1()+...+xm-1fxm-1()    

Page 5: Kombinatoorsete süsteemide disain

5I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Mitmevalentne loogikaMitmevalentne loogika

TõeväärtustabelNormaalkujudKarnaugh kaart

“ · ” - MIN“+” - MAXx{i} - x’i literal

x1

000111222

x2

012012012

f002000012

0·x1{0}·x2

{0}

0·x1{0}·x2

{1}

2·x1{0}·x2

{2}

0·x1{1}·x2

{0}

0·x1{1}·x2

{1}

0·x1{1}·x2

{2}

0·x1{2}·x2

{0}

1·x1{2}·x2

{1}

2·x1{2}·x2

{2}

0

1

x2 1

0

0

1

0

0

1

2

2 0 22

0x1

f(x1,x2) = 1·x1{2}·x2

{1}+2·x1{0}·x2

{2}+

2·x1{2}·x2

{2}

f(x1,x2) = 1·x1{2}·x2

{1}+2·x1{0,2}·x2

{2}

Page 6: Kombinatoorsete süsteemide disain

6I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

MVL minimeerimineMVL minimeerimine

Kahendfunktsioonide süsteem (mitu väljundit) – väljundeid vaadeldakse kui ühte täiendavat MV sisendit

Ei midagi uut!

Antud funktsiooni F ühtede (f) ja määramata (d)( nullide (r) ) piirkondade kate

Leida minimaalne korrutiste-summa kuju funktsioonile F

Genereerida f+d lihtimplikandid Luua implikantide tabel Lahendada katte probleem

Algoritmid erinevad ainult pisiasjades

Page 7: Kombinatoorsete süsteemide disain

7I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Funktsioonide süsteemFunktsioonide süsteem

n-muutjaga ja k-väljundiga kahendfunktsioonide süsteem teisendatakse n+1-muutujaga ja 1-väljundiga funktsiooniks, üks sisendmuutujaist on MV:

{0,1}n {0,1}k   {0,1}n x {0, 1, ..., m-1} {0,1} tavaliselt k=m

Hong’i teoreem iga n-muutuja implikant pluss vastavad väljundid moodustavad

ühe hüperkuubi (implikandi) n+1-ruumis väljundite arv määrab täiendava sisendi valentside arvu implikandi määratud väljundid moodustavad hulk-literaali

täiendavas sisendis

Page 8: Kombinatoorsete süsteemide disain

8I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

MinimeerimineMinimeerimine

Näide

abc xyz000 111001 011010 101011 110100 000101 010110 000111 101

1

0a

c

0

0

1

1

1

0

b

1

0

x

1

1

1

0

0

0

1

0z

1

0

0

1

1

0

y

abc xyz0-0 101-11 10000- 0110-1 010-01 010111 001

Page 9: Kombinatoorsete süsteemide disain

9I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

MinimeerimineMinimeerimine

abc xyz000 111001 011010 101011 110100 000101 010110 000111 101

f: {0,1}x{0,1}x{0,1}x{0,1,2} -> {0,1}

x(a,b,c)=a’b’c’+a’bc’+a’bc+abcy(a,b,c)=a’b’c’+a’b’c+a’bc+ab’cz(a,b,c)=a’b’c’+a’b’c+a’bc’+abc

o(a,b,c,e)=a0b0c0e0+a0b1c0e0+a0b1c1e0+ +a1b1c1e0+a0b0c0e1+a0b0c1e1+ +a0b1c1e1+a1b0c1e1+a0b0c0e2+ +a0b0c1e2+a0b1c0e2+a1b1c1e2

abc e000 100010 100011 100111 100000 010001 010011 010101 010000 001001 001010 001111 001

o111111111111

Page 10: Kombinatoorsete süsteemide disain

10I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

MinimeerimineMinimeerimine

abc e000 100010 100011 100111 100000 010001 010011 010101 010000 001001 001010 001111 001

o111111111111

123456789101112

a0b1c1e0 + a0b1c1e1 = a0b1c1e{0,1}

3. 7.

1. 2. 9. 11.

a0b0c0e0 + a0b1c0e0 + a0b0c0e2 + a0b1c0e2 = …

… = a0b{0,1}c0e0 + a0b{0,1}c0e2 = a0b{0,1}c0e{0,2} = a0c0e{0,2}

ja / või

… = a0b0c0e{0,2} + a0b1c0e{0,2} = a0b{0,1}c0e{0,2} = a0c0e{0,2}

5. 9. 6. 10.

a0b0c0e1 + a0b0c0e2 + a0b0c1e1 + a0b0c1e2 = …

… = a0b0c0e{1,2} + a0b0c1e{1,2} = a0b0c{0,1}e{1,2} = a0b0e{1,2}

Page 11: Kombinatoorsete süsteemide disain

11I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Lihtimplikantide leidmineLihtimplikantide leidmine

abc e000 100010 100011 100111 100000 010001 010011 010101 010000 001001 001010 001111 001

mintermid

gr. abc e 0 000 100 000 010 000 001 1 010 100 001 010 001 001 010 001 2 011 100 011 010 101 010 3 111 100 111 001

1. etapp

gr. abc e 0 000 110 000 101 000 011 0-0 100 00- 010 00- 001 0-0 001 1 010 101 001 011 01- 100 0-1 010 -01 010 2 011 110 -11 100 3 111 101

2. etapp

gr. abc e 0 000 111 0-0 101 00- 011

c b

10a

00

11

10

10

x

11

10

00

10

z

10

01

10

y

GHI

ABCDEF

Page 12: Kombinatoorsete süsteemide disain

12I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Implikantkatte leidmineImplikantkatte leidmine

abc e A B C D E F G H I000 100 x x000 010 x x000 001 x x x010 100 x x001 010 x x x001 001 x010 001 x011 100 x x x011 010 x x101 010 x111 100 x x111 001 x

abc e01- 100 A0-1 010 B-01 010 C011 110 D-11 100 E111 101 F000 111 G0-0 101 H00- 011 I c b

10a

00

11

10

10

x

11

10

00

10

z

10

01

10

y

abc e A B D E G011 100 x x x011 010 x x

00- 011 I0-0 101 H-01 010 C111 101 F011 110 D

Page 13: Kombinatoorsete süsteemide disain

13I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Minimeerimine – MVL tulemusMinimeerimine – MVL tulemus

Lihtimplikandid & liiasuseta

o(a,b,c,e)=a0b0c0e0+a0b1c0e0+a0b1c1e0+ +a1b1c1e0+a0b0c0e1+a0b0c1e1+ +a0b1c1e1+a1b0c1e1+a0b0c0e2+ +a0b0c1e2+a0b1c0e2+a1b1c1e2

o(a,b,c,e)=a0b1c1e{0,1}+a1b1c1e{0,2}++a0b{0,1}c0e{0,2}+a0b0c{0,1}e{1,2}+

+a{0,1}b0c1e1

o(a,b,c,e)=a0b1c1e{0,1}+a1b1c1e{0,2}++a0c0e{0,2}+a0b0e{1,2}+b0c1e1

abc e011 110111 1010-0 10100- 011-01 010

o11111

Page 14: Kombinatoorsete süsteemide disain

14I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Minimeerimine – tulemusMinimeerimine – tulemus

o(a,b,c,e)=a0b1c1e{0,1}+a1b1c1e{0,2}++a0c0e{0,2}+a0b0e{1,2}+b0c1e1

abc e011 110111 1010-0 10100- 011-01 010

o11111

x(a,b,c)=a’bc+abc+a’c’y(a,b,c)=a’bc+a’b’+b’cz(a,b,c)=abc+a’c’+a’b’

1

0a

c

0

0

1

1

1

0

b

1

0

x

1

1

1

0

0

0

1

0z

1

0

0

1

1

0

y

abc xyz011 110111 1010-0 10100- 011-01 010

Page 15: Kombinatoorsete süsteemide disain

15I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Minimeerimine – Näide #2Minimeerimine – Näide #2

abc xy000 10001 11010 00011 00100 00101 11110 10111 10

abc xy00- 10-01 111-1 1011- 10

(1,1,1)

(0,0,0)

(1,1,1)

(0,0,0)

c

1

0a

1

1

0

1

0

1

b

0

0

x

1

1

0

0

0

0y

Page 16: Kombinatoorsete süsteemide disain

16I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Minimeerimine – Näide #2Minimeerimine – Näide #2

abc xy000 10001 11010 00011 00100 00101 11110 10111 10

ülesanne signatuur

abc e000 10001 10001 01101 10101 01110 10111 10

o1111111

gr. abc e 0 000 10 1 001 10 001 01 2 101 10 101 01 110 10 3 111 10

gr. abc e 0 00- 10 1 001 11 -01 10 -01 01 2 101 11 1-1 10 11- 10

gr. abc e 1 -01 11

abc e 000 10 x001 10 x x001 01 x101 10 x x101 01 x110 10 x111 10 x x

abc xy00- 10-01 1111- 10

Page 17: Kombinatoorsete süsteemide disain

17I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Tulemus – Näide #2Tulemus – Näide #2

abc xy000 10001 11010 00011 00100 00101 11110 10111 10

(1,1,1)

(0,0,0)

(1,1,1)

(0,0,0)

c

1

0a

1

1

0

1

0

1

b

0

0

x

1

1

0

0

0

0y

abc xy00- 10-01 1111- 10

c

1

0a

1

1

0

1

0

1

b

0

0

x

1

1

0

0

0

0y

Page 18: Kombinatoorsete süsteemide disain

18I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

MVL & Karnaugh kaartMVL & Karnaugh kaart

Jälle ei midagi (eriti) uut… Funktsioonidel tuleks leida võimalikult rohkem ühiseid kontuure Vihje – alustada võiks nn. hõredatest kohtades –

‘1’ ainult ühe funktsiooni väljundis (vrdl. olulised (liht)implikandid)

Vt. http://tams-www.informatik.uni-hamburg.de/applets/kvd/kvd.html

Page 19: Kombinatoorsete süsteemide disain

19I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

MVL muud rakendusedMVL muud rakendused

Efektiivsem kahendloogika probleemide lahendamine sisendite, väljundite ja olekute kodeerimine (optimeerimine) dekoodriga PLM – sisendite paar –> üks 4-valentne sisend testimine – kolmas väärtus kasutusel vea tähistamiseks aritmeetikaoperatsioonide kiirendmine (nt. kolmendaritmeetika)

Tüüpiline VLSI mikroskeem ~70% pindalast ühendused, ~20% isolatsioon ja

ainult ~10% transistorid MVL riistvara & süsteemid – rohkem kui kaks signaalinivood

rohkem kui kaks diskreetset signaalinivood (pinge või vool) võimalik kasutada olemasolevaid tehnoloogiaid - CMOS jne. traadid kannavad rohkem informatsiooni – vähem traate väljaviigud kannavad rohkem informatsiooni – vähem väljaviike

Page 20: Kombinatoorsete süsteemide disain

20I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Funktsioonid ja andmeesitusFunktsioonid ja andmeesitus

Funktsioon   f(x1,x2,...,xi,...,xn) f = ab + bc + ac

Jääkfunktsioon (kaasfaktor, cofactor) fxi – f(x1,x2,...,1,...,xn)   &   fx’i – f(x1,x2,...,0,...,xn) fa = b + c   &   fa’ = bc

Shannon’i arendus (Boole’s expansion) – f(x1,x2,...,xi,...,xn) = xi·fxi + x’i·fx’i f = ab + bc + ac = a fa + a’ fa’ = a (b+c) + a’ (bc)

Boole’i diferentsiaal   -   f/xi = fxi fx’i näitab, kas funktsioon sõltub muutujast xi f/a = fa fa’ = (b+c) bc = b’c + bc’

Konsensus (consensus)   -   Cxi = fxi fx’i näitab, milline osa funktsioonist ei sõltu muutujast xi Ca = fa · fa’ = (b+c) · (bc) = bc

Page 21: Kombinatoorsete süsteemide disain

21I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

espresso - andmeesitusespresso - andmeesitus

Maatriks- e. vektor-esitus Tavaliselt üks rida implikandi kohta Võimalikud erinevad kodeeringud Kahend- ja mitmevalentne loogika samadel

põhimõtetel - üks positsioon ühe sümboli jaoks

illegaalne“0”“1”

määramatus

x01-

00100111

a

01.11.10.11

b c d

1-0- = ac’

0.1.1.11.1.0.1

1-0- = ac’

a

01.11.10.11

b c d

1-0- = ac’

and

sõnade ‘&’

(or)

sõnade ‘|’

legaalne?

ei tohi olla ‘00’

Page 22: Kombinatoorsete süsteemide disain

22I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

espresso - andmeesitusespresso - andmeesitus

AND - ühisosa

OR - ühend

01 01 11 = ab11 01 01 = bc01 11 01 = ac

AND - (ab)(bc) = abc 01 01 01 = abc

(a’c)(bc) = [10.11.01]&[11.01.01] = = [10.01.01] = a’bc

(a’c)(ab) = [10.11.01]&[01.01.11] = = [00.01.01] = xxx

OR - 11 01 11 = b

0

0a

c

0

1

1

1

0

1

b

Page 23: Kombinatoorsete süsteemide disain

23I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

Jääkfunktsioon (kaasJääkfunktsioon (kaasfaktorfaktor))

Jääkfunktsiooni leidmine muutja või selle eitus ühisosa muutuja asendus

ebaolulisega kaetuse kontroll

f = ab+bc+acfa = b+cfa’ = bc

01 01 11 = ab11 01 01 = bc01 11 01 = ac

01 11 11 = a 10 11 11 = a’-------------- --------------01 01 11 = ab 00 01 11 = !!01 01 01 = abc 10 01 01 = a’bc01 11 01 = ac 00 11 01 = !!-------------- --------------11 01 11 = b 11 01 01 = bc11 01 01 = bc11 11 01 = c

0

0a

c

0

1

1

1

0

1

b

Page 24: Kombinatoorsete süsteemide disain

24I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

TautoloogiaTautoloogia

Tautoloogia - funktsiooni väärtus on alati tõene Rekursiivne lahendamine

laiendus mingi muutuja järgi funktsioon on tautoloogia kui kaasfaktorid on tautoloogiad

Tautoloogia (lihtsustused) üks rida (implikant) koosneb ainult ühtedest (määramatustest) kate sõltub ainult ühest muutujast ja ei leidu 0-de veergu ei ole tautoloogia kui kattes leidub 0-de veerg

f = ab+ac+ab’c’+a’ 01 01 11 fa fa’ 01 11 01 11 01 11 11 11 1101 10 10 11 11 0110 11 11 11 10 10

fab 11 11 11 fab’ 11 00 11Tautoloogia --> 11 11 01 11 11 01

11 00 01 11 11 10

Page 25: Kombinatoorsete süsteemide disain

25I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

SisaldumineSisaldumine

Implikant A sisaldub kattes F siis ja ainult siis, kui FA on tautoloogia

f = ac+bc’fab 01 01 11

01 11 01 = ac 01 01 01 = abc11 01 10 = bc’ 01 01 10 = abc’

Kas “ab” on kaetud? 11 11 01 = c11 11 10 = c’

0

0a

c

0

1

0

1

1

1

b

Page 26: Kombinatoorsete süsteemide disain

26I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

InversioonInversioon

Inversioon – f’ = x · f’x=1 + x’ · f’ x=0 vali muutuja leia kaasfaktorid inverteeri kaasfaktorid

Lihtsustusi kate on tühi - inversioon on universaalkuup (kõik ebaolulised) kattes on 1-de rida (tautoloogia) - inversioon on tühi kate koosneb ühest implikandist - De Morgan

0

0a

c

0

1

1

1

0

1

b

1

1a

c

1

0

0

0

1

0

b01 01 11 = ab11 01 01 = bc01 11 01 = ac

Page 27: Kombinatoorsete süsteemide disain

27I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

InversioonInversioon

f’ = x f’x + x’ f’x’

vali muutuja - a leia kaasfaktorid - fa, fa’ f’ = a f’a + a’ f’a’

fa = b + c      fa’ = bc

inverteeri kaasfaktorid f’a = b f’ab + b’ f’ab’ fab = 1   =>   f’ab = 0 fab’ = c   =>   f’ab’ = c’    (De Morgan)

f’a = b 0 + b’ c’ = b’ c’

01 01 11 = ab11 01 01 = bc01 11 01 = ac

fa fa’

11 01 11 11 01 0111 11 01

fab fab’

11 11 11 11 11 01

f’ab f’ab’

00 00 00 11 11 10

b·f’ab b’·f’ab’

00 00 00 11 10 10

f’a 11 10 10

Page 28: Kombinatoorsete süsteemide disain

28I207 - Digitaalloogika ja -süsteemid - L9© Peeter Ellervee

InversioonInversioon

inverteeri kaasfaktorid (järg) fa’ = b c f’a’ = (De Morgan) = b’ + c’

f’ = a f’a + a’ f’a’

f’ = a b’ c’ + a’ b’ + a’ c’

fa’ f’a’11 01 01 11 10 11 11 11 10

a·f’a a’·f’a’

01 10 10 10 10 11 10 11 10

f’ 01 10 1010 10 1110 11 10

1

1a

c

1

0

0

0

1

0

b