スキャンチェーンは、設計テスト(DFT)で使用される手法です。その目的は、 IC内のすべてのフリップフロップを簡単に設定および監視できる方法を提供することで、テストを容易にすることです。これにより、複雑なデジタルシステムのテストとデバッグが簡素化されます。スキャンベースの設計では、フリップフロップは通常モードとスキャンモードの2つの異なるモードで動作します。通常モードでは、通常のシステム動作をサポートします。一方、スキャンモードでは、フリップフロップは1つの長いシフトレジスタに再構成され、これをスキャンチェーンと呼びます。

スキャン機構の基本的な構造には、スキャン機構を制御および監視するための以下の信号群が含まれます。
スキャンの概念的な起源は1965年に遡り、特にプロセッサの自己診断のためにスキャンインおよびスキャンアウト機能を実装したIBMのSystem/360 Model 50に見られます。VLSIテストに正式に適用されたスキャン設計は、ウィリアムズとアンジェルによる1973年の画期的な論文以降に注目を集め、アイヒェルベルガーやウィリアムズを含むIBMの研究者によって広く発展しました。[ 1 ]
フルスキャン設計では、自動テストパターン生成(ATPG)は特に簡単です。シーケンシャルパターン生成は不要で、生成がはるかに容易な組み合わせテストで十分です。組み合わせテストがあれば、簡単に適用できます。
フルスキャン設計ではないチップ、つまり、スキャンチェーンの一部ではないメモリ素子などのシーケンシャル回路を持つチップでは、シーケンシャルパターン生成が必要です。シーケンシャル回路のテストパターン生成では、考えられるすべてのベクトルシーケンスの中から、特定の故障を検出するためのベクトルシーケンスを探索します。
単純なスタックアット故障であっても、順序回路では検出のために一連のベクトルが必要となります。また、メモリ素子の存在により、順序回路の内部信号の制御性や観測性は、一般的に組み合わせ論理回路よりもはるかに困難です。これらの要因により、順序型ATPGの複雑さは組み合わせ型ATPGよりもはるかに高くなります。
様々なバリエーションがあります。
ランダムアクセススキャン(RAS)は、アドレス指定可能な選択によって個々のフリップフロップをRAMセルのようにアクセスできるようにすることで、スキャン設計を拡張する。これにより、高速アクセスとスキャン時間の短縮が可能になる。しかし、アドレスデコーダと制御ロジックによる面積増加が、その普及を制限している。
スキャンホールドフリップフロップ(SHFF)は、スキャンフリップフロップの後にホールドラッチを追加したバリアントです。この設計により、スキャンモードと機能モードを分離できるため、遅延障害テストに最適です。SHFFはテスト制御を改善しますが、面積(約30%)とタイミングオーバーヘッドの両方が増加します。[ 1 ]
最新の電子設計自動化(EDA)ツールは、スキャン挿入、ルールチェック、およびATPGベクトル生成を完全にサポートしています。スキャン設計監査により、Dタイプフリップフロップのみの使用、クロック制御性、スキャンクロックと機能クロックの分離など、DFTルールへの準拠が保証されます。設計検証が完了すると、自動スキャン挿入ツールによってフリップフロップの修正、スキャンチェーンの配線、および高い故障検出率を持つテストベクトルの生成が可能になります。
スキャンテストは、内部ノードが他に観測できないASICやSoCにおいて特に重要です。面積やタイミングのコストはかかりますが、スキャン設計はテスト容易性に関する業界標準であり、すべての主要なデジタル設計フローでサポートされています。[ 1 ]