VLSI Physical Design by Unknown
Author:Unknown
Language: eng
Format: epub, pdf
5.6
Single-Net Routing
151
Example: Determining Routability
Given: (1) Nets A and B, (2) the layout area with routing regions and obstacles (left), and (3) the corresponding connectivity graph (right).
Task: Determine the routability of A and B.
1
2
3
1
2
3
3,1
3,4
3,3
B
A
4
5
6
7
4
5
6
7
1,4
1,1
1,4
1,3
B
8
9
A
10
8
9
10
3,4
3,1
3,3
Solution:
Net A is first routed through nodes (regions) 4â5â6â7â10, which is the shortest path. After this assignment, the horizontal capacities of nodes 4â5â6â7 are
exhausted, i.e., each horizontal capacity ¼ 0.
1
2
3
3,1
3,4
3,3
B
A
4
5
6
7
0,3
0,1
0,4
0,2
B
A
8
9
10
3,4
3,1
2,2
The shortest path for net B was previously through nodes 4â5â6, but this path would now make these nodesâ horizontal capacities negative. A longer (but
feasible) path exists through nodes 4â8â9â5â1â2â6. Thus, this particular
placement is considered routable.
1
2
3
2,0
2,3
3,3
B
A
4
5
6
7
0,2
0,0
0,3
0,2
B
A
8
9
10
2,3
2,0
2,2
152
5
Global Routing
5.6.3
Finding Shortest Paths with Dijkstraâs Algorithm
Dijkstraâs algorithm [6] finds shortest paths from a specified source node to all other nodes in a graph with nonnegative edge weights. This shortest path is based on various path costs, such as edge weights, between two specific nodes in the routing graphâi.e., from a source to a particular target. The algorithm terminates when the minimum path cost to a target node is found. As the routing space is represented as a (graph) grid, this type of path search is often referred to as maze routing.
Dijkstraâs algorithm uses a data structure for storing and querying partial
solutions sorted by path costs from the start. With this, it belongs to the class of best-search algorithms which explore a graph by expanding the most promising node chosen according to a specified cost calculation.
Dijkstraâs algorithm takes as input (1) a graph G(V,E) with nonnegative edge weights W, (2) a source (starting) node s, and (3) a target (ending) node t. The algorithm maintains three groups of nodesâ(1) unvisited, (2) considered, and (3) known. Group 1 contains the nodes that have not yet been visited.
Group 2 contains the nodes that have been visited but for which the shortest-path cost from the starting node has not yet been found. Group 3 contains the nodes that have been visited and for which the shortest-path cost from the starting node has been found.
Dijkstraâs Algorithm
Input: weighted graph G(V,E) with edge weights W, source node s, target
node t
Output: shortest path path from s to t
1
group1 = V
// initialize groups 1, 2 and 3
2
group2 = group3 = path = Ã
3
foreach (node node 2 group1)
4
parent[node] = UNKNOWN
// parent of node is unknown, initial
5
cost[s][node] = 1
// cost from s to any node is maximum
6
cost[s][s] = 0
// except the s-s cost, which is 0
7
curr_node = s
// s is the starting node
8
MOVE(s,group1,group3)
// move s from Group 1 to Group 3
9
while (curr_node != t)
// while not at target node t
10
foreach (neighboring node node of curr_node)
11
if (node 2 group3)
// shortest path is already known
12
continue
13
trial_cost = cost[s][curr_node] + W[curr_node][node]
14
if (node 2 group1)
// node has not been visited
15
MOVE(node,group1,group2)
// mark as visited
16
cost[s][node] = trial_cost
// set cost from s to node
17
parent[node] = curr_node
// set parent of node
(continued)
5.6
Single-Net Routing
153
18
else if (trial_cost < cost[s][node]) // node has been visited and
// new cost from s to node is lower
19
cost[s][node] = trial_cost
// update cost from s to node and
20
parent[node] = curr_node
// parent of node
21
curr_node = BEST(group2)
// find lowest-cost node in Group 2
22
MOVE(curr_node,group2,group3)
// and
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Exploring Deepfakes by Bryan Lyon and Matt Tora(7653)
Robo-Advisor with Python by Aki Ranin(7548)
Offensive Shellcode from Scratch by Rishalin Pillay(6070)
Microsoft 365 and SharePoint Online Cookbook by Gaurav Mahajan Sudeep Ghatak Nate Chamberlain Scott Brewster(4948)
Ego Is the Enemy by Ryan Holiday(4942)
Management Strategies for the Cloud Revolution: How Cloud Computing Is Transforming Business and Why You Can't Afford to Be Left Behind by Charles Babcock(4437)
Python for ArcGIS Pro by Silas Toms Bill Parker(4146)
Elevating React Web Development with Gatsby by Samuel Larsen-Disney(3848)
Machine Learning at Scale with H2O by Gregory Keys | David Whiting(3572)
Learning C# by Developing Games with Unity 2021 by Harrison Ferrone(3282)
Speed Up Your Python with Rust by Maxwell Flitton(3229)
Liar's Poker by Michael Lewis(3214)
OPNsense Beginner to Professional by Julio Cesar Bueno de Camargo(3189)
Extreme DAX by Michiel Rozema & Henk Vlootman(3169)
Agile Security Operations by Hinne Hettema(3119)
Linux Command Line and Shell Scripting Techniques by Vedran Dakic and Jasmin Redzepagic(3107)
Essential Cryptography for JavaScript Developers by Alessandro Segala(3080)
Cryptography Algorithms by Massimo Bertaccini(3001)
AI-Powered Commerce by Andy Pandharikar & Frederik Bussler(2979)
