1. Field of the Invention
The present invention generally relates to designing of integrated circuits (“IC” or “chip”) and, more specifically, to a method and program product for implementing scan-test objects into a register-transfer level (RTL) circuit description of integrated circuits and extracting additional information useful in implementing scan chains and, optionally, test points in a gate-level description.
2. Description of Related Art
In the design of integrated circuits, it is commonplace for circuit designers to develop a RTL description of the circuit. To provide for scan testing of the circuit, test structures and scan chains are typically inserted into the circuit after the RTL circuit description has been synthesized into a gate level description using a technology library.
It would be desirable to insert scan related structures at RTL to accelerate the implementation of a scan-based test (ATPG or BIST) and improve the compatibility of the implementation process with the physical design tools which minimize, if not eliminate, access to a gate level circuit description derived from the RTL. These tools are often referred to as RTL-to-GDSII physical design tools. GDSII, which stands for “Graphic Design System II”, is a binary file format, classified as a “data interchange format”, used for transferring mask-design data between an IC designer and a fabrication facility (“Fab”). At the Fab, the GDSII data is converted into a machine-readable language called CATS (for Computer Aided Transcription Software) which transcribes the data so that it can be read by photomask systems used in the manufacture of semiconductors.
Heretofore, the gate level circuit description has been used by test tools to perform tasks such as checking design rules and inserting and partitioning scan chains. For circuits implementing embedded test or BIST circuits, separate pieces of RTL circuit description, are synthesized in a separate step and added to the gate level circuit description.
It is well known that significantly less time and computer memory are necessary to analyze RTL descriptions than gate-level descriptions because RTL descriptions abstract many details that are not relevant to the type of analysis needed for embedded test circuit insertion. A circuit designer can debug design rules faster and/or perform trade-off analyses (e.g. number of scan chains vs. length of scan chains) much faster using the RTL description.
Wang et al. United States Published Application No. U.S. 2003/0023941 A1 proposes inserting all test circuitry, including test controllers and scan chains, into the RTL description. The insertion of test controllers is desirable because it provides a complete RTL description for physical design tools. Insertion of test controller RTL into the original RTL description is acceptable because test controllers are localized circuits that have virtually no impact on the original RTL description. However, there are two major drawbacks to modification of the RTL description to describe scan chains. First, the scan chains descriptions have a dramatic impact on the RTL description because it affects most of the original RTL description. This makes it very difficult for the IC designer to debug. Second, the placement of scannable memory elements is fixed in position, precluding optimization scan chain ordering which is often used to reduce the area of scan-tested circuits.
There is a need for a circuit design method which overcomes the above discussed disadvantages of the prior art.
The present invention seeks to provide a method and program product for quickly analyzing RTL circuit descriptions, incorporating into the RTL circuit description of test logic of objects necessary to implement a scan test and provide an RTL description of the test logic that is insensitive to the final implementation of the circuit by the physical design tool(s). In addition, the present invention provides information related to the connection of control signals of scan testable memory elements to physical design tools. The present invention modifies the original RTL circuit to include all scan ports to cores (or modules) whose footprint need to be preserved.
In general, the present invention is generally defined as a method of designing a scan testable integrated circuit with embedded test objects for use in scan testing the circuit, comprising: compiling a register-transfer level (RTL) circuit description of the circuit into an unmapped circuit description; extracting information from the unmapped circuit description for use in generating and inserting RTL descriptions of test objects into the RTL circuit description and for use in generating and inserting scan chains into the circuit; generating and inserting RTL descriptions of the test objects into the RTL circuit description to produce a modified RTL circuit description; storing the modified RTL circuit description; synthesizing the modified RTL description into a gate level circuit description of the circuit; and constructing and inserting scan chains into the gate level circuit description according to information extracted from the unmapped circuit description.
These and other features of the invention will become more apparent from the following description in which reference is made to the appended drawings in which:
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention, However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components and circuits have not been described in detail so as not to obscure aspects of the present invention.
The insertion of test circuitry also requires replacing functional memory elements with scannable memory elements and interconnecting the scannable memory elements to form scan chains which are used to load test stimuli into the memory elements and unload test responses, as is well known in the art. A scannable memory element includes a functional memory elements plus one or more multiplexers associated with the memory element, serial interconnection of the memory element with other scannable memory elements under control of control signals. It will be seen that substitution of scannable memory elements for functional memory elements at RTL would have a dramatic affect on the circuit RTL in that it would make the RTL description extremely difficult to debug and would prevent scan chain ordering which is used to reduce the area of scan-tested circuits.
Applicants have found that these and other problems can be overcome by the embedded test insertion flow of the present invention, generally illustrated in
The unmapped (or technology independent) circuit description will contain information required to embed test objects into the circuit RTL, including names and other details of cores, clock domains, ports, functional memory elements, and the like.
The unmapped description may be subjected to a scan design rules check. However, this check is optional. Skipping scan rules checking at this stage and assuming that rules will be checked later allows for generation of test controllers and quickly obtaining a gate count estimate and floorplan.
The unmapped description is analyzed to extract this information at step 32. The analysis is performed using user constraints or directives such as non-scannable memory elements, maximum number of chains, maximum scan chain length, cores, memory etc. The information is used by a software tool at step 34 to generate RTL descriptions of predetermined and/or desired test objects and associate test object port names with corresponding circuit port names in the test object insertion process. The information is also used to provide of scan ports for each of the cores to which scan chains will be connected in the scan chain insertion process at step 40. The test object insertion process results in a modified circuit RTL which will contain all test objects and cores with scan ports, but without scan chains or test points. It will be understood that test points of the type used for isolation, such as uncontrollable logic or core isolation in hierarchical case, will be inserted at RTL. Test Points related to circuit nodes with low controllability and/or observability are not inserted at RTL, but rather at the gate-level. This results in an RTL description which is very similar to the original RTL and, thus, which can be easily debugged if necessary. While scan chains and test points are not inserted at this stage, it is possible to specify scan chains configurations and store the configurations a scan chain specification for use at step 40.
The analysis of the partially synthesized description may include a number of steps including determining the location of test points; identifying and counting functional memory elements, including, optionally, test points, identifying the clock domain associated to each memory element; and, if the Applicants' Capture-by-Domain invention is employed (see U.S. Pat. No. 6,115,827 issued on Sep. 5, 2000 for “Clock Skew Management Method and Apparatus”), identifying source and destination memory elements of paths between clock domains if the Capture-by-Domain, and, associating each source and destination memory element, to a capture disable group; determining the number of scan chains based on the number of clock domains and user constraints; and assigning each memory element to a group of memory elements of the same domain to be connected in a chain.
The scan Chain Specification is generated to include for each group of memory elements, a group serial input port, a group serial output port, a list of memory elements, and, for each memory element, a serial input port; a serial output port; a scan enable port; a memory element type; and control signals including capture disable group for the Capture-by-Domain embodiment.
For each memory element type, an equation describing the connection of the serial input port; and an equation describing the connection of the scan enable port; and, for each a capture disable group, a combination of memory elements making the capture disable inactive are provided.
For each test point, if included, information is provided to guide the test point insertion process in the design tool, including controlability and observability values of signals that are identifiable in both the RTL and gate-level descriptions. The signals are inputs and output signals of the module or process containing the test point.
As indicated earlier, the modified RTL description is synthesized into a gate level circuit description, The gate-level circuit description is analyzed to ensure that all predetermined scan design rules are satisfied. Rules checking is done mostly to ensure that no errors were introduced during the synthesis and layout steps, due to ECO changes for example, and that the test objects are still consistent with the circuit.
The gate level circuit description is then modified by constructing and inserting scan chains between core scan ports using the scan chain configuration information contained in the scan chain specification, to produce a modified gate level circuit description (step 40). This step is performed by physical design tools using the scan chain specification.
Test Points
The present invention also provides for prediction of test points locations. The test points of concern at this stage relate to circuit nodes with low controllability and/or observability. Isolation test points are test objects which inserted in the RTL circuit description, as previously mentioned. The location of the test points provides for determining the number of additional memory elements that may be required in each clock domain. The test point memory elements are also described in the scan chain specification. The information is also used in the generation of the test logic. The test points can be predicted using controllability and observability measures such as those described in Applicant's U.S. Pat. No. 6,363,520 issued on Mar. 26, 2002 for “Method for Testability Analysis and Test Point Insertion at the RT-Level of a Hardware Development language (HDL) Specification” (Docket No. LVPAT010), incorporated herein by reference.
The test points are not inserted in the RTL description. Rather, the location of test points is calculated using a gate-level representation (mapped or unmapped), perhaps with information (controllability and observability measures) extracted at the RTL level (step 32).
As already mentioned, the present invention supports the advanced requirements such as Applicant's Capture-by-Domain invention of U.S. Pat. No. 6,115,827 issued on Sep. 5, 2000 for “Clock Skew Management Method and Apparatus” (Docket No. LVPAT008); the Multi-Cycle Path management invention of Applicant's U.S. Pat. No. 6,145,105 issued on Nov. 7, 2000 for “Method and Apparatus for Scan Testing Digital Circuits”, (Docket No. LVPAT002), and the shared isolation invention of Applicant's U.S. Pat. No. 6,615,392 issued on Sep. 2, 2003 for “Hierarchical Design and Test System, Program Product Embodying the Method, and Integrated Circuit Produced Thereby,” (Docket No. LVPAT020), all incorporated herein by reference.
The present invention further provides a program product which is stored on a computer readable storage medium on which is embedded one or more computer programs for designing a scan testable integrated circuit with embedded test objects for performing scan tests of the circuit. The one or more computer programs comprise a set of instructions for performing the above described method of the present invention.
In a preferred embodiment, the present invention provides a suite of software automation tools which inserts a set of embedded test objects into an integrated circuit for use in testing and diagnosing errors an IC. The tools include an embedded test creation tool which focuses on design predictability and ease-of-use combined with an increased level of test quality. The tool includes features, such as an top-down RTL rule checker which extracts design information from the RTL or netlist, and greatly improves embedded test insertion predictability.
The flow matches embedded test partitioning with the physical block partitioning of an IC. Heretofore, power, true at-speed testing, block speed binning forced a user to partition the embedded test logic differently from that of physical logic. Physical blocks that are large enough are best tested with a local logic test controller. This makes the test self-contained and simplifies the test interface at the block boundary. Smaller physical blocks can be tested by a top-level logic test controller.
The automation tool 50 of the present invention comprises four major components which are utilized at different stages of an IC design flow. While the components are shown as separate elements, it will be understood that they may be combined in a single tool. The components are diagrammatically illustrated in
Tool 52 determines whether a circuit design meets predetermined embedded test requirements, determines the location for test points and dedicated isolation cells in the circuit and extracts all pertinent design information from the RTL that will be required to generate to insert embedded test objects into the RTL circuit description and a scan chain specification. In order to extract the information, the tool compiles the circuit RTL into an unmapped circuit description, as described earlier.
Tool 54 plans the test object insertion process and generates a test object environment in which descriptions and details of the generated test objects will be stored.
Tool 56 performs the test object insertion process. In lower physical regions or cores of the circuit, the tool inserts embedded test controllers, such as TAPs, memory test controllers, and logic test controllers, creates scan ports on the block module, inserts RTL test points and any dedicated isolation cells determined by tool 52. At the chip top level, the tool inserts all top level embedded test objects, such as TAPs, boundary scan, logic test, and memory test, etc. into the circuit RTL and performs early verification of the embedded test objects in the design. The output of tool 56 is the aforementioned modified RTL circuit description which is synthesized into a gate level circuit in a subsequent step.
A scan chain insertion tool 58 generates and inserts scan chains and test points into the gate level description. There are generally three ways in which modify the gate-level circuit description can be modified. In all cases, the gate-level circuit description is modified at an early stage of optimization so that any potential impact of test points can be neutralized. Modification of a mapped netlist generated from the design tool will work best with design tools which provide a feature by which small changes, such as the insertion of test points, does not reduce significantly the ability of the design tool to perform optimization of the gate-level circuit. Modification of the mapped circuit description, via an API (Application Programming Interface), which performs the insertion directly in the design tool under the control of a series of commands (e.g. TCL scripts) that will take the scan chain specification as input. This approach preserves the ability of the design tool to perform optimization of the gate-level circuit. The scan chain specification can be generated entirely by the RTL analysis tool 52 or partially from tool 52 and tool 58 which extracts information from a gate-level netlist generated by the design tool. In one embodiment, shown in
Tools 52, 54 and 56 operate at RTL while tools 58 operates at the gate-level, after the modified RTL circuit description has been synthesized into the gate-level circuit description.
Although the present invention has been described in detail with regard to preferred embodiments and drawings of the invention, it will be apparent to those skilled in the art that various adaptions, modifications and alterations may be accomplished without departing from the spirit and scope of the present invention. Accordingly, it is to be understood that the accompanying drawings as set forth hereinabove are not intended to limit the breadth of the present invention, which should be inferred only from the following claims and their appropriately construed legal equivalents.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/577,171 filed Jun. 7, 2004, incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60577171 | Jun 2004 | US |