The invention relates to circuit fabrication, and more particularly to a system and method to power route hierarchical designs that employ macro reuse.
The repetitive use of the same subset of logic is a technique that can improve the efficiency of the physical design process in terms of area and the effort required to layout a design. The biggest advantage of the repetitive use (re-use) of the same subset of logic offers the capability to have each copy of this logic implemented with identical placement, wiring and timing. This result can be achieved on “n” number of random logic macros (RLM) at the reduced expense of placing, routing and timing only one copy of the design. For example, using this approach, only one of each type of RLM needs to have the internal logic placed, routed and timed. Traditionally, though, the cost of RLM re-use is paid in additional area because of limitations in power routing these pseudo-regular structures.
By way of illustration, two main approaches have been historically employed to generate a grid to power these logic structures: (i) ring structures and (ii) on-grid wiring. In the ring approach, traditional power routing of macros employs ring structures that surround each object in the design. These ring structures typically consist of power and ground metal that completely surrounds the logic within the design, which thus ensures alignment with the grid regardless of pitch. Such techniques employ mandatory unused area adjacent to the ring structures, which are referred to as a “jog space” or “jog zone”. The jog space is necessary for chip-level power routing to stitch the core into the parent-level power grid, as well as to allow room for the power router at the parent-level to avoid collisions with power busses of opposite polarity that are internal to the macro. The ring structures and required space, however, do not scale with the size of the macro and thus, occupies a relatively larger area, as the macro becomes smaller.
In an example of the on-grid wiring approach, power patterns that are generated using a traditional top-down power routing do not recognize the logical similarities in underlying structures. For example, a m2 power route may cross instance1 of RLM “X” six channels from its left edge. However, a m2 power route may cross instance2 of the same RLM only five channels from the left edge. When a composite view of the m2 blockage for RLM “X” is generated, the net result is that channels five and six are blocked and therefore not available for signal wiring since only common non-blocked tracks can be used by the signal router. This problem occurs on each level of metal over the RLM where it is necessary to create both power and signal routes.
For a non-ringed design, the traditional approach is to place each instance of an RLM such that its relationship to each level of metal in the parents' power grid is identical to all other similar RLMs. To avoid excessive blockage creation in the composite blockage map, this rule must be followed for all instances. One way to facilitate this constraint is by making the x-dimensions and the y-dimensions a common multiple of the vertical and horizontal power patterns, respectively. This tends to force tradeoffs in terms of achieving maximum area utilization due to the relatively coarse nature of the power grid versus maintaining the flexibility to accommodate logic changes that grow the RLM.
For completeness, an alternative to forcing the RLM dimensions to be multiples of the power patterns is to separate the RLMs far enough apart to allow placement on similar parent-level power patterns. This approach avoids dissimilar blockage patterns from being created for each instantiation. Although this approach would enable parent-level dust logic placement between non-abutting RLM's, the practice has been to not use this disjoint and often isolated area for other logic placement.
In a first aspect of the invention, a method comprises routing a power pattern from a reusable macro of a lower level upwards towards an upper level, n+1. The method further comprises extending the power pattern to a power structure on the upper level, n+1. The power structure may be at least a power grid. The method further comprises copying the power pattern for similar reusable macros of the reusable macro, thereby eliminating a need to route each individual instantiation of the similar reusable macros independently.
In another aspect of the invention, the method comprises providing a first macro and design layout and power routing the first macro. The method further comprises inserting a power structure at an upper level of the design and extending the routing of the first macro to the power structure.
In another aspect of the invention, a computer program product comprising a computer usable medium having readable program code embodied in the medium is provided. The computer program product includes at least one component to:
provide a design layout;
route a power pattern from a reusable macro of a lower level upwards towards an upper level, n+1, of the design layout;
extend the power pattern to a power structure on the upper level, n+1, the power structure including at least a power grid; and
copy the power pattern for similar reusable macros of the reusable macro, thereby eliminating a need to route each individual instantiation of the similar reusable macros independently.
The invention relates to method of fabricating a circuit, and more particularly to a system and method to power route hierarchical designs that employ macro reuse. By using the method of the invention, routing of random logic macros (RLM) that are used multiple times in a hierarchical VLSI (very large scale integration) design can be achieved without having to route each individual instantiation independently. In embodiments of the invention, once an RLM has been routed and timed it can be copied and reused in a physical design, as is, and does not require any wiring changes. The method of the invention conserves valuable area, improves wireability, and reduces the time required for routing and timing each RLM instance. In this manner, the invention provides improved constraint resolution. Furthermore, by implementing the invention, each RLM possesses the same timing and power characteristics, which improves overall circuit performance.
As discussed in further detail below, a detailed signal routing within each repeated RLM must be identical to all other RLMs of the same type (because of critical timing requirements). For this to happen, each instance of the same RLM must contain the same power routes (patterns) and other blockage information. Thus, in accordance with the invention, as discussed in more detail below, a single wiring solution is created that is used for all instances of the same RLM thus ensuring identical parasitic values and hence timing results. This single blockage map can be seen by a detailed signal router in order to fabricate the circuit.
A hard macro refers to a macro that is already constructed and which cannot be manipulated. Accordingly the hard macro has logic constraint elements, which are fixed with respect to each other. In implementations, the invention will take into account these hard macros, to the extent that it can move them to appropriate locations which should not interfere with other wiring designs.
As described in more detail with reference to
More specifically, at step 300, the system and method of the invention internally power routes each unique RLM, starting at a lower level, “n”. By way of example, shapes are generated with a standard power routing tool that follows wiring directives contained in a control file. (See,
At step 310, the power routes of each of the RLMs are extended to an outline of the upper level design. That is, the power routes (patterns) within the RLMs are extended to the boundaries of the top-level object, n+1 (e.g., “CORE_TOP”). Thus, the power routes in each of these RLMs are propagated outward to form final top-level power routes. (See,
In embodiments, each hard (core) macro may also have a ring structure, partial ring structure or other power structure, in which case, the power routes for appropriate RLMs may be routed to the structure of the hard (core) macro and, thereafter, to a higher level object at level n+1. (See,
At step 315, the power routes are snapped back to terminate on the ring structure, partial ring structure or other structure, thus resulting in legalization. More specifically, this clean-up step retracts the end of the metal line (power route) to the ring structure, partial ring structure or other structure, leaving a jog space. Thus, in the example of using a power ring structure or partial power ring structure, this step preserves the jog space and eliminates any unnecessary extensions.
At step 320, a pattern is generated to back fill in any white space (see,
In embodiments, the shapes of
In implementations, because of the RLM re-use employed in a specific design, these power routes will appear in all other similar RLMs. For example, using the illustrative and non-limiting example of
The table below summarizes the reduction in area of the sample design that was realized through the use of the methodology of the present invention. As shown, there was a reduction of 8% realized with the present invention.
Thus, as should now be understood, the invention provides a methodology for power routing hierarchical designs that employ macro reuse and allows better area utilization than traditional techniques. The invention accomplishes this by eliminating the need for adding power rings to hierarchical objects within a design. For macros that are reused, this approach also eliminates the need to place all instances on multiples of the power pattern periodicities to prevent composite blockage from causing wiring congestion. That is, in embodiments, by implementing a bottom-up approach to power pattern routing, the invention is capable of providing a power route which avoids blockages from upper level patterns without manipulation of the power grid, e.g., without having to make the x-dimensions and the y-dimensions a common multiple of the vertical and horizontal power patterns, respectively. The approach of the invention could extend to densely populated chip-level designs that employ extensive hierarchy and logic reuse.
In any event, the computing device 14 can comprise any general purpose computing article of manufacture capable of executing computer program code installed thereon (e.g., a personal computer, server, handheld device, etc.). However, it is understood that the computing device 14 is only representative of various possible equivalent computing devices that may perform the processes described herein. To this extent, in other embodiments, the functionality provided by computing device 14 can be implemented by a computing article of manufacture that includes any combination of general and/or specific purpose hardware and/or computer program code. In each embodiment, the program code and hardware can be created using standard programming and engineering techniques, respectively.
Similarly, the computer infrastructure 12 is only illustrative of various types of computer infrastructures for implementing the invention. For example, in one embodiment, the computer infrastructure 12 comprises two or more computing devices (e.g., a server cluster) that communicate over any type of communications link, such as a network, a shared memory, or the like, to perform the process described herein. Further, while performing the process described herein, one or more computing devices in the computer infrastructure 12 can communicate with one or more other computing devices external to computer infrastructure 12 using any type of communications link. In either case, the communications link can comprise any combination of various types of wired and/or wireless links; comprise any combination of one or more types of networks (e.g., the Internet, a wide area network, a local area network, a virtual private network, etc.); and/or utilize any combination of various types of transmission techniques and protocols.
The method as described above is used in the fabrication of integrated circuit chips. The resulting integrated circuit chips can be distributed by the fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form. In the latter case the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multichip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections). In any case the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product. The end product can be any product that includes integrated circuit chips, ranging from toys and other low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
While the invention has been described in terms of exemplary embodiments, those skilled in the art will recognize that the invention can be practiced with modifications and in the spirit and scope of the appended claims.