Professional Documents
Culture Documents
Multilevel ML
Multilevel ML
3
9 2-level minimization a la ESPRESSO 9 Manipulates (reshapes) SOP covers of functions 9 Heuristic: REDUCE - EXPAND - IRREDUNDANT 9 Multi-level minimization, where final form of logic network is not
just 2-level SOP AND-OR form
,9 4: ;08003841,7
3 3
,9 8 019
9 New, more general model of logic networks 9 New operators: forms of division 9 New heuristic minimization strategies to use this model + operators
,9/4 0300/
typical 2-level design = many gates, but only 2 levels of logic, so fastest possible
area
Why Multi-Level?
3 #,70 800
0;0 /08 3814770, - 9 3 8 2489 147
5 0.0841- 079 3 8 9 Even smallest things routinely done as multi-level 9 Example: full adder cell
2-level form ab cin sum = 1 1 1
sum cin sum a b
Multilevel form
a b cin
ab cin cout = 1 1 1 1
cout cout = ab + acin + bcin 9 gates, 25 inputs
primary inputs
internal vertices
primary outputs
3 4
9 Look at some operators that one can use to manipulate these networks 9 Some are fairly simple structural operations on graphs 9 Some will require entirely new operators (like division) 9
,9
Cost =
nodes
# literals = 33
a b c
c e d a s b p r
literals = 33
a b c
w x y z
literals =
32
a b c
w x y z
literals =
32 ( = -1 good )
a b c
a b c d e
w x y z
literals =
29
( = -4 good )
w x y z
b c
literals =
29
( = -4 good )
9 Uses existing node in network to simplify SOP form of another node 9 Change SOP form in a node by removing a factor, and adding a
connection from vertex with that common (eg, extracted) factor Note: After we extracted factor k, we can now recognize that t=ka+kb+e = kq +e so substitute in q for a+b
w s=r+b t=ka+kb+e x y
a b c d e
w x y z
literals =
27
( = -2 good )
a b c d e
j=a+b+c
v=jd+ae s=ke+a+b
w x y z
t=kq+e
9 Use Boolean network model 9 Provide collections of network operators 9 Users invoke scripts that run a sequence of these ops on their design
,9 8,8.7 59 44 0
Scripts
3 070 8, 1,24:8 8.7 5947 3, 1742 $ 944 3 % 084
., 0/ 7: 0/ 8.7 59
9 A sequence of network ops...
sweep; eliminate -1 simplify -m nocomp eliminate - 1 sweep; eliminate 5 simplify -m nocomp resub -a fx resub -a; sweep eliminate -1; sweep full_simplify -m nocomp
sweep; eliminate -1 simplify -m nocomp eliminate - 1 sweep; eliminate 5 simplify -m nocomp resub -a
fx resub -a; sweep eliminate -1; sweep full_simplify -m nocomp
Sweep Examples
Sweep examples
a F=a G=F G
H=F
9 threshold > 0 means we allow some increase in literal count 9 Sets up opportunities for other simplifications (kind of like
REDUCE in ESPRESSO)
Value of Elimination
3 $.03,7 4
9 We have a vertex that has L literals; Its used N times in other vertices 9 What happens if we eliminate it? What is value of this? 9 Answer is: change in total number of literals in design
Now, eliminate vertex F G1 = F + ... G2 = F + ... F = L literals GN = F + ... G1 = L lits + ... G2 = L lits + ... GN = L lits + ... Total literals after eliminate= N*L Change = value = N*L - L - N
Eliminate Examples
Eliminate -1 F = ab G = ab + x G=F+x Eliminate 5 G1 = F + d G2 = F + ef F = abc G3 = F + gh G4 = Fd + e G1 = abc + d G2 = abc + ef G3 = abc + gh G4 = abcd + e literals = 3 - 4 = -1
literals = 19 - 14 = +5
3 1: *8 25 1
9
larger set of dont cares... ...works harder to try to get a better (smaller SOP) answer
Simplify Examples
Simplify
F = a + ab + c
F=a+c
G = a + a
G=1
Resub Example
Resub example 1 F = ab G = F+c G = ab+c H = ab+e Resub example 2 F = ab G = ab+c H = a+b+cd F = ab H = F+cd G = F+c F = ab H = F+e
Network Ops: Fx
3
9 Extracts common subexpressions
that are either 9 A single cube (eg, bcd) 9 A double cube (eg, ab + bcd) Result is a whole bunch of new nodes in the network that represent these common factors removed Note that after you get these factors, you run resub to see which ones you can use in other places sweep; eliminate -1 simplify -m nocomp eliminate -1 sweep; eliminate 5 simplify -m nocomp resub -a
9 9
fx Example
fx example
resub != fx
3 1 97 08941 3/ .422431,.9478
9 It adds nodes to the network to do this 9 It substitutes these new nodes in where it helps overall literal count 9 It CANNOT go find or extract new factors 9 It just looks at what nodes are already around in network 9 It tries to use these to substitute one node into another to save literals 9 Cost is opposite as well 9 Extract N instances of a factor with L literals 9 Literal savings is N + L - N*L
,9 8, 70,/ 3309 47
3 708:-:808
Rugged Script
Initial houskeeping
sweep; eliminate -1 simplify -m nocomp eliminate -1 sweep; eliminate 5 simplify -m nocomp resub -a fx resub -a; sweep eliminate -1; sweep full_simplify -m nocomp