This disclosure relates generally to the data processing field, and more particularly, relates to a semiconductor chip and a method for diagnostic testing of combinational logic in a logic and array system.
Array Built in Self Test (ABIST) and Logic Built in Self Test (LBIST) constitute two methods used to test integrated circuits. ABIST tests integrated circuits that make up the functional operation of an array such as the array macro and logic used to access the array such as the address, data, and control logic. LBIST tests integrated circuits that make up the functional operation of the logic minus the array cells such as testing AC coverage of logic and latches not covered by ABIST.
For LBIST, typically random patterns are scanned into banks of latches surrounding functional logic circuits. The logic is then functionally clocked and the capture latches are scanned out. The data is compressed and the results are compared with a signature to tell if any AC or DC defects exist. LBIST in this manner is a very well understood and inexpensive way to AC and DC test integrated circuits.
In an embodiment, this disclosure relates to a semiconductor chip for diagnostic testing of combinational logic in a logic and array system. The semiconductor chip includes a logic and array system, a Logic Built in Self Test (LBIST) system, a clocking module, and an addressing module. The logic and array system may have a series circuit path through a combinational logic and a data path through an array of the logic and array system. An array in the logic and array system may have a plurality of address inputs. The LBIST system may test the combinational logic in the logic and array system. The clocking module may fire every LBIST clock cycle. A read clock pulse and a write clock pulse may occur every cycle. The addressing module may select an address from a subset of an address space during LBIST testing. The subset of the address space may always be the same address. Aspects may assist the diagnostic test accurately predict data passing through the array.
In an embodiment, this disclosure relates to a method for diagnostic testing of combinational logic in a logic and array system. The method includes providing an initialization pattern to an array in the logic and array system, applying a diagnostic control setup, and running the diagnostic test. The diagnostic control setup includes firing a clock every diagnostic test clock cycle and selecting an address from a subset of an address space. The diagnostic testing may be LBIST testing.
In testing integrated circuits, diagnostic testing techniques such as Array Built in Self Test (ABIST) and Logic Built in Self Test (LBIST) are used to test arrays and logic elements. It is desirable to be able to test the full latch-to-latch paths that are used in the chip function at the same clock rate that will be used in the system application. If the circuits are tested at a slower clock rate or part of the functional path is bypassed, then delay defects could exist that would not be caught by testing but result in a failing chip when exercised in the system. This can be an expensive stage to find and screen-out failing parts.
In some cases static random-access memory (SRAM) arrays are designed to be latch-bounded. In this situation latches exist at all the address and data input pins and latches at the data output pins. The array typically would have one clock cycle to perform a read access and have the data captured in the output latch. The data outputs would be launched out of the array on the subsequent cycle. In other cases, arrays do not have an output latch and logic is placed after the array data outputs and downstream capture latches. As such, knowing the location of logic relative to the array assists in grasping a full understanding of diagnostic testing. The term upstream logic stands for logic feeding into an array, or logic located on a circuit path before an array. The term downstream logic stands for logic fed by an array, or logic located on a circuit path after an array.
ABIST is mostly designed to test the array macro and logic used to access the array such as the address, data, and control logic. If the array is latch-bounded, ABIST uses the same latches as would be used in functional operation. If the array is not latch-bounded, observation latches may need to be used in place of functional latches in upstream logic or downstream logic or both. This leaves for LBIST the task of getting AC coverage of logic and latches that ABIST does not cover.
In an LBIST system, latches within a device under test may be connected with scan chains interposed between levels of a functional logic of the device. A Pseudo-Random Pattern Generator (PRPG) may be used to generate random patterns of bits. Such bits of data may be shifted and stored in the scan chains during a scan shift phase. During a functional phase, the data may be propagated through the functional logic to a subsequent scan chain. The data may then be scanned out of the subsequent scan chain and compressed to reduce storage through use of a Multiple Input Signature Register (MISR). The test loop may be repeated thousands of times with results of each test loop being combined in some manner with the results of previous test loops. After scheduled test loops have been completed, final results or signatures from the test loops may be compared to final results or signatures generated by simulation or a device known to operate properly. Based upon such comparison, it may be determined whether the device under test operates properly. If the MISR signature fails to match the expected signature, one or more faults may be assumed in the logic.
Matching access of the array with a real write or read represents an important and challenging aspect of AC testing. Arrays present a challenge for running LBIST by acting as a block to testing downstream logic and sometimes upstream logic. Two methods exist in the art using LBIST to test upstream logic feeding directly into an array and downstream logic fed by an array. Write-around may include array control logic allowing data to be sent around the array, to the output latches or through logic, and then to the output latches. Write-through may include array control logic simultaneously writing data to the array to be stored at a physical address and driving the read circuitry with identical data to show on the array output. Both methods depend on getting the exact access time for the read correct.
Both write-around and write-through present an additional difficulty for timing since a separate Design For Test (DFT) path for data then exists. If the read data comes out of the array and into logic before being latched, then a need may exist to place a capture latch as close as possible to the array. Since the timing for the read access is not the same as a read to this capture latch, one can get an AC or DC defect that is missed by LBIST. Also, the chance of a race condition on a path going around the array exists. The possibility of updating the test weighting is known in the art, but this may require rescanning the array. Rescanning may cause extra LBIST patterns to be generated to meet test coverage. Further, setting all the address locations in the array will take up more tester time for the LBIST patterns. On a two-port SRAM, where the array may perform a read and a write in one cycle, these difficulties become even more prevalent because the read access is more timing critical.
Testing the full latch-to-latch paths for an array not latch-bounded may present other considerations. ABIST is not testing the full AC paths for arrays that are not latch-bounded since the logic in front of the array or downstream logic is not tested along with the array path.
In accordance with aspects of the disclosure, an operation is provided testing a full AC latch-to-latch path that includes an array and logic. Aspects may include a clocking module and an addressing module which may exist as a part of a logic and array system separate from a data path. Aspects may include setting an address in the array to utilize to pass data through the array. Aspects may include configuring the clocking module to always fire every LBIST cycle. Aspects may include exact timing of reads and writes. Aspects may include forcing the array to read and write every cycle to a subset of addresses of an address space during LBIST. The subset of addresses may always be the same address. Aspects may show a two-port, double-pumped SRAM may take the form of a register of non-scan latches during LBIST. The use of one address to assist the test model in accurately predicting the data passing through the array may avoid random data and deter inefficiencies that may occur with typical latching. Aspects such as using a subset of addresses rather than an entire address space may make diagnostic tests efficient or effective compared to alternatives.
Computer test system 200 is shown in simplified form for understanding aspects of the disclosure. The illustrated computer test system 200 is not intended to imply architectural or functional limitations. Aspects of the disclosure can be used with various hardware implementations and systems and various other internal hardware devices, for example, multiple main processors.
A sequence of program instructions or a logical assembly of one or more interrelated modules defined by the recorded program means 304, 306, 308, 310, direct the computer system 200 for implementing testing of circuit paths including arrays including Logic Built in Self Test (LBIST) diagnostics of an embodiment.
Addressing module 440 of
Read/write control module 470 of
In an embodiment, the LBIST control setup provided at a block 704 may include the following illustrative aspects. An LBIST pin on an array macro may control logic. The logic may set a signal to enable LBIST. Aspects may provide that timing is directly determined. Aspects may fire a clock every LBIST clock cycle. Aspects may include the clocking module 410. During LBIST, the address latches for the array may be tied to an address. Running LBIST may force access to only one address of the array. The address may always be the same address. Aspects may include the addressing module 440. The array may perform a read and a write. Aspects may include the read/write control module 470. LBIST may perceive the data as a set of scan latches. An address of the array space may need initialization. In an embodiment, only one address of the array space may need initialization. The array may be used in real, functional mode. The paths used by LBIST may be functional paths. A standard layout or path-setup may be sufficient.
Initialization may be performed before running LBIST. Initialization may only need to be performed once. An ABIST engine may perform initialization. The ABIST engine may stop running upon placing a known value into an address that may be the same, or tied, for a read and a write. The array space may not need updating which otherwise may have been needed to update test weighting to increase test coverage. Adjusting LBIST settings may update test weighting to increase test coverage. Test coverage of the logic in the circuit path is analyzed with the provided initialization pattern of memory and LBIST control setup as indicated at a block 706.
LBIST may run under standard operating conditions without concern for the array. A test path may simulate a real, functional path. A functional path through the array may be used. It is determined whether adequate test coverage of the logic is provided as indicated at a decision block 708. Using the functional path through the array may yield appropriate, accurate coverage for launch out of the array to latches downstream. If inadequate test coverage is identified at decision block 708, then the LBIST control setup is updated as indicated at a block 704 and the sequential phases are repeated. If adequate test coverage is identified at decision block 708, then the final test data is provided as indicated at a block 710. Final test data may include a scan pattern, a functional pattern, or a combination pattern that is scan and functional. The final test data may make the array appear as a group of latches. Sequential phases are completed as indicated at a block 712.
Design process 802 may include using a variety of inputs; for example, inputs from library elements 808 which may house a set of commonly used elements, circuits, and devices, including models, layouts, and symbolic representations, for a given manufacturing technology, such as different technology nodes, 32 nm, 45 nm, 90 nm, and the like, design specifications 810, characterization data 812, verification data 814, design rules 816, and test data files 818, which may include test patterns and other testing information. Design process 802 may further include, for example, standard circuit design processes such as timing analysis, verification, design rule checking, place and route operations, and the like. One of ordinary skill in the art of integrated circuit design can appreciate the extent of possible electronic design automation tools and applications used in design process 802 without deviating from the scope and spirit of the invention. The design structure of the invention is not limited to any specific design flow.
Design process 802 preferably translates an embodiment of the disclosure as shown in
Embodiments other than as described may exist. The address to be used might be decided using an address counter stepping through addresses, a rotating shift register, or moving wordline by wordline circularly utilizing one value or bit. Such methods might include existence outside of the array macro.
This application is a continuation of co-pending U.S. patent application Ser. No. 13/686,414, filed Nov. 27, 2012. The aforementioned related patent application is herein incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 13686414 | Nov 2012 | US |
Child | 13786629 | US |