テスト容易性設計(DFT)とは、ハードウェア製品設計にテスト容易性機能を追加する集積回路設計技術のことです。追加された機能により、設計されたハードウェアに対する製造テストの開発と適用が容易になります。製造テストの目的は、製品のハードウェアに、製品の正常な動作に悪影響を及ぼす可能性のある製造上の欠陥がないことを検証することです。
ハードウェア製造工程の複数の段階でテストが実施され、製品によっては顧客環境におけるハードウェア保守にも使用される場合があります。テストは通常、自動テスト装置(ATE)を使用して実行されるテストプログラムによって駆動されます。システム保守の場合は、組み立て済みのシステム自体の中で実行されます。テストは、欠陥の存在(つまり、テストの失敗)を検出して示すだけでなく、発生したテスト失敗の性質に関する診断情報をログに記録することもできます。この診断情報は、障害の原因を特定するために使用できます。
つまり、正常な回路からのベクトル(パターン)の応答を、被試験デバイス(DUT )からのベクトル(同じパターンを使用)の応答と比較します。応答が同じか一致する場合、回路は正常です。そうでない場合、回路は意図どおりに製造されていません。
DFTは、テストプログラムの開発において、またテストアプリケーションや診断のためのインターフェースとして重要な役割を果たします。適切なDFTルールと提案が実装されていれば、自動テストパターン生成(ATPG)ははるかに容易になります。
DFT技術は、電気・電子データ処理機器の黎明期から使用されてきました。1940年代から50年代にかけての初期の例としては、アナログコンピュータの内部ノードにおける電圧/電流をエンジニアが「スキャン」(すなわち、選択的にプローブ)できるようにするスイッチや計測器が挙げられます(アナログスキャン)。DFTは、内部回路要素へのアクセスを改善し、局所的な内部状態をより容易に制御(制御性)および/または観測(観測性)できるようにする設計変更と関連付けられることがよくあります。設計変更は、物理的性質のもの(例えば、ネットに物理的なプローブ点を追加する)である場合もあれば、制御性/観測性を容易にするために能動回路要素を追加するもの(例えば、ネットにマルチプレクサを挿入する)である場合もあります。内部回路要素の制御性と観測性の改善はテストにとって確かに重要ですが、DFTの種類はそれだけではありません。例えば、テスト対象製品とテスト機器間のインターフェースの電気機械的特性を扱うガイドラインもあります。例えば、プローブポイントのサイズ、形状、間隔に関するガイドラインや、プローブ対象ネットに接続されたドライバに高インピーダンス状態を追加することで、逆駆動による損傷のリスクを軽減するという提案などが挙げられる。
長年にわたり、業界では、望ましい、あるいは必須のDFT回路変更に関する、詳細度や形式に関わらず多様なガイドラインが開発され、活用されてきました。現代のマイクロエレクトロニクスにおける電子設計自動化(EDA)の文脈でのDFTの一般的な理解は、市販のDFTソフトウェアツールの機能と、そのようなツールを研究、開発、使用するDFTエンジニアの専門家コミュニティの専門知識と経験によって大きく形成されています。関連するDFTの知識の多くはデジタル回路に焦点を当てており、アナログ/ミックスドシグナル回路のDFTはやや後回しにされています。
DFTは、テスト開発、テスト適用、および診断に使用される方法に影響を与え、またそれらに依存する。
現在業界で広く用いられているツール支援型DFT(設計検証テスト)のほとんどは、少なくともデジタル回路においては、構造テストのパラダイムに基づいています。構造テストは、回路全体の機能が正しいかどうかを直接的に判断するものではありません。その代わりに、構造ネットリストに指定された低レベルの構成要素から回路が正しく組み立てられていることを確認します。例えば、指定された論理ゲートがすべて存在し、正しく動作し、正しく接続されているかなどを確認します。ネットリストが正しく、構造テストによって回路要素の正しい組み立てが確認されていれば、回路は正しく機能するはずです。
これは、テスト対象回路が機能仕様どおりに動作することを検証する機能テストとは大きく異なる点に注意が必要です。これは、ネットリストで指定された回路が正しく構築されていることを前提として、その回路が機能仕様を満たしているかどうかを判断する機能検証の問題と密接に関連しています。
構造パラダイムの利点の 1 つは、テスト生成が、指数関数的に増加する機能状態と状態遷移の多重性に対処するのではなく、比較的単純な限られた数の回路要素のテストに集中できることです。一度に 1 つの論理ゲートをテストするタスクは単純に聞こえますが、克服すべき障害があります。今日の非常に複雑な設計では、ほとんどのゲートは深く埋め込まれており、テスト機器は主要な入出力(I/O) および/またはいくつかの物理的なテストポイントにのみ接続されています。したがって、埋め込まれたゲートは、中間の論理層を介して操作する必要があります。中間の論理に状態要素が含まれている場合、指数関数的に増加する状態空間と状態遷移シーケンスの問題は、テスト生成にとって解決不可能な問題となります。テスト生成を簡素化するために、DFT は、内部回路要素で何が起こっているかを制御および/または観察しようとする際に、複雑な状態遷移シーケンスの必要性を排除することで、アクセス可能性の問題に対処します。回路設計/実装中に選択された DFT に応じて、複雑な論理回路の構造テストの生成は、多かれ少なかれ自動化または自己自動化される可能性があります。[ 1 ] [ 2 ]したがって、DFT 手法の重要な目的の 1 つは、設計者が DFT の量と種類、およびテスト生成タスクのコスト/メリット (時間、労力、品質) の間でトレードオフを行えるようにすることです。
もう一つの利点は、将来的に何らかの問題が発生した場合に回路を診断できることです。これは、設計に何らかの機能や対策を追加することで、使用中にデバイスに不具合が生じた場合にテストできるようにするようなものです。
業界にとっての課題の一つは、チップ技術の急速な進歩(I/O数/サイズ/配置/間隔、I/O速度、内部回路数/速度/消費電力、熱制御など)に追いつきつつ、テスト装置を継続的にアップグレードする必要性を回避できるかどうかです。そのため、最新のDFT技術は、次世代チップやアセンブリを既存のテスト装置でテストできるオプション、あるいは新しいテスト装置の要件やコストを削減できるオプションを提供する必要があります。結果として、テスト対象製品のコスト目標によって定められた範囲内でテスターの適用時間を確保するために、圧縮の導入など、DFT技術は継続的に更新されています。
特に高度な半導体技術においては、製造された各ウェハ上のチップの一部に、機能しない欠陥が含まれていることが想定されます。テストの主な目的は、これらの機能しないチップを、正常に機能するチップから見つけて分離することです。つまり、テスト対象の機能しないチップからテスターによって取得された1つ以上の応答が、期待される応答と異なるということです。したがって、テストに不合格となるチップの割合は、そのチップタイプの期待される機能歩留まりと密接に関連しているはずです。しかし実際には、テストフロアに初めて到着した新しいタイプのチップがすべて不合格となる(いわゆるゼロ歩留まり状況)ことは珍しくありません。その場合、チップはゼロ歩留まり状況の原因を特定するためのデバッグプロセスを経る必要があります。また、テストの失敗率(テスト不合格の割合)が予想/許容範囲よりも高かったり、急激に変動したりする場合もあります。この場合も、チップは過剰なテスト失敗の原因を特定するための分析プロセスにかけられる必要があります。
どちらの場合も、テスト中にチップが故障する様子には、根本的な問題の性質に関する重要な情報が隠されている可能性があります。より詳細な分析を行うために、単純な合否判定だけでなく、追加の故障情報が故障ログに収集されます。故障ログには通常、テストがいつ(テスターサイクルなど)、どこで(テスターチャネルなど)、どのように(論理値など)失敗したかに関する情報が含まれます。診断では、故障ログから、チップ内部のどの論理的/物理的な場所で問題が発生した可能性が最も高いかを特定しようとします。ボリューム診断と呼ばれる診断プロセスで多数の故障を実行することで、系統的な故障を特定できます。
プリント基板、マルチチップモジュール(MCM)、組み込みメモリ、スタンドアロンメモリなど、場合によっては、テスト中の故障回路を修復できる可能性があります。そのためには、診断ツールが故障箇所を迅速に特定し、その故障箇所の修理または交換のための作業指示書を作成する必要があります。
DFTのアプローチは、診断との親和性に差がある。DFTの関連する目的は、故障データの収集と診断を、インテリジェントな故障解析(FA)サンプルの選択を可能にする程度にまで促進または簡素化すること、そして診断とFAのコスト、精度、速度、スループットを向上させることである。
チップ入力からテスト対象回路(略してCUT)にテストデータを供給し、その出力を観測する最も一般的な方法は、スキャン設計と呼ばれます。スキャン設計では、設計内のレジスタ(フリップフロップまたはラッチ)が1つ以上のスキャンチェーンに接続され、これらを使用してチップの内部ノードにアクセスします。テストパターンはスキャンチェーンを介して入力され、機能クロック信号がパルス化されて「キャプチャサイクル」中に回路がテストされ、その結果がチップ出力ピンに出力されて、期待される「正常動作」の結果と比較されます。
スキャン技術を単純に適用すると、大規模なベクトルセットが生成され、それに伴ってテスト時間とメモリ使用量が長くなる可能性があります。 テスト圧縮技術は、チップ上のスキャン入力を解凍し、テスト出力を圧縮することでこの問題を解決します。通常、個々のテストベクトルはスキャンチェーンのビットのごく一部を設定または検査するだけで済むため、大きな効果が得られます。
スキャン設計の出力は、テスト装置で実行されるシリアルベクトルフォーマット(SVF)などの形式で提供される場合があります。
スキャンチェーンは、製造の合否判定テストに役立つだけでなく、チップ設計のデバッグにも使用できます。この場合、チップは通常の「機能モード」で動作します(たとえば、コンピュータや携帯電話のチップはアセンブリ言語命令を実行する場合があります)。いつでもチップクロックを停止し、チップを「テストモード」に再構成できます。この時点で、スキャンチェーンを使用して内部状態全体をダンプしたり、任意の値に設定したりできます。デバッグを支援するスキャンのもう1つの使用法は、初期状態ですべてのメモリ要素をスキャンし、その後機能モードに戻ってシステムデバッグを実行することです。利点は、多くのクロックサイクルを経ずにシステムを既知の状態にできることです。このスキャンチェーンの使用法は、クロック制御回路とともに、デバッグ設計またはデバッグ容易性設計と呼ばれる論理設計の関連分野です。[ 3 ]