Click here to load reader

Kombinatoorsete süsteemide disain

  • Upload
    silvio

  • View
    92

  • Download
    1

Embed Size (px)

DESCRIPTION

Kombinatoorsete süsteemide disain. Mitmetasemelised loogikafunktsioonid L6. Mitmetasemeliste loogikafunktsioonide esitusviisid, teisendused, optimeerimine L7. Funktsioonide algebraline jagamine, testitavuse alused, viite analüüs. Algebraline jagamine. Kaks algebralist avaldist - PowerPoint PPT Presentation

Citation preview

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeKombinatoorsete ssteemide disain Mitmetasemelised loogikafunktsioonid L10. Mitmetasemeliste loogikafunktsioonide esitusviisid, teisendused, optimeerimine L11. Funktsioonide algebraline jagamine, testitavuse alused, viite anals

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeAlgebraline jagamine Kaks algebralist avaldist jagatav (dividend), jagaja (divisor), jagatis (quotient), jk (remainder) fjagatis = fjagatav / fjagaja, kui fjagatav = fjagaja fjagatis + fjk fjagaja fjagatis ning fjagaja ja fjagatis muutujate hulgad ei kattu (sup(fjagaja)sup(fjagatis)=)

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeAlgebraline jagamine Algebraline jagamine fjagatav = ac + ad + bc + bd + e & fjagaja = a + b fjagatis = c + d & fjk = e (a+b)(c+d)+e=fjagatav & {a,b}{c,d}=

    Mitte-algebraline jagamine fi = a + bc & fj = a + b (a+b)(a+c)=fi kuid {a,b}{a,c}

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeJagamisalgoritm A = { CjA, j=1,2,...,l} - jagatava kuupide hulk B = { CiB, i=1,2,...,n} - jagaja kuupide hulk Jagatis Q ja jk R on kuupide summad

    ALGEBRAIC_DIVISION (A,B) {for (i=1 to n) {D={CjA such that CjACiB};if (D==) return(,A);Di=D with var. in sup(CiB) dropped;if (i==1) Q=Di; else Q=QDi;}R=A-QB;return(Q,R);}

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeJagamine - nide #1 fjagatav = ac + ad + bc + bd + e & fjagaja = a + b A = {ac, ad, bc, bd, e} & B = {a, b} i = 1 C1B=a, D={ac, ad} & D1={c,d}; Q = {c,d} i = 2 C2B=b, D={bc,bd} & D2={c,d} Q = {c,d}{c,d} = {c,d} kuup vastab elemendile! Tulemus Q = {c,d} & R = {e} fjagatis=c+d & fjk=e

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeJagamine - nide #2fjagatav = axc + axd + bc + bxd + e & fjagaja = ax + b A = {axc, axd, bc, bxd, e} & B = {ax, b} i = 1 C1B=ax, D={axc, axd} & D1={c,d}; Q = {c,d} i = 2 C2B=b, D={bc,bxd} & D2={c,xd} Q = {c,d}{c,xd} = {c} kuup vastab elemendile! Tulemus Q = {c} & R = {axd,bxd,e} fjagatis=c & fjk=axd+bxd+e

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeMis siis ikkagi toimub? A = ac + ad + bc + bd + e & B = a + b (1) a (c+d) + bc + bd + e (2) a (c+d) + b (c+d) + e (c+d) (c+d) = (c+d) (R) [ ac+ad+bc+bd+e ] - [ (a+b) (c+d) ] = = [ ac+ad+bc+bd+e ] - [ ac+ad+bc+bd ] = [ e ] A = axc + axd + bc + bxd + e & B = ax + b (1) ax (c+d) + bc + bxd + e (2) ax (c+d) + b (c+xd) + e (c+d) (c+xd) = (c) (R) [ axc+axd+bc+bxd+e ] - [ (ax+b) (c) ] = = [ axc+axd+bc+bxd+e ] - [ axc+bc ] = [ axd+bxd+e ]

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeJagatise eksisteerimine? Antud kaks algebralist avaldist fi ja fj fi / fj on thi, kui ks jrgnevaist tingimustest on tidetud: fj sisaldab muutujat, mida pole fi-s; fj sisaldab kuupi, mille tugimuutujad ei sisaldu heski fi kuubi tugimuutujate hulgas ($ sup(Cj)sup(Ci), "Cifi); fj sisaldab rohkem liikmeid kui fi; suvalist muutujat on fj-s rohkem kui fi-s. Kasutusel kiireks kontrolliks Ei garanteeri jagatise leidumist ac + be / a + b

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeJagatise eksisteerimine? fj sisaldab muutujat, mida pole fi-s; ab + cd / a + ea(b)+e(?)+cd fj sisaldab kuupi, mille tugimuutujad ei sisaldu heski fi kuubi tugimuutujate hulgas; abc + def / ab + adab(c)+ad(?)+def fj sisaldab rohkem liikmeid kui fi; ab + cd / a + b + ca(b)+b(?)+c(d) suvalist muutujat on fj-s rohkem kui fi-s abc+ade+bcd / ab+ad+acab(c)+ad(e)+ac(?) Osaline kattumine? ab+ac+bc / a + b = ? ab+ac+bc = ab+(a+b)c

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeJagamise kasutamine Asendamine Vaadeldakse avaldiste paare Jagamine suvalises jrjekorras t=ka+kb+e; q=a+b; t=kq+e; Eraldamine histe alam-avaldiste otsimine p=ce+de; t=ac+ad+bc+bd+e; k=c+d;p=ke;t=ka+kb+e;

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter Ellerveehiste alam-avaldiste otsimine ksikute kuupide eraldamine - monoom Mitme kuubi eraldamine - tuum (kernel) Sobivate jagajate leidmine Kuubivaba (cube-free) avaldis pole vimalik faktoriseerida kuupi kasutades Avaldise tuum avaldise kuubivaba jagatis, kui jagaja on kuup (kaas-tuum (co-kernel)) Avaldise tuumade hulk K(f)

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeTuumad - nide fx = ace + bce + de + g fx / a --> ce --> ei ole kuubivaba fx / b --> ce --> ei ole kuubivaba fx / c --> ae + be --> ei ole kuubivaba fx / ce --> a + b --> kuubivaba --> tuum fx / d --> e --> ei ole kuubivaba fx / e --> ac+bc+d --> kuubivaba --> tuum fx / g --> 1 --> ei ole kuubivaba fx / 1 --> ace+bce+de+g --> kuubivaba --> tuum K(fx) = { (a+b), (ac+bc+d), (ace+bce+de+g) } jagada vib niteks ka ac+bc-ga (osa ac+bc+d-st)

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeDekompositsioon Tuumadel phinev dekompositsioon Avaldist jagatakse rekursiivselt

    fx = ace + bce + de + g K(fx) = { (a+b), (ac+bc+d), (ace+bce+de+g) } ft = ac + bc + d; fx = te + g; K(ft) = { (a+b), (ac+bc+d) } fs = a + b; ft = sc + d; fx = te + g;

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeTestitavuse alusedAga mis saab siis, kui valmis skeem ei tta? mudeli tasemel valideerimine ja verifitseerimine valmis skeem testimineRikke mudel - mingi ahela lhis 0 vi 1-ga ( stuck-at-0 / stuck-at-1 )Ahela w kontroll lhisele 0-ga sisendkombinatsiooniga seatakse vastav ahel 1-ks vrreldakse vljundeid vigase skeemi vljund on erinev soovitustAhela w kontroll lhisele 1-ga sisuliselt sama, kuid jlgitav ahel seatakse 0-ksAhel w peab olema juhitav ja jlgitav testitavus sltub skeemi struktuurist

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeNideSkeem: w=ab; x=w+c; y=wc;Lhis 0-ga w=0; x=c; y=0;Lhis 1-ga w=1; x=1; y=c;Kas w on jlgitav? Millised vljundid sltuvad w-st?Kas w on juhitav? Kas leidub sisendkombinatsioon, mis lubab w-le seada soovitud vrtuse?

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeTestitavuse alusedVt. ka J.F. Wakerly Digital Design: Principles and Practices - 11.2Sntees testitavust silmas pidades vimalikult suur osa sisemisi ahelaid peaksid olema jlgitavad ja juhitavad liiasuste eemaldamine mitmetasemelisel loogikafunktsioonide minimeerimiselAhel w peab olema juhitav ja jlgitav Peab leiduma hisosa juhitavust ja jlgitavust mravate sisend-kombinatsioonide vahel, vastasel korral pole mni riketest mratav Funktsionaalne test ainult t igsuse kontroll, rike ei pruugi olla mratav Diagnostika konkreetse rikke (vi isegi mitme rikke) tpne mramine

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeJlgitavus & juhitavusJlgitavus - Boolei diferentsiaal - f/xi = fxi fxi Kas vljund x (x=w+c) sltub w-st? Kas vljund y (y=wc) sltub w-st? Kofaktorid -- xw=1; xw=c; yw=c; yw=0; x/w = xw xw = 1 c = c (sltub siis, kui c==0) y/w = yw yw = c 0 = c (sltub siis, kui c==1) Nii x kui ka y sltuvad w-st, kuid erinevatel c vrtustel w on jlgitav vljunditel x ja y (teatud mndustega)Juhitavus - soovitud vrtuse seadmine w-l w = a b lhis 0-ga juhtimiseks w==1 a==1 ja b==1 lhis 1-ga juhtimiseks w==0 a==0 vi b==0

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeHiritus (perturbation)Konsensus (Cxw=xwxw) - milline osa ei sltu w-st Cxw= xw xw = 1 c = c ; Cyw= yw yw = c 0 = 0 ;

    Lhis 0-ga - dw = w(x/w) = x xw x -- dxw = w(x/w) = x xw = wc y -- dyw = w(y/w) = y yw = wc

    Lhis 1-ga - dw = w(x/w) = x xw x -- dxw = w(x/w) = x xw = wc y -- dyw = w(y/w) = y yw = wc

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeNide

    Lhis 0-ga dxw = wc & dyw = wc sisend - abc == 110 vljund x - 0 (peab olema 1) vljund y - 0 (peab olema 0) sisend - abc == 111 vljund x - 1 (peab olema 1) vljund y - 0 (peab olema 1)

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeNide

    Lhis 1-ga dxw = wc & dyw = wc sisend - abc == 000 vljund x - 1 (peab olema 0) vljund y - 0 (peab olema 0) sisend - abc == 001 vljund x - 1 (peab olema 1) vljund y - 1 (peab olema 0)

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeMudeli kontroll Valideerimine funktsionaalsuse e. kitumise kontroll simuleerimine mudeli vljundit vrreldakse soovitugaspetsifikatsioon mudel loogikavrrandid (DNK) skeem loogikallidest Verifitseerimine erinevate kirjelduste formaalne vrdlus tevrtustabel loogikavrrandid skeem kirjelduse loogilisuse kontroll koodikaetus (code coverage)tielikkus, vastuolude puudumine, kasutatavus,

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeKoodikaetus// Nideif ( t1 ) { do_A; }else { do_B; }if ( t2 ) { if ( t3 ) do_C; else do_D;} else { if ( t3 ) { if (t1) do_E; else do_F; } else do_G;}Esialgne idee (lesanne)sltuvalt sisend-tingimustest tita tegevuste jadad [do_A,do_C], [do_B,do_C] jne.Kas kik variandid on vimalikud?Kuidas seda formaalselt kontrollida?Koodikaetus tingimuslike harude loetlemine ja anals ning koodi optimeerimine

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeKoodikaetus// Nideif ( t1 ) { do_A; }else { do_B; }if ( t2 ) { if ( t3 ) do_C; else do_D;} else { if ( t3 ) { if (t1) do_E; else do_F; } else do_G;}Jadad{ do_A; do_C; } { do_B; do_C; }{ do_A; do_D; } { do_B; do_D; }{ do_A; do_E; } { do_B; do_E; }{ do_A; do_F; } { do_B; do_F; }{ do_A; do_G; } { do_B; do_G; }Jadad & tingimused{do_A;do_C;} > t1&(t2&t3){do_A;do_D;} > t1&(t2&!t3){do_A;do_E;} > t1&(!t2&(t3&t1)){do_A;do_F;} > t1&(!t2&(t3&!t1)){do_A;do_G;} > t1&(!t2&!t3){do_B;do_C;} > !t1&(t2&t3){do_B;do_D;} > !t1&(t2&!t3){do_B;do_E;} > !t1&(!t2&(t3&t1)){do_B;do_F;} > !t1&(!t2&(t3&!t1)){do_B;do_G;} > !t1&(!t2&!t3)Minimeeri!t1&t2&t3t1&t2&!t3t1&!t2&t3 0 ?!?!t1&!t2&!t3!t1&t2&t3!t1&t2&!t3 0 ?!?!!t1&!t2&t3!t1&!t2&!t3Mis juhtus?ks kahest lesanne on vigane vi liiane

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeViite arvutamine / ennustamineSnteesi tulemuse kontroll viide on nutavast viksem sisend/vljund signaalide ajastus on korrektneMinimeerimine vhima pindala puhul peab viide jma etteantud piiridesse viite minimeerimisel peab pindala jma etteantud piiridesseViite mudel sltub loogikallide (alamavaldiste) viite mudelitestLoogikaelemendi (alamavaldise) viite mudel virtuaalsed loogikallid -- loogika-avaldised lihtsaim mudel -- hikviide slme kohta tpsustatud mudelid -- sltuvad koormatusest (fanout) ja/vi avaldise keerukusest

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeViite arvutamineSisenditest vljundite suunas arvutamine andmete valmisoleku-ajad (data-ready time) - ti ti = di + max j|(j,i)E ( tj )

    sisendid vljundid ta=tb=te=0; tc=5; td=1; t2 = max(ta,tb)+d2 = max(0,0) + 2 = 2 t3 = max(td,te)+d3 = max(1,0) + 3 = 4 t5 = max(tb,t3)+d5 = max(0,4) + 5 = 9 t4 = max(t2,tc,t5)+d4 = max(2,5,9) + 4 = 13 tf = max(t4)+df = max(13) + 0 = 13Suurim viide - 13

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeViite arvutamineVljunditest sisendite suunas arvutamine nutavad andmete valmisoleku-ajad (required data-ready time) - ti ti = min j|(i,j) E ( tj - dj )vljundid sisendid ta=tb=te=0; tc=5; td=1; tf=15; t4 = min(tf-df) = min(15-0) = 15 t5, t2 = min(t4-d4) = min(15-4) = 11 t3 = min(t5-d5) = min(11-5) = 6 ta = min(t2-d2) = min(11-2) = 9 tb = min(t2-d2,t5-d5) = min(11-2,11-5) = 6 tc = min(t4-d4) = min(15-4) = 11 td, te = min(t3-d3) = min(6-3) = 3

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeViite arvutamineSobivus (slack) -- si = ti - ti sa = ta - ta = 9 - 0 = 9 sb = tb - tb = 6 - 0 = 6 sc = tc - tc = 11 - 5 = 6 sd = td - td = 3 - 1 = 2 vikseim sobivus suurim viide 15-2=13 se = te - te = 3 - 0 = 3Topoloogiline kriitiline tee (topological critical path) tee maksimaalse viitega tee minimaalse sobivusega

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeLoogikafunktsioonide snteesLhtelesanne implikantide loetelu tevrtustabel, loogika-avaldised (nt. DNK), jne.Minimeerimine implikantide arvu vhendamine tpselt (nt. Quine-McCluskey meetod) vi heuristiliselt (nt. Karnaugh kaart)

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeLoogikafunktsioonide sntees

    Skeemi sntees loogikatehete asendamine JA- ja VI- elementidegax(a,b,c)=abc+abc+acy(a,b,c)=abc+ab+bcz(a,b,c)=abc+ac+ab

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeLoogikafunktsioonide snteesOptimeerimine loogika-elementide teisendamine suuruse vi viite vhendamise eesmrgil

    Anals viite anals testitavuse anals

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeInverteeritud vljundid?Osa vljundeid inverteeritud?espresso tulemus vtmega -Dopoall 000 - c=6(0) in=13 out=8 tot=21 001 - c=5(0) in=12 out=8 tot=20 010 - c=5(0) in=11 out=8 tot=19 011 - c=6(0) in=13 out=8 tot=21 100 - c=6(0) in=14 out=9 tot=23 101 - c=6(0) in=13 out=8 tot=21 110 - c=6(0) in=14 out=8 tot=22 111 - c=5(0) in=12 out=9 tot=21Kuidas interpreteerida?c implikantide arvin JA-elementide sisendite arvout VI-elementide sisendite arvtot sisendite koguarvx(a,b,c)=abc+abc+acy(a,b,c)=abc+ab+bcz(a,b,c)=abc+ac+ab.phase 111.phase 010x(a,b,c)=(ac+bc)y(a,b,c)= abc+ab+bcz(a,b,c)=(abc+ab+ac)

    I207 - Digitaalloogika ja -ssteemid - L11

  • *I207 - Digitaalloogika ja -ssteemid - L11 Peeter EllerveeInverteeritud vljundid?11 l.e. / 56 tr.x(a,b,c)=abc+abc+acy(a,b,c)=abc+ab+bcz(a,b,c)=abc+ac+abx(a,b,c)=(ac+bc)y(a,b,c)= abc+ab+bcz(a,b,c)=(abc+ab+ac)

    I207 - Digitaalloogika ja -ssteemid - L11