1 Implicant Expansion Methods Used in The BOOM Minimizer Petr Fišer, Jan Hlavička Czech Technical University, Karlovo nám. 13, Prague 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 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 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
8 CD-Search Example abcde y abcde f(1):..... f(0):.....
9 CD-Search Example abcde y abcde f(1): f(0): 7....
10 CD-Search Example abcde y abcde f(1): f(0): 75...
11 CD-Search Example abcde y abcde f(1): f(0): 753..
12 CD-Search Example abcde y abcde f(1): f(0): 7536.
13 CD-Search Example abcde y abcde f(1): f(0): selected
14 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS a‘ SOLUTION selected
15 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS a‘c SOLUTION selected
16 CD-Search Example abcde y abcde f(1):..... f(0):..... TERM IN PROGRESS SOLUTION a‘bc
17 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS SOLUTION a‘bc selected
18 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘ SOLUTION a‘bc selected
19 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘e‘ SOLUTION a‘bc selected
20 CD-Search Example abcde y abcde f(1):..... f(0):..... TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘
21 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘ selected
22 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘ SOLUTION a‘bc + b‘e‘d‘ selected
23 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘e‘ SOLUTION a‘bc + b‘e‘d‘ selected
24 CD-Search Example abcde y 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: Off - set:
27 Multiple Sequential Search Example Term: Off - set:
28 Multiple Sequential Search Example Term: Off - set: OK
29 Multiple Sequential Search Example Term: Off - set: OK COLLISION
30 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK
31 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK COLLISION
32 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK COLLISION COLLISION
33 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK COLLISION COLLISION COLLISION PRIMES:
34 Multiple Sequential Search Example Term: Off - set: COLLISION OK COLLISION COLLISION COLLISION OK PRIMES: skip next position
35 Multiple Sequential Search Example Term: Off - set: OK OK COLLISION COLLISION COLLISION COLLISION PRIMES:
36 Multiple Sequential Search Example Term: Off - set: OK COLLISION COLLISION COLLISION COLLISION OK PRIMES:
37 Multiple Sequential Search Example Term: Off - set: COLLISION PRIMES: SAME AS FIRST POSITION
38 Multiple Sequential Search Example Term: Off - set: OK IGNORED OK ! COLLISION COLLISION PRIMES: BUT! => 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 Depth = number of input variables Tree buffer node: Ternary tree
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-
51 Tree Buffer Example a b c d e
52 Tree Buffer Example a b c d e Searching: ab‘c‘d (1001-) failure
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 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