014 Dont Cares

download 014 Dont Cares

of 59

Transcript of 014 Dont Cares

  • 8/3/2019 014 Dont Cares

    1/59

    Courtesy RK Brayton (UCB)and A Kuehlmann (Cadence)1

    Logic Synthesis

    Exploiting Dont Cares inLogic Minimization

  • 8/3/2019 014 Dont Cares

    2/59

    2

    Node Minimization

    Problem: Given a Boolean network, optimize it by minimizing each node as

    much as possible. Note:

    The initial network structure is given. Typically applied after the

    global optimization, i.e., division and resubstitution. We minimize the function associated with each node. What do we mean by minimizing the node as much as possible?

  • 8/3/2019 014 Dont Cares

    3/59

    3

    Functions Implementable at a Node

    In a Boolean network, we may represent a node using the primaryinputs {x 1,.. x n} plus the intermediate variables {y 1,.. y m}, as long as thenetwork is acyclic .

    DEFINITION: A function g j, whose variables are a subset of {x 1,.. x n, y1,.. y m}, is

    implementable at a node j if the variables of g j do not intersect with TFO j the replacement of the function associated with j by g j does not

    change the functionality of the network.

  • 8/3/2019 014 Dont Cares

    4/59

    4

    Functions Implementable at a Node The set of implementable functions at j provides the solution space of the local

    optimization at node j.

    TFO j = {node i s.t. i = j or path from j to i}

  • 8/3/2019 014 Dont Cares

    5/59

    5

    Consider a sumofproducts expression F j associated with a node j.

    Definition:F j is prime (in multilevel sense) if for all cubes c F j, no literal of c canbe removed without changing the functionality of the network.

    Definition:F j is irredundant if for all cubes c F j, the removal of c from F j changesthe functionality of the network.

    Prime and Irredundant Boolean Network

  • 8/3/2019 014 Dont Cares

    6/59

    6

    Prime and Irredundant Boolean Network

    Definition:A Boolean network is prime andirredundant if F j is prime and irredundantfor all j.

    Theorem:A network is 100% testable for singlestuckat faults (sa0 or sa1) iff it isprime and irredundant.

  • 8/3/2019 014 Dont Cares

    7/59

    7

    Local OptimizationGoals: Given a Boolean network:

    make the network prime and irredundant for a given node of the network, find a least-cost sumofproducts

    expression among the implementable functions at the nodeNote:

    Goal 2 implies the goal 1, But we want more than just 100% testability. There are many

    expressions that are prime and irredundant, just like in two-levelminimization. We seek the best .

  • 8/3/2019 014 Dont Cares

    8/59

    8

    Local OptimizationKey Ingredient Network Don't Cares:

    External don't cares XDCk , k=1,,p, - set of minterms of the primary inputs given for each

    primary output

    Internal don't cares derived from the network structure Satisfiability Dont Cares SDC Observability Dont Cares ODC

  • 8/3/2019 014 Dont Cares

    9/59

    9

    SDC

    Recall: We may represent a node using the primary inputs plus the

    intermediate variables. The Boolean space is B n+m .

    However, the intermediate variables are dependent on the primary

    inputs. Thus not all the minterms of B n+m can occur:

    use the non- occuring minterms as dont cares to optimize the nodefunction

    we get internal dont cares even when no external dont cares exist

  • 8/3/2019 014 Dont Cares

    10/59

    10

    SDC

    Example: y1 = F 1 = x1 y j = F j = y1x2

    Since y 1 = x1, y1 x1 never occurs. Thus we may include these points to represent F j

    Don't Cares SDC = (y1 x1)+(y j y1x2)

    In general,

    Note : SDC Bn+m)(

    1 j j

    m

    j j j F yF ySDC

  • 8/3/2019 014 Dont Cares

    11/59

    11

    ODC

    y j = x1 x2 + x1x3 zk = x1 x2 + y jx2 + (y j x3)

    Any minterm of x 1 x2 + x2 x3 + x2 x3 determines z k independent of y j .

    The ODC of y j for z k is the set of mintermsof the primary inputs for which the valueof y j is not observable at z k

    This means that the two Boolean networks, one with y j forced to 0 and one with y j forced to 1compute the same value for z k when x ODC jk

    0 1{ | ( ) | ( ) | } j jn

    jk k y k yODC x B z x z x

  • 8/3/2019 014 Dont Cares

    12/59

    12

    Don't Cares for Node j

    F j

    inputs

    outputs

    ODC

    SD

    C

    Define the don't care sets DC j for a node j as

    ODC and SDCillustrated:

    Booleannetwork

    1

    ( ) ( ) j

    p

    i j i i jk k ii TFO k

    DC y F y F ODC XDC

  • 8/3/2019 014 Dont Cares

    13/59

    13

    Main Theorem

    THEOREM: The function F j = (F j-DC j, DC j, F j+DC j) is the complete set of implementablefunctions at node j

    COROLLARY:

    F j is prime and irredundant (in the multi-level sense) iff it is prime andirredundant cover of F j

    A leastcost expression at node j can be obtained by minimizing F j.

    A prime and irredundant Boolean network can be obtained by using only 2-level logic minimization for each node j with the don't care DC j .

    Note: If F j is changed, then DC i may change for some other node i in the network.

  • 8/3/2019 014 Dont Cares

    14/59

    14

    Local Optimization Practical Questions

    How to compute the don't care set at a node? XDC is given SDC computed by function propagation from inputs How do we compute ODC ?

    How to minimize the function with the don't care?

  • 8/3/2019 014 Dont Cares

    15/59

    15

    ODC Computationz k

    g q g 2

    g 1

    y j

    x 1 x 2 x n

    0 1{ | ( ) | ( ) | } j jn

    jk k y k yODC x B z x z x

    0 1( ) | ( ) | } j jk

    k y k y

    j

    z z x z x

    y

    k jk

    j

    zODC

    yDenote

    where

  • 8/3/2019 014 Dont Cares

    16/59

    16

    ODC Computation

    In general, zk

    gqg2

    g1

    y j

    x1 x2 xn

    1 2

    1 2

    2 2 2131 2 1

    1 2 1 3 1

    33 31 2 1 2

    1 2 3 1 2

    ...

    ...

    ... ......

    qk k k k

    j j j q j

    q qk k k

    j j j j q q j j

    qk k

    j j j q j j j

    g z z z zg g y g y g y g y

    g g z z g zg g gg g y y g g y y g g y y

    z g z gg g g gg g g y y y g g g y y y

    q

    j

    g

    y

  • 8/3/2019 014 Dont Cares

    17/59

    17

    ODC Computation

    Conjecture:

    This conjecture is true if there is no reconvergent fanout in TFO j.

    With reconvergence, the conjecture can be incorrect in two ways: it does not compute the complete ODC. (can have correct results butconservative )

    it contains care points. (leads to incorrect answer)

    1

    p

    j jk k

    ODC ODC

    0 1[( | | ) ] j j j

    j i y i y ii FOODC F F ODC

  • 8/3/2019 014 Dont Cares

    18/59

    18

    Transduction (Muroga)

    Definition:Given a node j, a permissible function at j is a function of the primary inputs implementable at j.

    The original transduction computes a set of permissible functions for a NOR gate

    in an all NORgate network:

    MSPF (Maximum Set of Permissible Functions) CSPF (Compatible Set of Permissible Functions)

    Both of these are just incompletely specified functions , i.e. functions withdont cares.

    Definition:We denote by g j the function f j expressed in terms of the primary inputs. g j(x) is called the global function of j.

  • 8/3/2019 014 Dont Cares

    19/59

    19

    Transduction CSPF

    MSPF: expensive to compute. if the function of j is changed, the MSPF for some other node i in the

    network may change.CSPF:

    Consider a set of incompletely specified functions {f jC

    } for a set of nodes jsuch that a simultaneous replacement of the functions at all nodes j jeach by an arbitrary cover of f jC does not change the functionality of thenetwork.

    f jC is called a CSPF at j. The set {f jC} is called a compatible set ofpermissible functions (CSPFs).

  • 8/3/2019 014 Dont Cares

    20/59

    20

    Transduction CSPF

    Note: CSPFs are defined for a set of nodes. We don't need to re-compute CSPF's if the function of other nodes in

    the set are changed according to their CSPFs

    The CSPFs can be used independently This makes node optimization much more efficient since no re-

    computation needed Any CSPF at a node is a subset of the MSPF at the node External dont cares (XDC) must be compatible by construction

  • 8/3/2019 014 Dont Cares

    21/59

    21

    Transduction CSPF

    Key Ideas: Compute CSPF for one node at a time.

    from the primary outputs to the primary inputs

    If (f1

    C ,, f j-1

    C ) have been computed, compute f

    j

    C so that simultaneousreplacement of the functions at the nodes preceding j by functions in(f1C ,, f j-1C ) is valid. put more dont cares to those processed earlier

    Compute CSPFs for edges so that

    Note: CSPFs are dependent on the orderings of nodes/edges.

    [ , ]( ) ( ) j

    C C

    j j ii FO f x f x

  • 8/3/2019 014 Dont Cares

    22/59

    22

    CSPF's for EdgesProcess from output toward the inputs in reverse topological order:

    Assume CSPF f iC for a node i is given.

    Ordering of Edges: y 1 < y2 < < y r put more don't cares on the edges processedearlier

    only for NOR gates

    0 if fiC(x) = 1

    f[j,i]C(x) = 1 if f iC(x) = 0 and for all y k > y j: g k(x) = 0 andg j(x) = 1

    * (dont care) otherwise

  • 8/3/2019 014 Dont Cares

    23/59

    23

    Transduction CSPFExample: y1 < y2 < y3

    yi = [1 0 0 0 0 0 0 0] output

    y1 = [0 0 0 0 1 1 1 1]y2 = [0 0 1 1 0 0 1 1]y3 = [0 1 0 1 0 1 0 1]

    f [1,i] C = [0 * * * 1 * * *]

    f [2,i] C = [0 * 1 * * * 1 *]

    f [3,i] C = [0 1 * 1 * 1 * 1]

    Note: we just make the last 1 stay 1 and all others *.Note: CSPF for [1, i] has the most don't cares among the three input edges.

    globalfunctionsof inputs

    edge CSPFs

    i

  • 8/3/2019 014 Dont Cares

    24/59

    24

    Example for Transduction

    a

    b

    ygy= [0100]fCy = [0100]

    ga = [0011]

    fcay = [*011]

    c gc = [1000]fCc=fCcy = [10**]

    ga = [0011]fCac = [0***]

    ga = [0011]

    fCa = [0011]

    gb = [0101]fCb=fCbc = [01**]

    Notation: [ab,ab,ab,ab]

    This connection canbe replaced by 0

    a

    b

    y

  • 8/3/2019 014 Dont Cares

    25/59

    25

    Application of Transduction

    Gate substitution: gate i can be replaced by gate j if:

    g j fCi and y i SUPPORT(g j)

    Removal of connections:

    wire (i,j) can be removed if: 0 fCij

    Adding connections: wire (i,j) can be added if:

    fC j(x) = 1 g i(x) = 0 and y i SUPPORT(g j) useful when iterated in combination with substitution and removal

  • 8/3/2019 014 Dont Cares

    26/59

    26

    CSPF Computation

    Compute the global functions g for all the nodes. For each primary output z k ,

    fzkC(x)= * if x XDCk

    fzkC(x)= g zk(x) otherwise

    For each node j in a topological order from the outputs,

    compute f jC = i FOjf[j,i]C(x) compute CSPF for each fanin

    edge of j, i.e. f [k,j]C j[j,i]

    [k,j]

  • 8/3/2019 014 Dont Cares

    27/59

    27

    Generalization of CSPF's

    Extension to Boolean networks where the node functions are arbitrary(not just NOR gates).

    Based on the same idea as Transduction process one node at a time in a topological order from the primary

    outputs. compute a compatible don't care set for an edge, CODC [j,i] intersect for all the fanout edges to compute a compatible don't

    care set for a node.

    CODC j=

    i FojCODC

    [j,i]C

  • 8/3/2019 014 Dont Cares

    28/59

    28

    Compatible Don't Cares at Edges

    Ordering of edges: y 1 < y2 < < y r

    Assume no don't care at a node i e.g. primary output

    A compatible don't care for an edge [j,i] is a function of

    CODC [j,i](y) : B r BNote : it is a function of the local inputs (y 1 , y2 , ,y r).

    It is 1 at m Br if m is assigned to be dont care for the input line [j,i].

  • 8/3/2019 014 Dont Cares

    29/59

    29

    Compatible Don't Cares at Edges

    Property on {CODC [1,i],,CODC [r,i]} Again, we assume no dont care at output i For all m Br, the value of y i does not change by

    arbitrarily flipping the values of{ y j FIi | CODC [j,i](m) = 1 }

    i

    CODC [j,i](m)=1

    jk

    CODC [k,i](m)=1

    yino changem is held fixed, but valueon y j can be arbitraryif CODC [j,i](m) is dont care

  • 8/3/2019 014 Dont Cares

    30/59

    30

    Compatible Don't Cares at Edges

    Given {CODC [1,i],,CODC [j-1,i]}compute CODC [j,i](m) = 1 iff thethe value of y i remains insensitiveto y j under arbitrarily flipping ofthe values of those y k in the set:

    a = { k FIi | y k < y j, CODC [k,i](m) = 1 }

    Equivalently, CODC[j,i]

    (m) = 1 iff for

    | |( ) : ( , ) 1a ia a b j

    f m B m m

    y

    ( , , )a j b

    m m m m

  • 8/3/2019 014 Dont Cares

    31/59

    31

    Compatible Don't Cares at Edges

    Thus we are arbitrarily flipping the m a part. In some sense m b is enough to keepfi insensitive to the value of y j.

    is called the Boolean difference of fi with respect to y j and is all conditionswhen f i is sensitive to the value of y j.

    | |( ) ( , ) 1a ia a b j

    f m B m m y

    0 1( | | ) j jk

    i y i y j

    f f f

    y

    ( ( , , ))a j bm m m m

  • 8/3/2019 014 Dont Cares

    32/59

    32

    Compatible Don't Cares at a Node

    Compatible don't care at a node j, CODC j, can also be expressed as a function of theprimary inputs.

    if j is a primary output, CODC j = XDC j otherwise,

    represent CODC [j,i] by the primary inputs for each fanout edge [j,i].

    CODC j= i FOj(CODC i+CODC [j,i])

    THEOREM: The set of incompletely specified functions with the CODCs computed above forall the nodes provides a set of CSPFs for an arbitrary Boolean network.

  • 8/3/2019 014 Dont Cares

    33/59

    33

    Computations of CODC Subset

    An easier method for computing a CODC subset on each fanin y kofa function f is:

    where CODC f is the compatible dont care already computed for node f, and where f has its inputs y 1, y2 ,, y r in that order.

    The notation for the operator, y.f = f y f y , is used here.

    1 11 1

    ( .) ( )k y k f

    k k

    f f f CODC y y CODC

    y y y

  • 8/3/2019 014 Dont Cares

    34/59

    34

    Computations of CODC Subset

    The interpretation of the term for CODC y2

    is that: of the minterms m Br where f is insensitive to y 2,

    we allow m to be a dont care of y 2 if either m is not a dont care for the y 1 input or

    no matter what value is chosen for y 1, ( .y1), f is still insensitive toy2 under m (f is insensitive at m for both values of y 2 )

    11 2

    ( ) f f

    y y y

    2

    f

    y

    1

    f

    y

  • 8/3/2019 014 Dont Cares

    35/59

    35

    Computation of Don't Cares

    XDC is given, SDC is easy to compute

    Transduction NORgate networks MSPF, CSPF (permissible functions of PI only)

    Extension of CSPF's to CODCs) for general networks based on BDD computation can be expensive to compute, not maximal implementable functions of PI and y

    Question: How do we represent XDCs? How do we compute the local dont care?

  • 8/3/2019 014 Dont Cares

    36/59

    36

    Representing XDCs

    separate

    DC network

    multi-levelBoolean network

    for z

    y12

    y11 y10

    XDC

    x1 x4 x2

    f 12 =y 10 y 11

    y9

    y3

    y1

    y4 y8 y7

    y2

    or

    x4

    y6 y5

    z (output)

    2 410 1 3 11 y x x y x x x3

    x3 x2 x1 x4 x2 x3 x1

    ODC 2 =y 1 2 7 8 7 8 5 6 f y y y y y y

    &

    & & &

  • 8/3/2019 014 Dont Cares

    37/59

    37

    Mapping to Local Space

    How can ODC + XDC be used for optimizing the representationof a node, y j?

    y j

    yr yl

    x1 x2 xn

  • 8/3/2019 014 Dont Cares

    38/59

    38

    Mapping to Local Space

    Definitions: The local space B r of node j is the Boolean space of all the fanins ofnode j (plus maybe some other variables chosen selectively).

    A dont care set D(y r+) computed in local space (+) is called a local

    dont care set. The + stands for additional variables.

    Solution: Map DC(x) = ODC(x)+XDC(x) to local space of the node to find

    local dont cares, i.e. we will compute

    ( ) ( ( ))FI j

    r g D y IMG DC x

  • 8/3/2019 014 Dont Cares

    39/59

    39

    Computing Local Dont Cares

    The computation is done in two steps:

    1. Find DC(x) in terms of primary inputs.2. Find D, the local dont care set, by image computation and complementation.

    y j

    yr y

    l

    x1 x2 xn

    ( ) ( ( ))FI j

    r g D y IMG DC x

  • 8/3/2019 014 Dont Cares

    40/59

    40

    Map to Primary Input (PI) Space

    y j

    yr yl

    x1 x2 xn

    B Bnnm

    1

    ( , , )

    ( , , ) global function j k l

    j j n

    f y y y

    g x x

  • 8/3/2019 014 Dont Cares

    41/59

    41

    Map to Primary Input (PI) Space

    Computation done with Binary Decision Diagrams Build BDDs representing global functions at each node

    in both the primary network and the dont care network,g j(x1,...,x n)

    use BDD_compose Replace all the intermediate variables in (ODC+XDC) with their

    global BDD

    Use BDDs to substitute for y in the above ( using BDD_compose )

    DC(x) x h ODC(x,y)+DC(x,y) y x h ) ( ) , ( ~

    )())(,(~

    ),(~

    xh xg xh y xh

  • 8/3/2019 014 Dont Cares

    42/59

    42

    Example

    XDC ODC DC x x x x x x x x DC

    x x x x g y XDC 2

    x x x x g

    y ODC

    z

    2 2

    4 3 2 1 4 3 2 1 2

    4 3 2 1 12

    12

    4 3 2 1 1

    1 2

    separateDC network

    multi-levelnetworkfor z

    y12

    y11 y10

    XDC

    x1 x4 x2

    10 1 3

    2 411

    y x x

    y x x

    x3

    f 12 =y 10 y 11

    y9

    y3

    y1 y4 y8 y7

    y2

    or

    x4

    y6 y5

    z (output)

    x3 x2 x1 x4 x2 x3 x1

    ODC 2 =y 1 2 7 8 7 8 5 6 f y y y y y y

    & & &

    &

  • 8/3/2019 014 Dont Cares

    43/59

    43

    Image Computation

    y j yr yi

    x1 x2 xn

    local

    space g r g i

    image

    Bn

    Br

    Di

    image of care

    set undermapping y 1,...,y r

    DC i=XDC i+ODC i care set

    Local dont cares are the set of minterms in the local space of y i that

    cannot be reached under any input combination in the care set of y i (interms of the input variables).

    Local dont Care Set:

    i.e. those patterns of (y 1,...,y r) that never appear as images of input cares.

    1 2( , , , )IMAGE [care set]

    r i g g g D

  • 8/3/2019 014 Dont Cares

    44/59

    44

    Example

    y y D x x x x x x DC

    x x x x x x x x DC

    yODC yODC

    z

    872

    4242312

    432143212

    12

    12

    2 2 2 1 3 2 4 2 4( )( ) DC D DC x x x x x x y y D 872

    y y y y f 65872

    Note that D 2 is given in this space y 5, y6, y7, y8.Thus in the space (- - 10) never occurs.Can check thatUsing , f 2 can be simplified to

    separateDC network

    y12

    y11 y10

    XDC

    x1 x4 x2

    2 410 1 3 11 y x x y x x x3

    f 12 =y 10 y 11

    y9

    y3 y1

    y4 y8 y7

    y2

    or

    x4

    y6 y5

    z (output)

    x3 x2 x1 x4 x2 x3 x1

    ODC 2 =y 1 2 7 8 7 8 5 6 f y y y y y y

    &

    & & &

  • 8/3/2019 014 Dont Cares

    45/59

    45

    Full_Simplify Algorithm Visit node in topological reverse order i.e. from outputs.

    Compute compatible ODC i

    compatibility done with intermediate y variables

    BDDs built to get this dont care set in terms of primary inputs (DC i) Image computation techniques used to find local dont cares D i at each

    node

    XDC i(x,y) + ODC i (x,y) DC i(x) Di( y r )

    where ODC i is a compatible dont care at node i (we are loosing somefreedom)

    f

    y1 yk

    k k j

    k

    y y f

    j FO

    CODC CODC

    1 11 1

    ( .) ( )k y f k f

    k k

    f f f CODC y y CODC

    y y y

  • 8/3/2019 014 Dont Cares

    46/59

    46

    Image Computation: Two methods

    Transition Relation Method

    f : Bn Br F : B n x B r B

    F is the characteristic function of f.

    ( , ) {( , ) | ( )}

    ( ( ))

    ( ( ) ( ))

    i ii r

    i i i ii r

    F x y x y y f x

    y f x

    y f x y f x

  • 8/3/2019 014 Dont Cares

    47/59

    47

    Transition Relation Method

    Image of set A under ff(A) = x(F(x,y)A(x))

    The existential quantification x is also called smoothing Note: The result is a BDD representing the image, i.e. f(A) is a BDDwith the property thatBDD(y) = 1 x such that f(x) = y and x A.

    A f(A)f

    x y

    1where and

    n i i i x x x x x xg g g

  • 8/3/2019 014 Dont Cares

    48/59

    48

    Recursive Image ComputationProblem:

    Given f : B n Br and A(x) Bn

    Compute:

    Step 1: compute CONSTRAIN (f,A(x)) fA(x)f and A are represented by BDDs. CONSTRAIN is a built -in BDDoperation. It is related to generalized cofactor with the dont cares used in aparticular way to make

    1. the BDD smaller and2. an image computation into a range computation.

    Step 2: compute range of f A(x).fA(x) : Bn Br

    A x x f y y f A x

    ,||

  • 8/3/2019 014 Dont Cares

    49/59

    49

    Recursive Image ComputationProperty of CONSTRAIN (f,A) f

    A(x):

    (fA(x))|x Bn = f|x A

    A

    f

    Bn Br

    fA

    range of f A(Bn)

    range of f(B n)

    f(A)

  • 8/3/2019 014 Dont Cares

    50/59

    50

    Recursive Image Computation

    x11 x

    Bn Br = (y1,...,y r)

    This is called input cofactoring or domain partitioning

    1 11 2 1 2( ) ([ , , , ] ) ([ , , , ] )r x r x RNG f RNG f f f RNG f f f

    1 x

    1. Method:

  • 8/3/2019 014 Dont Cares

    51/59

    51

    Recursive Image Computation

    where here refers to the CONSTRAIN operator.

    (This is called output cofactoring of co-domain partitioning ).Thus

    Notes: This is a recursive call. Could use 1. or 2 at any point.The input is a set of BDDs and the output can beeither a set of cubes or a BDD.

    1 2 ( )| ( ) ([ , , , ] )r

    x A r A x f y RNG f f f

    1 2 1 2

    1 1

    1 1

    1 1[ , , ] 1 [ , , ] 1

    2 2

    1 2 21

    ( (1)) ( (0))

    ( ) ([1, , ] ) ([0, , ] )

    ([ , ] ) ([ , ] )

    r r f f f f f f

    r f r f

    r f r f

    IMG x f IMG x f

    RNG f RNG f f RNG f f

    y RNG f f y RNG f f

    2. Method:

    [] fi

  • 8/3/2019 014 Dont Cares

    52/59

    52

    Constrain Illustrated

    X X

    f

    0 0

    A

    Idea: Map subspace (say cube c in B n) which is entirely in DC(i.e. A(c) 0) into nearest non- dont care subspace

    (i.e. A 0).

    where A(x) is the nearest point in B n such that A = 1 there.

    ( ) if ( ) 1( )

    ( ( )) if ( ) 0 A A

    f x A x f x

    f x A x

  • 8/3/2019 014 Dont Cares

    53/59

    53

    Simplify

    inputs Bn

    f j

    XDC outputs

    m intermediatenodes

    Express ODC in terms of variables in B n+m

    Dont Carenetwork

  • 8/3/2019 014 Dont Cares

    54/59

    54

    Simplify

    ODC+XDC DC

    DC

    cares

    D

    cares

    Minimize f j dont care = D

    Bn+m Bn

    Br

    compose

    imagecomputation

    f j localspace B r

    Question: Where is the SDC coming in and playing a roll?

    Express ODC in terms of variables in B n+m

  • 8/3/2019 014 Dont Cares

    55/59

    55

    Minimizing Local Functions

    Once an incompletely specified function (ISF) is derived, weminimize it.

    1. Minimize the number of literals Minimum literal() in the slides for Boolean division

    2. The offset of the function may be too large. Reduced offset minimization (built into ESPRESSO in SIS) Tautology based minimization

    If all else fails, use ATPG techniques to remove redundancies.

  • 8/3/2019 014 Dont Cares

    56/59

    56

    Reduced Offset

    Idea: In expanding any single cube, only part ofthe offset is useful. This part is called thereduced offset for that cube.

    Example: In expanding the cubea b c the point abc isof no use. Thereforeduring this expansionabc might as well be put

    in the offset.

    Then the offset which was ab + ab + bc becomes a + b. The reduced offset of anindividual on-set cube is always unate.

  • 8/3/2019 014 Dont Cares

    57/59

    57

    Tautologybased TwoLevel Min.

    In this, twolevel minimization is done without using the offset. Offsetis used for blocking the expansion of a cube too far. The othermethod of expansion is based on tautology .

    Example:

    In expanding a cube c = abeg to aeg we can test if aeg f +d.This can be done by testing

    (f +d) aeg 1 (i.e. Is (f + d) aeg a tautology? )

  • 8/3/2019 014 Dont Cares

    58/59

    58

    ATPG

    MultiLevel Tautology: Idea: Use testing methods. (ATPG is a highly

    developed technology). If we can prove that afault is untestable , then the untestable signalcan be set to a constant.

    This is like expansion in Espresso.

  • 8/3/2019 014 Dont Cares

    59/59

    Removing RedundanciesRedundancy removal:

    do random testing to locate easy tests apply new ATPG methods to prove testability of remaining faults. if non-testable for s-a-1, set to 1 if non-testable for s-a-0, set to 0

    Reduction (redundancy addition) is the reverse of this.

    It is done to make something else untestable . There is a close analogy with reduction in espresso. Here also reduction is usedto move away from a local minimum.

    & reduction = add an input

    Used in transduction (Muroga)Global flow (Bermen and Trevellan)

    cba

    d