280 likes | 485 Views
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
E N D
Kombinatoorsete süsteemide disain • L8. Loogikafunktsioonide täpne minimeerimine • L9. Loogikafunktsioonide heuristiline minimeerimine • L10. Mitmevalentne loogika I207 - Digitaalloogika ja -süsteemid - L10
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 I207 - Digitaalloogika ja -süsteemid - L10
Mitmevalentne loogika Võrdlus kahendloogikaga Kahendloogika – (B,*,+,~), B={0,1} täielikult määratud funktsioonid - f : BnB ja f : BnBm 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...xPnPm või ka f : P1xP2x...xPn {0,1,-}m MIN, MAX, literal - MVL-funktsioonide täielik süsteem I207 - Digitaalloogika ja -süsteemid - L10
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} x12 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() I207 - Digitaalloogika ja -süsteemid - L10
Mitmevalentne loogika 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 x1 x2 0 1 2 0 0 1 0 1 0 0 1 2 2 0 2 Tõeväärtustabel Normaalkujud Karnaugh kaart 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} 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} “ · ” - MIN “+” - MAX x{i} - x’i literal I207 - Digitaalloogika ja -süsteemid - L10
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 I207 - Digitaalloogika ja -süsteemid - L10
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-literaali täiendavas sisendis I207 - Digitaalloogika ja -süsteemid - L10
Minimeerimine c b 1 0 1 1 abc xyz abc xyz 000 111 a 0 0 1 0 x 0-0 101 001 011 -11 100 010 101 1 1 1 0 00- 011 011 110 0 1 0 0 0-1 010 100 000 y -01 010 101 010 1 1 0 1 111 001 110 000 111 101 0 0 1 0 z Näide I207 - Digitaalloogika ja -süsteemid - L10
Minimeerimine abc e o 000 100 1 abc xyz 010 100 1 000 111 011 100 1 001 011 111 100 1 010 101 000 010 1 011 110 001 010 1 100 000 011 010 1 101 010 101 010 1 110 000 000 001 1 111 101 001 001 1 010 001 1 111 001 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 f: {0,1}x{0,1}x{0,1}x{0,1,2} -> {0,1} o(a,b,c,e)=a0b0c0e0+a0b1c0e0+a0b1c1e0+ +a1b1c1e0+a0b0c0e1+a0b0c1e1+ +a0b1c1e1+a1b0c1e1+a0b0c0e2+ +a0b0c1e2+a0b1c0e2+a1b1c1e2 I207 - Digitaalloogika ja -süsteemid - L10
Minimeerimine 3. 7. abc e o a0b1c1e0 + a0b1c1e1 = a0b1c1e{0,1} 000 100 1 1 010 100 1 2 1. 2. 9. 11. 011 100 1 3 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} 111 100 1 4 5. 9. 6. 10. a0b0c0e1 + a0b0c0e2 + a0b0c1e1 + a0b0c1e2 = … … = a0b0c0e{1,2} + a0b0c1e{1,2} = a0b0c{0,1}e{1,2} = a0b0e{1,2} 000 010 1 5 001 010 1 6 011 010 1 7 101 010 1 8 000 001 1 9 001 001 1 10 010 001 1 11 111 001 1 12 I207 - Digitaalloogika ja -süsteemid - L10
Lihtimplikantide leidmine abc e 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 000 100 010 100 011 100 111 100 000 010 c b 001 010 011 010 1 0 1 1 a 0 0 1 0 101 010 x 000 001 1 1 1 0 001 001 0 1 0 0 y 010 001 111 001 1 1 0 1 0 0 1 0 z G H I A B C D E F I207 - Digitaalloogika ja -süsteemid - L10
Implikantkatte leidmine abc e A B D E G 011 100 x x x 011 010 x x abc e A B C D E F G H I 000 100 x x 000 010 x x 000 001 x x x 010 100 x x 001 010 x x x 001 001 x 010 001 x 011 100 x x x 011 010 x x 101 010 x 111 100 x x 111 001 x c b 1 0 1 1 a 0 0 1 0 x 1 1 1 0 0 1 0 0 y 1 1 0 1 0 0 1 0 z abc e 01- 100 A 0-1 010 B -01 010 C 011 110 D -11 100 E 111 101 F 000 111 G 0-0 101 H 00- 011 I 00- 011 I 0-0 101 H -01 010 C 111 101 F 011 110 D I207 - Digitaalloogika ja -süsteemid - L10
Minimeerimine – MVL tulemus abc e o 011 110 1 111 101 1 0-0 101 1 00- 011 1 -01 010 1 o(a,b,c,e)=a0b0c0e0+a0b1c0e0+a0b1c1e0+ +a1b1c1e0+a0b0c0e1+a0b0c1e1+ +a0b1c1e1+a1b0c1e1+a0b0c0e2+ +a0b0c1e2+a0b1c0e2+a1b1c1e2 Lihtimplikandid & liiasuseta 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 I207 - Digitaalloogika ja -süsteemid - L10
Minimeerimine – tulemus c b 1 abc 0 1 e 1 o abc xyz 011 110 1 a 0 0 1 0 011 110 111 101 1 x 111 101 0-0 101 1 0-0 101 1 1 1 0 00- 011 1 00- 011 0 1 0 0 -01 010 1 -01 010 y 1 1 0 1 0 0 1 0 z o(a,b,c,e)=a0b1c1e{0,1}+a1b1c1e{0,2}+ +a0c0e{0,2}+a0b0e{1,2}+b0c1e1 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’ I207 - Digitaalloogika ja -süsteemid - L10
Minimeerimine – Näide #2 (1,1,1) (1,1,1) abc xy abc xy 000 10 (0,0,0) 00- 10 001 11 c b -01 11 010 00 1-1 10 011 00 1 1 0 0 11- 10 100 00 a 0 1 1 1 101 11 x (0,0,0) 110 10 0 1 0 0 111 10 0 1 0 0 y I207 - Digitaalloogika ja -süsteemid - L10
Minimeerimine – Näide #2 signatuur gr. abc e 0 00- 10 1 001 11 -01 10 -01 01 2 101 11 1-1 10 11- 10 gr. abc e 0 000 10 1 001 10 001 01 2 101 10 101 01 110 10 3 111 10 o abc e 1 000 10 abc xy 1 001 10 000 10 1 001 01 001 11 1 101 10 010 00 1 101 01 011 00 1 110 10 100 00 abc e 000 10 x 001 10 x x 001 01 x 101 10 x x 101 01 x 110 10 x 111 10 x x gr. abc e 1 -01 11 1 111 10 101 11 abc xy 110 10 00- 10 111 10 -01 11 11- 10 ülesanne I207 - Digitaalloogika ja -süsteemid - L10
Tulemus – Näide #2 (1,1,1) (1,1,1) abc xy 000 10 (0,0,0) (0,0,0) 001 11 c b 010 00 011 00 c b 1 1 0 0 100 00 a 0 1 1 1 1 1 0 0 101 11 abc xy x x 110 10 0 1 1 1 00- 10 a 0 1 0 0 111 10 -01 11 0 1 0 0 y 11- 10 0 1 0 0 0 1 0 0 y I207 - Digitaalloogika ja -süsteemid - L10
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 I207 - Digitaalloogika ja -süsteemid - L10
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 I207 - Digitaalloogika ja -süsteemid - L10
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 I207 - Digitaalloogika ja -süsteemid - L10
espresso - 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 a a b b c c d d x 00 illegaalne 1-0- = ac’ 1-0- = ac’ 01.11.10.11 01.11.10.11 0 10 “0” 1 01 “1” 0.1.1.1 1-0- = ac’ - 11 määramatus 1.1.0.1 and (or) legaalne? sõnade ‘&’ sõnade ‘|’ ei tohi olla ‘00’ I207 - Digitaalloogika ja -süsteemid - L10
espresso - andmeesitus AND - ühisosa OR - ühend c b 0 0 1 0 a 0 1 1 1 01 01 11 = ab 11 01 01 = bc 01 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 I207 - Digitaalloogika ja -süsteemid - L10
Jääkfunktsioon (kaasfaktor) Jääkfunktsiooni leidmine muutja või selle eitus ühisosa muutuja asendus ebaolulisega kaetuse kontroll c b 0 0 1 0 a 0 1 1 1 f = ab+bc+ac fa = b+c fa’ = bc 01 01 11 = ab 11 01 01 = bc 01 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’bc 01 11 01 = ac 00 11 01 = !! -------------- -------------- 11 01 11 = b 11 01 01 = bc 11 01 01 = bc 11 11 01 = c I207 - Digitaalloogika ja -süsteemid - L10
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 11 01 10 10 11 11 01 10 11 11 11 10 10 fab11 11 11 fab’ 11 00 11 Tautoloogia --> 11 11 01 11 11 01 11 00 01 11 11 10 I207 - Digitaalloogika ja -süsteemid - L10
Sisaldumine c b 0 0 0 1 a 0 1 1 1 • 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 = abc 11 01 10 = bc’ 01 01 10 = abc’ Kas “ab” on kaetud? 11 11 01 = c 11 11 10 = c’ I207 - Digitaalloogika ja -süsteemid - L10
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 c b 0 0 1 0 a 0 1 1 1 c b 1 1 0 1 a 1 0 0 0 01 01 11 = ab 11 01 01 = bc 01 11 01 = ac I207 - Digitaalloogika ja -süsteemid - L10
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 = ab 11 01 01 = bc 01 11 01 = ac fafa’ 11 01 11 11 01 01 11 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 I207 - Digitaalloogika ja -süsteemid - L10
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’aa’·f’a’ 01 10 10 10 10 11 10 11 10 f’ 01 10 10 10 10 11 10 11 10 c b 1 1 0 1 a 1 0 0 0 I207 - Digitaalloogika ja -süsteemid - L10