Title: Uncertaintyaware Circuit Optimization
1Uncertainty-aware Circuit Optimization
- Xiaoliang Bai, Chandu Visweswariah,
- Philip N. Strenski, David J. Hathaway
- University of California, San Diego
- IBM T. J. Watson Research Center
- IBM Microelectronics
2Outline
- Why optimization is good
- Why optimization is bad
- Uncertainty-aware tuning
- Experimental results
- Alternative formulations
- Conclusions
3Why optimization is good
- Background EinsTuner automatic transistor
resizing tool - based on static timing all paths implicitly
considered - uses nonlinear optimization optimality
guaranteed - uses fast simulation and sensitivity analysis
- Benefits
- better circuits (delay, area, power, noise,
combinations thereof) - enhanced designer productivity
4Optimizing circuit delay
5What tuning does the wall
signals
slack
6What tuning does the wall
signals
untuned
slack
20 ps
-10 ps
7What tuning does the wall
signals
untuned
slack
20 ps
-10 ps
8What tuning does the wall
signals
The expected value of the worst slack is
adversely impacted by the height of the wall
untuned
slack
20 ps
-10 ps
9Why optimization is bad
- Disadvantages of the wall
- extreme sensitivity to uncertainties
- manufacturing
- environmental
- inaccuracy in modeling and tools
- further optimization is very difficult
- manual
- automatic
- high delay-testing cost
10Key idea
- The wall is an artifact of mathematical
optimization the optimizer will increase the
height of the wall even to save 0.001 ps - Define separation of a path as the difference
between the slack of the path and the slack of
the most critical path - We need to give the optimizer incentives to
increase separation - To accomplish this, we add penalty terms to the
objective function to avoid the wall - The penalty must be in relation to the most
critical path, which changes dynamically
11Uncertainty-aware tuning
z
12In mathematical terms
- Nominal tuning
- Uncertainty-aware tuning
- k is a weight factor the penalty function forces
separation
13Observation
- Optimizers often convert inequalities to
equalities by introducing a non-negative
constraint slack variable - (z-ATi) is the value of the constraint slack
introduced by the nonlinear optimizer for the
inequality z ? ATi - We express the penalty in terms of this
constraint slack
14Choice of penalty function
Penalty Box
z
15Choice of parameters
Penalty Box
z
To guarantee the downward pressure on z
16Uncertainty-aware tuning histogram
17Estimated manufacturing result
18Area tradeoff minimization modes
- Area minimization mode
- Tradeoff mode
19Pruning
- EinsTuner prunes the timing graph
- reduces problem size
- reduces degeneracy and redundancy
- reduces CPU time
- But a primary output arrival time may be pruned
- In this case, we add a penalty term corresponding
to every sub-path that ends at a primary output - Again, we re-use the constraint slack variable
20Experimental results
Similar slacks, better manufacturability
21Nominal tuning
z
ATi
Arrival time
Delay
22Nominal tuning with constraint slacks
Constraint Slacks
Critical path
23Uncertainty-aware tuning
Separation
24Pruned
25Internal separation AT/RAT separation
Arrival Time
Required Arrival Time
Delays
Constraint Slacks
Same delay
Separation
Critical Path (shown for AT constraints only)
26Conclusions
- Optimizer gratuitously creates a wall of
equally critical paths - Uncertainty-aware tuning reduces the height of
the wall - The resulting design is less susceptible to
manufacturing and other sources of variation - Easier downstream restructuring, delay testing
- Side benefit optimizer is more efficient by
eliminating degeneracy