The present invention relates generally to integrated circuits including internal memory and, more particularly, to methods and circuitry for testing integrated circuits.
In order to ensure operation of a memory of an integrated circuit, such as an SRAM memory, it is known to perform a test of the memory. The test may be a built-in self-test.
It is also known to test operation of some or potentially all components of the integrated circuit by performing a scan test. In the scan test flip-flops of the integrated circuit are used to form one or more serial scan chains into which data is loaded to initialize components of the integrated circuit into a known state. Then, after a period of operation of the integrated circuit, the scan chain is used to store the state of the components with data indicative of the state being unloaded from the scan chain for comparison with an expected state.
However, as integrated circuits get ever larger, testing becomes increasingly more complex and time consuming. Furthermore, it is increasingly desired to exercise more control over the testing of such integrated circuits.
The invention, together with objects and advantages thereof, may best be understood by reference to the following description of preferred embodiments together with the accompanying drawings in which:
The detailed description set forth below in connection with the appended drawings is intended as a description of presently preferred embodiments of the invention, and is not intended to represent the only forms in which the present invention may be practised. It is to be understood that the same or equivalent functions may be accomplished by different embodiments that are intended to be encompassed within the spirit and scope of the invention. In the drawings, like numerals are used to indicate like elements throughout. Furthermore, terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that module, circuit, device components, structures and method steps that comprises a list of elements or steps does not include only those elements but may include other elements or steps not expressly listed or inherent to such module, circuit, device components or steps. An element or step proceeded by “comprises . . . a” does not, without more constraints, preclude the existence of additional identical elements or steps that comprises the element or step.
In one embodiment, the present invention provides an integrated circuit for configurably testing a memory of the integrated circuit and other components of the integrated circuit at least partly in parallel. Configuration of the testing of the memory is provided via a test interface, thereby allowing control over the test of the memory. Furthermore a testing time of the integrated circuit may be reduced.
In another embodiment, the present invention provides a method of testing an integrated circuit having a memory, the method comprising receiving test data indicative of a configuration of a memory test via a test interface, wherein the memory is tested at least partly in parallel with a scan test being performed using one or more scan chains formed by serially connected flip-flops. The received test data may be indicative of a result of the memory test. The test data may be indicative of one or more of a test pass, test fail and diagnosis data
Referring now to
The method 100 comprises a step of entering 110 a first test mode in which the memory of the integrated circuit is tested. The memory may be tested to detect manufacturing defects. The memory is tested at least partly in parallel, i.e. simultaneously with one or more scan chains of the integrated circuit being used to test components of the integrated circuit. The first test mode may be referred to as a scan_MBIST mode, although it will be realised that this is merely exemplary. In the first test mode a memory built-in self-test (MBIST) unit and a test interface unit are excluded from the one or more scan chains formed within the integrated circuit by serially connected flip-flops. That is, flip-flops within the MBIST unit and the test interface unit do not form scan chains in the first test mode.
At step 120, test data indicative of a configuration of testing of the integrated circuit to be performed in the first mode is received at the integrated circuit. The test data may comprise first and second parts, where the first part configures the memory test and the second part comprises scan control data for configuring a scan test to be performed in the first test mode. The test data configuring the memory test may be referred to as MBIST configuration data and is used to configure the MBIST unit. The MBIST configuration data may include data defining or selecting one or more of an algorithm to be used for the memory test and a duration of the memory test. For example the duration may define a time for which the memory is tested to retain data therein. The MBIST configuration data may comprise data indicative of a MBIST operation such as one or more of MBIST invoke, mbist select, MBIST data background, MBIST reset, or power down. It will be realized that other MBIST operations may also be defined in the configuration data.
The test data is received at the test interface unit of the integrated circuit. The test data may be received from another computing device communicatively coupled to the test interface unit, such as a device for testing the integrated circuit. The test interface unit may conform to IEEE standard 1149.1 defining a standard for Test Access Port and Boundary Scan Architecture generally referred to as a JTAG port. Step 120 may comprise test data being transferred from the test interface unit to the MBIST unit of the integrated circuit, such that the memory test may be performed under control of the MBIST unit independently.
At step 130, the first test mode is initialised prior to testing of the integrated circuit. The initialisation is performed to initialise a state of MBIST unit and the one or more scan chains. However the initialization does not reset the test configuration data received in step 120 i.e., such data is preserved during the initialisation. In some embodiments a reset architecture of the integrated circuit is divided, thereby allowing independent resets to be performed of the MBIST unit and the portion of the integrated circuit comprising the one or more scan chains. That is, the MBIST unit of the integrated circuit may be reset and initialised independent of the one or more scan chains.
At step 140, testing of the integrated circuit is performed. Performing the test may comprise exiting from the reset state of step 130 and enabling a start signal of the memory test. The testing in step 140 performs the test of the memory and the scan test using the one or more scan chains at least partly in parallel. That is, the one or more scan chains are used to test components of the integrated circuit whilst one or more memories of the integrated circuit are tested generally simultaneously.
In one embodiment, the memory test may comprise a retention test. The retention test may comprise storing data in the memory according to a predetermined pattern, which may be a checkerboard pattern although it will be realised that other patterns may be used. The data stored in the memory may be determined by the MBIST unit and may be 5555 or AAAA, although it will be realised that other data may be envisaged. The data is stored in the memory and then read from the memory after a period of time. The period of time may be defined by the data defining the duration of the memory test received via the test interface in some embodiments. The period of time may define a retention time of a memory retention test. Data read from the memory after the period of time is examined for consistency with the data initially stored in the memory to determine a result of the retention test.
The scan test comprises loading the one or more scan chains with data. The data is loaded serially into an input of each scan chain. The data may be data configured to detect predetermined faults, such as a stuck-at fault (where a node is stuck at a voltage level) or a transition fault (where a logic transition at a node fails to reach another node such as a flip-flop or output within a clock period of the integrated circuit). The data within the scan chain is then provided to other components of the integrated circuit, such as combinatorial logic of the integrated circuit, to be used as an input. After a period of operation of the integrated circuit, the one or more scan chains store a state of the components of the integrated circuit. The state information stored in the one or more scan chains may then be serially read out from an output of each scan chain and is used to determine correct operation of the integrated circuit. In embodiments of the present invention, the memory test and the scan test are performed at least partly simultaneously which reduces a time to test operation of the integrated circuit.
In step 150 it is determined whether the memory test and the scan test have finished. It will be appreciated that one test may finish before the other. For example, depending on the specified the retention test time, the retention test may take longer than the scan test. Thus in step 150 it is determined whether both tests have finished. If not, the method returns to step 140. In other words, the method waits at step 150 until both tests are finished. Once finished the method moves to step 160. In step 160 test result data is output. Data indicative of a result of the one or more tests may be output via the test interface used to receive the test data. The test result data may correspond to the memory test. In some embodiments, data indicative of the result of the memory test is communicated from the MBIST unit to the test interface unit and is then output from the test interface unit to a communicably coupled device. The test result data may comprise diagnosis information for a failed memory test, where the diagnosis information is indicative of one or more reasons for the failed memory test.
Steps 170 and 180 are optional. Furthermore, steps 170 and 180 may only follow the preceding steps after a period of time, between which other operations of the integrated circuit may be performed.
Step 170 comprises a step of entering a second test mode in which at least some flip-flops of the MBIST unit and/or the test interface unit form one or more scan chains. The one or more scan chains are used to test components of the integrated circuit. In particular, the one or more scan chains of the MBIST unit and test interface unit are arranged to test components of the MBIST unit and the test interface unit, respectively. The one or more scan chains formed with flip-flops of the MBIST unit and/or the test interface unit are used along with one or more scan chains formed by flip-flops within the integrated circuit external to the MBIST unit and/or the test interface unit.
The MBIST unit 210 comprises an MBIST engine 211 and a retention test configuration and control (RTCC) unit 212. The MBIST engine 211 is arranged to control the MBIST unit 210. The MBIST engine 211 is arranged to receive test data indicative of a configuration of the memory test to be performed and to output test result data indicative of a result of the memory test. The test data and test result data may be received from/output to the test interface unit 220 from the MBIST engine 211. The MBIST engine 211 provides one or more control signals to the RTCC unit 212. A first control signal (start_ret) is indicative of a start of the retention test. The MBIST engine 211 may also receive one or more signals from the RTCC unit 212, such as a signal indicative of completion of the test, such as a completion of a retention test (bist_resume). The MBIST engine 211 and the RTCC unit 212 may be arranged to receive a MBIST reset signal (mbist_reset_b) to reset the MBIST unit 210. As discussed above, the MBIST unit 210 may be reset independent of the one or more scan chains formed by flip-flops of the integrated circuit 200. In the embodiment shown in
The test interface unit 220 is arranged to receive the test data. The test data may be received from a device for testing the integrated circuit 200. The test interface unit 220 may conform to IEEE standard 1149.1 defining a standard for Test Access Port and Boundary Scan Architecture generally referred to as a JTAG port. Thus the test interface unit 220 may be a JTAG unit in some embodiments. The test interface unit 220 may comprise a test access port (TAP) 221 for communicating the test data to/from the device for testing the integrated circuit 200. The TAP 221 may communicate with the device via a JTAG interface, as illustrated in
The use of registers to configure the MBIST unit 210 and to allow the MBIST unit 210 to report the result of the memory test which are communicatively coupled to the test interface unit 220 enables operation of the MBIST unit 210 to be independent of the scan test of the integrated circuit 200, such that the scan test and memory test may be performed simultaneously.
The one or more MBIST control registers 222 may be used to enable or disable the MBIST unit 210. The MBIST invoke bit in the MBIST control register 222 may be used to start or initiate the memory test. The one or more algorithm select registers in use receive and store algorithm select bits for selecting the memory test algorithm. The algorithms from which the memory test algorithm may be chosen may comprise, but are not limited to, addressdecoder_bg0, bit_write and retention_checkerboard algorithms.
As noted above in connection with steps 140 and 150 of the method illustrated in
Referring to
As shown in
The scan chains 215, 225 of the test interface unit 210 and the MBIST unit 220 are separately enabled from the scan chains 241, 242, . . . 24n of other units of the integrated circuit 200. The integrated circuit 200 comprises a scan enable input 261 which is directly connected to the scan chains 241, 242, . . . 24n external to the MBIST unit 210 and the test interface unit 220 and the MBIST unit 220 i.e., of the other units of the integrated circuit 200. The scan enable input 261 enables the scan test mode in either step 140 or 170. A scan_mbist_mode input 262 is provided indicative of the first test mode. In one embodiment, the scan_mbist_mode input 262 is provided to an AND gate 263 along with the scan enable input 261. An output of the AND gate provided to enable the scan chains 215, 225 of the MBIST unit 210 and the test interface unit 220 only in the second test mode of step 170.
As illustrated in
In the first test mode, scan_mbist_mode, the MBIST unit 210 is arranged to load the counter value (retention_config_reg) from the retention configuration register 223 to set a maximum counter value of a retention counter 271. Based on the counter value and the clock frequency, the memory test duration, such as the duration of the retention test, can be determined. After the memory test duration, the completion signal, bist_resume, is asserted and provided to synchronization logic 272. The synchonisation logic 272 comprises a plurality of flip-flops, as illustrated in
It will be appreciated that embodiments of the present invention provide apparatus and methods for testing integrated circuits. Embodiments of the invention may provide more convenient testing of integrated circuits. Embodiments of the invention may provide faster testing of integrated circuits.
The description of the preferred embodiments of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or to limit the invention to the forms disclosed. It will be appreciated by those skilled in the art that changes could be made to the embodiments described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular embodiment disclosed, but covers modifications within the spirit and scope of the present invention as defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
201510445432.8 | Jun 2015 | CN | national |