BOOLEAN - École Polytechnique Fédérale de...

61

Transcript of BOOLEAN - École Polytechnique Fédérale de...

Page 1: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

BOOLEAN METHODS

c Giovanni De Micheli

Stanford University

Page 2: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Boolean methods

c GDM

� Exploit Boolean properties.

{ Don't care conditions.

� Minimization of the local functions.

� Slower algorithms, better quality results.

Page 3: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

External don't care conditions

c GDM

� Controllability don't care set CDCin:

{ Input patterns never produced by the

environment at the network's input.

� Observability don't care set ODCout:

{ Input patterns representing conditions

when an output is not observed by the

environment.

{ Relative to each output.

{ Vector notation used: ODCout.

Page 4: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

DE

MU

X NETWORK

N2

N3

N1z1

z2

y1

y2x1

x2

x3x4

a

b

o1

o2s1

s2

� Inputs driven by a de-multiplexer.

� CDCin = x0

1x0

2x0

3x0

4+x1x2+x1x3+x1x4+x2x3+x2x4+x3x4.

� Outputs observed when

�x1x4

�= 1

ODCout =

264 x0

1x0

1x0

4x0

4

375

Page 5: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

overall external don't care set

c GDM

DCext = CDCin+ODCout =

26664x01+ x2+ x3+ x4x01+ x2+ x3+ x4x04+ x2+ x3+ x1x04+ x2+ x3+ x1

37775

Page 6: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Internal don't care conditions

c GDM

z

x

y

a

b

c

NETWORK

SUBNETWORK

CDC ODCin out

Page 7: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Internal don't care conditions

c GDM

� Induced by the network structure.

� Controllability don't care conditions:

{ Patterns never produced at the inputs

of a subnetwork.

� Observability don't care conditions:

{ Patterns such that the outputs of a

subnetwork are not observed.

Page 8: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

x = a’ + b

y = abx + a’cx

x = a’ + b

y = ax +a’c

(a) (b)

� CDC of vy includes ab0x+ a0x0.

� Minimize fy to obtain: ffy = ax+ a0c.

Page 9: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Satis�ability don't care conditions

c GDM

� Invariant of the network:

{ x= fx ! x 6= fx � SDC.

� SDC =X

vx2V G

x� fx

� Useful to compute controllability don't cares .

Page 10: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

CDC computation

c GDM

� Network traversal algorithm:

{ Consider di�erent cuts

moving from input to output.

� Initial CDC is CDCin.

� Move cut forward.

{ Consider SDC contributions of

predecessors.

{ Remove unneded variables by consensus.

Page 11: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

CDC computation

c GDM

CONTROLLABILITY(Gn(V;E) , CDCin) f

C = V I;

CDCcut = CDCin;

foreach vertex vx 2 V in topological order f

C = C [ vx;

CDCcut = CDCcut+ fx � x;

D = fv 2 C s.t. all dir. succ. of v are in Cg

foreach vertex vy 2 D

CDCcut = Cy(CDCcut);

C = C � D;

g;

CDCout = CDCcut;

g

Page 12: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

x2 x4x1

(a) (b)

z1 z2

x3x1 x4

z2z1

a

b c

d e

x3x2

d e

b c

a

x1 x4

z2z1

a

b c

d e

x3x2

{d,e}

{b,c}

{b,a,x4}

{x1,x2,x3,x4}

(c)

{x1,a,x4}

Page 13: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

� Assume CDCin = x0

1x0

4.

� Select vertex va:

{ Contribution to CDCcut: a� (x2 � x3).

{ Drop variables D = fx2; x3g by consensus:

{ CDCcut = x0

1x0

4.

� Select vertex vb:

{ Contribution to CDCcut: b� (x1+ a).

� CDCcut = x0

1x0

4+ b� (x1+ a).

{ Drop variable x1 by consensus:

� CDCcut = b0x0

4+ b0a.

� ...

� CDCout = e0 = z0

2.

Page 14: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

CDC computation

by image computation

c GDM

� Network behavior at cut: f.

� CDCcut is just the complement of the

image of (CDCin)0 with respect to f.

� CDCcut is just the complement of the range

of f when CDCin = ;.

� Range can be computed recursively.

{ Terminal case: scalar function.

� Range of y = f(x) is y+y0 (any value)

unless f (or f 0) is a tautology

and the range is y (or y0).

Page 15: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

b

c

bc

d

e

RANGE VECTORS

0 0 1

0 1 1

� range(f) = d range((b+ c)jd=bc=1)++d0 range((b+ c)jd=bc=0)

� When d = 1, then bc= 1! b+ c = 1 is TAUTOLOGY.

� If I choose 1 as top entry in output vector:

{ the bottom entry is also 1.

{

�1?

�!

�11

�� When d = 0, then bc= 0! b+ c = f0;1g.

� If I choose 0 as top entry in output vector:

{ the bottom entry can be 0 or 1.

� range(f) = de+ d0(e+ e0) = de+ d0 = d0 + e

Page 16: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

x2 x4x1

(a) (b)

z1 z2

x3x1 x4

z2z1

a

b c

d e

x3x2

d e

b c

a

x1 x4

z2z1

a

b c

d e

x3x2

{d,e}

{b,c}

{b,a,x4}

{x1,x2,x3,x4}

(c)

{x1,a,x4}

f =

"f1

f2

#=

"(x1+ a)(x4+ a)(x1+ a) + (x4+ a)

#=

"x1x4+ ax1+ x4+ a

#

Page 17: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

a

(b)(a) (c)

x4

x1

range(f) =

= d range(f2j(x1x4+a)=1) +

d0 range(f2j(x1x4+a)=0)

= d range(x1+ x4+ aj(x1x4+a)=1) +

d0 range(x1+ x4+ aj(x1x4+a)=0)

= d range(1) + d0 range(a0(x1 � x4))

= de+ d0(e+ e0)

= e+ d0

� CDCout = (e+ d0)0 = de0 = z1z0

2.

Page 18: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Perturbation method

c GDM

� Modify network by adding an extra input Æ.

� Extra input can ip polarity of a signal x.

� Replace local function fx by fx � Æ.

� Perturbed terminal behavior: fx(Æ).

Page 19: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

(a)

z

x

y

a

b

c

δ

(b)

z

x

y

a

b

c

z

x

y

a

b

c

(c)

Page 20: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Observability don't care conditions

c GDM

� Conditions under which a change in

polarity of a signal x is not perceived at

the outputs.

� Complement of the Boolean di�erence:

{ @f=@x = f jx=1 � f jx=0.

� Equivalence of perturbed function: fx(0) � fx(1).

Page 21: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Observability don't care computation

c GDM

� Problem:

{ Outputs are not expressed as function

of all variables.

{ If network is attened to obtain f,

it may explode in size.

� Requirement:

{ Local rules for ODC computation.

{ Network traversal.

Page 22: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Single-output network

with tree structure

c GDM

� Traverse network tree.

� At root:

{ ODCout is given.

� At internal vertices:

{ ODCx = (@fy=@x)0+ODCy

Page 23: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

e = b+ c

b = x1+ a1

c = x4+ a2

x1 x4

b c

e

a1 a2

� Assume ODCout = ODCe = 0.

� ODCb = (@fe=@b)0 = (b+ c)jb=1�(b+ c)jb=0 = c.

� ODCc = (@fe=@c)0 = b.

� ODCx1 = ODCb+ (@fb=@x1)0 = c+ a1.

� ...

Page 24: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

General networks

c GDM

x1 x4

b c

e

a

� Fanout reconvergence.

� For each vertex with two (or more) fanout

stems:

{ The contribution of the ODC along the

stems cannot be added tout court.

{ Interplay of di�erent paths.

� More elaborate analysis.

Page 25: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Two-way fanout stem

c GDM

xx1 2

x

yzODC ODC

ODC ODC

yz

x,y x,z

� Compute ODC sets associated with edges.

� Combine ODCs at vertex.

� Formula derivation:

{ Assume two equal perturbations on the

edges.

{ ODCx = fx1;x2(1;1) � fx1;x2(0;0)

Page 26: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

ODC formula derivation

c GDM

ODCx = fx1;x2(1;1) � fx1;x2(0;0)

= fx1;x2(1;1) � fx1;x2(0;0)

� (fx1;x2(0;1) � fx1;x2(0;1))

= (fx1;x2(1;1) � fx1;x2(0;1))

� (fx1;x2(0;1) � fx1;x2(0;0))

= ODCx;yjÆ2=1 � ODCx;zjÆ1=0

= ODCx;yjx2=x0 � ODCx;zjx1=x

= ODCx;yjx=x0 � ODCx;z

� Because x = x1 = x2.

Page 27: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multi-way stems

Theorem

c GDM

� Let vx 2 V be any internal or input vertex.

� Let fxi; i= 1;2; : : : ; pg be the edge vars

corresponding to f(x; yi) ; i = 1;2; : : : ; pg.

� Let ODCx;yi ; i = 1;2; : : : ; p the edge

ODCs.

� ODCx =Lpi=1ODCx;yijxi+1=���=xp =x0

Page 28: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Observability don't care algorithm

c GDM

OBSERVABILITY(Gn(V;E) , ODCout) fforeach vertex vx 2 V in reverse topological order f

for (i= 1 to p)ODCx;yi

= (@fyi=@x)01+ODCyi

;

ODCx =Lp

i=1ODCx;yijxi+1=���=xp =x0;

gg

Page 29: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

x2 x4x1

(a) (b)

z1 z2

x3x1 x4

z2z1

a

b c

d e

x3x2

d e

b c

a

ODCd =

�0

1

�;ODCe =

�1

0

�;ODCc =

�b0

b

�;ODCb =

�c0

c

�ODCa;b =

�c0 + x1c+ x1

�=

�a0x0

4+ x1

a+ x4+ x1

�ODCa;c =

�b0 + x4b+ x4

�=

�a0x0

1+ x4

a+ x1+ x4

�ODCa =ODCa;bja=a0�ODCa;c =

�ax0

4+ x1

a0 + x4+ x1

��

�a0x0

1+ x4

a+ x1+ x4

�=

=

�x1x4

x1+ x4

Page 30: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Transformations with don't cares

c GDM

� Boolean simpli�cation:

{ Use standard minimizer (Espresso).

{ Minimize the number of literals.

� Boolean substitution:

{ Simplify a function by adding an extra

input.

{ Equivalent to simpli�cation

with global don't care conditions.

Page 31: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

Boolean substitution

c GDM

� Substitute q = a+ cd into fh = a+ bcd+ e

to get fh = a+ bq+ e.

� SDC set: q�(a+cd) = q0a+q0cd+qa0(cd)0.

� Simplify fh = a+ bcd+ e with q0a+ q0cd+

qa0(cd)0 as don't care .

� Simpli�cation yields fh = a+ bq+ e.

� One literal less by changing the support

of fh.

Page 32: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Single-vertex optimization

c GDM

SIMPLIFY SV ( Gn(V;E) )f

repeat f

vx = selected vertex ;

Compute the local don't care set DCx;

Optimize the function fx ;

guntil (no more reduction is possible)

g

Page 33: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Optimization and perturbations

c GDM

� Replace fx by gx.

� Perturbation Æx = fx � gx.

� Condition for feasible replacement:

{ Perturbation bounded by local don't care

set

{ Æx �DCext+ODCx

{ If x not a primary input

consider also CDC set.

Page 34: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

(a)

zx

y

a

b

c

δ

(b)

z

x

y

a

b

c

z

x

y

a

b

c

(c)

aa

b

� No external don't care set.

� Replace AND by wire: gx = a

� Analysis:

{ Æ = fx � gx = ab� a = ab0.

{ ODCx = y0 = b0+ c0.

{ Æ = ab0 � DCx = b0+ c0 ) feasible!

Page 35: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Degrees of freedom

c GDM

� Fully represented by don't care conditions:

{ External don't cares .

{ Internal observability and controllability.

� Don't cares represent an upper bound on

the perturbation.

� Approximations:

{ Use smaller don't care sets to speed-up

the computation.

Page 36: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-vertex optimization

c GDM

� Simplify more than one local function at

a time.

� Potentially better (more general) approach.

� Analysis:

{ Multiple perturbations.

� Condition for feasible replacement:

{ Upper and lower bounds on the

perturbation.

{ Boolean relation model.

Page 37: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

(a)

δ

δ1

2

(b)

z

x

y

a

b

c

z

x

y

a

b

c

z

x

y

a

b

c

z

x

y

a

b

c

(c) (d)

� The two perturbations are related.

� Cannot change simultaneously:

{ ab! a.

{ cb! c.

Page 38: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-vertex optimization

Boolean relation model

c GDM

z

x

y

a

b

c

a b c x; y0 0 0 f 00, 01, 10 g0 0 1 f 00, 01, 10 g0 1 0 f 00, 01, 10 g0 1 1 f 00, 01, 10 g1 0 0 f 00, 01, 10 g1 0 1 f 00, 01, 10 g1 1 0 f 00, 01, 10 g1 1 1 f 11 g

Page 39: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-vertex optimization

Boolean relation model

c GDM

� Compute Boolean relation:

{ Flatten the network. Analyze patterns.

{ Derive equivalence relation from ODCs.

� Use relation minimizer.

� Example of minimum function:

a b c x; y1 � � 10� 1 1 01

Page 40: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-vertex optimization

Boolean relation model

c GDM

SIMPLIFY MV R( Gn(V;E) )frepeat f

U = selected vertex subset;foreach vertex vx 2 U

Compute OCDx;Determine the equiv. classes of the Boolean relationof the subnetwork induced by U ;

Find an optimal function compatible with the relationusing a relation minimizer;

guntil (no more reduction is possible);g

Page 41: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-vertex optimization

compatible don't cares

c GDM

� Determine compatible don't cares :

{ CODCs: subset of ODCs.

{ Decouple dependencies.

{ Reduced degrees of freedom.

� Using compatible ODCs, only upper bounds

on the perturbation need to be satis�ed.

Page 42: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

two perturbations

c GDM

� First vertex:

{ CODC equal to its ODC set.

{ CODCx1 = ODCx1.

� The second vertex:

{ CODC smaller than its ODC to be

safe enough to allow transformations

permitted by the �rst ODC.

{ CODCx2 = Cx1(ODCx2)+ODCx2ODC0x1

� Order dependence.

Page 43: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

�rst vertex vy

c GDM

(a)

δ

δ1

2

(b)

z

x

y

a

b

c

z

x

y

a

b

c

z

x

y

a

b

c

� CODCy = ODCy = x0 = b0+ a0

� ODCx = y0 = b0+ c0

� CODCx = Cy(ODCx) +ODCx(ODCy)0 =

Cy(y0) + y0x= y0x = (b0+ c0)ab = abc0.

Page 44: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example (2)

c GDM

(a)

δ

δ1

2

(b)

z

x

y

a

b

c

z

x

y

a

b

c

z

x

y

a

b

c

� Allowed perturbation:

{ fy = bc! gy = c.

{ Æy = bc� c = b0c � CODCy = b0+ a0.

� Disallowed perturbation:

{ fx = ab! gx = a.

{ Æx = ab� a = ab0 6� CODCx = abc0.

� The converse holds if vx is the �rst vertex.

Page 45: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-vertex optimization

compatible don't cares

c GDM

SIMPLIFY MV ( Gn(V;E) )f

repeat f

U = selected vertex subset;

foreach vertex vx 2 U

Compute COCDx and the corresponding

local don't care subset gDCx;

Optimize simultaneously the functions at U ;

guntil (no more reduction is possible);

g

Page 46: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Summary

Boolean methods

c GDM

� Boolean methods exploit don't care sets

and simpli�cation of logic representations.

� Don't care set computation:

{ Controllability and observability.

� Single and multiple transformations.

Page 47: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Synthesis and testability

c GDM

� Testability:

{ Ease of testing a circuit.

� Assumptions:

{ Combinational circuit.

{ Single or multiple stuck-at faults.

� Full testability:

{ Possible to generate test set for all faults.

{ Restrictive interpretation.

Page 48: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Test for stuck-ats

c GDM

� Net y stuck-at 0.

{ Input pattern that sets y to true.

{ Observe output.

{ Output of faulty circuit di�ers.

� Net y stuck-at 1.

{ Same, but set y to false.

� Need controllability and observability.

Page 49: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Test sets

don't care interpretation

c GDM

� Stuck-at 0 on net y.

{ ftjy(t) �ODC0y(t) = 1g.

� Stuck-at 1 on net y.

{ ftjy0(t) �ODC0y(t) = 1g.

Page 50: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Using testing methods for synthesis

c GDM

� Redundancy removal.

{ Use TPG to search for untestable faults.

� If stuck-at 0 on net y is untestable:

{ Set y = 0.

{ Propagate constant.

� If stuck-at 1 on y is untestable:

{ Set y = 1.

{ Propagate constant.

Page 51: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

c GDM

a

b

c

0

stuck−at 0

a

b

c

a

b

c

(a)

(b)

(c)

z

z

z

xy

Page 52: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Redundancy removal

and perturbation analysis

c GDM

yxz

� Stuck-at 0 on y.

{ y set to 0. Namely gx = fxjy=0.

{ Perturbation:

� Æ = fx � fxjy=0 = y � @fx=@y.

� Perturbation is feasible, fault is untestable.

{ No input vector t can make

y(t) �ODC0y(t) true.

{ No input vector can make

y(t) �ODC0x(t) � @fx=@y true.

� because ODCy = ODCx+ (@fx=@y)0.

Page 53: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Redundancy removal

and perturbation analysis

c GDM

� Assume untestable stuck-at 0 fault.

� y �ODC0x � @fx=@y � SDC:

� Local don't care set:

{ DCx � ODCx+ y �ODC 0x � @fx=@y:

{ DCx � ODCx+ y � @fx=@y.

� Perturbation Æ = y � @fx=@y.

{ Included in the local don't care set.

Page 54: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Synthesis for testability

c GDM

� Synthesize networks that are fully testable.

{ Single stuck-at faults.

{ Multiple stuck-at faults.

� Two-level forms.

� Multiple-level networks.

Page 55: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Two-level forms

c GDM

� Full testability for single stuck-at faults:

{ Prime and irredundant cover.

� Full testability for multiple stuck-at faults:

{ Prime and irredundant cover when:

� Single-output function.

� No product term sharing.

� Each component is PI.

Page 56: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Example

f = a0b0+ b0c+ ac+ ab

c GDM

a’

b’

b’

c

a

c

a

b

stuck−at 0

A

A

A

A

1

1

2

3

4

O

Page 57: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-level networks

De�nitions

c GDM

� A logic network Gn(V;E) ,

with local functions in sum of product form.

� Prime and irredundant (PI):

{ No literal nor implicant of any local

function can be dropped.

� Simultaneously prime and irredundant (SPI):

{ No subset of literals and/or implicants

can be dropped.

Page 58: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-level networks

Theorems

c GDM

� A logic network is PI and only if:

{ its AND-OR implementation is fully testable

for single stuck-at faults.

� A logic network is SPI if and only if:

{ its AND-OR implementation is fully testable

for multiple stuck-at faults.

Page 59: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-level networks

Synthesis

c GDM

� Compute full local don't care sets.

{ Make all local functions PI w.r. to

don't care sets.

� Pitfall:

{ Don't cares change as functions change.

� Solution:

{ Iteration (Espresso-MLD).

� If iteration converges, network is fully testable.

Page 60: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Multiple-level networks

Synthesis

c GDM

� Flatten to two-level form.

{ When possible { no size explosion.

� Make SPI by disjoint logic minimization.

� Reconstruct multiple-level network:

{ Algebraic transformations preserve

multifault testability.

Page 61: BOOLEAN - École Polytechnique Fédérale de Lausannedemichel/publications/mcgraw/overheads/boolea… · Bo olean metho ds c GDM Exploit Bo olean p rop erties. {Don't ca re conditions.

Summary

c GDM

� Synergy between synthesis and testing.

� Testable networks correlate to small-area

networks.

� Don't care conditions play a major role.