An Introduction to Channel Routing 20080711 A Channel

  • Slides: 34
Download presentation
An Introduction to Channel Routing 曾奕倫 元智大學資訊 程系 2008/07/11

An Introduction to Channel Routing 曾奕倫 元智大學資訊 程系 2008/07/11

A Channel Routing Problem 2

A Channel Routing Problem 2

A Channel Routing Problem (cont’d) 3

A Channel Routing Problem (cont’d) 3

A Channel Routing Problem (cont’d) 4

A Channel Routing Problem (cont’d) 4

A Solution to the Channel Routing Problem 5

A Solution to the Channel Routing Problem 5

A Solution to the Channel Routing Problem (in VLSI Physical Design) Ø Different colors

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

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 8

A Channel Routing Problem (cont’d) 9

A Channel Routing Problem (cont’d) 9

Description of a Channel Routing Problem # Description of a Channel Routing # Problem

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

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

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

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

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 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 1: Build VCG 16

The Left-Edge Algorithm (cont’d) Step 2: Place horizontal segments Ø Consider horizontal segments of

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

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

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

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

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

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

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

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

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

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

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 28

The Left-Edge Algorithm (cont’d) - Result of the Example N 1 = 5 N

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 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 Dogleg Channel Routing 31

A Channel Routing Problem (cont’d) Loop VCG Ø The Left-Edge Algorithm cannot deal with

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

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)

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