The Synthesis of Cyclic Combinational Circuits Marc D.Riedel, Jehoshua Bruck California Institute of Technology Presenter : Chi-Yun Cheng
Introduction 7-segment display decoder There are 4 PIs and 7 POs x 3 x 2 x 1 x 0 Digit a b c d e f g
Introduction LED Display
Introduction The display of “ e ” should be light up at “ 0 ” “ 2 ” “ 3 ” “ 5 ” “ 6 ” “ 8 ”. So the original PO : e = x 0 ’ x 1 ’ x 2 ’ x 3 ’ + x 0 ’ x 1 x 2 ’ x 3 ’ + x 0 x 1 x 2 ’ x 3 ’ + x 0 x 1 ’ x 2 x 3 ’ + x 0 ’ x 1 x 2 x 3 ’ + x 0 ’ x 1 ’ x 2 ’ x 3 x 3 x 2 x 1 x 0 Digit
Introduction Cyclic Network (These outputs are synthesized) a = x 0 ’ x 3 ’ c + x 1 ’ c b = x 0 ’ (x 1 ’ x 2 ’ + x 1 x 3 ’) c = x 0 x 2 ’ x 3 ’ + x 2 ’ (x 1 ’ x 3 + e) d = x 1 x 2 ’ x 3 ’ + a (x 2 + x 3 ) e = x 0 x 3 ’ d + b f = x 2 ’ c + x 3 ’ e’ g = x 0 x 3 ’ + a g a b c d e f
Introduction With x 3 = 0, x 2 = 0, x 1 = 0, x 0 = 1 a = c = 0 b = 0 c = e = 0 d = 0 e = b + d = 0 f = e ’ + c = 1 g = 1 bd e c a f a b c d e f g
Definition Target function : The original PO (Composed by boolean input variables) Ex: b = x 0 ’ x 1 ’ x 2 ’ x 3 ’ + x 0 ’ x 1 x 2 ’ x 3 ’ + x 0 ’ x 1 ’ x 2 x 3 ’ + x 0 ’ x 1 ’ x 2 ’ x 3 In the network, f = x 2 ’ c + x 3 ’ e ’ f is node function, c, e are internal variables g a b c d e f
Synthesis The goal is to construct a network that computes target functions with the cost as low as possible. The operation we use is Substitution. Using target functions to represent each other e = x0 x3’ d + b e = x 0 ’ x 1 ’ x 2 ’ x 3 ’ + x 0 ’ x 1 x 2 ’ x 3 ’ + x 0 x 1 x 2 ’ x 3 ’ + x 0 x 1 ’ x 2 x 3 ’ + x 0 ’ x 1 x 2 x 3 ’ + x 0 ’ x 1 ’ x 2 ’ x 3
Synthesis f 1 = x 1 ’ x 2 x 3 ’ + x 2 ’ (x 1 + x 3 ) f 2 = x 1 ’ x 2 ’ x 3 ’ + x 1 (x 2 + x 3 ) f 3 = x 3 ’ (x 1 ’ + x 2 ’ ) + x 1 ’ x 2 ’ Substitution f 3 into f 1 we got f 1 = f 3 (x 1 +x 2 )+x 2 ’ x 3 Substitution f 3 into f 2 we got f 2 = x 1 ’ x 2 ’ x 3 ’ + x 1 f 3 ’ Substitution f 2 and f 3 into f 1 we got f 1 = x 2 ’ x 3 + f 2 ’ f 3
Synthesis Each target function can try substituting different sets of functions. For f 1, it can be substitution by : ( none, [f 2 ], [f 3 ], [f 2 +f 3 ] ) = > 4 ways to substitution. f 1 = x 1 ’ x 2 x 3 ’ + x 2 ’ (x 1 + x 3 ) f 1 = f 3 (x 1 + x 2 ) + x 2 ’ x 3 f 1 = x 2 ’ x 3 + f 2 ’ f 3
Synthesis Different substitution sets cause different cost. f 1 = x 1 ’ x 2 x 3 ’ + x 2 ’ (x 1 + x 3 ) => cost 6 f 1 = f 3 (x 1 + x 2 ) + x 2 ’ x 3 => cost 5 f 1 = x 2 ’ x 3 + f 2 ’ f 3 => cost 4 In general, augmenting the set of functions available for substitution, makes the cost unchanged or lower.
Algorithm The goal is to select a choice of node functions that minimize the cost and make the whole circuit combinational. With n nodes, there are 2 n-1 substitutional sets of for each node. The total possibilities is n ‧ 2 n-1. It ’ s evidently intractable search all the conditions, so we use branch-and-bound approach.
The “ Break-Down ” Approach A branch terminates when it hits a combinational solution. Begins with a densely connected network. As edges are excluded in the process, the cost of the network remains the same or increase.
The “ Break-Down ” Approach Analyze the current branch. If it ’ s combinational, add it to the solution list. Otherwise, select a set of edges to exclude. It’s not combinational Select edge f 1 ←f 2 Select edge f 2 →f 3
The “ Break-Down ” Approach For each edge in the set, create a new branch for a new node expression If the cost of the new branch equals or exceeds that of a solution found, kill the branch.
The “ Break-Down ” Approach Mark the current branch as “ explored ” Set the current branch to be the lowest cost unexplored branch ← Current branch Explored ← Current branch
The “ Build-Up ” Approach A branch terminates when it hits a non-combinational solution. Begins with an empty edge set. This initial branch provides a lower bound on the cost. As edges are included, the cost of the network remains the same or decreases.
The “ Build-Up ” Approach Analyze the current branch. If it ’ s not combinational, then discard it. Otherwise, select a set of edges to include. It’s combinational Select edge f 2 → f 3 Select edge f 2 → f 1
The “ Build-Up ” Approach For each edge in the set, create a new branch for a new node expression.
The “ Build-Up ” Approach Mark the current branch as “ explored ” Set the current branch to be the lowest cost unexplored branch ← Current branch Explored ← Current branch
Results Randomly Generates Networks # In# OutCyclic Solutions Found Avg. Improvement Range 55100%8.5 %3% - 17 % 5796%9.1 %0% - 18 % %12.0 %2% - 20 % %13.4 %7 % - 23 % %14.2 %8 % - 18 % %5.6 %0 % - 11 % %3.6 %0 % - 10 %
Thank You