The present invention relates in general to the field of integrated circuits and similar technologies, and in particular to built-in self testing of integrated circuits and similar technologies.
Traditional methods of testing semiconductor devices are quickly becoming obsolete. The use of functional patterns derived for design verification as manufacturing test patterns is becoming increasingly unacceptable. Some of the most severe problems associated with this approach are high test development times, defect coverages that are low or hard to measure, and poor diagnosability. Therefore test techniques were developed which based analysis on the design structure rather than on functionality.
The largest problem with both the functional and design structure based test techniques is their reliance on the use of automatic test equipment (ATE) to apply the test patterns to the device's external inputs and measure responses on the device's external outputs. This approach does not provide a means to adequately detect all of the device's internal defects. Direct access to the internal structures of a device is necessary. This requirement has led to the development of design-for-test (DFT) and built-in self-test (BIST) techniques and methods.
DFT techniques consist of design rules and constraints aimed at increasing the testability of a design through increased internal controllability and observability. The most popular form of DFT is scan design, which involves modifying all internal storage elements such that in test mode they form individual stages of a shift register for scanning in test data stimuli and scanning out test responses.
The BIST approach is based on the realization that much of a circuit tester's electronics is semiconductor-based, just like the products it is testing, and that the challenge in ATE design, and many of the emerging limitations in ATE-based testing, lies in the interface to the device under test. In light of this fact, the BIST approach can be described as an attempt to move many of the already semiconductor-based test equipment functions into the products under test and eliminate the complex interfacing. This embedding of functionality has many benefits.
Logic built-in self-test (LBIST) is used for manufacturing test at all package levels and for system self-test. The basic idea in LBIST is to add a pseudorandom-pattern generator (PRPG) to the inputs and a multiple-input shift register (MISR) to the outputs of the device's internal storage elements, which are arranged to form scan chains known as STUMPS channels. The acronym “STUMPS” stands for Self-Test Using MISR and PRPG Sequence. Pseudorandom patterns are applied to the logic under test by scanning the pseudorandom pattern into STUMPS channels (known as “channel fill”) and executing a test sequence that consists of scan and functional clock cycles. An LBIST controller generates all necessary waveforms for repeatedly loading pseudorandom patterns into the scan chains, initiating a functional cycle, and logging the captured responses out into the MISR. The MISR compresses the accumulated responses into a code known as a signature. Any corruption in the final signature at the end of the test indicates a defect in the chip.
System LBIST operation has historically been one of the highest power drain events in the operation of a microchip. This is primarily due to the high number of latches that are switching during the scan operations. The pseudorandom patterns have the feature that, on average, 50% of the latches exercised during scan are switching. The switching during channel fill creates a high demand for current on the cycle of the scan, causing a high change in current (i.e., di/dt) within the device. In turn, the rapid change in current leads to a voltage droop within the device. In the past, the channel fill problem was addressed by simply scanning the STUMPS channels at a lower rate. The lower rate was accomplished in several different ways, depending on the clocking. In one instance, the clocking style for scan is the well-known Level-Sensitive-Scan-Design (“LSSD”) style of clocking, and the channel fill is accomplished by applying two clocks (A and B) at a slow rate. In another instance, the clock for all purposes, including scan, is a single clock and is sometimes called a General Scan Design (“GSD”) clock. In this instance, a lower scan rate is accomplished by applying hold cycles between scan cycles. Typically three hold cycles are applied, which results in a scan every four clock cycles and an average switching rate of 12.5%. A switching rate of 12.5% is more in line with the average switching rate that is observed in mission mode (the set of all operations performed by an electronic chip during normal system operation). However, the issue of switching during channel fill is only part of the problem leading to voltage droop. The greater problem leading to voltage droop is the execution of the test sequence itself. To highlight the difference, channel fill can be viewed as looping on the pattern “Scan, Hold, Hold, Hold”, while a typical test sequence is the pattern “Scan, Functional Load, Functional Load, Functional Load”. The number of “Functional Load” operations is related to the depth of non-scan latches in the design. A “Functional Load” generates more switching than a “Hold” operation, thus creating a greater voltage droop, than a “Hold” operation. There is a need in the art to address the problem of voltage droop associated with executing an LBIST test sequence.
The present invention provides a method, device and system for performing on-chip testing. In particular, the present invention provides a method, device and system for reducing voltage droop which occurs during logical built-in self testing (LBIST) operations in integrated circuits. The voltage droop typically results from large changes in current (i.e., di/dt) that occur when many latches change state on the same clock cycle. LBIST operations are particularly susceptible to causing large changes in current, due to the fact that many latches change state on a given clock cycle. In accordance with one or more embodiments of the present invention, an LBIST test sequence in one region of logic is offset from other regions of logic. The method includes executing a first logical built-in self test sequence for a first logic region of an integrated circuit, and then executing a second logical built-in self test sequence for a second logic region of the integrated circuit, wherein the second test sequence is offset from the first test sequence by one or more clock cycles. By offsetting the LBIST test sequences, the number of latches that changes state on a given clock cycle are reduced, thereby reducing noise due to large changes in current.
The above, as well as additional purposes, features, and advantages of the present invention will become apparent in the following detailed written description.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where:
The present invention provides a method, device and system for reducing voltage droop that occurs during logical built-in self testing (LBIST) operations in integrated circuits. The voltage droop typically results from large changes in current (i.e., di/dt) that occur when many latches change state on the same clock cycle. LBIST operations are particularly susceptible to causing large changes in current, due to the fact that many latches change state on a given clock cycle. In accordance with one or more embodiments of the present invention, an LBIST test sequence in one region of logic within an integrated circuit is offset from other regions of logic within the integrated circuit. By offsetting the LBIST clock sequences, the number of latches that change state on a given clock cycle are reduced, thereby reducing noise due to large changes in current.
With reference now to the figures, wherein like numbers denote like parts throughout the several views,
LBIST controller 110 is coupled to a pseudorandom pattern generator (PRPG 112). During LBIST operation, PRPG 112 generates a pseudorandom data pattern that is scanned into all the latches of scan chains during the channel fill portion of the LBIST cycle. The scan chains are known as “STUMPS channels”, and are depicted in
STUMPS channels 114a-d are coupled to a multiple input shift register, MISR 120. In typical LBIST operation, pseudorandom patterns are loaded into STUMPS channels 114a-d (“channel fill”), a functional cycle is initiated, and the captured responses are logged out of the STUMPS channels 114a-d into MISR 120. MISR 120 compresses the accumulated responses into a code known as a scan signature, which is scanned out of MISR 120 via test output 122. The scan signature obtained from the test is compared to a known-good scan signature that the functional logic of chip logic 108 should produce if operating properly.
Referring now to
The purpose of LBIST is to test that the intervening logic is functioning properly. This is accomplished by scanning pseudorandom data into one STUMPS channel (e.g., STUMPS channel 202) and executing a functional test sequence of the chip logic until the data reaches another STUMPS channel (e.g. STUMPS channel 204). STUMPS channel 202 and STUMPS channel 204 are coupled to each other by intervening combinatorial logic 208, 210, 212, 214 and non-scanning latches 206a-h. The functional test sequence is executed for the number of clock cycles it takes for the data scanned into STUMPS channel 202 to be processed by the intervening logic and reach STUMPS channel 204. Each clock executed during the functional testing is called a “functional load”. For the example shown in
Referring now to
The scan/force and thold_b signals that control LCB 308 originate from LBIST controller 110. LCB 308 and LBIST controller 310 are coupled together by the intervening logic shown in
In accordance with one embodiment of the present invention, offsetting the test sequence in one region of logic within chip 100 from another region of logic within chip 100 is enabled by multiplexing the scan/force signal between flush latches 314a-c and by multiplexing the thold_b signal between flush latches 316a-c. A multiplexer, MUX 330, is coupled to flush latch 310a. MUX 330 is shown in
By multiplexing the signal paths between LBIST controller 110 and LCB 308 in the manner described above, LBIST controller 110 can divide chip logic 108 into several different logic regions by asserting a different static_select_control (SSC) bit for each logic region.
The use of multiplexers enables a chip tester to change the offset for a particular logic region by configuring the static select control bits for each logic region. The particular setting of the static select controls can be chosen by different criteria. One criterion could be based on the results of measurements of voltage droop during manufacturing or laboratory test, where various settings can be experimented with. Another criterion could be a priori estimates of voltage droop with various settings of static select controls.
The embodiment of
Another embodiment includes assigning unique scan/force (and thold_b) trees to carefully selected sets of STUMPS channels. The STUMPS channels in a set can be chosen by the following criteria: place two STUMPS channels in the same set of STUMPS channels if there is significant logic between the latches in the two channels. This choice enhances coverage. For example, if logic region 417 and logic region 427 comprise a significant amount of the same logic, then SSC_3 and SSC_2 can be set to the same value. This places STUMPS channel 416 and STUMPS channel 426 in the same set. Since they share much of the same logic, executing a functional test sequence of both STUMPS channels at the same time may generate less switching than executing a functional test sequence for each STUMPS channel at offset clock cycles.
While the present invention has been particularly shown and described with reference to an illustrative embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. Furthermore, as used in the specification and the appended claims, the term “logic” or “device” or “system” includes any electronic circuit, or combination thereof, used in a data processing system, including, but not limited to, a microprocessor, microcontroller or component circuit integrated therein.
The diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of methods, devices and systems according to various embodiments of the present invention. In this regard, each block in the diagrams may represent a module, circuit, or portion of a circuit, which comprises one or more functional units for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Having thus described the invention of the present application in detail and by reference to illustrative embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims.