Presentation is loading. Please wait.

Presentation is loading. Please wait.

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:

Similar presentations


Presentation on theme: "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:"— Presentation transcript:

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


Download ppt "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:"

Similar presentations


Ads by Google