1. Trang chủ
  2. » Khoa Học Tự Nhiên

Handbook of algorithms for physical design automation part 20 pptx

10 218 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 161,08 KB

Nội dung

Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 172 24-9-2008 #13 172 Handbook of Algorithms for Physical Design Automation 1 2 3 45 54V3H2V1H M1 M2M3 54V2H3V1H 54V23HV1H 54H23HV1H 1 3 2 45 1 2 3 1 2 3 4 4 5 5 FIGURE 9.6 Illustration of three types of moves. in the rest of this chapter. It employs the technique of simulated annealing [17], and uses the set of normalized Polish expressions as the solution space to avoid an unnecessarily large number of states and thus enables the speedup of the search procedure significantly. The following three types of moves, M1, M2, and M3, are used to modify a normalized Polish expression to get a neighboring one. M1: Swap two adjacent modules. (Two modules are adjacent iff there is no other module between them in the expression.) M2: Complement a chain of cuts. (A chain of cuts is a sequence of consecutive elements in the expression such that each element is a cut [i.e., V or H]. V and H are complements of each other.) M3: Swap adjacent module and cut. (A module and a cut are adjacent iff they are consecutive elements in the expression.) It is clear that M1 and M2 each always produce a normalized Polish expression. M3, however, might not produce a normalized Polish expression. To generate an M3 move, a pair of adjacent module and cut is repeatedly chosen until swapping them will lead to a normalized Polish expression. It is claimed that the three types of moves are sufficient to ensure that any normalized Polish expression can be reached from any other via a finite number of moves. Figure 9.6 gives a demonstration of the three types of moves. Each normalized Polish expression generated in the annealing process will be evaluated as follows. Let T f denote the corresponding slicing structure for a normalized Polish expression f .The area A and the total wirelength W off are defined to be the areaandthe total wirelength ofaminimum- area floorplan of T f . The cost function for measuring the quality of a normalized Polish expression is A + λW,whereλ is a user-specified constant to control the relative importance of A and W. The minimum-area floorplan can be computed efficiently by the slicing floorplan area optimization algorithms [3–5]. In fact, it is observed that the calculation of a minimum-area floorplan can be done in an incremental m anner because the calculation only needs to be p erformed on tree nodes that are changed after a move of type M1, M2, or M3. 9.6 SLICING FLOORPLAN DESIGN CONSIDERING PLACEMENT CONSTRAINTS In floorplan design, it is useful if a designer is allowed to specify some placement constraints to be satisfied in the final floorplan. Typical placement constraints that have been addressed for slicing floorplansareboundaryconstraints [18–20],rangeconstraints[21], abutment constraints[22], and clustering constraints [23]. In this section, we describe each type of placement constraint, and highlight existing techniques to handle it during floorplan design. As a matter of fact, most of the techniques are extensions of the Wong–Liu algorithm [2]. Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 173 24-9-2008 #14 Slicing Floorplans 173 9.6.1 BOUNDARY CONSTRAINTS A boundary constraintforcessome modulesto be positionedalong one of the four sidesofafloorplan. It is particularlyuseful when a designer wantsto place somemodules along the boundariesforshorter input–output connections. Besides, floorplan design is usually done in a hierarchical manner in which modules are grouped into different units and the floorplan of each unit is independently determined. For this case, it helps if some modules are constrained to be placed along a boundary of the unit so that they are closer to other modules in neighboring units. Boundary constraints can be specified as follows. The set of all modules is divided into five disjoint module sets M F , M L , M R , M T , M B . Each module in M F is a free module that can be placed anywhere in a floorplan. On the other hand, each module in M L (M R , M T , M B , respectively) is a boundary-constrainedmodule with the left (right, top, bottom, respectively) boundary constraint and has to be placed along the left (right, top, bottom, respectively) boundary of the floorplan. Note that M L (M R , M T , M B , respectively) may be an empty set if no module must be placed along the left (right, top, bottom, respectively) boundary.For example, for the two slicing floorplans shown in Figure 9.7a and b, if module 2 is constrained to be placed along the left boundary, then the one in Figure9.7a is infeasible while the one in Figure 9.7b is feasible. A result on the boundary-constrainedproblem is reported by Young and Wong in Ref. [18]. They enhance the Wong–Liu algorithm [2] to handle boundary constraints. Their main idea is to check the normalized Polish expression in each iteration of the simulated annealing process to see whether the given boundary constraints are satisfied. Then their algorithm fixes the violated constraints (if any) as much as possible, and includes a term in the cost function to penalize the remaining violations. A linear-time method is used to find the boundary information for each module in a normalized Polish expression. The boundary information of a module tells whether there are modules on the left of, on the right of, above, and below the module. Because a Polish expression or a slicing tree has the relative position information among modules (e.g., the Polish expression ijH means that module i is below module j, while the expression ijV means that module i is on the left of module j), the following facts can be observed. If module i must be placed on the right (left, respectively) boundary of the final floorplan, i cannot be in the left (right, respectively) subtree of any internal node labeled with V. On the other hand, if module i must be placed at the top (bottom, respectively) boundary of the final floorplan, i cannot be in the left (right, respectively) subtree of any internal node labeled with H. On the basis of these facts, the boundary information of each module can be obtained by scanning the Polish expression once from right to left and by using a stack. Once the boundary information is known, all the modules violating their boundary constraints can be determined, and the algorithm fixes as many violations as possible by shuffling the modules. If module i is not placed along the required boundary, it will be shuffled with another module j which is closest to i in the Polish expression and is placed at a position satisfying the boundary constraint of i. This fixing procedure takes O(mn) for each expression, where m is the number of constrained modules and n is the total number of modules. If there are still some constraints that cannot be satisfied after all possible shufflings, a penalty term is included in the cost function. The (a) (b) 1 4 3 2 1 32 4 FIGURE 9.7 Illustration of infeasible and feasible floorplans with a boundary constraint. (a) An infeasible floorplan where module 2 cannot be placed along the left boundary and (b) a feasible floorplan where module 2 can be placed along t he left boundary. Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 174 24-9-2008 #15 174 Handbook of Algorithms for Physical Design Automation (a) (b) (c) (d) A B V A (R)(L) B A B B H (R) (L) A B A B (L)(R) A V A (L) (R) B B A H FIGURE 9.8 Examples of feasible and infeasible topologies. (a) A floorplan having an infeasible topology, (b) a floorplan having a feasible topology, obtained by performing an O 1 operation on the root of the tree in (a), (c) a floorplan ha ving a feasible topology, obtained by performing an O 2 operation on the root of the tree in (a), and (d) a floorplan having a feasible topology, obtained by performing an O 3 operation on the root of the tree in (a). penalty term is measured by the total distance of the modules from the boundaries of the floorplan along which they are required to be placed. Because the above-mentionedalgorithm [18] also adopts the same set of movesas the Wong–Liu algorithm (i.e., M1, M2, and M3 described in Section 9.5.3) to generate a neighboring normalized Polish expression, it is very likely that only a subset of modules has changed the boundary information in the new normalized Polish expression, and therefore only the boundary information for those modules needs to be recomputed. On the basis of this observation, three speedup methods capable of performing incremental calculation of boundary information are given in Ref. [19]. A drawback with the algorithm in Ref. [18] is that the shuffling method may not always resolve all constraint violations even though a penalty term is added to the cost function to account for those violations. This has been empirically confirmed in Ref. [20], implying that the algorithm in Ref. [18] cannot guarantee that a floorplan satisfying all given boundary constraints is always obtainable unless the annealing process is long enough. To cope with this difficulty, Liu et al. developed a quadratic- time method that transforms a normalized Polish expression with constraint violations into another one with all violations eliminated [20]. The main idea is to examine each internal node of a slicing tree (constructed from a normalized Polish expression) in a bottom-up fashion and determine if the node has a feasible topology or not. (An internal node has a feasible topology if it is feasible to place each boundary-constrained module along the required boundary in its corresponding subfloorplan.) If the node has an infeasible topology, the tree will be modified such that the node ends up with a feasible topology. Three operations, O 1 , O 2 ,andO 3 , are given to perform modifications. An O 1 operation changes the cut direction of a node, an O 2 operation swaps the left and the right subtrees of a node, and an O 3 operation performs an O 1 operation followed by an O 2 operation. For example, suppose subfloorplan A contains modules having the right boundary constraint (denoted by R), subfloorplan B contains modules having the left boundary constraint (denoted by L), and both A and B have feasible topologies. Figure9.8a produces a floorplan having an infeasible topology, but the floorplans in Figure 9.8b through d all have feasible topologies. It is clear that Figure 9.8b through d can be transformed from Figure9.8a by performing an O 2 ,anO 1 ,andanO 3 operation on the root, respectively. Although in most cases the three basic operations can transform nodes into ones h aving feasible topologies, there are also some cases where they fail. Besides, even if an internal node has a feasible topology, the tree needs to be modified as well for some cases to ensure that the root has a feasible topology later on. To handle these difficult cases, additional transformation operations are provided [20]. 9.6.2 RANGE CONSTRAINTS A range constraint forces a module to be placed within a given rectangular region in the final floorplan. It is less restrictive than a preplaced constraint, which requires a module to be placed at a fixed position in the final floorp lan. * In fact, the range constraint problem is a more general problem because any preplaced constraint for a module can be written as a range constraint by specifying * Note that the problem of floorplan design with obstacles can be solv ed by treating the obstacles as preplaced modules. Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 175 24-9-2008 #16 Slicing Floorplans 175 (a) (b) 01 1 1 2 2 3 3 4 4 5 5 6 23456 Y X 0 A h Y X w x 1 y 1 x 1 + w y 1 + h y 2 Ϫh y 2 x 2 Ϫw x 2 right(A) = x 1 + w left(A) = x 2 Ϫw top(A) = y 1 + h bottom(A) = y 2 Ϫh FIGURE 9.9 (a) Preplaced and range constraints. (b) Range constraint representation. the rectangular region whose dimensions are the same as those of the module. Figure 9.9a gives an example where module 1 with a preplaced constraint must be placed with its lower left corner at (3, 2) and module 2 with a range constraint must be placed within the dotted-line region. The floorplan shown in Figure9.9a satisfies both constraints. The preplaced constraint problem for slicing floorplans is considered in Ref. [24] which extends the Wong–Liu algorithm [2] by using the notion of reference point to construct shape curves in the presence of preplaced constraints. Young and Wong also present a slicing floorplanner with range constraints in Ref. [21], and empirically observe that when their floorplanner is specified to handle preplaced constraints, it outperforms the one in Ref. [24]. Therefore in this subsection we only introduce the algorithm in Ref. [21]. In the range constraint problem, two sets of modules, M F and M Range , are given, where each module in M F does not have any placement constraint and each module in M Range is a hard module and has a specified range constraint. The algorithm in Ref. [21] extends the Wong–Liu algorithm [2] to handle range constraints. The main contribution is a novel shape curve computation, which takes range constraints into consideration. When vertically or horizontally combining two modules, if at least one of them has a range constraint, the resultant subfloorplan will also have a range constraint. Therefore, the range constraint information will be propagated upward from the leaves to the root during the bottom-up shape curve construction process, and both the dimensional information, that is, the height and the width, and the range constraint information, need to be kept. Let A be a subfloorplan (containing one or more modules) with a range constraint, the following four variables are used to represent the constraint: • Top(A): Shortest distance of the upper boundary of A from the x-axis • Bottom(A): Longest distance of the lower boundary of A from the x-axis • Right(A): Shortest distance of the right boundary of A from the y-axis • Left(A): Longest distance of the left boundary of A from the y-axis We use Figure 9.9b to explain the four variables. In Figure9.9b, A has width w and height h,andit is constrained to be placed inside the r ectangle {(x, y)|x 1 ≤ x ≤ x 2 , y 1 ≤ y ≤ y 2 }. Then top(A) = y 1 + h, bottom(A) = y 2 − h, right(A) = x 1 + w,andleft(A) = x 2 − w. With a range constraint represented in such a manner, the traditional shape curve construction methods [3–5] are enhanced to compute the range constraint and dimensional information of a subfloorplan X from those of its two children subfloorplans A and B. In addition, if a normalized Polish expression does not satisfy all range constraints, the algorithm adds into the cost function a penalty term, which is measured by the total distance of the modules having range constraints from their desired regions. 9.6.3 ABUTMENT CONSTRAINTS In foorplan design, a designer may want to have some modules abut one another to favor the trans- mission of data among those modules. This abutment problem is common in practice, but few Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 176 24-9-2008 #17 176 Handbook of Algorithms for Physical Design Automation h i i j w i w j h j FIGURE 9.10 Horizontal abutment. floorplanning algorithms can handle it. In this subsection, we describe a solution [22] to this prob- lem for slicing floorplans. Although the floorplanning algorithm given in Ref. [22] is capable of handling L-shaped and T-shaped modules as well, a discussion of this is beyond the scope of this chapter. Twomodulesi andj aresaid toabuthorizontally(Figure9 .10), denoted byHabut(i, j), iff avertical boundary L i of module i and a vertical boundary L j of module j abut such that L i is immediately on the left of L j and the abutment length is min{l(L i ), l(L j )},wherel(L i ) is the length of L i and l(L j ) is the length of L j . The vertical abutment constraint Vabut(i, j) can be defined similarly. Abutment constraints can be also generalized to involve m ore than two modules. The algorithm extends the Wong–Liu algorithm [ 2] to handle abutment constraints. In each step of the simulated annealing process, through the use of a stack, a normalized Polish expression is scanned once to find the top, bottom, left, and right neighbors of every module. These topological relationships are independent of the dimensions of the modules, and can be derived based on the following observation. Let L[X], R[X], T [X],andB[X]denote the set of modules lying along the left boundary,right boundary, top boundary, and bottom boundary of a subfloorplan X. Consider putting X to the left of Y to get a new subfloorplan. If both R[X] and L[Y ] have more than one module, the top module in R[X] will abut horizontally with the top module in L[Y ] and the bottom module in R[X] will abut horizontally with the bottom module in L[Y]. On the other hand, if either R[X] or L[Y ] has only one module, every module in R[X] will abut horizontally with every module in L[Y]. The vertical neighborhood relationship can be observed similarly. Once the neighbors of each module are known, each abutment constraint can be checked. If the normalized Polish expression does not satisfy all abutment constraints, the algorithm will swap modules to satisfy the abutment constraints as much as possible. When a vertical abutment constraint for modules i and j,Vabut(i, j), is violated, the algorithm will first try to move j to the top of i by swapping j with the closest top neighbor of i in the Polish expression. If it fails, for example, all the top neighbors of i are fixed in their positions, the algorithm will try to move i to the bottom of j by swapping i with the closest bottom neighbor of j. The fixing procedure for a horizontal abutment constraint is defined similarly. It is likely that some constraints are still violated af ter all the possible swappings, and therefore a penalty term is added in the cost function to penalize those violations. Scanning a Polish expression once to find the neighbors of every module takes O(n) time, and swapping modules to fix violated abutment constraints takes O(mn) time, where n is total number of modules and m is the total number of abutment constraints. 9.6.4 CLUSTERING CONSTRAINTS A clustering constraint is to enforce some modules to be placed geometrically adjacent to each other in the final floorplan. By imposing the clustering constraint on modules that are heavily connected, Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 177 24-9-2008 #18 Slicing Floorplans 177 1 2 6 8 10 11 9 7 5 3 4 FIGURE 9.11 Feasible floorplan having three modules invo lved in a clustering constraint. the routing cost among those modules can be reduced. In this subsection, we describe a recent work on slicing floorplan design considering clustering constraints [23]. A clustering constraint can be specified by a subset of modules such that all the modules in this subset are geometrically adjacent to each other in the final floorplan. Figure 9.11 shows an example of the clustering constraint, where modules 4, 5, and 8 are the modules to be clustered and they are placed adjacent to each other in the feasible floorplan as shown. In Ref. [23], an extension of the Wong–Liu algorithm [2] is presented to handle the clustering constraint problem. The extension includes a linear-time method to locate neighbors of a module from a normalized Polish expression and a method to swap the modules to satisfy the given clustering constraint. In each iteration of the annealing process, these two methods are used to transform a normalized Polish expression into another one that satisfies the given cluster constraint. A term measured by the sum of the center-to- center distances between the modules with the same cluster constraint is added to the cost function such that those modules can be placed more closely. 9.7 OTHER ADVANCES IN SLICING FLOORPLANS We next address two important advances, one in the theoretical study on area-optimal slicing floorplans [25], and the other in the completeness o f the slicing tree representation for general floor- plans [26]. We then d escribe the respective algorithms [27,28] that make modern heterogeneous FPGAs and 3D ICs realizable in slicing floorplans. 9.7.1 THEORETICAL RESULTS FOR AREA-OPTIMAL SLICING FLOORPLANS One possible concern about slicing floorplans is that even the slicing floorplan with optimal area may still be not good at packing modules tightly as a nonslicing one, and hence may introduce a larger chip area. Although, there is empirical evidence showing that comparable slicing floorplan results can be obtained using much less runtime [18], it is important to have a mathematical analysis to guarantee their performance. In Ref. [25], the following area-optimal slicing floorplan design problem is addressed. Given n soft modules each with the same shape flexibility r(≥1), what is the minimum area among all possible slicing floorplans? Note that a module is said to have shape flexibility r iff the module can be represented by any rectangle with the same area as long as the aspect ratio of the rectangle is between 1/r and r.Itisprovedthatifr ≥ 2, then there exists a slicing floorplan F such that area(F) ≤ min{1 +(1/ √ r),5/4, (1 +θ)}A total ,whereA total is the total area of all the modules, A max is the maximum module area, and θ = √ 2A max /(rA total ). The shape of such a slicing floorplan closely resembles a square. The first term in the upper bound, that is, (1 + (1/ √ r)A total , favors larger r; for example, if r = 25, the first term is 1.2A total . The second term gives a better bound than the first one if r ≤ 16. The third term considers the ratios of the module areas and gives a good bound when all the module areas are small as compared with the total module area; for example, if r = 2and Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 178 24-9-2008 #19 178 Handbook of Algorithms for Physical Design Automation A max = A total /100, the third term is 1.1A total . In fact, the experimental results reported in Ref. [25] show that by applying the Wong–Liu slicing floorplanner[2] to more than 20 test cases each with 100 soft modules of shape flexibility 2, slicing floorplans with areas smaller than the above-mentioned mathematical bound can be produced. To get each term in the upper bound, a slicing floorplan is constructed such that its area will meet the bound. Each construction uses a different method to classify modules into groups based on module areas, and modules in different groups are represented by rectangles of different widths (while modules in the same group have the same width). Then modules are placed one at a time from the one with largest area to the one with smallest area by putting a module on the lowest possible level and moving it to the leftmost position on that level. In addition, when r is slightly less than 2, that is, r = 2 − ε with ε being a small positive number, it can be also proved that there exists a slicing floorplan whose area is upper bounded by min{(5/4)[1 + (ε/2)], [1 + θ + (ε/2)]}A total . 9.7.2 COMPLETENESS OF SLICING TREE REPRESENTATION Althoughit can be mathematicallyproved that a slicing floorplancapable of packing modules closely is achievable, there are constraints (e.g., the same shape flexibility for modules) that must be satisfied beforehand. On the other hand, it is still commonly believed that a n ar ea-optimal slicing floorplan may still suffer from a poor utilization of space when all modules are hard. For this reason, many efforts have been devotedfor creatingnonslicing floorplanrepresentations.These representations are effective and efficient for handling hard modules, but many of them are still unable to fully exploit the shape flexibility of soft modules. In Ref. [26], it isprovedthatwhen augmented with asimple compaction procedure,the slicing tree representation can generate all maximally compact placements of modules. (Note that no module in a maximally compact placement (or called admissible placement in Ref. [29]) can be moved horizontally to the left or vertically downward without moving any other modules.) As a result, slicing tree is a complete representation of both slicing and nonslicing floorplans. We now describe the idea behind the proof. Given aslicing tree, itscorresponding slicingplacement isdefinedto bethearea-optimalfloorplan such that no vertical cutlines can be moved to the left, no horizontal cutlines can be moved downward, and each module is placed in the lower left corner of a basic rectangle. For example, Figure9.12f shows a slicing placement of the slicing tree in Figure 9.12d. A horizontal adjacency graph G = (V , E) can be constructed from a placement of modules. The set V of vertices corresponds to the set of modules. There is an edge (u, v) in the edge set E iff the left boundary of v is immediately adjacent to the right boundary of u. It is clear that G is a DAG. A vertex u in G is said to be a left-boundary vertex iff u is a module placed along the left boundary of the placement. Clearly all left-boundary vertices have in-degree 0. In general the converse may not be true, but it is true for maximally compact placements. Another key fact is that for a maximally compact placement, all vertices in G are connected to the set of left-boundary vertices. Given any maximally compact placement P,letG P be the horizontal adjacency graph of P,and B ={b 1 , b 2 , , b k } be the set of left-boundary vertices in G. Because every vertex in G is reachable from at least one vertex in B, a spanning forest Q ={T 1 , T 2 , , T k } of G can be found, where T i is a tree rooted at b i , i = 1, 2, , k. For example, Figure 9.12a gives a maximally compact placement of nine modules and Figure 9.12b shows the horizontal adjacency graph, where vertices 7, 4, 1 are left-boundary vertices. Figure 9.12c shows a spanning forest containing three trees rooted at 7, 4, 1, respectively. Now for the trees rooted at b 1 , b 2 , , b k , k − 1 ho rizontal cutlines dividing a f loorplan into k parts are constructed. For each tree, the transformations shown in Figure 9.13 are then recursively applied to its child subtrees to further expa nd the slicing structure. Figure 9.12d and e show the final slicing tree and floorplan. From the slicing floorplan, the corresponding slicing p lacement P  can Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 179 24-9-2008 #20 Slicing Floorplans 179 (a) (b) (c) 1 2 3 6 5 4 7 8 9 1 2 3 6 5 4 7 8 9 1 4 7 2 3 6 5 8 9 (d) (e) (f) 2 3 6 5 4 7 1 8 9 2 3 6 5 4 7 1 8 9 H H H V V VV V 1 2 457 36 8 9 FIGURE 9.12 Generating a slicing placementfrom amaximally compact placement. (a)A maximally compact placement of 9 modules, (b) the horizontal adjacency graph of (a), (c) a spanning foust of (b), (d) the slicing tree derived from (c), (e) the slicing floorplan derived from (c), and (f) the slicing placement derived from (d) (or (e)). be constructed (Figure 9.12f). Because the positions of the modules in the x-direction in P  are the same as those in P, performing a compaction along y-direction, which moves modules downward as far as possible, transforms P  into P. This concludes that slicing tree is a complete representation of floorplans in the sense that by an augmenting compaction step, all m axim ally compact placements can be produced as well. 9.7.3 HETEROGENEOUS FPGA FLOORPLANNING Modern FPGAs can accommodate multimillion gates and their future generations will be even more complex. As a r esult, a h ierarchical approach based upon partitioning and floorplanning becomes necessary to successfully realize a design on an FPGA. Owing to the heterogeneous logic and rout- ing resources on a modern FPGA, FPGA floorplanning is very different from floorplanning for application-specific integrated circuits (ASICs). Although there are also some previous works, for Z (a) (b) (c) Z Z Z Z Z T T T 2 T 2 T 1 T 1 T m T m FIGURE 9.13 Three types of transformations for expanding a slicing structure. (a) Type 1 transformation, applied when Z has no child, (b) Type 2 transformation, applied when Z has only one child, and (c) Type 3 transformation, applied when Z has two or more children. Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 180 24-9-2008 #21 180 Handbook of Algorithms for Physical Design Automation CLB RAM Multiplier (a) (b) (c) 1 2 3 4 5 6 H H V VV 12 3 45 6 FIGURE 9.14 (a) Slicing floorplan. (b) Slicing tree. (c) Pattern. example, Ref. [30], on FPGA floorplanning,they all target at older generations of FPGAs consisting of configurable logic blocks (CLBs) only. In this subsection, we consider modern heterogeneous FPGA chips that consist of columns of CLBs, with column pairs of RAMs and mu ltipliers inter- leaved between them (Figure 9.14a). The Xilinx Spa rtan3 family and Vertex-II family con form to this architecture [31]. For such an FPGA architecture, the first slicing floorplan design algorithm is given in Ref. [27]. The algorithm uses slicing trees to represent floorplans during a simulated annealing process similar to Ref. [2], but it nontrivially extends the slicing floorplan area optimiza- tion algorithms [3,5] to find the optimal realization for each slicing tree. The main idea behind this extension is explained below. Assume that a set of modules is given, where each module h as an associated resource require- ment vector ϕ = (m 1 , m 2 , m 3 ), indicating that this module requires m 1 CLBs, m 2 RAMs, and m 3 multipliers. The FPGA floorplanning problem is to place modules on the chip such that each region assigned to a module satisfies the resource requirements of the module, regions for different mod- ules do not overlap, and a given cost function is optimized. For example, if there are six modules, and their resource requirement vectors are ϕ 1 = (12, 2, 1), ϕ 2 = (30, 4, 4), ϕ 3 = (15, 1, 1), ϕ 4 = (24, 4, 4), ϕ 5 = (18, 2, 2),andϕ 6 = (30, 2, 2), then Figure 9.14a is a feasible slicing floorplan for these modules (see Figure9.14b for the corresponding slicing tree). For easier illustration, a coordi- nate system is adopted on the chip. In Figure 9.14a the horizontal unit is the width of a CLB, and the vertical unit is the height of a CLB. The lower left CLB has coordinate (0, 0), the lower left RAM occupies coordinates (1, 0) through (1, 2), and the lower left multiplier occupies coordinates (2, 0) through (2, 2). Let H and W be the height and the width of the chip, respectively. Any rectangular region r in the chip is denoted by a four-tuple (x, y, w, h), where (x, y), w,and h are the lower left coordinate, the width, and the height of r, respectively. The x(r), y(r), w(r), and h(r) each denote a corresponding field of r.LetR i denote the set o f rectangular regions in the chip that satisfy the resource requirements o f module i. Each region in R i is said to be a realization of module i because it is feasible to place module i in that region. A realization r 1 in R i is redundant if there is another realization r 2 in R i such that both realizations have the same lower left coordinate (i.e., r 1 (x) = r 2 (x), r 1 (y) = r 2 (y)) and r 2 is not larger than r 1 in both dimensions (i.e., r 2 (w) ≤ r 1 (w) and r 2 (h) ≤ r 1 (h)) . Clearly all redundant realizations can be discarded. Let L(i , x, y) denote the irreducible realization list (IRL) for module i starting at coordinate (x, y) and it contains all the irredundant realizations in R i with (x, y) being their lower left coordinate. Therefore, all irredundant realizations of a module are organized into different IRLs for different starting coordinates. Each IRL is sorted in the decreasing h eight order, and hence it is also sorted in the increasing width order. The definition of an IRL can be extended to the nodes in a slicing tree. Given two rectangles r 1 and r 2 , the bounding rectangle of r 1 and r 2 is a rectangle r with r(x)= min{r 1 (x), r 2 (x)}, r(y)=min{r 1 (y), r 2 (y)}, r(w)=max{r 1 (w) + r 1 (x), r 2 (w) + r 2 (x)}−r(x ),and Alpert/Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 181 24-9-2008 #22 Slicing Floorplans 181 r(h)=max{r 1 (h) +r 1 (y), r 2 (h) +r 2 (y)}−r(y). Given a tree node u,ifu represents module i, R u = R i . On the other hand, if u is an internal node, let u 1 , u 2 be th e left and the right children of u.Ifu is a vertical cut (a horizontal cut, respectively), R u consists of all bounding rectangles of r 1 in R u 1 and r 2 in R u 2 ,wherer 1 is to the left side of (below, resp ectivly) r 2 . The IRL for a tree node u starting at coordinate (x, y) is defined as L(u, x, y) ={r|r is irredundant in R u , x(r) = x,andy (r) = y}. Therefore, the set of all irredundant realizations of a tree node is also organized into different IRLs for different starting coordinates. Given a slicing tree, the IRLs of each node are calculated from leaves to the root. Obviously, the IRLs of each module only need to be calculated once, right at thebeginning of thesimulated annealing process. Suppose u is the internal node under consideration, and is a vertical cut. Let u 1 , u 2 be the left and the right children of u. Assume L(u 1 , x, y) ={r 1 , r 2 , , r k }is sorted as expected. It can be shown that it is enough to combine every realization r i in L(u 1 , x, y) with realization s in L(u 2 , x + w(r i ), y) to generate L(u, x, y). Moreover, when combining r i with realizations in L(u 2 , x +w(r i ), y),wemay not need to consider all combinations. For those realizations in L(u 2 , x + w(r i ), y) with heights not larger than h(r i ), we only need to consider the highest one to get a minimum width. We also do not need to combine r i with a realization r  in L(u 2 , x + w(r i ), y) if h(r  ) ≥ h(r i−1 ). The procedure to construct L(u, x, y) can be derived similarly when u is a horizontal cu t. It takes O(l log l) time to construct L(u, x, y),wherel = max{H, W }. The above-mentionedmethod, however,should not be implemented directly on the chip, because finding IRLs for every coordinate makes the space complexity formidable. Fortunately, a real FPGA chip is very regular with repetitions of a basic pattern. Consider the example chip in Figure 9.14a whose basic pattern is shown in Figure 9.14c. It turns out that this repetition property can be utilized such that only computation on the pattern instead of the whole chip needs to be done. As a result, evaluating a slicing tree takes O(nml log l) time and needs O(nlm) memory space, where n is the number of modules and m is the number of points on the pattern. 9.7.4 3D F LOORPLANNING Complementary metal oxide semiconductor (CMOS) technology has continuously scaled into nanometer regime, and it has b ecome more difficult to improve the chip performance by just size shrinking in a planar wafer. 3D ICs is a promising technology to keep the speed of an IC advanc- ing. 3D ICs provide significant performance benefits over two-dimensional integrated circuits (2D ICs) mainly by reducing the interconnect lengths and introducing new geometrical arrangement of modules [32]. To improve the performance, circuit modules will not be confined in only one layer in 3D ICs. This produces a problem for current 2D floorplanning tools. As a result, 3D floorplanning algorithms are required for 3D IC design. A 3D slicing floorplan design problem is addressed in Ref. [28]. This problem is formulated as that of placing a given set of 3D rectangular modules without overlappingwhile a given cost function is optimized. Assuming each 3D module is a hard module but with free rotation, an algorithm for solving the 3D slicing floorplan design problem is reported in Ref. [28], which generalizes slicing trees to represent different 3D floorplans, and uses simulated annealing to search for a good slicing floorplan. The main idea of the algorithm is highlighted below. A 3D slicing floorplan can be ob tained by cutting a 3D block by 2D planes (which are perpen- dicular to the x-, y-, or z-axis) into a set of 3D subblocks such that each 3D subblock is large enough to accommodate the 3D module assigned to it (Figure 9.15a). Slicing trees can be generalized to represent 3D slicing floorplans such that each internal node of a slicing tree is now labeled by X, Y, or Z. The label X (Y, Z, respectively) means that the corresponding subfloorplan is cut by a plane that is perpendicular to the x-axis (y-axis, z-axis, respectively). Figure9.15b gives a slicing tree to represent the 3D floorplan shown in Figure 9.15a. Because a slicing tree is a full binary tree (due to the fact that each internal node of the tree has two children), a static array with 2n −1 elements can be used to represent all the nodes of the tree, . module area; for example, if r = 2and Alpert /Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 178 24-9 -200 8 #19 178 Handbook of Algorithms for Physical Design Automation A max =. he left boundary. Alpert /Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 174 24-9 -200 8 #15 174 Handbook of Algorithms for Physical Design Automation (a) (b) (c) (d) A B V A (R)(L) B A B B H (R) (L) A B A B (L)(R) A V A (L) (R) B B A H FIGURE. Alpert /Handbook of Algorithms for Physical Design Automation AU7242_C009 Finals Page 172 24-9 -200 8 #13 172 Handbook of Algorithms for Physical Design Automation 1 2 3 45 54V3H2V1H M1

Ngày đăng: 03/07/2014, 20:20