Claims
- 1. A method of preserving the value of a parameter associated with testing a Device Under Test (DUT), the method comprising the steps of:
(a) executing in a program execution environment a test program that causes stimulus signal values to be dispatched to a DUT through a stimulus pipeline having a first number of stages; (b) sending from the DUT to the program execution environment, and through a response pipeline having a second number of stages, response signal values obtained by operating the DUT with the dispatched stimulus signal values; (c) for each execution cycle of the test program and from a selected location in one of the stimulus and response pipelines, storing in a History FIFO the value of the parameter that is to be retrieved; (d) generating an error signal within the response pipeline, including at the DUT, in response to a selected error condition; (e) adjusting the depth of the History FIFO to correspond to the number of pipeline stages separating the storing in step (c) and the generation of an associated instance of the error signal in step (d); and (f) in response to an error signal generated by step (d), preserving in the History FIFO the parameter value stored at the depth adjusted to at step (e).
- 2. A method as in claim 1 further comprising the step of:
(g) subsequent to step (f), retrieving the value of the parameter preserved in the History FIFO.
- 3. A method as in claim 2 wherein step (a) includes the generation of a Buffer Memory Address and further wherein the parameter of steps (c), (f) and (g) is the Buffer Memory Address.
- 4. A method as in claim 2 wherein the parameter of steps (c), (f) and (g) is response signal values that are in error.
- 5. A method of preserving an error indication stored in an Error Catch RAM (ECR) while testing a Device Under Test (DUT), the method comprising the steps of:
(a) executing in a program execution environment a test program that causes stimulus signal values to be dispatched to a DUT through a stimulus pipeline having a first number of stages; (b) sending from the DUT to the program execution environment, and through a response pipeline having a second number of stages, response signal values obtained by operating the DUT with the dispatched stimulus signal values; (c) subsequent to step (b), storing response signal values in an interim memory disposed along the response pipeline; (d) subsequent to steps (a), (b) and (c), reading stored response signal values from locations in the interim memory and applying them to a Post Decode Circuit that produces error indications of selected types of errors; (e) storing in an ECR the error indications produced by the Post Decode Circuit; (f) storing in an ECR History FIFO the error indications that are stored in step (e); (g) generating an error signal within the Post Decode Circuit in response to a selected error condition in the stored response signal values read in step (d) and applied to the Post Decode Circuit; (h) adjusting the depth of the ECR History FIFO to correspond to the number of pipeline stages separating the storing in step (f) and the generation of an associated instance of the error signal generated in step (g); and (i) in response to an error signal generated by step (g), preserving in the ECR History FIFO the error indication stored at the depth adjusted to at step (h).
- 6. A method as in claim 5 further comprising the step of:
(j) subsequent to step (i), retrieving the value of the error indication preserved in the ECR History FIFO.
- 7. A method of restoring a test program's algorithmic control variables pertaining to the testing of a Device Under Test (DUT), the method comprising the steps of:
(a) executing in a program execution environment a test program that causes stimulus signal values determined in accordance with the test program's algorithmic control variables to be dispatched to a DUT through a stimulus pipeline having a first number of stages; (b) sending from the DUT to the program execution environment, and through a response pipeline having a second number of stages, response signal values obtained by operating the DUT with the dispatched stimulus signal values; (c) for each execution cycle of the test program, storing in a History FIFO the values of the test program's algorithmic control variables that are to be restored; (d) generating an error signal within the response pipeline, including at the DUT, in response to a selected error condition; (e) adjusting the depth of the History FIFO to correspond to the number of pipeline stages separating the execution of a step in the test program and the generation of an associated instance of the error signal in step (d); (f) in response to an error signal generated by step (d), preserving in the History FIFO the algorithmic control variables stored at the depth adjusted to at step (e); (g) subsequent to step (f), restoring the values of the algorithmic control variables to be those preserved in the History FIFO; and (h) executing a step in the test program that alters test program flow in response to the presence of the error signal generated in step (d).
- 8. A method of branching on an error indication within a test program pertaining to the testing of a Device Under Test (DUT), the method comprising the steps of:
(a) executing in a program execution environment a test program that causes stimulus signal values determined in accordance with the test program's algorithmic control variables to be dispatched to a DUT through a stimulus pipeline having a first number of stages; (b) sending from the DUT to the program execution environment, and through a response pipeline having a second number of stages, response signal values obtained by operating the DUT with the dispatched stimulus signal values; (c) testing response signal values within the response pipeline, including at the DUT, to detect an error condition and generate an error indication indicative thereof; (d) at a selected location in the test program executed in step (a), setting a pipeline delay count to correspond to the number of pipeline stages separating the execution of that step in the test program and a subsequent generation in step (c) of an associated error indication; (e) for each execution cycle of the test program subsequent to step (d) and for a non-zero value of the pipeline delay count, decrementing by one the value of the pipeline delay count; (f) generating a substitute qualifier signal whose value has the meaning “NO ERROR” as long as the decremented value of the pipeline delay count is non-zero, and whose value has the actual value of the error indication generated in step (c) when the decremented value of the pipeline delay count is zero; (g) executing a step in the test program that alters test program flow in response to the value of the substitute qualifier signal generated in step (f).
REFERENCE TO RELATED APPLICATION
[0001] This disclosure is related to information appearing in U.S. patent application Ser. No. 09/665, 892 entitled ERROR CATCH RAM FOR MEMORY TESTER HAS SDRAM MEMORY SETS CONFIGURABLE FOR SIZE AND SPEED, filed Sep. 20, 2000, and for the reasons given below is hereby expressly incorporated herein by reference. The subject matter of the instant disclosure concerns a portion of the operation of a rather large and complex system for testing semiconductor memories. The memory tester described contains within itself an extensive memory subsystem as a component in the overall paradigm for performing tests. Certain capabilities of that memory subsystem are of interest here, in that they serve as the preferred basis for some of the novel subject matter to be disclosed. For reasons of economy in the product, and abetted by the desire to have large amounts of memory available within the tester, a way was developed to use inexpensive memory (DRAM that is slow when randomly accessed) as a substitute for expensive SRAM that is fast even when randomly addressed. The result, when combined with various other memory subsystem features, is a very complex affair involving multiplexing among Groups and interleaving among Banks, as well as implementing such things as variable word width. On the one hand, the particular features we seek to disclose here could be implemented in a system using only SRAM, with a considerable reduction in complexity. There would be a considerable economic penalty, however, which would likely cause the finished product to be an engineering curiosity instead of a viable commercial technique. We have taken a middle ground in this disclosure, where we do not pretend to make the system entirely out of SRAM, although that would certainly be operable. We include the DRAM technique as a matter of course, but we have suppressed much of the messy detail about the internal operation of that DRAM technique, in favor of a modest description of its basic principles. Even a casual reader will conclude that much interesting material (e.g., the different interleaving and addressing schemes and their connection to the different modes of operation) has been omitted. However, every reader will, upon reflection, appreciate that the techniques and features that we seek to disclose do not fundamentally depend on that omitted material, even though they may, in some cases, be slightly influenced by it. So we have a case of ragged edges that are peripheral to the main issues of interest. The disclosure incorporated above supplies an abundance of detail concerning the DRAM technique. Those that feel that the instant disclosure raises more issues about the memory subsystem than it answers can go to the incorporated disclosure for those answers. It is for that reason that its existence has been made known by being incorporated herein by reference.
[0002] That said, there is a caveat for those who wish to combine the teachings of the two disclosures. The incorporated disclosure takes the view that the totality of the memory of interest is called an Error Catch RAM (ECR) and that it is divided into Memory Sets. This point of view works without difficulty in the incorporated disclosure, since in that disclosure an ECR is nearly the sole memory function of interest, even though the existence of other such functions is alluded to. However, upon reflection during the preparation of the instant application it was found to be more convenient to describe the totality of memory of interest using the term “Interior Test Memory,” which is in turn composed of four separate and independent Memory Sets, within which the various functional memory mechanisms (including an ECR) could be defined by suitable configuration. So it would appear that in the incorporated disclosure Memory Sets are contained in an ECR, while herein it is the other way around. Nevertheless, both disclosures are directed to subject matters found in the same overall system. The difference is largely a matter of terminology, and any seeming inconsistency between the two disclosures vanishes when it is the lower level details of memory subsystem operation that are being considered. And it is to make those details available to the interested reader that we have pointed to that incorporated disclosure.
[0003] The subject matter of this disclosure is also related to that in U.S. patent application Ser. No. 09/702,631 filed Sep. 31, 2000 and entitled MEMORY TESTER WITH ENHANCED POST DECODE. In this Disclosure we make extensive use of a signal called PD_ERROR (90) that is central to the subject matter of an earlier filed case. And while we also give herein an abbreviated but sufficient account of what it means and of how it is generated, the complete details of the matter are considerably more complicated. As a hedge against the possibility that some confusion or seeming inconsistency may arise herein, and for brevity, we have accordingly chosen to incorporate MEMORY TESTER WITH ENHANCED POST DECODE herein by reference.
[0004] The subject matter of this disclosure is also related to that in U.S. patent application Ser. No. 09/677, 202 filed Oct. 2, 2000 and entitled MEMORY TESTER TESTS MULTIPLE DUT'S PER TEST SITE. In this Disclosure we make reference to a certain collection of signals called FERR (113), PERR (114) and PD_ERROR (115). Their existence is central to the subject matter of one feature described herein, but their origin and original use is described in an earlier filed case. And while we also give herein an abbreviated but sufficient account of what they means and of how they are generated, the complete details of the matter are, as in the case above, considerably more complicated. Accordingly, we have again chosen to incorporate MEMORY TESTER TESTS MULTIPLE DUT'S PER TEST SITE herein by reference.