A method and system for managing metal resources in the physical design of integrated circuits is presented. percent metal usage is allocated for intra-block routing use by each functional block. power and clock grids are established. block designers coordinate the locations of signal ports of the blocks so as to avoid blocking any inter-block signals, areas of metal are then reserved for ports and intra-block signals. The inter-block signals are then pre-routed, avoiding the power grid, clock grid, and reserved intra-block routing metal. If any problem nets emerge from the pre-routing, better port locations and sub-block placement within the respective blocks are determined and the process is repeated.
|
3. An integrated circuit, comprising:
a silicon layer implementing a plurality of functional blocks; a plurality of metal layers layered over said silicon layer, each layer comprising a plurality of metal tracks, wherein: portions of a first set of said plurality of tracks are allocated to and comprise over-the-block intra-block routes; portions of said first set of said plurality of tracks are allocated to and comprise over-the-block inter-block routes; said portions of said first set of said plurality of tracks allocated to said over-the-block intra-block routes being different between at least two of said plurality of functional blocks. 1. A method for managing metal resources during over-the-block routing of an integrated circuit, said integrated circuit comprising a silicon layer partitioned into and implementing a plurality of functional blocks, and a plurality of metal layers layered over said silicon layer, said method comprising the steps of:
allocating a percent usage of over-the-block metal over each of said functional blocks in each of said metal layers for intra-block routing, said percent usage allocated for intra-block routing being different between at least two of said plurality of functional blocks; reserving areas of said over-the-block metal on each of said metal layers for routing a power grid; reserving areas of said over-the-block metal on each of said metal layers for routing a clock grid; coordinating, among said plurality of functional blocks, locations of signal ports of said functional blocks so as to avoid blocking any inter-block signals; reserving areas of said over-the-block metal on each of said metal layers for said signal ports and for routing intra-block signals; prerouting said inter-block signals, allowing inter-block routing in said over-the-block metal on each of said metal layers but avoiding said reserved areas for said power grid, said clock grid, said signal ports and said intra-block signals.
2. The method of
determining better port locations and internal sub-block placement based on results of said pre-routing step if said pre-routing step results in an unroutable net or a net with unsatisfactory timing.
4. An integrated circuit in accordance with
a second set of said plurality of tracks comprising a power grid.
5. An integrated circuit in accordance with
a third set of said plurality of tracks comprising a clock grid.
6. An integrated circuit in accordance with
portions of said third set of said plurality of tracks comprise over-the-block intra-block routes.
7. An integrated circuit in accordance with
portions of said third set of said plurality of tracks comprise over-the-block inter-block routes.
8. An integrated circuit in accordance with
portions of said third set of said plurality of tracks comprise over-the-block inter-block routes.
|
The present invention pertains generally to interconnect routing in integrated circuit design, and more particularly to a method for managing the metal resources used in over-the-block routing in integrated circuits.
Integrated circuits comprise a plurality of electronic components that function together to implement a higher-level function. ICs are formed by implanting a pattern of transistors into a silicon wafer which are then connected to each other by layering multiple layers of metal materials, interleaved between dielectric material, over the transistors. The fabrication process entails the development of a schematic diagram that defines the circuits to be implemented. A chip layout is generated from the schematic. The chip layout, also referred to as the artwork, comprises a set of planar geometric shapes over several layers that implement the circuitry defined by the schematic. A mask is then generated for each layer based on the chip layout. Each metal is then successively manufactured over the silicon wafer according to the layer's associated mask using a photolithographical technique.
The process of converting the specifications of an electrical circuit schematic into the layout is called the physical design process. CAD tools are extensively used during all stages of the physical design process. The physical design process is accomplished in several stages including partitioning, floorplanning, and routing.
During the partitioning stage, the overall integrated circuit is partitioned into a set of functional subcircuits called blocks. The block partitioning process considers many factors including the number and size of the blocks, and number of interconnections between the blocks. The output of partitioning is a set of blocks along with a set of interconnections required between blocks, referred to herein as a netlist.
During the floorplanning stage, a floorplan is developed defining the placement and rectangular shape of each block. The goal of the floorplanning stage is to select the optimal layout for each block, as well as for the entire chip.
Once an acceptable floorplan is developed, the interconnections between the blocks (as defined by the netlist) are routed. The space not occupied by the blocks is partitioned into rectangular regions referred to as channels. Interconnects are preferably routed within the designated channels, but may also be routed through defined feedthroughs through the blocks, or in defined over-the-block routing space.
The goal of a router is to complete all circuit connections resulting in minimal interconnect signal delay. Where possible, the router will generally attempt to route individual interconnects on a single layer; however, if this is not achievable given the topology of the netlist, an interconnect may be routed over two or even more layers. Often, interconnect routes resulting from the autorouting will be too long to meet signal delay specifications. The delay results from the inherent RC characteristics of the interconnect line.
Over the past decades, integrated circuits (ICs) of increasingly higher density have been developed to meet industry demands of higher performance and smaller packaging. The very high densities of today's integrated circuits means that more metal layers and interconnects per layer are required than ever before. The result is that the routing task has become even more complex.
Generally, the lowest level metal layers are used by local block interconnects, i.e., intra-block signals, and higher-level metal layers are used by inter-block interconnects. Each layer includes a power grid and clock distribution signals. In high density integrated circuits, all of the intra-block routing often cannot be achieved within the lowest level metal layers. Accordingly, metal in the higher layers must often be reserved for intra-block routing.
It is clear from this description that several distinct route types compete for the available metal resources in the different metal layers. In this respect, the power grid, the clock distribution system, the intra-block routing, and the global inter-block routing all compete for metal on some, if not all, of the metal layers. Therefore, unless metal tracks in each of the higher-level metal layers are specifically set aside on each of those layers for each of the respective routing types, the auto-router may not be able to find a complete or satisfactory routing solution.
In the prior art, a number of metal tracks in each layer are pre-allocated for use by each of the different route types. Once a track is pre-allocated for use by a particular route type, its use must remain for that purpose. Block designers must design the blocks to interface with the pre-assigned track assignment, which therefore often limits the different combinations of placement of signal ports and sub-blocks within the block. Accordingly, optimal placement of sub-blocks often cannot be achieved. In addition, since the track assignments are immutable, blocks that require more upper-layer intra-block interconnects often must occupy more chip space just to be able to connect to pre-allocated intra-block tracks on those layers. Similarly, blocks that require less upper-layer intra-block interconnects often do not fully utilized pre-allocated intra-block tracks that pass over them. Accordingly, it is clear that the density of the chip is directly affected by the efficiency of use of the upper-level metal layers.
It is therefore an object of the invention to provide a metal management methodology that makes more efficient use of the available metal in each layer.
The present invention is a novel method and system for managing metal resources during over-the-block routing of an integrated circuit.
The metal management methodology enables advantages in efficiency over the prior art. The communication between block designers as to the block routing requirements facilitates better placement of sub-blocks and signal ports. This results in more efficient use of over-the-block routing metal, as well as facilitates the ability to create higher density blocks. In addition, the allowance of multi-use tracks in over-the-block routing results in less unused metal and therefore also allows higher density blocks.
The invention will be better understood from a reading of the following detailed description taken in conjunction with the drawing in which like reference designators are used to designate like elements, and in which:
A novel method and system for managing metal resources during over-the-block routing of an integrated circuit is described in detail hereinafter.
As described previously, the lowest level metal layers are used by local block interconnects, i.e., intra-block signals, and higher-level metal layers are used by inter-block interconnects. Each layer includes a power grid and clock distribution signals. In the illustrated example, metal layers M1-M3 are used exclusively for intra-block routing, while layers M4-M6 are used mainly for inter-block routing and any intra-block routing that could not be achieved at the lower layers.
The layout of the power grid is established 104 in the M5 and M6 layers to provide the basic power supply infrastructure from the flip-chip solder bumps (not shown) which connect to the M6 power grid to the block owners M4 grid.
After establishing the layout of the power grid, the layout of the clock grid is then established 106 (FIG. 3). The establishment of the clock grid prior to assigning metal to use by blocks or for inter-block routing enables more efficient use of metal to lower clock skew and increase performance.
Once the power and clock grids are set up, the block designers then plan 108 the locations of signal ports in coordination with other block designers so as to avoid blocking any inter-block signals. The communication with other block designers allows planning of the respective blocks taking into consideration possible routing conflicts with other blocks. This early planning allows better placement of signal ports in order to avoid inter-block signal routing conflicts due to insufficient routing resources.
The block designers determine actual block port locations and areas of any M4, M5, and M6 metal required for intra-block routing. The port locations and associated intra-block metal areas are reserved 110 for the blocks.
Once the block port locations and areas reserved for any M4, M5, and M6 metal required for intra-block routing is established, the global inter-block signals are then pre-routed 112 (
During the pre-route process, if any nets are encountered 114 that are problematic in terms of timing or inability to route (due to signal congestion in certain areas), the signal port locations and placement of sub-blocks within the blocks are altered 116, taking into account the existing pre-routes, to achieve better signal performance and/or a simpler routing solution. The pre-route step and port and/or sub-block relocation step often results in the identification of changes that can be made that an automated router tool might not be able to identify.
With the changed signal port locations and sub-block placement within the blocks, the process is repeated until no unroutable inter-block interconnects are encountered and all nets result in satisfactory performance.
It will be appreciated by the above detailed description that the present invention enables advantages in efficiency over the prior art. The communication between block designers as to the block routing requirements facilitates better placement of sub-blocks and signal ports. This results in more efficient use of over-the-block routing metal, as well as facilitates the ability to create higher density blocks. In addition, the allowance of multi-use tracks in over-the-block routing results in less unused metal and therefore also allows higher density blocks.
Although the invention has been described in terms of the illustrative embodiments, it will be appreciated by those skilled in the art that various changes and modifications may be made to the illustrative embodiments without departing from the spirit or scope of the invention. It is intended that the scope of the invention not be limited in any way to the illustrative embodiment shown and described but that the invention be limited only by the claims appended hereto.
Block, Adam Stuart, Witte, Jeffrey P, Josephson, Don D
Patent | Priority | Assignee | Title |
10103719, | Sep 16 2015 | Nvidia Corporation | Integrated voltage regulator with in-built process, temperature and aging compensation |
10200022, | Sep 16 2015 | Nvidia Corporation | Integrated voltage regulator with in-built process, temperature and aging compensation |
10386916, | Dec 27 2012 | Nvidia Corporation | Supply-voltage control for device power management |
11645533, | Apr 09 2019 | NVIDIA CORP | IR drop prediction with maximum convolutional neural network |
6532580, | Feb 18 2000 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | In-place method for inserting repeater buffers in an integrated circuit |
6598216, | Aug 08 2001 | GOOGLE LLC | Method for enhancing a power bus in I/O regions of an ASIC device |
6823499, | Sep 18 2001 | Intel Corporation | Method for designing application specific integrated circuit structure |
6909127, | Jun 27 2001 | Intel Corporation | Low loss interconnect structure for use in microelectronic circuits |
6910199, | Apr 23 2001 | TELAIRITY SEMICONDUCTOR, INC | Circuit group design methodologies |
7107200, | Oct 03 2003 | Oracle America, Inc | Method and apparatus for predicting clock skew for incomplete integrated circuit design |
7234123, | Apr 23 2001 | MEADLOCK, JAMES W, MEAD | Circuit group design methodologies |
7352059, | Jun 27 2001 | Intel Corporation | Low loss interconnect structure for use in microelectronic circuits |
7761831, | Dec 29 2005 | MOSAID TECHNOLOGIES INC | ASIC design using clock and power grid standard cell |
7966598, | Aug 29 2008 | Siemens Industry Software Inc | Top level hierarchy wiring via 1×N compiler |
7979830, | Jul 03 2007 | Renesas Electronics Corporation | Layout design method for a semiconductor integrated circuit |
8032849, | Jul 28 2005 | International Business Machines Corporation | Integrated circuit chip with modular design |
8049340, | Mar 22 2006 | Bell Semiconductor, LLC | Device for avoiding parasitic capacitance in an integrated circuit package |
8288269, | Mar 22 2006 | Bell Semiconductor, LLC | Methods for avoiding parasitic capacitance in an integrated circuit package |
8402418, | Dec 31 2009 | Nvidia Corporation | System and process for automatic clock routing in an application specific integrated circuit |
8769463, | Dec 31 2009 | Nvidia Corporation | System and process for automatic clock routing in an application specific integrated circuit |
9419589, | Aug 16 2013 | Apple Inc. | Power source for clock distribution network |
9602083, | Jul 03 2013 | Nvidia Corporation | Clock generation circuit that tracks critical path across process, voltage and temperature variation |
9766649, | Jul 22 2013 | Nvidia Corporation | Closed loop dynamic voltage and frequency scaling |
9912322, | Jul 03 2013 | Nvidia Corporation | Clock generation circuit that tracks critical path across process, voltage and temperature variation |
9939883, | Dec 27 2012 | Nvidia Corporation | Supply-voltage control for device power management |
Patent | Priority | Assignee | Title |
5841664, | Mar 12 1996 | Synopsys, Inc | Method for optimizing track assignment in a grid-based channel router |
5859999, | Oct 03 1996 | INSTITUTE FOR THE DEVELOPMENT OF EMERGING | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
5860017, | Jun 28 1996 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
5984510, | Nov 01 1996 | Apple Inc | Automatic synthesis of standard cell layouts |
6014507, | Aug 14 1996 | NEC Corporation | Integrated circuit routes designing method and apparatus |
6230304, | Dec 24 1997 | MAGMA DESIGN AUTOMATION, INC | Method of designing a constraint-driven integrated circuit layout |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 18 2000 | Hewlett-Packard Company | (assignment on the face of the patent) | / | |||
May 24 2000 | BLOCK, ADAM STUART | Hewlett-Packard Company | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010905 | /0143 | |
May 24 2000 | WITTE, JEFFREY P | Hewlett-Packard Company | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010905 | /0143 | |
May 26 2000 | JOSEPHSON, DON D | Hewlett-Packard Company | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010905 | /0143 | |
Jan 31 2003 | Hewlett-Packard Company | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 026945 | /0699 |
Date | Maintenance Fee Events |
Nov 28 2005 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Nov 30 2009 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Oct 30 2013 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
May 28 2005 | 4 years fee payment window open |
Nov 28 2005 | 6 months grace period start (w surcharge) |
May 28 2006 | patent expiry (for year 4) |
May 28 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 28 2009 | 8 years fee payment window open |
Nov 28 2009 | 6 months grace period start (w surcharge) |
May 28 2010 | patent expiry (for year 8) |
May 28 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 28 2013 | 12 years fee payment window open |
Nov 28 2013 | 6 months grace period start (w surcharge) |
May 28 2014 | patent expiry (for year 12) |
May 28 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |