View
219
Download
0
Category
Preview:
DESCRIPTION
Introduction LED Display
Citation preview
The Synthesis of Cyclic Combinational Circuits
Marc D.Riedel , Jehoshua BruckCalifornia Institute of TechnologyPresenter : Chi-Yun Cheng
Introduction 7-segment display decoder There are 4 PIs and 7 POs
x3 x2 x1 x0 Digit
0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9
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 = x0’ x1’ x2’ x3’ + x0’ x1 x2’ x3’+ x0 x1 x2’ x3’ + x0 x1’ x2 x3’ + x0’ x1 x2 x3’ + x0’ x1’ x2’ x3
x3 x2 x1 x0 Digit
0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9
Introduction Cyclic Network (These outputs are synthesized)
a = x0’ x3’ c + x1’ cb = x0’ (x1’ x2’ + x1 x3’)c = x0 x2’ x3’ + x2’ (x1’ x3 + e)d = x1 x2’ x3’ + a (x2 + x3)e = x0 x3’ d + bf = x2’ c + x3’ e’g = x0 x3’ + a
g
ab
c
de
f
Introduction With x3 = 0 , x2 = 0 , x1 = 0 , x0 = 1
a = c = 0b = 0c = e = 0d = 0e = b + d = 0f = e’ + c = 1g = 1
b d
e
c
a f
a
b
c
d
e
f
g
Definition Target function : The original PO (Composed by boolean input
variables) Ex: b = x0’ x1’ x2’ x3’ + x0’ x1 x2’ x3’+ x0’ x1’ x2 x3’ + x0’ x1’
x2’ x3
In the network , f = x2’ c + x3’ e’
f is node function , c , e are internal variables
g
ab
c
de
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 othere = x0 x3’ d + b
e = x0’ x1’ x2’ x3’ + x0’ x1 x2’ x3’ + x0 x1 x2’ x3’ + x0 x1’ x2 x3’ + x0’ x1 x2 x3’ + x0’ x1’ x2’ x3
Synthesisf1 = x1’ x2 x3’ + x2’ (x1 + x3)
f2 = x1’ x2’ x3’ + x1 (x2 + x3)
f3 = x3’ (x1’ + x2’) + x1’ x2’Substitution f3 into f1 we got f1 = f3(x1+x2)+x2’x3
Substitution f3 into f2 we got f2 = x1’ x2’ x3’ + x1 f3’
Substitution f2 and f3 into f1 we got f1 = x2’x3 + f2’f3
Synthesis Each target function can try substituting
different sets of functions .
For f1 , it can be substitution by : ( none , [f2] , [f3] , [f2+f3] ) = > 4 ways to substitution .
f1 = x1’ x2 x3’ + x2’ (x1 + x3)
f1 = f3 (x1 + x2) + x2’ x3
f1 = x2’ x3 + f2’ f3
Synthesis• Different substitution sets cause different cost .
f1 = x1’ x2 x3’ + x2’ (x1 + x3) => cost 6
f1 = f3 (x1 + x2) + x2’ x3 => cost 5
f1 = x2’ x3 + f2’ f3 => 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 2n-1 substitutional sets of for each node . The total possibilities is n‧ 2n-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 f1←f2 Select edge f2→f3
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 f2→f3Select edge f2→f1
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
ResultsRandomly Generates Networks
# In # Out Cyclic Solutions Found
Avg. Improvement
Range
5 5 100% 8.5 % 3% - 17 %5 7 96% 9.1 % 0% - 18 %5 10 100% 12.0 % 2% - 20 %5 15 100 % 13.4 % 7 % - 23 %5 20 100 % 14.2 % 8 % - 18 %7 10 96 % 5.6 % 0 % - 11 %7 15 88 % 3.6 % 0 % - 10 %
Thank You
Recommended