740 likes | 900 Views
A recursive paradigm to solve Boolean relations. David Bañeres Univ. Politècnica de Catalunya Jordi Cortadella Univ. Politècnica de Catalunya Mike Kishinevsky Strategic CAD Lab., Intel Corp. a. b. c. f. 01010 10. 00001111. 00110011. 01010101. a. ?. b. x.
E N D
A recursive paradigm to solve Boolean relations David Bañeres Univ. Politècnica de Catalunya Jordi Cortadella Univ. Politècnica de Catalunya Mike Kishinevsky Strategic CAD Lab., Intel Corp.
a b c f 0101010 00001111 00110011 01010101 a ? b x c f ? a y b z c ? a c b Boolean relation: example
a ? b x c f ? y b z c ? a c b Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 a
0 0 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 x 0 y z
0 0 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 00 00 00 x 0 y z
0 1 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 00 00 00 x 0 y z
0 1 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 | 01 00 | 01 00 | 01 00 | 01 x 0 y z
1 0 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 | 01 00 | 01 00 | 01 00 | 01 x 1 y z
1 0 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 | 01 10 00 | 01 10 00 | 01 10 00 | 01 x 1 y z
1 1 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 | 01 10 00 | 01 10 00 | 01 10 00 | 01 x 1 y z
1 1 Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 x 1 y z
Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 x y z
Boolean relation: example x y z a b c f 0101010 00001111 00110011 01010101 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 x y z
a ? b x c f ? y b z c ? a c b Boolean relation: example x y z a b c 00001111 00110011 01010101 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 a
a x x c f f f c y y b z z b x a a a b y z c Boolean relation: example x y z a b c 00001111 00110011 01010101 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01 10 | 11 00 | 01
Applications of Boolean Relations • Boolean matching techniques for library binding • L. Benini and G.D. Micheli, 1997 • FSM encoding • B. Lin and F.Somenzi, 1990 • Boolean decomposition • M. Damiani, J. Yang, and G.D. Micheli, 1995 • … and others
Outline • Boolean Relations • The semi-lattice of solutions • The recursive paradigm • Experimental results
f g a b 0011 0101 10 01 | 10 1 Boolean Relations
f g a b 0011 0101 10 01 | 10 1 Boolean Relations
f g a b 0011 0101 10 01 | 10 1 Boolean Relations
f g a b 0011 0101 10 01 | 10 1 Solving Boolean Relations Finding fand g suchthat R is a tautology
f g a b 0011 0101 10 01 | 10 1 Solving Boolean Relations Finding fand g suchthat R is a tautology
f g a b 0011 0101 10 01 | 10 1 Solving Boolean Relations Finding fand g suchthat R is a tautology
f g a b 0011 0101 10 01 | 10 1 Solving Boolean Relations Finding fand g suchthat R is a tautology
f g a b 0011 0101 10 01 | 10 1 Solving Boolean Relations Finding fand g suchthat R is a tautology
f g a b 0011 0101 10 01 | 10 1 10 00 11 01 Solving Boolean Relations Finding fand g suchthat R is a tautology
Related work • Exact solvers • F. Somenzi and R.K. Brayton (1989) • Method similar to Quine-McCluskey • Extension of primes to c-primes • S. Jeong and F.Somenzi (1992) • Formulate the problem as a BCP
Related work • Heuristic approaches (based on ESPRESSO) • A. Ghosh, S. Devadas and A. Newton (1992) • Y. Watanabe and R. K. Brayton (1993) GYOCRO x:=Initial Solution; do REDUCE(x); EXPAND(x); IRREDUNDANT(x); while (x is improved);
00 01 10 11 00 01 10 11 f g a b Boolean relation
00 01 10 11 00 01 10 11 f g a b
00 01 10 11 00 01 10 11
00 01 10 11 00 01 10 11
00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 0110 0111 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 RR’ Semi-lattice Functions
Maximum flexibility Less flexibility a b 0 0 0 1 1 0 1 1 f g Functions (Bn Bm)
a b 0 0 0 1 1 0 1 1 f g 10 00 | 11 1 1 | 1 a b 0 0 0 1 1 0 1 1 f g 1 0 0 0 1 1 0 1 a b 0 0 0 1 1 0 1 1 f g Optimum-cost function
Functions (Bn Bm) Number of variables Number of functions ( ) Size of the semi-lattice
Incompletely specified functions Shortcut: use 2-level minimizers ! (ESPRESSO, Minato-Morreale, Scherzo)
f g f g f g a b a b a b 10 11 1 10 11 01 10 10 00 | 11 1 1 |1 00 01 10 11 00 01 10 11 00 01 10 11 2-level minimizers Sum-of-products Subclasses of Boolean relations General Boolean Relations Incompletely Specified Functions Completely Specified Functions ESPRESSO Minato-Morreale (BDDs) Scherzo (ZDDs) ...
f g a b 10 00 | 11 1 01 |10 00 01 10 11 10 00 1 01 |10 10 11 1 01 |10 10 00 11 01 |10 10 00 01 01 |10 10 11 01 01 |10 10 11 11 01 |10 10 00 01 01 10 00 01 10 10 00 11 01 10 00 11 10 10 11 01 01 10 11 01 10 10 11 11 01 10 11 11 10
f g a b 10 00 | 11 1 01 |10 00 01 10 11 Gyocro 10 00 1 01 |10 10 11 1 01 |10 10 00 11 01 |10 10 00 01 01 |10 10 11 01 01 |10 10 11 11 01 |10 10 00 01 01 10 00 01 10 10 00 11 01 10 00 11 10 10 11 01 01 10 11 01 10 10 11 11 01 10 11 11 10
? Impossible ! It’s a local minimum GYOCRO x:=Initial Solution; do REDUCE(x); EXPAND(x); IRREDUNDANT(x); while (x is improved); 10 00 11 01 10 11 11 10
f a b 1 00 01 10 11 f g a b f 10 00 | 11 1 01 |10 00 01 10 11 Projections
g f a b a b 1 0 1 00 01 10 11 00 01 10 11 f g a b 10 00| 11 1 01|10 00 01 10 11 g Projections f
g f a b a b 0 1 1 00 01 10 11 00 01 10 11 f g a b 10 00 | 11 1 01 |10 00 01 10 11 Projections f f g a b 10 1 00 01 10 11 merge g R R’ R’ is an incompletely specified function, but … has more flexibility than R (R R’)
ISF projection BR
ISF ISF minimizer done !
ISF ISF minimizer incompatible !
f g a b f g f g f g 10 00 | 11 1 01 |10 00 01 10 11 10 1 10 10 11 11 10 00 | 11 1 01 |10 projection minimization compatible? The recursive paradigm ISF with more flexibility
f g a b f g f g f g 10 00 | 11 1 01 |10 00 01 10 11 10 1 10 10 11 11 10 00 | 11 1 01 |10 projection minimization compatible? The recursive paradigm ISF with more flexibility