csee 6861 cad of digital systems
play

CSEE 6861 CAD of Digital Systems Handout: Lecture #5 2/18/16 Prof. - PDF document

CSEE 6861 CAD of Digital Systems Handout: Lecture #5 2/18/16 Prof. Steven M. Nowick nowick@cs.columbia.edu Department of Computer Science (and Elect. Eng.) Columbia University New York, NY, USA ESPRESSO: Advanced Steps (i) Essentials #2


  1. CSEE 6861 CAD of Digital Systems Handout: Lecture #5 2/18/16 Prof. Steven M. Nowick nowick@cs.columbia.edu Department of Computer Science (and Elect. Eng.) Columbia University New York, NY, USA ESPRESSO: Advanced Steps (i) Essentials #2 (ii) MAKE-SPARSE 1

  2. ESPRESSO: “Essentials #2” Step generating all essentials when not given all primes “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f (prime cover = cover using only prime implicants, i.e. fully-expanded cubes) Q1. Does the cover include all essentials? wx A 00 01 11 10 � yz 1 1 0 0 00 C 0 B 1 1 0 01 0 0 1 1 11 D 0 0 0 0 10 #4 2

  3. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q1. Does the cover include all essentials? wx A1. YES! Every prime cover F of a A 00 01 11 10 � yz function f includes all its essentials 1 1 0 0 00 C 0 1 1 0 B 01 0 0 1 1 11 D 0 0 0 0 10 #5 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz 1 1 0 0 00 C 0 B 1 1 0 01 0 0 1 1 11 D 0 0 0 0 10 #6 3

  4. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz Note: cover F does not necessarily 1 1 0 0 00 include all primes! C 0 1 1 0 B 01 0 0 1 1 11 missing prime! D 0 0 0 0 10 #7 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz 1 1 0 0 00 C 0 B 1 1 0 essentials 01 0 0 1 1 11 D 0 0 0 0 10 #8 4

  5. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz 1 1 0 0 00 C 0 1 1 0 B not essentials 01 0 0 1 1 11 D 0 0 0 0 10 #9 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx … how to identify all essentials when A 00 01 11 10 � yz cover F does not include all primes? 1 1 0 0 00 C 0 B 1 1 0 not essentials 01 0 0 1 1 11 D 0 0 0 0 10 #10 5

  6. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz CASE ANALYSIS: 1 1 0 0 00 3 types of minterms in cubes C 0 1 1 0 B 01 0 0 1 1 11 D 0 0 0 0 10 #11 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz CASE ANALYSIS: 1 1 0 0 00 3 types of minterms in cubes C 0 B 1 1 0 01 Each ON-set minterm is: 0 0 1 1 (i) covered by 2 or more cubes 11 D 0 0 0 0 10 #12 6

  7. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz CASE ANALYSIS: 1 1 0 0 00 3 types of minterms in cubes C 0 1 1 0 B 01 Each ON-set minterm is: 0 0 1 1 (i) covered by 2 or more cubes 11 D (ii) covered by only 1 cube 0 0 0 0 10 #13 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz CASE ANALYSIS: 1 1 0 0 00 3 types of minterms in cubes C 0 B 1 1 0 01 Each ON-set minterm is: 0 0 1 1 (i) covered by 2 or more cubes 11 D (ii) covered by only 1 cube 0 0 0 0 10 2 sub-cases: … #14 7

  8. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz CASE ANALYSIS: 1 1 0 0 00 3 types of minterms in cubes C 0 1 1 0 B 01 Each ON-set minterm is: (i) covered by 2 or more cubes 0 0 1 1 11 (ii) covered by only 1 cube D 0 0 0 0 10 2 sub-cases: … (a) ON-set minterm “isolated”: no neighboring cubes (only OFF-set) #15 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz CASE ANALYSIS: 1 1 0 0 00 3 types of minterms in cubes C 0 B 1 1 0 01 Each ON-set minterm is: (i) covered by 2 or more cubes 0 0 1 1 11 (ii) covered by only 1 cube D 0 0 0 0 10 2 sub-cases: … (b) ON-set minterm not “isolated”: has neighboring adjacent cube(s) #16 8

  9. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A Test for Case #2(b): 00 01 11 10 � yz not in “isolated regions” = 1 1 0 0 00 has neighboring cubes C 0 1 1 0 B 01 Grow “consensus” cubes: … between each adjacent cube pair 0 0 1 1 11 D 0 0 0 0 10 #17 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A Test for Case ii(b): 00 01 11 10 � yz not in “isolated regions” = 1 1 0 0 00 Has Cube Neighbors C 0 B 1 1 0 01 Grow “consensus” cubes: … between each adjacent cube pair 0 0 1 1 11 [“adjacent” = distance-1] D 0 0 0 0 10 X = CONSENSUS (cube B, cube C) #18 9

  10. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx Test for Case #2(b): A 00 01 11 10 � yz not in “isolated regions” = 1 1 0 0 00 Has Cube Neighbors C 0 1 1 0 B 01 Intuition: experiment to “grow” missing implicants 0 0 1 1 11 - Consensus cube = “seed” which spans D gap between adjacent cube pair 0 0 0 0 (non-intersecting) 10 - Idea: used to LOCALLY generate the “core” of missing primes in cover X = CONSENSUS (cube B, cube C) (consensus often is non-prime) #19 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A 00 01 11 10 � yz A2. If a cube w in cover F is not entirely 1 1 0 0 00 covered by the union of: (i) the set of other cubes in cover, and C 0 B 1 1 0 01 (ii) the set of consensus cubes (i.e seeds of missing primes) 0 0 1 1 11 then it is essential! D 0 0 0 0 10 X = CONSENSUS (cube B, cube C) #20 10

  11. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A A2. If a cube w in cover F is not entirely 00 01 11 10 � yz covered by the union of: 1 1 0 0 00 (i) the set of other cubes in cover, and (ii) the set of consensus cubes (i.e seeds C 0 1 1 0 B 01 of missing primes) then it is essential! 0 0 1 1 11 D 0 0 0 0 10 EXAMPLE #1: Cube A Essential X = CONSENSUS (cube B, cube C) #21 “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A A2. If a cube w in cover F is not entirely 00 01 11 10 � yz covered by the union of: 1 1 0 0 00 (i) the set of other cubes in cover, and (ii) the set of consensus cubes (i.e seeds C 0 B 1 1 0 01 of missing primes) then it is essential! 0 0 1 1 11 D 0 0 0 0 10 EXAMPLE #2: Cube C Not Essential X = CONSENSUS (cube B, cube C) #22 11

  12. “ Essentials #2 ” Step Example: given any “prime cover” F of a Boolean function f Q2. Which cubes in the cover are essential? wx A2. Algorithmic Formulation*: ESSEN #2 A 00 01 11 10 � yz Given cover F, including cube ‘e’ (to check 1 1 0 0 00 if e essential): 1. Remove ‘e’ from F: C 0 1 1 0 B G = F – {e} 01 2. Compute consensus of ‘e’ and each cube 0 0 1 1 in G: 11 H = consensus{e, G} D 3. Formulate containment problem: 0 0 0 0 10 Check if e <= G U H *equivalent to Hachtel/Somenzi, Theorem 5.4.1 (p. 204) X = CONSENSUS (cube B, cube C) #23 ESPRESSO: “Make-Sparse” Step 12

  13. Multi-Output Minimization: Example #1 Multi-Output Function f1 f2 z y x #25 Multi-Output Minimization: Example #1 Cover #1A: min-cost cover, using ONLY multi-output primes f1 f2 A C z y x B D #26 13

  14. Multi-Output Minimization: Example #1 Cover #1A: using ONLY multi-output primes f1 f2 A multi-output C prime output part input part z x y z f1 f2 y 0 1 - 1 0 x B D 1 0 - 1 0 x ’ A 1 0 1 1 1 y x f1 B 0 0 0 0 1 y ’ multi-output prime x PLA Representation of Cover C y ’ = “ cubical complex ” z x ’ f2 D y ’ COST = 15 gate inputs z ’ corresponding 2-level implementation #27 Multi-Output Minimization: Example #1 Cover #1B: using some NON-PRIMES! f1 f2 A NOT a multi-output prime C input part output part z x y z f1 f2 y 0 1 - 1 0 x B D 1 0 - 1 0 x ’ A y 1 0 1 0 1 f1 x 0 0 0 0 1 B y ’ NOT a multi-output prime x PLA Representation of Cover C y ’ = “ cubical complex ” z x ’ f2 D y ’ COST = 14 gate inputs = better! z ’ corresponding 2-level implementation #28 14

Recommend


More recommend