240 likes | 257 Views
This comprehensive document covers various methods and theorems related to Boolean logic network decomposition. It includes detailed explanations and examples for better understanding. The text is written in a technical language.
E N D
Boolean Factoring and Decomposition of Logic Networks Ruei-Rung, Lee
Outline • Introduction • Background • General Non-disjoint Decompositions • Rewriting K-LUT Networks • Conclusions and Future Work
Introduction • Function decomposition • Algebraic methods • Rely on an SOP representation of the logic functions • Boolean methods • Truth-table H F D a c b a c b
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
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: Theremainingvariables F a a b2 b1 b1 b2
(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 F D a c b a c b
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.
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 bj = b1¬b2¬b3b4 for k=4. This sets b = 1,0,0,1 Fbj(a, c) = H(D(a,1,0,0,1),1,0,0,1, c) ≡ Hbj(Dbj(a),c).
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. • Fbj(a, c) =Hj(Dj(a),c) for some functions Hj and Dj. 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’bj(a, c) = Hj (Dbj (a,b), c) = Hj (Dj (a), c) = Fbj(a, c).
Example • (a,b) = ((e, f ,y),x), c=(g,h) F¬x =¬ye+yf and Fx =¬yg+yh • D0=¬ye+yf and D1 = y F¬x =H0(D0)=D0 ,Fx=H1(D1,g,h)=¬D1g+D1h • D = ¬xD0 + xD1 = ¬x(¬ye+yf)+ x(y), H(T,x,g,h) = ¬xH0(T)+ xH1(T,g,h) = ¬xT + x(¬Tg+Th) • F = H(D,x,g,h) = ¬xD+x(¬Dg+Dh).
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 Fbj(a, c) is a bsi-cofactor, Fbj(a, c) = Hbj(Dbj(a),c) Dbj(a) can be any function.
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)≅Dj(a), ∀j∈J, where J is the set of indices of the bsd-cofactors of F.
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)≅Dj(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) • Fbj = Hbj (Dbj (a),c) = H’bj (D’bj (a),c) ⇒ D’bj(a)≅Dbj(a) fbj fbj Hbj H’bj D’bj Dbj c Dbj c a a
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)≅Dj(a), ∀j∈J, where J is the set of indices of the bsd-cofactors of F. H’1 H’2 H1 H2 H2 H1 D2 c D1 c D2 c D1 c D’1 D’2 a a a a b b b b
(a,b)-compatible • Two functions, f1, f2, are said to be (a,b)-compatible if each has an (a,b)-divisor, and D1bj(a) ≅ D2bj(a), ∀j∈J1∩j2, where Ji is the set of indices of the bsd-cofactors of Fi. f2 f1 H1 H2 D1 c D1 c D2 a a b b
Theorem 3.3 • There exists a common (a,b)-divisor of {F1, … , Fn} ⇔ {F1, … , Fn} is pair-wise (a,b)-compatible.
Proof • There exists a common (a,b)-divisor of {F1, … , Fn} ⇒{F1, … , Fn} is pair-wise (a,b)-compatible. • F1 (a,b,c) = H1 (D(a,b),b,c), F2(a,b,c) = H2 (D(a,b),b,c) D1=D2=D D1bj(a) ≅ D2bj(a), F1 and F2 are (a,b)-compatible.
Proof • There exists a common (a,b)-divisor of {F1, … , Fn} <={F1, … , Fn} is pair-wise (a,b)-compatible. • Suppose F1 and F2 are (a,b)-compatible. • F1 (a,b,c) = H1 (D1 (a,b),b,c), F2(a,b,c) = H2(D2(a,b),b,c) 1) Define D’bj(a) = D1bj(a) [≅ D2bj(a)], if bj are bsd for F1 and F2 2) D’bj(a) = D1bj(a), if bj is bsd for F1 and bsi for F2 3) D’bj(a) = D2bj(a), if bj is bsi for F1 and bsd for F2 4) D’bj(a) = 0, if bj is bsi for F1 and F2 • D’(a,b) = , is an (a,b)-divisor of both F1 and F2 (by Theorem 3.2)
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 fn(c) composed of the minimum number of K (or less) input blocks. n c
Example • Assume K = 4. • Suppose x is chosen as the cofactoring variable. • The cofactors are F¬x=¬ye+yf and Fx =¬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 a b
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
Future Work • Exploring other data structures for cofactoring and DSD decomposition, to allow processing of functions with more than 16 inputs.