Method for automatically generating checkers for finding...

Computer-aided design and analysis of circuits and semiconductor – Nanotechnology related integrated circuit design

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C703S014000, C703S017000

Reexamination Certificate

active

06175946

ABSTRACT:

CROSS-REFERENCE TO MICROFICHE APPENDICES
Microfiche appendices 1-33 (of 52 sheets and 3,020 frames) that are attached hereto contain source code in C language for programming a computer, are a part of the present disclosure, and are incorporated by reference herein in their entirety.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent files or records, but otherwise reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
The present invention relates generally to a method implemented by a programmed computer for verifying the functionality of digital circuits during development and testing. More specifically, the invention relates to an automated method for finding defects in a description of a digital circuit that is to be simulated, emulated or implemented in a semiconductor die.
BACKGROUND OF THE INVENTION
Modern digital electronic circuits are typically designed at the register-transfer (RTL) level in hardware description languages such as Verilog (see “The Verilog Hardware Description Language,” Third Edition, Don E. Thomas and Philip R. Moorby, Kluwer Academic Publishers, 1996) or VHDL (see “A Guide to VHDL”, Stanley Mazor and Patricia Langstraat, Kluwer Academic Publishers, 1992). A circuit description in such a hardware description language can be used to generate logic circuit elements as described, for example, in U.S. Pat. No. 5,661,661 granted to Gregory and Segal.
Such hardware description languages facilitate extensive simulation and emulation of the described circuit using commercially available products such as Verilog-XL available from Cadence Design Systems, San Jose, Calif., QuickHDL available from Mentor Graphics, Wilsonville, Oreg., Gemini CSX available from IKOS Systems, Cupertino, Calif., and System Realizer available from Quickturn Design Systems, Mountain View, Calif. These hardware description languages also facilitate automatic synthesis of ASICs (see “HDL Chip Design”, by Douglas J. Smith, Doone Publications, 1996; “Logic Synthesis Using Synopsys”, Pran Kurup and Taher Abbasi, Kluwer Academic Publishers, 1997) using commercially available products such as Design Analyzer and Design Compiler, available from Synopsys, Mountain View, Calif.
As described in “Architecture Validation for Processors”, by Richard C. Ho, C. Han Yang, Mark A. Horowitz and David L. Dill, Proceedings 22
nd
Annual International Symposium on Computer Architecture, pp. 404-413, June 1995, “modern high-performance microprocessors are extremely complex machines which require substantial validation effort to ensure functional correctness prior to tapeout” (see page 404). As further described in “Validation Coverage Analysis for Complex Digital Designs” by Richard C. Ho and Mark A. Horowitz, Proceedings 1996 IEEE/ACM International Conference on Computer-Aided Design, pp. 146-151, November 1996, “the functional validation of state-of-the-art digital design is usually performed by simulation of a register-transfer-level model” (see page 146).
It is well known to monitor the operation of a simulation test by using, for example, “snoopers” generated manually as described at page 463, column 2, in “Hardware/Software Co-Design of the Stanford FLASH Multiprocessor”, by Mark Heinrich, David Ofelt, Mark A. Horowitz, and John Hennessy, Proceedings of the IEEE, Vol 85, No. 3, pp. 455-466, March 1997, and in “Functional Verification Methodology for the PowerPC 604 Microprocessor”, by James Monaco, David Holloway and Rajesh Raina, Proceedings 33
rd
IEEE Design Automation Conference, pp. 319-324, June 1996.
Another prior art system monitors the operation of a simulation test by using a “golden model” that is “written without reference to the RTL” and is “co-simulated using the same set of test vectors”, as described by Chian-Min Richard Ho, in “Validation Tools for Complex Digital Designs”, Ph.D. Dissertation, Stanford University Computer Science Department, November 1996 (at page 6, Section 2.1).
Prior-art products (for example, see the “Purify” product from Pure Atria, Sunnyvale, Calif., and the “Insure++” product from ParaSoft, Monrovia, Calif.) exist for testing software programs that may be written, for example in the programming language “C” described by Brian W. Kernighan and Dennis M. Ritchie in the book “The C Programming Language”, Second Edition, PTR Prentice Hall, 1988. See “Purify User's Guide, Version 4.0”, Pure Atria Corporation, 1996, and “Insure++ Automatic Runtime Debugger User's Guide”, ParaSoft Corporation, 1996.
SUMMARY
A computer, when programmed in accordance with the invention, receives as input a description of a circuit undergoing functional verification (also called “circuit-under-verification”). The programmed computer uses the circuit's description to automatically describe additional circuits (hereinafter “checkers”) that can flag defects during verification of the description of the circuit.
In one embodiment, the programmed computer automatically converts a circuit's description into a graph of (1) nodes that represent, e.g. storage elements (such as registers) or logic elements, or both (sometimes referred to as “circuit elements”) and (2) connections that represent, e.g. the flow of data among the circuit elements. Next, the programmed computer automatically examines the graph for instances of a pattern (e.g. an arrangement of nodes and connections) that is associated with a known defective behavior. On finding such an instance, the programmed computer generates instructions describing a checker to monitor behavior the instance. The instructions can be, for example, in a hardware description language such as Verilog or VHDL.
When the instructions are implemented, the checker generates an error message each time the monitored behavior conforms to a known defective behavior. Specifically, each checker is coupled to the circuit elements represented by the corresponding instance, and monitors the signals flowing to and/or from the circuit elements for conformance with the known defective behavior.
The checkers can be described in a hardware description language (e.g. the language “Verilog”) for use in simulation (or emulation) simultaneous with the simulation (or emulation) of the circuit-under-verification. Alternatively, the checkers can be implemented in a semiconductor die along with the circuit-under-verification. In another embodiment, a programmed computer generates instructions for checkers in a software language (e.g. the C language or machine language depending on the implementation), and during simulation of the circuit-under-verification, such instructions for the checkers are executed directly (e.g. after compilation) by a computer.
The above-described pattern and the known defective behavior are predetermined, e.g. by manual inspection of a number of actual defects and identification of the behavior associated with such defects. Specifically, a number of errors that are identified as functional defects in errata sheets of actual designs are analyzed to identify a common defective behavior, e.g. loss of data in a storage element when the data is overwritten without being used. The errata sheets can include descriptions of conditions related to the defective behavior, for example, buffer overflows, pipeline stalls or unexpected interactions between multiple controllers. Next, the common defective behavior is analyzed to identify an arrangement (of nodes and connections) associated with the common defective behavior.
Thereafter, the computer is programmed to automatically generate a checker that monitors each instance of such an arrangement for behavior in conformance with the common defective behavior. In one example, an arrangement (also called “register leak arrangement”) has at least two nodes for storage elements that are connected sequentially. During automatic ex

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method for automatically generating checkers for finding... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method for automatically generating checkers for finding..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for automatically generating checkers for finding... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2550081

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.