Download presentation
Presentation is loading. Please wait.
Published byStewart Wilkinson Modified over 9 years ago
1
1 Implicant Expansion Methods Used in The BOOM Minimizer Petr Fišer, Jan Hlavička Czech Technical University, Karlovo nám. 13, 121 35 Prague 2 e-mail: hlavicka@fel.cvut.cz, fiserp@fel.cvut.cz
2
2 1. Introduction 2. Problem Statement 3. BOOM Structure 4. Iterative Minimization 5. CD-Search 6. Implicant Expansion 7. Tree Buffer 8. Experimental Results 9. Conclusions Outline
3
3 Problem Statement Given Boolean function of n input variables F(x 1, x 2, … x n,), by truth table: 1-terms (on-set) 0-terms (off-set) only few of the 2 n minterms have an output value assigned (care terms) the rest are don't care states. Task Formulate a synthesis algorithm, which will produce a two-level disjunctive form of F, whose complexity is close to the minimal disjunctive form.
4
4 BOOM Structure Single-output functions: CD-Search (generation of implicants) Implicant Expansion (generation of PIs) Covering problem solution Multi-output functions: CD-Search (generation of implicants) Implicant Expansion (generation of PIs) Implicant Reduction (generation of group implicants) Solution of the Group Covering Problem Output Reduction
5
5 Iterative Minimization The solution depends on random events CD-Search, IE and IR are repeated - more implicants, then covering problem is solved
6
6 CD - Search Combines the implicant generation with covering problem solution Greedy algorithm - implicants need not be prime CD_Search(F,R) { H = do F’ = F t = 1 do l = most_frequent_literal(F’) t = t * l F’ = F’ – cubes_not_including(t) while (t R ) H = H t F = F - F’ until (F == ) return H }
7
7 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0
8
8 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1):..... f(0):.....
9
9 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 2.... f(0): 7....
10
10 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 24... f(0): 75...
11
11 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 246.. f(0): 753..
12
12 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 2463. f(0): 7536.
13
13 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 24632 f(0): 75367 selected
14
14 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): -3245 f(0): -4532 TERM IN PROGRESS a‘ SOLUTION selected
15
15 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): -1-33 f(0): -4-22 TERM IN PROGRESS a‘c SOLUTION selected
16
16 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1):..... f(0):..... TERM IN PROGRESS SOLUTION a‘bc
17
17 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 20210 f(0): 35345 TERM IN PROGRESS SOLUTION a‘bc selected
18
18 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 2-210 f(0): 3-345 TERM IN PROGRESS b‘ SOLUTION a‘bc selected
19
19 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 2-21- f(0): 3-34- TERM IN PROGRESS b‘e‘ SOLUTION a‘bc selected
20
20 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1):..... f(0):..... TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘
21
21 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 00010 f(0): 11101 TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘ selected
22
22 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 0-010 f(0): 1-101 TERM IN PROGRESS b‘ SOLUTION a‘bc + b‘e‘d‘ selected
23
23 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 abcde f(1): 0-01- f(0): 1-10- TERM IN PROGRESS b‘e‘ SOLUTION a‘bc + b‘e‘d‘ selected
24
24 CD-Search Example abcde y 1. 01010 0 2. 01100 1 3. 01110 1 4. 11100 0 5. 11011 0 6. 01000 0 7. 01111 1 8. 10110 0 9. 01011 0 10. 01101 1 11. 10000 1 12. 10101 0 13. 10100 1 14. 00010 1 15. 00000 1 16. 11010 0 17. 00110 0 18. 00100 1 19. 00011 0 20. 11110 0 SOLUTION a‘bc + b‘e‘d‘ + b‘e‘c‘
25
25 Implicant Expansion Methods Sequential Search candidates for rejection from a term are selected one by one Multiple Sequential Search more PIs are produced Exhaustive Expansion all primes are generated Distributed Exhaustive Expansion literal elimination distributed over several consecutive iterations
26
26 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000
27
27 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010
28
28 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 -10010 - OK
29
29 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 -10010 - OK --0010 - COLLISION
30
30 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 -10010 - OK --0010 - COLLISION -1-010 - OK
31
31 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 -10010 - OK --0010 - COLLISION -1-010 - OK -1--10 - COLLISION
32
32 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 -10010 - OK --0010 - COLLISION -1-010 - OK -1--10 - COLLISION -1-0-0 - COLLISION
33
33 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 -10010 - OK --0010 - COLLISION -1-010 - OK -1--10 - COLLISION -1-0-0 - COLLISION -1-01- - COLLISION PRIMES: -1-010
34
34 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 0-0010 - COLLISION 01-010 - OK 01--10 - COLLISION 01-0-0 - COLLISION 01-01- - COLLISION -1-010 - OK PRIMES: -1-010 skip next position
35
35 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 010-10 - OK 010--0 - OK 010--- - COLLISION -10--0 - COLLISION 0-0--0 - COLLISION 01---0 - COLLISION PRIMES: -1-010 010--0
36
36 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 0100-0 - OK 0100-- - COLLISION -100-0 - COLLISION 0-00-0 - COLLISION 01-0-0 - COLLISION 010--0 - OK PRIMES: -1-010 010--0
37
37 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 01001- - COLLISION PRIMES: -1-010 010--0 SAME AS FIRST POSITION
38
38 Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000 010010 -10010 - OK -1-010 - IGNORED -10-10 - OK ! -10--0 - COLLISION -10-1- - COLLISION PRIMES: -1-010 010--0 -10-10 BUT! => EXHAUSTIVE EXPANSION
39
39 Implicant Expansion Strategies Evaluation Time growth for different IE methods
40
40 Implicant Expansion Strategies Evaluation Primes growth for different IE methods
41
41 Accelerating Iterative Minimization Already processed implicants are not considered in next iterations
42
42 TREE BUFFER Main Features: High look-up speed Low memory demands Simple operations
43
43 TREE BUFFER Operations: Insert term Find term Find & Insert Find & Delete
44
44 TREE BUFFER 0 - 1 Depth = number of input variables Tree buffer node: Ternary tree
45
45 Tree Buffer Example Inserting: a‘b‘c‘d (0001-)
46
46 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a
47
47 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b
48
48 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c
49
49 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c d
50
50 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c d e 0001-
51
51 Tree Buffer Example a b c d e 00000 0001--0-10-0-11101-111--011111
52
52 Tree Buffer Example a b c d e 00000 0001--0-10-0-11101-111--011111 Searching: ab‘c‘d (1001-) failure
53
53 Tree Buffer vs. Linear Buffer Tree bufferLinear buffer max. size< n * i, if i << 3 n n * i min. size< 3 n-1, if i ~ 3 n n * i ~ n * 3 n max. lookup timenn * i min. lookup time1i Input variables: n Inserted terms: i
54
54 Experimental Results Comparison with ESPRESSO : Percentage of time needed by BOOM
55
55 Experimental Results Time for one iteration on very large problems
56
56 Time Complexity Evaluation
57
57 Conclusions New Boolean minimization method was presented Applicable to problems of large dimensions Advantageous for problems with large DC set The results are comparable with ESPRESSO Run times are shorter For problems with more than 100 input variables beats ESPRESSO both in time and minimality
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.