• 沒有找到結果。

2 Preliminaries

2.2 Problem Formulation

Let L = {lri| 0 ≤ i < l} be the set of routing layers. For layer lri, the layer plane consists of ai

panels denoted by pli,j, where 0 ≤ j < ai. The panel pli,j has to accommodate gi,j IRoutes indicated by iri,j,k, where 0 ≤ k < gi,j. Let Ti,j be the track set on the panel pli,j, and it contains ri,j

tracks that are denoted by tri,j,m, where 0 ≤ m < ri,j. For each track tri,j,m ∈ Ti,j, tri,j,m can be

represented by its set of constituent contiguous intervals, i.e., tri,j,m ≡ Uiti,j,m,n, where iti,j,m,n is an interval of track tri,j,m. Each interval, say iti,j,m,n, is either

• A blocked interval, where every iri,j,k can not be assigned,

• An occupied interval, where ∃k, iri,j,k has been assign or

• A free interval, where ∀0 ≤ k < gi,j, no iri,j,k has been assigned.

An IRoute iri,j,k is said to be assignable to a track tri,j,m, tri,j,m ≡ Uiti,j,m,n, iff ∃n, iti,j,m,n ∩ iri,j,k

≠ ∅. If iti,j,m,n ∩ iri,j,k = iri,j,k, the entire IRoute can be assigned to the interval; otherwise, the IRoute has to be split to fit the interval. Besides, the cc induced by two adjacent IRoutes, say

iri,j,k1 and iri,j,k2, is indicated by cci,j,k1,k2. Therefore, the crosstalk-driven track assignment

(CTA) problem can be defined as:

Crosstalk-Driven Track Assignment Problem: Given a set of tracks = {tri,j,m|0 ≤ i < l, 0 ≤ j < ai, and 0 ≤ m < ri,j} and a set of IRoutes L = {iri,j,k|0 ≤ i < l, 0 ≤ j < ai, and 0 ≤ k < gi,j}, and a cost function Φ: L× ℑ → N which stands for the crosstalk cost of assigning an IRoute to a track, find an assignment to minimize the total crosstalk:

(1)

Since the above formulation has reserved a specific layer for an IRoute, a layer assignment algorithm [16] has to be applied before starting track assignment if the global routing result does not contain layer information. Alternatively, a multilayer, instead of single layer, global routing algorithm can be applied to assign layer to an IRoute [18].

Chapter 3

The Utilization- And Crosstalk-Driven Track Assignment Algorithms

3.1 Hybrid Zone-Based Track Assignment ( HZTA )

HZTA first completes the assignment of the odd tracks and then the even tracks. The odd tracks accommodate the vertices of higher degree to separate these highly impacted nets. The IRoute overlapping graph ( IRoute OLG ) is constructed following the rules: each vertex of an IRoute OLG corresponds to an IRoute, and an edge exists between two vertices if their related IRoutes have nonzero overlapping length, i.e., they can not be placed on the same track. For each odd track, HZTA first assigns the IRoute of the maximum degree to the odd tracks. After each assignment, the related vertex of the assigned IRoute is removed from the IRoute OLG.

For the remaining available track space, the process of finding, assigning, and removing the vertex of the maximum degree is repeated until there is no unassigned assignable IRoute to the available track space of current odd track. If two vertices tie in the vertex degree, IRoute length is the second factor to be considered.

The assignment problem of the even tracks is transformed into a maximum-weighted bipartite matching problem. A maximum clique is first found from the remaining IRoute OLG.

The vertices on the left side of the bipartite graph stand for the IRoutes in the maximum clique, and the vertices on the right side represent the even tracks. If an IRoute can be assigned to a track, an edge is present to connect these two related vertices in the bipartite graph. The cost of an edge indicates the crosstalk reduction gain of assigning the IRoute to the track. The crosstalk reduction gain is defined as follows. For an IRoute in the maximum clique, the crosstalk induced by placing it to any assignable even track is calculated. The edge

of the maximum induced crosstalk has a cost of zero. The cost of other edge is calculated by subtracting its induced crosstalk from the maximum crosstalk. Finally, the crosstalk-driven assignment of the IRoutes in the maximum clique is equivalent to find a maximum-weighted bipartite matching in the constructed graph. The assigned maximum clique is removed from the IRoute OLG, and the same process continues until all IRoutes are assigned to the even tracks or there is no assignable IRoute to the even tracks. Figure 2~5 show an example of HZTA.

3.2 Swap- and Move-Based Track Assignment (SMTA)

SMTA is to minimize the total crosstalk under the constraint of a crosstalk budget to all IRoutes, or the goal of SMTA is to find a track assignment with minimum total coupling capacitance based on a given crosstalk budget for each IRoute. The problem can be formulated as follows:

where Cmax is the given crosstalk budget.

SMTA starts from an initial TA produced by assigning the IRoutes in a decreasing order of vertex degree in the IRoute OLG to the track, from bottom to top. The IRoutes are first

assigned to the same track until the track can not accommodate any unassigned IRoute.

Subsequently, its top adjacent track is considered as next available track. Based on the initial TA, all IRoutes can be classified into critical and non-critical. An IRoute is said to be critical if its induced coupling capacitance exceeds the specified crosstalk budget. SMTA deals with the critical IRoutes in a decreasing order of the excess coupling capacitance, which is obtained by subtracting Cmax from the induced coupling capacitance. The unassigned IRoute with largest excess coupling capacitance is called the most critical IRoute. SMTA moves the most critical IRoute or swaps it with another IRoute to make it become non-critical. More specifically, all tracks are examined to determine if there is available space in another track to accommodate the most critical IRoute to make it become non-critical or if the most critical IRoute can become non-critical by swapping it with another IRoute. If this fails, we try to move or swap its top or bottom neighbouring IRoutes to reduce its induced coupling capacitance so that the constraint can be satisfied. Each move or swap is regarded as legal only if it will not produce a new critical IRoute. SMTA will report a failure if current most critical IRoute can not become non-critical after the above operations. If all critical IRoutes become non-critical, the same move and swap procedure is applied to each IRoute to reduce the total coupling capacitance. Now, each move or swap is legal if the total coupling capacitance decreases after the move or swap and it does not produce any new critical IRoute.

Figure 6 displays the SMTA algorithm.

Figures 7-10 show an example of performing SMTA under a coupling capacitance constraint of 6 overlapping GCells length for each IRoute. Figure 7 displays the initial TA, where the IRoutes 1, 2, 7, 8 and 9 are critical IRoutes and IRoute 1 is the most critical IRoute.

After examining all tracks, IRoute 1 can become non-critical by swapping IRoutes 1 and 6; at the same time, IRoutes 8 and 9 also become non-critical, as shown in Fig. 8. Now only IRoutes 2 and 7 are critical. After examining all tracks, moving IRoute 2 to the topmost track can obtain the minimum total coupling capacitance and all critical IRoutes become

non-critical, as shown in Fig. 9. Finally, the move and swap procedure is applied to each IRoute to determine if there is any further reduction on the coupling capacitance. One swap for IRoutes 3 and 6 and one move for IRoute 4 from track 4 to track 3 are feasible in this case, as shown in Fig. 10.

Algorithm : SMTA

Input : A global routing result in a panel Output : A coupling-driven track assignment begin

1. Construct the IRoute OLG and calculate the degrees of all vertices;

2. Classify all IRoutes into critical and non-critical;

3. Sort the critical IRoutes in a decreasing order of the excess coupling capacitance;

4. for the most critical IRoute in the sorting order

5. Select the best track where it can move to make itself become non-critical or the best IRoute with which it can swap to make itself become non-critical;

6. if (current IRoute is still critical)

7. Try to move or swap its adjacent IRoutes to make it become non-critical;

8. if (current IRoute is still critical) report failure;

else remove current IRoute from the sorting list;

9. for each IRoute

10. Select the best track to move to reduce the induced coupling capacitance or the best IRoute to swap with to reduce the induced coupling capacitance;

11. Try to move or swap its adjacent IRoutes to reduce the induced coupling capacitance;

end

Figure 6. SMTA Algorithm.

Figure 7. The initial track assignment of SMTA algorithm. IRoutes 1, 2, 7, 8 and 9 are critical.

Figure 8. Swapping the most critical IRoute 1 with IRoute 6 can make critical IRoutes 1, 8 and 9 become non-critical.

Figure 9 Critical IRoutes 2 and 7 become non-critical by moving IRoute 2 to the topmost track.

Figure 10. Total coupling capacitance can be further reduced by swapping IRoutes 3 and 6 and moving IRoute 4 from track 4 to track 3.

3.3 O-Tree Based Gridless Track Assignment ( OTTA )

In this chapter, an O-tree based track assignment is proposed to deal with variable-width and variable-space IRoutes. To our knowledge, this is the first study to discuss gridless track assignment. From the observations in [4, 19], the two factors heavily affecting coupling capacitance are the space and overlap length between two wires. One important characteristic for a gridless routing problem is different wire width and space rules for the nets. The experiments of [19] show that the wire width has only a little impact on coupling effects with

about 0.4% to 7% coupling effect variation while the wire width is enlarged twice or even triply. Therefore, the coupling effect estimation ignores the wire width and the model presented in Chapter 2.1 is applied for the gridless track assignment problem. The space between any two adjacent IRoutes is assumed to be fixed in the following discussion. The discussion of extension of dealing with variable space rules will be outlined in the end of this chapter.

Assume that the space between any two adjacent IRoutes is sp, the IRoutes are over-sized by sp/2 to guarantee the separation legality between IRoutes. Therefore, the over-sized IRoute can overlap with its adjacent IRoutes and only these overlapping adjacent IRoutes are considered to induce coupling capacitance, that is, any two IRoutes, which has a non-zero separation between them, is free of crosstalk effect. After over-sizing original IRoutes, the gridless track assignment problem becomes a special placement problem. Each over-sized IRoute can be regarded as a block with a constraint of locating at fixed x-coordinate. The objective is to find a complete placement of minimum block abutting length within a routing region of fixed height. One important thing for placement is how to represent and maintain the contour of partial placement. B*-tree [20] and O-tree [21] are two well-known methods to represent non-slicing placement. B*-tree is ideal for 2-dimensional move and O-tree is ideal for one-dimensional move. This study applies O-tree to represent the assignment for fast IRoute swap and move. The O-tree of a placement can be constructed as follows. Assume the placement is a T-compact placement, where there is no block that can be shifted upwards from current position with other blocks fixed. For a vertical O-tree, there is a root node on the top to represent the top boundary and there is a node representing each block. The root node has an edge directing to the nodes whose top border is located at the top boundary. For two block nodes, say bi and bj, there is an edge from bi to bj if bi and bj abut and bi is on the top of bj. In this study, the O-tree is enhanced by additionally adding an edge between two blocks with non-zero overlapping length if they can see each other and called extended O-tree. Figure

11(a) shows a T-compact placement, Fig. 11(b) shows its related vertical O-tree and Fig. 11(c) demonstrates the extended vertical O-tree, where the dashed edges are the edges that do not appear in the O-tree. In Fig. 11(a), blocks 2 and 7 have non-zero overlapping, but there is no directed edge between them since they are separated by blocks 4 and 5. On the contrary, blocks 1 and 7 can see each other, so there is an edge from block 1 to block 7.

(a) (b) (c)

Figure 11. (a) A T-compact placement; (b) related vertical O-tree; (c) extended vertical O-tree.

OTTA contains three steps: (1) initial assignment, (2) extended O-tree based assignment refinement (EOAR), and (3) sub-panel rearrangement.

(1) Initial assignment: the goal of initial assignment is a fast production of an assignment with good utilization. For grid-based track assignment, left-edge algorithm can be well applied to obtain a utilization-driven initial assignment. Since gridless track assignment probably produces uneven partial assignment, it is hard to regard the region as row by row. Considering the crosstalk minimization objective, initial assignment combines the minimum weighted Hamiltonian path on the maximum clique and similar concept to left-edge algorithm to balance crosstalk minimization and track utilization. An OLG is first established and a maximum clique is found. The IRoutes in the maximum clique is assigned to the tracks in the order of a minimum weighted Hamiltonian path [16]. After minimizing the crosstalk induced by the most congested IRoute group, the unassigned IRoutes, which locate at the right side of the partial assignment are sorted by their left borders in an increasing order. The

remaining IRoutes are processed in the sorting order and each IRoute is assigned to the topmost available space. The unassigned IRoutes, which locate at the left side of the partial assignment, is sorted by their right borders in a decreasing order. Each IRoute is also assigned in the sorting order to the topmost available space. Figures 12~15 show the process of an initial assignment.

(2) Extended O-tree based assignment refinement (EOAR): after the initial assignment is produced, the corresponding extended O-tree of the over-sized IRoute placement is established. Each node of the extended O-tree stands for an IRoute and there exists an edge between two IRoutes if there is a non-zero vertical projection between them.

Each edge contains two costs, that is, overlap length and separation distance. Since the over-sized IRoute in the placement has considered the separation rule, two over-sized IRoutes separated by non-zero space are assumed to be free of crosstalk effect. Four operations, DeleteNode, InsertNode, PlowTree, and CompactTree, on the O-tree are supported to perform crosstalk minimization. InsertNode is adding a node to the O-tree and DeleteNode is deleting a node from the O-tree. PlowTree is to reserve a space for a node insertion. PlowTree is to plow all the nodes whose vertical range contains a given horizontal line, called plow line, downwards by a distance of the height of the block to be inserted. For a node insertion between two nodes, say bt (on the top) and bb (on the bottom), the extension line of the top border of the bottom node bb is the plow line. It seems that it is more efficient to perform PlowTree if only the nodes whose horizontal range overlaps with the node to be inserted rather than all the nodes that intersect with the plow line. As a matter of fact, plowing all nodes can guarantee the success of a node insertion. For example, if a node is to be inserted on the top of Node 11, as shown in Fig. 17, and the plowing distance is larger than the separation distance between blocks 2 and 8, then the node insertion will fail with only plowing the sub-tree of Node 11. CompactTree is to compact the blocks upwards to make the placement T-compact. A node is said to be movable if all its incident edges have non-zero distance cost. CompactTree is achieved by applying breadth-first search on the extended O-tree to pull upwards those movable nodes. The height of an assignment is the maximum path length, where a path length is the sum of the separation distances of all edges along the path and the block heights of all nodes

along the path. The total coupling capacitance cost is the total overlap length of all zero-separation edges. Figure 16 demonstrates the extended O-tree of the assignment in Fig. 15.

EOAR performs the same procedure for each node. For each node, EOAR first deletes the node from the extended O-tree and then inserts it on the top of all nodes overlapping with it one at a time. The assignment of minimum crosstalk effect is realized and CompactTree follows to make the assignment T-compact. EOAR allows each IRoute to move far away and only considers the crosstalk minimization individual IRoute and its neighbors. Further crosstalk reduction can be achieved by taking the effect between rows into account.

(3) Sub-panel rearrangement: considering the global crosstalk effect, the assignment on a panel can be regarded as assignments on several sub-panels. For example, the assignment in Fig. 22 can be split into six sub-panels. Rearrangement of these sub-panels can further reduce crosstalk effect. A sub-panel OLG is first constructed, where each node in the graph represents a sub-panel and there are two directed edges between any two nodes. Since the top and bottom contours of a sub-panel are not symmetrical, two sub-panels can be assigned in two ways. The cost of an edge is the total overlap length of two sub-panels associated with the end nodes of the edge.

When calculating the overlap length of two sub-panels, only the over-sized IRoutes, which touch the abutting border, rather than the whole boundary contours are considered because two over-sized IRoutes with non-zero separation is free of crosstalk effect in our model. Two directed edges between two sub-panels can be regarded as a pseudo edge and the sub-panel OLG can be treated as a complete graph. A partial sub-panel OLG of the assignment in Fig. 22 is shown in Fig. 23.

After the assignment is partitioned into as many sub-panels as possible, as shown in Fig. 22, the crosstalk minimization problem can be formulated as the problem of finding the minimum weighted Hamiltonian path (MWHP) on the sub-panel OLG. The heuristics algorithm for finding MWHP on an IRoute OLG in [16] can be well applied with little modification. The MWHP searching process starts from the node with maximum inward edge cost or maximum outward edge cost. If the maximum cost is caused by the outward edge, the sub-panel is mirrored and then placed on the top of the panel. Next, the outward edge of the least cost of the start node and its another end node are included in the Hamiltonian path if another end node has been visited yet before. The new included node becomes the new start node in next iteration. This process continues until all nodes have been visited. The node sequence along the MWHP forms a new sub-panel order on the panel. Figure 24 shows a new sub-panel order for the assignment in Fig. 22. If original panel is very loose and there are empty sub-panels, they will be inserted to separate the sub-panels to reduce the overlap length; furthermore, local refinement such as pulling IRoutes upwards if there are space on tier top can compact the

After the assignment is partitioned into as many sub-panels as possible, as shown in Fig. 22, the crosstalk minimization problem can be formulated as the problem of finding the minimum weighted Hamiltonian path (MWHP) on the sub-panel OLG. The heuristics algorithm for finding MWHP on an IRoute OLG in [16] can be well applied with little modification. The MWHP searching process starts from the node with maximum inward edge cost or maximum outward edge cost. If the maximum cost is caused by the outward edge, the sub-panel is mirrored and then placed on the top of the panel. Next, the outward edge of the least cost of the start node and its another end node are included in the Hamiltonian path if another end node has been visited yet before. The new included node becomes the new start node in next iteration. This process continues until all nodes have been visited. The node sequence along the MWHP forms a new sub-panel order on the panel. Figure 24 shows a new sub-panel order for the assignment in Fig. 22. If original panel is very loose and there are empty sub-panels, they will be inserted to separate the sub-panels to reduce the overlap length; furthermore, local refinement such as pulling IRoutes upwards if there are space on tier top can compact the

相關文件