Pge 1 (Le 9) Multi-Level Min III: Role o Don t Cres Wht you know 2-level minimiztion l ESPRESSO Multi-level minimiztion: Boolen network moel, Algeri moel or toring Retngle overing or extrtion Wht you on t know Don t res in multi-level network re very ierent They rise nturlly s prt o the struture o the network moel They n help gret el in simpliying the network They n e very hr to get, lgorithmilly R. Rutenr 2001, CMU 18-760, Fll 2001 1 Copyright Notie Ro A. Rutenr 2001 All rights reserve. ou my not mke opies o this mteril in ny orm without my express permission. R. Rutenr 2001, CMU 18-760, Fll 2001 2
Pge 2 Where Are We? In logi synthesis--how on t res re now very ierent ests M T W Th F Aug 27 28 29 30 31 1 Sep 3 4 5 6 7 2 10 11 12 13 14 3 17 18 19 20 21 4 24 25 26 27 28 5 Ot 1 2 3 4 5 6 8 9 10 11 12 7 15 16 17 18 19 8 22 23 24 25 26 9 29 30 31 1 2 10 Nov 5 6 7 8 9 11 12 13 14 15 16 12 Thnxgive 19 20 21 22 23 13 26 27 28 29 30 14 De 3 4 5 6 7 15 10 11 12 13 14 16 Introution Avne Boolen lger JAVA Review Forml veriition 2-Level logi synthesis Multi-level logi synthesis Tehnology mpping Plement Routing Stti timing nlysis Eletril timing nlysis Geometri t struts & pps R. Rutenr 2001, CMU 18-760, Fll 2001 3 Reings/Delines/Projets De Miheli Setion 8.4 is out on t res in multilevel moel Delines Toy, Thu Ot 11: Pper 1 Review, Ruell s Dynmi Orering ue Thursy Ot 18: HW3 (2-level, multi-level synthesis) ue Projet #2 As lwys, hek wepge or ugixes, uptes There re some ugs in eqns or Pro #1, ixe shortly The stte igrms re orret s is. We ll o the overview next Tuesy R. Rutenr 2001, CMU 18-760, Fll 2001 4
Pge 3 Don t Cres: 2-level In si igitl esign... We tol you these were just input ptterns tht oul never hppen This llowe you to o more simpliitions, sine you oul 1 or 0 to the Kmp or tht input epening on wht ws esier to simpliy Stnr exmple: BCD inrementer iruit 3 2 1 0 BCD Inrement rry 3 2 1 0 32 10 00 01 11 10 00 1 01 11 10 1 Ptterns 3 2 1 0 = 1010, 1011, 1100, 1101, 1110, 1111 nnot hppen R. Rutenr 2001, CMU 18-760, Fll 2001 5 Don t Cres: Multi-level To sy this ierently In si 2-level esigns someoy tol you wht inputs wouln t hppen......n you just elieve them! Wht s ierent in multi-level? There n still e these sorts o on t res t the primry inputs o the Boolen logi network......ut there n lso e on t res rising rom struture o the network These ltter kin re very useul or simpliying the iniviul verties in the Boolen logi network (ie you ll ESPRESSO whih n hnle 2- level on t res) But, you hve to go in these on t res expliitly R. Rutenr 2001, CMU 18-760, Fll 2001 6
Pge 4 Inorml Tour o DCs in Multilevel Networks Suppose we hve Boolen network... An we re looking t noe in tht network Cn we sy nything out on t res or noe? NO We on t know ny ontext or surrouning prts o network As r s we n tell, ll ptterns o inputs (,,) re possile = + + 00 01 11 10 0 1 R. Rutenr 2001, CMU 18-760, Fll 2001 7 Inorml Multilevel DC Tour OK, suppose we know this out input to Noe is tully Now n we sy something out DCs or noe...? ES PIs = = + + POs R. Rutenr 2001, CMU 18-760, Fll 2001 8
Pge 5 Inorml Multilevel DC Tour Go list ll the input/output ptterns or noe n it our? PIs 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 = = + + POs R. Rutenr 2001, CMU 18-760, Fll 2001 9 Inorml Multilevel DC Tour Impossile ptterns => impossile ptterns? n it our? n it our? PIs 0 0 1 NO 0 1 0 0 1 1 NO 1 0 0 1 0 1 NO 1 1 0 NO 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 = = + + POs R. Rutenr 2001, CMU 18-760, Fll 2001 10
Pge 6 Inorml Multilevel DC Tour Impossile ptterns give us DCs or noe Chnge how we woul wnt to simpliy noe (it s Kmp) Impossile ptterns = 00 01 11 10 0 1 1 PIs Conlusion = = + + POs R. Rutenr 2001, CMU 18-760, Fll 2001 11 Inorml Multilevel DC Tour OK, wht i we now know = + s well Cn o this gin t...re there impossile ptterns o? = n it our? PIs = = = + 0 0 1 NO 0 1 0 NO 0 1 1 1 0 0 NO 1 0 1 1 1 0 NO = + + POs R. Rutenr 2001, CMU 18-760, Fll 2001 12
Pge 7 Inorml Multilevel DC Tour OK, n we (gin) get impossile ptterns on? n it our? n it our? n it our? PIs 0 0 1 NO 0 1 0 0 1 1 NO 1 0 0 1 0 1 NO 1 1 0 NO 0 0 1 NO 0 1 0 NO 0 1 1 1 0 0 NO 1 0 1 1 1 0 NO 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 = + = = + + R. Rutenr 2001, CMU 18-760, Fll 2001 13 Inorml Multilevel DC Tour OK, o these hnge how we simpliy insie? PIs 0 0 1 0 1 0 NO 0 1 1 1 0 0 NO 1 0 1 NO 1 1 0 NO n it our? 00 01 11 10 0 1 1 1 Conlusion 1 1 = + = = + + R. Rutenr 2001, CMU 18-760, Fll 2001 14
Inorml Multilevel DC Tour OK, now suppose is not primry output, Z is... Question: when oes hnge in the output o noe tully propgte through to hnge the primry output Z, ie, the output o the overll Boolen logi network Or, reverse question: when oes it not mtter wht is...? Let s go look t ptterns o t noe Z... PIs = + = = + + Z = PO Z R. Rutenr 2001, CMU 18-760, Fll 2001 15 Inorml Multilevel DC Tour PIs 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 Z oes it hnge? Ptterns t input to noe itsel tht re DCs just euse those ptterns mke Z output insensitive to hnges in = = + = = + + Z = PO Z R. Rutenr 2001, CMU 18-760, Fll 2001 16 Pge 8
Pge 9 Inorml Multilevel DC Tour OK, n we use this =0 DC pttern to simpliy more? Ptterns t input to noe itsel tht re DCs just euse those ptterns mke Z output insensitive to hnges in => 00 01 11 10 0 Conlusion PIs = + = = + + Z = PO Z R. Rutenr 2001, CMU 18-760, Fll 2001 17 Inorml Multilevel DC Tour Hey, look wht hppene to noe... Due to ontext o surrouning noes, it isppere! PIs = Z = = = + PO Z = Z = PO Z = + gone! R. Rutenr 2001, CMU 18-760, Fll 2001 18
Pge 10 Inorml Multilevel DC Tour OK, suppose inste tht PO Z = + + (OR not AND) Wht hnges? Answer: no ptterns t inputs tht mke Z insensitive to hnges in There re still impossile ptterns o ( ) ut you nnot speiy ny o them extly only knowing the ( ) inputs to oesn t isspper, it still simpliies to = + Network ontext mtters lot here! PIs = + = = + + Z = + + PO Z R. Rutenr 2001, CMU 18-760, Fll 2001 19 Forml View o These DCs Overll, there re 3 types o orml DCs... Stisiility on t res Ptterns tht n t our t the inputs to vertex...... euse o internl struture o multi-level logi Controllility on t res Glol, externl: ptterns tht n t hppen t primry inputs to our overll Boolen logi network Lol, internl: ptterns tht n t hppen t inputs to vertex Oservility on t res Ptterns t input o vertex tht prevent tht outputs o the network rom eing sensitive to hnges in output o tht vertex Pttern tht msk outputs Let s see i we n lriy where these eh ome rom... R. Rutenr 2001, CMU 18-760, Fll 2001 20
Pge 11 Don t Cre Types: Stisiility Stisiility Don t Cres Hppen euse o struture o Boolen Logi Network We on t tret the network s one ig logi igrm, ut rther, s set o seprte, onnete logi loks (verties) SDCs speiy the onstrints on these internl onnetions Exmple Strt with just one vertex in network = + + + R. Rutenr 2001, CMU 18-760, Fll 2001 21 SDCs Now, ssume we extrt some suexpressions Extrt =+, = This hnges struture o network There re now new noes, eeing noe tht retes = + = + + = R. Rutenr 2001, CMU 18-760, Fll 2001 22
Pge 12 SDCs Notie In the restruture network, hs ierent inputs, n so possily now ierent est simpliition Wht out on t res? = + = =+ + 0 1 1 1 0 1 0 1 0 1 0 0 never see = 001, 010, 100 110 never see = 001, 011, 101 110 R. Rutenr 2001, CMU 18-760, Fll 2001 23 SDCs These ptterns re the stisiility DCs Esiest to think o them s seprte set o impossile ptterns elonging to eh internl wire in Boolen Logi Network They re purely struturl in origin: outputs n t tke vlues tht re not equl to (ie, on t stisy) wht the tthe vertex retes Cnnot hve!= + = + 0 1 1 1 0 1 Cnnot hve!= = 0 1 0 1 0 0 never see = 001, 010, 100 110 never see = 001, 011, 101 110 R. Rutenr 2001, CMU 18-760, Fll 2001 24
Pge 13 Asie: How Will We Atully Represent DCs? Some onusing nottion n terminology ou re proly use to seeing on t res just liste in the truth tle But, the wy we will usully represent these is either: As set o ptterns o 0s 1s on noe s inputs tht nnot hppen As untion o these inputs tht mkes 1 just or those ptterns tht nnot hppen; DC G == 1 just or impossile ptterns or G p q r G -------------- 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 DC ptterns = {001, 100, 101, 111} p q r DC G --------------- 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 R. Rutenr 2001, CMU 18-760, Fll 2001 25 Asie: Representing Don t Cres Representtion Will even requently see the DC untion tully written in terms o n SOP over, Boolen expression G ---------- 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 DC set = {001, 100, 101, 111} DC G --------------- 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 DC G = + + + R. Rutenr 2001, CMU 18-760, Fll 2001 26
Pge 14 Bk to SDCs SDC untion or wire is just over o illegl ptterns = + possile = possile SDC 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 impossile 0 1 1 1 0 1 SDC 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 impossile 0 1 0 1 0 0 SDC = + + + SDC = + + + R. Rutenr 2001, CMU 18-760, Fll 2001 27 SDCs: How Do We Atully Use Them? Wht impt on simpliition o...? Look t SDCs or eh input wire x n y SDC = + + + => impossile ptterns o SDC = + + + => impossile ptterns o?? = + + => ut I wnt to know impossile ptterns! Oops! Prolem SDCs in terms o n But, is now only untion o n How to resolve? R. Rutenr 2001, CMU 18-760, Fll 2001 28
Pge 15 SDCs Nee to quntiy out the in SDCs, ut how? Just try eh wy n see wht hppens, or insight Rell: given (x,y,z,w) ( x )(y,z,w) = x + x (existentil quntiition) In English ( x )(y,z,w) = x x (universl quntiition) Existentil quntiition: removes vr x, resulting untion is true or (y,z,w) whenever there is some pttern, either (x=1,y,z,w) OR (x=0,y,z,w) tht me originl == 1 Universl quntiition: removes vr x, resulting untion is true or (y,z,w) whenever oth ptterns (x=1,y,z,w) AND (x=0,y,z,w) me originl untion ==1 R. Rutenr 2001, CMU 18-760, Fll 2001 29 SDCs Try quntiying wrt, oth wys... = + SDC = + + + = + = = + +,, = SDC = + + + ( SDC ) = ( SDC ) = ( SDC )(,) = ( SDC ) + ( SDC ) = ( SDC ) = ( SDC ) = ( SDC )(,) = ( SDC ) + ( SDC ) = ( SDC )(,) = ( SDC ) ( SDC ) = ( SDC )(,) = ( SDC ) ( SDC ) = R. Rutenr 2001, CMU 18-760, Fll 2001 30
SDCs Whih is right? = + = = + +,, = + = never see = 001, 010, 100 110 never see = 001, 011, 101 110 ( SDC )(,) = + ( SDC )(,) = + ( SDC )(,) = ( SDC )(,) = R. Rutenr 2001, CMU 18-760, Fll 2001 31 SDCs Asie: why universl quntiition oes the trik Beuse you wnt to know whih ptterns, inepenent o the vlue o the vr(s) you get ri o, re still impossile The inepenent o vlue o vr prt is the key, it s wht universl quntiition oes ( SDC )(,) = + oesn t work... =0 =0 x = + x=0 LEGAL =0 =1 x = + x=0 IMPOSSIBLE ( SDC )(,) = is right =1 =0 x = + x=0 IMPOSSIBLE =1 =1 x = + x=0 IMPOSSIBLE R. Rutenr 2001, CMU 18-760, Fll 2001 32 Pge 16
Pge 17 SDCs So, how o you tully ompute SDCs? Esy, o it or eh output wire rom eh Boolen noe inputs expression or ou wnt n expression tht s ==1 when!= (expression or ) But this is just [ (expression or ) ] Rememer (expression or ) oesn t hve in it!! Try it on something simple to onvine yoursel lim SDC = ( + ) = + R. Rutenr 2001, CMU 18-760, Fll 2001 33 SDCs Simpliy... SDC = ( + ) = SDC 0000 0 0001 1 0010 1 0011 0 0100 0 0101 1 0110 1 0111 0 1000 0 1001 1 1010 1 1011 0 1100 1 1101 0 1110 1 1111 0 R. Rutenr 2001, CMU 18-760, Fll 2001 34
Pge 18 SDCs How to el with SDCs on mny wires into vertex? In other wors, how o I tully use SDC SDC to simpliy? Answer: just OR the SDCs or eh input wire to vertex, then quntiy wy vrs tht re not inputs to = + = =+ D + vrs re,,,, SDC = ( vrs not input to )( Σ SDCi ) inputs i =ptterns tht nnot our on inputs R. Rutenr 2001, CMU 18-760, Fll 2001 35 SDCs Try it n see Note we n ignore SDCs on,, inputs to sine they re primry inputs (ie, (expression or ) = = 0, et. = + = =+ D + SDC = ( )( [ (+)] + [ ] ) = ( [ (+)] + [ ] ) =1 ( [ (+)] + [ ] ) =0 R. Rutenr 2001, CMU 18-760, Fll 2001 36
SDCs Twist: ut wht i there re tully DCs or network inputs, impossile externl ptterns or? Exmple: suppose =1 =1 =1 n never hppen How to hnle or omputing SDCs or? Answer: just OR in over or these DCs in SDC expression DC =1 =1 =1 = + = =+ SDC = ( )( [ (+)] + [ ] + ) = =[ stu we got eore without these externl DCs ] + ( x + x ) R. Rutenr 2001, CMU 18-760, Fll 2001 37 SDCs Notie this works... Just look t the new terms we e to SDC: ( + + ) Pik s exmple ==> =0 =1 =1 =1 is impossile =1 =0 DC =1 =1 =1 = + = =+ D + =1 =1 Corret! This n only hppen or input = 0111 whih is impossile R. Rutenr 2001, CMU 18-760, Fll 2001 38 Pge 19
Pge 20 Controllility Don t Cres Deines those input ptterns tht nnot hppen or speii verties, or or entire network But, we ve lrey seen these! Externl glol CDCs: ome rom outsie or entire network, like =1 =1 =1 is impossile, in our exmple Internl lol CDCs: just ptterns tht nnot pper t ny vertex = ( vrs not inputs )( Σ (lol SDCs) + ext. glol CDC) SDCs versus CDCs...? vertex inputs SDCs: think o s elonging to eh internl wire in network CDCs: think o s elonging to eh internl vertex in network R. Rutenr 2001, CMU 18-760, Fll 2001 39 Oservility Don t Cres ODCs elong to eh output o vertex in network Ptterns tht will mke this output not oservle t network output Not oservle mens hnge 0<->1 on this vertex output oesn t not hnge AN network output, or this pttern New exmple Note--new exmple now... x y T = xy + x y T F = xy +Tz + T y F z Ptterns tht mke F insensitive to T... Look t ODC T or output wire o vertex T R. Rutenr 2001, CMU 18-760, Fll 2001 40
Pge 21 ODCs In English... ODC or T re ptterns o inputs to the vertex or T (ptterns o x,y) suh tht we n ompute F without ring out wht T is Sine F= xy + Tz + T y, oserve I x=1 y=1 then F = 1 + Tz + T y =1 = inepenent o T Note there re ptterns o other vrs tht o this too: I z=1 y=1 then F = xy +T 0 + T 0 = xy = inepenent o T I z=0 y=0 then F = xy + T 1 + T 1 = xy + T + T = 1 = inep. o T So, our guess is tht ODC T =xy This is the only pttern tht epens just on vrs input to T For this pttern, network output insensitive to hnges in T How to ompute, mehnilly? R. Rutenr 2001, CMU 18-760, Fll 2001 41 ODCs When is network output F insensitive to internl vr? = stu F epens on network output F Be preise Insensitive mens hnges => ut F never hnges More preisely: i we speiy F s untion o, then F = F So, wht ptterns o the other inputs to F use F(... =0...)=F(...=1...)? When these ptterns re pplie, hnging oes not ever mtter to output t F But we ve lrey seen something lose to this... R. Rutenr 2001, CMU 18-760, Fll 2001 42
Pge 22 ODCs Boolen ierene, F/ Deine s F/ = F F Rell we oserve tht ptterns tht mke F/ = 1 orrespon to ptterns where hnge in uses some hnge in F x y Stte ierently F/ x = y F/ x = y Boolen ierene F/ is untion tht is 1 or those ptterns tht mke oservle x y = stu F epens on network output F R. Rutenr 2001, CMU 18-760, Fll 2001 43 ODCs But we wnt ptterns tht mke vertex output unoservle, sine we wnt on t re ptterns So, i F/ is ptterns tht mke oservle...then ( F/ ) is ptterns tht mke unoservle Bk to our exmple: wnt to look t ( F/ T) here x y T F = xy +Tz + T y F z F / T = F T F T = R. Rutenr 2001, CMU 18-760, Fll 2001 44
Pge 23 ODCs So ODC T = xy + xz + y z + x yz But, sme prolem: n t use this to simpliy vertex or T sine T is only untion o x n y Wht to o? Sme s eore: universl quntiition over vrs not input to T In this se, wnt ( z)(xy + xz + y z +x yz) = xy whih is orret ODC T = xy => x=1 y=1 is on t re sine it mkes T unoservle t network output F x y T = xy + x y T F = xy +Tz + T y F z R. Rutenr 2001, CMU 18-760, Fll 2001 45 ODCs More generl: wht i mny network outputs? Only ptterns tht re unoservle t ALL outputs n e ODCs F1 F2 F1 F2 F3 F3 ODC = ( vrs not input to )[ Π Fi / ] outputs Fi AND ll erivtives together, or eh output = ptterns tht mke x unoservle t ALL outputs R. Rutenr 2001, CMU 18-760, Fll 2001 46
Pge 24 Don t Cres, In Generl Why is getting these things so very hr? Beuse rel networks re ig, n the vertex you wnt to simpliy my e very r rom the primry inputs, n primry outputs Inputs to your vertex re untion o lot o stu Network outputs re untions o your vertex n lots o other stu Representing ll this stu n e explosively lrge, even with BDDs R. Rutenr 2001, CMU 18-760, Fll 2001 47 Getting Network DCs How o people o it In generl, they on t Usully suie with getting the lol SDCs, whih just requires looking t outputs o nteeent verties n omputing the SDC ptterns, whih is esy (no ig serh) There re lso inrementl, vertex-y-vertex lgorithms tht wlk the network to ompute ull CDC set or, n ull ODC set or, ut these n e very expensive in spe Also, some triks lle FILTERS ou wnt to in ptterns you n use s on t res to simpliy vertex Inste o ining ll suh DC ptterns, n restrit serh to voi ptterns tht nnot possily e useul to simpliy Suh lgorithms lle ilters -- they get ri o DCs you on t nee See De Mihelli or etils out ll this stu For us, knowing the strightorwr rute ore ormul is OK R. Rutenr 2001, CMU 18-760, Fll 2001 48
Exmple Now know enough to o this Simpliy noe insie this network Assume pttern =0 =0 never ours t network input = + = + Z Q = Q Z = How? Compute SDC or, inluing externl glol DC= Compute ODC or y oing ( Q/ ) ou get to use nyple SDC +ODC ==1 s on t re or R. Rutenr 2001, CMU 18-760, Fll 2001 49 Summry New kins o on t res in multi-level networks Byprouts o the network moel It s not ll one ig untion, it s unh o little untions (verties) onnete y wires Stisiility DCs: struturl in origin, n t hve output o vertex not equl to the expression or tht vertex Output DCs: some ptterns mke vertex output unoservle t network outputs SDC + ODC: or ny given vertex, n use this expression s ples or on t res to simpliy the vertex untion In prtie Very hr to get these, esp ODCs (see the ook) Usully just use the lol SDC rom nteeent verties Also, there re lgorithms ( ilters ) tht n just go in useul on t res or simpliition R. Rutenr 2001, CMU 18-760, Fll 2001 50 Pge 25