230 likes | 364 Views
Porosity Aware Buffered Steiner Tree Construction. C. Alpert G. Gandham S. Quay IBM Corp. M. Hrkic Univ Illinois Chicago. J. Hu Texas A&M Univ. Outline. Introduction and Previous work Problem formulation Algorithm Experimental results Conclusion. 73. 24. -23. 33.
E N D
Porosity Aware Buffered Steiner Tree Construction C. Alpert G. Gandham S. Quay IBM Corp M. Hrkic Univ Illinois Chicago J. Hu Texas A&M Univ
Outline • Introduction and Previous work • Problem formulation • Algorithm • Experimental results • Conclusion
73 24 -23 33 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
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
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 ing
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-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
Methodology Flow • Timing-driven Steiner tree ( C-Tree ) • Plate-based adjustment • Local blockage avoidance • If a wire overlaps with blockage, it is rerouted within its local tiles • 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
Resource Consumption • Wirelength increase is negligible • CPU time is increased significantly • Plate-based adjustment • More candidate buffer locations enabled
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