1 / 34

An Introduction to Channel Routing

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).

Download Presentation

An Introduction to Channel Routing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. A Channel Routing Problem

  3. A Channel Routing Problem (cont’d)

  4. A Channel Routing Problem (cont’d)

  5. A Solution to the Channel Routing Problem

  6. A Solution to the Channel Routing Problem (in VLSI Physical Design) • Different colors represent different layers.

  7. A Solution to the Channel Routing Problem (cont’d) Minimizing the number of tracks means minimizing the routing area.

  8. A Channel Routing Problem

  9. A Channel Routing Problem (cont’d)

  10. 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)

  11. Vertical Constraint Graph • 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 1, the horizontal segment of net C must be placed above the horizontal segment of net A.

  13. Vertical Constraint Graph (cont’d) • At column 4, the horizontal segment of net E must be placed above the horizontal segment of net B.

  14. 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

  15. 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

  16. The Left-Edge Algorithm (cont’d)Step 1: Build VCG

  17. 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)

  18. 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

  19. 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

  20. The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N1 and N10 from the VCG)

  21. The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N1 and N10 from the VCG)

  22. 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)

  23. 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)

  24. 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

  25. 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

  26. The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N4 from the VCG)

  27. The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments • Update the VCG • (remove N4 from the VCG) • Repeat the placement iterations …

  28. The Left-Edge Algorithm (cont’d)- Result of the Example

  29. 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)

  30. 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

  31. A Channel Routing Problem Dogleg Channel Routing

  32. A Channel Routing Problem (cont’d) Loop VCG • The Left-Edge Algorithm cannot deal with a channel routing problem whose VCG contains loops.

  33. Channel Density • Channel Density = 5 • At least 5 tracks are required in order to solve this channel routing problem (with or without doglegs).

  34. 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

More Related