• 沒有找到結果。

Previous Works and Our Approach…

1 Introduction

1.2 Previous Works and Our Approach…

On the other hand, crosstalk minimization during two-stage routing flow has been well surveyed [12, 13, 14, 15]. The difficulty of minimizing crosstalk during global routing is that nets have no track information at this stage, while the difficulty for detailed routing is to increase the computation load on an already time-consuming task. The first investigation that addresses the crosstalk-driven TA is developed in a multilevel routing system [16]. In their work, the horizontal constraint graph (HCG), i.e., IRoute overlap graph, and the bipartite assignment graph, that defines the assignability of each IRoute to the tracks, are well integrated. The maximum subset of conflicting nets, that is equivalent to the maximum clique in the HCG, is then found and assigned to the tracks one by one. The zone-based approach can efficiently reduce the crosstalk; however, the TA result may have worse track utilization. In this thesis, two capacitive crosstalk driven TA algorithms, namely, hybrid zone-based TA (HZTA) and Swap- and Move-based TA (SMTA) are first proposed to obtain more crosstalk reduction than previous work. On the other hand, previous TA related works only consider the

grid-based TA problem. This thesis first proposes a gridless crosstalk-driven TA algorithm, called O-tree based gridless TA (OTTA). Experimental results show that the first two proposed algorithms achieve better track utilization and more crosstalk reduction by 42.49%

and 46.79%, respectively. Meanwhile, OTTA can obtain better crosstalk reduction for an initial assignment.

The rest of this paper is organized as follows. Section 2 reviews the track assignment problem and defines basic terminology. Section 3 presents HZTA, SMTA and OTTA algorithms. Section 4 shows the experimental results. And finally, Section 5 makes conclusions.

Chapter 2 Preliminaries

2.1 Routing And Crosstalk Models

In this work about grid TA, routing follows the restricted layer model, i.e., a routing layer that is reserved the wiring in one direction has to pay high penalty for the move in perpendicular direction. The routing direction of a layer is perpendicular to those on its adjacent layers, and the wiring consists of Manhattan shapes. The routed nets have uniform width rule and spacing rule on a layer, and may have variant width rules or spacing rules on different layers.

Global routing distributes all the routed nets over the GCells without violation on each GCell’s routing resource and with the objective of minimizing total wire length. Based on the design rule of the routing pitch of a routing layer and the area of a GCell, the routing resource of a GCell is considered as separate and equal-distance grid lines, called tracks. The routed nets must be placed on the tracks. The purpose of track assignment is to reduce the burden of detailed router and to produce more straight wiring result, therefore long nets are more important than short nets. The net segment that passes through a whole GCell is a long net and called an IRoute, which track assignment only deals with. For example in Fig. 1(b), net a, b and c are IRoutes, but d is not. A panel is composed of a series of GCells in a row or a column and a horizontal (vertical) panel only contains horizontal (vertical) tracks. Fig. 1(b) shows a routing region consisting of 6×13 GCells and an example for the above definitions.

Fig. 1(a) shows a track assignment result after global routing for a horizontal panel. Note that the exact track position for each net is not determined yet.

The simple Cc model in [17] is applied in this work. Since Cc drops fast as two adjacent nets become farther, for simplifying the coupling model, the Cc is assumed to be only induced between two adjacent nets. Also, two net segments on different layers and in perpendicular directions are free of inducing Cc. Furthermore, all two adjacent tracks are of equal distance, Cc between two adjacent nets can be simply estimated using their overlapping length.

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

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

相關文件