The present invention generally relates to integrated circuits, and more specifically, to a routing architecture for interconnecting various IC devices and function blocks to form a customized circuit.
ASICs (application specific integrated circuits) are widely used by electrical design engineers to include specialized circuitry in their designs using only a single chip. The term “ASIC” actually refers to a variety of integrated circuit (IC) styles that vary in degree of customizability, including standard cells, module based arrays, and gate arrays. As a general rule, the more customization that is required, the more expensive the ASIC will be and the longer the ASIC will take to fabricate and/or customize.
In forming ASICs generally, several layers will be required.
In between each metal layer is an insulating layer 115, 125, 135, 145 as shown in FIG. 1. Insulating layers are present to prevent shorts between metal layers. To interconnect the metal layers, vias 116 are formed through the insulating layers.
In forming the structure of
Thus each metal layer required to be formed generally demands at least two masking steps: one step to form vias through the insulating layer to connect to the layer below and one step to form connection wires or lines. Unfortunately, each mask step required generally entails significant time and expense.
At the active layer level, ASIC active devices are generally arranged to form an array of function blocks, also commonly referred to as cells or modules. To interconnect active devices within each function block (i.e., form “local interconnections”) a series of horizontal and vertical connection lines formed in the metal layers are utilized. As is well understood in the art, any two points can be connected using a series of horizontal and vertical connection lines. While such local interconnections can be done in one metal layer, more typically, horizontal connections are formed in a first metal layer and vertical connections are formed in a second metal layer with an insulating layer having vias formed between.
As should be understood and as used herein, “horizontal” is meant to describe all metal lines running in a first direction such that all horizontal lines lie substantially parallel to one another. “Vertical” is meant to convey all lines that run in a second direction which is substantially perpendicular to the first (horizontal) direction. Neither “horizontal” nor “vertical” is meant to convey anything more specific than relative position to one another. Moreover, as should be understood by those of skill in the art, horizontal lines and vertical lines are formed in the metal layers which are parallel to the active layer surface. “Horizontal” and “vertical” do not convey lines that are perpendicular to the active layer surface.
The local interconnections within each function block described above are typically quite dense, and often function blocks themselves must be connected together (i.e., circuit or global “routing”). Yet routing in lower metal layers over function blocks is often impractical due to the large number of obstructions formed by the local interconnections in those lower layers. Therefore, in order to form connections between the function blocks, routing has typically been done “around” the function blocks and will be discussed below with respect to
The Channeled Approach
One function block routing solution is shown in
The function blocks 160 are further formed into rows 170a, 170b, 170c. Each row is separated from one another by a “channel” region 172a, 172b. The channel region is then used for horizontal routing between function blocks to avoid routing over the function block space. For instance, referring to
Vias in the function block are connected to channel lines with connector lines that enter from above the function block, e.g., line 192, from below the function block, e.g., line 193, or double entry (connected from above and below), e.g., lines 190, 191. Lines could also simply “feed-through” the function block with no connection to a via; however, feed-throughs are often impractical because of dense local interconnections within the function blocks, limiting routing flexibility.
Gate arrays, like standard cells, have also used an approach as described above with reference to FIG. 2. That is, gate arrays have also been fabricated with channels to use for routing between function blocks. In gate arrays, however, the active layers are fixed (non-customizable), having a predefined number and arrangement of active devices in each function block. Thus, while fully-customizable standard cells can customize channel size larger or smaller, in gate arrays the channel size is fixed, further limiting routing flexibility.
In summary, the “channel” technique described with respect to
The Channel-less Approach
Another approach often used for routing interconnections among gate array function blocks and described with reference to
The Time-Space Factors
Because of limitations in the metalization process, typically only a few metal layers have been used for routing conventionally. Nonetheless, recent developments in metalization and planarization technologies, particularly in the area of chemical-mechanical polishing (CMP), have allowed more metal layers to be formed. Still, in each of these techniques described above, both channeled and channel-less, considerable customized routing (for both standard cell and gate arrays) is done in the M1 and M2 layers. Additional customized layers are also often used. Therefore, at least four masking steps (two for each metal layer) are required to form a customized circuit. Yet, as previously mentioned, each custom mask step will take considerable time and money.
Often important to an IC or electronic circuit designer is customization time. Particularly during the design stages, the engineer may want to obtain a model, or prototype, of his or her designs quickly so that the designs can be tested with other circuitry. In such circumstances, the engineer may opt for a gate array because, although not as flexible as standard cells, it will be faster to get a working chip because fewer mask steps are required for circuit customization (i.e., standard cells require formation of active devices, while gate arrays have preformed active devices and only require metalization). Nonetheless, gate arrays can still take several weeks' time or much longer to obtain because of the multiple custom mask steps that must be performed just for metalization.
Further, it is generally important to the design engineer to obtain the smallest chip possible containing the maximum amount of functionality. Using a channeled scheme, space used for channels obviously takes away real estate that could otherwise be used for more function blocks or, if removed, would reduce IC size. Of course, using the channel-less scheme described above, otherwise usable function blocks are often unusable. While some companies have gone so far as to develop techniques that require only one mask step for customization, thus reducing turn-around time, almost all of these companies have continued to use channel regions, increasing IC size and/or reducing IC functionality and routing flexibility. Clearly then, any customizable circuit that can decrease turn-around time while simultaneously maintaining a high degree of functionality and routing flexibility is desirable.
In accordance with an embodiment of the invention, a routing structure for an integrated circuit is disclosed that is compact, flexible, and permits a rapid turn-around time. More specifically, in one embodiment of the invention, such a structure includes a plurality of predesigned layers and a custom layer. The structure is formed over a plurality of function blocks, which form an array in one embodiment. The structure includes a plurality of parallel vertical tracks. In one of the plurality of predesigned layers and within the tracks are formed conductors, including: a pin, which is in communication with an input or output from an underlying function block; and a first portion of an unbroken conductive path, sometimes referred to herein as a freeway. A second portion of the unbroken conductive path is formed in at least a second predesigned layer, generally under the pin. In some embodiments, the second portion of the unbroken conductive path is formed in a second predesigned layer for some tracks and a third predesigned layer for other tracks. Hence, a pin and a long vertical route are multiplexed in each track, respectively. Nonetheless, before the custom layer is placed, the pins and freeways remain uncoupled to, and thus independent of, one another. In some embodiments, the second predesigned layer further includes long horizontal conductors formed under portions of the freeways.
When the custom layer is placed, it is placed to selectively form interconnections among pins, long vertical routes, and long horizontal routes. In this manner, devices in the underlying function blocks can be connected and function blocks themselves can be interconnected. In one embodiment, the custom layer is formed in two regions: a local routing portion—over the pins—and a global routing portion.
In some embodiments, one of the predesigned layers further includes conductors useful for clock distribution. In some embodiments, by using these clock conductors multiple independent clock domains can be easily formed.
As a result, a routing structure is formed over the function blocks in a manner that is independent of any channels and that does not render any function blocks unusable. Such a structure further provides free global routing while providing distinct local routing. Finally, because the structure allows routing both above and below pins and other parts of the routing fabric, the structure is not only compact and flexible, but permits one-mask customization.
The invention will be described with respect to particular embodiments thereof, and reference will be made to the drawings, which are not necessarily drawn to scale, and in which:
A generalized block diagram of an ASIC 400 in accordance with the invention is shown in FIG. 4. ASIC 400 includes an array 410 of function blocks 420. In one embodiment of the invention, each function block 420 is identical to the other function blocks in array 410, although other embodiments of the invention allow for variance among function blocks. Some embodiments may include one or more other regions 421, which contain other circuitry such as memory blocks or logic cores. Also shown in
As shown in
As shown in
A considerable amount of the routing internal to each function block 420 (local routing) will be fixed (non-customizable) and lower metal layers, e.g., M1 and M2, can be predesigned and/or pre-formed, using horizontal connectors in M1 and vertical connectors in M2 (or vice versa). For instance, gates such as AND gates and multiplexers can be formed by interconnected devices such as transistors. Of course, more than two metal layers can be used to form the local interconnections within each function block 420 in various embodiments of the invention.
As described, an array in accordance with the invention will be customized by the selective connection of the inputs of each function block. Thus, the customization of the array generally entails forming connections between two or more function blocks and forming connections of the function block inputs to power and ground lines. Hence, in one embodiment, customization of the array to form a user-defined circuit is done by routing, e.g., connecting an input to power, to ground, or to an input or output of another function block. In order to allow fast customization time, but maintain flexibility in routing (and thereby customization) the architecture in accordance with an embodiment of the invention allows customized routing—both global and local—in the uppermost four conducting layers for a given integrated circuit. For ease of discussion, these uppermost four conducting layers will be referred to as M5 through M8, where it is assumed that any fixed local routing occurs in layers M1-M4. It is to be understood, however, that since there could be more or fewer than eight conducting layers in a particular embodiment of the invention, use of the terms M5, M6, M7, and M8 are not intended to limit the invention, but are only for convenience of discussion.
Referring now to
Segments 604 are generally those segments towards the middle of the routing structure as illustrated, in one embodiment. Segments 604 form a connection to an input or output of the underlying function block. Accordingly, segments 604 are sometimes referred to as “pins.” As will be understood by those of skill in the art, such connections are formed using vias 603 to one or more layers below. As shown in the figure, vias 603 are formed at opposite ends of adjacent pins in one embodiment. Other embodiments, however, may use a different via placement to connect the pins to the underlying inputs and outputs of the function block.
In some embodiments, a segment 604 is further segmented into two or more segments such as 604a and 604b. Segments 604a and 604b form what is termed a “split pin.” Each segment 604a and 604b forms a connection to a respective input or output of the underlying function block. Thus, split pins are essentially two or more pins formed in a single track 602, and thereby can be used to reduce the number of tracks required.
It is often desirable to form “long” conductors when routing for carrying signals longer distances. Segments 605 and 606, formed towards the bottom and top of the illustrated embodiment of the M7 structure respectively, are used to form such long conductors. In an embodiment of the invention, segments 605 and 606 can be used for forming long vertical conductors that run for the vertical height of a function block 420. Nonetheless, because segments 605 and 606 are interrupted in tracks 602 by pins 604, one or more lower layers are also used in the formation of such long vertical conductors in one embodiment.
The unbroken conductive path formed by segments 605, 606, and 607 (or 609) is referred to herein as a “freeway”. Although as illustrated, a freeway runs the vertical height of a function block 420, other embodiments may utilize similar unbroken conductive paths of differing lengths although such paths will typically be longer than the pin. In its track 602 each pin 604 has access to its respective freeway either immediately above or below the pin 604, by way of conductors 605 or 606, allowing flexibility in routing. Thus, as shown in
As shown in
Returning to
Referring again to
Further in
Although conductors 611, 612, and 618 are shown as formed between certain tracks 602 for a particular function block 420, other embodiments may place such conductors in other locations.
The routing structure as described with respect to
The first section 620 is used for local routing. In one embodiment, local routing is performed over the area occupied by the pins 604. Local routing is typically used to interconnect gates or other devices within a single function block 420 and is, therefore, best done over the area occupied by pins 604. As shown in
As further shown in
Area 622, which is over the space occupied by segments 606, is generally used for global routing in one embodiment. Global routing is used to interconnect the various function blocks 420. In the area 622, horizontal routes are formed in layer M8 and can interconnect one freeway to another in the same function block, one freeway to another in different function blocks, or freeways to long horizontal conductors 614 by connecting to conductors 611 or 612. In addition, long horizontal conductors 614 (not shown in
Although regions that are primarily used for local routing and global routing are used in one embodiment of the invention, other embodiments may not distinguish the two.
As shown in
The entire resulting routing structure is shown in
As a result of the routing structure described with respect to
In addition, as previously described, having conductors 616 is useful for building clock trees, which can be used for forming a consistent clocking network over a large area and can aid in minimizing clock skew. Further, conductors 616 can be used for forming multiple clock domains. For instance, referring to
Finally, in some embodiments local routing can be done using macros and such routing does not interfere with global custom routing. For instance, a user can select macros from a library, where the selected library function can then be implemented with local routing.
Although embodiments of the invention have been described that use the top four conducting layers of an ASIC, e.g., M5-M8, other embodiments may place additional custom or fixed layers over an embodiment of a routing structure in accordance with the invention. Still other embodiments could rearrange the layers so that the custom layer is below, above, or between, any of the layers that form the fixed routing structure. Accordingly, while the top four layers are used in various embodiments, these layers are exemplary only and the invention is not so limited.
It should be understood that the particular embodiments described above are only illustrative of the principles of the present invention, and various modifications could be made by those skilled in the art without departing from the scope and spirit of the invention. Thus, the scope of the present invention is limited only by the claims that follow.
Number | Name | Date | Kind |
---|---|---|---|
4161662 | Malcolm et al. | Jul 1979 | A |
4197555 | Uehara et al. | Apr 1980 | A |
4568961 | Noto | Feb 1986 | A |
4642487 | Carter | Feb 1987 | A |
4682201 | Lipp | Jul 1987 | A |
4745084 | Rowson et al. | May 1988 | A |
4748494 | Yamada et al. | May 1988 | A |
4851892 | Anderson et al. | Jul 1989 | A |
4870302 | Freeman | Sep 1989 | A |
4873459 | El Gamal et al. | Oct 1989 | A |
4875971 | Orbach et al. | Oct 1989 | A |
4943841 | Yahara | Jul 1990 | A |
5016080 | Gianella | May 1991 | A |
5023701 | Sharpe-Geisler | Jun 1991 | A |
5049969 | Orbach et al. | Sep 1991 | A |
5073729 | Greene et al. | Dec 1991 | A |
5084404 | Sharpe-Geisler | Jan 1992 | A |
5087589 | Chapman et al. | Feb 1992 | A |
5172014 | El Ayat et al. | Dec 1992 | A |
5206184 | Allen et al. | Apr 1993 | A |
RE34363 | Freeman | Aug 1993 | E |
5309015 | Kuwata et al. | May 1994 | A |
5338970 | Boyle et al. | Aug 1994 | A |
5404033 | Wong et al. | Apr 1995 | A |
5506162 | Hirose et al. | Apr 1996 | A |
5565758 | Yoeli et al. | Oct 1996 | A |
5619062 | Janai et al. | Apr 1997 | A |
5679967 | Janai et al. | Oct 1997 | A |
5847420 | Kuge et al. | Dec 1998 | A |
5861641 | Yoeli et al. | Jan 1999 | A |
Number | Date | Country |
---|---|---|
000279387 | Jun 1990 | DD |
3408747 | Sep 1984 | DE |
0408060 | Jan 1991 | EP |
0681329 | Nov 1995 | EP |
7211767 | Dec 1982 | JP |
1266742 | Oct 1989 | JP |
3283663 | Dec 1991 | JP |
4152567 | May 1992 | JP |
6077427 | Mar 1994 | JP |
WO 9310561 | May 1993 | WO |
Number | Date | Country | |
---|---|---|---|
20030155587 A1 | Aug 2003 | US |