Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b d c b a h g f e inputs outputs 0 0 0 0 3 0 0 1 1 1 0 0 0 1 2 0 0 1 0 4 0 1 0 0 5 0 1 0 1 9 1 0 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 p Circuit a e b f c g d h Illustrate concepts with a simple example. Inputs, outputs, target functions. h g f e ) ( d c b a cd + = )) ac bc
Example: Digits of p h Multilevel acyclic network: h g f e = b d a h g + g ) ( g de a d + ) ( d a b c h + e Usual approach: enforce a partial ordering. Result is a multi-level acyclic network (as obtained with Berkeley SIS simplify command.) ) ( d c b a cd + Cost: 33 (literal count) f
Example: Digits of p e g h f Multilevel cyclic network: h g f e = ) ( b h d c a f + ) ( bc d b a g + ) ( c b d a e h + ) ( cd d c a f + Drop the requirement of a partial ordering. Generally lower cost, since every function can potentially benefit from work done elsewhere. Cyclic network: how do we ascertain if it is combinational? Cost: 31 (literal count) Is it combinational?
Example: Digits of p e g h f Inputs d,c,b,a = [0,0,0,0]: h g f e = ) ( + = 1 = 1 ) ( bc d b a g + = g = 1 ) ( c b d a e h + = 0 = 0 ) ( cd d c a f + = 0 = 0 Try specific input assignments. In each case, cyclic dependencies disappear and outputs are well-defined. Outputs h,g,f,e = [0,0,1,1] (3 is the first digit of p )
Example: Digits of p e g h f Inputs d,c,b,a = [1,1,1,1]: h g f e = ) ( + = + h f = 1 ) ( bc d b a g + = 1 = 1 ) ( c b d a e h + = h e = 0 ) ( cd d c a f + = f = 0 Outputs h,g,f,e = [0,0,1,1] (3 is the 16th digit of p )
Analysis e g h f There are cycles in a topological sense, but none are sensitized in an electrical sense.
Analysis e Timing Analysis: find the length of sensitized paths. ? Combinationality Analysis: ensure that there are no sensitized cycles. Functional timing analysis: find the lengths of sensitized paths. Combinationality analysis: ensure that no sensitized paths bite their own tail.
Synthesis Goal: optimize a multi-level network representation. Strategy: introduce cycles in the substitute/minimize step. network N1 network N2 h ) ( d c b a cd + = g )) ac f bc e ) ( cd d c a f + h = b e g bc Multi-level logic synthesis: obtain the best multi-layer, structured representation (technology independent phase). Substitute/minimize operation: express or re-express a function in terms of other functions. Generate candidate networks. Cost 40 (literal count) Cost 31 (literal count)
Analysis Novel algorithm based on a “first-cut” approach. e Observation: for each input assignment, in every strongly-connected component at least one node must be fully defined independently of the others. g We propose a new method for analysis, with advantages in the context of synthesis. Recursive formulation, based on a “first-cut” approach. f h
Marginal Given a node function e g h f ) , ( Y X F the marginal Y F ¯ specifies, in terms of X, when F is fully defined independently of Y. Marginal: Specifies when a function does not depend on variables. Dual of boolean difference. X: primary input variables Y: internal variables
Marginal For example, consider e g h f ) ( b h d c a f + e = Suppose : = b ) ( 1 h d c a f + e = = 1
Marginal For example, consider e g h f ) ( b h d c a f + e = Suppose : = d c a 0) ( b h f + e = = b
Marginal For example, consider e g h f ) ( b h d c a f + e = For input assignments that satisfy b d c a h f e + = ¯ ) , ( e is fully defined, independently of f, h. The marginal can be computed efficiently (with BDD’s)
Analysis e First-Cut Analysis: Cut each node from the network, g h f First-Cut Analysis: Cut each node from the network, and apply the algorithm recursively.
Analysis Necessary condition: e g h f Either h f e ¯ ) , ( or g f ¯ h
Analysis Necessary and sufficient condition: e g h f Either h f e ¯ ) , ( and is combinational or g f ¯ and is combinational h e g ¯ ) , ( or and is combinational or f h ¯ and is combinational
Analysis for Synthesis Advantage of Recursive Formulation: Attack problem by breaking network into components. 3 N 2 1 Optimal local solution (subject to constraints) is part of optimal global solution (subject to constraints).
Analysis for Synthesis Exclude non-combinational components. e h f g Design f, g component: f = ) ( g de a h + g = ) ( c b e a f h + Not combinational. Exclude all solutions with this component.
Analysis for Synthesis Cache combinational components. e Design e, f, g component: ) ( c b d a e h + bc g f = f g h Combinational. Focus on h.
Analysis for Synthesis Cache combinational components. e ? Design e, f, g component: ) ( c b d a e h + bc g f = f g h Combinational. Focus on h.
Analysis for Synthesis Cache combinational components. e ? Design e, f, g component: ) ( c b d a e h + bc g f = f g h Combinational. Focus on h.
Analysis for Synthesis Cache combinational components. e ? Design e, f, g component: ) ( c b d a e h + bc g f = f g h Combinational. Focus on h.
Analysis for Synthesis Cache combinational components. e ? Design e, f, g component: ) ( c b d a e h + bc g f = f g h Combinational. Focus on h.
Analysis for Synthesis Cache combinational components. e ? Design e, f, g component: ) ( c b d a e h + bc g f = f ) ( cd d c a f + h = g h Combinational. Combinational. Focus on h.