In a system for generating tests for digital circuits, a fault simulator (16) simulates a fault-free version of the circuit and all expected faulty versions of it concurrently, basing its operation on information contained in a data base (12) that contains information about the structure and possible defects of the circuits to be tested. A waveform system (14) carries high-level information regarding the general structure of the test waveform that ultimately is to be derived, such as clock signals, timing constraints, and other restrictions that the designer of the circuit under test has placed on the signals to be applied to it. At each point in this outline waveform at which the system needs to insert input signals, a test generator (18) is called by the waveform system (14) to derive a test vector based on information concerning the layout of the circuit, its possible defects, and its current state, the current state having been communicated to the data base (12) by the fault simulator (16), which determines the states that result from application of a waveform received from the waveform system (14). Even for non-scan-type circuits under test, the test generator derives only one test vector at a time, without searching through sequences of test vectors to find which sequences of test vectors might cause propagation of faults to the output ports of the circuit under test. It nonetheless efficiently derives test waveforms because it chooses among the fault effects of all faulty versions of the circuit concurrently for those effects that are likely candidates for propagation.
A method for developing test sequences that verify the operation of a finite state machine. The method includes developing a set of unique input/output sequences for the various states of the machine and constructing a test sequence for each edge of the machine. The test sequence is a concatenation of a head sequence that brings the machine to the head state of the tested edge, the input/output sequence associated with the tested edge, and a unique input/output sequence which verifies that the machine entered the expected tail state.
A method for developing a test sequence and for testing manufactured digital circuits. Test vectors are developed based on a simulation-based, directed-search approach. Specifically, from a given test vector, a next test vector is developed by altering the given test vector and determining the utility of the altered trial vector in propagating circuit faults to the primary outputs, based on a simulation of the circuit and a preselected cost function. The vector set is created through an iterative process of altering an accepted test vestor to develop a next trial vector. The vector set is efficiently developed by employing one phase that treats the entire set of circuit faults as the target, followed by another phase that targets specific faults that have not been detected in the previous phase.
An algebraic recursion process is defined to solve test conditions for sequential and combinatorial logic devices. The process is shown to be effective in identifying external pin faults, and is valid for in-circuit test conditions. Since only external pin faults are considered, there is no issue of the correspondence of Boolean products to the internal architecture of the device. Processes to identify the fault detection equation and initialization sequence are described and an effective minimization process presented. Functions simple enough to be implemented by logic networks fall within a range which is computationally tractable by the process of the invention.
A circuit analyzer, adapted to run in the memory of a processing system, for characterizing the performance of a circuit under test. The circuit analyzer of the present invention obviates traditional design steps by using gray and transparent circuit elements in addition to the traditional black circuit elements.
A method, apparatus and medium containing a computer program for analyzing timing in circuits. In one embodiment, the invention sets the direction of elements of a circuit by partitioning the circuit to identify a subcircuit including a pullup or pulldown block, then modeling the subcircuit as a single transistor, then setting the direction of that single transistor and then propagating the direction of that single transistor to other elements of the subcircuit. In another embodiment, the invention generates a gray box model by searching paths from a primary clock input of a circuit, determining worst and best paths among the multiple elements of the circuit and incorporating the best and worst path information in the gray box model. In another embodiment, the invention instantiates such a gray box model in a second circuit and performs timing checks on this second circuit.