テスト容易性設計(DFT)とは、ハードウェア製品設計にテスト容易性機能を追加する集積回路設計技術のことです。追加された機能により、設計されたハードウェアに対する製造テストの開発と適用が容易になります。製造テストの目的は、製品のハードウェアに、製品の正常な動作に悪影響を及ぼす可能性のある製造上の欠陥がないことを検証することです。
ハードウェア製造工程の複数の段階でテストが実施され、製品によっては顧客環境におけるハードウェア保守にも使用される場合があります。テストは通常、自動テスト装置(ATE)を使用して実行されるテストプログラムによって駆動されます。システム保守の場合は、組み立て済みのシステム自体の中で実行されます。テストは、欠陥の存在(つまり、テストの失敗)を検出して示すだけでなく、発生したテスト失敗の性質に関する診断情報をログに記録することもできます。この診断情報は、障害の原因を特定するために使用できます。
つまり、正常な回路からのベクトル(パターン)の応答を、被試験デバイス(DUT )からのベクトル(同じパターンを使用)の応答と比較します。応答が同じか一致する場合、回路は正常です。そうでない場合、回路は意図どおりに製造されていません。
DFTは、テストプログラムの開発において、またテストアプリケーションや診断のためのインターフェースとして重要な役割を果たします。適切なDFTルールと提案が実装されていれば、自動テストパターン生成(ATPG)ははるかに容易になります。
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) 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 electromechanical characteristics of the interface between the product under test and the test equipment. Examples are guidelines for the size, shape, and spacing of probe points, or the suggestion to add a high-impedance state to drivers attached to probed nets such that the risk of damage from back-driving is mitigated.
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 electronic design automation (EDA) for modern microelectronics is shaped to a large extent by the capabilities of commercial DFT software tools as well as by the expertise and experience of a professional community of DFT engineers researching, developing, and using such tools. Much of the related body of DFT knowledge focuses on digital circuits, while DFT for analog/mixed-signal circuits takes somewhat of a backseat.
DFT affects and depends on the methods used for test development, test application, and diagnostics.
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 gates 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 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 states 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/outputs (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 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 automated or self-automated.[1][2] One key objective of DFT methodologies, hence, is to allow designers to make trade-offs between the amount and type of DFT and the cost/benefit (time, effort, quality) of the test generation task.
もう一つの利点は、将来的に何らかの問題が発生した場合に回路を診断できることです。これは、設計に何らかの機能や対策を追加することで、使用中にデバイスに不具合が生じた場合にテストできるようにするようなものです。
業界にとっての課題の一つは、チップ技術の急速な進歩(I/O数/サイズ/配置/間隔、I/O速度、内部回路数/速度/消費電力、熱制御など)に追いつきつつ、テスト装置を継続的にアップグレードする必要性を回避できるかどうかです。そのため、最新のDFT技術は、次世代チップやアセンブリを既存のテスト装置でテストできるオプション、あるいは新しいテスト装置の要件やコストを削減できるオプションを提供する必要があります。結果として、テスト対象製品のコスト目標によって定められた範囲内でテスターの適用時間を確保するために、圧縮の導入など、DFT技術は継続的に更新されています。
特に高度な半導体技術においては、製造された各ウェハ上のチップの一部に、機能しない欠陥が含まれていることが想定されます。テストの主な目的は、これらの機能しないチップを、正常に機能するチップから見つけて分離することです。つまり、テスト対象の機能しないチップからテスターによって取得された1つ以上の応答が、期待される応答と異なるということです。したがって、テストに不合格となるチップの割合は、そのチップタイプの期待される機能歩留まりと密接に関連しているはずです。しかし実際には、テストフロアに初めて到着した新しいタイプのチップがすべて不合格となる(いわゆるゼロ歩留まり状況)ことは珍しくありません。その場合、チップはゼロ歩留まり状況の原因を特定するためのデバッグプロセスを経る必要があります。また、テストの失敗率(テスト不合格の割合)が予想/許容範囲よりも高かったり、急激に変動したりする場合もあります。この場合も、チップは過剰なテスト失敗の原因を特定するための分析プロセスにかけられる必要があります。
どちらの場合も、テスト中にチップが故障する様子には、根本的な問題の性質に関する重要な情報が隠されている可能性があります。より詳細な分析を行うために、単純な合否判定だけでなく、追加の故障情報が故障ログに収集されます。故障ログには通常、テストがいつ(テスターサイクルなど)、どこで(テスターチャネルなど)、どのように(論理値など)失敗したかに関する情報が含まれます。診断では、故障ログから、チップ内部のどの論理的/物理的な場所で問題が発生した可能性が最も高いかを特定しようとします。ボリューム診断と呼ばれる診断プロセスで多数の故障を実行することで、系統的な故障を特定できます。
プリント基板、マルチチップモジュール(MCM)、組み込みメモリ、スタンドアロンメモリなど、場合によっては、テスト中の故障回路を修復できる可能性があります。そのためには、診断ツールが故障箇所を迅速に特定し、その故障箇所の修理または交換のための作業指示書を作成する必要があります。
DFTのアプローチは、診断との親和性に差がある。DFTの関連する目的は、故障データの収集と診断を、インテリジェントな故障解析(FA)サンプルの選択を可能にする程度にまで促進または簡素化すること、そして診断とFAのコスト、精度、速度、スループットを向上させることである。
チップ入力からテスト対象回路(略してCUT)にテストデータを供給し、その出力を観測する最も一般的な方法は、スキャン設計と呼ばれます。スキャン設計では、設計内のレジスタ(フリップフロップまたはラッチ)が1つ以上のスキャンチェーンに接続され、これらを使用してチップの内部ノードにアクセスします。テストパターンはスキャンチェーンを介して入力され、機能クロック信号がパルス化されて「キャプチャサイクル」中に回路がテストされ、その結果がチップ出力ピンに出力されて、期待される「正常動作」の結果と比較されます。
スキャン技術を単純に適用すると、大規模なベクトルセットが生成され、それに伴ってテスト時間とメモリ使用量が長くなる可能性があります。 テスト圧縮技術は、チップ上のスキャン入力を解凍し、テスト出力を圧縮することでこの問題を解決します。通常、個々のテストベクトルはスキャンチェーンのビットのごく一部を設定または検査するだけで済むため、大きな効果が得られます。
スキャン設計の出力は、テスト装置で実行されるシリアルベクトルフォーマット(SVF)などの形式で提供される場合があります。
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 phone chip might execute assembly language instructions). At any time, the chip clock can be stopped, and the chip re-configured into "test mode". At this point, the full internal state can be dumped out or set to any desired values by use of the scan chains. Another use of scan to aid debugging consists of scanning in an initial state to all memory elements and then go back to functional mode to perform system debugging. The advantage is to bring the system to a known state without going through many clock cycles. This use of scan chains, along with the clock control circuits, is a related sub-discipline of logic design called design for debug or design for debuggability.[3]