octilinear redistributive routing in bump arrays
TRANSCRIPT
![Page 1: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/1.jpg)
1
Octilinear Redistributive Routing in Bump Arrays
Renshen WangChung-Kuan ChengDepartment of Computer Science & EngineeringUniversity of California, San Diego
![Page 2: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/2.jpg)
2
Outline of Today’s Talk� Introduction & Background� Redistribution Layer (RDL) Routing
Problem Formulation� Previous Approaches� Grid Network Approach�Min-cost max-flow and RDL routing solution
�Grid network construction
� Experimental Results� Conclusions and Future Works
![Page 3: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/3.jpg)
3
Background� Chip to package connections�Wire bonding � Ball grid array
� On-chip I/O patterns & Array patterns�Possible mismatch
![Page 4: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/4.jpg)
4
Redistribution Layer� A “re-distribution layer” (RDL) is used to
connect I/O pads to solder bumps
� RDL routing
![Page 5: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/5.jpg)
5
Redistribution Layer (RDL) Routing Problem Formulation
� Connect I/O pads to bumps� Given wire width
� Minimum wire spacing
� Characteristics� Interchangeability (no crossings)
�8-geometry wires are usually used (“ – | × ”) to reduce wire length and routing congestion
![Page 6: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/6.jpg)
6
Previous Approaches� Manual design� Routing on graph models�Effective for Manhattan routing, but not for
handling 45°wires
� Design for special patterns4 wires 7 wires ?
![Page 7: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/7.jpg)
7
Grid Network Approach� Manhattan routing using a grid network�Construct a grid in the bump array
�Routing solution ↔ network flow solution
… …
…
…
…
…
… …Pads
Bumps
Unit size = wire width + spacing
Edge capacity = 1
Vertex capacity= 1
![Page 8: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/8.jpg)
8
Grid Network Approach� Octilinear routing�Octilinear grid?
Not enough spacing between 45°tracks
Excessive crossing points
![Page 9: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/9.jpg)
9
Octilinear Grid for RDL Routing� Line shifting�Topologically shift the 45°tracks on to
Manhattan grid�Preserve the actual positions of 45°tracks
![Page 10: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/10.jpg)
10
Octilinear Grid for RDL Routing� Spacing violations avoided by min-cost
max-flow on the grid�Between a grid node and a 45°track
Not a violation
Between an off-grid node and an H/V track
![Page 11: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/11.jpg)
11
Octilinear Grid for RDL Routing� Octilinear routing on the grid network�Construct a Manhattan grid in the bump array
�Add “topologically shifted” 45°tracks by area
�Routing solution ↔ network flow solution
… …
…
…
…
…
… …Pads
Bumps
![Page 12: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/12.jpg)
12
Detailed Grid Construction� Crossing area of H/V channels
� (Ccross – 2) 45°tracksdistributed at center � Actual diagonal
capacity = 4 �
( ) ( )( ) / 2 /cross H VC W W s w s = + − +
![Page 13: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/13.jpg)
13
Detailed Grid Construction� Channel segment area
� (Cseg – 1) 45°tracksdistributed at center
� Cseg = 4 �
( ) ( )( ) / 2 /seg seg segC L W s w s = + − +
![Page 14: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/14.jpg)
14
Detailed Grid Construction
� On the boundary of 2 adjacent areas
If there is a spacing violation, shift the 45°tracks onto the same grid node
![Page 15: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/15.jpg)
15
Detailed Grid Construction� Missing bump area�Extend the tracks in the channel segments
�Add two diagonal tracks
� (Cseg – 1) tracks in each channel segment
� Min-cost max-flow � RDL routing solution
![Page 16: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/16.jpg)
16
Wire Smoothing
� Min-cost max-flowgives shortest paths�With possible zigzag shapes
� Iterative post processingA
B
Shortest path area
Repeat {For each unit of flow:
1) Delete the flow unit from source to sink; 2) Find a shortest path with min #turnings;3) Resume the flow unit by the new path;
} Until no path is changed in the iteration
![Page 17: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/17.jpg)
17
Shortest Path with Minimal Number of Turnings� Dynamic programming on Shortest path
algorithm� “α-β routing”, [Hu1985]
�1 node � 8 states�distance � (distance, #turnings)
� O(nlogn) time
node splitting
A graph node with 8 edges
![Page 18: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/18.jpg)
18
Experimental Results� Two different pad distributions in the same
bump array
![Page 19: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/19.jpg)
19
Experimental Results� More test cases (running time counted in
seconds)
![Page 20: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/20.jpg)
20
Conclusions and Future Works� First octilinear RDL router�Automatic and optimal RDL routing is possible
� Topological “line shift” for octilinear grid
� Limited for single layer cases�System complexity ↑ & I/O connections ↑�Multiple redistribution layer
![Page 21: Octilinear Redistributive Routing in Bump Arrays](https://reader034.vdocuments.net/reader034/viewer/2022042707/58a2dce51a28abff648b7b24/html5/thumbnails/21.jpg)
21
Q & A
� Thank you for your attention
This work is done in Mentor Graphics Corporation during an internship