第9回「DFT」(201301)

LSIは機能の設計と検証を終えただけでは出荷することはできません。製造したLSIの品質を保証するための出荷テストを行なう必要があります。
LSIの出荷テストは、 回路機能の確認を行なう機能テストとは異なりLSI内部に物理的な故障があるかどうかをテストします。
尚、FPGAはメーカーから出荷される際にこの出荷テストが行なわれるので必要とはなりません。
出荷テストは、テスト回路の作成とテストパターンの作成が必要になります。これらを効率よく作成する技術をDFT(Design For testability、テスト容易化設計)と呼んでいます。




●テストの種類

テストは回路構成に応じて適切な手法を用いなければなりません。下図では、LSIの回路構成例と対応するテスト名を示しています。


onepoint9_1



●メモリBIST

メモリBISTはメモリの故障を検出するテストです。またBISTは"Built-In Self Test"の略です。即ち、「テストパターン生成する回路」と「メモリの動作結果と期待値を照合する回路」をLSI内部に組み込んだ形で実装します。通常、メモリの回路構成はBlackBoxで回路設計者に渡されます。回路の内部情報がわからないため、実際にメモリを動作させてテストを行います。



●バウンダリスキャン

バウンダリスキャンは、I/Oの故障を検出するテストです。
出力信号であれば、出力がHigh/Lowのレベルに変化するか?
入力信号であれば、外部から印可された信号をLSI内部へ正しく伝搬できたか?
を確認します。



●スキャン・テスト

スキャン・テストは、回路内の組み合わせ回路と順序回路の故障を検出するテストです。テスト回路(スキャン回路)はFF(順序回路)の入力にマルチプレクサを挿入し、これをテスト信号で切り替えられるようにすることで、スキャンパス(スキャンチェーン)を形成します(下図参照)。
実際には、専用ツールによって、FFセルをFFとマルチプレクサを組み合わせた一つのセル (スキャンセル) に置き換えた後、 スキャンパスを結線します。FF は、スキャンパスによって、次のFF に繋がります。SCAN_IN から入力された信号は、SCAN_SEL 信号が 1 の時、FF に順次セットされていきます。FF に値がセットされた後、SCAN_SELを0にし、通常動作モードで1クロック動作させます。動作した結果は、FFに蓄えられます。その後、再度SCAN_SELを1にし、FF に蓄えられた値をSCAN_OUT端子から順次出力します。テストパターンはテスト回路に置き換えた後に専用ツールによって生成するのが一般的です。



onepoint9_2



テスト回路やテストパターンは専用ツールによって大部分が行われますが、テストを意識した回路設計をするかしないかで、精度が大きく変わります。例えば、スキャン・テストに向かない回路を設計した場合、専用ツールを用いても正しいテスト回路を生成することはできません。また、テスト回路を生成できた場合でも、故障検出率が低いテストしかできなくなります。


DFTはLSIを出荷する上で必須の工程です。正しく動作する製品を出荷するために、DFTの知識を習得しましょう。



今回ご紹介した内容については、以下の書籍で詳しく解説しています。


●講座

RTL設計スタイルガイド
XILINX
教育サービス
HDLABトレーニング(SystemC)
HDLABトレーニング(SystemVerilog)
HDLABトレーニング(Verilog HDL)
HDLABトレーニング(フレッシュマン向け)
HDLABトレーニング(専門分野)
HDLABトレーニング(組込み分野)
HDLABトレーニング(XILINX認定)
HDLABトレーニング日程表
HDLABトレーニング開催リクエスト
Eラーニング
STIL講座
STIL講座ログイン
設計スキルアセスメント
設計技能検定試験「ESA」
設計技能検定試験「ESA Basic」
設計・コンサルティング
ARM CPUモデル環境
SystemC
Design Style Guide
設計・検証のワンポイント
購入・見積もり
ダウンロード
お問い合わせ

XAP