An Introduction to Channel Routing 20080711 A Channel
- Slides: 34
An Introduction to Channel Routing 曾奕倫 元智大學資訊 程系 2008/07/11
A Channel Routing Problem 2
A Channel Routing Problem (cont’d) 3
A Channel Routing Problem (cont’d) 4
A Solution to the Channel Routing Problem 5
A Solution to the Channel Routing Problem (in VLSI Physical Design) Ø Different colors represent different layers. 6
A Solution to the Channel Routing Problem (cont’d) Minimizing the number of tracks means minimizing the routing area. 7
A Channel Routing Problem 8
A Channel Routing Problem (cont’d) 9
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 B C Left_Nets: A D F Right_Nets: D E (The Input to Your Channel Router) 10
Vertical Constraint Graph Ø At column 1, the horizontal segment of net C must be placed above the horizontal segment of net A. 11
Vertical Constraint Graph (cont’d) Ø At column 1, the horizontal segment of net C must be placed above the horizontal segment of net A. 12
Vertical Constraint Graph (cont’d) Ø At column 4, the horizontal segment of net E must be placed above the horizontal segment of net B. 13
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 14
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 15
The Left-Edge Algorithm (cont’d) Step 1: Build VCG 16
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Consider horizontal segments of N 1, N 4, and N 10 (the nets that do not have ancestors) 17
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø N 1 has the smallest x coordinate Ø N 1 and N 4 cannot be placed on the same track Ø N 1 and N 10 can be placed on the same track Ø Place N 1 and N 10 on the highest track 18
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø N 1 has the smallest x coordinate Ø N 1 and N 4 cannot be placed on the same track Ø N 1 and N 10 can be placed on the same track Ø Place N 1 and N 10 on the highest track 19
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Update the VCG (remove N 1 and N 10 from the VCG) 20
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Update the VCG (remove N 1 and N 10 from the VCG) 21
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Consider horizontal segments of N 4 and N 7 (the nets that do not have ancestors) 22
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Consider horizontal segments of N 4 and N 7 (the nets that do not have ancestors) 23
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Consider horizontal segments of N 4 and N 7 (the nets that do not have ancestors) Ø N 4 has the smallest x coordinate Ø N 4 and N 7 cannot be placed on the same track Ø Place N 4 on the second highest track 24
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Consider horizontal segments of N 4 and N 7 (the nets that do not have ancestors) Ø N 4 has the smallest x coordinate Ø N 4 and N 7 cannot be placed on the same track Ø Place N 4 on the second highest track 25
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Update the VCG (remove N 4 from the VCG) 26
The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Update the VCG (remove N 4 from the VCG) Ø Repeat the placement iterations … 27
The Left-Edge Algorithm (cont’d) - Result of the Example 28
The Left-Edge Algorithm (cont’d) - Result of the Example N 1 = 5 N 2 = 1 N 3 = 2 N 4 = 4 N 5 = 3 N 6 = 2 N 7 = 3 N 8 = 1 N 9 = 2 N 10 = 5 (The Output of Your Channel Router) 29
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
A Channel Routing Problem Dogleg Channel Routing 31
A Channel Routing Problem (cont’d) Loop VCG Ø The Left-Edge Algorithm cannot deal with a channel routing problem whose VCG contains loops. 32
Channel Density Ø Channel Density = 5 Ø At least 5 tracks are required in order to solve this channel routing problem (with or without doglegs). 33
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
- Muskingum method
- Mark tinka
- Hydrologic routing and hydraulic routing
- Comparison of clock routing and power routing
- Greedy channel routing classified under the type of:
- Channel routing in vlsi
- Introduction to dynamic routing protocols
- Multi-channel retailing definition
- Signal space analysis in digital communication
- Determine id
- Ap layer in vlsi
- Routing table
- Contoh routing sheet
- Sd-wan segmentation
- Rumor routing
- Routing statyczny
- Routing overlays
- Tabel routing static
- Tabel routing
- Path vector routing
- Rumour routing
- Vector algorithm
- Routing area update
- Routing table
- Precision routing
- Ortec routing and dispatch
- Fungsi routing di network layer
- Responsibility of network layer
- Intelligent customer routing
- Lar routing protocol
- Dynamic routing packet tracer
- Igmpv
- Routing table longest prefix match
- Routing table longest prefix match
- Interplay between routing and forwarding