1
CSEE 6861 CAD of Digital Systems Handout: Lecture #3
2/4/16
- Prof. Steven M. Nowick
CSEE 6861 CAD of Digital Systems Handout: Lecture #3 2/4/16 Prof. - - PDF document
CSEE 6861 CAD of Digital Systems Handout: Lecture #3 2/4/16 Prof. Steven M. Nowick nowick@cs.columbia.edu Department of Computer Science (and Elect. Eng.) Columbia University New York, NY, USA ESPRESSO Algorithm: The EXPAND Step,
#3
Basic idea:
3 Heuristic Expansion Steps (in sequence): to expand a cube c
New Focus: Step #2 and #3
#4
Suppose cube A has been picked for expansion
1 1 1
1 1
00 01 11 10 wx yz A B C D E
#5
STEP #1: expand cube A to fully contain as many other cubes as possible
1 1 1
1 1
00 01 11 10 wx yz A B C D E
#6
STEP #1: expand cube A to fully contain as many other cubes as possible
1 1 1
1 1
00 01 11 10 wx yz A’ B C D E
#7
STEP #1: expand cube A to fully contain as many other cubes as possible
1 1 1
1 1
00 01 11 10 wx yz A’ B C D E
#8
STEP #2: expand cube A’, by 1 variable at a time, to overlap as many other cubes as possible
1 1 1
1 1
00 01 11 10 wx yz A’ B C D E
#9
STEP #2: expand cube A’, by 1 variable at a time, to overlap as many other cubes as possible
1 1 1
1 1
00 01 11 10 wx yz A’ B C D E Option 1: expand cube A’ in “z’ dimension”:
#10
STEP #2: expand cube A’, by 1 variable at a time, to overlap as many other cubes as possible
1 1 1
1 1
00 01 11 10 wx yz A’ B C D E Option 2: expand cube A’ in “y dimension”:
#11
STEP #2: expand cube A’, by 1 variable at a time, to overlap as many other cubes as possible
1 1 1
1 1
00 01 11 10 wx yz A’’ B C D E Final choice = Option 2: expand cube A’ in “y dimension”
#12
Suppose cube A has been picked for expansion
1 1 1 1 1 00 01 11 10 00 01 11 10 wx yz A B C
#13
1 1 1 1 1 00 01 11 10 00 01 11 10 wx yz A B C STEP #2: expand cube A, by 1 variable at a time, to overlap as many other cubes as possible Final choice = expand cube A in “y dimension”
#14
1 1 1 1 1 00 01 11 10 00 01 11 10 wx yz A’ B C STEP #2: expand cube A, by 1 variable at a time, to overlap as many other cubes as possible Final choice = expand cube A in “y dimension”
#15
1 1 1 1 1 00 01 11 10 00 01 11 10 wx yz A’ B C STEP #3: expand cube A’ into a maximal size prime implicant
#16
1 1 1 1 1 00 01 11 10 00 01 11 10 wx yz A’ B C STEP #3: expand cube A’ into a maximal size prime implicant Option 1: expand cube A’ in “z’ dimension”
#17
1 1 1 1 1 00 01 11 10 00 01 11 10 wx yz A’ B C STEP #3: expand cube A’ into a maximal size prime implicant Option 2: expand cube A’ in w’/x’ dimensions
#18
1 1 1 1 1 00 01 11 10 00 01 11 10 wx yz A’’ B C STEP #3: expand cube A’ into a maximal size prime implicant Final choice = Option 2
#20
Example Cover: after “expand” = prime cover 1 1 1 1 1 1
00 01 11 10 00 01 11 10 wx yz P1 P2 P3 P4 P5 P6 Given: cover F (after EXPAND) Goal: make F irredundant = delete max # of implicants while still maintaining a valid cover
#21
Approach #1 (SUBOPTIMAL!): greedily remove one redundant cube at a time 1 1 1 1 1 1
00 01 11 10 00 01 11 10 wx yz P1 P2 P3 P4 P5 P6 before: 1 1 1 1 1 1
00 01 11 10 00 01 11 10 wx yz P1 P2 P4 P5 P6 after deleting P3: irredundant suboptimal cover
#22
Approach #2 (OPTIMAL!): form & solve an exact optimization problem 1 1 1 1 1 1
00 01 11 10 00 01 11 10 wx yz P1 P2 P3 P4 P5 P6 before: Goal: set up a simplified PI table, and solve it exactly, to determine min # of cubes to keep (delete all others) This is approach used in ESPRESSO…:
#23
Simplified PI Table: X X X X X X X X P1 P2 P3 P4 0000 0100 0101 1101 1111
prime implicants ON-set minterms
X P5 P6 1011 1110 X X
#24
Simplified PI Table: X X X X X X X X P1 P2 P3 P4 0000 0100 0101 1101 1111
prime implicants ON-set minterms
X P5 P6 1011 1110 X X Approach: solve PI table exactly Optimal Solution:
#25
Quine-McCluskey method!) in the inner loop of a fast heuristic algorithm (espresso)?
Hence, there is no prime generation step, and often a (much) smaller table! Key Observation: columns in this table are only the primes in current cover,
#26
Approach #2 (OPTIMAL): final solution 1 1 1 1 1 1
00 01 11 10 00 01 11 10 wx yz P1 P2 P3 P4 P5 P6 before: 1 1 1 1 1 1
00 01 11 10 00 01 11 10 wx yz P1 P3 P5 P6 after: irredundant optimal cover
#28
Example Cover: after “expand” and “irredundant” = prime irredundant cover
(DC)
x y z C B A
#29
Example Cover: after “expand” and “irredundant” = prime irredundant cover
(DC)
x y z C B A Given: cover F (after EXPAND/IRRED) Goal: maximally reduce all cubes of cover F, in some order, while still maintaining a valid cover
#30
Key Observation: reduce operation is order-dependent
(DC)
x y z C B A Cube Reduction Order #1: B, A, C
(DC)
x y z B’ A
#31
Key Observation: reduce operation is order-dependent
(DC)
x y z C B A
Cube Reduction Order #1: B, A, C
(DC)
x y z B’ A
Cube Reduction Order #2: C, B,A
(DC)
x y z C’ A B’