You are on page 1of 41

D

> A

1
C

7 >

7 C
=

<




: ;

 

! & 9

'

7 B

 7 8

1 2 5

1 2 4

 $



.

 

'

1 2 3

 

"




+


 




  

" #


!

'

'

'

 

 

 

 

 




 

 

%
+



 

   

 

 

' (

  
F
F

E
E

K
P

H
L
Q
R

J
M

I
I
I
I

G
/* level of PI nodes initialized to 0,
the others are set to -1.
Invoke LEVEL from PO */
LEVEL(k)
if( k.level != -1)
return(k.level)
else
k.level = 1+max{LEVEL(ki)|ki ∈ fanin(k)}
return(k.level)

S
L
L

W
W
Q
R

T
T

U
V
Y
Y
J

I
X
X
I

G
/* Given arrival times on PI’s */
for L = 0 to MAXLEVEL
for {k|k.level = L}
Ak = max{Aki} + Dk
2
3
d

s
`

c
_

b
a

d
h

_ r

_ `

u z

]^

li

j
k
^

h
`

u
v

_ p _

q u

c
_

y b

j \

_ c

c
_

d
b

d i

a b


d

\
d

_ `

_ c
`

d
b

q
u

]^

a g

\
| …

d e

{ | „

]^

{ |

_ c

li

`
w

a b k

h z

|
k

q u v

_ c

_ `

_ g
s \

{ | { |

n ‚

f
j

]^

[ \

m m m
š

š ›  

4
 ¼

š ›

 ¼

‹
±


—

š ›

ˆ “

›
˜

˜ ™

Š ‹
ž


Ž

—
›  
’

š ›

 –
­

› ¬

— »

•
 •

­ ®

›  


Ÿ

‘ ’

‘ ’

› ¬

›  

š
¡

 

› «

 
› ›
š

ž ‹

›  

©
–

— ¶

› › ›

       
› › › ›

š ¡ š ¡ š ¡ š

›   ¡

Ÿ ‘

Ž 

 Ž 

Ž 

§ ¨

Œ
’
‹

Œ


¥ ¦

Š ‹

‰ ‰

µ µ
5
Ê

å É

Ã
Â

Ï Ù

ÔÕ

Ì Å

ä
Ï Ò

×
Ï Ø

Ì
Å

Ö ã

Ì
Å

Ï Ö ×

Ï Ð

Ã
Ä

×
Ò

ÍÎ

ÍÎ

Ë
Ì

Ã
Ä

Ë Ì

à á

Ê Ü

Ë
å

à È

Ì
Å

Æ Ç

Ã
Â

Å Û

à Ä

ÔÕ

Ì
Æ É

Á Â

ÝÞ

À À À
6


ù


ê 

ë
ø

é
ð

 

û 

ù
ø




ê 

÷ û
ü

ò  

ê ö ê 

ç î

ø ù

ù ÷

ï
ê

ñ
ù ÷

 


ü

ê ö

ñ


ë
ó

ô
ý


ê

ñ ý

ë
ý

ó
î

ï
ö

ý


ðñ

ê ï

ö


ý
î

í î

ý 

ó ó

ê ë

û ü ë


è é

ú ú ú
7
4

R
; @

&

9
$

&

(
-

-
(

&
9

, R

&

&

#
:

9
* ;

&

, T

9 >

&

&

(
2 3 4

P ,

#
:

# $

&

<

#
:

'

$
&

&

-
,

&
.

*
8

M
9

#
:

) *

O Q

<

&

)
&
-

I J K

&

.
# 0

<
-

&

H I J

# $

&

.
$
#

&
<

&

&
.

, -

&

<

&

>

9
(

#
:

) *

B G

&

D
:
#

' (

&

< *

B E

" &

# :

/ /

1 B C D

&

&

9 9

- -

-
,

&

" # $

* *

N N

7 8
8


Ž 

w
[ q q q q

\ q

Œ 

s s sx s { s~

¡ ˜


\ \

z z

Š ‹

¢ ¦§

…‰

 
t

r
w

w w
w

q q q

q q q q q

q w

[ q

v v y y | |  €  ‚

‡ ˆ

\ q

q w


Ÿ

p p

u v u y u | } u  } u  } u € } u  } u ‚ } u ‚ } u ‚ } u ƒ } u „ }

“ Ÿ
’

 ž

‘ “ ”
’

’ œ

š ›

— ˜

‘
’

‘
’

‘
’

‘ ’ “ ”

]^ _
t

a a

h h

]a

d
d

l
9
Ò

ÊÖ

Ä
Î

Á Ì Ë

Ä Ñ

¶ »

Þ ß

¿
À

«
È


Å

À À
Æ

Á Á

Õ
È

¹ º

¿ À

Æ Ë

Å Ô

Ã
Ë

Á
Î

À ¿ Ù

Ê Ú

Æ À

Á
Ý
¿ À

È
Ä

¿
Ç

À
Î
³ Ê

ÃÏ

Â
À

Ñ
É
Ä

Æ À

à È

Æ Ð

Æ Ð

Ã Ç Á È

Î
¯

° ±

Î
´

Â
Ê Ï

³ Ì

Ð
Ê

¬
À
Æ

² Á

Á
Á

³ Ð

¿ À

± ½
Å

Ä Å

Ä Î

Â
Ä

Á
° ±

Á Á

Á
Ì

Æ
Ð

Ó
Ê

Á
°
À

Ê Â

ª ¯

®
¿ À

Ø Ø

¿ À ¿

Í Ç

Î
Å

¾ ¾ ¾ ¾

¬ ­

×
â
â

á
á
á
á

ã
ê

æ
æ
æ
æ
ë

å
ç
ç
ç

è
è

ä
ä

é
ÿ

ì
ô
ô
ù
þ

ï
ï
ï
ï

î
î
î
î
î
î
î
î

í
í
í

ð
ø

õ
õ

÷
÷
ü
ü
÷

û
ý

ñ
ò
ò
ò
ñ
ò
ò
ñ
ò

ó
ö
ö
ú
ú

Combinational
block
0
0 T
clock The output needs to be stable by t=T
for the correct functionality
11


 

 







 

 





 ,

2 3

 

&


 '

$











 

 &

%
 

 )



 #


 

(






 +

 

! "
 -


 

 

 




   

 

 

 


12
m

>

^ v

t
T

l
U

U V

U V
u

<

^
Q

U
Y

C H

r
s

m
V

U V

V u

j k

^ _
T

g h

Z [
E

\
6

F a

RQ

E =

G
T t
\
y

C D

\ y

8 e

?
^
l

U Y ^
U

U V

@ A

C H

X
T

C T

R S

Y o

C D

r s

>

S
^

U V W

R S

Q m

U
V

< =
T
;

K L

>

R S

T
<

U
]

V
g

] ]

Q
E

p p

P Q

d
V

>

A
C

G
O O O

9 : J

8
£

›


ª
’


–

— ¢

œ


€
ˆ
‹

– –
€

Ÿ ©
–

ˆ


€ ­

{ ™ ›

… Ÿ

 

…
„

€ ˆ

Ÿ  

†
— ˜

’
–

 ±

 š


† €

— ¡

—
°

”
•–

€ ­
”

Ÿ
‚

” •–

—
‰

—
Ÿ ¨
~

ƒ „ …

’ “

Š
ƒ

’ “




™ ³

’ “

 € €
ˆ ’ ˆ

 ‘

“ –
Ÿ
Š ©

’

” –


‚ °

ˆ ˆ

–
~

Ž  ¥

²

ž Ÿ “

¦
Š Œ Š Œ
€

–
Š
—

 

©
‰

‹
“

€ 

†


~


    

 

~ ~

~
¤

} ~

« ¬

arr(x2)=0
x2

z
1
z

arr(x1)=0
x1
1
arr(z)?
aware
False
path
´
·
·

µ


c_in s0

¸
¿

¹
»

¸
¾

¹
»
a0
s1
b0
1
0
a1 c_out
b1

mux
ripple carry adder
À

15
16
Ë

Ë
É

Ûè

Ü Ú

Ú
æ

Ý
Ú
Í

û ê

× á

Û
Ë

Ë ù

á
Ù

Ð
à

à
Ø

Ð
Û

Æ
Ï

È
ç

Ø Ý

Ú
Ù

ß
Û
Ú

Æ Ó

ß
ì

Ú à
Ù

áö

È Æ

Ü á

Æ
Ú

à ä

Û ö

Í Ì

Í î Å

Ü Ú

Ì
Ñ

Ü á â

Ý
ß
á
Ñ Ì

Ý
Ì

Î
ß

È Æ

ß Ø

Ú
Å Í æ

È
Ó

Î ô

áö

Ú
Ø

ô
Î

Ç Ì

È
Ý Þ

à
ï

Ë ã
à

Æ
Ü

Û Ø
æ

à
Ü

Ë
Ñ
Å

Ò
È

Ù Ú

å ê

É Ê

É Ê

å á

ï
Û

× Ø Ü

á
ñ ú

ãá

Æ Æ
Ó Ó

Õ Õ Õ Õ

Ð Ð

Ë Ë

ó ó

Ä Å
ü
ü
ü
ü

ý
ý

ü
Controlled value of AND

0 0 1

Controlling value of AND Non-Controlling value of AND

Controlled value of OR
1 1 0

Controlling value of OR
Non-Controlling value of OR

17
Controlling value!

statically-sensitizable

18
These paths are not





 

ÿ 

The longest true path




 




is of length 2?
-/

 


ÿ




&
'







)
'

+ ,

  ) *

 

'
&






%

'
(


1

& '
1




 

# %

# $

" # $

 

 

 



t=0

t=0
t=0

 


19
3
2
?

>

<

7 C

2
;

<

<

>

<

<

>

7 C
1
8

1
?

4
4

>

>

8 =

F
4

<

<

3 <

<

6 ?

>

<

9 :

3 4

L
1

6
H

3 4

4
K

6 ?

>

5 6

7 C

7 C

3 4

<

E
4

6
0
0

1 1
20
V

k l

R
w

s y

[ n

^ `

X
R

a r

s
y

S Z

w x

v
U

S Z

P ]

V
Z

]
v

w x
l

r {

U d

s t

S Z

n
Y

S Z

p q

P ]

T }

m n

S Z

o
l |

k l

T R

g
R

Q R
21
†

‚ ’

1
„ ‘

ˆ
3
…


2

Ž 

~
1

‹ Œ

4
Š

…
2

‡
1

~
ˆ ‰

ƒ „ …

‚
4
1
2

“ ”

€ 
0

0
22
©

3 4
  ¨

1
Ÿ

 
3
¡

˜
2

¦ §
1

¤ ¥

2
£

 
2

¡ ¢
1

Ÿ ¬

œ  ž
4->2

› «
1
2

™ š

 ª
0

0
23
Ë

³ ´

Ö Ì

Ó Ú

Ò
Ñ

Ì
½ ¾ Ð

Ù
­

Ö Ê

È
Î

² ·

Ó
Ñ Ò

Ì Ð

µ ¼

Æ
­

Ó Ú

Ç
Ì

Î
µ º

´
¹

´
»

Ê Ê

Í Î

Å
Æ

´
¹

¸ Ì

Ç
Ì

¸ Ï

´ Ó Ö

Æ Ç

² ·

Å Ç

Ç
Ì

Æ Ç

³ ´

Ä Å
Ü

à Ã

° ±

¯
24
ö

ð
ý

 

î 

 

é ù

ì ô

í
÷
ö

ç ö

ï ð

ê
õ

ì î

ï

ëí

é ê

ç è

é ö

å æ

õ
ä

ø
í

ê ê

à ã

ú ú

ú
ì ô

è è

ó
ö

ö ö

÷ ÷ ö

à â ÷

ß à á

ò ò

î
25
4

1


! "

 
3










+ .

 


1

%


&

4 

'




2



 

*
1

(
4
& '

$ %
4
1

#
2

0
5 Y

>

l {

2 C

q 9

ef

B W

x
p

>

0
q

b
2
4
3

P S

p x

4
R

^
a

@ A

w
a

v w

N
l

U V
>

P Q

>

tu

J O

l €
e

< =

H N

m s

: ;

K L

p q p q

8 9

o o

D [

a b
6 7

l m n l m n

H I

k k

}
_

j k j k

F G

] ^

D
a

i i

2 3

\ \



‚
‚

‹
‹
‹

‰
‰

Ž
’


–

ƒ
ˆ
ˆ

„
„
„

†
”
”

Œ
Œ
Œ

…

“

‡
Š
Š
‡
Š
‡
‡
‡
Š
Š



•
—

–
ˆ
ˆ

Œ
…
˜


“

‡

£
£

¢
¢




¥¦

œ
Ÿ
œ

š›
ž
 ¡
 
ž
¡
¤
›

™
‹
‹

‰
©
’
Ž
’

§
–
–
–
–
–

ˆ
ˆ
ˆ
ˆ
ˆ

„
„
„

†
†
”

Œ
Œ
Œ

¨
“

Š
‡
Š
Š
‡
‡
Š
‡






—
—

ª
ª

‹
­

ˆ
„

Œ
Œ

‡
«


•
For final controlled output value
late 0 0 Earliest-arriving controlling value
early 1 determines the output stable time

For final non-controlled output value


early 1 1 Latest-arriving non-controlling value
late 1 determines the output stable time
27
!
Ô

É Õ

Ö 

Õ
¼

ÜÝ

Ë Î

»
Ê
# $

Ù Ú

É Í

Û 

ØÎ

!


Ý
Â

!
Û


"

,
$

ë 

!

ë ö
Û

Ý


× ý




¸
ë ì

ë ì

Ù Ú

¹
Ð
Ï

Ï
Ø

Á
º

É Õ

" +ú
Ú

Ë Î


Ö

½
À ×

ì
ðñ

Õ
ø 

ðñ

ë ï Î

± Æ

ë ï

¿
É

Í
³

É Õ

Ö 

µ
¸

Ë Î

²
!

òó ô

º
¾

Ù
¹

òó ô

ðñ

Û
Î


ú
ðñ 

ë ï

ë ï

ë î

 

'

Ï ÿ

¶ Ê

ë î É

¸ ½

í
á

Ï Ñ Ò

Ë Î


!

è é

Ü
¸

ç


ë ì

Ì Þ

ç 

À
» ¼

ë ì

Ï Ð

Ï
!

&

²
!

Û
ß à

É
ø

¹ º

Õ 

º Ã

Ï ü ý

Ê
 

Í Î

Í Î

ø ù ú

±
²

± ²

î
×

¸
Î

 

Ï û 
¸

Ã É Ì

Ð


Ï
¼

¹ ú
·



äå äå
Í

É Ê

"

ã ã

È É Ê

Á
å

²  

´ µ ¶

ØÎ

Ç Ç Î

æ
 

¸
± ²


O P

4
C

29
W

O A

2
Z

@ A

>

>

>

Z
` a ^

>

>

7
]

? M

Z d

F G 8

Z
>

@ A

i IA

Z ^

I
7 ]

A B
O

/
6

B
@

Q
A

B L

W
I

5
S

K
A

@ A

A
O

?
:
N

6 >

W
B

N A

? J
Z

>

>

1
Y

h
A

>

<

? H ]

F G

S
k

S T

D > q

a
`

1
]

:
k

E 3 [

>

C ? R

1
Y

= >
7 8

A
f

A A
@

?
A

6
I

@ A = >

o o

3 5
>

Y Y
1

<

3 4

2 2

= >

1
V

0 1

X X
ˆ

30
u

y ‡

g
x

ƒ „

f
‚

 Ž

x
w

x
d

€ 


e


c
y

} ~

x
|

z {

w x

t u

~
b
a

g(1,t=2) : the set of input vectors under which
g gets stable to value = 1 no later than t =2
d
g
a
b e f
Onset:
stabilized by t=2?
c
g(1,t=2) = d(1,t=1) ∩ f(1,t=1)
= (a(0,t=0) ∩ b(0,t=0)) ∩ (c(1,t=0) ∪ e(1,t=0))
= !a!b(c ∪ ∅) = !a!bc = S1(t=2)
g(1,t=∞) = onset = !a!bc = g(1,t=2) = S1 31

g(0,t=2) : the set of input vectors under which
g gets stable to value = 0 no later than t=2
d
g
a
b e f

c
g(0,t=2) = d(0,t=1) ∪ f(0,t=1)
= (a(1,t=0) ∪ b(1,t=0)) ∪ (c(0,t=0) ∩ e(0,t=0))
= (a+b) + (!c ∩ ∅) = a+b = S0(t=2)
g(0,t=∞) = offset = a+b+!c = S0 32
‘
g(0,t=2) : the set of input vectors under which
g gets stable to 0 no later than t=2
d
g
a
b e f
Offset:
NOTstabilized by t=2
under abc=000
c
g(0,t=2) = a+b
g(0,t=∞) = offset = a+b+!c
g(0,t=∞) \ g(0,t=2) = (a+b+!c) !(a+b) = !a !b !c = satisfiable
33
­

  ¦

34
¤

œ
¥

• Ÿ

³ Ü

¤
Ÿ

¤ Ÿ


ž

 
ª

ž ž

› œ

§ ®

Ú
Û

º Ð

  ˜ »

À
»

·
» ¢

« Ù

Í Î Ï
—

¾
¢

° œ

· Â

º
»

Ò
œ
¼

Á
©

  ¡


ä

¼É

—

Ÿ

Á Â

• Ÿ

œ
Ñ ã

Ñ ã
°
Ø

˜


­
¦

À
•


Ï
­
Í Î
Á

»
Ê
¢

· »

Á â

Ú Û

Á å

ª
 

º »

Ÿ
¤

« Ù

  ª

§ ®

¥ Ÿ

 ž

§ ¨

ÇÈ

¢ Ò

À Ï
»

› œ

º »

»
—
Ê

º Ð
ç

®
§

¥ ¯

” ž

·¸

° Ø

¢ ²

Í Ô

™ š

œ
— °

Ä
”

µ ¶

¤
•
ž

– —

° œ

Ó

° œ

´ ´ ´

Ÿ
¤

•
¢

™
³
“ ”

æ
œ

• Ÿ

œ
35





ô
ì

 

ë ø




ÿ
 


ö

 










 þ

ô õ



ó




 

 


ì
ÿ




û
ó



ê

ÿ


ð û


ð


þ


÷ 


ó


 

 
ú

ÿ
ý þ

í î

ü ü ü ü

ë ì

é ê
36
/

V
O

? @

O U

) '

W @

K O

O
K

&

QB

' L

@
O

O
K

W
D

?
O

@
?

Y K

/ #

K
S

;< =

K
L

K
M

\ ]

O O

B
K

S S
D D

O O

G Z

? ?

9 %

O V

O R O R

- .

'
#

@Q @Q

K T

O P O P

'

B B

M
'

N N

@
O

&

GH
?

GH

K K
L L

' D

L L

B E
K

) *

D D

M M

2 7

#
(

C D F

K
B
J K L J K L

I I I

& '

? @A

&
#

> >

$ %

5 6

" #
^
(0,[3,3])
(X,[0,0])

(X,[0,0])

(X,[0,0])

37
_
(X,[1,1])
(0,[3,3])
(0,[0,0])
(0,[1,1]) (X,[2,3])
(X,[0,0])
(X,[1,2])

(X,[0,0])

38
`
(1,[1,1])
(0,[3,3])
(0,[0,0])
(0,[1,1]) (X,[2,3])
(0,[0,0])
(X,[1,2])

(X,[0,0])

39
a
(1,[1,1])
(0,[3,3])
(0,[0,0])
(0,[1,1]) (1,[2,2])
(0,[0,0])
(1,[1,1])

(1,[0,0]) Value and time


conflict!

Backtrack!
40
b
(1,[1,1])
(0,[3,3])
(0,[0,0])
(0,[1,1]) (0,[3,3])
(0,[0,0]) Justified!
(0,[2,2])

(0,[0,0])
Found an input vector that makes
the output stable to 0 no earlier than t=3

41

You might also like