Content deleted Content added
Remove section which is about software development, while this article is about integrated circuit development. |
m unpiped links using script. endmatter formatting. ref fix. |
||
(8 intermediate revisions by 4 users not shown) | |||
Line 1:
{{Short description|IC design techniques that include testability features}}
'''Design for testing''' or '''design for testability''' ('''DFT''') consists of [[ Tests are applied at several steps in the [[Semiconductor fabrication|hardware manufacturing]] flow and, for certain products, may also be used for hardware maintenance in the customer's environment. The tests are generally driven by [[Automated testing|test programs]] that execute using [[automatic test equipment]] (ATE) or, in the case of system maintenance, inside the assembled system itself. In addition to finding and indicating the presence of defects (i.e., the test fails), tests may be able to log diagnostic information about the nature of the encountered test fails. The diagnostic information can be used to locate the source of the failure.
In other words, the response of vectors (patterns) from a good circuit is compared with the response of vectors (using the same patterns) from a DUT (device under test). If the response is the same or matches, the circuit is good. Otherwise, the circuit is not manufactured as
DFT plays an important role in the development of test programs and as an interface for test
== History ==
DFT techniques have been used at least since the early days of electric/electronic data processing equipment. Early examples from the 1940s/50s are the switches and instruments that allowed an engineer to "scan" (i.e., selectively probe) the voltage/current at some internal nodes in an [[analog computer]] [analog scan]. DFT often is associated with design modifications that provide improved access to internal circuit elements such that the local internal state can be controlled ([[controllability]]) and/or observed ([[observability]]) more easily. The design modifications can be strictly physical in nature (e.g., adding a physical probe point to a net) and/or add active circuit elements to facilitate controllability/observability (e.g., inserting a [[multiplexer]] into a net). While controllability and observability improvements for internal circuit elements definitely are important for test, they are not the only type of DFT. Other guidelines, for example, deal with the [[
Over the years the industry has developed and used a large variety of more or less detailed and more or less formal guidelines for desired and/or mandatory DFT circuit modifications. The common understanding of DFT in the context of [[
== Objectives of DFT for microelectronics products ==
Line 17 ⟶ 19:
Most tool-supported DFT practiced in the industry today, at least for digital circuits, is predicated on a ''Structural test'' paradigm. Structural test makes no direct attempt to determine if the overall functionality of the circuit is correct. Instead, it tries to make sure that the circuit has been assembled correctly from some low-level building blocks as specified in a structural [[netlist]]. For example, are all specified [[logic gate]]s present, operating correctly, and connected correctly? The stipulation is that if the netlist is correct, and structural testing has confirmed the correct assembly of the circuit elements, then the circuit should be functioning correctly.
Note that this is very different from ''[[Acceptance test|functional testing]]'', which attempts to validate that the circuit under test functions according to its functional specification. This is closely related to the [[functional verification]] problem of determining if the circuit specified by the netlist meets the functional specifications, assuming it is built correctly.
One benefit of the Structural paradigm is that test generation can focus on testing a limited number of relatively simple circuit elements rather than having to deal with an exponentially exploding multiplicity of functional [[State (computer science)|state]]s and state transitions. While the task of testing a single logic gate at a time sounds simple, there is an obstacle to overcome. For today's highly complex designs, most gates are deeply embedded whereas the test equipment is only connected to the primary [[Input/output]]s (I/Os) and/or some physical test points. The embedded gates, hence, must be manipulated through intervening layers of logic. If the intervening logic contains state elements, then the issue of an exponentially exploding [[state space]] and state transition sequencing creates an [[Computational complexity theory|unsolvable problem]] for test generation. To simplify test generation, DFT addresses the accessibility problem by removing the need for complicated state transition sequences when trying to control and/or observe what's happening at some internal circuit element.
Depending on the DFT choices made during circuit design/implementation, the generation of Structural tests for complex logic circuits can be more or less [[Automatic test pattern generation|automated]] or self-automated.<ref>{{cite web
Another benefit is to diagnose a circuit in case any problem emerges in the future.
== Looking forward ==
One challenge for the industry is keeping up with the [[Moore's law|rapid advances in chip technology]] (I/O count/size/placement/spacing, I/O speed, internal circuit count/speed/power, thermal control, etc.) without being forced to continually upgrade the test equipment. Modern DFT techniques, hence, have to offer options that allow next
== Diagnostics ==
Especially for advanced semiconductor technologies, it is expected some of the chips on each manufactured [[Wafer (electronics)|wafer]] contain defects that render them non-functional. The primary objective of testing is to find and separate those non-functional chips from the fully functional ones, meaning that one or more responses captured by the tester from a non-functional chip under test differ from the expected response. The percentage of chips that fail test, hence, should be closely related to the expected functional yield for that chip type. In reality, however, it is not uncommon that all chips of a new chip type arriving at the test floor for the first time fail (so
In both cases, vital information about the nature of the underlying problem may be hidden in the way the chips fail during test. To facilitate better analysis, additional fail information beyond a simple pass/fail is collected into a fail log. The fail log typically contains information about when (e.g., tester cycle), where (e.g., at what tester channel), and how (e.g., logic value) the test failed. Diagnostics attempt to derive from the fail log at which logical/physical ___location inside the chip the problem most likely started. By running a large number of failures through the diagnostics process, called volume diagnostics, systematic failures can be identified.
In some cases (e.g., [[
DFT approaches can be more or less diagnostics-friendly. The related objectives of DFT are to facilitate
== Scan design ==
The most common method for delivering test data from chip inputs to internal ''circuits under test'' (CUTs, for short), and observing their outputs, is called scan-design. In scan
Straightforward application of scan techniques can result in large vector sets with corresponding long tester time and memory requirements. [[Test compression]] techniques address this problem, by decompressing the scan input on chip and compressing the test output. Large gains are possible since any particular test vector usually only needs to set and/or examine a small fraction of the scan chain bits.
Line 44 ⟶ 46:
== Debug using DFT features ==
In addition to being useful for manufacturing "go/no go" testing, scan chains can also be used to "debug" chip designs. In this context, the chip is exercised in normal "functional mode" (for example, a computer or mobile
article by Ron Wilson, EDN, 6/21/2007</ref>
== See also ==
* [[Built-in self-test|BIST]]
* [[Design for X]]
* [[Fault grading]]
* [[Iddq testing]]
* [[
== References ==
{{Reflist}}
{{refbegin}}
* [http://focus.ti.com/lit/an/ssya002c/ssya002c.pdf IEEE Std 1149.1 (JTAG) Testability Primer] A technical presentation on Design-for-Test centered on JTAG and Boundary Scan
* ''VLSI Test Principles and Architectures'', by L.T. Wang, C.W. Wu, and X.Q. Wen, Chapter 2, 2006. Elsevier.
* ''Electronic Design Automation For Integrated Circuits Handbook'', by Lavagno, Martin and Scheffer, {{ISBN|0-8493-3096-3}} A survey of the field of [[electronic design automation]]. This summary was derived (with permission) from Vol I, Chapter 21, ''Design For Test'', by Bernd Koenemann.
{{refend}}
==External links==
Line 68:
* [http://www.corelis.com/education/Tips_DFT_Considerations_Board_Level_Design.htm Board Level Design]
* [https://www.xjtag.com/about-jtag/design-for-test-guidelines/ Design for Testability Guidelines]
[[Category:Electronic design automation]]
[[Category:Hardware testing]]
|