The present disclosure is related generally to the field of microelectronics. More specifically but not exclusively, the present disclosure is related to semiconductor device testing.
A basic test program to be run on an automated test equipment (ATE) includes test patterns or stimuli that specify inputs and expected outputs for the logical functions that a device is expected to perform. In addition, the program includes test flow information as well as test hardware information so that all the necessary voltage levels, waveforms and clock frequencies will be created. Test pattern and test timing information for the program may be derived from a simulated test of a model of the device. Translation from software-modeled simulation tests to test patterns may often be challenging, however, especially for more advanced devices. Because a test pattern is not validated until actual testing by the ATE, it is not always clear whether results are accurate. For example, a failed test may be a result of a physically defective device or test hardware, but it may also be a result of an incorrect test pattern. A time-consuming silicon debug of the device as well as a test pattern debug may then be required to find the cause of the failure.
The present invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:
Embodiments of the present invention include, but are not limited to, testing methods and systems.
Various aspects of the illustrative embodiments will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced with only some of the described aspects. For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to one skilled in the art that embodiments of the present invention may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the illustrative embodiments.
Various operations will be described as multiple discrete operations, in turn, in a manner that is most helpful in understanding embodiments of the present invention, however, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations need not be performed in the order of presentation.
The phrase “in one embodiment” is used repeatedly. The phrase generally does not refer to the same embodiment, however, it may. The terms “comprising”, “having” and “including” are synonymous, unless the context dictates otherwise.
Accordingly, at a next block 106, for the embodiment, simulation data or a simulation trace including the responses of the model to the simulated test may be output. Simulation data from block 106 may then be processed at a block 108 to recover a plurality of trace events that are either drive or strobe events. Additionally, test patterns applied during the simulation to generate the simulation data may also be analyzed in parallel, block 116. Note that in one embodiment, plurality of test patterns from block 116 may have been converted from simulation data by a pattern generation tool or other software to conform to test platform information for an ATE, such as, for example, bus protocols, device function and test vector representation. For the embodiment, the plurality of test patterns from block 116 may then be processed at a block 118 to decode drive or strobe events triggered by the test patterns.
Finally, a comparison may occur at a next block 120, where decoded drive or strobe events (from block 118) may be compared to the recovered plurality of trace events (from block 108) at a plurality of comparison windows. A report may be generated at a block 122 indicating results of the comparison to contribute to a validation of the plurality of test patterns and test timing.
Referring now to
Continuing to refer to block 204, for the embodiment, each interpreted trace event may then be inserted into a corresponding slot in a trace buffer. To illustrate, signal diagram 300 of
Next, at a block 206, for the embodiment, a plurality of test patterns and test timing may be read in. At a block 208, for the embodiment, a test vector from a test pattern may be read and a test event interpreted into a common state of a drive or strobe event. To illustrate, depicted in
At a next block 210, a comparison window may be identified so that a test event and corresponding trace event may be compared at the comparison window. In
More specifically, in one embodiment, the size of the comparison window may be approximately equal to 2Δ(core clock speed/bus clock speed), where Δ is a fixed time approximately equal to one-half the device core clock speed. In one embodiment, the device core clock speed is approximately the fastest clock speed of the semiconductor device. Thus, in
Next, at a block 212, a trace event referenced by a test event may be fetched from a slot in the trace buffer. At a block 214, if the interpreted test event is a drive event, a drive compare may be initiated at a block 216. In one embodiment, the drive compare may be initiated at an approximate end of a boundary of the identified comparison window. In one embodiment, the drive compare may be initiated at approximately one picosecond before the end of the identified comparison window. Thus, in
Returning to block 214, where alternately, if the interpreted test event is not a drive event, a strobe compare may be initiated at a block 217. In one embodiment, the comparing of the test event includes initiating a strobe compare at a strobe edge in an identified comparison window. Thus, for example, in
If, after the strobe compare in block 217, the events do not match (e.g. T0 (strobe-low state) and D1 (drive-high state) at 326), a violation may be reported at a block 222. Note that in various embodiments, a bus contention may be detected as a result of test and trace events that do not match. Finally, after a violation is reported, in one embodiment, an inquiry may occur at a next block 224 as to whether the last test vector has been processed. If so, the process may end. If not, the process may return to block 208 to read in another test vector of a test pattern to begin another comparison.
Note that in one embodiment, when a test pattern signal does not include a drive or strobe event for a particular test cycle, the current test pattern cycle may inherit a test event from a previous test pattern cycle. The inherited test event may then be compared to an interpreted trace event from the trace buffer.
Thus, it can be seen from the above descriptions, one or more novel methods for test pattern comparison have been described. While the present invention has been described in terms of the foregoing embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described. Embodiments of the present invention can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the description is to be regarded as illustrative instead of restrictive on the present invention.