SEE 6861 of igital Sstems Handout: Lecture #5 2/18/16 Prof. Steven M. Nowick nowick@cs.columbia.edu epartment of omputer Science (and Elect. Eng.) olumbia Universit New York, NY, US ESPRESSO: dvanced Steps (i) Essentials #2 (ii) MKE-SPRSE 1
ESPRESSO: Essentials #2 Step generating all essentials when not given all s Eample: given an cover F of a oolean function f ( cover = cover using onl implicants, i.e. full-epanded cubes) Q1. oes the cover include all essentials? w! #4 2
Eample: given an cover F of a oolean function f Q1. oes the cover include all essentials? w! 1. YES! Ever cover F of a function f includes all its essentials #5 Eample: given an cover F of a oolean function f w! #6 3
Eample: given an cover F of a oolean function f w! Note: cover F does not necessaril include all s! missing! #7 Eample: given an cover F of a oolean function f w! essentials #8 4
Eample: given an cover F of a oolean function f w! not essentials #9 Eample: given an cover F of a oolean function f w! how to identif all essentials when cover F does not include all s? not essentials # 5
Eample: given an cover F of a oolean function f w! SE NLYSIS: 3 tpes of minterms in cubes # Eample: given an cover F of a oolean function f w! SE NLYSIS: 3 tpes of minterms in cubes Each ON-set minterm is: (i) covered b 2 or more cubes #12 6
Eample: given an cover F of a oolean function f w! SE NLYSIS: 3 tpes of minterms in cubes Each ON-set minterm is: (i) covered b 2 or more cubes (ii) covered b onl 1 cube #13 Eample: given an cover F of a oolean function f w! SE NLYSIS: 3 tpes of minterms in cubes Each ON-set minterm is: (i) covered b 2 or more cubes (ii) covered b onl 1 cube 2 sub-cases: #14 7
Eample: given an cover F of a oolean function f w! SE NLYSIS: 3 tpes of minterms in cubes Each ON-set minterm is: (i) covered b 2 or more cubes (ii) covered b onl 1 cube 2 sub-cases: (a) ON-set minterm isolated : no neighboring cubes (onl OFF-set) #15 Eample: given an cover F of a oolean function f w! SE NLYSIS: 3 tpes of minterms in cubes Each ON-set minterm is: (i) covered b 2 or more cubes (ii) covered b onl 1 cube 2 sub-cases: (b) ON-set minterm not isolated : has neighboring adjacent cube(s) #16 8
Eample: given an cover F of a oolean function f w! Test for ase #2(b): not in isolated regions = has neighboring cubes Grow consensus cubes: between each adjacent cube pair #17 Eample: given an cover F of a oolean function f w! Test for ase ii(b): not in isolated regions = Has ube Neighbors Grow consensus cubes: between each adjacent cube pair [ adjacent = distance-1] X = ONSENSUS (cube, cube ) #18 9
Eample: given an cover F of a oolean function f w! Test for ase #2(b): not in isolated regions = Has ube Neighbors X = ONSENSUS (cube, cube ) Intuition: eperiment to grow missing implicants - onsensus cube = seed which spans gap between adjacent cube pair (non-intersecting) - Idea: used to LOLLY generate the core of missing s in cover (consensus often is non-) #19 Eample: given an cover F of a oolean function f w! 2. If a cube w in cover F is not entirel covered b the union of: (i) the set of other cubes in cover, and (ii) the set of consensus cubes (i.e seeds of missing s) then it is essential! X = ONSENSUS (cube, cube ) #20
Eample: given an cover F of a oolean function f w! 2. If a cube w in cover F is not entirel covered b the union of: (i) the set of other cubes in cover, and (ii) the set of consensus cubes (i.e seeds of missing s) then it is essential! EXMPLE #1: ube Essential X = ONSENSUS (cube, cube ) #21 Eample: given an cover F of a oolean function f w! 2. If a cube w in cover F is not entirel covered b the union of: (i) the set of other cubes in cover, and (ii) the set of consensus cubes (i.e seeds of missing s) then it is essential! EXMPLE #2: ube Not Essential X = ONSENSUS (cube, cube ) #22
Eample: given an cover F of a oolean function f w! 2. lgorithmic Formulation*: ESSEN #2 Given cover F, including cube e (to check if e essential): 1. Remove e from F: G = F {e} 2. ompute consensus of e and each cube in G: H = consensus{e, G} 3. Formulate containment problem: heck if e <= G U H X = ONSENSUS (cube, cube ) *equivalent to Hachtel/Someni, Theorem 5.4.1 (p. 204) #23 ESPRESSO: Make-Sparse Step 12
Multi-Output Minimiation: Eample #1 Multi-Output Function #25 Multi-Output Minimiation: Eample #1 over #1: min-cost cover, using ONLY multi-output s #26 13
Multi-Output Minimiation: Eample #1 over #1: using ONLY multi-output s multi-output input part output part 0 1-1 0 1 0-1 0 1 0 1 1 1 corresponding 2-level implementation multi-output 1 PL Representation of over = cubical comple OST = 15 gate inputs #27 Multi-Output Minimiation: Eample #1 over #1: using some NON-PRIMES! NOT a multi-output input part output part 0 1-1 0 1 0-1 0 1 0 1 0 1 corresponding 2-level implementation NOT a multi-output 1 PL Representation of over = cubical comple OST = 14 gate inputs = better! #28 14
Observation Peculiar feature of multi-output s (spanning multiple functions): NOT a multi-output multi-output Spanning more functions: (i) increases coverage, UT (ii) also increases cost! #29 ESPRESSO Strateg: using MKE-SPRSE (simple version) asic idea: - Initial ESPRESSO goal: bod of algorithm alwas epands to multi-output s - Post-processing step (at end of algorithm) = MKE-SPRSE - heuristicall reduce final cover cost b ELETING UNNEESSRY OUTPUT ONNETIONS - asic version of MKE-SPRSE : -- this step is a form of multi-output REUE = eliminate unnecessar N-gate wire fanouts -- also known as reduce output parts See previous slides: - before MKE-SPRSE: over #1 (cost = 15 gate inputs) - after MKE-SPRSE: over #1 (cost = 14 gate inputs) #30 15
MKE-SPRSE: advanced version Used in Espresso-II: - Ke Idea: improved MKE-SPRSE can involve new epansion too! Step #1. Use restricted reduce : REUE OUTPUT PRTS for each N-gate, eliminate unnecessar output connections Step #2. Use restricted epand : EXPN INPUT PRTS for each N-gate, epand if possible within current outputs #31 Multi-Output Minimiation: Eample #2 Multi-Output Function: illustrates advanced MKE-SPRSE operation (NEW: minterm) #32 16
Multi-Output Minimiation: Eample #2 over #2: initial min-cost cover, using ONLY multi-output s multi-output #33 Multi-Output Minimiation: Eample #2 STEP #1 -- over #2: after RESTRITE REUE of output part = REUE OUTPUT PRT NOT a multi-output #34 17
Multi-Output Minimiation: Eample #2 STEP #2 -- over #2: after RESTRITE EXPN of input part - no epansion to new outputs, onl within current outputs! = EXPN INPUT PRT multi-output FINL OVER #35 Multi-Output Minimiation: Eample #2 -- details multi-output over #2: using ONLY multi-output s (NEW: minterm) input part output part 0 1-1 0 1 0-1 0 1 0 1 1 1 corresponding 2-level implementation multi-output 1 PL Representation = cubical comple OST = 15 gate inputs #36 18
Multi-Output Minimiation: Eample #2 -- details STEP #1 -- over #2: REUE OUTPUT PRT (NEW: minterm) NOT a multi-output input part output part 0 1-1 0 1 0-1 0 1 0 1 0 1 corresponding 2-level implementation NOT a multi-output 1 PL Representation of over = cubical comple OST = 14 gate inputs = better! #37 Multi-Output Minimiation: Eample #2 -- details STEP #2 -- over #2: EXPN INPUT PRT (NEW: minterm) EXPN cube as much as possible within current outputs input part output part corresponding 2-level implementation 0 1-1 0 1 0-1 0 1-1 0 1 1 EXPN cube as much as possible within current outputs PL Representation of over = cubical comple OST = 13 gate inputs = even better! #38 19