2.1 Problem Formulation
Some terminologies and their properties are first introduced.
(1) Obstacle: An obstacle may be an IP-core, macro cell or pre-routed wire. Every obstacle is a rectangle, and cannot overlap the other obstacles. Two obstacles can abut at one side or a corner. For instance, in Fig. 2-1(b), obstacle B abuts obstacle A at its left side, while abutting obstacle C at its bottom right corner. In addition, all obstacles are of the same layer.
(a) (b)
Figure 2- 1: (a) Obstacles are not allowed to overlap another obstacle; (b) two obstacles can abut at one side or a corner.
(2) Pin: Pins and obstacles are in the same layer. Pins are limited to locate on the borders of at corners of obstacles, and cannot locate within obstacles.
(a) (b)
Figure 2- 2: Pins have to locate on the boundaries or at the corners of obstacles. (a) Illegal pin locations; (b) legal pin locations.
(3) Edge: Edges are used to connect pins and cannot intersect obstacles. It is legal to have edges on the boundaries of obstacles, as shown in Fig. 2-3(b).
(a) (b)
Figure 2- 3: Edges is allowed to run on the boundaries of obstacles but cannot intersect obstacles.
(a) Illegal edges; (b) Legal edges.
The problem definitions of PDOARST and OARSMT are as follows.
Problem: Performance-Driven Obstacle-Avoiding Rectilinear Steiner Tree (PDOARST): Given a set of pins, says P= {p1 , p2 ,p3,…..pm }, (containing driver and sinks) and a set of obstacles, says O= {o1 ,o2 ,o3,….ok }, on a layer and timing-related information, such as unit wire resistance, unit wire capacitance, sink output loading, driver resistance and some technology parameters, construct a rectilinear Steiner tree to connect all pins in P such that all edges are legal. Meanwhile, the maximal delay and worst negative slack are minimized.
Problem: Obstacle-Avoiding Rectilinear Steiner Minimal Tree (OARSMT):
Given a set of pins, says P= {p1 , p2 ,p3,…..pm }, (containing driver and sinks) and a set of obstacles, says O= {o1 ,o2 ,o3,….ok }, on a layer, construct a rectilinear Steiner tree to connect all pins in P such that all edges are legal and the total wire length of the
Steiner tree is minimized.
2.2 Preliminaries
Preliminaries contains three parts used in this thesis – Elmore delay model, A*
search algorithm and region tree algorithm.
2.2.1 Elmore Delay Model
Elmore delay model was proposed to quickly compute the signal delay of each sink with accuracy and fidelity under a tree topology [25]. More precisely, the Elmore delay model uses first-order time constant at a node as a sum of RC component. All the nodes on the circuit network are visited in this model and the Elmore delay in-volves multiplying the capacitance at the node being visited by the sum of all the re-sistances from the driver to the currently visited node. Formula (6) displays the El-more delay at node i as follows:
Delayi =
∑
×is the sum of all the resistances that are common to two paths – one from the driver to node i and another from the driver to node k, and Ck*
is the capacitance at node k. Figure 2-4 shows an example for calculating Elmore delay. For instance, the delay at node 4 is C1R1 +C2(R1+R2)+C3R1+C4(R1+R2 +R4)+C5(R1 +R2).
Figure 2- 4: An example of Elmore delay computation.
2.2.2 A* Search Algorithm
A* search algorithm is a best-first graph search algorithm that identifies the least-cost path from a source node to the target node. It employs a function, which is denoted by f(x) and mixed with the cost from the start node to current node and the cost estimated from current node to the target node, to determine the searching order of the nodes in the graph. Formula (7) displays the cost function of A* search algo-rithm as follows. , where g(x) is the accumulated cost from the start to current node x and h(x) is the estimated cost, which is usually an admissible heuristic estimation (lower bound) of the distance from node x to the target node. For routing application, h(x) might repre-sent the Manhattan distance between node x and the target node.
2.2.3 Region Tree (R-Tree) Algorithm
R-tree is a tree data structure used for spatial data querying. This data structure splits space by using hierarchycial minimun bounding rectangles, and that’s also the reason why this data sturcture is called “R”-Tree. More precisely, each node of R-Tree consists of a variable number of rectangles, and each rectangle stores two pieces of data. The first one is a spatial record that describes the dimensional informa-tion of this rectangle. The second one is a pointer that points to its child node. What’s more, the area of child must be included in the area of its parent.
As for how to search R-Tree, we use following R-Tree as example. For instance, we want to query how many rectangles region R1 contains. The search starts with root node, and then we will check each member in root node to find the member its area overlaps region R1. Therefore, we find member R1 in the root node. Besides, R1
points to the child node that contains three members and all the three members are included in our searching region. Hence, region R1 contains three rectangles, and the answer would is three. By this example, we could understand that the most node of R-Tree is untouched while searching, and that’s such a good property for using R-Tree as spatial querying data structure.
(a) (b)
Figure 2- 5: An example of Region Tree (R-Tree). (a) Rectangle A, B, C, D, E are the inputted spatial data, and R1, R2 are minimum bounding rectangles generated by R-Tree; (b) How R-Tree to store these spatial data.