The present invention is directed to testing of integrated circuits (ICs). Various aspects of the invention may be particularly useful for modeling defects and generating high quality test patterns to test ICs for defects that occur during or after the manufacturing process.
A wide range of fault models have been used to generate test patterns for detecting faults in integrated circuits, such as stuck-at, bridging, inter-cell-opens, and transition-faults among others. These fault models share the assumption that faults only occur between library cell instances, at the ports of library cells, and between the interconnect lines outside of library cells. Today's automated test pattern generation (ATPG) tools apply these standard fault models and either assume no faults within library cells, or consider only those faults inside library cells based on the gate models used by the ATPG. These gate models are useful for injecting faults at the cell ports or at the primitive cell structures used by the ATPG, but not suitable for modeling real layout-based defects inside library cells.
Techniques to specifically target cell-internal defects have been proposed. For example, N-detect, embedded-multi-detect (EMD), and gate-exhaustive testing have shown considerable success in detecting (or “covering”) some previously un-modeled defects. However these newly developed techniques may be too complex for real-world designs, or they only improve the likelihood of detecting cell-internal defects in a probabilistic fashion rather than target them in a deterministic fashion. In N-detect testing, the chance of detection is improved by targeting the same fault multiple times under different conditions. This typically increases the number of patterns by a factor of N, however, and therefore makes the test costly. The EMD-based approach increases the number of different defects that can be detected (sometimes referred to as defect “coverage”) by exploiting unused bits in the existing ATPG patterns. Unlike the methods based on N-detect, no additional test patterns are needed with the EMD-based approach. Nevertheless, there exists only a probabilistic relation to actual defects for both techniques. Thus, it is difficult to quantify the additional defect coverage provided by these techniques relative to conventional techniques, and to predict the resulting benefit for future designs. While the gate-exhaustive testing method is able to cover intra-cell defects, the method also tends to generate a very large number of additional patterns and result in high test costs.
Aspects of the invention relate to cell-aware pattern generation and fault model creation to test ICs for defects that occur during or after the manufacturing process. In various embodiments of the invention, cell-aware fault models are created based on a transistor-level netlist extracted from a library cell's layout view. The cell-aware fault models may be used to generate test cubes and patterns with high defect coverage. According to examples of the invention, test patterns may be generated through a standard ATPG process first. The cell-aware fault models are then applied to embed additional assigned values (e.g., additional test cubes) in the generated test patterns, thereby allowing the defect coverage to be increased without increasing the number of test patterns.
a illustrates a standard model ATPG example;
Various aspects of the present invention relate to techniques for generating cell-aware fault models and test patterns to test ICs for defects that occur during or after the manufacturing process. In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances, well-known features have not been described in details to avoid obscuring the present invention.
Some of the techniques described herein can be implemented in software instructions stored on a computer-readable medium, software instructions executed on a computer, or some combination of both. Some of the disclosed techniques, for example, can be implemented as part of an electronic design automation (EDA) tool. Such methods can be executed on a single computer or a networked computer.
Although the operations of the disclosed methods are described in a particular sequential order for convenient presentation, it should be understood that this manner of description encompasses rearrangements, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Additionally, the detailed description sometimes uses terms like “determine” and “generate” to describe the disclosed methods. Such terms are high-level abstractions of the actual operations that are performed. The actual operations that correspond to these terms will vary depending on the particular implementation and are readily discernible by one of ordinary skill in the art.
Various embodiments of the invention may be implemented through the execution of software instructions by a computing device, such as a programmable computer. Further, various embodiments of the invention may be implemented by a computer executing various software instructions for performing the functionality of the invention, or by software instructions for performing the functionality of the invention stored on a computer-readable medium. Accordingly,
The processing unit 105 and the system memory 107 are connected, either directly or indirectly, through a bus 113 or alternate communication structure, to one or more peripheral devices. For example, the processing unit 105 or the system memory 107 may be directly or indirectly connected to one or more additional memory storage devices, such as a “hard” magnetic disk drive 115, a removable magnetic disk drive 117, an optical disk drive 119, or a flash memory card 121. The processing unit 105 and the system memory 107 also may be directly or indirectly connected to one or more input devices 123 and one or more output devices 125. The input devices 123 may include, for example, a keyboard, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a camera, and a microphone. The output devices 125 may include, for example, a monitor display, a printer and speakers. With various examples of the computer 101, one or more of the peripheral devices 115-125 may be internally housed with the computing unit 103. Alternately, one or more of the peripheral devices 115-125 may be external to the housing for the computing unit 103 and connected to the bus 113 through, for example, a Universal Serial Bus (USB) connection.
With some implementations, the computing unit 103 may be directly or indirectly connected to one or more network interfaces 127 for communicating with other devices making up a network. The network interface 127 translates data and control signals from the computing unit 103 into network messages according to one or more communication protocols, such as the transmission control protocol (TCP) and the Internet protocol (IP). Also, the interface 127 may employ any suitable connection agent (or combination of agents) for connecting to a network, including, for example, a wireless transceiver, a modem, or an Ethernet connection. Such network interfaces and protocols are well known in the art, and thus will not be discussed here in more detail.
It should be appreciated that the computer 101 is illustrated as an example only, and it not intended to be limiting. Various embodiments of the invention may be implemented using one or more computing devices that include the components of the computer 101 illustrated in
The module for cell-aware fault model creation 200 may include, as shown in
As will be discussed in more detail below, the layout extraction module 202 receives layout data for a cell from the layout data database 201. The layout data may be, for example, in the GDS2 format. The module 202 then performs an extraction process to generate a transistor-level netlist from the layout data. Various conventional techniques can be used to perform the extraction process, such as the CALIBRE® Layout-Versus-Schematic (LVS) tool provided with the CALIBRE® family of physical verification software tool available from Mentor Graphics Corporation of Wilsonville, Oreg. The transistor-level netlist may be stored in the transistor-level netlist database 203 for subsequent operations. The extracted netlist may be, for example, in the SPICE format.
The defect extraction module 204 determines a list of defects of interest for the cell based on the layout data stored in the database 201 and the transistor-level netlist stored in the database 203. Various conventional tools may be used for the extraction process, such as the CALIBRE® xRC™ parasitic extraction tool provided with the CALIBRE® family of physical verification software tool available from Mentor Graphics Corporation of Wilsonville, Oreg. As will be appreciated from the following discussion, the cell-aware fault model creation module 200 can generate fault models and corresponding test patterns for a variety of different defects Accordingly, with various examples of the invention, the defect extraction module 204 can be configured to extract any desired defects that are of interest to a particular user or users. The extracted list of defects of interest may be stored in the defects of interest database 205.
The analog simulation module 206 injects a defect selected from the list of defects stored in the defects of interest database 205 and then performs analog simulation to determine whether the defect is detectable. If it determines that the defect is detectable, the analog simulation module 206 further determines the detection conditions for detecting the defect. The detection conditions may then be used by the fault model synthesis module 208 to generate cell-aware fault models, which are stored in the cell-aware fault models database 209.
As previously noted, various embodiments of the invention may be embodied by a computing system, such as the computing system illustrated in
It should be appreciated that, while the module for cell-aware fault model creation 200 includes, in
Various methods of fault model creation and test pattern generation according to embodiments of the invention will now be discussed with respect to the flowchart illustrated in
The flow illustrated in
In the layout extraction operation 320, the layout extraction module 202 extracts a transistor-level netlist from a layout design (or layout data) of a library cell. As will be appreciated by those of ordinary skill in the art, a layout design represents the features of an electrical circuit using geometric elements. The geometric elements in turn correspond to the physical structures that will be formed on a substrate during a lithographic process to create the circuit. The layout design may be in any desired data format. Data for IC layout descriptions can be provided in many different formats. The Graphic Data System II (GDSII) format is a popular format for transferring and archiving 2D graphical IC layout data. Among other features, it contains a hierarchy of structures, each structure containing layout elements (e.g., polygons, paths or poly-lines, circles and textboxes). The elements are situated on layers. Other formats include an open source format named Open Access, Milkyway by Synopsys, Inc., EDDM by Mentor Graphics, Inc., and the more recent, Open Artwork System Interchange Standard (OASIS) proposed by Semiconductor Equipment and Materials International (SEMI).
As will also be appreciated by those of ordinary skill in the art, the transistor-level netlist is a listing (e.g., a text-based listing) of the significant components of interest in the circuit and their associations. For example, the netlist may list transistors, capacitors, resistors, diodes, and their connections. The netlist may also be in any desired data format, such as, for example, the SPICE data format. With various examples of the invention, the layout extraction module 202 may employ (or, alternately, be implemented by) any suitable electronic design automation (EDA) layout extraction tool can be used to extract the transistor-level netlist from the circuit's layout design. For example, some implementations of the invention may use the Layout-Versus-Schematic (LVS) tool included in the CALIBRE® family of electronic design automation physical verification tools available from Mentor Graphics Corporation of Wilsonville, Oreg. As will be appreciated by those of ordinary skill in the art, by extracting the transistor-level netlist from the layout design, this type of layout extraction tool can correlate geometric elements in the layout design with components in the transistor-level netlist.
In the defect extraction operation 340, the defect extraction module 204 extracts defects of interest from the layout design. Defects of interest could be, for example, bridges between internal nets, bridges to power or ground lines (i.e., Vdd/Vss), missing contacts (i.e., opens), or some combination of different defects. As will be appreciated by those of ordinary skill in the art, there are a variety of electronic design automation tools that may be used by various embodiments of the invention to extract the defects of interest from the layout design. For example, some implementations of the invention may use a parasitic extraction tool, such as one or more of the CALIBRE® xRC™ tools included in the CALIBRE® family of electronic design automation physical verification tools available from Mentor Graphics Corporation of Wilsonville, Oreg. As will be appreciated by those of ordinary skill in the art, a parasitic extraction tool like the CALIBRE® xRC™ tools analyzes the geometric elements in a layout design to identify parasitic features, such as capacitive and inductive features, that would be produced in a circuit manufactured from the layout design.
As will be appreciated by those of ordinary skill in the art, these tools may provide the defects of interest as parasitic features associated with a collection of geometric elements or location data for geometric elements in the layout design. Moreover, because the layout extraction operation 320 produces the transistor-level netlist so that the components in the netlist can be correlated with the geometric elements in the layout design, the netlist also can be correlated with the geometric elements included defects of interest. In this manner, the position of the defects of interest relative to the components in the transistor-level netlist can be determined, and the defects can later be included in the transistor-level netlist.
Next, the analog simulation module 206 performs the analog fault simulation operation 360 on the extracted netlist including the defects of interest. With some embodiments of the invention, the analog simulation module 206 will perform a number of analog simulations for every library cell. The total number of analog simulations that have to be performed, when only one cycle test patterns (non-sequential) are analyzed, may be: n=2m·(d+1), where m and d denote the number of inputs of the library cell and the number of considered defects, respectively, and the operand “+1” correlates to a fault-free simulation. The number of library cell inputs typically is in the range of 1 to 8, while the number of defects could easily be a few hundreds. With today's analog simulators and computer hardware, these simulations can be completed within a few days of run time for a complete cell library. With various implementations of the invention, the analog simulation module 206 may employ (or be implemented using) the ELDO® family of simulation tools available from Mentor Graphics Corporation of Wilsonville, Oreg.
In the case of analog fault simulation of sequential patterns, e.g. to analyze whether an open is detected, robust and non-robust fault simulations may be treated differently. For robust simulations only one cell-input is allowed to change its state from one cycle to another. For non-robust simulations multiple inputs may change their state from one cycle to the next.
For robust sequential tests, the total number of analog simulations for a sequential analysis with 3 cycles (i.e. an initial and a final cycle) is:
N
2(robust)=2m·m·(d+1).
For non-robust sequential tests, the total number of analog simulations for a sequential analysis with 3 cycles (i.e. an initial and a final cycle) is:
N
2(robust)=2m·(2m−1)·(d+1).
A defect may be inserted by modifying the transistor-level netlist or netlist object values (e.g. resistor values). For example, if a bridge is a defect candidate, then a resistor is inserted between the corresponding two nets. For an open fault, the corresponding electrical object (e.g. transistor gate, resistor, capacitor or the wire) is disconnected (or a very high resistance is included) during the analog simulation.
After a particular defect has been inserted, an exhaustive (or a reduced one in case of robust sequential tests) set of digital input patterns may be simulated on the modified netlist according to some embodiments of the invention. Additionally, each cell may be simulated without defects in order to determine the golden voltage (i.e., the expected voltage) at the cell outputs for every cell-input combination. The simulations are analog DC-analysis simulations which can determine the steady state voltage of the cell output(s). For sequential patterns, a transient analysis is performed.
In accordance with some embodiments of the invention, the analog simulation module 206 may consider a defect detectable if at least for one input combination (or assignment), one or more of the cell's output ports produce a voltage which is inverted to the golden voltage and the produced defective voltage must be in the range of 80%-100% of the supply voltage, or produce a voltage of only 0% to 20% of the golden voltage. Of course, with still other implementations of the invention, the deviation threshold may also be specified by users. The simulations may be automated by a set of scripts around a state-of-the-art analog simulator.
The output of the analog fault simulation operation 340 may be a detection matrix in some embodiments of the invention. The detection matrix' rows and columns refer to input combinations and defects, respectively.
In the cell aware synthesis operation 380, the fault model synthesis module 208 synthesizes cell-aware library views (or cell-aware library models). According to some embodiments of the invention, this synthesis operation will extract a set of necessary input assignments for each fault to relax the future pattern generation process. The following is an example of an algorithm that can be used to implementing the cell aware synthesis operation 380:
Assuming a detection matrix D is generated for an n-input library cell C implementing the combinational Boolean function F, for every fault d specified in D the algorithm generates a detection function gd( ). This detection function incorporates all fully defined input-assignments which would be required to detect d, i.e. input assignments without don't-cares (or necessary input assignments). As will be appreciated by those of ordinary skill in the art, don't-cares may refer to input ports of a cell or bits in test patterns of which values are irrelevant to detecting defects of interest.
Next, every detection-function is combined with function F and its inverse F′ in order to find the corresponding output assignment for every cube contained in gd( ). After that, all prime cubes of the resulting functions gdF( ) and gdF′( ) are collected in the set Rd.
Finally the algorithm compresses identical cubes with respect to all sets Rd and the corresponding fault information in two sets P and M, where P denotes the final set of primes cubes (the union of all prime cubes contained in all sets Rd, d member of D), and M denotes a set of sets containing every fault d detected by the corresponding prime cube. The mapping between an element of P and a set in M is defined via their indices. This means that the cube Pi detects all faults contained in the set Mi. Note that the described algorithm can be easily extended to handle sequential detection matrices.
With various implementations of the invention, the cell aware pattern generation module 210 may generate cell-aware patterns based on the cell-aware fault models. In some embodiments of the invention, defects may be injected on a library cell's ports, rather than on inputs or outputs of ATPG primitives.
In traditional stuck-at ATPG (SA-ATPG), the fault position (the initial D-frontier position) and the condition for the fault excitation are usually predefined for every ATPG-primitives. In
By comparison, a cell-aware ATPG (CA-ATPG) process for the same multiplexer is shown in
A typical cell-aware fault model usually provides more than one input port assignment for each fault, so there is a set of assignments for an intra-cell defect. A CA-ATPG process can take advantage of it to produce a set of test patterns not only with high defect coverage but also highly compact.
While the invention has been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the invention as set forth in the appended claims. For example, while specific terminology has been employed above to refer to electronic design automation processes, it should be appreciated that various examples of the invention may be implemented using any desired combination of electronic design automation processes.
This application claims priority to U.S. Provisional Patent Application No. 61/157,651, entitled “Defect-Oriented Fault Model Creation And Pattern Generation,” filed on Mar. 5, 2009, and naming Friedrich Hapke et al. as inventors, which application is incorporated entirely herein by reference.
Number | Date | Country | |
---|---|---|---|
61157651 | Mar 2009 | US |