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.  – 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 wirelength without increasing global congestion – uses commercial router Wroute 
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 vias in 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 – 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 c i – 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  – 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 bm in 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 quadcore 2.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