270 likes | 362 Views
Optimization of Placement Solutions for Routability. Wen- Hao Liu, Cheng- Kok Koh , and Yih -Lang Li. DAC’13. OUTLINE. INTRODUCTION PROBLEM DESCRIPTION PROPOSED ROUTABLITY OPTIMIZER EXPERIMENTAL RESULTS CONCLUSIONS. INTRODUCTION.
E N D
Optimization of Placement Solutions for Routability Wen-Hao Liu, Cheng-KokKoh, and Yih-Lang Li DAC’13
OUTLINE • INTRODUCTION • PROBLEM DESCRIPTION • PROPOSED ROUTABLITY OPTIMIZER • EXPERIMENTAL RESULTS • CONCLUSIONS
INTRODUCTION • Routability is of primary concern in nanometer-scale design. • Some placers[1-3] adopt probabilistic methods to estimate the routing congestion. • low estimation accuracy
INTRODUCTION • Placers in [4-7] invoke global routers to obtain a routing congestion map, and then move cells to reduce the congestion based on the map.
INTRODUCTION • Global routers [8-13] ignore the local congestion. • may produce hard-to-route placement • Simultaneously consider global and local congestions. [15] • took local pin density into account during global routing
INTRODUCTION • This work has following contributions: • account for both global and local congestion levels simultaneously • minimizing the routing cost of nets • local detailed placement further minimizes the local congestion and wirelengthwithout increasing global congestion • uses commercial router Wroute [23]
PROBLEM DESCRIPTION • Used ISPD11 and DAC12 benchmark circuits [17, 18]. • Re-place cells to improve routability. • The cells are aligned with the rows and that there are no overlaps.
PROPOSED ROUTABLITY OPTIMIZER • Local-Routability-Aware Global Routing Model • 3D grid graph into a 2D grid graph • c(e) is number of routing tracks • d(e) is the number of global routing path passing through e • Tl(b1, b2) is the number of routing tracks at layer l between b1 and b2, • BTl(b1, b2) is the number of routing tracks blocked at layer l between b1 and b2
PROPOSED ROUTABLITY OPTIMIZER • the viasin b1 and b2 increase as the number of blocked tracks between b1 and b2 increases • the number of blocked tracks increases, the edge capacity decreases more than linearly
PROPOSED ROUTABLITY OPTIMIZER • the pin densities in b1 and b2 also affect the routability between b1 and b2[15] • p(b1) denote the number of pins in b1 • Al(b1) denote the areas which are not covered by macros in b1 at layer l
PROPOSED ROUTABLITY OPTIMIZER • Routing-cost-driven Global Re-Placement • formulate such a routing cost minimization problem • Finding Optimal Placement Bin (FOPB)
PROPOSED ROUTABLITY OPTIMIZER • R is the set of candidate bins for placing ci • N(ci) denotes the set of two-pin nets connecting to ci • n(pi, pj) represents a two-pin net whose terminals are pins pi and pj • b(pj) denotes the bin containing pj • r(bm, b(pj)) represents the least-cost global routing path from bm to b(pj) • routC(e) denotes the routing cost of e.
PROPOSED ROUTABLITY OPTIMIZER • p(bm, ci) denotes the cost of placing ci in bm • desC(bm) denotes the penalty because of the bin density of bm • mr(bm, b(pj)) denotes the least-cost monotonic routing path from bm to b(pj)
PROPOSED ROUTABLITY OPTIMIZER • h(bm) is the history cost of bm; it has an initial cost of 1 and it increases by 1 when the placement of a cell in bm causes bin overflow.
PROPOSED ROUTABLITY OPTIMIZER • Legalization with Global Routing Preserved • legalizer is similar to Abacus [19] • cell is sorted in increasing ordering according to its x-coordinate • each cell ci, legalizer tentatively moves ci to its neighboring rows rk and calculates the cost of moving ci to rk • ci is moved to the best row with the lowest cost
PROPOSED ROUTABLITY OPTIMIZER • ci is placed into bin bmin the global re-placement stage • mc(ci,bm, rk) denotes the cost of moving ci to row rk • ao(ci, bm, rk) denotes the area of ci out of bm when ci is moved to rk
PROPOSED ROUTABLITY OPTIMIZER • P(ci) denotes the set of pins belonged to ci • b(pk) denotes the bin containing p when ci is moved to rk • d(bm, b(pk)) denotes the index distance between b(pk) and bm • m(ci, rk) is the displacement of ci when ci is moved to rk • cu(rk) is the capacity utilization of rk which is between zero and one
PROPOSED ROUTABLITY OPTIMIZER • Local Detailed Placement
EXPERIMENTAL RESULTS • C/C++ on a quadcore2.4 GHz Xeon-based linux server with a 50GB memory • The placement solutions of NTUplace • Global Routability: NCTU-GR 2.0 • Effective Routability: Wroute • Used ISPD11 and DAC12 benchmark circuits [17, 18]
CONCLUSIONS • Ropt takes a placement solution and then optimizes its routability for both global routing and detailed routing • Ropt can improve routing congestion, wirelength and runtime of a given placement