The present disclosure relates generaly to coding of revision identification data in an integrated circuit, and more specifically to a programmable revision cell identification system and method for coding revision identification data in an integrated circuit.
During the design process, integrated circuits are revised a number of times. Likewise, after a first integrated circuit product is made, subsequent modifications of the integrated circuit may be implemented. In order to keep track of the version of an integrated circuit, a sequence number is typically provided. However, existing systems and methods for keeping track of the sequence number typically requires active devices, which can fail during manufacture or testing, and which reduces the overall yield for a manufacturing batch or which can lead to errors in subsequent use of the integrated circuit.
An integrated circuit is provided that includes a plurality of metal programmable revision identification (MPRI) cells. Each MPRI cell further comprises a plurality of metal layers, a plurality of vias and an output.
Other systems, methods, features, and advantages of the present disclosure will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, be within the scope of the present disclosure, and be protected by the accompanying claims.
Aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views, and in which:
In the description that follows, like parts are marked throughout the specification and drawings with the same reference numerals. The drawing figures might not be to scale and certain components can be shown in generalized or schematic form and identified by commercial designations in the interest of clarity and conciseness.
Conventionally, the revision ID of an integrated circuit is implemented as bits that are tied to either VDD (supply) or VSS (ground) at any arbitrary layer (and most likely, lower level metals) of an integrated circuit, and includes registers, buffers or inverters that are dedicated for the purpose of identifying the integrated circuit version.
Often, an additional metal layer can be consumed by the revision ID when actual design changes are made on a different metal layer than where the revision ID was originally connected. For example, an additional metal layer can be consumed if the chip requires a logic fix on metal layer one, and the next revision ID bit needs to be tied to VSS (ground) on metal layer two. This change will require two additional metal mask layer changes on top of the changes that were made on the different metal layers. If the revision ID could be changed in the metal layer using the same metal layer that was used for the actual design, modification to metal layers one and two would not be necessary.
In addition, there is an engineering cost to the layout task that is incurred in order to minimize the number of layers used to implement a change in the device revision ID as well. Therefore, significant cost savings can be attained if the extra of mask layers can be eliminated, in addition to the engineering time required to implement ID bit changes.
The present disclosure utilizes an integrated circuit cell structure, or Metal Programmable Revision ID (MPRI), that allows revision ID bit modifications to be constructed by using mask layers where required logic changes are made. The MPRI cell comprises metal interconnect structures that are dependent upon the total number of metal layers that are used in an integrated circuit.
In one exemplary embodiment, two types of MPRI cells are provided. One provides logic zero at the output and the second provides logic one at the output, and they are used as a default in an integrated circuit to form various revision ID configurations. Both types of MPRI cell are footprint- and transistor-compatible, allowing them to be interchanged without using low level masks (such as diffusion, polysilicon or via masks).
Since MPRI is considered a standard cell, during the automatic placement and routing of the cell, any gaps between the cell and the other cells can be filled with “standard metal filler” cells. These standard metal filler cells contain geometries which extend certain layers across the gaps, such as power straps and well implants.
The gaps between the standard metal filler cells that are caused by the inefficiency of the routing tool used by the layout designer can be filled automatically in order to comply with Design Rule Check (DRC) requirements.
Although a routing configuration change on metal layer two is shown in diagram 200, other suitable routing configuration changes can also or alternatively be used to implement the change in the output of the MPRI cell, such as a routing configuration change on metal layer one or metal layers three through eight. Likewise, routing configuration changes on multiple metal layers can also or alternatively be used, such as routing configuration changes on two of the metal layers to generate a logic one output, routing configuration changes on three of the metal layers to generate a logic zero output, routing configuration changes on an even number of the metal layers to generate a logic one output, routing configuration changes on an odd number of the metal layers to generate a logic zero output, or other suitable routing configuration changes.
As used herein, “hardware” can include a combination of discrete components, an integrated circuit, an application-specific integrated circuit, a field programmable gate array, or other suitable hardware. As used herein, “software” can include one or more objects, agents, threads, lines of code, subroutines, separate software applications, two or more lines of code or other suitable software structures operating in two or more software applications or on two or more processors, or other suitable software structures. In one exemplary embodiment, software can include one or more lines of code or other suitable software structures operating in a general purpose software application, such as an operating system, and one or more lines of code or other suitable software structures operating in a specific purpose software application. As used herein, the term “couple” and its cognate terms, such as “couples” and “coupled,” can include a physical connection (such as a copper conductor), a virtual connection (such as through randomly assigned memory locations of a data memory device), a logical connection (such as through logical gates of a semiconducting device), other suitable connections, or a suitable combination of such connections.
Algorithm 400 begins at 402, where a revision number is received. In one exemplary embodiment, a revision number of a prior revision can be extracted from a data memory device, such as when an integrated circuit design is loaded into a system memory, by extracting a stored revision from a data memory device, or in other suitable manners. The algorithm then proceeds to 404.
At 404, it is determined whether an integrated circuit design has been stored. In one exemplary embodiment, when an integrated circuit design is stored for the first time, the algorithm proceeds to 406. Alternatively, if the integrated circuit design has previously been stored as a revision in a non-transient electronic data memory device, such as random access memory, read-only memory, silicon memory devices, magnetic memory devices, optical memory devices or other suitable data memory devices, the algorithm proceeds to 412.
At 406, a starting revision number tracking circuit design can be determined, such as by generating a plurality of MPRI cells that are arranged in a serial layout and which generate a logical identifier of 0 0 0 0 0, or other suitable identifiers that represent that the integrated circuit design is the first or base revision of the circuit. The algorithm then proceeds to 408.
At 408, one or more modification layers are selected. In one exemplary embodiment, each MPRI cell can be implemented at a plurality of layers based on one or more design rules, such as a layout versus schematic rule, an XOR rule, an electrical rule, an antenna rule, a width rule, a spacing rule, an enclosure rule, an ESD rule, an I/O rule or other suitable design rules. For example, design rules can be checked for modification of one or more layers, and layers can be selected as a function of a ranking algorithm associated with the design rules, a predetermined priority associated with the design rules or each layer or other suitable procedures can also or alternatively be used. The algorithm then proceeds to 410.
At 410, a new metal and via layout is implement to create MPRI cells having the revision number coding. In one exemplary embodiment, the new metal and via layout can be generated without additional input from a designer. In another exemplary embodiment, the new metal and via layout can be generated after review and approval by a designer, or in other suitable manners. The algorithm then proceeds to 418, where the design is stored.
At 412, the revision number coding is retrieved and a new revision number coding is determined. In one exemplary embodiment, the revision number can be a binary number and the new revision number coding can implement an increment in the revision number. For example, if the existing revision number is “0 1 1 1 1 1,” for a six MPRI cell revision number device, then the new revision number coding can be “1 0 0 0 0 0” if the next revision number is incremented by one. The algorithm then proceeds to 414.
At 414, one or more modification layers are selected. In one exemplary embodiment, a change to a single MPRI cell can be implemented at a layer based on one or more design rules, such as a layout versus schematic rule, an XOR rule, an electrical rule, an antenna rule, a width rule, a spacing rule, an enclosure rule, an ESD rule, an I/O rule or other suitable design rules. For example, design rules can be checked for modification of one or more layers, and layers can be selected as a function of a ranking algorithm associated with the design rules, a predetermined priority associated with the design rules or each layer or other suitable procedures can also or alternatively be used. The algorithm then proceeds to 416.
At 416, a new metal and via layout is implement to create MPRI cells having the new revision number coding. In one exemplary embodiment, the new metal and via layout can be generated without additional input from a designer. In another exemplary embodiment, the new metal and via layout can be generated after review and approval by a designer, or in other suitable manners. The algorithm then proceeds to 418.
In operation, algorithm 400 allows revision number coding to be automatically implemented without little or no designer input, by using standardized MPRI cells and automatically implemented metal and via layout selection and implementation. Algorithm 400 thus reduces or eliminates the need for designer input to implement a new revision number coding for a revision to an integrated circuit design.
The present disclosure can be utilized with all metal layers and independent of other metal layers. In this manner, the selection and modification of MPRI cells can be programmed using only the metal layers that are used to modify the logic.
The present disclosure provides a number of advantages when compared to conventional methodologies. One exemplary advantage is to reduce additional metal mask cost that may be required to implement revision ID changes and to eliminate the need for default register changes, buffers and inverters. Another exemplary advantage is to reduce additional engineering labor costs for the implementation of revision ID changes and associated default register changes, buffer and inverter. Another exemplary advantage is reduction of costs and complexity of implementation from metal only implementation. Another exemplary advantage is that single metal layer or via layer changes can be made at any suitable metal layer. Another exemplary advantage is that flexible modification capability is provided. Another exemplary advantage is the small footprint size that is required, which saves area required for the integrated circuit. Another exemplary advantage is that excellent reliability is provided due to metal only implementation. Another exemplary advantage is the use of pair cells (logic one and logic zero), which eliminates the need for inverters and buffers. Another exemplary advantage is that the MPRI cells fit in a standard cell format which allows them to be used by place and route tools. Another exemplary advantage is the simplification of layout changes with regard to revision ID. Another exemplary advantage is the implementation in existing design through an Engineering Change Order (ECO) process or for new chip designs.
It should be emphasized that the above-described embodiments are merely examples of possible implementations. Many variations and modifications may be made to the above-described embodiments without departing from the principles of the present disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
This application claims benefit of U.S. Provisional Patent Application No. 61/718,120, filed Oct. 24, 2012, which is hereby incorporated by reference for all purposes as if set forth herein in its entirety.
Number | Date | Country | |
---|---|---|---|
61718120 | Oct 2012 | US |