Ruei-Rung, Lee 1
Outline Introduction Background General Non-disjoint Decompositions Rewriting K-LUT Networks Conclusions and Future Work 2
Introduction Function decomposition Algebraic methods Rely on an SOP representation of the logic functions Boolean methods Truth-table H D c b a F c b a 3
Background Cut: A set of nodes(leaves) with respect to a node n 1) Each path from any PI to n passes through at least one leaf. 2) For each leaf, there is at least one path from a PI to n passing through the leaf and not through any other leaf. n c 4
Disjoint-support Decomposition Disjoint-support decomposition(DSD): A decomposition in which the set of nodes of the resulting Boolean network have disjoint supports. DSD is a tree. Bound set: The set of leaf variables of any sub-tree of the DSD Free set: The remaining variables a b1 b2 5 F b1 a
(a,b)-decomposition A function F has an (a,b)-decomposition if it can be written as F(a,b,c) =H(D(a,b),b,c) where D is a single- output function. D is called the divisor and H the dividend. H D c b a F c b a 6
Theorem 3.1 A function F(a, b, c) has an (a, b)-decomposition ⇔ each of the 2 |b| cofactors of F with respect b has a DSD structure in which the variables a are in a separate block. 7
Proof A function F(a, b, c) has an (a, b)-decomposition ⇒ each of the 2 |b| cofactors of F with respect b has a DSD structure in which the variables a are in a separate block. Suppose F has an (a,b)-decomposition F(x) =H(D(a,b),b,c). Let b j = b1¬b2¬b3b4 for k=4. This sets b = 1,0,0,1 F b j (a, c) = H(D(a,1,0,0,1),1,0,0,1, c) ≡ H b j (D b j (a),c). 8
Proof A function F(a, b, c) has an (a, b)-decomposition <= each of the 2 |b| cofactors of F with respect b has a DSD structure in which the variables a are in a separate block. F b j (a, c) =H j (D j (a),c) for some functions H j and D j. We want to find H(x, b, c) and D(a, b) such that F(a, b, c) =H(D(a,b),b,c). Let D(a, b) =, H(T, b, c) = F’(a, b, c) =H(D(a,b),b,c). F’ b j (a, c) = H j (D b j (a,b), c) = H j (D j (a), c) = F b j (a, c). 9
Example (a,b) = ((e, f,y),x), c=(g,h) F ¬x =¬ye+yf and F x =¬yg+yh D 0 =¬ye+yf and D 1 = y F ¬x =H 0 (D 0 )=D 0,F x =H 1 (D 1,g,h)=¬D 1 g+D 1 h D = ¬xD 0 + xD 1 = ¬x(¬ye+yf)+ x(y), H(T,x,g,h) = ¬xH 0 (T)+ xH 1 (T,g,h) = ¬xT + x(¬Tg+Th) F = H(D,x,g,h) = ¬xD+x(¬Dg+Dh). 10
Bound Set Independent Cofactors F(a, b, c) =H(D(a,b),b,c) Bound set independent cofactors(bsi-cofactors): A cofactor of F with respect to b is independent of a. Otherwise, bsd-cofactors. E.g. F = ab + ¬bc, F ¬b = c is independent of a. If F b j (a, c) is a bsi-cofactor, F b j (a, c) = H b j (D b j (a),c) D b j (a) can be any function. 11
Theorem 3.2 f ≅ g : f equals g up to complementation. Let F have an (a,b)-decomposition with an associated divisor D(a, b) = Then D’(a,b) = is also an (a,b)-divisor ⇔ D’ j (a) ≅ D j (a), ∀ j ∈ J, where J is the set of indices of the bsd- cofactors of F. 12
Proof Let F have an (a,b)-decomposition with an associated divisor D(a, b) = Then D’(a,b) = is also an (a,b)-divisor ⇒ D’ j (a) ≅ D j (a), ∀ j ∈ J, where J is the set of indices of the bsd- cofactors of F. F = H(D(a,b),b,c) = H’(D’(a,b),b,c) F b j = H b j (D b j (a),c) = H’ b j (D’ b j (a),c) ⇒ D’ b j (a) ≅ D b j (a) HbjHbj DbjDbj c a H’ b j DbjDbj c a D’ b j fbjfbj fbjfbj 13
Let F have an (a,b)-decomposition with an associated divisor D(a, b) = Then D’(a,b) = is also an (a,b)-divisor D’ j (a) ≅ D j (a), ∀ j ∈ J, where J is the set of indices of the bsd- cofactors of F. H’ 1 Proof H1H1 D1D1 c b a H2H2 D2D2 c b a H1H1 D1D1 c b a H2H2 D2D2 c b a H’ 2 D’ 2 D’ 1 14
(a,b)-compatible Two functions, f 1, f 2, are said to be (a,b)-compatible if each has an (a,b)-divisor, and D 1 b j (a) ≅ D 2 b j (a), ∀ j ∈ J 1 ∩j 2, where J i is the set of indices of the bsd-cofactors of F i. H1H1 D1D1 c b a H2H2 D1D1 c b a D2D2 f1f1 f2f2 15
Theorem 3.3 There exists a common (a,b)-divisor of {F 1, …, F n } ⇔ {F 1, …, F n } is pair-wise (a,b)-compatible. 16
Proof There exists a common (a,b)-divisor of {F 1, …, F n } ⇒ {F 1, …, F n } is pair-wise (a,b)-compatible. F 1 (a,b,c) = H 1 (D(a,b),b,c), F 2 (a,b,c) = H 2 (D(a,b),b,c) D 1 = D 2 =D D 1 b j (a) ≅ D 2 b j (a), F 1 and F 2 are (a,b)-compatible. 17
Proof There exists a common (a,b)-divisor of {F 1, …, F n } <= {F 1, …, F n } is pair-wise (a,b)-compatible. Suppose F1 and F2 are (a,b)-compatible. F 1 (a,b,c) = H 1 (D 1 (a,b),b,c), F 2 (a,b,c) = H 2 (D 2 (a,b),b,c) 1) Define D’ b j (a) = D 1 b j (a) [ ≅ D 2 b j (a)], if b j are bsd for F 1 and F 2 2) D’ b j (a) = D 1 b j (a), if b j is bsd for F 1 and bsi for F 2 3) D’ b j (a) = D 2 b j (a), if b j is bsi for F 1 and bsd for F 2 4) D’ b j (a) = 0, if b j is bsi for F 1 and F 2 D’(a,b) =, is an (a,b)-divisor of both F 1 and F 2 (by Theorem 3.2) 18
Rewriting K-LUT Networks Objective: To rewrite a local window of a K-LUT mapped network. Given n and a cut C(n), the problem is to find a decomposition of f n (c) composed of the minimum number of K (or less) input blocks. n c 19
Example Assume K = 4. Suppose x is chosen as the cofactoring variable. The cofactors are F ¬x =¬ye+yf and F x =¬yg+yh. The K-1-feasible bound-sets are {{ ∅ },{e},{f},{y},{e,f,y}}, and {{ ∅ },{g},{h},{y},{g,h,y}}. A common bound-set {e,f,y} of size K-1 exists. H D c b a 20
Experimental Results 21
Conclusions An algorithm for decomposition of logic functions. 1) based on cofactoring and disjoint-support decomposition. 2) faster than previous solutions relying on BDD based decomposition and Boolean satisfiability 3) 5.4% reduction in area 22
Future Work Exploring other data structures for cofactoring and DSD decomposition, to allow processing of functions with more than 16 inputs. 23
Thank You 24