• Keine Ergebnisse gefunden

5.2 Cells with Two FET Rows

5.2.5 Very Large Cells

The algorithms involved in the layout of transistor-level netlists are expo-nential and thus, beyond a certain complexity, do not yield results in an ac-ceptable time frame. Especially when timeouts occur in the first two phases of Algorithm 7, the returned solutions are often very bad. Restricting finger lengths may ease the problem, but some cells are even too large for the easiest parameter configurations.

For this reason, BONNCELLincludes a mode designed to handle very large cells. In this mode, optimality is sacrificed in favor of a fast computation of heuristic arrangements. A top-level description is given in Algorithm 8. The idea is to split the complex netlist into several less complex netlists, process each of them individually, and finally concatenate the computed layouts. The flow is visualized in Figure 5.6.

Number of Subcells

One input parameter of the algorithm is the number of subcells into which the large instance should be split. This numberkis determined automatically based on various measurements of the exact algorithm’s performance. In the current implementation, the number k is chosen such that the average number of FETs per subcell is at most 10 and the average sum of gate lengths is at most 80 per subcell.

Target Function

Previously, the gate netlength has been a much more important value than the total netlength. This decision was motivated by the desire to realize con-nections between the gates on the PC and M0 layers as compact as possible.

However, other challenges become prevalent on very large cells.

One can observe that most of such cells contain so many long horizontal con-nections that, using the normal placement engine, some x-coordinates have to be passed by too many different nets for the cell to be routable. Hence, it is more important to reduce the horizontal cut, i.e. the largest number of nets

Algorithm 8:BigCellPlacement Data: A netlistF, a numberk Output: A 2-dimensional layoutΛ

1 ifpins are defined near the left and right cell bordersthen

2 Place FETs with such pins near the cell’s border

3 Compute positions for other FETs by an iterative mean heuristic

4 else

5 Compute rough placement using a linear arrangement heuristic

6 Split netlist intoksmaller instances based on rough placement

7 ApplyCellPlacementto every sub-instance

8 returnConcatenation of the k layouts

that have to cross any given x-coordinate, as much as possible. On complex cells, we therefore do not give the gate netlength any priority as we did in the definition of the layout qualityQ.

Rough Placement

In order to find a reasonable cut at which the netlist is split, a rough place-ment is determined in lines 1 to 5, using one of two methods. These methods neither produce legal layouts nor determine swap statuses or finger num-bers, their purpose is merely to generate horizontal locations for each FET.

If the instance contains for both the left and the right cell border at least one net with a pin defined near that border, then a heuristic is applied that takes advantage of those pins. This is the case for most of the cells in practice, as input pins are usually assigned to the left cell border and output pins to the right cell border. The first step is to place the FETs that are connected to such nets very far apart. For FETs with a connection to the left border,x(F)is set to 0, for FETs connected to the right cell border, it is set to 100k. All remaining FETs are initially placed at the coordinate 50k.

Thereafter, all locations are updated in 10 iterations. In each iteration, the new x-coordinate for a FET Fis determined as the weighted average of the FETs connected toFthrough at least one net. Net weights are used as weights in the computation. Gate connections are not prioritized over source or drain connections for the reason given above. After new coordinates have been assigned to all FETs, the arrangement is stretched to the interval[0, 100k]in order to prevent all FETs from collapsing to a single point. In particular, xmin:=minF∈Fx(F)andxmax:=maxF∈Fx(F)are computed and then

x(F)← x(F)−xmin xmax−xmin ·100k is applied to each FET.

5.2. CELLS WITH TWO FET ROWS 85

Subcell 1 Subcell 2 Subcell 3

(a) Rough placement heuristic and induced assignment of FETs to subcells

(b) Optimal layout for every subcell

(c) Resulting large cell layout Figure 5.6: Illustration of Algorithm 8.

If the pin definitions do not induce a reasonable initial assignment of vary-ing x-coordinates, a heuristic developed to solve the MINIMUMLINEAR AR

-RANGEMENT problem is applied instead. In this case, we define a graph G= (F ∪ {vl,vr},E)in which two FETs are adjacent if a net exists that con-nects these two FETs. The two special verticesvlandvrrepresent the left and right cell borders and are adjacent to all FETs which are connected to a net on which a corresponding pin is defined. Note that the method is only applied whenvlorvris an isolated vertex.

After the graph has been constructed, the method proposed by Pantrigo et al. [PDCM11] is applied, which is an extension of the earlier heuristic by McAllister [McA99]. Algorithm C3 from [PDCM11] is used as a subroutine with βset to 0.5. The method is modified such thatvl is the first vertex to be labeled andvris the last vertex labeled during the algorithm. When a label l(F)has been assigned to all FETs, those values are taken as x-coordinates of the rough placement in line 5 of Algorithm 8.

Splitting the Netlist

The x-coordinates of the rough placement induce a total order≤on the set of FETs. If two FETs F1 andF2have the same location in the rough placement, then F1 ≤ F2 holds if and only if g1 ≤ g2, where gi is the index of the net

connected to the gate ofFi. This tie-breaking criterion favors assignments in which FETs with the same gate net are contained within the same subcell. We number the FETsF1, . . . ,Fnsuch thatF1 ≤. . .≤ Fn.

Then indices n1, . . . ,nk1 are chosen and the sets Fi := {Fni1+1, . . . ,Fni}, where n0 := 0 and nk := n, are defined as the transistor sets for the sub-cells. The numbers are chosen such that

k i=1

F∈F

L(F)

k −

F∈Fi

L(F)

is minimized, i.e. the sum of deviations from the average FET area. The in-stances are small enough so thatn1, . . . ,nk1 can be determined by enumer-ating allO(nk1)possibilities.

Finally, the nets in subcelliare exactly the nets connected to FETs inFi. How-ever, if a netNin subcelliis connected to some FET inF1. . .∪ Fi1, then a pin is defined on the left border of the subcell, i.e.pNx,rel =0, to model the con-nection to the left. Analogously, a pin on the right subcell border is defined if a net is connected to another subcell further to the right.

Placing the Subcells

When the subcells have been constructed, Algorithm 7 is invoked on each of them individually. As the reduced instances are relatively small, this usually results in optimal layouts in a short runtime. These layouts are concatenated with sufficiently large spacing between them so that no design rules are vio-lated. Figure 5.6 illustrates this method.