Title: Timing Analysis and Optimization Considering Process Variation
1Timing Analysis and Optimization Considering
Process Variation
- UCLA EE201C
- Spring 2006, Professor Lei He
2Outline
- Static Timing Analysis (STA)
- Motivation
- Modeling
- Algorithm
- Summary
- Process Variation
- Trends
- Modeling
- Statistic Static Timing Analysis (SSTA)
- Monte Carlo simulation
- Path-based and block-based SSTA
- Optimization
- Student presentations
3Static Timing Analysis (STA)
4Motivation
- Given a gate-level netlist
- Does the netlist meet the timing spec?
- How fast can it be clocked?
- Where is the critical path?
- Can the design be optimized?
-
- Its all about timing!
- Performance
- Timing analysis
- Quite complicated in the real world
- Well touch some of the basics
5Dynamic v.s. Static Simulation
- Dynamic timing analysis
- Start time ? end time
- Inputs are fully specified (input patterns)
- SPICE!
- Pro accurate
- Con super slow for large circuits
- Static timing analysis
- Separate timing analysis and function
verification - Characterize circuit timing independent of inputs
and time periods - Worst case analysis
- Work at the extremes ? guarantee work always
6STA Assumptions
- Design is synchronous
- Signal can be arbitrary
- Signal may take any value (0/1)
- Signal can switch at any time within the cycle
- Worst case assumption
- Signal becomes stable at the latest possible time
- Signal becomes unstable at the earliest possible
time
7STA Close Lookup
- All storage elements are latch or FF
- Cycles cut by clocked storage elements
- STA characterizes timing of combinational parts
between storage elements
8Single Path Delay Computation
- Path delay sum of 50 propagation delay
9Device Delay Models
- Unit delay model
- Delay through ANY gate is 1 time unit
- Const gate delay model
- Different gates have different delays
10Device Delay Models
- Delay is a function of fanout/slew
- Table based
- Input pins are different
11Interconnect Delay Model
- Interconnect delay becomes a dominant portion of
total delay - Lumped RC model
- Distributed RC model
- As frequency increases, RLC model may be necessary
12Interconnect Delay Model
- Delay for RC trees
- Rubinstein-Penfield Theorem
- For our purpose, we assume point-to-point wiring
delays are pre-characterized as cell delays - Different interconnect have different delays
13Putting things together
- Interconnect delay in red
- Gate delay in blue
- Arrival time in green
14Combinational Block Modeling Delay Graph
- Labeled directed acyclic Graph (DAG)
- Vertices gates, PI, PO
- Edges Interconnect
- Labels delays
15Path-based STA
- Path enumeration
- List all paths, output path delays
- Algorithms
- It works, but whats the problem?
16Path Enumeration
- Problem is the number of paths
- Can be exponential growth
- Total paths 2n
17Block Based STA
- Arrival times (AT) at a node
- Time when signal arrives at the node
- Latest time signal can become stable
- Determined by longest path from source
18Block Based STA
- Required arrival time (RAT) at a node
- Time before which signal must arrive to avoid
timing violation - Latest time signal is allowed to become stable
- Determined by longest path to sink
19AT Computation Kirkpatrick 1966
- AT at node n
- Longest path delay from source to node n
- Longest path Forward-prop(source)
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
-
- Linear algorithm operates on DAG
20AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
21AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
22AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
23AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
24AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
25AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
26AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
27AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
28AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
29AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
30AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
31AT Computation illustrated
- Forward-prop(W)
- For each vertex v in W
- For each edge ltv,wgt from v
- Final-delay(w)max(Final-delay(w),
delay(v)delay(w)delay(ltv,wgt)) - If all incoming edges of w have been traversed
- Add w to W
32How about RAT?
- RAT required arrival time
- Backtrack from sinks
33Timing Slack
- Each node AT RAT
- Timing slack RAT-AT
- Reflects criticality of a node
- Negative timing violation, node is no critical
path - Positive extra timing budget
- Optimize for power/area/robustness
- Slack distribution is KEY for timing
optimization!! - An example assuming RAT(f)5.80
34Logical v.s. Topological
- So far we have ignored the logic details for each
vertices - Topological timing analysis
- We dont care the logic functionality
- Major assumption for STA
- Major flaw due to this false path
- In contrast, for logical timing analysis
- We care the logic functionality
35False Path in STA
- A major (critical) assumption hidden behind STA!
- All paths are sensitizable
- There always exists a set of inputs that will
cause the logic propagating along any chosen path - But this is NOT true in general
36False Path Example Carry Bypass Adder
- Our previous algorithm will identify the red path
as the longest path! - Is this path sensitizable?
37False Path Example Carry Bypass Adder
- To sensitize red path we need
- ai XOR bi ai1 XOR bi1
- But red path is false
- When above condition is true, MUX selects 1
input, i.e. directly from ci-1 - Instead shorter green paths are sensitized
- Hence, red path is not the critical path of the
circuit!
38False Path Aware STA
- False path is universal for STA
- Causes a lot of pain for STA
- Determining sensitization path is very hard
- As hard as Boolean Satisfiability (SAT) problem,
which is proven NP-hard - Fortunately, there exist a lot of effective
heuristics - Beyond the scope
39Mini Summary
- STA is a very powerful tool for chip sign-off
- Delay modeling (device interconnect)
- DAG for timing analysis
- AT/RAT/Slack computation algorithms
- False path in STA
40Midterm Presentation
- Analysis and optimization of power supply network
using RC model or RCL model - variation aware circuit tuning (e.g.,
criticality, gate sizing) - variation aware clock design (clock tree or
network) - chip-level variation analysis on timing and power
- parameterized model order reduction
- new development on statistical static timing
analysis (SSTA)
41Bet on Topics
- Submit proposal by May 8th
- One page per topic
- Two topics a team
- Proposal content
- Theme of presentation
- Papers to be presented
- Likelihood for a programming project