Porosity Aware Buffered Steiner Tree Construction
C. Alpert
G. Gandham
S. Quay
IBM Corp
M. Hrkic
Univ Illinois ChicagoJ. Hu
Texas A&M Univ
Outline
• Introduction and Previous work
• Problem formulation
• Algorithm
• Experimental results
• Conclusion
Buffer Insertion• Improve timing
– Drive long wire– Shield load from critical
path
• Van Ginneken’s Algorithm– Given tree topology
fixed– Find optimal solution at
fast speed
Slack
Slack
73
-23
24
33
If There Are Big Blockages
Previous Works
• Simultaneous tree construction and buffer insertion– Buffer blockage driven
• Recursively Merging and Embedding [Cong and Yuan, DAC 00]• Graph-based[Tang, et al., ICCAD 01]
– General purpose• SP-Tree [Hrkic and Lillis, ISPD 02]
– Excellent solution quality– High complexity
• Sequential tree construction + buffer insertion– Adaptive blockage avoidance [Hu, et al., ISPD 02]– Very good solution quality– Practical computation speed
If There Are Many Small Blockages
Porosity Has to Be Considered
• Handling small blockages will slow down computation
• Buffers in dense region may be spiraled away
• No previous work handles porosity directly
Express Porosity through Tile Graph
• For a tile g• A(g): tile area• a(g): usage area• d(g) = a(g)/A(g)• Porosity cost is
d2(g), if a buffer is placed in g
Problem Formulation
Porosity-aware Buffered Steiner Tree Problem: • Given
– A net N = {v0, v1, …, vn} – Load capacitance c(vi) and required arrival time q(vi) – Tile graph G(VG, EG)
• Construct a Steiner tree T(V,E), such that– Required arrival time q(vi) are satisfied– Total porosity cost is minimized
Observation• Easy to deal with node-to-node path
– Congestion can be avoided by rerouting without affecting timing
• Hard to deal with Steiner nodes– Moving Steiner nodes may degrade timing
Basic Strategy
• Construct a timing driven Steiner tree regardless porosity
• Adjust Steiner nodes simultaneously with length-based buffer insertion– Adjustment range need to be restrained– A Steiner node is moved only when buffer
is needed there
Length-based Buffer Insertion
• Simple buffering following rule of thumb– Capacitance load of driver/buffer ≤ bound L
• Dynamic programming based• Candidate solutions are propagated bottom-
up• Solution is characterized by load capacitance
and porosity cost• A solution with greater load and cost will be
pruned
L=2
Plate: Adjustment Range
Plate-based Adjustment
• Integrate Steiner node adjustment with length-based buffer insertion
• Solutions are propagated to and merged at each tile of plate
• Merged solutions at each tile are further propagated toward root
• Alternative topologies are generated • A candidate topology is selected only when it
is a part of min cost solution at the root
Example of Plate-based Adjustment
Methodology Flow
1. Timing-driven Steiner tree ( C-Tree )
2. Plate-based adjustment
3. Local blockage avoidance• If a wire overlaps with blockage, it is
rerouted within its local tiles
4. Van Ginneken style buffer insertion
Experiment Setup
• Integrated into industrial physical synthesis tool
• Three testcases – 155K, 334K and 293K cells– 209, 848 and 18 blockages
• FOM(Figure of Merit): cumulative negative slacks
Experimental Result on FOM
-30000
-25000
-20000
-15000
-10000
-5000
0
test1 test2 test3
baseline
porosity
Resource Consumption
• Wirelength increase is negligible
• CPU time is increased significantly– Plate-based adjustment– More candidate buffer locations enabled
Result Regardless Porosity
Result Considering Porosity
Conclusion
• Porosity need to be considered in buffered Steiner tree construction
• A plate-based adjustment in a four-stage flow is proposed as a solution
• Experiments with industrial physical synthesis system show encouraging results
Thank you !Thank you !