throbber
26th ACIIii/IEEE
`N AUTOMAT. ON
`FIENcE®
`
`JUNE 2" JUNE 2J, 1989
`1 VEGAS CONVEX MON CENT
`
`ACM Order Number 477890
`Library of Congress Catalog Card Number 85-644924
`IEEE Catalog Number 89CH2734-2
`IEEE Computer Society Order Number 1961
`ISBN 0-89791-310-8
`ISSN 0738-100X
`
`SIGDA® (cid:9)
`
`IEEE COMPUTER SOCIETY
`
`THE INSTITUTE OF ELECTRICAL
`AND ELECTRONICS ENGINEERS, INC.
`
`IEEE
`
`XILINX, EX. 1010
`Page 1 of 8
`
`

`
`PROCEEDINGS OF THE ACM/IEEE DESIGN AUTOMATION CONFERENCE®
`
`9th (1972) Contains 47 Papers 379 Pages
`10th (1973) Contains 36 Papers 288 Pages
`11th (1974) Contains 47 Papers 379 Pages
`12th (1975) Contains 57 Papers 448 Pages
`13th (1976) Contains 63 Papers 501 Pages
`14th (1977) Contains 70 Papers 507 Pages
`15th (1978) Contains 72 Papers 493 Pages
`16th (1979) Contains 94 Papers 586 Pages
`17th (1980) Contains 81 Papers 656 Pages
`18th (1981) Contains 134 Papers 917 Pages
`19th (1982) Contains 125 Paper 928 Pages
`20th (1983) Contains 122 Papers 832 Pages
`21st (1984) Contains 116 Papers 736 Pages
`22nd (1985) Contains 124 Papers 838 Pages
`23rd (1986) Contains 124 Papers 835 Pages
`24th (1987) Contains 138 Papers 840 Pages
`25th (19 ) Contains 125 Papers 730 Pages
`26th (1989) Contains 156 Papers 835 Pages
`
`Prices (1989) ACM or IEEE Members: $42.00
`All Others: $56.00
`
`© 1989 by the Association for Computing Machinery, Inc. Copying without fee is permitted provided that the copies
`are not made or distributed for direct commercial advantage and credit to the source is given. Abstracting with credit
`is permitted. For other copying of articles that carry a code at the bottom of the first page, copying is permitted provided
`that the per-copy fee indicted in the code is paid through the Copyright Clearance Center, 27 Congress Street, Salem,
`MA 01970. For permission to republish write to: Director of Publications, Association for Computing Machinery, 11
`West 42nd Street. New York, NY 10036. To copy otherwise, or republish, requires a fee and/or specific permission.
`
`ACM Order Number 477890
`ISBN 0-89791-310-8
`Library of Congress Catalog Card Number 85-644924
`IEEE Catalog Number 89CH2734-2
`ISBN 0-8186-8961-7 (case)
`ISBN 0-8186-5961-0 (microfiche)
`ISSN 0738-100X
`IEEE Computer Society Order Number 1961
`
`Additional copies of 1989 or prior Proceedings may be ordered prepaid from:
`
`ACM
`Order Department
`P.O. Box 64145
`Baltimore, MD 21264
`
`IEEE Computer Society
`Publications Office
`10662 Los Vaqueros Circle
`Los Alamitos, CA 90720
`
`IEEE Computer Society
`European Office
`13, avenue de L'Aquilon
`B-1200 Brussels, Belgium
`
`IEEE Computer Society
`2-19-1 Minami Aoyama
`Minato-Ku
`Tokyo 107, Japan
`
`IEEE Service Center
`445 Hoes Lane
`P.O. Box 1331
`Piscataway, NJ 08855-133
`
`These organizations should be contacted before placing an order to determine availability and cost of past
`Proceedings.
`
`ii
`
`XILINX, EX. 1010
`Page 2 of 8
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`

`
`PERFORMANCE OPTIMIZED FLOOR PLANNING
`BY GRAPH PLANARIZATION
`
`Badri Lokanathan and Edwin Kinnen
`
`Dept. of Electrical Engineering
`University of Rochester, Rochester NY 14627
`
`Abstract
`A new procedure for VLSI floor planning that minimizes
`routing parasitics is presented. The procedure, based on
`rectangular dualization, maximizes adjacency of modules
`that are heavily connected or connected by critical nets.
`1Viring macros are introduced to provide routing area for
`those modules that cannot be located adjacent to one
`another; these macros are located by planarizing the system
`interconnectivity graph using an edge crossing strategy that
`minimizes the cost of intersection. The rectangular dual is
`compacted using heuristics to approximate a quadratic area
`constraint by one or more linear constraints, thereby reduc-
`ing the complexity of compaction from that of quadratic pro-
`gramming to linear programming.
`
`1. Introduction
`Floor planning in VLSI is a procedure for allocat-
`ing adequate area and shapes to system modules and
`their interconnections while conserving overall chip lay-
`out area. An extension of this floor planning problem is
`obtained if, in addition, performance criteria such as
`critical nets, routing area and power dissipation are
`included. The rapid growth in complexity, size and den-
`sity of VLSI systems has made floor planning a chal-
`lenging task. Even with computer assistance, manual
`floor planning is a lengthy and error prone process.
`Hence there is considerable interest in finding efficient
`ways to automate the procedure.
`Currently, a widely accepted methodology for sys-
`tem layout is to place and interconnect pre-designed
`standard cells or modules whose dimensions and inter-
`connection terminals have been fixed. This method has
`proven to be fast and easily amenable to automation,
`particularly when these modules have been crafted for a
`family of applications. The drawback of this method is
`that space may be used inefficiently for both layout and
`wiring, resulting in larger layout area and slower speed
`of operation than necessary. This is inevitable since
`most area planning and routing problems are known to
`be NP-hard.
`
`Permission to copy without fee all or part of this material is granted provided
`that the copies are not made or distributed for direct commercial advantage,
`the ACM copyright notice and the title of the publication and its date appear,
`and notice is given that copying is by permission of the Association for
`Computing Machinery. To copy otherwise, or to republish, requires a fee
`and/or specific permission.
`
`An alternative to a bottom-up fixed cell or stan-
`dard cell methodology for layout is a top-down
`custom/semi-custom floor planning strategy. Here the
`final layout of modules is performed after compartmen-
`talizing the surface of the chip into cells, each cell to
`contain no more than one module. The objective in
`floor planning is both to determine individual cell
`dimensions for the efficient use of layout area and to
`locate cells that contain heavily connected modules
`either adjacent or in proximity to one another. The
`module designer can use positional information pro-
`vided by floor planning to locate terminals on the peri-
`phery of the module such that interconnect distances
`are reduced. Floor planning subsumes the placement
`problem and a major part of the routing problem.
`A design procedure for custom VLSI floor plan-
`ning is presented here. The emphasis is on maximizing
`adjacency between cells containing modules that are
`either heavily connected or connected by critical nets,
`thereby reducing parasitics due to wire length. Since it
`is generally impossible to locate every pair of connected
`modules in adjacent cells, wiring macros are introduced
`in the layout to provide space for the connections of
`non-adjacent modules. Locations for these wiring mac-
`ros are identified by planarizing the system interconnec-
`tivity graph (SIG) using an edge-crossing algorithm that
`minimizes the cost of intersection. The design objective
`is to reduce potential routing parasitics, crosstalk and
`high frequency reflection sites at vias and jogs by
`minimizing the routing of critical nets and the number
`of nets in wiring macros. The method of rectangular
`dualization has proven to be a powerful algorithmic pro-
`cedure for constructing topologies that are based upon
`adjacent rectangles;' it is used to construct a floorplan
`from the interconnectivity graph of the system. A com-
`pacting procedure is applied to the rectangular dual to
`obtain the best cell dimensions.
`The design procedure can be described briefly as
`follows. The system is initially modeled by a hypergraph
`whose vertices represent the modules and edges the
`interconnections or nets. A SIG is generated from this
`hypergraph by an algorithm described in Section 3. The
`SIG is simple, that is, its edges are weighted but it does
`not have multiple edges or loops. In order to apply the
`method of rectangular dualization, the SIG must be
`planar and triangulated but without non-facial triangles.
`Algorithms for planarization and triangulation are
`described in Sections 4 and 5. A graph that satisfies
`
`Paper 8.3
`
`116
`
`26th ACM/IEEE Design Automation Conference®
`
`© 1989 ACM 0-89791-310-8/89/0006/0116 $1.50
`
`XILINX, EX. 1010
`Page 3 of 8
`
`

`
`conditions for rectangular dualization generally yields a
`family of rectangular duals. In Section 6, procedures
`are described for obtaining a rectangular dual and com-
`pacting it to yield the best floor plan.
`The steps of the procedure presented here are
`similar to those of a floor planning procedure presented
`earlier.2 However the strategies adopted at each of the
`stages differ, in part by avoiding branch and bound pro-
`cedures. Included is a new algorithm for deriving the
`SIG and a new procedure for dual compaction.
`
`2. Model
`For the purpose of floor planning, a VLSI system
`can be regarded as a set of rectangles that represents the
`modules of the system. The floor planning procedure
`dissects the chip surface into cells for these rectangles,
`whose minimum area and aspect ratio are given. All
`connections between adjacent modules, that is, modules
`located in abutting cells are assumed to be made
`through the edges of adjacency. This procedure is best
`suited for custom VLSI design where the final module
`dimensions and module pin locations are not fixed prior
`to the time of floor planning. However this procedure
`also has applications to pre-designed modules or stan-
`dard cells with the assumption that additional area is
`allowed for routing nets along the edges of adjacency.
`For custom modules, it is assumed that the
`designer has some means of estimating areas and aspect
`ratio limits of modules based on their complexity. A
`strategy for this is to examine existing libraries for
`modules of similar architecture. A study performed on
`a library of standard cells in a particular technology has
`indicated that the area of the module can be estimated
`from the number of transistors. The aspect ratio limits
`are dependent upon the architecture of the module and
`can often be predicted by an experienced designer.
`
`3. Generating a System Interconnectivity Graph
`To obtain a SIG, nets are assumed to connect or
`span a set of modules rather than a set of terminals.
`This is equivalent conceptually to making all connec-
`tions between module centers rather than among the
`pins. Then the system can be modeled by a hypergraph
`II whose vertices and edges represent the modules and
`the interconnecting nets. This hypergraph can be
`transformed into a simple graph G in several ways. The
`most direct transformation is to represent each module
`as a vertex in G and each net by a clique on the vertices
`corresponding to the modules connected by the net.
`However, this often results in a dense graph that can be
`hard to planarize. Hence a clustering method is
`adopted, wherein the vertices of G represent clusters of
`modules that are heavily connected. The intent of this
`clustering, in the limit, is that within a cluster each net
`connects all modules, indicating no preferred relative
`placement of these modules. Therefore, good heuristics
`for area efficiency, such as 2-D bin-packing algorithms
`and their extensions, can be used to place the modules
`within a cluster.3, 4
`To begin the procedure for generating a SIG, the
`nets are ordered by the decreasing number of connected
`blocks. Then clustering is performed sequentially on
`each net, partitioning the set of vertices into non-
`overlapping subsets. This process is referred to in the
`algorithm as mitotic division due to its similarity to bio-
`logical cell division. The output of the algorithm is a
`
`SIG, each edge of which represents one or more con-
`nections between the clusters at the endpoints of the
`edge. These clusters are either groups of modules or
`wiring macros that connect other clusters. Clusters that
`contain more than one module are treated as a single
`super-module for the purpose of floor planning.
`Algorithm_cluster is given in detail in the appendix.
`
`4. Planarizing the System Interconnectivity Graph
`Algorithm_cluster generally results in a SIG that
`is non-planar. The method of rectangular dualization,
`however, is applicable only to a planar graph.
`Algorithm_planarize derives a planar interconnectivity
`graph by introducing vertices for edge crossings that
`represent wiring macros or busses in the layout of the
`system. The problem of finding an embedding of a
`graph in a plane with a minimum number of edge cross-
`ings has been shown to be NP-complete.5 Therefore a
`greedy heuristic is adopted wherein the edges are
`ordered by decreasing weight and the graph is incremen-
`tally tested for planarity. If the graph tests for non-
`planarity, then a set of crossings by the current edge
`with other edges is obtained such that the sum of the
`weights of the other edges is minimum. The objective
`is to introduce a wiring macro at the intersection of a
`cheap edge and an expensive edge rather than at the
`intersection of low weighted edges, where the weighting
`is some measure of criticality. Experiments indicate
`that this heuristic generally results in smaller wiring
`macros.
`The planarization is performed by a procedure,
`crossing_edges, that identifies a subset of edges of
`minimum cost in a connected subgraph C with which an
`edge (a,b) can intersect such that the resulting graph is
`planar. The procedure is based on selecting the shortest
`path between two vertices in the geometric dual of C
`that represent faces adjacent to vertices a and b in com-
`ponent C. Crossing_edges is a modified version of an
`earlier algorithm° that did not always identify the
`minimum cost intersection due to the existence of non-
`isomorphic duals of biconnected graphs. The new algo-
`rithm is based on partitioning the graph into triconnected
`components. A triconnected component has a unique
`embedding in the plane and hence has a unique dual.?
`Algorithm_cluster and procedure crossing_edges are
`given in the appendix.
`
`(b)
`
`5. Periphery Identification and Graph Completion
`The planar interconnectivity graph resulting from
`algorithm_planarize must satisfy certain conditions for
`the rectangular dualization procedure to be applicable:8
`all faces of the graph must be triangulated, i.e.,
`(a)
`have degree 3, except the unbounded outer face,
`whose degree must be greater than 3, and
`all non-facial cycles must have degree greater than
`3.
`Physically the outer face corresponds to the periphery of
`the layout. If the planar graph can be embedded in the
`plane such that it has several faces with degree greater
`than 3, then each of these faces is a potential outer face.
`If the original specification includes pads as modules,
`then the outer face must contain vertices representing
`the pad modules. However if pads were not included in
`the specification, then the choice of the outer face can
`be based on other considerations. For example, a face
`may be chosen that is incident on vertices representing
`
`Paper 8.3
`
`117
`
`XILINX, EX. 1010
`Page 4 of 8
`
`

`
`may be chosen that is incident on vertices representing
`modules with maximal connectivity to the exterior.
`Other considerations may be area, connectivity or ther-
`mal dependent.
`If the SIG is triconnected, then it has a unique
`embedding in a plane once the periphery is fixed,7 that
`is, the relative placement of cells is determined once the
`periphery is selected. However, this is not true if the
`SIG is a biconnected graph, since there may be several
`ways of placing cells without violating adjacency require-
`ments. These several ways represent choices that the
`user can exploit based on additional information. A
`biconnected graph usually results if some of the
`modules are sparsely connected to the rest of the sys-
`tem.
`
`The final step before rectangular dualization is to
`triangulate all faces except the outer face and eliminate
`any non-facial triangle. It can be proved that a graph
`that does not contain a non-facial triangle can always be
`triangulated without creating a non-facial triangle, either
`by adding new edges within the face or by adding
`exactly one new vertex in the face and connecting it to
`the vertices on the periphery. Hence triangulation is
`performed after eliminating existing non-facial triangles.
`These non-facial triangles are removed by introducing
`an additional vertex in each triangle using a heuristic
`that locates the vertex between the vertices that
`represent the two largest blocks in the triangle. Physi-
`cally, this heuristic attempts to balance the adjacency
`requirements with areas in order to reduce stretching of
`the new macro that represents the added vertex.
`
`0. Compaction of Rectangular Duals
`A graph satisfying all conditions for rectangular
`dualization generally yields a family of rectangular duals.
`A good floor plan is obtained by selecting a dual that
`yields the most compact dual. Several methods have
`been proposed for enumerating rectangular duals.°
`Experiments have shown that the method of sequen-
`tially turning turnable structures yields solutions that are
`close to the global optimum relatively quickly. The
`dimensions of rectangles in the dual are constrained by
`the physical dimensions of the corresponding modules
`as well as the common edges among adjacent rectangles
`that are necessary for the interconnections between
`abutting modules. If the dimensional constraints are
`only on the perimeter of the rectangle, then a straight-
`forward constructive procedure is sufficient to obtain the
`most compact layout.g However, if the dimensional con-
`straints include area or aspect ratios, then the layout can
`be sized by a quadratic programming procedure. Since
`the number of duals to be enumerated could be large, a
`new more efficient optimization procedure is proposed
`below to prevent the computation cost from becoming
`prohibitive.
`
`0.1. Formulation of the New Optimization Problem
`To obtain the physical layout of the rectangular
`dissection, it is necessary to compute the dimensions of
`each rectangle and its location. In addition, two rectan-
`gles can abut either horizontally or vertically; this spatial
`relationship in a rectangular dual is represented by
`assigning orientations and directions to the edges of the
`SIG.t Once the topology of the layout is determined by
`
`t This description can be given formally in terms of a 4-
`completion and turnable structures.9
`
`orienting all the edges, the only variables are the x and
`y dimensions of each rectangle. The physical location of
`the rectangle can then be determined by adding the
`dimensions of rectangles to the left to give the x coordi-
`nate of the lower left corner, and the dimension of the
`rectangles below to give the y coordinate.
`Let the variables (xi , yi, 0< i< n), where n is
`the number of modules, denote the x and y dimensions
`of the i'th module and (x0, yo) denote the x and y
`dimensions of the entire rectangular dual. The objec-
`tive function chosen is the perimeter of the rectangular
`dual
`
`P = 2(x o (cid:9)
`
`yo).
`
`Four types of constraints imposed upon the module
`dimensions are:
`(1) Area constraints expressed as
`
`x; y; > (cid:9)
`
`= 1, . . . , n
`
`where a_mini is the minimum area required for
`the i'th module.
`(2) Perimeter constraints expressed as
`
`xi > x_mini
`> y_mini (cid:9)
`
`= (cid:9)
`
`' • ' ' n
`
`where x_mini denotes the minimum x dimension
`of the i'th module and y_mini its minimum y
`dimension. The perimeter constraints together
`with the area constraints can be used to incor-
`porate aspect ratio constraints on the modules.
`(3) Adjacency constraints: These depend upon the
`orientation of the corresponding edge in the SIG
`and its immediate neighbors incident at either
`endpoint of the edge. Each edge of the SIG in
`general contributes one adjacency constraint.
`There are eight possible cases; these are shown in
`Fig. 1.
`(4) Rectangular dual constraints: These are equality
`constraints that specify the topology of the rec-
`tangular dual and arise from the horizontal and
`vertical digraphs (Fig. 2) corresponding to the rec-
`tangular dual. It can be shown that exactly
`(n+ 1) equations are necessary to completely
`specify the rectangular dual constraints. This fol-
`lows from the fact that the rectangles are sized
`using Kirchhoff's laws and (n+ 1) equations are
`required to independently solve for the analogous
`current and voltage in each branch.")
`
`0.2. Relaxation of Quadratic Area Constraints
`The quadratic area constraints (1) of the perime-
`ter optimization problem are computationally expensive.
`However, the quadratic optimization problem can be
`transformed into a linear program if each area constraint
`is approximated by one or more linear constraints,
`depending on the accuracy desired.
`The approximation heuristic is described by a
`graph of the x-y dimensions of the i'th module in Fig.
`3, where the feasible dimensions of the module lie in
`the shaded region. Let
`
`0, =
`
`, (cid:9)
`
`i = 1, . . . , n
`
`Paper 8.3
`118
`
`XILINX, EX. 1010
`Page 5 of 8
`
`

`
`The case of interest is 0 ;> I. Let the region of the
`curve between points 1 and 2 be approximated by k
`linear segments, whose endpoints in sequence are given
`by
`
`k=2-
`R (cid:9)
`{x_mini O f k , y_mini 0; k }, p = 0, . . . ,k
`It is easily shown that each endpoint lies on the curve
`xi yi = a_mini.
`The maximum error in area due to the approxi-
`mation is given by
`
`C
`
`An; (cid:9)
`[
`2 10g, 0
`sin
`11
`a_m (cid:9)
`ini =
`2k
`
`I
`where Da; is the difference between a_mini and the
`area at the most distant point on any segment from the
`constant area curve
`
`i = 1, . . . , n
`
`=
`
`Thus the maximum error due to the approximation is a
`function of the minimum dimensions of the module
`and the number of segments that approximate the
`curve. e computed for different values of 0 and k is
`plotted in Fig. 4.
`It is convenient to make the following transfor-
`mation in variables:
`ui = (cid:9)
`— (cid:9)
`= — y_mini
`
`.
`= 1, . . . ,n
`
`to render the perimeter constraints implicit; i.e. they
`need not be given explicitly in the linear program. The
`endpoints of the linear segments can be rewritten as
`
`{X_Mini(0 ik — 1), y_Mini(0 k — 1)}
`where p = 0, . . . ,k . Thus each quadratic inequality
`constraint
`
`x1 y; >
`
`is rewritten as k linear inequalities of the form
`
`Vi > y_mini f0 ; k — 1}
`k —2p +1
` 0 •
`k (cid:9)
`
`X__711iTli
`
`— x_mind0 —11]
`
`where p = 1, . . . , k. k depends on the desired accu-
`racy of computation and can be computed for the i'th
`module:
`
`k
`
`= (cid:9)
`
`loge 0
`
`It has been found convenient to specify the same value
`of the maximum error in the approximation (i.e.
`ci=c, i =1, . . . , n) and then compute the number
`of linear constraints k necessary for each module.
`
`6.3. Compaction Strategy
`The process of computing the minimum perime-
`ter using the proposed optimization procedure could get
`expensive if it is repeated for all possible orientations of
`the SIG, since the number of linear approximation con-
`straints grows, depending upon the specified accuracy.
`As an alternative to reduce the computational effort, a
`
`dual enumeration procedure can be applied to modules
`with only perimeter constraints by assigning each
`module equal minimum x and y dimensions
`
`= (cid:9)
`Vr; (cid:9)
`,
`where ri is the aspect ratio of module i. A constructive
`method is used to compute dimensions of the cells dur-
`ing enumeration.9 The final rectangular dual obtained,
`however, may violate area constraints, since the lower
`limit of the x and y dimensions of each rectangle is
`smaller than the maximum dimension of the module.
`Application of the proposed optimization procedure at
`this point will correct this violation.
`
`7. Implementation and Results
`The algorithms presented here have been encoded
`in the C programming language and tested indepen-
`dently. The dual enumeration and compaction pro-
`cedures have been packaged into a single program
`IFPLAN (Interactive Floor PLANner) that currently
`operates under BSD Unix on Sun 3 workstations or
`AED512's. Most of the tests have been performed on
`benchmark examples with modules having fixed dimen-
`sions and pins. The example illustrated in Fig. 5 is one
`of the MCNC benchmarks, ami33. The modules were
`placed in the cells generated by IFPLAN and routed
`using UR-Wire,11 a locally developed straight wire
`router.
`
`References
`
`3.
`
`4.
`
`1. W.R. Heller, G. Sorking, and K. Maling, "The
`Planar Package Planner for System Designers,"
`Proc. 19th Design Automation Conference, pp. 253-
`260, 1982.
`2. M.A. Jabri, "Automatic Building of Graphs Rec-
`tangularly Dualisable for use in IC Floorplan-
`ning," Proc. International Symposium on Circuits
`and Systems, pp. 1683-1686, 1988.
`E.G. Coffman, M.R. Garey, D.S. Johnson, and
`R.E. Tarjan, "Performance Bounds for Level-
`Oriented Two-Dimensional Packing Algorithms,"
`Siam J Computing, vol. 9, no. 4, pp. 808-826,
`1980.
`S.L. Hakimi, "A Problem on Rectangular Floor-
`plans," Proc. International Symposium on Circuits
`and Systems, pp. 1533-1535, 1988.
`5. M.R. Garey and D.S. Johnson, "Crossing
`Number is NP-Complete," Siam J. Alg. Disc.
`Meth., vol. 4, no. 3, pp. 312-316, 1983.
`B. Lokanathan and E. Kinnen, "Planarization of
`VLSI Interconnectivity Graphs for Floorplanning
`using Rectangular D ualization, " Proc. Seventh
`Biennial UGIM Symposium, pp. 115-119, 1987.
`S. MacLane, "A Structural Characterization of
`Planar Combinatorial Graphs," Duke Math. J.,
`vol. 3, pp. 460-472, 1937.
`8. K. Kozminski and E. Kinnen, "Rectangular Duals
`of Planar Graphs," Networks, vol. 15, pp. 145-
`157, Jan. 1985.
`9. K. Kozminski and E. Kinnen, "Rectangular Dual-
`ization and Rectangular Dissections,"
`IEEE
`Trans. Circuits and Systems, vol. 35, no. 11, pp.
`1401-1416, 1988.
`
`6.
`
`7.
`
`Paper 8.3
`119
`
`XILINX, EX. 1010
`Page 6 of 8
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`

`
`10. R.L. Brooks, C.A.B. Smith, A.II. Stone, and W.T.
`Tutte, The Dissection of Rectangles into
`Squares," Duke Mathematical Journal, pp. 312-
`340, 1940.
`James.P. Coene, ''Detailed Routing for a VLSI
`Layout Based on Net Ordering," EL 88-07,
`Department of Electrical Engineering, University
`of Rochester, 1988.
`
`11.
`
`Figure 1(a): Possible cases of alignment for a
`horizontal edge directed from i to j
`
`I (cid:9)
`
`i (cid:9) II (cid:9)
`I
`i (cid:9)
`i (cid:9) I (cid:9)
`I (cid:9)
`1
`i (cid:9)
`I (cid:9)
`Figure 1(b): Possible cases of alignment for a
`vertical edge directed from I to j
`
`Vertical digraph
`
`Horizontal digraph
`
`Figure 2: Digraphs of a
`rectangular dual
`
`Shaded area indicates
`feasible region of
`quadratic constraint.
`
`Heavily shaded area
`indicates feasible region of
`one segment approximation.
`
`y_min
`
`x_min
`
`yi (cid:9)
`
`a_mini
`
`Figure 3: Approximation by one segment of
`quadratic region between points 1 and 2
`
`Paper 8.3
`120
`
`0 2
`
`6 8 10 12
`0 i
`
`Figure 4: Plot of error in approximation against
`0 for 1, 2 and 3 segment approximations
`
`bk15b
`
`bk17aT
`
`bk20
`
`bk19 bk8b
`
`• k 21
`
`bk13
`
`bk1411
`
`bk8a
`
`I1t31
`
`bk9b bk4
`
`bk9clizk_15___i2k18___
`
`k14a_
`
`k5b
`
`•k5____bk2bk14c bk5c
`
`bk1
`
`bk9s—___bk10a
`
`bk1511_
`
`ii7____
`
`bk5a
`
`bk11 (cid:9)
`
`bk1013
`
`.k12
`
`bki 7b
`
`k a
`
`Figure 5(a): Floor plan of ami33
`generated by IFPLAN
`
`kisb
`
`
`lull (cid:9)
`1,..m.mlio
`--iii ...--.1%.... —.E '00-iii...
`'111
` 1,f211 (cid:9)
`Mil
`1 (cid:9)
`il (cid:9)
`lit
`(cid:9) g L
`lownalumMula
`II (cid:9)
`....:,
`
` ii
`iiir (cid:9)
`Iti
`.... 1 i (cid:9)
`Is
` i
`III
`.m, 01011411..WIRMa
`TS ••••,,1
`
`•
`
`elemIM!
`
`l 4J
`,, non (cid:9)
`==,
`
`I
` I 1 ot r „
`Ill
`
`Figure 5(b): Layout after placement and routing
`
`XILINX, EX. 1010
`Page 7 of 8
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`

`
`Appendix
`algorithm_cluster:
`This algorithm takes as input a hypergraph H and
`generates a system interconnectivity graph F as
`output.
`Let C be an array of clusters and c the number of clus-
`ters and let the hyperedges of hypergraph H be sorted
`by the decreasing number of vertices;
`
`algorithm cluster(H);
`begin
`
`Initialize each vertex to belong to no cluster and
`C to be empty;
`0;
`C (cid:9)
`while there is a hyperedge h in H do
`begin
`
`Delete h from H;
`Let V be the set of vertices incident with h
`and 170 the vertices of V that do not belong
`to any cluster;
`if 170 (cid:9)
`then
`c +— c+1, C[c] (cid:9)
`C[c] (cid:9)
`0;
`
`Vu, weight of
`
`Partition V into n non-empty subsets
`each containing vertices belonging to the
`same cluster Ci;
`for i = 1 to n do
`begin
`
`end cluster;
`
`algorithm_planarize: This algorithm planarizes a system
`interconnectivity graph G.
`Sort the edges of graph G by decreasing weight, let E be
`the sorted list of edges;
`
`algorithm planarize(E);
`begin L +—
`while there is an edge e in E do
`begin
`
`Delete e from E and add to L;
`Let G' be the incremental graph composed
`of edges in L;
`for each biconnected component C of G' do
`if C is non-planar then
`begin
`
`C — e;
`C" (cid:9)
`Let a and b be the vertices
`incident with e;
`if C" can be separated into
`biconnected components then
`begin
`
`Let the biconnected com-
`ponents containing a and
`b be C2, and C2b and
`the articulation point be
`x;
`
`if (cid:9)
`begin
`
`end
`else
`
`— V, (cid:9)
`
`then
`
`c (cid:9)
`c+1, C[c] 4— V,.;
`weight of C[c] (cid:9)
`weight of
`C1 + weight of net represented
`by h;
`Connect clusters C[c] and
`by an edge of weight = weight
`of C,.;
`Let the mitotic child of .17; be
`C[c];
`
`end
`
`end
`end planarize;
`
`crossing_edges C2a ,a,x);
`crossing_edges C2 6
`,x);
`
`end
`else crossing_edges( C", a ,b);
`Introduce new vertices on the
`edges returned by the calls to
`crossing_edges and embed the
`augmented component C with
`edge crossings at these vertices;
`
`let the mitotic child of V; be vi
`(i.e., no division);
`
`end
`if n = 1 then
`weight of C1 4-- weight of Cl +
`weight of net represented by h;
`else if n = 2 then
`connect the mitotic children of V1
`and V2 by an edge of weight =
`weight of net represented by h;
`else if n > 2 then
`begin
`
`Create an empty vertex v (this
`represents a feeder node to connect 3
`or more clusters in a star topology);
`c+1, C[c] +— v;
`c (cid:9)
`Connect C[c] to the mitotic children
`of 17s., i = 1, . . . , n by edges of
`weight = weight of net represented
`by h;
`
`end
`
`end
`Represent each cluster by a vertex and each con-
`nection between clusters by an edge in G;
`Output G;
`
`procedure_crossing_edges:
`This procedure identifies a subset of edges of a
`biconnected component C, with which an edge
`between two vertices a and b in C can intersect at
`minimum cost such that the resulting graph is
`planar.
`procedure crossing_edges(C,a,b);
`begin
`
`Replace all triconnected components C3; of C
`except those that contain a and b by a virtual
`edge, whose endpoints are the separation pair
`(p;,q;) of the component and weight is the
`minimum cut in C3; from pi to gi;
`Replace parallel edges by a single edge whose
`weight is their sum and edges incident at vertices
`of degree 2 by a single edge whose weight is the
`minimum of the two. Do this recursively until
`the resulting graph C' is triconnected;
`Identify the set of edges of minimum cost that
`need to be intersected in a plane embedding of
`C'. If any of these edges are virtual edges, recur-
`sively identify the original edges of C that were
`combined to form it;
`Output the set of edges identified;
`end crossing_edges;
`
`Paper 8.3
`121
`
`XILINX, EX. 1010
`Page 8 of 8

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket