an introduction to channel routing 曾奕倫 元智大學資訊工程系 2008/07/11
TRANSCRIPT
![Page 1: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/1.jpg)
An Introduction to Channel Routing
曾奕倫元智大學資訊工程系
2008/07/11
![Page 2: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/2.jpg)
A Channel Routing Problem
2
![Page 3: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/3.jpg)
A Channel Routing Problem (cont’d)
3
![Page 4: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/4.jpg)
A Channel Routing Problem (cont’d)
4
![Page 5: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/5.jpg)
A Solution to the Channel Routing Problem
5
![Page 6: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/6.jpg)
A Solution to the Channel Routing Problem (in VLSI Physical Design)
6
Different colors represent different layers.
![Page 7: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/7.jpg)
A Solution to the Channel Routing Problem (cont’d)
Minimizing the number of tracks means minimizing the routing area.7
![Page 8: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/8.jpg)
A Channel Routing Problem
8
![Page 9: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/9.jpg)
A Channel Routing Problem (cont’d)
9
![Page 10: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/10.jpg)
Description of a Channel Routing Problem
10
# 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)
![Page 11: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/11.jpg)
Vertical Constraint Graph
11
At column 1, the horizontal segment of net C must be placed above the horizontal segment of net A.
![Page 12: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/12.jpg)
Vertical Constraint Graph (cont’d)
12
At column 1, the horizontal segment of net C must be placed above the horizontal segment of net A.
![Page 13: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/13.jpg)
Vertical Constraint Graph (cont’d)
13
At column 4, the horizontal segment of net E must be placed above the horizontal segment of net B.
![Page 14: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/14.jpg)
Vertical Constraint Graph (cont’d)
14
At column 7, the horizontal segment of net D must be placed above the horizontal segment of net C.
VCG
![Page 15: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/15.jpg)
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 problem15
![Page 16: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/16.jpg)
The Left-Edge Algorithm (cont’d)Step 1: Build VCG
16
![Page 17: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/17.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
17
Consider horizontal segments of N1, N4, and N10 (the nets that do not have ancestors)
![Page 18: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/18.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
18
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
![Page 19: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/19.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
19
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
![Page 20: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/20.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
20
Update the VCG (remove N1 and N10 from the VCG)
![Page 21: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/21.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
21
Update the VCG (remove N1 and N10 from the VCG)
![Page 22: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/22.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
22
Consider horizontal segments of N4 and N7 (the nets that do not have ancestors)
![Page 23: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/23.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
23
Consider horizontal segments of N4 and N7 (the nets that do not have ancestors)
![Page 24: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/24.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
24
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
![Page 25: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/25.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
25
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
![Page 26: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/26.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
26
Update the VCG (remove N4 from the VCG)
![Page 27: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/27.jpg)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
27
Update the VCG (remove N4 from the VCG) Repeat the placement iterations …
![Page 28: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/28.jpg)
The Left-Edge Algorithm (cont’d)- Result of the Example
28
![Page 29: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/29.jpg)
The Left-Edge Algorithm (cont’d)- Result of the Example
29
N1 = 5N2 = 1N3 = 2N4 = 4N5 = 3N6 = 2N7 = 3N8 = 1N9 = 2N10 = 5
(The Output of Your Channel Router)
![Page 30: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/30.jpg)
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
30
![Page 31: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/31.jpg)
A Channel Routing Problem
Dogleg Channel Routing
31
![Page 32: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/32.jpg)
A Channel Routing Problem (cont’d)
32
VCG
Loop
The Left-Edge Algorithm cannot deal with a channel routing problem whose VCG contains loops.
![Page 33: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/33.jpg)
Channel Density
33
Channel Density = 5 At least 5 tracks are required in order to solve this channel routing problem (with or without doglegs).
![Page 34: An Introduction to Channel Routing 曾奕倫 元智大學資訊工程系 2008/07/11](https://reader035.vdocuments.net/reader035/viewer/2022081420/56649c785503460f9492e330/html5/thumbnails/34.jpg)
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
34