Embodiments are generally related to electronic devices and circuits. Embodiments are also related to memory test pattern techniques. Embodiments are additionally related to BIST (Memory Built-In Self-Test) architectures. Embodiments are further related to the reduction of memory testing time.
The testing of electronic devices represents a portion of the manufacturing process that is frequently under estimated in terms of the cost and effort required to obtain reliable data about the proper functionality and reliability of the manufactured device. As the density of memories increases, unwanted interference between cells and coupling noise between bit-lines becomes significant, frequently requiring parallel testing. The testing of high-density memories for a high-degree of fault coverage requires either a relatively large number of test vectors or a significant amount of additional test circuitry.
A BIST (Built-In Self-Test) is a mechanism that permits a machine to test itself. The main purpose of a BIST is to reduce complexity, and thereby decrease the cost of and reliance upon external (i.e., pattern-programmed) test equipment. BIST reduces test-cycle duration and the complexity of the test/probe setup by reducing the number of I/O signals that must be driven/examined under tester control which lead to a reduction in hourly charges for automated test equipment (ATE) service. Built-in self-test mechanism can be employed to make faster, less-expensive integrated circuit manufacturing tests.
The wrapper reads data from and writes data into the memory in a specific order. This sequence can be referred to as the BIST sequence. In the suffix phase 115, the results of the BIST run status register, diagnostic information, etc., can be read. The total time to execute a pattern includes time for each of these three phases 105, 110, and 115. The time for each phase depends on memory DFT architecture. The time for the BIST run phase 110, in addition to the DFT architecture, also dependents on the BIST sequence.
The signal group rscen, rscin, rscout can be employed to load/unload memory repair data. Signal wr_dm0, wr_dm1, wr_dm2, BISTen differentiates between various test modes and the signal BISTen is set to 1 for memory test and the signals addr_mode, opcode, t_data, t_data_sh, t_addr are high speed signals that toggle at high speed. Referring to a march element 200 as shown in
The test time can be calculated utilizing M=number of memory address bits, T=fast dock period, N=number of memory words, W=number of BIST wrappers controlled by the BIST controller 210, and G=number of BIST controller groups. For example, consider W=20, T=2 ns, G=50, and 38N BIST operations, connections=M+10+common, common=W+13=33, High speed=M+10 and overhead=10 ms. For N=16K, M=14 the test time can be calculated as shown below in equation (1).
[38N*T+10ms]*G=11.29*Gms=11.4*50ms=564.5ms=0.57s (non_pll,20Mhz test dock),[38*18384*50ns+10ms]*50 (1)
For N=512, M=9 the test time can be calculated as follows.
(38*512*2ns+10ms)*50=10.04*50ms=501ms=0.5s(non_pll,20Mhz test dock),[38*512*50ns+10ms]*50=549ms=0.55s (2)
The problem associated with such PCA architecture 200 is that the information about each operation is transferred on a per test clock cycle basis over high speed signals.
Total=[38*N*[M+11+4]*S+10ms]*G=[38NS[M+15]+10ms]G (3)
For example, if N=16K, M=14 the test time can be calculated as follows.
[38*18384*50*29ns+10ms]*50=[1012958400ns+10ms]*50=1013*50ms=50.65s (4)
For example, if N=512, M=9 the test time can be calculated as follows.
[38*512*50*24ns+10ms]*50=[23347200ns+10ms]*50=33.3*50ms=1.65s (5)
In SPACA architecture 250, information about each BIST operation, per memory address location can be transferred utilizing the slow speed signals. The information in SPACA architecture 250 can be transferred for each address and each operation. The communication overhead for the PCA architecture 200 and SPACA architecture 250 is large and increases time and requires high speed wires.
Based on the foregoing, it is believed that a need exists for an improved system and method for reducing memory test time utilizing a built-in self-test architecture, as described in greater detail herein.
The following summary is provided to facilitate an understanding of some of the innovative features unique to the disclosed embodiment and is not intended to be a full description. A full appreciation of the various aspects of the embodiments disclosed herein can be gained by taking the entire specification, claims, drawings, and abstract as a whole.
It is, therefore, one aspect of the disclosed embodiments to provide for improved memory test pattern techniques.
It is another aspect of the disclosed embodiments to provide for an improved memory BIST (Built-in Self-Test) mechanism.
It is further aspect of the disclosed embodiment to provide methods and systems for reducing the memory test time utilizing a serial per march element communicating architecture.
The aforementioned aspects and other objectives and advantages can now be achieved as described herein. Methods and systems are disclosed for reducing memory test time utilizing a serial per march element communicating architecture. A small number of slow speed signals can be configured between a BIST wrapper and a BIST controller to transfer information in accordance with a BIST sequence that includes a number of march elements. An information transfer protocol can be implemented between the BIST wrapper and the BIST controller to transfer Information with respect to each march element that includes a number of BIST operations, address sequencing information, and data pattern. A command register can be loaded utilizing the slow speed signals and slow speed clock and content of the command register can be decoded. An encoded BIST operation can then be executed once for each BIST operation per march element. The serial per march element communicating architecture reduces test time as a communication overhead and a requirement for high-speed wires are eliminated.
A scan force signal can be pulsed and an operation is executed for each march element once the content of the command register structure that includes a shorter BIST run is loaded. The BIST wrapper receives a memory access command from the BIST controller, in accordance with the BIST sequence via the slow speed signals and executes a memory accesses and comparison operation. The BIST controller is responsible for controlling a set of BIST wrappers in its control and sequences through the BIST sequence and reads various status and diagnostic information from the individual BIST wrappers.
During the BIST run phase, the BIST controller breaks up the BIST sequence into individual memory BIST operations. This information can be communicated to the BIST wrapper via the information transfer protocol. The information transfer protocol determines the signals running between the BIST controller and the BIST wrappers. The BIST controller reads the result of the BIST run from the BIST wrappers. For example, 33 bits of the command register can be transferred utilizing the slow WRCK clock. The serial per march element communicating architecture eliminates the need for high-speed signal, thus reducing routing overhead of PCA and simplifying timing closure.
The accompanying figures, in which like reference numerals refer to identical or functionally-similar elements throughout the separate views and which are incorporated in and form a part of the specification, further illustrate the present invention and, together with the detailed description of the invention, serve to explain the principles of the present invention.
The particular values and configurations discussed in these non-limiting examples can be varied and are cited merely to illustrate at least one embodiment and are not intended to limit the scope thereof.
The BIST controller 710 communicates algorithms to the sequencers 740 as a set of commands that conform to a generic and flexible command protocol. Each command specifies an operational code and a set of parameters without regard to the physical characteristics or timing requirements of memory modules 750. The sequencers 740 interpret and execute the test algorithms provided by the BIST controller 710. In particular, the sequencers 740 receive high-level commands from the BIST controller 710 that define a complete BIST algorithm. A single command, for example, may define a particular bit pattern to be written over a range of one or more addresses. In response to the commands, each of the sequencers 740 issues one or more sequences of memory operations to their respective memory interfaces 745 to perform the commands.
The memory interfaces 745 handle specific interface requirements for each of the memory modules 750. For example, each of the memory interfaces 745 may be designed in accordance with a particular signal interface requirement and physical characteristics of the memory modules 750. As a result, each memory interfaces 745 may be viewed as providing an interface “wrapper” around the particular interface signals, e.g., address, data, and control signals, for each respective memory module 750. The memory modules 750 may be any type of memory such as random access memory (RAM), read-only memory (ROM), Flash memory, dynamic random access memory (DRAM), SDRAM, RDRAM, DDR-RAM, combinations thereof, and the like, and the techniques described herein are not limited in this regard.
A small number of slow speed signals 715 can be configured between the BIST wrapper 735 and the BIST controller 710 to transfer information in accordance with the BIST sequencer 740 that includes a number of the march elements 730. The BIST wrapper 735 receives a memory access command from the BIST controller 710, in accordance with the BIST sequence via the slow speed signals 715 and executes the memory accesses and comparison operations. The BIST controller 710 is responsible for controlling a set of the BIST wrappers 735 in its control and sequences through the BIST sequence and reads the various status and diagnostic information from the individual BIST wrappers 735. During the BIST run phase 110, the BIST controller 710 breaks up the BIST sequence into individual memory BIST operations. This information can be communicated to the BIST wrapper 735 via the information transfer protocol 725.
The information to be communicated to the BIST wrapper 735 includes the following one or more BIST test operations to be performed in the march step, address information, addressing information—address count up, down, etc., memory disable information, etc. The information transfer protocol 725 can be implemented between the BIST wrapper 735 and the BIST controller 710 to transfer information with respect to each march element 730 that includes a number of BIST operations, address sequencing information, and data pattern.
The architecture 700 includes a command register 720 structure that includes a shorter BIST run 110 that accesses only a subset of the memory space. Once the content of the register 720 is loaded, a scan_force signal is pulsed and an operation can be executed for each march element 730. The information transfer protocol 725 determines the signals running between the BIST controller 710 and the BIST wrappers 735. The BIST controller 710 reads the result of the BIST run 110 from the BIST wrappers 735. For example, 33 bits of the command register 720 can be transferred utilizing the slow WRCK clock. The serial per march element communicating architecture 700 eliminates the need for high-speed signal, thus reducing routing overhead of PCA 200 and simplifying timing closure.
The information transfer module 725 can be implemented between the BIST wrapper 735 and the BIST controller 710 to transfer Information with respect to each march element 730 that includes the number of BIST operations, address sequencing information, and data pattern, as described at block 820. The command register 720 can be loaded using the slow speed signals 715 and slow speed dock and content of the command register 720 can be decoded, as indicated at block 830. The encoded BIST operation can be executed once for each BIST operation per march element 730, as shown at block 840. The serial per march element communicating architecture 730 reduces test time as the communication overhead and the requirement for high-speed wires are eliminated, as illustrated at block 850.
The operations can be defined as follows: RWN can be a back-to-back Read D and Write ˜D operations to similar address. WR can be a back-to-back Write D and Read ˜D operations to similar address. The data pattern to be used is “Bit-Line Checkerboard”. For RWN, the un-complemented bit-line checker board data is to be used. While for WR, RWN the complemented bit-line checkerboard data can be utilized. The address sequence starts from 0 and progresses up, linearly. For the sample calculations, the following three BIST sequences can be utilized. Where N refers to a number of words in the memory, 20N for VLRF_23N7 refers to the fact that the sequence accesses each memory location 20 times. If all 3 are utilized each memory location can be accessed 38 time.
Total memory test time=(10ms+BIST run(ms))*Number of memory subgroups (6)
ANIV represents control bit for the LSB of the test address to toggle in a back-to-back cycle operations. MASK[1:0] represents mask enable bits for all odd and even IOs or for left and right halves based on use_mask_on_we wrapper options and OP[0:3] represents test operation. The control bits generate read/write commands to support different single and back-to-back cycle operations. SEL represents Wrapper select and enable operation to be applied to the given wrapper. DINV represents pattern inverse control hit to invest test data for the second cycle operations. TD[1:0] represents the Test data.
Assume that each march element 730 has a maximum of 5 BIST operations. VLRF_23N7, VLRF_3N7 and VLRF2_8N has a total of 22 march elements 730 and 38 BIST operations. FBIST run is a shorter BIST run 110 that accesses only a subset of the memory space. For example, assume that the merged sequence of m (=2)2 march elements 730 can be utilized and 33 bits of the command register 720 can be transferred utilizing the slow WRCK clock. All but 4 bits can be broadcasted. The remaining 4 bits can be transferred to the W wrappers one at a time. The communication overhead can be calculated as shown below in equation (7):
Communication overhead=29+4*W WRCK cycles,per march element=(29+4*20)*50ns=5450ns=˜0.005ms,per march element.˜0.005*Q (7)
where Q represents the number of march elements=0.005*22 (for our example)=0.11 ms. The BIST operations requires 2**M*38*T where T=test dock cycle period=2 ns. Total time=(10 ms+0.11 ms+2**M*38*2 ns)*50=˜(10.11+(2**M*76)/10**6)*50 ms=˜45.21 s (for 1M memory). Since the communication overhead can be small, this essentially reduces to the PCA 200 test time. In addition, the need for high speed wires is also eliminated.
In SPACA 250, information about each BIST operation per memory address location can be transferred utilizing the slow speed signals 715. In
Based on the foregoing, it can be appreciated that a number of embodiments are disclosed, which are preferred and alternative. For example, in one embodiment, a method can be implemented for reducing memory test time. Such a method can include, for example, steps or logical operations such as assembling slow speed signals between a BIST wrapper and a BIST controller to transfer information in accordance with a BIST sequence that includes a plurality of march elements; facilitating an information transfer protocol between the BIST wrapper and the BIST controller to transfer the information with respect to each march element among the plurality of march elements; and loading a command register utilizing the slow speed signals and a slow BIST clock to decode a content of the command register so as to execute an encoded BIST operation once with respect to each BIST operation per march element.
In another embodiment, a step or logical operation can be provided for reducing a test time via the slow speed signals and the information transfer protocol. In yet another embodiment, the aforementioned march element can include at least one of, for example: a plurality of BIST operations, an address sequencing information, and a data pattern.
In still another embodiment, steps or logical operations can be provided for pulsing a scan force signal in order to execute an operation for each march element once a content of the command register structure that includes a shorter BIST run is loaded; receiving a memory access command from the BIST controller by the BIST wrapper in accordance with the BIST sequence via the slow speed signals; and executing a plurality of memory access and comparison operations.
In other embodiments, steps or logical operations can be provided for controlling a set of BIST through the BIST sequence by the BIST controller; and reading a plurality of status and diagnostic information from the BIST wrapper. In another embodiment, a step or logical operation can be implemented for separating the BIST sequence into at least one individual memory BIST operation during a BIST run phase by the BIST controller wherein the information is communicated to the BIST wrapper via the information transfer protocol. In another embodiment, steps or logical operations can be provided for determining a plurality of signals running between the BIST controller and the BIST wrapper by the information transfer protocol; and reading a result of the BIST run from the BIST wrapper utilizing the BIST controller.
In another embodiment, a system for reducing memory test time. Such a system can include, for example, a processor; and a computer-usable medium embodying computer program code, the computer-usable medium capable of communicating with the processor. The computer program code can include instructions executable by the processor and configured, for example, for assembling slow speed signals between a BIST wrapper and a BIST controller to transfer information in accordance with a BIST sequence that includes a plurality of march elements; facilitating an information transfer protocol between the BIST wrapper and the BIST controller to transfer the information with respect to each march element among the plurality of march elements; and loading a command register utilizing the slow speed signals and a slow BIST clock to decode a content of the command register so as to execute an encoded BIST operation once with respect to each BIST operation per march element.
In another embodiment, such instructions can be further configured for reducing a test time via the slow speed signals and the information transfer protocol. In another embodiment, the aforementioned march element can include one or more of, for example: a plurality of BIST operations, an address sequencing information, and a data pattern.
In still another embodiment, such instructions can be further configured for pulsing a scan force signal in order to execute an operation for each march element once a content of the command register structure that includes a shorter BIST run is loaded; receiving a memory access command from the BIST controller by the BIST wrapper in accordance with the BIST sequence via the slow speed signals; and executing a plurality of memory access and comparison operations.
In another embodiment, such instructions can be further configured for controlling a set of BIST through the BIST sequence by the BIST controller; and reading a plurality of status and diagnostic information from the BIST wrapper. In still another embodiment, such instructions can be further configured for separating the BIST sequence into at least one individual memory BIST operation during a BIST run phase by the BIST controller wherein the information is communicated to the BIST wrapper via the information transfer protocol.
In another embodiment, such instructions can be further configured for determining a plurality of signals running between the BIST controller and the BIST wrapper by the information transfer protocol; and reading a result of the BIST run from the BIST wrapper utilizing the BIST controller.
In yet another embodiment, a processor-readable medium storing code representing instructions to cause a process for reducing memory test time can be implemented. Such code can include code to, for example, assemble slow speed signals between a BIST wrapper and a BIST controller to transfer information in accordance with a BIST sequence that includes a plurality of march elements; facilitate an information transfer protocol between the BIST wrapper and the BIST controller to transfer the information with respect to each march element among the plurality of march elements; and load a command register utilizing the slow speed signals and a slow BIST clock to decode a content of the command register so as to execute an encoded BIST operation once with respect to each BIST operation per march element.
In another embodiment, such code can include code to reduce a test time via the slow speed signals and the information transfer protocol. In still another embodiment, the aforementioned march element can include one or more of, for example, one or more BIST operations, an address sequencing information, and a data pattern. In still another embodiment, such code can further include code to: pulse a scan force signal in order to execute an operation for each march element once a content of the command register structure that includes a shorter BIST run is loaded; receive a memory access command from the BIST controller by the BIST wrapper in accordance with the BIST sequence via the slow speed signals; and execute a one or more or a group of memory access and comparison operations.
In another embodiment such code can further include code to control a set of BIST through the BIST sequence by the BIST controller; and read a plurality of status and diagnostic information from the BIST wrapper. In yet another embodiment, such code can further include code to separate the BIST sequence into at least one individual memory BIST operation during a BIST run phase by the BIST controller wherein the information is communicated to the BIST wrapper via the information transfer protocol.
In yet another embodiment, such code can further include code to determine a plurality of signals running between the BIST controller and the BIST wrapper by the information transfer protocol; and read a result of the BIST run from the BIST wrapper utilizing the BIST controller.
It will be appreciated that variations of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also, that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.