A Robust Algorithm for A Robust Algorithm for Approximate Compatible Approximate Compatible Observability Don’t Care Observability Don’t Care (CODC) Computation (CODC) Computation Nikhil S. Saluja University of Colorado Boulder, CO Sunil P. Khatri Texas A&M University, College Station, TX
21
Embed
A Robust Algorithm for Approximate Compatible Observability Don’t Care (CODC) Computation Nikhil S. Saluja University of Colorado Boulder, CO Sunil P.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
A Robust Algorithm for A Robust Algorithm for Approximate Compatible Approximate Compatible Observability Don’t Care Observability Don’t Care
(CODC) Computation(CODC) Computation
Nikhil S. SalujaUniversity of Colorado
Boulder, CO
Sunil P. KhatriTexas A&M University,
College Station, TX
OutlineOutline
Motivation Computation of Don’t Cares ACODC Algorithm
Proof of correctness
Experimental Results Possible extensions Conclusions
MotivationMotivation
…
…..
…..
z1 z2 z3 zp
x1 x2 x3 xn
yj = Fj
y1 y2yw
n mSDC B ( )
( )jj INT
SDC SDC
( )j j jSDC y F ( )k kXDC G x
( )k PO
( )k
k PO
XDC XDC
( )k
jkj
zODC
y
( )j jk
k PO
ODC ODC
Technology independent logic optimization Typically compute Don’t Cares after a higher level description of a design is encoded and translated into gate level description. Don’t Cares (DCs)
The DCs computed are a function of the PIs and internal variables of the Boolean network Image computation used to express the DCs in
terms of node fanins ROBDD based operation
Finally, the node function is minimized (using ESPRESSO) with respect to the computed (local) DCs
Literal count reduction is the figure of merit
Don’t CaresDon’t Cares ODC based
Very powerful, represent maximum flexibility Minimizing a node j with respect to its ODC requires recomputation of other nodes’ ODCs
Compatible ODC (CODC) based Subset of ODC, requires ordering of fanins Recomputation not required, useful in many cases
In either case, image computation required To obtain DCs in the fanin support of the node Involves ROBDD computation
Not robust
Note that is the consensus operator The first fanin has
which is the maximum flexibility A new edge eik should have its CODC as the conjunction of with the condition that other inputs j < i are not insensitive to input yj ( ) or are independent of yj ( )
CODC ComputationCODC Computation Traverse circuit in reverse topological order
CODC of primary output z initialized to its XDC
Computation performed in 2 phases for each node Phase 1
11
kk k
fCODC CODC
y
yk
fk
y1
y2yi-1
yi
y1 < y2 < … < yi
k
i
ky
i
ky
kik CODC
y
fC
y
fC
y
fCODC
i
))...((11
11
iFOk
iki CODCCODC
jyC
k
i
f
y
k
j
f
y
jyC
CODC ComputationCODC Computation Phase 2 - image computation using ROBDDs
Build global BDDs of each node in the network, including POs
For large circuits this step fails This is the main weakness of the CODC computation
Next compute CODCs of node k in terms of PIs Substitute each internal node literal by its global BDD
Compute image of this function in the space of local fanins of node k
Yields CODC in terms of local fanins of node k
Finally, call ESPRESSO on the cover of node k, with the newly computed CODC as don’t care
Contributions of this Contributions of this WorkWork
Perform CODC based Don’t Care computation approximately Yields 25X speedup Yields 33X reduction in memory utilization Obtains 80% of the literal reduction of the full
CODC computation Handles large circuits extremely fast (circuits
which CODC based computation times out on) Formal proof of correctness of the approximate
CODC technique
Approximate CODCsApproximate CODCs
Consider a sub-network rooted at the node j of interest
Sub-network can have user defined topological depth k
Compute the CODC of j in the sub-network (called ACODC)
This ACODC is a subset of the CODC of j
jjjj
j
AlgorithmAlgorithm
Traverse η in reverse topological order
for (each node j in network η) do
ηj = extract_subnetwork(j,k)
ACODC(j) = compute_acodc(ηj,j)
optimize(j,ACODC(j))
end for
Proof of CorrectnessProof of Correctness
Terminology Boolean network ηxz X primary inputs Z primary outputs W and V are two cuts ηxw, ηvz and ηvw define sub-networks is the CODC of yk where P is either X
or V and Q is either W or Z is the CODC of yk mapped back to its
fanin support after image computation
PQkCODC
FIPQkCODC ,
v wx z
y1
y2
yi-1yi
ykfk
Cutset as Primary Cutset as Primary OutputOutput
To show ≥ For any PO z, = ø For , ≠ ø For W nodes as POs, = ø CODC computation of yk is identical for both
cases except last term in equation
In general, the last term for a node in first case, contains last term for same node in latter case since ≥
Hence ≥
FIXZzCODC ,
FIXZwCODC ,Ww
FIXWwCODC ,
k
i
ky
i
ky
kik CODC
y
fC
y
fC
y
fCODC
i
))...((11
11
FIXZwCODC , FIXW
wCODC ,
FIXWkCODC ,FIXZ
kCODC ,
w
x
z
yk
fk
y1
y2yi-1
yi
FIXWkCODC ,FIXZ
kCODC ,
Cutset as Primary InputCutset as Primary Input Define To compute ACODC at yk, compute ,
then compute image I1 of this on the V space, and then project the result back to local fanins of yk
The full CODC is .We then compute the image I2 of this on the X space, and next project the result back to local fanins of yk
I3 is projection of I2 on V
Hence Therefore I3 ≥ I1
Finally, ≥
v
x
z
yk
fk
y1
y2yi-1
yi
Vi ii XvvXVR )(),(
VZkCODC
XZkCODC
3 1 2( ( , ) ( ))XI I R V X I X
FIVZkCODC ,FIXZ
kCODC ,
I1
I2
I3
Cutsets as Primary Input Cutsets as Primary Input and Primary Output and Primary Output
This result follows directly from the previous two proofs as they are orthogonal
Hence ≤
w
x
z
yk
fk
y1
y2yi-1
yi
v
FIVWkCODC , FIXZ
kCODC ,
Therefore, an ACODC computation which utilizes a sub-network of depth k rooted at any node yields a subset of the full CODC of the node.
This proves the correctness of our method.
Experimental ResultsExperimental Results Implemented in SIS Used mcnc91 and itc99 benchmark circuits Run on IBM IntelliStation (1.7 GHz Pentium-
4 with 1 GB RAM) running Linux Our algorithm is built as a replacement to
full_simplify Read design and run ACODC algorithm followed
by sweep Compare our method by running full_simplify
followed by sweep
Metrics for ComparisonMetrics for Comparison 3 measures of effectiveness for comparison with
full_simplify Effectiveness #1 compares the ratio of the number of minterms
computed by our technique compared to that for full_simplify
Effectiveness #2 compares the number of nodes for which ACODCs and CODCs are identical
We also compare the literal count reduction obtained by both techniques