Professional Documents
Culture Documents
1 Recap
Introduction: STA, Incremental Timing and CPPR
Problem Formulation
2 Algorithm
Incremental Timing: Identifying Incremental Cones and Resolving
Dependencies
Block-based topologically guided CPPR and Path Extraction Using
Dynamic Path Reduction
3 Experimental Results
Accuracy and Memory Efficiency
Test Coverage and Pin Coverage
Challenges & Improvements
4 Conclusion
Back Traversal
Find Credit
Block Based CPPR :
Front Traversal
Build NegPinList
Path Extraction
Cone-end Points
Every cone in the circuit can be associated with a unique primary output
or flip-flop input pin, henceforth referred to as Cone-end point (CEP)
inp1 a
inp2 a
z D Q az az b z out1
b
FF1 u1 u3 u5
u2 buf1
az u7
az a
D Q b z D Q
FF2 u4 FF3
clk az az az
inv1 buf2 buf3
inp1 a
inp2 a
z D Q az az b z out1
b
FF1 u1 u3 u5
u2 buf1
az u7
az a
D Q b z D Q
FF2 u4 FF3
clk az az az
inv1 buf2 buf3
Figure: Adding a gate to the circuit
inp1 a
inp2 a
z D Q az az b z out1
b
FF1 u1 u3 u5
u2 buf1
az u7
az a
D Q b z D Q
FF2 u4 FF3
clk az az az
inv1 buf2 buf3
Figure: Adding a gate to the circuit: Disconnect net from u4:z
inp1 a
inp2 a
z D Q az az b z out1
b
FF1 u1 u3 u5
u2 buf1
az u7
az a
D Q b z az D Q
FF2 u4 u6 FF3
clk az az az
inv1 buf2 buf3
Figure: Adding a gate to the circuit: insert u6
inp1 a
inp2 a
z D Q az az b z out1
b
FF1 u1 u3 u5
u2 buf1
az u7
az 1 a 3
D Q 2 b z az D Q
FF2 u4 u6 FF3
clk az az az
inv1 buf2 buf3
Figure: Adding a gate to the circuit: insert net 3 & connect net 3 to u4:z
FF2 u4 u6 FF3
clk az az az
inv1 buf2 buf3
Resolving Dependencies
Find a set of incrementally affected & independent nets: Based on a
modified version of Breadth-First Search Algorithm
Identify net 1 & 2 as independent nets & FF3:D as incremental CEP
Cone of FF3:D is hence an incremental cone of change (ICC)
original incremental change
a a
b z b z az
u6 ICC
XOR2_X1 XOR2_X1
inp1 a
inp2 a
z D Q az az b z out1
b
FF1 u1 u3 u5
u2 buf1
az u7
az 1 a
2 3
D Q b z az D Q
FF2 u4 u6 FF3
clk az az az
inv1 buf2 buf3
FF2 u4 u6 FF3
clk az az az
inv1 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
inp1 a
b z
u2
D Q a a
az D Q
FF1 b z b z
ck u3 c FF3
buf1 u1 ck
u5
az
a
D Q b z az out1
FF2 u4 u6
ck
cp23
clk az az az
inv1cp13 buf2 buf3
inp1 a
b z
u2
D Q a a
az D Q
FF1 b z b z
ck u3 c FF3
buf1 u1 ck
u5
az
a
D Q b z az out1
FF2 u4 u6
ck
cp23
clk az az az
inv1cp13 buf2 buf3
inp1 a
b z
u2
D Q a a
az D Q
FF1 b z b z
ck u3 c FF3
buf1 u1 ck
u5
az
a
D Q b z az out1
FF2 u4 u6
ck
cp23
clk az az az
inv1 cp13 buf2 buf3
inp1 a
b z
u2
D Q a a
z az b z D Q
FF1 b FF3
ck u3 c
buf1 u1 ck
u5
az
a
z az out1
D Q b
FF2 u4 u6
ck
cp23
clk az az az
inv1 cp13 buf2 buf3
NegPinList inp1 a
b z
Pins Slack
u2
u1:aL -33 a
D Q a
u1:bL -25 z az b z D Q
FF1 b FF3
u3 c
u4:bL -15 buf1
ck
u1 ck
u5
az
a
z az out1
D Q b
FF2 u4 u6
ck
cp23
clk az az az
inv1 cp13 buf2 buf3
NegPinList inp1 a
b z
Pins Slack
u2
u1:aL -33 a
D Q a
u1:bL -25 z az b z D Q
FF1 b FF3
u3 c
u4:bL -15 buf1
ck
u1 ck
u5
u2:bL -28 az
u2:aE -13 a z
D Q az out1
u3:aL -23 b
FF2 u4 u6
u4:aL -33 ck
u5:aL -28
u5:aE -13 clk az az
cp23
az
u5:bL -23 inv1 cp13 buf2 buf3
u5:cL -33
FF3:DL -33 Figure: CPPR Algorithm - Building NegPinList
FF3:DE -13
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
Paths Skipped
inp1 a
b z P7
u2
D Q a a
az D Q
FF1 b z b z
ck u3 P8 c FF3
buf1 u1 ck
u5
az
a
D Q b z az out1
FF2 u4 u6
ck
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
cp23
clk az az az
inv1 cp13 buf2 buf3
35
Memory peaks: corner cases
Memory (GB)
30
25 On the fly interconnect delay
20 computation
15
10 Pin slack, criticalAT,
5 criticalRAT as the only implicit
0
representation of path
37 5
38 15
12 9.1
45 8
8
13 .9K
14 .5K
16 .6K
17 K
25 .3K
14 .8K
16 6.7K
.4K
25 K
13 3K
8
15
47
1.7
5.3
35
7
.
8
9
7
47
16
9
#Gates
Coverage
A measure of the number of unique CEPs among the pins in the set
of worst paths
Higher coverage: Our algorithm typically captures a much larger
number of such CEPs than the actual N worst paths in the circuit
Beneficial in identifying all the failing cones
# Unique CEPs
# Unique CEPs
60 iTimerC 2.0 60 iTimerC 2.0
50 50
40 40
30 30
20 20
10 10
0 0
10 50 100 500 1K 5K 10K 10 50 100 500 1K 5K 10K
Path Count Path Count
300
des_perf 80
mgc_edit_dist
250 iitRACE 70 iitRACE
# Unique CEPs
# Unique CEPs
iTimerC 2.0 60 iTimerC 2.0
200 50
150 40
100 30
20
50 10
0 0
10 50 100 500 1K 5K 10K 10 50 100 500 1K 5K 10K
Path Count Path Count