Sequential Redundancy Removal w/o State Space Exploration

27
Sequential Redundancy Removal w/o State Space Exploration A. Mehrotra, S. Qadeer, V. Singhal, R. Brayton, A. Aziz, A. Sangiovanni-Vincentelli, Sequential Optimization Without State Space Exploration ICCAD 97, November 1997 M. Iyer, D. Long and M. Abramovici, Identifying Sequential Redundancies without Search”, DAC June 1996

description

Sequential Redundancy Removal w/o State Space Exploration. A. Mehrotra, S. Qadeer, V. Singhal, R. Brayton, A. Aziz, A. Sangiovanni-Vincentelli, “ Sequential Optimization Without State Space Exploration ” ICCAD 97, November 1997 . M. Iyer, D. Long and M. Abramovici, - PowerPoint PPT Presentation

Transcript of Sequential Redundancy Removal w/o State Space Exploration

Page 1: Sequential Redundancy Removal w/o State Space Exploration

Sequential Redundancy Removal w/o State Space Exploration

A. Mehrotra, S. Qadeer, V. Singhal, R. Brayton, A. Aziz, A. Sangiovanni-Vincentelli, “Sequential Optimization Without State Space Exploration” ICCAD 97, November 1997

M. Iyer, D. Long and M. Abramovici, “Identifying Sequential Redundancies without Search”, DAC June 1996

Page 2: Sequential Redundancy Removal w/o State Space Exploration

Outline

• Compatible Redundancies– Combinational– Sequential

• Results

Page 3: Sequential Redundancy Removal w/o State Space Exploration

incompatible redundanciesn1

n2

outn

similarly for n1 (s-a-1 redundant)

but setting them both to 1 at the same time gives wrong circuit

n1=0 n2=*

n1=1 n2=1

n2 is s-a-1 redundant

(* means unobservable)

Generally, we know that we can find a number of redundancies at once, but setting any one of them to their constant may invalidate the other redundancies. Like don’t cares. They need to be compatible if they are to be used simultaneoously.

Page 4: Sequential Redundancy Removal w/o State Space Exploration

Recursive learning

b

a

b1

b2

a1

a2

d

c

f

e

g

a=0 f=0

d=0 f = 0a=1 a1=1 d=1 f = *

f is s-a-0 redundant

recursivelearning

Page 5: Sequential Redundancy Removal w/o State Space Exploration

Initial state?

• We will not use an initial state• Instead we use concept of c-cycle

redundancy– after c cycles of clocking, old and new

machines have same I/O behavior– use concept of safe-delayed replacement

which preserves concept of initializing sequences.

Definition: An assumption A on a set of signals P is a labeling from {0,1} on P

Page 6: Sequential Redundancy Removal w/o State Space Exploration

Implicationsb b’

b’ b

1

1

1

0

0

0

01 1

1

10 (1)

0 (1)

0

*

*

*

*

*

*

Observability

AND / INV

Note: a * can only imply a *

Page 7: Sequential Redundancy Removal w/o State Space Exploration

Incompatible redundanciesc

d

eba

1

1

110*

*

001

Obviously wrong because of overwritingWhen is overwriting legitimate?

1. could use rule to never overwrite2. but then conservative

0

*

*

0

Page 8: Sequential Redundancy Removal w/o State Space Exploration

However!New rule: can overwrite a 0 or 1 with a *, but never overwrite a * with a 0

or 1

aa

b

a1

a2

d

c

e

10

10

01

01*1*0

*

implies that a2 s-a-0 redundant

(a=1 implications above the lines and a=0 implications below the lines)

Page 9: Sequential Redundancy Removal w/o State Space Exploration

Combinational Algorithmredundancy_remove(G = (V,E))while (there is unvisited n) {

S1 = learn_implications(n = 1)S0 = learn_implications(n = 0)

For every implication (l = v) in R {set l = constant v}propagate constantssimplify network

}

{ | ( ) 1 ( ) 0R l v l v S l v S v in {0,1}

This requires the set of redundancies R is compatible

Page 10: Sequential Redundancy Removal w/o State Space Exploration

Combinational Algorithmlearn_implications( G = (V,E), A)forall (n = v in A) {label n v }{while (some rule can be invoked) {let (n = b) be the new implication from ruleif (b = *) label n b ; continueif (b conflicts with a current label) return { l = * | l in E} // assumption A was inconsistentelse n b (I think we need to make sure a current label is not *)}

return set of all current labels}

A conflict is if the label is both 0 and 1.

Page 11: Sequential Redundancy Removal w/o State Space Exploration

Rules and properties

• At all times a net has a unique label• A 0 or 1 can be overwritten by a * • But a * is not allowed to be overwritten by

a 0 or 1• Set R is a set of compatible redundancies

Page 12: Sequential Redundancy Removal w/o State Space Exploration

Key concept to prove that set of redundancies returned is compatible

Implication Graph• Vertices are labeled with (n = r) for some net n

and r in {0,1,*}• Root vertices labeled with (m=a) in A• There is exactly on leaf vertex• For non-root node its label can be obtained from

the labeling of its parents by using one of the rules of inference.

Page 13: Sequential Redundancy Removal w/o State Space Exploration

Example - implication graphn1

n2

n3 n4

n5 n6

n7

n8n8

n9

n8=1 n2=1 n1=1

n6=1 n5=0 n3=0 n4=1 n7=1 n9=1

Page 14: Sequential Redundancy Removal w/o State Space Exploration

Key LemmaLemma: Let A be consistent. If a label (m = a) is

overwritten by the label (m = *) in the current set of labels, then for all labels (nj = bj), there is an implication graph such that (m = a) is not a label of any vertex in the graph

Proof: it is proved that if a constant label is overwritten with a *, then every other label must have an implication graph which does not depend on the overwritten label.

Page 15: Sequential Redundancy Removal w/o State Space Exploration

Proof. Suppose m = a was first instance of overwritten by a * and let nj = bj be an implication that uses m=a: n1=b1n2=b2…m=a…nj=bj but does not have a valid implementation graph now. ith

Case 1: 2: 3:

Case1. assume bj a constant. Then all bk are constants since a * can only imply a *.

OR ni ni-1

nk

*

0

ni ni-1

nk

**

ni ni-1

nk

1

1

ni ni-1

nk

00

11

ni ni-1

nk

ni-1 ni

nk

nk ni-1

ni

Page 16: Sequential Redundancy Removal w/o State Space Exploration

Theorems

• Let A be consistent. Then the set of labels returned by the algorithm is compatible.

• Let ni s-a-vi redundant for all be the set of redundant faults reported by the algorithm. Then the circuit obtained by setting ni = vi for all is combinationally equivalent to the original.

1 i n

1 i n

Page 17: Sequential Redundancy Removal w/o State Space Exploration

Sequential Redundancies

• We will use the notion of c-cycle replacement, which says that we are willing to wait c cycles after power-up to start getting the correct results

• Every signal will have a superscript which gives a time frame relative to a generic one t, e.g. dt, dt+1, dt-2

• Rules of implication are the same except when the implication is across a latch, the superscript is adjusted accordingly.

Page 18: Sequential Redundancy Removal w/o State Space Exploration

Exampled

e

fi

a

y

g

c

b

at=0 et=0 ct+1=0

dt=0 bt+1=0 gt+1=0 at+1=0 et+1=0 ct+2=0

at=1 et=1 ct+1=1

dt=1 bt+1=1 gt+1=1 at+1=0 et+1=0 ct+2=0

Might conclude that c=0 is a 2-cycle redundancy. But WRONG.

If we were to replace c by 0, and the new circuit powers-up in state 1 1, then it would produce x = 1 all the time. However old circuit produces x = 0 for t > 0.

Problem is that needed c=1 was needed when a=1 was used to imply c=0

Page 19: Sequential Redundancy Removal w/o State Space Exploration

New Rule

Insure that no net is labeled with different values at different times.Algorithm labels a net n with at most one value. If a

net is labeled then we store a list of time offsets for when this label is valid.

at=1 et=1 ct+1=1

dt=1 bt+1=1 gt+1=1 at+1=0 et+1=0 ct+2=0

Page 20: Sequential Redundancy Removal w/o State Space Exploration

c-cycle redundncy

Definition: Suppose we conclude that n is s-a-v redundant at time t’

• let t” be the least time offset in the implication graphs for n s-a-v such that some net m, mt’’ is labeled with a constant

• then we say that n is c-cycle s-a-v redundancy where 0 if '' '

' '' otherwise

t tc

t t

Page 21: Sequential Redundancy Removal w/o State Space Exploration

Lemma [1]

Let a net be c-cycle s-a-v redundant. Then the circuit obtained by setting net n = v results in a c-delayed safe replacement of the original circuit.

[1] M. Iyer, D. Long and M. Abramovici, “Identifying Sequential Redundancies without Search”, DAC 1996

Page 22: Sequential Redundancy Removal w/o State Space Exploration

Lemmas

Let A be a consistent assumption. If a label nt = a is replaced with nt = * in the current set of labels, then for all labels nt’

j = bj, there is an implication graph such that nt = a is not a label in the graph.

Let A be a consistent assumption. Then the set of labels returned by the algorithm is compatible.

Page 23: Sequential Redundancy Removal w/o State Space Exploration

Theorem

Let ni be ci-cycle s-a-vi redundant for all and . Then, the circuit obtained by setting the ni = vi for all i is an N-delay safe replacement of the original circuit.

1 i n

1

n

ii

N c

Page 24: Sequential Redundancy Removal w/o State Space Exploration

Results: Application to sequential circuits - Table 2

Compare to next table to see how much Sequential redundancy removal can to over combinational

* full_simplify not run red = # redundancies removedL = # latches, LR1, LR2 = # latches removedA = mapped area after script.rugged, A1, A2 = mapped area after red. removalsC = c-cycle replacement (upper bound)

10636

Page 25: Sequential Redundancy Removal w/o State Space Exploration

Results: Application to combinational circuits

10636

Combinational redundancy removal only

Page 26: Sequential Redundancy Removal w/o State Space Exploration

QuestionWe saw that

– Unroll the circuit n time frames– Assume that the present state lines in the first time

frame are fully controllable– Assume that the next state lines in the last time frame

are fully observable.– Use combinational test pattern generator– Two different procedures

1. Fault occurs only in the last time frame2. Fault occurs in all time frames

– In either case, lack of combinational test implies that fault is sequentially undetectable

What can we say about c-cycle redundancy?

Page 27: Sequential Redundancy Removal w/o State Space Exploration

Questions• How much did compatibility help in speeding up

redundancy removal?– Seems like we can get the same set of redundancies

without using compatibility.• Can we combine unrolling and compatible

redundancies to get a more powerful method?– i.e. unroll and then reconnect registers after n time

frames. Then detect and remove sequential redundancies.

• Using the similarity with CODCs, can we extend the compatible redundancies to get a more powerful method?