Method and system for layout versus schematic validation of integrated circuit designs
A method and system for validating selected layers of an integrated circuit design. A rundeck is edited to include IC layers and device structures of interest that may require validation. In some embodiments the IC layer of interest may include only metal. A layout versus schematic (LVS) comparison is performed using the edited rundeck and an error report is generated.
Latest LSI Logic Corportion Patents:
1. Technical Field
The present invention relates generally to microelectronic integrated circuits. In particular, the present invention relates to a method, computer program product, and an apparatus for reducing turn-around-time in the physical design layout, routing and verification cycle of a microelectronic integrated circuit.
2. Description of the Related Art
Microelectronic integrated circuits (ICs) are fabricated by layering several different materials on a semiconductor wafer. The typical integrated circuit is formed from dozens of layers. These layers can be formed by depositing material on the integrated circuit such as metal and poly, growing material on the integrated circuit such as oxides, or doping areas of the integrated circuit with different impurities.
The design of the integrated circuit is a two part process. First, integrated circuits are functionally designed in a schematic circuit format. Secondly, the schematic format is then input into a physical layout environment wherein the layout of the polygons that make up the circuitry are physically designed.
The schematic design is developed by assembling a circuit from a collection of fundamental building blocks, known as library circuit elements, in a computer implemented environment. Basic circuit elements, such as transistors are reused over and over in a single integrated circuit. Most designs assemble groups of circuit elements into cells, and groups of cells into blocks. These blocks implement basic input/output (I/O), logic, analog and memory functions. The cells and blocks are then treated in the schematic design as a functional “black boxes” with ports defined to connect the blocks to other circuitry, with the internal definitions of the cells and blocks stored in another file. As “instances” of the same cell or block are reused in the integrated circuit design, the individual instances of the cells and blocks are implemented in the integrated circuit with unique names. The cells, and blocks are built up into a hierarchy of circuit elements and may be used again and again in the integrated circuit design (and in future integrated circuit designs). Designers prefer to reuse these blocks rather than recreating these common circuit elements for each new project. These blocks are ones that have proven quality and so their implementation saves time and resources. Larger reusable blocks, known as intellectual property (IP) blocks, can be designed in house, can be proprietary to a particular design house, or can be licensed from an outside vendor. Intellectual property blocks are supplied in either “hard” or “soft” form. A soft intellectual property block is simply a schematic design performing a given function. A hard intellectual property block specifies the physical layout as well, including the placement and wiring of individual elements. An integrated circuit design may primarily consist of intellectual property blocks and the interconnections between them. Each intellectual property block has at least one and typically more connection ports.
A port is an electrical connection point between the inner structure of a block and the integrated circuit interconnection circuitry outside the cell or block. A net is a set of two or more ports which are connected. Because a typical integrated circuit, at the lowest level of cell hierarchy, has hundreds of thousands of ports which must be connected in various combinations, the integrated circuit also has hundreds of thousands of nets, or sets of ports. All the ports of a net are connected. The number of nets for an integrated circuit is typically of the same order or greater than the order of the number of cells on that integrated circuit. However, looking at the highest level of integrated circuit hierarchy for an integrated circuit that consists primarily of hard intellectual property blocks, the number of ports for the integrated circuit is reduced to several hundred. Thus, the number of nets for the highest level of hierarchy of an integrated circuit is also reduced.
A netlist is a list of nets for an integrated circuit. Thus, a netlist is a file that contains the conversion of a high-level electronic circuit description into a list of cells and blocks and their interconnections. A netlist describes the device structures and connectivity of an electronic design. Netlists usually convey connectivity information and provide instances of cells and blocks, nets, and perhaps some attributes. Netlists can be flat or hierarchical. A flat (sometimes called exploded) netlist is a netlist of the lowest level of integrated circuit hierarchy. A hierarchical netlist preserves the cell, block and intellectual property block hierarchy used in the design. A flat (the lowest level of hierarchy) netlist has hundreds of thousands of lines of block and interconnection description. A hierarchical netlist (at least two levels of hierarchy) for the same integrated circuit may have only several hundred lines of interconnection description. All of the underlying circuitry and connectivity of the internals of the blocks are contained in a definition file. Hierarchical designs can be flattened into flat designs via recursive algorithms. This will generate a much larger database, but will also preserve the hierarchy. By providing a list of the instance names as one descends a hierarchy from the top definition to the lower definitions, one can derive a unique hierarchical path to any instance. These paths can be used to tie a flat design description to a hierarchical version of the same design. A netlist produced from the schematic design of the integrated circuit is called a schematic netlist.
The physical design of an integrated circuit transforms a circuit description into a geometric description which is known as a layout. A layout consists of a set of planar geometric shapes defining the topography of the integrated circuit layers. Upon completion and verification, the layout is then converted into pattern generator files that are used to produce patterns called masks or reticles by an optical or electron beam pattern generator. These reticles are used to pattern each layer. The typical integrated circuit will have many reticles. Due to the large number of components and the exacting details required by the fabrication process, layout design is not practical without the aid of computers. As a result, most phases of layout design extensively use computer aided design (CAD) tools, and many phases have already been partially or fully automated. One example of a physical layout computer aided design tool is the IC Station® Tool Suite from Mentor Graphics. Mentor Graphics is located in Wilsonville, Oreg. This tool includes application bundles for schematic-driven layout, editing the layout, and top-level floor planning and interconnection routing.
The objective of physical design is to determine an optimal arrangement of cells and blocks and an efficient interconnection or routing scheme between them to obtain the desired functionality in the smallest area practical. The input to the physical design computer aided design tool is typically a schematic of the circuit, in the form of a schematic netlist. The output of physical design computer aided design tool is a geometric design system (GDSH) file, stored in the geometric design system database which specifies the physical polygons making up each layer of the circuit. Geometric design system file format is the current industry de facto standard, the format is owned by Cadence®. Geometric design system stream format is a binary format for representation of planar geometric shapes, text labels and some other information in hierarchical form. Geometric design system is the most commonly used format for transfer of integrated circuit layout data between design tools from different vendors which operate with proprietary data formats. Some integrated circuit design tools are beginning to support a new format, Open Artwork System Interchange Standard (OASIS(™)).
After the layout (or a portion of the layout) has been finished, the next step is the verification analysis. Verification analysis consists of extracting the layout design file and comparing it against the schematic design file. A verification software tool is used in this process. An example of third party verification software tool is Calibre® a registered trademark of the Mentor Graphics, Inc. A verification software tool performs the function of providing device and connectivity comparisons between the integrated circuit layout and the schematic. The layout versus schematic verification comparison is the process of comparing the schematic netlist against the layout netlist.
Using a set of instructional code input into the verification software tool, called a rundeck; the verification software tool does the verification in a two step process; extraction and comparison. The rundeck gives instructions to the verification software tool and identifies the correct files needed for the verification. These files include the geometric design system layout database, the schematic netlist from the designer, the cell definition file including intellectual property blocks, and a pad reference file. A typical rundeck is a set of code that contains the location of all of the files needed for comparison between the schematic and the layout as well as other lines of code containing the information needed to extract the device and connectivity of the integrated circuit. This other information includes layer definitions which identifies the layers that are used in the layout file and matches a description of a layer to the layer's location in the geometric design system file. Also included in the rundeck are additional device structures definitions. Additional device structure definitions are device structures that are defined in the rundeck and not found in the cell definition file. An example of these additional device structures may be capacitors that are defined in metal layers.
A pad is where the integrated circuit is eventually connected to the outside world. Signals to and from the integrated circuit go through the pads. A pad reference file identifies what types of signals are designed for each pad; the layout coordinates of the pad and the pad's layer in the geometric design system file. The rundeck references the appropriate pad reference file whether verification is to be run on an entire integrated circuit or a subpart of the integrated circuit such as a hard intellectual property block.
In the first step of the verification analysis, the verification software tool first takes the geometric design system file and breaks it down into a layout netlist file. This process is called extraction. During extraction, the verification software tool flattens the layout design into its most basic design elements, such as individual Nmos and Pmos transistors. The verification software tool does this by recognizing layers and shapes that make up circuitry or the by the cell definitions that are defined in the cell definition file and the additional device structure definitions contained in the rundeck. Optionally, based on a verification software tool selection, the extraction process could extract a higher level of hierarchy of the layout contained in the geometric design system database. The verification software tool extraction process will identify unintentional circuit elements in the layout even during a high level hierarchical extraction. The verification software tool will recognize cell definitions if defined layers and shapes are present in the geometric design system database. The extraction of unintentional circuit structure, such as parasitic capacitors or transistors can be a valuable tool for layout engineers. However, if the unintentional circuit structure has been resolved in previous iterations of the integrated circuit verification, the unintentional circuit structure extraction add bulk and complexity to the layout netlist.
The second step in the verification analysis process is the comparison of the schematic netlist versus the extracted layout netlist. The comparison environment of the verification software tool uses the rundeck to identify the schematic netlist to be compared to the layout netlist produced by the verification software tool's extraction environment. The intention of the physical layout process is to implement the schematic design of the integrated circuit into the space and layers of the integrated circuit. Therefore, the schematic netlist and the layout netlist must match for verification to be completed without error. As the size and complexity of the extracted layout netlist increases, so does the resulting comparison process. Schemes to do the comparison are well known to those of ordinary skill in the art and will not be further discussed here.
The output of the verification software tool is a Layout Versus Schematic (LVS) Error Report. The layout engineer uses the Layout Versus Schematic Error Report to resolve any mismatches between the schematic netlist and the layout netlist. Any additional bulk and complexity in the layout netlist extracted translates into a longer and more complex Layout Versus Schematic Error Report.
SUMMARY OF THE INVENTIONThe present invention provides a method, a computer program product and an apparatus for performing a verification analysis. Layers of interest are selected for a trimmed verification analysis. This selection eliminates layer definitions for unselected layers to create a trimmed rundeck. A layout versus schematic verification comparison is performed to generate a trimmed error report for the selected layers of interest. The trimmed error report may then be interpreted.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures and in particular with reference to
With reference now to
In the depicted example, local area network (LAN) adapter 212 connects to south bridge and I/O controller hub 204 and audio adapter 216, keyboard and mouse adapter 220, modem 222, read only memory (ROM) 224, hard disk drive (HDD) 226, CD-ROM drive 230, universal serial bus (USB) ports and other communications ports 232, and PCI/PCIe devices 234 connect to south bridge and I/O controller hub 204 through bus 238 and bus 240. PCI/PCIe devices may include, for example, Ethernet adapters, add-in cards, and PC cards for notebook computers. PCI uses a card bus controller, while PCIe does not. ROM 224 may be, for example, a flash binary input/output system (BIOS). Hard disk drive 226 and CD-ROM drive 230 may use, for example, an integrated drive electronics (IDE) or serial advanced technology attachment (SATA) interface. A super I/O (SIO) device 236 may be connected to south bridge and I/O controller hub 204.
An operating system runs on processor 206 and coordinates and provides control of various components within data processing system 200 in
Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 226, and may be loaded into main memory 208 for execution by processor 206. The processes of the present invention are performed by processor 206 using computer implemented instructions, which may be located in a memory such as, for example, main memory 208, read only memory 224, or in one or more peripheral devices.
Those of ordinary skill in the art will appreciate that the hardware in
In some illustrative examples, data processing system 200 may be a personal digital assistant (PDA), which is configured with flash memory to provide non-volatile memory for storing operating system files and/or user-generated data. A bus system may be comprised of one or more buses, such as a system bus, an I/O bus and a PCI bus. Of course the bus system may be implemented using any type of communications fabric or architecture that provides for a transfer of data between different components or devices attached to the fabric or architecture. A communications unit may include one or more devices used to transmit and receive data, such as a modem or a network adapter. A memory may be, for example, main memory 208 or a cache such as found in north bridge and memory controller hub 202. A processing unit may include one or more processors or CPUs. The depicted examples in
With reference now to
The schematic design and layout design are compared in comparison of schematic to layout (step 306). Errors or mismatches between the schematic design and the layout design are analyzed in analysis of errors (step 308). Unintended circuitries are displayed in the error report and are interpreted in step 308, analysis of errors. Examples of errors found in error reporting in step 308 are: ports that are not connected to interconnect in the layout design and cells and blocks that appear in the schematic design but not in the layout design or in the layout design but not in the schematic design. The engineer may then decide to edit layout design, returning to step 304 or ignore a previously analyzed unintentional circuitry. After edits are complete, the compare in step 306 may be rerun. This iterative process continues until the layout is free from errors.
Turning now to
Turning now to
Next, the layers to be extracted for the trimmed verification analysis are determined (step 504). In this example, the determination is made by selecting all the layers of interest for the analysis and excluding all layers not of interest. The criteria for selecting the layers of interest are based on the subject of the trimmed verification analysis. For example, in accordance with an illustrative embodiment of the present invention, the integrated circuit to be analyzed may be entirely designed using hard intellectual property blocks. Metal interconnect layers may be the only original circuitry in the integrated circuit, therefore isolating these layers in the trimmed verification analysis is beneficial. Those of ordinary skill in the art will recognize that the layers chosen for analysis and the layers that interconnect those layers will be the only layers desired in the trimmed verification analysis. The connectivity between the blocks, of which these layers are a part, is determined by the port references on the blocks. A port reference is the location and name of a port. In an illustrative embodiment of the present invention, the metal and the metal related layers are all that is needed to analyze the metal interconnect. Therefore many layers will not be defined in the rundeck. Typical integrated circuits have greater than twenty layers. Examples of layers not of interest in this analysis are all layers underlying metal 1. Elimination of the unnecessary layers of the integrated circuit from layer definitions of rundeck is made because verification software tool will detect unintentional circuitry that are not part of the analysis in accordance with an illustrative embodiment of the present invention. So, for example, if the substrate, p-well, n+implant and poly layers are defined in a rundeck unintentional parasitic transistors may be extracted by verification software tool that would add unnecessary bulk and complexity to the analysis.
A specifically trimmed rundeck is created (step 506) in accordance with an illustrative embodiment of the present invention, using only the lines of instructional code necessary for the extraction of the necessary layers from geometric design system layout file. In accordance with an illustrative embodiment of the present invention several layers are selected for analysis, metal 1, metal 2, metal 3, via12, and via23, therefore only these layers will be defined in trimmed rundeck. The remaining layers are eliminated from the trimmed verification analysis by removing the unwanted layer definitions and any unwanted additional device structure definitions from trimmed rundeck.
Next, layout versus schematic verification is implemented (step 508). In this step, a trimmed rundeck, is input to verification software tool. Verification software tool, implemented on a computer such as is illustrated in
Lastly, verification software tool outputs a trimmed error report used in the interpretation and analysis of the data (step 510). A trimmed error report is produced by verification software tool as a trimmed error report only because the input to verification software tool is trimmed. From the standpoint of verification software tool, a trimmed error report is a standard error report output. The computer time and resources to complete this process in accordance with the illustrative embodiment of the present invention are significantly reduced due to the elimination of data not pertinent to the present invention's analysis. Interpretation of trimmed error report data in step 510 is also significantly reduced in that the errors listed in the error report are only those errors pertinent to the present invention's analysis.
The aspects of the present invention provide a method and a computer program product for performing a trimmed verification analysis. The method comprises selecting layers of interest for a trimmed analysis, eliminating layer definitions for unselected layers to create a trimmed rundeck, and performing a layout versus schematic verification comparison to generate a trimmed error report for the selected layers of interest.
The description of the preferred embodiment of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention the practical application to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Claims
1. A method for performing a trimmed verification analysis in an integrated circuit (IC), the method comprising:
- selecting IC layer definitions of interest and additional device structure descriptions of interest;
- creating a rundeck including the selections;
- analyzing the created rundeck, wherein the analyzing comprises: selecting a geometric design system file from the created rundeck; extracting a layout netlist from the geometric design system file; selecting a schematic netlist from the created rundeck; and comparing the schematic netlist with the layout netlist; and
- generating an error report based on a result of the analysis.
2. The method of claim 1, wherein the selecting comprises:
- determining IC layers of interest and additional device structures of interest based on a type of verification analysis to be performed between functional blocks in the IC.
3. The method of claim 2, wherein the type of verification analysis comprises a metal interconnect structure analysis based on a connectivity between the functional blocks.
4. The method of claim 3, wherein the type of verification analysis further comprises a poly interconnect analysis.
5. The method of claim 1, wherein the selecting comprises extracting metal interconnect layer definitions based on port connection points between functional blocks in the IC.
6. A computer program product comprising a computer usable medium including computer usable program instructions for performing a trimmed verification analysis, the instructions when executed by a processor performing actions comprising:
- selecting IC layer definitions of interest and additional device structure descriptions of interest;
- creating a rundeck including the selections;
- analyzing the created rundeck, wherein the analyzing comprises: selecting a geometric design system file from the created rundeck; extracting a layout netlist from the geometric design system file; selecting a schematic netlist from the rundeck; and comparing the schematic netlist with the layout netlist; and
- generating, by performing a layout versus schematic comparison, an error report based on a result of the analysis.
7. The computer program product of claim 6, wherein the selecting comprises:
- determining IC layers of interest and additional device structures of interest based on a selection of a type of verification analysis to be performed.
8. The computer program product of claim 7, wherein the determined IC layers of interest comprise poly layers and the selected type of verification analysis comprises
- a poly interconnect verification analysis.
9. The computer program product of claim 6, wherein the selecting further comprises extracting
- metal interconnect layer definitions based on port connection points between functional blocks in the IC.
10. A system for performing a verification analysis, the system comprising:
- a storage device connected to a bus, the storage device comprising a computer readable storage medium including instructions; and
- a processor, wherein the processor executes the instructions that select IC layer definitions of interest and additional device structure description of interest;
- create a rundeck including the selections, based on a type of verification analysis to be performed;
- analyze the created rundeck by performing a layout versus schematic comparison, wherein the analyzing comprises: selecting a geometric design system file from the created rundeck; extracting a layout netlist from the geometric design system file; selecting a schematic netlist from the rundeck; and comparing the schematic netlist with the layout netlist; and
- generate an error report based on a result of the analysis.
20030112576 | June 19, 2003 | Brewer et al. |
20040064797 | April 1, 2004 | Li |
20050050504 | March 3, 2005 | Jurgens et al |
20050097488 | May 5, 2005 | Lakshmanan et al. |
20050216873 | September 29, 2005 | Singh et al. |
20050229126 | October 13, 2005 | Wang et al. |
20060131739 | June 22, 2006 | Cho et al. |
Type: Grant
Filed: Dec 29, 2005
Date of Patent: Jan 20, 2009
Patent Publication Number: 20070157140
Assignee: LSI Logic Corportion (Milpitas, CA)
Inventors: Alan Lee Holesovsky (Loveland, CO), Viswanathan Lakshmanan (Thornton, CO), Brent Wray Acott (Fort Collins, CO)
Primary Examiner: Paul Dinh
Attorney: Yee & Associates
Application Number: 11/321,260
International Classification: G06F 17/50 (20060101);