CDSearch Example - PowerPoint PPT Presentation

1 / 57
About This Presentation
Title:

CDSearch Example

Description:

Implicant Expansion (generation of PIs) Implicant Reduction (generation of group implicants) ... more PIs are produced. Exhaustive Expansion. all primes are generated ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 58
Provided by: petrf
Category:
Tags: cdsearch | example | pis

less

Transcript and Presenter's Notes

Title: CDSearch Example


1
Implicant Expansion Methods Used in The BOOM
Minimizer
Petr Fier, Jan Hlavicka Czech Technical
University, Karlovo nám. 13, 121 35 Prague
2 e-mail hlavicka_at_fel.cvut.cz,
fiserp_at_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 ac 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 abc
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 abc
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 abc
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 be SOLUTION abc
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 abc bed
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 abc bed
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 abc bed
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 be SOLUTION abc bed
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 abc bed bec
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
gt 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 abcd (0001-)
46
Tree Buffer Example
Inserting abcd (0001-)
a
47
Tree Buffer Example
Inserting abcd (0001-)
a
b
48
Tree Buffer Example
Inserting abcd (0001-)
a
b
c
49
Tree Buffer Example
Inserting abcd (0001-)
a
b
c
d
50
Tree Buffer Example
Inserting abcd (0001-)
a
b
c
d
e
0001-
51
Tree Buffer Example
a
b
c
d
e
00000
0001-
-0-10
-0-11
101-1
11--0
11111
52
Tree Buffer Example
Searching abcd (1001-)
a
b
failure
c
d
e
00000
0001-
-0-10
-0-11
101-1
11--0
11111
53
Tree Buffer vs. Linear Buffer
Input variables n Inserted terms i
Tree buffer Linear buffer max. size lt n i,
if i ltlt 3n n i min. size lt 3n-1, if i 3n n
i n 3n max. lookup time n n i min.
lookup time 1 i
54
Experimental Results
Comparison with ESPRESSO Percentage of time
needed by BOOM
55
Experimental Results
Time for one iteration on very large problems
56
Time Complexity Evaluation
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
Write a Comment
User Comments (0)
About PowerShow.com