Kombinatoorsete süsteemide disain

14
1 1 I207 - Digitaalloogika ja -süsteemid - L9 © Peeter Ellervee Kombinatoorsete süsteemide disain L7. Loogikafunktsioonide täpne minimeerimine L8. Loogikafunktsioonide heuristiline minimeerimine L9. Mitmevalentne loogika 2 I207 - Digitaalloogika ja -süsteemid - L9 © Peeter Ellervee Mitmevalentne 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

Transcript of Kombinatoorsete süsteemide disain

1

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

Kombinatoorsete süsteemide disain

L7. Loogikafunktsioonide täpneminimeerimine

L8. Loogikafunktsioonide heuristilineminimeerimine

L9. Mitmevalentne loogika

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

Mitmevalentne loogika

MVL (Multiple-Valued Logic)

Post'i algebra Boole’i algebra üldistus

Kasutatakse matemaatilise baasina MVLloogikalülide projekteerimisel

Post, 1921. a. - esimene mitmeväärtuseline(mitmevalentne) loogika

2

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

Mitmevalentne 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

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

Mitmevalentne 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()

3

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

Mitmevalentne loogika

TõeväärtustabelNormaalkujudKarnaugh kaart

“ · ” - MIN

“+” - MAX

x{i} - x’i literal

x1

0

0

0

1

1

1

2

2

2

x2

0

1

2

0

1

2

0

1

2

f

0

0

2

0

0

0

0

1

2

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}

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

MVL 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

4

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

Funktsioonide 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-literaalitäiendavas sisendis

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

Minimeerimine

Näide

abc xyz

000 111

001 011

010 101

011 110

100 000

101 010

110 000

111 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 xyz

0-0 101

-11 100

00- 011

0-1 010

-01 010

111 001

5

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

Minimeerimine

abc xyz

000 111

001 011

010 101

011 110

100 000

101 010

110 000

111 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+abc

y(a,b,c)=a’b’c’+a’b’c+a’bc+ab’c

z(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 e

000 100

010 100

011 100

111 100

000 010

001 010

011 010

101 010

000 001

001 001

010 001

111 001

o

1

1

1

1

1

1

1

1

1

1

1

1

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

Minimeerimine

abc e

000 100

010 100

011 100

111 100

000 010

001 010

011 010

101 010

000 001

001 001

010 001

111 001

o

1

1

1

1

1

1

1

1

1

1

1

1

1

2

3

4

5

6

7

8

9

10

11

12

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}

6

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

Lihtimplikantide leidmine

abc e

000 100

010 100

011 100

111 100

000 010

001 010

011 010

101 010

000 001

001 001

010 001

111 001

mintermid

gr. abc e0 000 100

000 010000 001

1 010 100001 010001 001010 001

2 011 100011 010101 010

3 111 100111 001

1. etapp

gr. abc e0 000 110

000 101000 0110-0 10000- 01000- 0010-0 001

1 010 101001 01101- 1000-1 010-01 010

2 011 110-11 100

3 111 101

2. etapp

gr. abc e0 000 111

0-0 10100- 011

c b

1

0a

0

0

1

1

1

0

1

0

x

1

1

1

0

0

0

1

0z

1

0

0

1

1

0

y

GHI

ABCDEF

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

Implikantkatte 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

1

0a

0

0

1

1

1

0

1

0

x

1

1

1

0

0

0

1

0z

1

0

0

1

1

0

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

7

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

Minimeerimine – 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 e

011 110

111 101

0-0 101

00- 011

-01 010

o

1

1

1

1

1

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

Minimeerimine – tulemus

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

abc e

011 110

111 101

0-0 101

00- 011

-01 010

o

1

1

1

1

1

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

y(a,b,c)=a’bc+a’b’+b’c

z(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 xyz

011 110

111 101

0-0 101

00- 011

-01 010

8

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

Minimeerimine – Näide #2

abc xy

000 10

001 11

010 00

011 00

100 00

101 11

110 10

111 10

abc xy

00- 10

-01 11

1-1 10

11- 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

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

Minimeerimine – Näide #2

abc xy

000 10

001 11

010 00

011 00

100 00

101 11

110 10

111 10

ülesanne signatuur

abc e

000 10

001 10

001 01

101 10

101 01

110 10

111 10

o

1

1

1

1

1

1

1

gr. abc e0 000 101 001 10

001 012 101 10

101 01110 10

3 111 10

gr. abc e0 00- 101 001 11

-01 10-01 01

2 101 111-1 1011- 10

gr. abc e1 -01 11

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

abc xy

00- 10

-01 11

11- 10

9

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

Tulemus – Näide #2

abc xy

000 10

001 11

010 00

011 00

100 00

101 11

110 10

111 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 xy

00- 10

-01 11

11- 10

c

1

0a

1

1

0

1

0

1

b

0

0

x

1

1

0

0

0

0y

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

MVL & 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

10

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

MVL 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

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

Funktsioonid 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

11

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

espresso - andmeesitus

Maatriks- e. vektor-esitus Tavaliselt üks rida implikandi kohta

Võimalikud erinevad kodeeringud

Kahend- ja mitmevalentne loogika samadelpõhimõtetel - üks positsioon ühe sümboli jaoks

illegaalne

“0”

“1”

määramatus

x

0

1

-

00

10

01

11

a

01.11.10.11

b c d

1-0- = ac’

0.1.1.1

1.1.0.11-0- = ac’

a

01.11.10.11

b c d

1-0- = ac’

and

sõnade ‘&’

(or)

sõnade ‘|’

legaalne?

ei tohi olla ‘00’

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

espresso - andmeesitus

AND -ühisosa

OR - ühend

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

AND - (ab)(bc) = abc01 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

12

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

Jääkfunktsioon (kaasfaktor)

Jääkfunktsiooni leidmine muutja või selle eitus

ühisosa

muutuja asendusebaolulisega

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

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

Tautoloogia

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

13

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

Sisaldumine

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

f = ac+bc’fab01 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

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

Inversioon

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

14

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

Inversioon

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’a11 10 10

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

Inversioon

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