Abstract:
A method for evaluating an output of a sequential circuit  2  by storing a series of output pulses from the sequential circuit  2  and determining whether the output pulses  4  toggled as desired. Also a circuit  1  for evaluating an output  4  of a sequential circuit  2  that determines if the output pulses  4  toggled as desired.

Description:
BACKGROUND OF THE INVENTION 
   This invention relates to the verification of the integrity of the output data during oscillation-based characterization. 

   
     BRIEF DESCRIPTION OF THE DRAWING 
       FIG. 1  shows the best mode error bit circuit. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   Oscillation-based characterization needs to have sequential elements set up to switch states in an expected sequence that can be measured. Error bit circuitry can be used to verify that the data signal produced by the sequential element has integrity (i.e. bits are not being dropped). Several aspects of the invention are described below with reference to example applications for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the invention. One skilled in the relevant art, however, will readily recognize that the invention can be practiced without one or more of the specific details, or with other methods, etc. In other instances, well-known structures or operations are not shown in detail to avoid obscuring the invention. 
   Referring to  FIG. 1 , it depicts a best mode error bit circuit,  1 , for testing the integrity of a sequential device  2 . The sequential element used herein for describing the invention is a memory device. The memory  2  has a clock input  3  that prompts the memory to complete the next operation and send an output signal on data output  4 . 
   Clock input  3  may be generated by the tester  5  or by the “ghost strobe” output of memory  2 . The ghost strobe output will send a logic high pulse when the strobe cycle time is complete and another rising edge of a clock input can be applied. Thus the ghost strobe signal can be used as an input to the same memory  2  for near maximum operating frequency of memory  2 . 
   In the best mode application memory  2  is preset to toggle the output  4  upon each input pulse on clock input  3 . Examples of such preset operations that set the memory to create a toggling data output are described in U.S. Pat. Nos. 6,909,301, 6,799,134, and U.S. Pat. No. 6,734,743, incorporated herein by reference. 
   Before the testing of memory  2  begins, the tester  5  sends a signal on line  6  to clear the D flip-flops  7 ,  8 , and  9 . Flip-flops  7 ,  8  and  9  are configured as a scan chain. Namely, the output of flip-flop  7  is sent to the input of flip-flop  8  on line  10  (upon receiving a new clock pulse on line  3 ). Similarly, the output of flip-flop  8  is sent to the input of flip-flop  9  on line  11  (upon receiving a new clock pulse on line  3 ). 
   During test, the first clock pulse on line  3  sends the first output level online  4  to flip-flop  7 . The second clock pulse on line  3  shifts the first output of memory  2  from flip-flop  7  to flip-flop  8  while the second output level on line  4  is sent to flip-flop  7 . The third clock pulse on line  3  shifts the first output of memory  2  from flip-flop  8  to flip-flop  9 , the second output of memory  2  from flip-flop  7  to flip flop  8 , and sends the third output level on line  4  to flip-flop  7 . 
   The error circuit  1  may be used to confirm the integrity of the data output  4  when the memory  2  is in either a mode where the output switches every clock (i.e. read-read mode, write-read or write-write on write-through memories) or a mode where the output switches every other clock (i.e. write-read on non-write through memories). The testing of “every cycle” mode will be described first. In “every-cycle” mode, the output signal  4  toggles after every clock pulse on line  3 . 
   During “every-cycle” mode operation the tester  5  sends a logic level “1” signal on line  14  to multiplexer  13 . The tester  5  also disables the error circuit  1  by holding D flip-flop  12  in a preset mode (by holding line  15  to a logic level “0”) at least during the first three clock pulses on line  3 . This action will prevent an unwarranted error flag from being produced on output line  23 . During those first three clock pulses, the first three signal levels (i.e. 1, 0, 1) will be shifted into flip-flops  7 ,  8 , and  9 . 
   After the completion of the first three clock pulses (on line  3 ) the tester  5  enables flip-flop  12  by changing the signal on line  15  to a logic level “1”. The next clock pulse on line  3  will send the new (here it&#39;s the fourth) signal on line  4  to flip-flop  7  while the signals from flip-flops  7  and  8  are being shifted into flip-flops  8  and  9  respectively. The output signals from flip-flops  7  and  8  are also sent to multiplexer  13 . Multiplexer  13  passes the output signal from flip-flop  8  to XOR gate  16  on line  17 . The output signal from flip-flop  9  is also sent to XOR gate  16  on line  18 . XOR gate  16  compares the two signals, representing the signal levels of two consecutive output pulses from memory  2 . 
   If the signals are at different levels, meaning the output on line  4  toggled upon consecutive clock pulses as desired, then XOR gate  16  sends a logic level “1” to AND gate  19 . Because of the preset pulse on line  15 , the initial output level on flip-flop  12  is also a logic level “1”. This output becomes the second input on line  21  to AND gate  19 . Since the input value on lines  20  and  21  are both “1” then AND gate  19  will send a level “1” on line  22  to D flip-flip  12 . The result is that the error flag in line  23  is not activated. 
   If the signals are not at different levels, meaning that the output on line  4  did not toggle as desired, then XOR gate  16  sends a logic level “0” to AND gate  19 . Now, AND gate  19  will send a level “0” on line  22  to D flip-flip  12 ; thereby activating the error flag on line  23 . Once the error flag is triggered, it continues because of the continuous level “0” signal sent on line  21  from flip-flop  12  to AND gate  19 . 
   In “alternate cycle” mode the memory  2  alternates between writing and reading with each cycle. Therefore, the data output signal on line  4  should change levels with every other clock pulse (i.e. 0, 0, 1, 1, 0, 0, 1, 1 . . . ). 
   The operation of the error bit circuit  1  in “alternate cycle” mode is similar to the above-described operation of the error bit circuit  1  in “every cycle” mode. As with error testing in “every cycle” mode, the tester  5  still disables the error circuit  1  by holding D flip-flop  12  in a preset mode (by holding line  15  to a logic level “0”) at least during the first three clock pulses on line  3 . This action will prevent an unwarranted error flag from being produced. 
   During “alternate cycle” mode the tester  5  sends a logic level “0” signal on line  14  to multiplexer  13 . Now the multiplexer  13  passes the output of flip-flop  7  to XOR gate  16  to be compared to the output of flip-flop  9 . If there are no errors in the data output  4  then the output of flip-flop  9  should be opposite the voltage level of the signal two clock cycles back (i.e. the output of flip-flop  7 ). The error flag on line  23  will now be triggered if the data output pulse on line  4  doesn&#39;t toggle with every other clock pulse. 
   Various modifications to the invention as described above are within the scope of the claimed invention. As an example, the test could be set up to write to and read from every address and data input; thus exercising every address and data input on the memory. Furthermore, the scan chain (flip-flops  7 ,  8 , and  9 ) could be longer, even long enough to load the output of all addresses, creating a more extensive test of data integrity. 
   The above-described invention could also be incorporated into a BIST (Built-In Self Test) routine or incorporated within a device such as a memory. The logic functions described with gate logic could be accomplished with other logic arrangements or created in an ASIC. Moreover, the functions comprehended by the invention could be accomplished in various technologies such as CMOS or TTL 
   While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Numerous changes to the disclosed embodiments can be made in accordance with the disclosure herein without departing from the spirit or scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above described embodiments. Rather, the scope of the invention should be defined in accordance with the following claims and their equivalents.