• 沒有找到結果。

Crosstalk-Driven Placement

3.4 Partial Estimation

In general, utilizing the algorithm stated in Fig. 3.2 and Table 3.3 is capable to accomplish the crosstalk-driven placement successfully. However, since each B*-tree perturbation in SA algorithm only selects 1 or 2 blocks to move, flip, or rotate. The above procedure costs too much runtime to analyze many redundant nets. That is, we should only analyze the nets whose belonging blocks are moved after performing last B*-tree perturbation. Also, we should re-analyze the nets whose belonging blocks are shifted due to their neighboring blocks are moved. We call this procedure to be “partial analysis(estimation)”, and the flow stated in Table 2.1 and Table 3.3 are called “complete analysis(estimation)”.

In the following sub-sections, we will introduce the partial estimation of the conges-tion and probabilistic noise, respectively. Then finally, the algorithm and several proper-ties will be given to show how these procedures work.

3.4.1 Partial Congestion Estimation

After perturbing a B*-tree, the block selected in this perturbation are recorded. Since we not only re-analyze the nets belonging to the selected blocks but also need to care about the blocks which is shifted due to their neighbors, we record the placement order of each block after a perturbation. Fig. 3.8 illustrates the procedure: Assume that there are two nodes, n4 and n5selected for perturbing, and resulting in a B*-tree shown in Fig.

Front

Fig. 3.8: Re-check the blocks whose placement orders after that of the selected nodes. (a) Node n4 and n5are selected during a B*-tree perturbation. (b) The corresponding placement order.

3.8(a). Then we record its corresponding placement order exhibiting in Fig. 3.8(b). If the placement order of a block is after b3, its new placement location should be compared to its previous. If it is moved, the probabilistic noise and usages of the nets that belongs to the block have to be re-analyzed. This is because the blocks whose placement orders before b4 are placed earlier, and their new locations will be the same as their previous.

Making the record of placement orders to determine which blocks should be re-analyzed is more efficiently than the exhaustive location comparison, and can save much more runtime in the partial estimation procedure.

After determining which blocks’ locations are shifted, the nets belonging to these blocks begin to re-analyze. Fig. 3.9 illustrates the procedure of the partial congestion es-timation. Assume that the original net A (called old net A) exists in the old mesh(A) where is the yellow region. If it is moved to the top-left corner of the chip after a perturbation, we should compute its new usage and add it into every grid within the new mesh(A), and update the congestion. Also, the old existence of the old net A within its original mesh has

Must erase the old existence of old_net A

old_net A Yellow region:

old_mesh(A) Blue region:

mark-grid Green region:

new_mesh(A) Must newly add the existence of new_net A

new_net A

Fig. 3.9: Illustration of the partial congestion estimation procedure.

to be erased and updated. Furthermore, if there are mark-grids between the old mesh(A) and new mesh(A) (mark grid(A) ∈ {old mesh(A) ∩ new mesh(A)}), we only need to re-compute the congestion within these grids and without updating the existence of net A.

Table 3.4 shows the algorithm of the partial congestion estimation. First, the approach illustrated in Fig. 3.8 is employed to determine which nets should be re-analyzed, we call them the changed-nets herein. For each changed-net, in addition to perform the conges-tion estimaconges-tion similar to before, we update its existence and probabilistic usages within each grid of its old mesh as well as new mesh. Finally, we compute the congestion for each grid and finish the partial congestion estimation.

3.4.2 Partial Probabilistic Noise Estimation

The concept of the partial noise estimation is similar to that of the partial congestion estimation but more complicated. We use the configuration shown in Fig. 3.9 again to interpret the procedure of the partial noise estimation: When net A is moved to the

Algorithm of Partial Congestion Estimation Input: Netlist of the placement

Output: Probabilistic usages of each two-pin net; Congestion of each grid 1 Begin

2 For each changed-net

3 MST(net)

4 For each segment of the MST 5 Determine the size of new mesh

6 Erase the old usage within its old mesh

7 Erase the old existence within its old mesh excluding mark grids 8 Compute the horizontal and vertical usages within its new mesh 9 Update the new existence within its new mesh

10 EndFor

11 EndFor

12 For each grid in the design

13 Compute the congestion of the grid

14 EndFor

15 End.

Table 3.4: Algorithm of the partial congestion estimation.

new mesh(A)where is the green region, the probabilistic noise of the nets which relate to net A within old mesh(A) should be updated firstly. That means, if there is a net (called net B) where in the old mesh(A) is not shifted, its probabilistic noise has to subtract the interference due to net A. Also, the probabilistic noise of net A should be updated by subtracting the interference resulting from net B.

After the update of old mesh(A) is complete, we carry on the noise update in new mesh(A).

Similar to complete noise estimation stated in Table 3.3, if there is a net (called net C) within the new mesh(A), and it does not exist in the old mesh(A), it needs to add the in-terference due to net A. Similarly, net A also adds the inin-terference resulting from net C.

In brief, we can summarize the properties of the noise update as follows:

• The net which is a changed-net (called net A): It needs to subtract the interference due to the related nets where in the old mesh(A), and re-compute the new

proba-bilistic noise due to the nets where in the new mesh(A).

• The net exists in old mesh(A) “originally” (means that it is not a changed-net), and does not belong to new mesh(A): Only subtracting the interference due to net A.

• The net whose minimum routing region covers the old mesh(A) and new mesh(A):

Subtracting the old interference due to net A, then adding the new interference results from the net A.

Modifying the step 2 ∼ 4 exhibiting in Table 3.3 by the above properties can determine the manner of the noise update for each net, and accomplish the partial noise estimation.

Because the coupling noise results from the mutual inductance costs considerable efforts to be handled, performing the partial noise estimation is necessary and can improve much runtime during placement.

相關文件