The present invention relates generally to the design of Integrated Circuits (ICs), and more particularly to bus interconnectivity of a detailed macro-block pin assignment in a hierarchical IC chip.
Macro-block pin-assignment is an integral step in any Integrated Circuit (IC) physical design and Computer-Aided Design (CAD) tools are often required to handle the design complexity. IC chips include many different components that must have electrical connections there between in order to interoperate. Typically, the chip real estate is divided into different regions with each particular component being assigned a particular region of the “floorplan”.
A technique for establishing pin assignments is to assign the pins manually during floorplanning Routing tools then determine the interconnection routes to connect the respective pins. After determining the routes, a timing analysis is performed to determine if the interconnection routes meet timing constraints. Unfortunately, the timing analysis generally indicates that many of the interconnection routes fail to meet a timing constraint. A consequence of a timing violation is that the initial pin assignments need to be changed. However, once the pin assignments are changed, the routing and timing must be re-performed. Often, it takes many iterations of this cycle before finding satisfactory pin assignments. A consequence of this iteration is that the chip release date is delayed. In today competitive marketplace, time to market is important to the success or failure of a chip.
As chips become more complex and compact, the consequences of pin re-assignments becomes more severe. For example, high performance microprocessors have a substantial amount of custom layout in order to achieve the highest possible performance in the smallest die size. However, re-assigning pins lead to route changes. A possible consequence of routing changes is a need to change the custom layout. Altering a custom layout is very undesirable due to the time, difficulty, and expense. Moreover, changes to a single route can ripple to hundreds of nearby routes, especially if the track routing is dense. Because high performance custom layouts often employ dense routing, the chance of routing changes due to a pin-reassignment is quite high. Because of these and potentially other drawbacks, this approach does not provide wholly satisfactory results. Consequently, an improved method and system for determining the pin assignments for interconnections during an integrated circuit design process is desired.
The enormous complexity of high-performance microprocessor designs in ultra-deep sub-micron technologies and the short time-to-market for the Application Specific Integrated Circuits (ASIC) chips has lead to the adoption and evolution of Computer Aided Design (CAD) tools. The growing size of VLSI designs has also driven the need for hierarchical design methodologies to reduce the overall design turn-around time.
Application Specific Integrated Circuits (ASIC) chips are designed for specific applications or functions such as encoding and decoding digital data, embedded functions within a factory automation system and the like. Generally, ASIC designs adopt a standard cell design methodology wherein the circuit layout for primitive logic operations (AND, OR, NAND, XOR, and the like) are available as a standard cell library that is then used to implement the chip logic function.
Each phase in the design flow exhibits a flavor of constrained optimization problem, as shown in a typical hierarchical IC design flow (100 to 108, in
Pin-assignment is an integral step in any hierarchical VLSI chip design planning phase and the growing design complexity drives the need for automated solutions that produce good quality of results. However, known pin-assignment algorithms have limitations in that they either use greedy heuristics, or consider nets (pin-connections) sequentially leading to inferior solutions, or create an abstraction for continuous global optimization that ignores detailed pin-placement constraints such as pin-spacing, layer restriction and alignment. Additionally, current methods of macro-block pin assignment require a good deal of manual intervention by a physical design engineer.
Prior literature on pin-assignment relates to different design styles ranging from printed circuit boards to recent multi-million gate integrated circuits (IC) layouts. Broadly, the existing macro-block pin-assignment algorithms can be classified as: i) pin placement on the macros to minimize the estimated top (chip) level wire length, and ii) pin-assignment coupled with global routing on a net-by-net basis. The term net refers to a set of pins (belonging to different standard cells) that are to be connected together.
Broadly, the existing macro-block pin-assignment algorithms can be classified as: i) pin placement on the macros to minimize the estimated top (chip) level wire length, and ii) pin-assignment coupled with global routing on a net-by-net basis. The term net refers to a set of pins (belonging to different cells) that are to be interconnected. More recently, simultaneous pin-assignment and global routing for all two-pin nets using network flow formulation, and pin-placement integrated with analytical cell placement using quadratic programming methods have also been described. However, the known pin-assignment algorithms have limitations in that they use either greedy heuristics, or consider nets (pin-connections) sequentially leading to inferior solutions, or create an abstraction for continuous global optimization that ignores detailed pin-placement constraints such as pin-spacing, layer restriction and alignment. Additionally, current methods of macro-block pin-assignment require a good deal of manual intervention by a physical design engineer.
The accompanying drawings, which are incorporated in and which constitute part of the specification, illustrate the presently preferred embodiments of the invention which, together with the general description given above and the detailed description of the preferred embodiments given below serve to explain the principles of the invention, wherein like reference numerals denote like elements and parts, in which:
In accordance with one aspect of the present invention, a method is provided to assign pin in a VLSI circuit. An embodiment of the invention automatically places a macro-block pin assignment using Constraint Programming (CP) techniques, placing the pins on the periphery of the macro-block while honoring bus-ordering and pin-spacing constraints while considering all nets concurrently.
In another aspect, the CP method solves problems associated with natural formulations in terms of known constraints. CP further enables constraints to be added or removed without recurring to employing heuristics solutions, ignoring modeling the detailed and discrete constraints required to achieve an optimal pin-assignment.
In another aspect, the macro-block pin-assignment is performed during the chip floor-planning phase. In a hierarchical design approach, the partitioned macros have pins which are the logical interface between the internal (macro) level cells and the top (chip) level blocks or cells. Assigning the pin locations, preferably along the periphery of the macros, minimizes the interconnect length subject to physical technology rules, such as spacing, alignment to a grid, and the like.
The present invention thus satisfies all the discrete constraints, minimizing the task of placing the pins. It further satisfies the macro-block boundaries and places layer constraints on the assigned pins by determining which pins are to be near another. This is achieved by avoiding an incremental assignment of pins since all the assignments are done globally (i.e., concurrently), thus avoiding having to create added pins, and limiting the assignment to only placing pins.
In another aspect, the invention provides a bus-interconnectivity aware method for assigning macro-block pins in a hierarchical integrated circuit (IC) floorplan including: a) accessing information related to the floorplan of the IC chip; b) grouping macro-block pins into buses based on connectivity; c) formulating a constraint programming (CP) model for macro-block pin-assignment corresponding to the floorplan, and optimizing the formulation by solving the CP model; d) minimizing length of interconnects linking the macro-blocks; e) placing the macro-block pins at a periphery of selected macro-blocks maintaining bus-ordering and pin-spacing constraints of all nets forming the floorplan; and f) reducing wire crossing by computing the macro-pins relative order within each bus-pin group.
The present invention will now be described in greater detail by way of the following discussion with reference to the drawings that accompany the present application. It is observed that the drawings of the present application are provided for illustrative purposes only.
The IC design flow presents several feasibility and optimization problems that demand efficient and effective algorithms to be developed in the CAD tools.
Described hereinafter is an automated macro-block pin-assignment method using constraint programming (CP) techniques taking advantage of the flexibility offered by CP, whereby constraints may be easily added or removed, an important advantage in a domain where different problems (stemming from different design methodologies, different hardware technologies, different levels in the design hierarchy, and the like) are similar but not identical to each other. Compared to other existing pin-assignment algorithms, the proposed technique provides the capability of directly modeling physical constraints (pin-spacing, layer restriction, alignment, bus-ordering, and the like) when performing a global optimization. However, the prior art has not focused on applying CP techniques to the IC physical design problems. Described hereinafter are the techniques that have been advantageously implemented in various embodiments of the invention.
Referring to
The CP formulation for pin-assignment is solved using a stochastic Constraint Satisfaction Program (CSP) solver (
The CP solver (
The method described in an embodiment of the present invention is based on Stocs—a stochastic CSP solver (
Described hereinafter is the pin-assignment formulation and modeling in ConsPa (
In an embodiment, macro-blocks reused multiple times in a given design are considered. The design may contain several copies, referred to as ‘instances’ of a macro. Moreover, they may be rotated or mirrored as well. An important aspect of the present invention is that pin-assignment be preferably done per macro-block and not per instance, so that all copies of a macro-block share the same (relative) placement of pins. This may render the problem more difficult to solve because different instances of the same macro-block may benefit from different pin-assignments, but only one assignment is allowed. Thus, a compromise must be struck.
The modeling of the pin locations in the ConsPa method (
In the ConsPa pin-assignment formulation, macro-block pin locations are represented by variables (
In another embodiment, the modeling of the objective function for optimization is described (
For every macro-block m, a function Relm: {0, . . . , Perimeter (m)−1}→R2 is defined that converts a one-dimensional pin location on m's perimeter to the corresponding two-dimensional coordinate pair relative to the macro's origin. This function can be readily computed by first determining on which edge the pin location falls (based on the macro's dimensions), then the relative position on that edge, and finally the relative position with respect to the macro's origin.
For each macro-block instance iεI, a function Absi: R2→R2 is determined that transforms a coordinate pair relative to the macro's origin to absolute coordinates. This function is implemented by considering the placement, rotation and mirroring of the instance i, and converting the coordinates accordingly. Finally, given a pin instance (i, p) and a pin location xεDp, the corresponding absolute two-dimensional coordinates are given by Absi (RelMacro(i)(x)).
The objective function is therefore
ΣnεNHpwl({Absi(RelMacro(i)(νp))|(i,p)εn}, where i.
Hpwl(.) is the half perimeter wire length function defined by
Hpwl({(x1,y1), . . . ,(xk,yk)})=½(max{x1, . . . ,xk}−min{x1, . . . ,xk}+max{y1, . . . ,yk}−min{y1, . . . ,yk}). i.
For a given point in the search space, i.e., an assignment of values to all variables, each constraint must be assigned a non-negative cost which (intuitively) reflects the degree to which the constraint is violated by the assignment. In an embodiment of the invention, a natural cost function of total amount of overlap is used, defined as the sum over all pin locations in which pins are placed of the number of pins overlapping in that location minus one (i.e., a location containing one pin contributes 0 to the cost; a location containing two pins contributes 1; a location containing three pins contributes 2, and the like).
The described pin-assignment formulation in ConsPa (
In an embodiment of the invention, a bus-driven pin-assignment is described. Due to the complexity of modern VLSI circuits there are typically several hierarchical macro-blocks with vectored data signals in the form of busses interconnecting them, wherein “bus” is a collection of interconnects between blocks that operate or apply a function on a vector of “data bits”, e.g. 128 bit, 256 bit, and the like. This aspect of the design presents a requirement to plan the macro-block pin placement such that it enables the bus-style interconnects routing between such macros. A random assignment of locations for pins within a bus-style interconnects usually leads to timing and routing closure problems in the chip. The present invention preferably places a bus-driven pin-assignment along with the random signal pins on macro-blocks of the circuit, while optimizing the interconnect length between the macros.
Described hereinafter is the bus-driven pin-assignment formulation and modeling using Constraint Programming technique (
Described hereinafter is a set of pins of a given macro-block to be partitioned into buses (i.e. bus-identification
More specifically, pin grouping algorithm (
The constraint program modeling for the bus-driven pin-assignment (
“Non-overlap constraints” (
ΣxεN
As previously mentioned, non-overlapping constraints must take the bus sizes into account. Specifically, given any two buses b1 and b2 (belonging to the same macro) they must satisfy First (b1)>Last (b2) V Last (b1)≦First (b2), where First (b) and Last (b) are the two endpoints of the bus b calculated based on the value assigned to νb and b's size. (Recall that bus locations are modeled one-dimensionally.) However, such a simple condition may not be valid for buses wrapping through the macro-block's origin, in which case a more elaborate condition is required. To sidestep this issue, whenever such a situation arises, one may advantageously split the bus in two at the origin.
The algorithm used for computing the violation cost of the no-overlap constraint (
Let x′ be the previous point and x″ be the current point. Then ns−ne is the number of buses passing through the interval between x′ and x″. Thus, add max {0, l(ns−ne−1)} to the violation cost, where l is the length of the interval between x′ and x″. The running time of this algorithm is linear in the number of buses, except for the sorting step, which takes O(n log n) time.
Hereinafter, the post-processing steps (
Model Improvements
In one embodiment, the above model can be improved by avoiding bus-pins wrapping around the corners of the macro-block boundary. Some of the buses are occasionally placed close to the corners of their macros, wrapping around the corner due to the fact that the objective function only considered the center of the bus without caring whether or not the entire bus was on the same edge as the center point. However, such a placement usually entails a greater cost (once the individual pins are laid out) than a placement wherein the entire bus is located on the same edge. To alleviate the problem, one may advantageously use a modified version of the cost function which calculates for each bus net the average of two HPWL values, one for each of the two ends of the connected buses. In this manner, the cost of wrapping-around a corner tends to be higher than not doing so, and the solver gravitates to solutions in which buses do not wrap around corners.
The present invention can be realized in hardware, software, or a combination of hardware and software. The present invention can be realized in a centralized fashion in one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system—or other apparatus adapted for carrying out the methods described herein—is suitable. A combination of hardware and software can be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out the methods.
Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language, code or notation and/or reproduction in a different material form.
While the present invention has been particularly shown and described with respect to preferred embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in forms and details may be made without departing from the spirit and scope of the present invention. It is therefore intended that the present invention not be limited to the exact forms and details described and illustrated, but fall within the scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4577276 | Dunlop et al. | Mar 1986 | A |
4908772 | Chi | Mar 1990 | A |
5360767 | Narayanan et al. | Nov 1994 | A |
5818729 | Wang et al. | Oct 1998 | A |
6298468 | Zhen | Oct 2001 | B1 |
6317864 | Kikuchi et al. | Nov 2001 | B1 |
6389379 | Lin et al. | May 2002 | B1 |
6477688 | Wallace | Nov 2002 | B1 |
6519749 | Chao et al. | Feb 2003 | B1 |
6584608 | Kumada et al. | Jun 2003 | B1 |
6609237 | Hamawaki et al. | Aug 2003 | B1 |
6865726 | Igusa et al. | Mar 2005 | B1 |
7013438 | Saldanha et al. | Mar 2006 | B1 |
7013450 | Teig et al. | Mar 2006 | B2 |
7062743 | Kahng et al. | Jun 2006 | B2 |
7155694 | Eichenseer et al. | Dec 2006 | B2 |
7269815 | Wein et al. | Sep 2007 | B2 |
7418683 | Sonnard et al. | Aug 2008 | B1 |
7533360 | Ren et al. | May 2009 | B1 |
7577933 | Wu et al. | Aug 2009 | B1 |
7603641 | Lin | Oct 2009 | B2 |
20010049814 | Matsumoto et al. | Dec 2001 | A1 |
20030079192 | Cheong et al. | Apr 2003 | A1 |
20050076319 | Chow et al. | Apr 2005 | A1 |
20050138588 | Frenkil | Jun 2005 | A1 |
20050183054 | Wein et al. | Aug 2005 | A1 |
20050268258 | Decker | Dec 2005 | A1 |
20060031803 | Eichenseer et al. | Feb 2006 | A1 |
20060053396 | Eng | Mar 2006 | A1 |
20060112362 | Kitano | May 2006 | A1 |
20080046854 | Tang | Feb 2008 | A1 |
20090282379 | Singh et al. | Nov 2009 | A1 |
20100115487 | Tripathi et al. | May 2010 | A1 |
20100257498 | Alpert et al. | Oct 2010 | A1 |
20100270681 | Bird et al. | Oct 2010 | A1 |
20110093828 | Lee et al. | Apr 2011 | A1 |
Number | Date | Country | |
---|---|---|---|
20120036491 A1 | Feb 2012 | US |