RTL2GDS: DFT. SCAN, BIST, ATPG

RTL2GDS: DFT. SCAN, BIST, ATPG

半導体品質保証とDFTの進化

現代の半導体産業、特にSystem on Chip設計分野におけるDesign for Testability(DFT)の-設計">半導体品質保証とDFTの進化

現代の半導体産業、特にSystem on Chip設計分野において、Design for Testability(以下DFT)は製造後検証のための設計を超え、製品全体のライフサイクルと経済性を決定づける核心的な工学分野として位置づけられています。

ムーアの法則に基づくトランジスタ集積度の指数関数的増加は必然的に製造欠陥の発生確率を高め、7nm、5nm、 3nmへと続く超微細プロセスノードでは、従来の単純なスタックアットフォールトモデルでは説明できない複雑な欠陥メカニズムが出現しています。

DFTの主な目的は大きく三つにまとめられます。

  • 第一に、フォールトカバレッジの最大化による品質保証です。 自動車、航空宇宙、医療機器など、機能安全が必須の分野では、DPPM(Defective Parts Per Million)を0に近づけることが必須です。
  • 二つ目はテストコストの削減です。テスト時間はチップの生産単価に直結するため、最小限のパターンと時間で最大限の欠陥を検出する効率的なアーキテクチャが求められます。
  • 三つ目は歩留まりです。欠陥を考慮した冗長設計手法や、欠陥のあるコアを使用しないようオン/オフ制御可能な設計です。(高速CPU設計で多用されます。)

Scan Architecture: DFTの第一歩

デジタルロジックテストの難題は、数百万個のフリップフロップが存在するシーケンシャル回路の状態を外部から制御・観測することがほぼ不可能である点です。

現代の半導体チップには、以下のような回路が数億から数十億個以上存在します。チップ内のすべてのフリップフロップが正常に動作していることを確認するためにDFTが使用され、特にこのようなシーケンシャル回路のテストにはSCAN設計が主に用いられます。

スキャンアーキテクチャは、このような順次回路をテストモードで巨大なシフトレジスタに変換することで、制御性と可視性を確保する最も根本的な解決策です。

2.1 スキャンセル(Scan Cell)の構造と動作原理

RTL合成(Synthesis) プロセスにおいて、DFTコンパイラは設計内の一般的なDフリップフロップ(D-FF)をスキャン機能を備えた特殊セルに置換します。業界標準として最も広く使用されている方式はMux-Dスキャン(Multiplexed Scan Flip-Flop)スタイルです。

2.1.1 SCAN D FlipFlopの内部メカニズム

Mux-Dスキャンセルは、機能的なデータ入力(D)に加え、テスト用のScan Input (SI)と、これを選択するためのScan Enable (SE)信号を含みます。 この構造は、入力段に 2:1 マルチプレクサ (MUX) を追加する形で実装されます。

 always @(posedge clk or negedge rst_n) begin if (!rst_n) begin q <= 1'b0;
        end else begin if (se) q <= si; else q <= d; end end

endmodule

  • if {SE =0} : MUXはシステムデータ入力(D)を選択してフリップフロップに伝達します。この時、チップは本来の機能モードで動作します。
  • else: SI のデータを受け取ります。

2.1.1 SCAN D FlipFlopの内部メカニズム

このような置換プロセスはネットリスト上で自動的に行われ、追加されたMUXによってデータパスに若干の遅延が発生する可能性があります。 したがって、DFT エンジニアは、SCAN 挿入後にタイミング制約を更新し、機能的なパスのタイミングマージン(セットアップ/ホールドマージン)への影響を分析する必要があります。

先ほど、私たちの回路をもう一度見てみると、このように見えました。

2.2 SCAN挿入

合成ツール(例:DesignCompiler)の場合、compile -scanを使用すると、SCANセルに変更します。合成ツールはセル変更のみを行います。

2.2 スキャン・スティッチング(Scan Stitching)とチェーン最適化

スキャンセルの置換が完了すると、DFTツールがこれらを接続するスティッチング処理を実行します。数百万個のフリップフロップを単一チェーンで構成するとテスト時間が指数関数的に増加するため、 実際の実装では複数の並列スキャンチェーンに分割します。

核心は、

  • SCAN Shiftモード: Scan Enableが0の時、基本RTLのfunctionモード動作
  • SCAN Captureモード: Scan Enableが1の時、Scan In Portの信号がCombinational Logicを経ずにScan Flipflopを辿り信号シフトのみが行われることです。

2.2.1 スキャンチェーン入力出力バジェット

ATEのメモリ効率とテスト時間を最適化するためには、すべてのスキャンチェーンの長さを均一にすることが重要です。これをチェーンバランスと呼びます。例えば、全体のフリップフロップが10,000個で100のスキャンチャネルが利用可能な場合、各チェーンは100個のフリップフロップで構成されます。

チェーン間で長さの不均衡が生じると、最長チェーンのシフトが完了するまで短チェーンは待機する必要があるため、不要なパディングデータが発生しテスト時間が浪費されます。

ファウンドリはこうした点を考慮し、フリップフロップ数別の推奨SCAN I/Oバジェット設定表を共有しています。

2.2.2 SCANチェーン再配置

SCANステッチング段階でのスキャンチェーン接続は、セルの幾何学的座標を考慮しません。これはPlace & Route段階で深刻な配線混雑を引き起こす可能性があります。物理的に離れたセルがチェーン上で隣接して接続されると、長い配線がチップ全体を横断することになります。

https://vlsibasic.blogspot.com/2014/09/scan-chain-reordering.html

After P&R:

これを解決するため、P&Rツールはスキャン再順序付け機能を実行します。セルの物理配置位置が確定した後、ツールは配線長を最小化する経路を探し、スキャンチェーンの接続順序を動的に変更します。 これは、タイミングマージンの確保とチップ面積の削減に不可欠なプロセスです。

スキャン再順序付け後:

2.3 ロックアップラッチ:クロックスキュー管理とホールドタイム違反の防止

大規模SoCでは、スキャンチェーンが異なるクロックドメインを横断したり、単一クロックドメイン内でも物理的に非常に長い距離を移動しなければならない場合が頻繁にあります。この時に発生するクロックスキューは、シフト動作中に致命的なホールドタイミング違反を引き起こす可能性があります。

2.3.1 ホールド違反:

  1. スキャンチェーン内で、データを送る起動フロップのクロックが、キャプチャフロップのクロックよりも遅く到着すると仮定します。
  2. 起動フロップが新しいデータを出力するとき、キャプチャフロップは、まだ前のデータをキャプチャしていない状態である可能性があります。
  3. ホールドタイム違反が発生します。

2.3.2 ロックアップラッチの役割と配置

これらの問題を解決するため、クロックドメインが切り替わるポイントやスキューが大きい区間にロックアップラッチを挿入します。

  1. Domain1の末端にロックアップラッチを配置します。この時、ロックアップラッチはフリップフロップと逆のクロックで動作するように、ネガティブロックアップラッチを配置することがポイントです。
  2. Domain1の末端でクロックレベルが0 → 1(立ち上がりエッジ)のとき、データはDomain2へ伝播せず、Lockup Dまでしか伝播しません。
  3. クロックがLowレベルに入ると、Lockupラッチはその時点で初めてDomain2へ伝播します。

すると、クロック周期の半周期分遅れてDomain2に到達することになります。

結局、ホールドタイムを満たすのに有利になるわけです。


3. ATPG (Automatic Test Pattern Generation): 欠陥検出のエンジン

設計の構造的テストが準備できたら、実際の欠陥を検出するための「テスト入力パターンと正解出力ベクトル」を出力する必要があります。

例えば、「自動販売機のコーラボタンを押したとき、コーラが出力されるべきである。そうでなければ欠陥である。」これがテストパターンです。

3.1 故障モデル(Fault Models)の高度化

プロセス技術の進歩に伴い、故障の様相が変化したため、これをモデル化する方法も進化してきました。

3.1.1 Stuck-at Fault

最も古典的で広く使用されているモデルです。 配線が途中で切断されたり、あるいは VDD に固定されて、回路の特定のノードが論理値「0」(Stuck-at-0)または「1」(Stuck-at-1)に恒久的に固定された状態を想定します。

  • テスト方式: 例えばANDゲート出力のStuck-at-0欠陥を検出するには、 出力を「1」にできる入力パターンを印加し、出力が期待値となるかを観測します。
  • 限界: 低速で動作する静的(Static)欠陥のみを検出でき、タイミング関連の欠陥は検出できません。

こうしたテストパターンを作成するのがATPGです。

D-Algorithm、PODEMなどのATPGアルゴリズムを調べてみると、デジタル工学に関する資料が数多く見つかります。

3.1.2 トランジションフォルトとディレイフォルト

ルーティングが切断されたわけではないが、 配線が太すぎたり細すぎたりすると、ネットのRC値が変化し、速度が異なる現象が発生します。

  • Slow-to-Rise: 0から1への変化時間が長すぎる。
  • Slow-to-Fall: 1から0への変化時間が長すぎる。
  • Path Delay Fault: 個々のゲートの遅延ではなく、回路内の経路(Path)全体の累積遅延をテストします。

3.2 At-Speed テストとクロッキング

遅延の欠陥を検出するには、チップを実際のチップ機能周波数で駆動する At-Speed テスト が不可欠です。 しかし、外部から印加可能なクロック周波数は非常に遅いクロックのみです。

このためには、オンチップクロックコントローラのようなIPが必要です。

3.3 テスト圧縮

チップサイズが大きくなるにつれてスキャンチェーンが長くなり、 At-Speedテストのためのパターン数が増加するにつれて、テストデータのボリュームとテスト時間が急増する問題が発生しました。これを解決するためにスキャン圧縮技術が導入されました。

3.3.1 Compressor、MISRとEmbedded Deterministic Test

CompressorはSynopsysの技術、EDTはMentor(現Siemens EDA)によって普及した技術であり、チップ内部にハードウェアロジックを追加して圧縮を行います。

  • Decompressor: チップの入力端に位置し、ATEから少数のチャネルに圧縮されたデータを受け取り、チップ内部の多数の短いスキャンチェーンにブロードキャストします。 Ring GeneratorとPhase Shifterを使用して相関性の低い乱数パターンを供給します。
  • Compactor: スキャンチェーンの出力端に位置し、多数の内部チェーンの結果をXORツリーやSpatial Compactorを通じて少数のチャンネルに圧縮し、ATEへ送信します。
  • X-Masking:圧縮過程で初期化されていない値(Unknown 'X')が圧縮されたSignatureを汚染するのを防ぐため、X値をマスキングするロジックが必須で含まれます。
  • MISR: 出力を毎サイクル比較する代わりに、Multiple Input Signature Registerを使用してパターン全体の結果を単一のSignatureに蓄積し、テストの最後に一度だけ比較する方式です。

SCANはご覧の通り、設計領域です。 ATPGはテープアウト後も可能なテスト領域です。

そしてご覧の通り、チップは実際にはチップの目的に応じた動作が重要ですが、テストには膨大なコスト(設計も複雑で、テスト用に追加のエリアとポートが必要)がかかります。

例えば、SCANシフトは極めて高い信号スイッチング活動を引き起こし、これは非常に大きな電力消費、 発熱を引き起こし、HCI、BTI、IR、EMまで発生させます。そのためDFT分野も研究テーマが多岐にわたる分野です。


4. MBIST (Memory Built-In Self-Test)

現代のSoC面積の半分近くを占めるメモリは、ロジックよりもトランジスタ密度がはるかに高いため、製造欠陥に対してより脆弱です。

スキャンテストはフリップフロップやロジックゲートをテストするのに最適化されているため、メモリセル内部の微細な容量性欠陥や隣接セル間の干渉を検出するには不向きです。したがって、メモリ専用のテストエンジンであるMBISTが必須となります。

4.1 Marchアルゴリズム

MBISTコントローラはチップ内部に内蔵されており、外部機器の助けなしに自らメモリにデータを書き込んで読み取り、動作を検証します。この際に使用される標準アルゴリズムがMarchアルゴリズムです。Marchアルゴリズムはメモリアドレス空間を順次Marchingしながら一連の読み取り/書き込み動作を実行します。

4.2 ビルトイン自己修復、 BISR

メモリは歩留まり低下の主因であるため、欠陥が発見されたからといってチップ全体を廃棄することは経済的に大きな損失です。これを防止するためにBISR技術が適用されます。

  • 冗長性(Redundancy): メモリ設計時に冗長性の行(Row)と列(Column)を事前に配置します。
  • 修復プロセス: MBISTテスト中に欠陥セルが検出されると、コントローラは該当するアドレス情報を保存します。テスト終了後、この情報はチップ内部のeFuse(電気ヒューズ)に永続的に記録されます。
  • 再マッピング:チップが起動する時、HW Logicがヒューズ情報を読み取り、欠陥のあるアドレスを予備の行/列に物理的に再マッピングします。このプロセスはユーザーには見えず、チップは欠陥がないかのように正常に動作します。

5. LBIST (Logic Built-In Self-Test)

LBISTはロジック回路が自己テストを行う技術であり、ATEなしでチップ自らが欠陥を検出できるようにします。これはチップ製造段階だけでなく、自動車の始動時(Power-On Self-Test)や動作中の(Run-Time Test)にチップの完全性を確認する必要があるISO 26262機能安全規格への準拠において核心的な役割を果たします。

5.1 STUMPS アーキテクチャと構成要素

LBISTは、STUMPS (Self-Test Using MISR and Parallel Shift register sequence generator)アーキテクチャに基づいて実装されます。

Imhof, Michael & Zoellin, Christian & Wunderlich, Hans-Joachim & Maeding, Nicolas & Leenstra, Jens. (2007). Scan Test Planning for Power Reduction. 521-526. 10.1145/1278480.1278614.
  1. PRPG (Pseudo-Random Pattern Generator): ATPGのように保存されたパターンを使用する代わりに、LFSR (Linear Feedback Shift Register)を使用して毎サイクル擬似乱数パターンを生成します。これにより、別途メモリを必要とせずに非常に大きなパターンを生成できます。
  2. 位相シフター: LFSRの出力は構造的依存性を持つ可能性があります。位相シフターはXORネットワークを介してこれを混ぜ合わせ、隣接するスキャンチェーンに入るデータの相関性を除去し、パターンの無作為性を高めます。
  3. MISR (Multiple Input Signature Register): 数千ものスキャンチェーンからの出力結果を保存できないため、これを圧縮して固定長のシグネチャに変換します。多項式除算演算を行うLFSRの逆構造に類似しています。
  4. BIST Controller: テストの開始、停止、パターン数、クロック速度などを制御するする状態マシンです。

5.2 ゴールデンシグネチャとX-Pounding問題

LBISTの検証は、テスト完了後に生成された最終シグネチャを、シミュレーションを通じて事前に計算されたゴールデンシグネチャと比較する方法で行われます。両値が一致すればPass、一つでも異なればFailです。

この過程における最大の難関は、'X' (未知) 値の処理です。回路内に初期化されていないメモリ、アナログブロックの出力、フローティングノードなどが存在する場合、シミュレーションでは'X'として表示されます。

ATPGではこれを無視できますが、LBISTのMISRではこの「X」値が入力された瞬間、シグネチャ全体が破損(Corruption)し、予測不可能な値となってしまいます。 これを防ぐためには、設計段階で「X」発生の原因を除去するか、X-Blockingロジックを追加してMISRに入る経路を遮断する必要があります。


6. 標準インターフェース:チップと外部世界の接続

SoCは、数多くのIPコア(CPU、GPU、DSP、メモリコントローラなど)で構成される複雑なシステムです。これらを個別に制御およびテストするために、国際的に標準化されたインターフェースが使用されます。

IEEE1149, 1500, 1687まで頻繁に使用され、3D-IC時代には1838も多用される見込みです。


結論:DFT技術の将来展望

これまで見てきたように、DFTは半導体設計の単なる付加機能ではなく、チップの歩留まり、コスト、品質、安全性を担う中核アーキテクチャです。

今後、DFT技術は以下のような方向へ進化すると予想されます。

  1. AIベースのDFT & ATPG
  2. 3D-IC、HBM、およびチップレットテスト
  3. 高速I/Oループバックテスト:

結論として、 プロセスが微細化しチップが複雑化するほど、DFTの重要性はさらに高まり、設計初期段階からDFTを考慮する「DFT-First」方法論が半導体の成功に不可欠な条件となるでしょう。

Enjoyed this article?

Get deep-dive semiconductor analysis and career insights delivered weekly. Free forever — no paywall, no upsell. Funded by sponsorships with a strict editorial firewall (Editorial Standards).

Work with me

Consulting · Collaboration · Support

Paid 1:1 technical consulting, speaker invitations, collaboration proposals, or just want to say thanks — all welcome.

View options →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
Support