ATPG TESTING METHOD FOR LATCH BASED MEMORIES, FOR AREA REDUCTION
Disclosed herein is logic circuitry and techniques for operation that hardware to enable the construction of first-in-first-out (FIFO) buffers from latches while permitting stuck-at-1 fault testing for the enable pin of those latches, as well as testing the data path at individual points through the FIFO buffer.
Latest STMicroelectronics International N.V. Patents:
- Circuitry for adjusting retention voltage of a static random access memory (SRAM)
- System and method for disk drive fly height measurement
- Time-to-digital converter circuit with self-testing function
- HEMT DEVICE HAVING AN IMPROVED CONDUCTIVITY AND MANUFACTURING PROCESS THEREOF
- COMMUTATION ASSISTANCE BY CONTROLLING THE SHAPE OF THE CURRENT WAVE IN A BIDIRECTIONAL TOTEM POLE CONVERTER
This disclosure is related to the field of integrated circuit devices and, in particular, concerns circuits and techniques to facilitate the operation of first-in-first-out (FIFO) buffers constructed from latches in test modes in a way that permits complete testing of the write/read path of those FIFO buffers.
BACKGROUNDIntegrated circuit devices, such as systems on a chip (SOCs) and microcontrollers, are ever increasing in complexity, with new and advanced features being introduced regularly. As a result, the area on such devices consumed by digital logic has increased, which is undesirable as it increases costs. Therefore, attempts at reducing such area consumption have been made.
One area of focus has been to reduce the area of data first-in first-out (FIFO) buffers utilized in SOCs and microcontrollers. A FIFO buffer is conventionally formed by flip flops. Some efforts in area reduction have focused on replacing the flip flops of data FIFO buffers with latches, since this may reduce the physical area consumed by such FIFO buffers by 45% to 50%. This, however, leads to issues with the ability to test the FIFO buffer fully.
A FIFO buffer 4 formed by latches, and its associated logic circuitry, is shown as reference 1 in
In order to test the FIFO buffer 4 using ATPG testing and LBIST testing, the latches within the FIFO buffer 4 are, at appropriate times during the course of testing, made transparent by application of an asserted enable signal to their enable pins caused by the test logic 7, enabling the test of proper passage of data from the write data register 2 through the FIFO buffer 4 to the read data register 6, and enabling the test of the FIFO buffer 4 for stuck-at-0 faults on their latch enable pins. This testing capability, though, is more limited than would be desired—only the entire data path from the write data register 2 through the FIFO buffer 4 to the read data register 6 as a whole can be tested, meaning there is no ability to individually test the data path from the write data register 2 to the FIFO buffer 4 and to individually test the data path from the FIFO buffer 4 to the read data register 6. Also, there is no ability to test the FIFO buffer 4 for stuck-at-1 faults on their latch enable pins.
As such, further development into the area of FIFO buffers utilizing latches as their storage elements is desired so as to enable a larger range of testing to be performed on those FIFO buffers.
SUMMARYDisclosed herein is a system operable in a functional mode and a test mode, the system including: a write data register clocked by a clock signal and configured to store data to be written; a read data register clocked by the clock signal and configured to store data read thereinto; a first-in-first-out (FIFO) buffer formed of banks of latches that are enabled by enable signals, and the banks of latches being arranged to store multiple words, with one word at a time being selectable by a write address signal for having the data from the write data register written thereinto, and with one word at a time being selectable by a read address signal for having data stored therein read out into the read data register; control circuitry configured to receive a write request signal and the write address signal, and to generate a write enable signal; wherein the control circuitry is also configured to receive a read request signal and the read address signal, and to generate a read enable signal; and glue logic configured to generate an internal write enable signal from at least the write enable signal and to generate an internal read enable signal from at least the read enable signal; wherein, when the system is in the functional mode, the banks of latches of the FIFO buffer are enabled by the write enable signal and the read enable signal; and wherein, when the system is in the test mode, the banks of latches of the FIFO buffer are enabled by the internal write enable signal and the internal read enable signal.
The control circuitry and glue logic may cooperate to operate the system in the test mode when the test mode is an automated test pattern generation (ATPG) test mode by: setting a scan control signal to a logic one and setting a transition mode signal to a logic 0 to thereby begin stuck-at testing; and performing a test setup phase to initialize the FIFO buffer for ATPG test mode. The test setup phase may be performed by: setting a scan reset signal to a logic 0 to thereby place the write data register and the read data register into a reset state; enabling the banks of latches of the FIFO buffer using an external enable signal to thereby make the banks of latches transparent; removing the external enable signal to thereby cause the banks of latches to latch; and setting the scan reset signal to a logic 1 to thereby release the write data register and the read data register from the reset state, while not supplying the clock signal to the write data register, thereby completing the test setup phase.
The control circuitry and glue logic further may cooperate to operate the system in the test mode when the test mode is the ATPG test mode by: performing a shift phase by shifting an ATPG test pattern into the FIFO buffer such that, after a last shift, the write data register holds a value of a last bit to be shifted in; wherein, when the FIFO buffer is experiencing a stuck-at-1 fault at an enable input of one or more of the banks of latches, the FIFO buffer contains the value of the last bit to be shifted in, but when the FIFO buffer is not experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the FIFO buffer at this point does not contain the value of the last bit to be shifted in; and performing a capture phase, wherein, when the FIFO buffer is experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the read data register holds the value of the last bit to be shifted in, but when the FIFO buffer is not experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the read data register holds a logic 0.
The control circuitry and glue logic may cooperate to operate the system in the test mode when the test mode is logic built in self test (LBIST) mode by: enabling the banks of latches of the FIFO buffer using an enable signal to thereby cause the banks of latches to become transparent; generating a LBIST pattern and passing the LBIST pattern through the FIFO buffer; and after a given number of bits of the LBIST pattern have passed through the FIFO buffer, deasserting the enable signal such that, when the FIFO buffer is experiencing a stuck-at-1 fault at an enable input of one or more of the banks of latches, the FIFO buffer continues to pass the LBIST pattern, but when the FIFO buffer is not experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the FIFO buffer ceases passing the LBIST pattern.
The glue logic may include a first glue logic circuit, the first glue logic circuit including: a first flip flop having a data input receiving a scan enable signal, an output, and a clock input receiving the clock signal; a second flip flop having a data input receiving the output of the first flip flop, an output at which an internal scan enable signal is generated, and a clock input receiving the clock signal; and an AND gate having a first inverting input receiving the scan enable signal, a second inverting input receiving the output of the first flip flop, and a third non-inverting input receiving the internal scan enable signal, wherein the AND gate generates a gated scan enable signal at its output.
The glue logic further may include a second glue logic circuit, the second glue logic circuit including: an AND gate having a first input receiving the write request signal and a second input receiving the gated scan enable signal, and having an output; a first multiplexer having a first data input receiving a pad enable signal, a second data input receiving the output of the AND gate, a selection input receiving a transition mode signal, and an output; and a second multiplexer having a first data input receiving the write request signal, a second data input receiving the output of the first multiplexer, a selection input receiving a scan control signal, and an output at which the internal write enable signal is generated.
The glue logic may also include a third glue logic circuit, the third glue logic circuit including: an AND gate having a first non-inverting input receiving a read valid signal, a second inverting input receiving the internal scan enable signal, a third inverting input receiving the scan enable signal, and an output; and a multiplexer having a first data input receiving the read valid signal, a second data input receiving the output of the AND gate of the third glue logic circuit, a selection input receiving the transition mode signal, and an output at which an internal read valid signal is generated.
The glue logic may also include a fourth glue logic circuit, the fourth glue logic circuit including: an AND gate having a first non-inverting input receiving the read enable signal, a second inverting input receiving the internal scan enable signal, a third inverting input receiving the scan enable signal, and an output; and a multiplexer having a first data input receiving the read enable signal, a second data input receiving the output of the AND gate of the fourth glue logic circuit, a selection input receiving the transition mode signal, and an output at which the internal read enable signal is generated.
When the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is an automated test pattern generation (ATPG) mode in which the clock signal is externally supplied, circuitry used within the glue logic may include a fifth glue logic circuit, the fifth glue logic circuit including: a first AND gate having a first input receiving the write request signal, a second input receiving a pad enable signal, and an output; a second AND gate having a first non-inverting input receiving a transition mode signal, a second inverting input receiving a scan enable signal, and an output; a first multiplexer having a first data input receiving the pad enable signal, a second data input receiving the output of the first AND gate, a selection input receiving the output of the second AND gate, and an output; and a second multiplexer having a first data input receiving the write request signal, a second data input receiving the output of the first multiplexer, a selection input receiving a scan control signal, and an output at which the internal write enable signal is generated.
When the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is the ATPG mode in which the clock signal is externally supplied, circuitry used within the glue logic further may include a sixth logic circuit, the sixth logic circuit including: a first AND gate having a first non-inverting input receiving a read valid signal, a second inverting input receiving the pad enable signal, and an output; a second AND gate having a first non-inverting input receiving the transition mode signal, a second inverting input receiving the scan enable signal, and an output; and a multiplexer having a first data input receiving the read valid signal, a second data input receiving the output from the first AND gate, a selection input receiving the output of the second AND gate, and an output at which an internal read valid signal is generated.
When the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is the ATPG mode in which the clock signal is externally supplied, circuitry used within the glue logic further may include a seventh logic circuit, the seventh logic circuit including: a first AND gate having a first non-inverting input receiving a read enable signal, a second inverting input receiving the pad enable signal, and an output; a second AND gate having a first non-inverting input receiving the transition mode signal, a second inverting input receiving the scan enable signal, and an output; and a multiplexer having a first data input receiving the read enable signal, a second data input receiving the output from the first AND gate of the seventh logic circuit, a selection input receiving the output of the second AND gate of the seventh logic circuit, and an output at which the internal read enable signal is generated.
The following disclosure enables a person skilled in the art to make and use the subject matter disclosed herein. The general principles described herein may be applied to embodiments and applications other than those detailed above without departing from the spirit and scope of this disclosure. This disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed or suggested herein.
Illustrated in
Test logic 17 operates upon the FIFO buffer 14, write data register 12 part of the scan chain, write logic circuitry 13, FIFO buffer 14 and read logic circuitry 15, and read data register 16 part of the scan chain so as to perform testing upon the FIFO buffer 14, such as using known techniques like Automatic Test Pattern Generation (ATPG) testing and Logic Built in Self Test (LBIST) testing. The write data register 12 and read data register 16 present as part of the scan chain are used during testing to shift in the data to be written into FIFO buffer 14 and shift out the read data from FIFO buffer 14 respectively. Note that a write pointer register Wr_Ptr, read pointer register Rd_Ptr, and control registers receiving a write request signal Wr_Req a read request signal Rd_Req, described below, are also present as part of the scan chain, and are used to select the latches to be written to in the FIFO buffer 14 and to select the latches to be read from the FIFO buffer 14.
Operation so as to enable ATPG testing of the FIFO buffer 14 that can test both data paths (from the write data register 12 to the FIFO buffer 14, shown as data path A to B; and from the FIFO buffer 14 to the read data register 16, shown as data path B to C) as well stuck-at-1 faults on their latch enable pins is now described with additional reference to Table 1 (illustrated below).
Testing begins by setting a scan control signal to a logic 1 and a transition mode signal Transition_Mode to a logic 0 to indicate that stuck-at testing is to be performed, and then entering a Test Setup phase which initializes the FIFO buffer 14 and its associated circuitry for ATPG mode.
At the beginning of the Test Setup phase, a scan reset signal is set to a logic 0 (for example, via application of a signal by external test equipment to a pad or pin) to thereby place the write data register 12 and the read data register 16 into reset, forcing their contents to a logic 0 (the contents of the write data register 12 are shown as “A out” and the contents of the read data register 16 are shown as “C out” in Table 1). Then the enable signal at the enable inputs of the latches of the FIFO buffer 14 (shown as “EN” in Table 1) is asserted via application of a signal by external test equipment to a pad or pin, making those latches transparent.
In a non-fault case (where none of the latches are experiencing a stuck-at-1 fault at their enable pins), since the latches are transparent, the output of the FIFO buffer 14 (shown as “B out” in Table 1) will therefore be a logic 0, and the read data register 16 will store a logic 0 as the scan reset signal is set to a logic 0. In a fault case (where one or more of the latches are experiencing a stuck-at-1 fault at their enable pins), the corresponding latch or corresponding latches output from the FIFO buffer 14 will remain at a logic 0, and the read data register 16 will continue to store a logic 0 as the scan reset signal is set to a logic 0.
Next, while still remaining in the Test Setup phase, the enable signal at the enable inputs of the latches of the FIFO buffer 14 is deasserted, causing the latches to latch. Therefore, in a non-fault case (where none of the latches are experiencing a stuck-at-1 fault at their enable pins), since those latches were previously outputting a logic 0, it is expected that they will continue to do so. As such, it is expected that the output from the FIFO buffer 14 will be a logic 0, and the output of the read data register 16 remains at logic 0 as the scan reset signal is set to a logic 0. In a fault case (where one or more of the latches is experiencing a stuck-at-1 fault at their enable pins), due to the write data register 12 continuing to store a logic 0, the corresponding latch or corresponding latches output from the FIFO buffer 14 will continue to be a logic 0.
Next, the scan reset signal is set to a logic 1, releasing the write data register 12 and read data register 16 from their reset state. However, there are no clock pulses supplied to the write data register 12 yet, so the contents of the write data register 12 remain at a logic 0.
In a non-fault cause (where none of the latches are experiencing at a stuck-at-1 fault at their enable pins), the output of the FIFO buffer 14 will remain at a logic 0 due to the enable signal for its latches remaining at 0, and the contents of the read data register 16 remain at a logic 0 as there are no clock pulses supplied to the read data register 16 yet. In a fault case (where one or more of the latches are experiencing a stuck-at-1 fault at their enable pins), since the contents of the write data register 12 are still at a logic 0, it is expected that the corresponding latch or corresponding latches output from the FIFO buffer 14 will remain at a logic 0, and the contents of the read data register 16 remain at a logic 0 as there are no clock pulses supplied to the read data register 16 yet.
The Test Setup phase is complete at this point, and shifting in of the ATPG test pattern through the scan chain to the FIFO buffer 14 occurs in the shift phase. As shown, after the last shift, the write data register 12 holds the value of the last bit to be shifted in, labeled by “as” in Table 1.
Since the enable signal to the FIFO buffer 14 will be at a logic 0 at this point, in a non-fault case (where none of the latches are experiencing at a stuck-at-1 fault at their enable pins), the value “as” (which can be either a logic 0 or a logic 1) from the write data register 12 has not yet been latched to the output of the FIFO buffer 14, and the read data register 16 holds the value of the last bit to be shifted in “cs” (which can also be a logic 0 or a logic 1). In a fault case (where one or more of the latches of the FIFO buffer 14 is experiencing a stuck-at-1 fault at its enable input), the corresponding latch or corresponding latches of the FIFO buffer 14 have been made transparent and therefore the output from the corresponding latch or corresponding latches of FIFO buffer 14 is the value “as”, and the read data register 16 holds the value of the last bit to be shifted in “cs”.
Since the last shift has been performed, the capture phase begins. During the capture phase, the scan chain is no longer formed, and the values captured are from functional paths (non-scan paths). Since the enable signal to the FIFO buffer 14 will be at a logic 0 at this point, in a non-fault case (where none of the latches of the FIFO buffer 14 are experiencing at a stuck-at-1 fault at their enable inputs), the value “ac” (which can be either a logic 0 or a logic 1) from the write data register 12 has not yet been latched to the output of the FIFO buffer 14, and therefore the read data register 16 captures the value “0”. In fault case (where one or more of the latches of the FIFO buffer 14 is experiencing a stuck-at-1 fault at its enable input), the corresponding latch or corresponding latches of the FIFO buffer 14 have been made transparent and therefore the output captured in the corresponding latch or corresponding latches of FIFO buffer 14 is the value “ac”, while the read data register 16 captures the FIFO buffer 14 value at the end of last shift which is “as” for the latches having stuck-at-1 faults at their enable input. This will create a mismatch at the next shift when the read data register 16 contents are shifted out as part of scan chain.
Operation so as to enable LBIST testing of the FIFO buffer 14 is now described. Initially, the enable input of the FIFO buffer 14 is asserted, causing the latches to become transparent, and the LBIST pattern is internally generated. After a given number of bits have been fed through the FIFO buffer 14, the enable input of the FIFO is deasserted. In the non-fault case (where the FIFO buffer 14 is not experiencing a stuck-at-1 fault at its enable input), then the read data register 16 captures the output of the FIFO buffer 14 at the time the enable input was deasserted. Therefore, when a signature is generated from the data written to the read data register 16 and compared to a known fault free signature for the given number of bits, there will not be a mismatch.
However, in a fault case (where one or more latches of the FIFO buffer 14 is experiencing a stuck-at-1 fault at its input), the corresponding latch or corresponding latches of the FIFO buffer 14 stays transparent, capturing different values from the write data register 12 as the LBIST pattern continues. Therefore, when the signature is generated from the data written to the read data register 16 and compared to a known fault free signature for the given number of bits, there will be a mismatch, indicating the presence of the stuck-at-1 fault on the enable input of the FIFO buffer 14.
Details of the write data register 12, write logic 13, FIFO buffer 14, read logic 15, and read data register 16 may be found in
In particular, when the FIFO buffer 14 is not full, the FIFO buffer 14 has one or more latches that is not storing a current data bit. When the FIFO buffer 14 is full, the FIFO buffer 14 has a current data bit stored in each of its latches. The FIFO_Empty signal and FIFO_Full signal are used by the write/read controller 13/15 to generate the write enable signal Wr_En and the read enable signal Rd_En in such a fashion so as to ensure that data is not written when the FIFO buffer 14 is full (so that current bits that have not been read out are not overwritten), and so as to ensure that data is not read out when the FIFO buffer 14 is empty (so that bits that are not current are not read out).
Operation of the FIFO buffer 14 is now described with additional reference to
The clock CLK then transitions to a logic 0, and then at time T3, the clock CLK goes high again, so that at time T4, the read enable signal Read_En and read valid signal Rd_Valid go to a logic 1, setting up the read operation. At time t4, the write request Wr_Req and write enable signal Wr_En fall to a logic 0, the write data register 12 is loaded with the next data 12(a) to be written, shown here as 0x0000_0000, the write pointer 12(b) is advanced to 4′b0001, and the FIFO buffer 14 is no longer empty due to the write and therefore the FIFO empty signal FIFO_Empty falls to a logic 0. By time T5, the read is completed, and thus the read request signal Read_Req falls to a logic 0 and the read data signal Rd_Valid falls to a logic 0. Also as a result of the completion of the read, the read data register 16 holds the read data 16(a) of 0xABCD_0123 just read from the corresponding latch bank [DN-0] of FIFO buffer 14, and the read pointer 16(b) is accordingly advanced to 4′b0001. Due to completion of the read, the FIFO buffer 14 is now empty again, and the FIFO empty signal FIFO_Empty again rises to a logic 1.
Thus, in two clock cycles, a write from the write data register 12 to the FIFO buffer 14, and then a read from the FIFO buffer 14 to the read data register 16, is completed.
The below will describe logic circuitry used for generating control signals for the FIFO buffer 14 when used to perform transition (at-speed) testing. In these particular instances, the FIFO buffer 14 operates based upon an internal write enable signal int_Wr_Enan internal read enable signal int_Rd_En, and an internal read valid signal int_Rd_Valid generated by logic circuitry, as opposed to the direct write enable signal Wr_En, write request signal Wr_Req, read enable signal Rd_En, and read request signal Rd_Req described above.
Logic circuitry for generating the internal write enable signal int_Wr_En, and internal read enable signal int_Rd_En, and an internal read valid signal int_Rd_Valid for use in performing at-speed testing when the clock for at-speed testing is received as the output of a phase locked loop (PLL) is now described with reference to
A first logic circuit 30 is first described with reference to
A second logic circuit 40 is now described with reference to
A third logic circuit 50 is now described with reference to
A fourth logic circuit 60 is now described with reference to
The first 30, second 40, third 50, and fourth 60 logic circuits are test glue and MUX logic 98 added over the functional logic part of the write/read controller 13/15.
Operation to perform ATPG testing of the FIFO buffer 14 in transition mode (at-speed testing) when the clock signal CLK is received as the output of a PLL is now described with reference to
Prior to time T0, the shift phase is performed, during which the scan control signal Scan_Ctrl, transition mode signal Transition_Mode, and scan enable signal Scan_En are at a logic 1.
Capture begins at time T0. At time T0, scan enable signal Scan_En transitions to a logic 0, while the internal scan enable signal Internal_Scan_En remains at a logic 1. The gated scan enable signal Gated_Scan_En is at a logic 1, the internal write enable signal int_Wr_En is at a logic 0, and the internal read enable signal Rd_En and internal read valid signal int_Rd_Valid are at a logic 0. At this point, the logic value of the write request signal Wr_Req, write enable signal Wr_En, read enable signal Rd_En, and valid read signal Rd_Valid can be either at a 1 or a 0 without affecting operation. Also at this point, a forced enable signal from a pad, labeled as En_Pin_From_Pad is forced to a logic 0.
The first capture cycle begins at time T1, with the data 0xABCD_0123 being loaded into the write data register 12, and the write request signal Wr_Req and write enable signal Wr_En rising to a logic 1. Notice that prior to time T0, the scan enable signal Scan_En was at a logic 1. Therefore, referring back to
Referring back now to
Since the internal write enable signal int_Wr_En used for operation of the FIFO buffer 14, this means that as per the FIFO operation described above, one of the latch banks [DN-0 or DN-1 or DN-2 . . . or DN-15] of the FIFO buffer 14 selected based on Wr_Addr value (Wr_Addr being driven from write pointer register 12(b) which is part of the scan chain) will become transparent at this point, loading the data 0xABCD_0123 from the write data register 12 into the corresponding latch bank of FIFO buffer 14.
At the second rising edge of the clock signal CLK, which occurs at time T2, the flip flop 33 of
In addition, the read can now begin due to the completion of the write. Therefore, at time T2 and in response to the second rising edge of the clock signal CLK after entry into transition mode, the read enable signal Rd_En and read valid signal Rd_Valid rise to a logic 1, although if the last shift value was a logic 1, when it was a logic one before T2 as well, as can be seen in
Also since the internal scan enable signal Internal_Scan_En falls to a logic 0 at this point, the scan enable signal Scan_En remains at a logic 0, and the read enable signal Rd_En rises to a logic 1, the AND gate 61 has a logic 1 at each of its inputs, and therefore outputs a logic 1. Since the transition mode signal Transition_Mode is still at a logic 1, the multiplexer 63 therefore still selects the output of the AND gate 61 to pass as the internal read enable signal int_Rd_En. As such, at time T2, the internal read enable signal int_Rd_En rises to a logic 1, as shown in the timing diagram of
At the third rising edge of the clock signal CLK (i.e., at the end of the period of the clock signal CLK that begun at the previous rising edge thereof), which occurs at time T3, the the data 0xABCD_0123 written earlier into the latch bank of FIFO buffer 14 read from the corresponding latch bank of FIFO buffer 14 when selected based on the Rd_Addr value (Rd_Addr being driven from read pointer register 16(b), which is part of scan chain) to the read data register 16 completes. Thus, the data 0xABCD_0123 has been written from the write data register 12 to a latch bank [DN-0 or DN-1 or DN-2 . . . or DN-15] of FIFO buffer 14, and has been read from the same latch bank [DN-0 or DN-1 or DN-2 . . . or DN-15] of FIFO buffer 14 by the read data register 16, in two clock cycles.
In some instances, the read valid signal Rd_Valid and read enable signal Rd_En may fall to a logic 0 at time T3. In this case, since the read valid signal Rd_Valid is at a logic 0, and the output of the AND gate 51 therefore falls to a logic 0, and the internal read valid signal int_Rd_Valid at the output of the multiplexer 53 will then go to a logic 0; likewise, since the read enable signal Rd_En is at a logic 0, and the output of the AND gate 61 therefore falls to a logic 0, and the internal read enable signal int_Rd_En at the output of the multiplexer 63 will then go to a logic 0. In the case where the read valid signal Rd_Valid and read enable signal Rd_En remain at a logic 1 at time T3, the internal read valid signal int_Rd_Valid and internal read enable signal int_Rd_En remain at a logic 1.
At time T4, the scan enable signal Scan_En rises to a logic 1, indicating the end of transition mode testing. As a result of the scan enable signal Scan_En rising to a logic 1, the output of the AND gate 51 falls to a logic 0, and the internal read valid signal int_Rd_Valid at the output of the multiplexer 53 will then go to a logic 0; likewise, the output of the AND gate 61 will also fall to a logic 0, and the internal read enable signal int_Rd_En at the output of the multiplexer 63 will then go to a logic 0. This is reflected in the timing diagram of
At time T5, the next rising edge of the clock signal CLK arrives, clocking the flip flops 31 and 33 so that the logic 1 of the scan enable signal Scan_En is passed to the output of the flip flop 31. At time T6, the next rising edge of the clock signal CLK arrives, and the flip flops 31 and 33 are again clocked. Thus, at time T6, the logic 1 output of the flip flop 31 is passed by flip flop 33 as the internal scan enable signal Internal_Scan_En, as shown in the timing diagram of
From the above description, notice that the clock signal CLK used during the at-speed testing is higher in frequency than it otherwise is.
Logic circuitry for generating an internal write enable signal int_Wr_En, an internal read enable signal int_Rd_En, and an internal read valid signal int_Rd_Valid for use in performing transition testing at lower frequency where the clock for transition testing at low frequency is received from a pad is now described with reference to
A fifth logic circuit 70 is now described with reference to
A sixth logic circuit 80 is now described with reference to
A seventh logic circuit 90 is now described with reference to
Operation to perform ATPG testing of the FIFO buffer 14 in transition mode (at low frequency) when the clock signal CLK is received from a pad is now described with reference to
At time T0, the scan enable signal Scan_En is set to a logic 0, beginning capture mode. Notice that at this point, En_Pin_From_Pad is at a logic 1.
At time T1, the write request signal Wr_Req and write enable signal Write_En rise to a logic 1, as do the read valid signal Rd_Valid and read enable signal Rd_En. Referring back to
At time T2, the write of the data to the FIFO buffer 14 has been completed, and Ein_Pin_From_Pad falls to a logic 0. Since Ein_Pin_From_Pad is a logic 0 at this point, the output of the AND gate 71 changes to a logic 0, with the result being that the internal write enable signal int_Wr_En fall to a logic 0, as may be observed in the timing diagram of
Referring back to
This sets up the read, which is completed at T3, and so the data 0xABCD_0123 written earlier into the latch bank of FIFO buffer 14 read from the corresponding latch bank of FIFO buffer 14 when selected based on Rd_Addr value (Rd_Addr being driven from read pointer register 16(b), which is part of scan chain) to the read data register 16 is seen at this point. At time T4. The scan enable signal Scan_En rises to a logic 1 to end transition mode testing.
While the disclosure has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be envisioned that do not depart from the scope of the disclosure as disclosed herein. Accordingly, the scope of the disclosure shall be limited only by the attached claims.
Claims
1. A system operable in a functional mode and a test mode, the system comprising:
- a write data register clocked by a clock signal and configured to store data to be written;
- a read data register clocked by the clock signal and configured to store data read thereinto;
- a first-in-first-out (FIFO) buffer comprised of banks of latches that are enabled by enable signals, and the banks of latches being arranged to store multiple words, with one word at a time being selectable by a write address signal for having the data from the write data register written thereinto, and with one word at a time being selectable by a read address signal for having data stored therein read out into the read data register;
- control circuitry configured to receive a write request signal and the write address signal, and to generate a write enable signal;
- wherein the control circuitry is also configured to receive a read request signal and the read address signal, and to generate a read enable signal; and
- glue logic configured to generate an internal write enable signal from at least the write enable signal and to generate an internal read enable signal from at least the read enable signal;
- wherein, when the system is in the functional mode, the banks of latches of the FIFO buffer are enabled by the write enable signal and the read enable signal; and
- wherein, when the system is in the test mode, the banks of latches of the FIFO buffer are enabled by the internal write enable signal and the internal read enable signal.
2. The system of claim 1, wherein the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is an automated test pattern generation (ATPG) test mode by:
- setting a scan control signal to a logic one and setting a transition mode signal to a logic 0 to thereby begin stuck-at testing; and
- performing a test setup phase to initialize the FIFO buffer for ATPG test mode by: setting a scan reset signal to a logic 0 to thereby place the write data register and the read data register into a reset state; enabling the banks of latches of the FIFO buffer using an external enable signal to thereby make the banks of latches transparent; removing the external enable signal to thereby cause the banks of latches to latch; and setting the scan reset signal to a logic 1 to thereby release the write data register and the read data register from the reset state, while not supplying the clock signal to the write data register, thereby completing the test setup phase.
3. The system of claim 2, wherein the control circuitry and glue logic further cooperate to operate the system in the test mode when the test mode is the ATPG test mode by:
- performing a shift phase by shifting an ATPG test pattern into the FIFO buffer such that, after a last shift, the write data register holds a value of a last bit to be shifted in;
- wherein, when the FIFO buffer is experiencing a stuck-at-1 fault at an enable input of one or more of the banks of latches, the FIFO buffer contains the value of the last bit to be shifted in, but when the FIFO buffer is not experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the FIFO buffer at this point does not contain the value of the last bit to be shifted in; and
- performing a capture phase, wherein, when the FIFO buffer is experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the read data register holds the value of the last bit to be shifted in, but when the FIFO buffer is not experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the read data register holds a logic 0.
4. The system of claim 1, wherein the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is a logic built in self test (LBIST) mode by:
- enabling the banks of latches of the FIFO buffer using an enable signal to thereby cause the banks of latches to become transparent;
- generating a LBIST pattern and passing the LBIST pattern through the FIFO buffer; and
- after a given number of bits of the LBIST pattern have passed through the FIFO buffer, deasserting the enable signal such that, when the FIFO buffer is experiencing a stuck-at-1 fault at an enable input of one or more of the banks of latches, the FIFO buffer continues to pass the LBIST pattern, but when the FIFO buffer is not experiencing the stuck-at-1 fault at the enable input of one or more of the banks of latches, the FIFO buffer ceases passing the LBIST pattern.
5. The system of claim 1, wherein, when the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is an automated test pattern generation (ATPG) mode in which the clock signal is supplied by a phase locked loop, circuitry used within the glue logic comprises a first glue logic circuit, the first glue logic circuit comprising:
- a first flip flop having a data input receiving a scan enable signal, an output, and a clock input receiving the clock signal;
- a second flip flop having a data input receiving the output of the first flip flop, an output at which an internal scan enable signal is generated, and a clock input receiving the clock signal; and
- an AND gate having a first inverting input receiving the scan enable signal, a second inverting input receiving the output of the first flip flop, and a third non-inverting input receiving the internal scan enable signal, wherein the AND gate generates a gated scan enable signal at its output.
6. The system of claim 5, wherein, when the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is the ATPG mode in which the clock signal is supplied by the phase locked loop, circuitry used within the glue logic comprises a second glue logic circuit, the second glue logic circuit comprising:
- an AND gate having a first input receiving the write request signal and a second input receiving the gated scan enable signal, and having an output;
- a first multiplexer having a first data input receiving a pad enable signal, a second data input receiving the output of the AND gate, a selection input receiving a transition mode signal, and an output; and
- a second multiplexer having a first data input receiving the write request signal, a second data input receiving the output of the first multiplexer, a selection input receiving a scan control signal, and an output at which the internal write enable signal is generated.
7. The system of claim 6, wherein, when the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is the ATPG mode in which the clock signal is supplied by the phase locked loop, circuitry used within the glue logic comprises a third glue logic circuit, the third glue logic circuit comprising:
- an AND gate having a first non-inverting input receiving a read valid signal, a second inverting input receiving the internal scan enable signal, a third inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read valid signal, a second data input receiving the output of the AND gate of the third glue logic circuit, a selection input receiving the transition mode signal, and an output at which an internal read valid signal is generated.
8. The system of claim 7, wherein, when the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is the ATPG mode in which the clock signal is supplied by the phase locked loop, circuitry used within the glue logic comprises a fourth glue logic circuit, the fourth glue logic circuit comprising:
- an AND gate having a first non-inverting input receiving the read enable signal, a second inverting input receiving the internal scan enable signal, a third inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read enable signal, a second data input receiving the output of the AND gate of the fourth glue logic circuit, a selection input receiving the transition mode signal, and an output at which the internal read enable signal is generated.
9. The system of claim 1, wherein, when the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is an automated test pattern generation (ATPG) mode in which the clock signal is externally supplied, circuitry used within the glue logic comprises a fifth glue logic circuit, the fifth glue logic circuit comprising:
- a first AND gate having a first input receiving the write request signal, a second input receiving a pad enable signal, and an output;
- a second AND gate having a first non-inverting input receiving a transition mode signal, a second inverting input receiving a scan enable signal, and an output;
- a first multiplexer having a first data input receiving the pad enable signal, a second data input receiving the output of the first AND gate, a selection input receiving the output of the second AND gate, and an output; and
- a second multiplexer having a first data input receiving the write request signal, a second data input receiving the output of the first multiplexer, a selection input receiving a scan control signal, and an output at which the internal write enable signal is generated.
10. The system of claim 9, where, when the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is the ATPG mode in which the clock signal is externally supplied, circuitry used within the glue logic further comprises a sixth logic circuit, the sixth logic circuit comprising:
- a first AND gate having a first non-inverting input receiving a read valid signal, a second inverting input receiving the pad enable signal, and an output;
- a second AND gate having a first non-inverting input receiving the transition mode signal, a second inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read valid signal, a second data input receiving the output from the first AND gate, a selection input receiving the output of the second AND gate, and an output at which an internal read valid signal is generated.
11. The system of claim 10, where, when the control circuitry and glue logic cooperate to operate the system in the test mode when the test mode is the ATPG mode in which the clock signal is externally supplied, circuitry used within the glue logic further comprises a seventh logic circuit, the seventh logic circuit comprising:
- a first AND gate having a first non-inverting input receiving a read enable signal, a second inverting input receiving the pad enable signal, and an output;
- a second AND gate having a first non-inverting input receiving the transition mode signal, a second inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read enable signal, a second data input receiving the output from the first AND gate of the seventh logic circuit, a selection input receiving the output of the second AND gate of the seventh logic circuit, and an output at which the internal read enable signal is generated.
12. A system operable in a functional mode and a test mode, the system comprising:
- a write data register clocked by a clock signal and configured to store data to be written;
- a read data register clocked by the clock signal and configured to store data read thereinto;
- a first-in-first-out (FIFO) buffer comprised of banks of latches that are enabled by enable signals, and the banks of latches being arranged to store multiple words, with one word at a time being selectable by a write address signal for having the data from the write data register written thereinto, and with one word at a time being selectable by a read address signal for having data stored therein read out into the read data register;
- control circuitry configured to receive a write request signal and the write address signal, and to generate a write enable signal;
- wherein the control circuitry is also configured to receive a read request signal and the read address signal, and to generate a read enable signal; and
- glue logic configured to generate an internal write enable signal from at least the write enable signal and to generate an internal read enable signal from at least the read enable signal.
13. The system of claim 12, wherein the glue logic comprises a first glue logic circuit, the first glue logic circuit comprising:
- a first flip flop having a data input receiving a scan enable signal, an output, and a clock input receiving the clock signal;
- a second flip flop having a data input receiving the output of the first flip flop, an output at which an internal scan enable signal is generated, and a clock input receiving the clock signal; and
- an AND gate having a first inverting input receiving the scan enable signal, a second inverting input receiving the output of the first flip flop, and a third non-inverting input receiving the internal scan enable signal, wherein the AND gate generates a gated scan enable signal at its output.
14. The system of claim 13, wherein the glue logic further comprises a second glue logic circuit, the second glue logic circuit comprising:
- an AND gate having a first input receiving the write request signal and a second input receiving the gated scan enable signal, and having an output;
- a first multiplexer having a first data input receiving a pad enable signal, a second data input receiving the output of the AND gate, a selection input receiving a transition mode signal, and an output; and
- a second multiplexer having a first data input receiving the write request signal, a second data input receiving the output of the first multiplexer, a selection input receiving a scan control signal, and an output at which the internal write enable signal is generated.
15. The system of claim 14, wherein the glue logic further comprises a third glue logic circuit, the third glue logic circuit comprising:
- an AND gate having a first non-inverting input receiving a read valid signal, a second inverting input receiving the internal scan enable signal, a third inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read valid signal, a second data input receiving the output of the AND gate of the third glue logic circuit, a selection input receiving the transition mode signal, and an output at which an internal read valid signal is generated.
16. The system of claim 15, wherein the glue logic further comprises a fourth glue logic circuit, the fourth glue logic circuit comprising:
- an AND gate having a first non-inverting input receiving the read enable signal, a second inverting input receiving the internal scan enable signal, a third inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read enable signal, a second data input receiving the output of the AND gate of the fourth glue logic circuit, a selection input receiving the transition mode signal, and an output at which the internal read enable signal is generated.
17. The system of claim 12, wherein the glue logic comprises a fifth glue logic circuit, the fifth glue logic circuit comprising:
- a first AND gate having a first input receiving the write request signal, a second input receiving a pad enable signal, and an output;
- a second AND gate having a first non-inverting input receiving a transition mode signal, a second inverting input receiving a scan enable signal, and an output;
- a first multiplexer having a first data input receiving the pad enable signal, a second data input receiving the output of the first AND gate, a selection input receiving the output of the second AND gate, and an output; and
- a second multiplexer having a first data input receiving the write request signal, a second data input receiving the output of the first multiplexer, a selection input receiving a scan control signal, and an output at which the internal write enable signal is generated.
18. The system of claim 17, wherein the glue logic further comprises a sixth logic circuit, the sixth logic circuit comprising:
- a first AND gate having a first non-inverting input receiving a read valid signal, a second inverting input receiving the pad enable signal, and an output;
- a second AND gate having a first non-inverting input receiving the transition mode signal, a second inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read valid signal, a second data input receiving the output from the first AND gate, a selection input receiving the output of the second AND gate, and an output at which an internal read valid signal is generated.
19. The system of claim 18, wherein the glue logic further comprises a seventh logic circuit, the seventh logic circuit comprising:
- a first AND gate having a first non-inverting input receiving a read enable signal, a second inverting input receiving the pad enable signal, and an output;
- a second AND gate having a first non-inverting input receiving the transition mode signal, a second inverting input receiving the scan enable signal, and an output; and
- a multiplexer having a first data input receiving the read enable signal, a second data input receiving the output from the first AND gate of the seventh logic circuit, a selection input receiving the output of the second AND gate of the seventh logic circuit, and an output at which the internal read enable signal is generated.
Type: Application
Filed: Jul 27, 2021
Publication Date: Feb 9, 2023
Applicant: STMicroelectronics International N.V. (Geneva)
Inventors: Venkata Narayanan SRINIVASAN (Greater Noida), Balwinder Singh SONI (Faridabad), Avneep Kumar GOYAL (Greater Noida)
Application Number: 17/443,556