Robust Layer Assignment for Via Optimization in Multi-layer Global Routing Tsung-Hsien Lee Ting-Chi Wang Inst. of Information Science Dept. of Computer Science Academia Sinica National Tsing Hua University 1
Outline Introduction Motivation Problem Formulation Algorithm Experimental results Conclusions 2
Introduction to Layer Assignment � Layer assignment is a major step in multi-layer global routing p 3 p 3 ′ ′ ′ p 3 p 3 p 3 p 2 p 2 Projection Projection Projection Projection ′ ′ ′ ′ ′ ′ p 1 p 1 p 1 p 2 p 2 p 2 2D Routing 2D Routing 2D Routing 2D Routing p 1 p 1 p 3 p 3 ′ ′ ′ p 3 p 3 p 3 p 2 p 2 Layer Layer Layer Layer Assignment Assignment Assignment Assignment ′ ′ ′ ′ ′ ′ p 2 p 2 p 2 p 1 p 1 p 1 p 1 p 1 3
Introduction to Layer Assignment � Layer assignment determines the final routing result ⎯ A bad layer assignment devastates all the previous efforts ′ p 3 Additional wire overflow ′ ′ p 2 B p 1 B longer wirelength a a A d A d s s p 3 L L s s a a i i g y y g e n e n r r m m e e n n t p 2 t p 1 4
Introduction to Layer Assignment � Layer assignment determines the final routing result ⎯ A good layer assignment keeps all the previous efforts p 3 p 2 r r e e y y a a t t n L n L e e d d ′ m m p 3 o o n n o o g G g G i i s s s s A A p 1 No additional wire overflow ′ ′ p 2 p 1 Minimal wirelength 5
Motivation � ISPD’07 and ISPD’08 Global Routing Contest did not limit # of vias placed in a tile Allowable Still allowable in the contest in the contest � Routing result without considering via capacity is not practical ! 6
Motivation � A better layer assignment should take the via capacity into account r r e e y y a a t t L L n n e e r r e m e m t t n t t n e e g net A g B B i i s s s s A A net B Via overflow G G o o o o A A d d s s s L L s i i a a g g y y n n e e m m r r e e n n t t 7
Previous Work for Via Capacity � [Hsu et al., ICCAD’08] “ Multi-layer Global Routing Considering Via and Wire Capacities ” ⎯ Considering via capacity for each tile ⎯ No detailed information of its layer assignment step � Via capacity of a tile = remaining_area / via_area = ( tile_area – preoccupied_area ) / via_area Obstacles Didn’t specify and in the benchmarks Pre-routed wires 8
Problem Formulation � “ Congestion is modeled by including capacity adjustments. In the global routing benchmarks, there may be obstacles, or pre-routed wires. ” - quoted from “details of file formats” of ISPD’08 Global Routing Contest rules tile width tile width tile height routing track capacity Transform Transform routing track routing track pre-routed obstacle wire 9
Problem Formulation � Via capacity of a tile = ( tile_area – preoccupied_area ) / via_area = ( capacity × tile_width ) / via_area tile width tile width tile height routing track capacity Transform Transform routing track routing track pre-routed obstacle wire 10
Problem Formulation � Given a 2D routing result, finds a 3D counterpart through layer assignment ⎯ Minimize via overflow , and wirelength ⎯ Keep the same wire overflow from 2D routing result p 3 ′ p 3 p 2 Layer Layer Assignment Assignment ′ ′ p 1 p 2 p 1 No additional wire overflow Minimal via overflow Minimal wirelength 11
Algorithm � Our algorithm contains 3 steps Net Order Determination Net Order Single-net Layer Assignment Net Order Refinement 12
Net Order Determination � Due to the limited routing resources , a net processed earlier has larger solution space Routing Solution resources space for a net # nets processed # nets processed � Net order should maximize resource utilization 13
Net Order Determination � For each 2D net T , we use 3 parameters to determine its order - Score ( T ) ⎯ Length ( T ) : # of edges in T ⎯ PinNum ( T ) : # of pins in T ⎯ Bends ( T ) : # of bends in T � Net Order derived from sorting Score ( T ) for each net T decreasingly net A net A net A net A net A net A A has 4 edges, 3 pins, and 1 bend A has 4 edges, 3 pins, and 1 bend net A net A net B net B net B net B net B net B net B net B B has 2 edges, 2 pins, and 0 bend B has 2 edges, 2 pins, and 0 bend 14
Net Order Determination — Length � A net with longer length will occupy more routing resources ⎯ Length ( T ) ↑ , Score ( T ) ↓ net A net A net B net B 15
Net Order Determination — PinNum � The role of pin in global routing, just like the role of checkpoints in race ⎯ PinNum ( T ) ↑ , Score ( T ) ↑ net A 3 pins = 3 checkpoints net A net B net B 2 pins = 2 checkpoints 16
Net Order Determination — Bends � Changing routing direction needs vias , so bend is similar to pin ⎯ Bends ( T ) ↑ , Score ( T ) ↑ net A 1 bend at least needs an via net A net B 0 bend may not need vias net B 17
Net Order Determination � Score ( T )’s relationships with Length ( T ), PinNum(T ), and Bends ( T ). ⎯ Length ( T ) ↑ , Score ( T ) ↓ ⎯ PinNum ( T ) ↑ , Score ( T ) ↑ ⎯ Bends ( T ) ↑ , Score ( T ) ↑ � Score ( T ) = ( α× Bends ( T ) + β× PinNum ( T )) / Length ( T ) 18
Single-net Layer Assignment � [Lee et al., TCAD’08] “ Congestion-Constrained Layer Assignment for Via Minimization in Global Routing ” ⎯ COLA finds a layer assignment result with minimum via count for a 2D net p 3 ′ p 2 p 3 COLA COLA Via count ′ ′ p 1 p 2 p 1 19
Single-net Layer Assignment � [Lee et al., TCAD’08] “ Congestion-Constrained Layer Assignment for Via Minimization in Global Routing ” ⎯ COLA finds a layer assignment result with minimum via count for a 2D net � Extends from COLA, our algorithm can deal with via overflow and via count p 3 ′ p 2 p 3 Via overflow Extended Extended COLA COLA Via count ′ ′ p 1 p 2 p 1 20
Single-net Layer Assignment � DP-based layer assignment method ⎯ Minimize increase on via overflow , and via count � For a net, assign one edge at a time a b Assign b Assign a a b z 2D view 3D view 21
Single-net Layer Assignment � Vias are placed after edges are assigned ⎯ Vias are determined by edges and pins a b I II III IV � Since vias on different tiles are independent, the via overflow increase on each tile can be calculated independently 22
Single-net Layer Assignment � Memorize the minimum via overflow one on each stage and propagate it to the next stage a b I II III IV 23
Single-net Layer Assignment � In the end, the optimal result is the one with minimum total via overflow increase Optimal result � If there is a tie on via overflow increase, choose the one with minimum via count 24
Refinement � Refinement can improve the via overflow of the original layer assignment result ⎯ Rip-up and re-layer assignment for each net � Enhance the net order net B net A Can’t pass 2D view 3D view 25
Refinement � Net A assigned first, and net B assigned second ⎯ Net A has 2 choices with the same via overflow increase and via count I II 26
Refinement � If net A chooses improperly, net B will generate via overflow inevitably ⎯ It is impossible for net A to know how to choose before net B is assigned Via overflow Net B’ Net B ’s s Layer Layer Assignment Assignment 27
Refinement � With refinement, the via overflow will be improved by the re-layer assignment of net A ⎯ The re-layer assignment will not generate worse result than pervious Via overflow No via overflow Net A’ Net A ’s s re re- -layer layer Assignment Assignment 28
Experiment Flow 3D routing results Compression 2D routing results COLA Ours Layer Assignment 3D results 29
Experimental Results without Refinement � Without refinement , our algorithm induced 23~35% via overflow with 1~3% WL increase compared with COLA [1] [1] Lee et al., TCAD’08, “ Congestion-Constrained Layer Assignment for Via Minimization in Global Routing” 30
Experimental Results with Refinement � With refinement , our algorithm induced 5~15% via overflow with 4~6% WL increase compared with COLA [1] [1] Lee et al., TCAD’08, “ Congestion-Constrained Layer Assignment for Via Minimization in Global Routing” 31
Conclusions � Develop a layer assignment algorithm considering via overflow and via count � Future work : a more effective net order and layer assignment method 32
Q & A Thank You! and 33
Recommend
More recommend