1 / 57

Implicant Expansion Methods Used in The BOOM Minimizer

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. Outline. 1. Introduction 2. Problem Statement 3. BOOM Structure 4. Iterative Minimization

Download Presentation

Implicant Expansion Methods Used in The BOOM Minimizer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Outline 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

  3. Problem Statement • Given Boolean function of n input variables F(x1, x2, … xn,), • by truth table: 1-terms (on-set) • 0-terms (off-set) • only few of the 2n 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. 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. Iterative Minimization • The solution depends on random events • CD-Search, IE and IR are repeated - more implicants, then covering problem is solved

  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. 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. 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. 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. 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. 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. 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. 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. 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 TERM IN PROGRESS a‘ SOLUTION abcde f(1): -3245 f(0): -4532 selected

  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 TERM IN PROGRESS a‘c SOLUTION abcde f(1): -1-33 f(0): -4-22 selected

  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 TERM IN PROGRESS SOLUTION a‘bc abcde f(1): ..... f(0): .....

  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 TERM IN PROGRESS SOLUTION a‘bc abcde f(1): 20210 f(0): 35345 selected

  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 TERM IN PROGRESS b‘ SOLUTION a‘bc abcde f(1): 2-210 f(0): 3-345 selected

  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 TERM IN PROGRESS b‘e‘ SOLUTION a‘bc abcde f(1): 2-21- f(0): 3-34- selected

  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 TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘ abcde f(1): ..... f(0): .....

  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 TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘ abcde f(1): 00010 f(0): 11101 selected

  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 TERM IN PROGRESS b‘ SOLUTION a‘bc + b‘e‘d‘ abcde f(1): 0-010 f(0): 1-101 selected

  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 TERM IN PROGRESS b‘e‘ SOLUTION a‘bc + b‘e‘d‘ abcde f(1): 0-01- f(0): 1-10- selected

  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. 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. Multiple Sequential Search Example Term: 010010 Off - set: 000010 011110 011000 010011 110000

  27. Multiple Sequential Search Example Term: 010010 010010 Off - set: 000010 011110 011000 010011 110000

  28. Multiple Sequential Search Example Term: 010010 010010 -10010 - OK Off - set: 000010 011110 011000 010011 110000

  29. Multiple Sequential Search Example Term: 010010 010010 -10010 - OK --0010 - COLLISION Off - set: 000010 011110 011000 010011 110000

  30. Multiple Sequential Search Example Term: 010010 010010 -10010 - OK --0010 - COLLISION -1-010 - OK Off - set: 000010 011110 011000 010011 110000

  31. Multiple Sequential Search Example Term: 010010 010010 -10010 - OK --0010 - COLLISION -1-010 - OK -1--10 - COLLISION Off - set: 000010 011110 011000 010011 110000

  32. Multiple Sequential Search Example Term: 010010 010010 -10010 - OK --0010 - COLLISION -1-010 - OK -1--10 - COLLISION -1-0-0 - COLLISION Off - set: 000010 011110 011000 010011 110000

  33. Multiple Sequential Search Example Term: 010010 010010 -10010 - OK --0010 - COLLISION -1-010 - OK -1--10 - COLLISION -1-0-0 - COLLISION -1-01- - COLLISION Off - set: 000010 011110 011000 010011 110000 PRIMES: -1-010

  34. Multiple Sequential Search Example Term: 010010 010010 0-0010 - COLLISION 01-010 - OK 01--10 - COLLISION 01-0-0 - COLLISION 01-01- - COLLISION -1-010 - OK Off - set: 000010 011110 011000 010011 110000 PRIMES: -1-010 skip next position

  35. Multiple Sequential Search Example Term: 010010 010010 010-10 - OK 010--0 - OK 010--- - COLLISION -10--0 - COLLISION 0-0--0 - COLLISION 01---0 - COLLISION Off - set: 000010 011110 011000 010011 110000 PRIMES: -1-010 010--0

  36. Multiple Sequential Search Example Term: 010010 010010 0100-0 - OK 0100-- - COLLISION -100-0 - COLLISION 0-00-0 - COLLISION 01-0-0 - COLLISION 010--0 - OK Off - set: 000010 011110 011000 010011 110000 PRIMES: -1-010 010--0

  37. Multiple Sequential Search Example Term: 010010 010010 01001- - COLLISION Off - set: 000010 011110 011000 010011 110000 SAME AS FIRST POSITION PRIMES: -1-010 010--0

  38. Multiple Sequential Search Example BUT! 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 => EXHAUSTIVE EXPANSION

  39. Implicant Expansion Strategies Evaluation Time growth for different IE methods

  40. Implicant Expansion Strategies Evaluation Primes growth for different IE methods

  41. Accelerating Iterative Minimization Already processed implicants are not considered in next iterations

  42. TREE BUFFER • Main Features: • High look-up speed • Low memory demands • Simple operations

  43. TREE BUFFER • Operations: • Insert term • Find term • Find & Insert • Find & Delete

  44. TREE BUFFER Ternary tree Tree buffer node: 0 1 - Depth = number of input variables

  45. Tree Buffer Example Inserting: a‘b‘c‘d (0001-)

  46. Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a

  47. Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b

  48. Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c

  49. Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c d

  50. Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c d e 0001-

More Related