The instant application constitutes cross-related to U.S. application Ser. No. 12/987,064, filed concurrently with the instant application, titled “METHOD AND MECHANISM FOR IMPLEMENTING EXTRACTION FOR AN INTEGRATED CIRCUIT DESIGN”, and U.S. application Ser. No. 12/987,072, filed concurrently with the instant application, titled “METHOD AND MECHANISM FOR IMPLEMENTING EXTRACTION FOR AN INTEGRATED CIRCUIT DESIGN”. The instant application is further cross-related to U.S. application Ser. No. 11/229,320, now U.S. Pat. No. 7,665,045, filed on Sep. 15, 2005 and entitled “METHOD AND MECHANISM FOR IDENTIFYING AND TRACKING SHAPE CONNECTIVITY”. The entire contents of the aforementioned applications are hereby expressly incorporated by reference in their entireties.
The present invention relates generally to electronic circuit design, manufacturing, and verification.
A semiconductor integrated circuit (IC) has a large number of electronic components, such as transistors, logic gates, diodes, wires, etc., that are fabricated by forming layers of different materials and of different geometric shapes on various regions of a silicon wafer. The design of an integrated circuit transforms a circuit description into a geometric description called a layout. The process of converting specifications of an integrated circuit into a layout is called the physical design. After the layout is complete, it is then checked to ensure that it meets the design requirements. The result is a set of design files, which are then converted into pattern generator files. The pattern generator files are used to produce patterns called masks by an optical or electron beam pattern generator. Subsequently, during fabrication of the IC, these masks are used to pattern chips on the silicon wafer using a sequence of photolithographic steps. Electronic components of the IC are therefore formed on the wafer in accordance with the patterns.
Many phases of physical design may be performed with computer aided design (CAD) tools or electronic design automation (EDA) systems. To design an integrated circuit, a designer first creates high level behavior descriptions of the IC device using a high-level hardware design language. An EDA system typically receives the high level behavior descriptions of the IC device and translates this high-level design language into netlists of various levels of abstraction using a computer synthesis process. A netlist describes interconnections of nodes and components on the chip and includes information of circuit primitives such as transistors and diodes, their sizes and interconnections, for example.
An integrated circuit designer may use a set of layout EDA application programs to create a physical integrated circuit design layout from a logical circuit design. The layout EDA application uses geometric shapes of different materials to create the various electrical components on an integrated circuit and to represent electronic and circuit IC components as geometric objects with varying shapes and sizes.
After an integrated circuit designer has created an initial integrated circuit layout, the integrated circuit designer then tests and optimizes the integrated circuit layout using a set of EDA testing and analysis tools. Common testing and optimization steps include extraction, verification, and compaction. The steps of extraction and verification are performed to ensure that the integrated circuit layout will perform as desired. The test of extraction is the process of analyzing the geometric layout and material composition of an integrated circuit layout in order to “extract” the electrical characteristics of the designed integrated circuit layout. The step of verification uses the extracted electrical characteristics to analyze the circuit design using circuit analysis tools.
Common electrical characteristics that are extracted from an integrated circuit layout include capacitance and resistance of the various “nets” (electrical interconnects) in the integrated circuit. These electrical characteristics are sometimes referred to as “parasitic” since these are electrical characteristics are not intended by the designer but result from the underlying physics of the integrated circuit design. For example, when an integrated circuit designer wishes to connect two different locations of an integrated circuit with an electrical conductor, the electrical circuit designer would ideally like perfect conductor with zero resistance and zero capacitance. However, the geometry of a real conductor, its material composition, and its interaction with other nearby circuit elements will create some parasitic resistance and parasitic capacitance. The parasitic resistance and parasitic capacitance affect the operation of the designed integrated circuit. Thus, the effect of the parasitic resistance and parasitic capacitance on the electrical interconnect must be considered.
To test an integrated circuit layout, the integrated circuit designer ‘extracts’ parasitic resistance and parasitic capacitance from the integrated circuit layout using an extraction application program. Then, the integrated circuit designer analyzes and possibly simulates the integrated circuit using the extracted parasitic resistance and parasitic capacitance information. If the parasitic resistance or parasitic capacitance causes undesired operation of the integrated circuit, then the layout of the integrated circuit must be changed to correct the undesired operation. Furthermore, minimizing the amount of parasitic resistance and parasitic capacitance can optimize the performance of the integrated circuit by reducing power consumption or increasing the operating speed of the integrated circuit.
Conventional extraction tools operate in a “batch” mode, which considers the entirety of the IC design or substantially large areas of an IC design to perform extraction. One common approach when operating in a batch mode is to use the scan line technique to scan the entire design all at once.
This type of approach is typically optimized and is efficient when large areas of a design need to be processed. However, consider the situation when the IC design is modified such that only a small portion of the design has changed. With conventional extraction tools, the entirety of the design, or a substantially large portion of the design, may be re-processed to perform extraction, even substantial sections of the design that did not undergo any modification. This is the negative artifact of the scan line-type approach which works on an area-based approach. This could result in extreme inefficiencies when only small portions of the design need to undergo extraction and cause significant delays and resource wastage during the design and verification process.
Some embodiments of the present invention provide an improved method and system for performing extraction on an integrated circuit design. In some embodiments, extraction can be performed at granularities much smaller than the entire IC design, in which a halo is used to identify a geometric volume surrounding an object of interest to identify neighboring objects and generate an electrical model. The extraction approach can be taken for Islands, Nets, as well as other granularities within the design. Re-extraction of a design can occur at granularities smaller than a net. Some embodiments utilize Island-stitching to replace an Island within a net. An approach is also described for improving cross-references for cross-coupled objects. Other and additional objects, features, and advantages of the invention are described in the detailed description, figures, and claims.
The drawings illustrate the design and utility of embodiments of the present invention, in which similar elements are referred to by common reference numerals. In order to better appreciate the advantages and objects of a preferred embodiment, reference should be made to the accompanying drawings that illustrate this preferred embodiment. However, the drawings depict only one embodiment of the invention, and should not be taken as limiting its scope.
Some embodiments of the present invention provide an improved method and system for performing extraction on an integrated circuit design.
Net Tube Extraction
As noted above, conventional EDA extractor tools utilize a batch mode to process all or a substantial portion of the IC design all at once for the design. The significant drawback with this approach is that even if the designer makes only a small change to the design, then the batch process may re-extract the entire design or a substantial portion of the design.
The present invention provides an improved approach for performing extraction at smaller granularities within the IC design. In general, the present invention determines the specific objects that that need to be extracted as well as the surrounding neighborhood around those objects that need to be identified to perform extraction. The process performs a geometric gathering of data that can then be used to create an electrical model of that neighbor of objects. By handling extraction in this manner, the granularity of extraction can be processed at levels that are much smaller and more precise than previous approaches.
As described in more detail below, the present process can also identify portions of the design to analyze that are smaller than an individual net. As just one example, a “net-Island” or “Island”, comprising only the contiguous portion of a net that resides on a single layer, can be the identified subject of the present extraction process.
The process takes the net of interest, and chases all the segments and pieces that form the net. One approach for chasing all the segments of a net is described in co-pending U.S. application Ser. No. 11/229,320 filed on Sep. 15, 2005, now U.S. Pat. No. 7,665,045, which is hereby incorporated by reference in its entirety.
A “halo” distance is identified for the portion of the IC design that is being analyzed (104). In one embodiment, the halo distance is intended to correspond to the point or distance at which the measured value is different from the isolation value for capacitance. Different types or locations of objects being analyzed may correspond to different halo distances. Some example factors that could be used to determine halo distance include the purpose and configuration of the wiring structures being analyzed. Even within the same net, different portions of the net may correspond to different halo sizes and shapes.
At 106, a search is performed for all objects within the halo. Any suitable approach can be used to perform this search function. Examples of searching approaches that can be used to implement some embodiments of the invention are disclosed in U.S. Pat. Nos. 6,981,235 and 7,100,128, both of which are hereby incorporated by reference in their entirety.
In one embodiment, the search is performed for each layer encompassed by the halo. The search begins at the same layer at which the object being analyzed resides. The search then moves through each adjacent layer until all layers within the halo distance has been searched.
At 108, an electrical representation of the net tube is generated. In one embodiment, the electrical model of geometric shapes within the net tube is determined by having the extractor traverse all shapes within the geometry. Redundant and overlapping shapes are removed or accounted for in the net tube, e.g., by performing a geometric OR operation. The process will utilize a consistent view of the wires and have a consistent point(s) of reference for the analysis. Any suitable algorithms, system, or tool can be employed to generate an electrical model of the net tube.
In this manner, only specific nets, or portions of nets, need to be analyzed after a change is made to the IC design. This significantly improves the efficiency of the extraction operation if only small portions of the IC design need to be extracted.
In some embodiments, the present invention can therefore be used in conjunction with traditional batch mode extractors. In these alternate embodiments, the batch mode extractors are used if significantly large portions of the design need to be extracted. However, if only smaller portions of the design need to be extracted, then the present approach, e.g., net-by-net or Island-by-Island, is utilized. Heuristics may be employed to determine which approach is more suitable.
As noted above, the size and dimensions of the halo can be configured based upon any desired performance or analysis factors.
To facilitate the calculations of action 106, the dimensions of the halo can be configured to have a constant width along a given layer of the design. Referring to
Different layers can have different halo widths. To illustrate, consider the cross-section of a halo of
It is noted that object 710 has a portion 710a that falls within halo 700 and a portion 710b that falls outside of the halo 720. Any suitable approach can be taken to analyze this situation. In one embodiment, if any portion of the object falls within the halo, then that object is considered when forming the electrical model. Alternatively, heuristics is employed to determine whether a sufficient enough portion of the object is within the halo such that it should be considered. Some options for handling this situation include:
At this point, it is helpful to describe handling and processing of Islands according to some embodiments of the invention. An Island is a contiguous portion of a net that exists on a single layer of the IC design. The Island may connect to other Islands through one or more vias. A net may be formed by multiple Islands that are connected through multiple vias.
Therefore, as soon as an Island makes a layer transition, then it no longer forms part of the present Island under examination. An Island has a concept of end points. Either a terminal or a via would be considered an end point for an Island.
When analyzing the objects that form a net, the specific configuration of objects that form the net may influence the electrical model of the net. To explain, consider the two Island configurations shown in
When both of these designs are formed in semiconductor, the resulting object shapes will end up being the same. However, when considering the electrical analysis of these two configurations, these two configurations may produce different electrical analysis results due to the extra overlap of materials shown in
In some embodiments, normalization is performed upon Island shapes to remove the overlap materials. This allows the geometric shapes to be represented and analyzed in a consistent way across the entire design.
A logical OR operation is performed upon objects 1002, 1004, and 1006 to remove any overlapping portions. It can be seen that these objects overlap at locations 1012 and 1014. Thereafter, the objects are grouped together to form an Island 1020.
Improved Incremental Extraction
Assume that a modification occurs to the IC design at 1104. At 1106, identification is made of the modified portion of the IC design that is of influence for that modification. As noted above, this action may be performed by forming a halo around the modified portions and identifying all objects within that halo volume.
At 1108, extraction is performed again only for the portions of the design or net that is affected by the modification. In this approach, the entire design is not re-extracted. In some embodiments, the entire net is not re-extracted. Instead, only the Islands within the net affected by the modification are re-extracted.
Incremental Coupling
When an electrical analysis is performed for extraction, there are several ways in which coupling between nets can be represented. Two examples are the “coupled” and “decoupled” approaches. In the decoupled approach, there is no cross-coupling that that needs to be maintained between two nets. In the decoupled approach, regardless of how a given net is modified or analyzed, its neighboring nets do not need to be considered.
In the coupled case, there is a capacitance C between two nets and hence there is also a cross-reference that needs to be considered between the two nets. Therefore, if a modification or change occurs to a given net, its cross-reference to its neighboring net(s) should be adequately preserved.
To illustrate some issues relating to the coupled case, consider the arrangement of nets shown in
Assume that a change is made to Net A. Because of the proximity between Nets A and B, the change to Net A may necessitate a corresponding change to Net B. However, in this case, because of the distance between Nets A and C, there is no need to make a change to Net C. The problem is that if Net B, Net C may have to change to maintain proper cross-references with Net B, which may necessitate further changes down the line to subsequent Nets D, E, F, and others. It is desirable to be able to maintain the cross-reference between Nets B and C, even if Net C is not modified.
Some embodiments of the present invention address this problem by having a first net provide to a second net a node in a particular and fixed geometric location. In this manner, regardless of the changes that occur to a given cross-coupled net, the cross-reference is maintained since the reference node is always maintained in a known geometric location. When the time comes to perform extraction, this allows the system to guarantee that there is a node at that location.
In some embodiments, this approach is implemented by utilizing a set of constraints on the extractor. This allows the nets to have nodes that are synchronized with what has previously been established for the nets. Multiple constraint levels can be established. For example, Level 0 could be established in which nodes can be freely modified or destroyed. This level generally refers to the net or Island which is undergoing modification. A Level 1 can be established in which one or more nodes are maintained for subsequent levels. This level generally refers to a net or Island which undergoes some change (e.g., because a neighboring net or Island has changed), but is cross-coupled to a net or Island which will not change. Another level, referred to as Level 2, can be established which refers to a net or Island which will not undergo any modification and for which no extraction is performed.
In this example, since Island A is being modified, it is classified as a Level 0 Island, which means that its nodes can be freely changed. Island B is cross-coupled to Island A, and the nodes between Island A and Island B will clearly also change. However, since Island C will not change, Island B will be classified as a level 1 Island, which means that any change to Island B will also require this Island to maintain its node 1402 that corresponds to Island C. The node 1402 will be maintained at a known (x, y, z) location regardless of the change that occurs to Island B. Since Island C will not change, it is classified as a level 2 Island.
Island-Stitching
For a given net, it is sometimes desirable to replace Islands with a different Island or a different configuration of that Island. Described herein is a novel approach for Island-stitching which can be performed in some embodiments of the invention.
At 1606, the modified Island object is stitched into the connected group of ISLAND objects. In the present embodiment, this is implemented by tracking the endpoints of the ISLAND that is being modified and stitched, so that the modification maintains the relative coordinates of the original Island. In addition, any ports or nodes that must be maintained are tracked and created in the modified Island. Once the necessary locations are tracked and maintained, the modified Island can be used to replace the original Island in the grouping of Islands.
Consider if it is desired to modify this Island 1704a. In particular, consider if it is desired to modify Island 1704a to become 1704b as shown. To make this modification, the locations of ends 1710 and 1712 are tracked and maintained when making the modification from 1704a to 1704b. In addition, if there are any in cross-coupling nodes that need to be maintained, those nodes are also maintained.
Once the modifications have been made, the new Island 1704b is stitched back into net 1702. Since ends 1710 and 1712 are in the same locations, Island 1704b can be placed in exactly the correct position to line up against vias 1706 and 1708.
According to one embodiment of the invention, computer system 1400 performs specific operations by processor 1407 executing one or more sequences of one or more instructions contained in system memory 1408. Such instructions may be read into system memory 1408 from another computer readable/usable medium, such as static storage device 1409 or disk drive 1410. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software. In one embodiment, the term “logic” shall mean any combination of software or hardware that is used to implement all or part of the invention.
The term “computer readable medium” or “computer usable medium” as used herein refers to any medium that participates in providing instructions to processor 1407 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1410. Volatile media includes dynamic memory, such as system memory 1408.
Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
In an embodiment of the invention, execution of the sequences of instructions to practice the invention is performed by a single computer system 1400. According to other embodiments of the invention, two or more computer systems 1400 coupled by communication link 1415 (e.g., LAN, PTSN, or wireless network) may perform the sequence of instructions required to practice the invention in coordination with one another.
Computer system 1400 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1415 and communication interface 1414. Received program code may be executed by processor 1407 as it is received, and/or stored in disk drive 1410, or other non-volatile storage for later execution.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. For example, the above-described process flows are described with reference to a particular ordering of process actions. However, the ordering of many of the described process actions may be changed without affecting the scope or operation of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.
The instant application constitutes a division of U.S. application Ser. No. 11/741,699, now U.S. Pat. No. 7,870,517, entitled “METHOD AND MECHANISM FOR IMPLEMENTING EXTRACTION FOR AN INTEGRATED CIRCUIT DESIGN”, and filed on Apr. 27, 2007, that claims the benefit of U.S. Provisional Application Ser. No. 60/795,795, filed on Apr. 28, 2006. The entire contents of both applications are hereby expressly incorporated by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
5369594 | Huang | Nov 1994 | A |
5537580 | Giomi | Jul 1996 | A |
5596506 | Petschauer et al. | Jan 1997 | A |
5784292 | Kumar | Jul 1998 | A |
6219823 | Hama | Apr 2001 | B1 |
6223330 | Risler | Apr 2001 | B1 |
6230299 | McSherry | May 2001 | B1 |
6249903 | McSherry | Jun 2001 | B1 |
6298473 | Ono | Oct 2001 | B1 |
6578175 | Benevit | Jun 2003 | B1 |
6594805 | Tetelbaum et al. | Jul 2003 | B1 |
6687397 | DeYong | Feb 2004 | B2 |
6792582 | Cohn | Sep 2004 | B1 |
6968527 | Pierrat | Nov 2005 | B2 |
6981235 | Salowe | Dec 2005 | B1 |
6983440 | Nequist | Jan 2006 | B1 |
6996790 | Chang | Feb 2006 | B2 |
7096452 | Alvarez-Gomariz | Aug 2006 | B2 |
7100128 | Nequist | Aug 2006 | B1 |
7100129 | Salowe | Aug 2006 | B1 |
7181383 | McGaughy | Feb 2007 | B1 |
7281224 | Zhu et al. | Oct 2007 | B2 |
7296248 | Perez | Nov 2007 | B2 |
7313769 | Lukanc | Dec 2007 | B1 |
7457736 | Chang | Nov 2008 | B2 |
7461359 | Nequist | Dec 2008 | B1 |
7590955 | Nequist | Sep 2009 | B1 |
7614028 | Nequist | Nov 2009 | B1 |
7657860 | Brashears | Feb 2010 | B1 |
7665045 | Nequist | Feb 2010 | B1 |
7698666 | Nequist | Apr 2010 | B2 |
7721235 | Nequist | May 2010 | B1 |
7725845 | White | May 2010 | B1 |
7752595 | Maeda | Jul 2010 | B2 |
7962876 | Oh et al. | Jun 2011 | B2 |
20010010090 | Boyle et al. | Jul 2001 | A1 |
20020170020 | Darden | Nov 2002 | A1 |
20030182644 | Li | Sep 2003 | A1 |
20030208741 | Ono | Nov 2003 | A1 |
20040073878 | Hasegawa | Apr 2004 | A1 |
20040128636 | Ishikura | Jul 2004 | A1 |
20040153979 | Chang | Aug 2004 | A1 |
20050050496 | Kovacs et al. | Mar 2005 | A1 |
20050114812 | Kok | May 2005 | A1 |
20050155008 | Archambeault | Jul 2005 | A1 |
20050160388 | Cobb | Jul 2005 | A1 |
20050172251 | Chang | Aug 2005 | A1 |
20050246675 | Scheffer | Nov 2005 | A1 |
20060026551 | Shrowty | Feb 2006 | A1 |
20060036982 | Hoff | Feb 2006 | A1 |
20060136855 | Hoff | Jun 2006 | A1 |
20060141369 | Ito | Jun 2006 | A1 |
20060234140 | Alvarez-Gomariz | Oct 2006 | A1 |
20060288315 | Perez | Dec 2006 | A1 |
20070198967 | Ren | Aug 2007 | A1 |
20080022237 | Adler | Jan 2008 | A1 |
20080028357 | Shimony | Jan 2008 | A1 |
20080066042 | Archambeault | Mar 2008 | A1 |
20080104555 | DeMaris | May 2008 | A1 |
20080163134 | Nequist | Jul 2008 | A1 |
20080163150 | White | Jul 2008 | A1 |
20080216028 | Su | Sep 2008 | A1 |
20090089720 | Nequist | Apr 2009 | A1 |
20090172623 | Cross | Jul 2009 | A1 |
20090172625 | Nequist | Jul 2009 | A1 |
20090172626 | Pucci | Jul 2009 | A1 |
20090199139 | White | Aug 2009 | A1 |
20090288048 | Moroz | Nov 2009 | A1 |
20100005434 | Wang | Jan 2010 | A1 |
20100042958 | Moroz | Feb 2010 | A1 |
Entry |
---|
Non-Final Office Action for U.S. Appl. No. 12/987,064 mailed on Jun. 11, 2012. |
Non-Final Office Action for U.S. Appl. No. 12/987,072 mailed on Apr. 4, 2012. |
Notice of Allowance dated Oct. 4, 2012 for U.S. Appl. No. 12/987,064. |
Notice of Allowance dated Jul. 13, 2012 for U.S. Appl. No. 12/987,072. |
Number | Date | Country | |
---|---|---|---|
60795795 | Apr 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11741699 | Apr 2007 | US |
Child | 12987067 | US |