340 likes | 473 Views
An Introduction to Channel Routing. 曾奕倫 元智大學資訊工程系 2008/07/11. A Channel Routing Problem. A Channel Routing Problem (cont’d). A Channel Routing Problem (cont’d). A Solution to the Channel Routing Problem. A Solution to the Channel Routing Problem (in VLSI Physical Design).
E N D
An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11
A Solution to the Channel Routing Problem (in VLSI Physical Design) • Different colors represent different layers.
A Solution to the Channel Routing Problem (cont’d) Minimizing the number of tracks means minimizing the routing area.
Description of a Channel Routing Problem # Description of a Channel Routing # Problem Columns: 1 2 3 4 5 6 7 Nets: A B C D E F Top_Row: C NULL F E B NULL A Bottom_Row: A NULL NULL B NULL B C Left_Nets: A D F Right_Nets: D E (The Input to Your Channel Router)
Vertical Constraint Graph • At column 1, the horizontal segment of net C must be placed above the horizontal segment of net A.
Vertical Constraint Graph (cont’d) • At column 1, the horizontal segment of net C must be placed above the horizontal segment of net A.
Vertical Constraint Graph (cont’d) • At column 4, the horizontal segment of net E must be placed above the horizontal segment of net B.
Vertical Constraint Graph (cont’d) • At column 7, the horizontal segment of net D must be placed above the horizontal segment of net C. VCG
The Left-Edge Algorithm • Proposed by Hashimoto and Stevens in 1971 • Regarded as the first channel routing algorithm • Can be used in solving Channel Routing Problems • Originally used in PCB design • Can be applied on VLSI physical design • Requires building the Vertical Constraint Graph (VCG) for a channel routing problem
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Consider horizontal segments of N1, N4, and N10 • (the nets that do not have ancestors)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • N1 has the smallest x coordinate • N1 and N4 cannot be placed on the same track • N1 and N10 can be placed on the same track • Place N1 and N10 on the highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • N1 has the smallest x coordinate • N1 and N4 cannot be placed on the same track • N1 and N10 can be placed on the same track • Place N1 and N10 on the highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N1 and N10 from the VCG)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N1 and N10 from the VCG)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Consider horizontal segments of N4 and N7 • (the nets that do not have ancestors)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Consider horizontal segments of N4 and N7 • (the nets that do not have ancestors)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Consider horizontal segments of N4 and N7 • (the nets that do not have ancestors) • N4 has the smallest x coordinate • N4 and N7 cannot be placed on the same track • Place N4 on the second highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Consider horizontal segments of N4 and N7 • (the nets that do not have ancestors) • N4 has the smallest x coordinate • N4 and N7 cannot be placed on the same track • Place N4 on the second highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N4 from the VCG)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N4 from the VCG) • Repeat the placement iterations …
The Left-Edge Algorithm (cont’d)- Result of the Example N1 = 5 N2 = 1 N3 = 2 N4 = 4 N5 = 3 N6 = 2 N7 = 3 N8 = 1 N9 = 2 N10 = 5 (The Output of Your Channel Router)
The Left-Edge Algorithm (summary) • Step 1: Build the Vertical Constraint Graph (VCG) for the input channel routing problem • Step 2: Place horizontal segments (choose nets (1) that do not have ancestors in the VCG and (2) whose horizontal segments do not overlap) and update the VCG • Step 3: Repeat Step 2 until all the horizontal segments have been placed
A Channel Routing Problem Dogleg Channel Routing
A Channel Routing Problem (cont’d) Loop VCG • The Left-Edge Algorithm cannot deal with a channel routing problem whose VCG contains loops.
Channel Density • Channel Density = 5 • At least 5 tracks are required in order to solve this channel routing problem (with or without doglegs).
To-Do List • Choose a Programming Language • Implement a Graphical User Interface (GUI) for displaying (1) a channel routing problem (the input) and (2) its solution (the output) • Implement the Left-Edge Algorithm • Build the VCG (step 1) • Data Structure (Adjacency List) • How to find nets that have no ancestors in the VCG • How to delete nets from the VCG • Placement of horizontal segments (step 2) • How to check the existence of loops in a VCG