説明

スキャンパタン作成手法、プログラム、スキャンパタン作成装置、テスタ、及びテスト方法

【課題】スキャンテストに要する時間を削減するテストパタン作成方法を提供する。
【解決手段】テストパタン作成方法は、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出し、少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し(ステップS21)、抽出したフリップフロップがスキャンキャプチャ動作によって組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し(ステップS22〜S25)、期待値が不要と判定されたフリップフロップが入力側から連続して存在するフリップフロップの数を取得し(ステップS27)、スキャンチェーンに含まれるフリップフロップの総数と、取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する(ステップS28)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体集積回路のスキャンテストに関し、特にスキャンテストの時間を短縮するためのスキャンパタン作成方法に関する。
【背景技術】
【0002】
半導体集積回路(以降、LSIと称す)の微細化、大規模化に伴い、LSIをテストする際の、テストパタンやテスト時間が膨大となり、テストコストが増加してきている。その為、LSIのテストコストを削減するために、テスト容易化設計として、スキャンテストが一般に用いられている。
スキャンテストは、組み合わせ論理回路の出力端子に接続されているフリップフロップを利用し、各フリップフロップの出力端子を、他のフリップフロップの入力端子へと直列に接続して、チェーン状に接続したスキャンチェーンを形成して行なう。
【0003】
スキャンテストには、スキャンシフト動作とスキャンキャプチャ動作がある。
「スキャンシフト動作」とは、形成されたスキャンチェーンの入力端子からシフトデータを入力し、この値を伝達することによって、各フリップフロップに任意の入力値を設定することができ、同時に各フリップフロップが保持するデータを出力する事をいう。
「スキャンキャプチャ動作」とは、組み合わせ論理回路によって各フリップフロップに設定された値が演算された結果を、組み合わせ論理回路の出力端子に接続されているフリップフロップに保持させる事をいう。
【0004】
近年、更なるLSIの微細化、大規模化に伴い、フリップフロップの数が多くなり、スキャンチェーンの長さが長くなり、スキャンシフト動作に対するテスト時間が膨大となり、テストコストが増加してきている。その為、スキャンシフト動作にかかる時間を削減する技術が求められている。
【0005】
例えば、非特許文献1には、スキャンテストで使用するLSI内部回路のデザインに関する技術が開示されている。
図12Aに一般的な同期回路、図12Bに一般的なスキャンチェーンを形成した回路を示す。
図12Aの回路は、M個(Mは1以上の整数)のフリップフロップ(以降、適宜「FF」ともいう)1〜Mから構成されるフリップフロップ群701とCombinational Circuit702(以降、適宜「組み合わせ論理回路」ともいう)を搭載する一般的な同期回路である。これに対して、図12Bの回路は、各フリップフロップ703、705、707の入力端子(D端子)に出力端子が接続された、2−to−1型MUX(以降、適宜「MUX」ともいう)704、706、708を配置してスキャンチェーンを形成した回路である。この回路では、最前段のMUX704の入力端子は、組み合わせ論理回路702の出力端子709と、SI端子710とが接続される。中間のMUX706の入力端子には、組み合わせ論理回路702の出力端子711と、前段のフリップフロップの出力端子(Q端子)712が接続される。最後段には、MUX713を配置し、その入力端子には、組み合わせ論理回路702の出力端子(Zn端子)714と最後段のフリップフロップの出力端子(Q端子)715が接続される。その出力は、SO端子716である。すべてのMUXには、同じスキャンイネーブル信号(以降、適宜「SE信号」ともいう)717を供給する。
【0006】
例えば、SE信号が"1"の時、シフト動作となり、最前段のMUX704を除くすべてのMUX706、708、714には前段のフリップフロップの出力がインプットされ、すべてのフリップフロップ703、705、707はシフトレジスタとして動作する。最前段のMUX704にはSI信号(Xk)がインプットされ、最後段のMUX713の出力は、SO信号となる。SE信号が"0"の時、スキャンキャプチャ動作となり、組み合わせ論理回路702の出力がそれぞれ接続されたMUXにインプットされ、全てのフリップフロップに組み合わせ論理回路702の出力が格納される。この回路が、一般的なスキャンチェーンを形成した回路(図12B)になる。
【0007】
図13に、一般的なスキャンチェーンを形成した回路(図12B)に対して、スキャンテスト用のテストパタン作成の動作例のフローチャートを示す。図13では、テストパタンを作成するツール(プログラム)を用いて図13に示す各ステップの処理を実施することを前提として説明する。
ステップS82では、一般的なスキャンチェーンを形成した回路のネットリスト(組み合わせ論理回路とスキャンチェーンとに関する情報を含む回路構成情報)を記録媒体から読み込み、ネットリストから組み合わせ論理回路及びスキャンチェーンの情報などの回路構成の抽出を行いステップS83に進む(ステップS82)。ネットリストは予め作成され、記録媒体に保存されている。
続いて、ステップS83では、スキャンシフト動作を行い、抽出したスキャンチェーンの情報に含まれる全フリップフロップに対して、シフトインによりSI端子からシフトデータをシフトさせることにより、各フリップフロップの値を確定させ、ステップS84に進む(ステップS83)。
ステップS84では、スキャンキャプチャ動作を行い、組み合わせ論理回路702の出力を全フリップフロップに取り込み、S85に進む(ステップS84)。
【0008】
ステップS85では、スキャンシフト動作を行い、ステップS84もしくはステップS86にて各フリップフロップが取り込んだ組み合わせ論理回路702の出力(演算結果)を期待値として、SO端子から順次シフトアウトし、M個の期待値からなる期待値パタンを作成する。同時に、シフトインにより、SI端子から新たなシフトデータをシフトさせ、各フリップフロップの値を確定させ、ステップS86に進む(ステップS85)。
ステップS86では、スキャンキャプチャ動作を行い、組み合わせ論理回路702の出力を全フリップフロップに取り込み、ステップS87に進む(ステップS86)。
ステップS87では、組み合わせ論理回路702及びフリップフロップ703、705、707に対して、故障検出箇所の抽出を行い、故障検出が全て完了した、もしくは、新規の故障検出ができないかどうかの判定を行う。新規故障検出ができる場合はステップS85へ進み、新規故障検出が出来ない場合はステップS88へ進む(ステップS87)。
ステップS88では、スキャンシフト動作を行い、ステップS86にて取り込んだ組み合わせ論理回路702の出力を期待値として、SO端子から順次シフトアウトし、M個の期待値からなる期待値パタンを作成して、終了する(ステップS88)。
【0009】
図14に、一般的なスキャンチェーンを形成した回路(図12B)のタイミングチャートを示す。シフト動作1pが、ステップS83のタイミングチャートに相当する。シフト動作1pでは、SE信号を"1"に設定し、SI端子よりシフトデータ(SD11、SD12、SD1M−2・・・SD1M−1、SD1M)を入力し、CLK動作により1番目のフリップフロップ703(図14では、"FF1"と表示)から順次伝播させ、CLKをM回入れる事でM番目のフリップフロップ707(図14では、"FFM"と表示)までシフトデータを伝播する。キャプチャ動作1pがステップS84、キャプチャ動作2pがステップS86のタイミングチャートに相当する。キャプチャ動作1p、2pでは、SE信号を"0"に設定しCLKを入力する事で、組み合わせ論理回路702の出力(CD11、CD12・・・CD1M)を全フリップフロップに取り込む。シフト動作2pが、ステップS85のタイミングチャートに相当する。シフト動作2pでは、SE信号を"1"に設定し、SO端子より、キャプチャ動作にて取り込んだデータ(CD11、CD12・・・CD1M)を、CLKをM回入れる事で、全て出力する。同時にSI端子よりシフトデータ(SD21、SD22・・・SD2M−2、SD2M−1、SD2M)を入力し、CLK動作により1番目のフリップフロップ703から順次伝播させ、CLKをM回入れる事でM番目のフリップフロップ707までシフトデータを伝播する。
【0010】
シフト動作2pにおいて、SE信号を"1"に設定し、SO端子より、キャプチャ動作にて取り込んだデータ(CD11、CD12・・・CD1M)を、CLKをM回入れる事で、全て出力する動作のみ実行するのが、ステップS88の動作となる。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2009−042017号公報
【特許文献2】特開2006−047013号公報
【非特許文献】
【0012】
【非特許文献1】"LSIのテストのためのLSI内部回路、1 スキャンテスト、1−2 スキャンデザイン"、[online]、特許庁ホームページ 資料室(その他参考資料) 標準技術集について、[平成23年6月22日検索]、インターネット<https://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/lsi_test/lsi-test-1-2.htm>
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、従来技術は、LSIのテスト時間が増大するという問題がある。その理由は、シフト動作2pにおいて、CLKをM回入れる事で、シフトアウトを行なうが、シフトインを行いフリップフロップの値を確定する為に、不定値となり期待値を出力する必要ないフリップフロップのデータを出力する。加えて、新規故障検出を伴わず期待値を出力する必要ないフリップフロップのデータも出力する。このように、フリップフロップが組み込み論理回路から取り込んだ期待値のうち、シフトアウト動作により出力する必要のない、不必要なシフト動作を行なっている。
【0014】
また、スキャンテスト時間を短縮する手法として、特許文献1、2に関連する技術が開示されている。しかしながら、いずれもスキャン回路の回路構成を変える必要があり、回路面積の増加、制御信号の追加が必要となる。
このように、スキャンテストに要する時間を削減することが望まれていた。
【課題を解決するための手段】
【0015】
発明者は、スキャンテストにおけるスキャンシフト動作を削減することにより、スキャン回路の構成を変えることなく、LSIテストに要する時間を削減できることを発見した。
【0016】
本発明に係るテストパタン作成方法の一態様は、スキャンテストのテストパタン作成方法であって、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出し、前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、前記抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得し、前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する。
【0017】
上述した通り、テストパタン作成方法では、スキャンチェーンを構成する各フリップフロップについて、スキャンキャプチャ動作によって当該フリップフロップが取り込むキャプチャデータを期待値と照合する必要性を判定する。判定結果に基づいて、入力端子側に近いフリップフロップから、期待値が不要なフリップフロップが連続する場合、言い換えると、入力端子側から期待値が必要なフリップフロップが検出されるまでの間に存在するフリップフロップに対して、スキャンテストにおいてキャプチャデータを出力しないでスキャンシフト動作を実施するような、スキャンテスト回数が変動するテストパタンを作成する手法を提供する。その結果、スキャンテストにおいて、スキャンシフト回数をスキャンチェーンに含まれるフリップフロップの総数に一致させることなく、フリップフロップの総数以下のスキャンシフト動作を実行可能にする。これにより、スキャンシフト回数が削減できるため、スキャンテストに掛かる時間を削減することができる。
【0018】
本発明に係るプログラムの一態様は、スキャンテストのテストパタン作成方法を実現するプログラムであって、コンピュータに、少なくとも次の処理を実行させる。
組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出す処理。
前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定する処理。
前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する処理。
前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する処理。
【0019】
本発明に係るテストパタン作成装置の一態様は、スキャンテストのテストパタン作成装置であって、記録媒体、抽出部、及び決定部を備える。
記録媒体は、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を格納する。
抽出部は、前記少なくとも一つのスキャンチェーンの情報を前記記録媒体から読み出し、スキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する。
決定部は、前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する。
【0020】
さらに、本発明に係るテスタ、または、テスト方法の一態様は、上述したテストパタン作成方法によって生成されたテストパタンを用いて、スキャンテストを実施する。
【発明の効果】
【0021】
本発明によれば、スキャンテストに要する時間を削減するテストパタンを提供することが可能となる。
【図面の簡単な説明】
【0022】
【図1】本発明の実施形態1のテストパタン作成方法の動作例を示すフローチャートである。
【図2】図1のスキャンシフト回数決定処理の詳細な動作例を示すフローチャートである。
【図3】本発明のテストパタン作成方法を実行させるシステムの構成例を示す図である。
【図4】期待値が不要のフリップフロップがゼロでない場合について、期待値が不要のフリップフロップ群と、期待値が必要なフリップフロップ群に切り分けたスキャンチェーン回路を表すイメージ図ある。
【図5】期待値が不要のフリップフロップがゼロでない場合について、SI端子よりシフトインされ値が確定されたフリップフロップ群と、キャプチャデータをシフトインデータとして流用するフリップフロップ群に切り分けたスキャンチェーン回路を表すイメージ図である。
【図6】本発明の実施形態1のテストパタン作成方法でテストパタンを作成する動作例を示すタイミングチャートである。
【図7】本実施形態により生成されるテストパタンのデータ構成例を示すイメージ図である。
【図8】複数のスキャンチェーンが形成された例を示すイメージ図である。
【図9】本発明の実施形態2のテストパタン作成方法(複数のスキャンチェーンが形成される場合)の動作例を示すフローチャートである。
【図10】本発明の実施形態3に係るテストパタン生成装置の構成例を示す図である。
【図11】本発明の実施形態4のテストパタン作成方法(フリップフロップのインスタンス名を保存する場合)の動作例を示すフローチャートである。
【図12A】一般的な同期回路を示す図である。
【図12B】一般的なスキャンチェーンを形成した回路を示す図である。
【図13】一般的なスキャンチェーンを形成した回路に対して、スキャンテスト用のテストパタン作成の動作例を示すフローチャートである。
【図14】一般的なスキャンチェーンを形成した回路のタイミングチャートである。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【0024】
本発明のテストパタン作成方法は、期待値を必要としないフリップフロップが、SI端子から連続して存在する数を取得するステップと、スキャンチェーンを構成するフリップフロップの総数と、期待値を必要としないフリップフロップがSI端子から連続して存在する数との差分からスキャンシフト動作時のスキャンシフト回数を決定するステップとを有する。期待値を必要としないフリップフロップは、期待値が不定値となるため、期待値を必要としないこと、及び/または、新規故障検出を伴わないため、期待値を必要としないこと、の要件を満たすフリップフロップの個数を取得する。取得したフリップフロップの個数に応じて、スキャンシフト動作を実施することを可能にする。これにより、シフト動作の回数削減が可能となり、LSIのテスト時間を短縮することができる。
【0025】
実施形態1.
実施形態1の構成
図1,2に、本発明の実施形態1のテストパタン作成方法の動作例を示すフローチャートを示す。図1,2に示すフローチャートでは、図13と同様の処理を実施する工程には同じステップ番号を付している。本実施形態では、テストパタン作成方法をプログラム(ソフトウェア)によって実現することを前提として説明する。
まず、図3を参照して、テストパタン作成方法を実行する装置の構成例を説明する。図3は、本発明の実行プログラムなどを実行させる為のシステムの構成例を示す図である。システムは、一つ以上のコンピュータ装置601、サーバ602、記録媒体603、及び、ネットワーク604で構成される。
【0026】
コンピュータ装置601は、エンジニアリングワークステーション等の情報処理装置であり、例えば、CPU(Central Processing Unit)で構成される処理部、ハードディスクやRAM(Random Access Memory)やROM(Read Only Memory)といった記録部(記録領域)、ネットワーク604とのインターフェースである通信部、及び、キーボードやマウスなどの入出力インターフェースである入出力部等を備える。コンピュータ装置601は、ネットワーク604を介してサーバと接続する。
サーバ602は、記録媒体603に加え、CPUで構成される処理部611と、ネットワーク604とのインターフェースである通信部612とを少なくとも備える。サーバ602は、さらに、入出力インターフェースである入出力部、ハードディスクやRAMやROMといった記録部(記録領域)を備えていてもよい。サーバ602は、ネットワーク604を介してコンピュータ装置601に接続する。
【0027】
記録媒体603は、プログラム(実行プログラム)、ネットリスト、及び、テストパタンなどを格納する記憶装置であり、サーバ602に保持されている。図3では、記録媒体603は、サーバ602に配置される構成例を示しているが、これに限られることはなく、例えば、ネットワーク604を介してサーバ602が読み出し、書き込み可能な場所に配置してもよい。
「回路構成情報」は、少なくとも組み合わせ論理回路とスキャンチェーンとに関する情報を含む。
「テストパタン」は、シフトデータ(入力パタン)と期待値(期待値パタン、出力パタン)とを含む。
「シフトデータ」は、スキャンシフト動作(シフトイン)により入力される値であり、各フリップフロップが保持する値を確定させるために用いる。
「期待値」は、スキャンシフト動作(シフトアウト)により出力される、フリップフロップのキャプチャデータを照合するための値である。スキャンテストのキャプチャ動作では、フリップフロップは組み合わせ論理回路の演算結果をキャプチャデータとして、当該回路から取り込み、保持している。
【0028】
ネットワーク604は、コンピュータ装置601とサーバ602との間の通信を接続する。例えば、ネットワーク604は、インターネット、移動体通信網や、専用線網や、LAN(Local Area Network)といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
【0029】
記録媒体603に格納されているプログラムは、ネットワーク604を介してコンピュータ装置601により実行される構成になっている。言い換えると、ユーザがコンピュータ装置601を介してプログラムのコマンドを入力することによって、コンピュータ装置601は、ネットワーク604を介してサーバ602へプログラムの起動を指示する。サーバ602では、プログラムの起動の指示を通信部612によって受け付けると、処理部611が、記録媒体603に格納されたプログラムを読み出し、プログラムに含まれる命令群を順次実行する。本実施形態では、処理部611が、図1,2のフローチャートに示す動作例を実現するプログラムを実行する。
【0030】
本実施形態では、プログラムはサーバ602に、少なくとも次の処理を実行させる。
・組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報(回路構成情報)を、記録媒体603から読み出す処理。
・少なくとも一つのスキャンチェーンの入力(SI端子)側に近いフリップフロップから順番に抽出して、期待値の必要性を判定することを、期待値が必要なフリップフロップが検出されるまで繰り返す処理。
・スキャンチェーンの入力側から連続して存在する、期待値が不要と判定されたフリップフロップの数を取得する処理。言い換えると、入力側に近いフリップフロップから期待値が必要と判定されたフリップフロップの直前のフリップフロップまでの数を取得する処理。
・スキャンチェーンに含まれるフリップフロップの総数と、取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する処理。
各処理ついては、図1,2を参照して動作の説明において詳述する。
【0031】
実施形態1の動作
次に、実施形態1のテストパタン作成方法の動作を、図1,2を参照して説明する。図1では、図13の動作に加え、スキャンシフト回数を決定する処理(ステップS11)、決定したスキャンシフト回数のスキャンシフト動作を行う処理(ステップS13及びS14)、及び、期待値を必要としないフリップフロップの数がゼロであるかを判定する処理(ステップS12)を有する。
ステップS82−S84、及びステップS87の動作は、図13と同様であるため、適宜説明を省略する。ステップS82では、ネットリスト、スキャンシフト動作で用いるシフトデータ等は、予めあるいは処理の工程に応じて、記録媒体603に格納されていることを前提とする。
【0032】
ここでは、一例として、図4に示すスキャンチェーンを形成したスキャンチェーン回路のテストパタンを生成する場合を説明する。従って、記録媒体603には、図4に示すスキャンチェーンを形成した回路に関して、組み合わせ論理回路702とスキャンチェーンとに関する情報を含むネットリストが格納されていることを前提とする。
【0033】
以降の説明では個数M(Mは1以上の整数)と個数N(Nは0以上M以下の整数)とを用いてスキャンシフト回数を決定する動作を説明する。
「個数M」は、SI端子からSO端子までのスキャンチェーンに含まれるフリップフロップの総数である。
「個数N」は、期待値を必要としないフリップフロップの個数である。個数Nは、各フリップフロップについて、期待値の必要性を判定することによって取得される数である。なお、図4、5では、期待値が不要のフリップフロップの個数Nがゼロでない場合を前提として示している。加えて、図4では、個数Nは2より大きく、個数(N+1)が個数Mより小さい場合を示し、図5では、個数Nは2より大きく、個数(M−N+1)が個数Mより小さい場合を示している。これは、説明をわかりやすくするため、個数Mと個数Nとの関係の一例を示したものであり、個数Mと個数Nとの関係、個数Mの値、個数Nの値などはこれらに限定されるものではない。例えば個数Nはゼロ、1、2、あるいは個数Mと一致する場合があり得る。また、その他の図面においても、説明をわかりやすくするために、個数M、個数N、及び、個数Mと個数Nとの関係の一例を示したものであり、本発明を限定して解釈するものではない。
【0034】
「スキャンシフト回数」は、次のスキャンシフト動作で実施するシフトの数であり、個数Mと個数Nとの差分により決定される。
「期待値の必要性」は、テストパタンに、フリップフロップの期待値を含める必要があるか否かを意味する。言い換えると、実際に回路をスキャンテストする場合に、スキャンキャプチャ動作によってフリップフロップが組み合わせ論理回路から取り込んだキャプチャデータについて、キャプチャデータと期待値との照合が必要か不要かを意味する。
期待値が不要なフリップフロップを抽出するため、テストパタンを作成するときに、(1)キャプチャデータ(期待値)が不定値となるため、期待値が必要ないフリップフロップ、及び/または、(2)新規故障検出箇所がないため、期待値が必要ないフリップフロップを抽出する。
本実施形態では、個数Nを、上述した(1)、及び(2)の要件の少なくとも一方に合致するフリップフロップを抽出する場合を説明する。
【0035】
スキャンキャプチャ動作後(ステップS84)、スキャンシフト回数決定処理を行う(ステップS11)。
スキャンシフト回数決定処理(ステップS11)では、スキャンチェーンの情報から、SI端子から近い順にフリップフロップを抽出し、(1)キャプチャデータが不定値となるフリップフロップの個数、及び、(2)新規故障検出箇所がないフリップフロップの個数を、期待値が必要なフリップフロップを検出するまでカウントする。これにより、削減できるスキャンシフトの数(個数N)を計算すること、スキャンシフト動作を実施する直前のスキャンキャプチャ動作において、組み合わせ論理回路からフリップフロップに取り込まれたデータ(組み合わせ論理回路の演算結果)をシフトデータとして用いる。
【0036】
図2に、図1のスキャンシフト回数決定処理(ステップS11)の詳細な動作例を示す。
ステップS21において、ステップS82にて抽出された、図4のスキャンチェーン回路に含まれるフリップフロップのうち、SI端子に最も近い1番目のフリップフロップ703を抽出する。この処理では、ステップS84にてキャプチャされたデータが、ステップS22にて不定値であるかの判定と、ステップS25にて新規故障検出箇所があるかを判定する。判定した結果、再びステップS21に戻ってきた場合は、次にSI端子に近い2番目のフリップフロップ705を抽出する。以後、ステップS21に戻ってくる度に、3番目のフリップフロップ、・・・、M番目のフリップフロップ707とスキャンチェーンの順番にフリップフロップを抽出する(ステップS21)。
【0037】
ステップS22において、ステップS21にて抽出されたフリップフロップについて、当該フリップフロップのキャプチャデータ(直前のスキャンキャプチャ動作でキャプチャされたキャプチャデータ)が不定値であるか否かを比較する(ステップS22)。直前のスキャンキャプチャ動作により、スキャンチェーンを構成する各フリップフロップには、各フリップフロップにシフトインされたシフトデータに基づいて、組み合わせ論理回路を動作させたときの出力結果が、キャプチャデータとして取り込まれている。
【0038】
テストパタン生成における各フリップフロップに取り込まれたキャプチャデータは、実際に回路をスキャンテストする場合には、各フリップフロップからシフトアウトされたキャプチャデータと照合する期待値となる。
キャプチャデータが不定値であるということは、実際に回路をスキャンテストしたとき、フリップフロップに取り込まれているキャプチャデータと期待値との照合が必要ないことを意味する。従って、このようなフリップフロップのキャプチャデータに対する期待値をテストパタンに含める必要がない。このため、期待値の必要性の判定に、キャプチャデータが不定値であるか否かを用いる。
【0039】
不定値である場合(ステップS22でYES)、ステップS23へと進み、期待値が不要なフリップフロップとしてカウントし、ステップS21へ戻る(ステップS23)。カウントしたカウント値は、サーバ602内の記録媒体603に保持してもよいし、サーバ602内の他の記録部(記録領域)に保持してもよい。
不定値でない場合(ステップS22でNO)、ステップS24へ進み、回路構成情報に含まれる組み合わせ論理回路の情報を用いて、フリップフロップに接続されている組み合わせ論理回路を抽出し、ステップS25に進む(ステップS24)。
【0040】
ステップS25では、キャプチャデータが、ステップS24で抽出した組み合わせ論理回路に対して、新規故障検出箇所を抽出しているか判定を行う(ステップS25)。この判定は、既存のテストパタンを作成するツールにより実現できるものであるため、詳細な説明を省略する。
新規故障検出箇所を抽出していない場合(ステップS25でYES)、ステップS26へ進み、期待値が必要ないフリップフロップとしてカウントし、ステップS21へ戻る(ステップS23)。
新規故障検出箇所を抽出している場合(ステップS25でNO)、ステップS27へと進み、SI端子から期待値が不要なフリップフロップの個数Nを保持するカウント値を読み出すことによって取得し、ステップS28に進む(ステップS27)。図4に、期待値が不要なフリップフロップ群301と、期待値が必要なフリップフロップ群302に切り分けたスキャンチェーン回路を表す。SI端子に最も近い1番目のフリップフロップ703から順番にフリップフロップを抽出して判定した結果、N+1番目のフリップフロップ304を期待値が必要となるフリップフロップとして判定した場合を示す。スキャンテストにおいて、フリップフロップ群301は、シフトアウトを必要としないグループである。一方、フリップフロップ群302は、シフトアウトが必要となるグループである。これは、N+1番目のフリップフロップ304がキャプチャデータと期待値との照合を必要とするため、N+1番目のフリップフロップ304を含め、これより後段のフリップフロップについてシフトアウトを必要とするからである。
【0041】
ステップS28では、スキャンシフト回数を個数Mから個数Nを差し引いた回数(以下、適宜、(M−N)ともいう)と決定し、ステップS87に進む(ステップS28)。
これらの処理により、スキャンシフト回数を決定する。続いて、図1に戻り、動作を説明する。
【0042】
ステップS87では、組み合わせ論理回路及び各フリップフロップに対して、故障検出箇所の抽出を行い、故障検出が全て完了したもしくは、新規の故障検出ができないかどうかの判定を行う(ステップS87)。この判定は、既存のテストパタン生成のツールを用いて実現可能なため、詳細な説明を省略する。新規故障検出ができない場合(ステップS87でYES)、ステップS14へ進み、新規故障検出ができる場合(ステップS87でNO)、ステップS12へ進む。
【0043】
ステップS12では、(M−N)の値の比較を行なう。(M−N)がゼロとなる場合(ステップS12でYES)、スキャンシフト回数がゼロとなり、スキャンシフト動作が行なわれなくなってしまう。言い換えると、スキャンシフト回数決定処理(ステップS11)によって期待値が不要なフリップフロップの個数Nが個数Mと一致すると判定されたものの、全故障検出が完了していない(ステップS87でNO)状態である。例えば、新たなシフトデータを設定するテストなど、テストパタンを変更して実施するスキャンテストが必要であると判定される場合である。その為、ステップS83に戻り、新たなシフトデータを用いて、全フリップフロップへスキャンシフト動作を行う。
(M−N)がゼロではない場合(ステップS12でNO)、ステップS13へ進む。
【0044】
ステップS13では、(M−N)回のスキャンシフト動作により、期待値パタンとして作成するキャプチャデータを保持する(N+1)番目のフリップフロップ304からM番目のフリップフロップ707の値を全てSO端子から出力する。
図5に、SI端子よりシフトインされ値が確定されたフリップフロップ群403と、キャプチャデータをシフトインデータとして流用するフリップフロップ群404に切り分けたスキャンチェーン回路を表す。スキャンシフト回数が(M−N)であるため、SI端子に最も近い1番目のフリップフロップ703から(M−N)番目のフリップフロップ401までは、シフトデータにより値が確定する。(M−N+1)番目のフリップフロップ402以降では、前段のフリップフロップ、具体的には、1番目から(M−N)番目のフリップフロップのいずれかが保持する値がシフトされて設定されることになる。
通常、スキャンシフト動作の際、シフトインにより1番目からM番目のフリップフロップの値を設定させる。しかしながら、本実施形態では、N回分シフト回数を削減する為、シフトデータを、SI端子に一番近い1番目のフリップフロップから(M−N)番目のフリップフロップ401までしか送ることができない。その結果、(M−N+1)番目のフリップフロップ402からM番目のフリップフロップ707までのフリップフロップ群404へ、シフトデータのシフトインによる値を入力させる事ができない。
【0045】
この為、ステップS13では、直前のスキャンキャプチャ動作(ステップS84)によって、1番目のフリップフロップ703からN番目のフリップフロップ303が取り込んだキャプチャデータを、シフトデータとして流用する。フリップフロップ群403が保持するキャプチャデータを、シフトデータのかわりに用いる事で、(M−N+1)番目のフリップフロップ402からM番目のフリップフロップ707までのフリップフロップ群404の値を、テスト実施者が把握できる値に設定する事が可能となる。
「テスト実施者が把握できる値」とは、テスト実施者が各フリップフロップにどのような値を設定しているかが把握できる値であることを意味する。具体的には、キャプチャデータをシフトデータとして流用するため、フリップフロップに設定する値として、確定した値のみならず、不定値である場合も含むことを意味する。このような場合、スキャンテストでは、所定のフリップフロップでは不定値が設定されていることを前提として、組み合わせ論理回路の出力結果の期待値パタンを生成する。
【0046】
上記では、ステップS13に関して、図5を用いて、個数Nがゼロでなく、かつ、個数Nは2より大きく、個数(M−N+1)が個数Mより小さい場合を一例として具体的に説明した。しかし、ステップS13では、個数Nがゼロである場合も含まれる。具体的には(M−N)が個数Mと一致する場合である。この場合、全フリップフロップのキャプチャデータをスキャンアウトするとともに、シフトデータを各フリップフロップへシフトインすることになる。
このようにして、(M−N)回のスキャンシフト動作によって、フリップフロップに保持されたデータがシフトアウトされ、シフトアウトされたデータを期待値とするテストパタンを作成する。(M−N)回のシフト動作後は、ステップS84へ進む(ステップS13)。
【0047】
ステップS14では、(M−N)回のスキャンシフト動作によりキャプチャデータを保持する(N+1)番目のフリップフロップ304からM番目のフリップフロップ707の値を全てSO端子から出力し、出力された値を期待値としてテストパタンを生成して動作を終了する(ステップS14)。
上述のように、ステップS83〜S14までを繰り返すことにより、シフトイン時にSI端子に入力するシフトデータ、及び、シフトアウト時にSO端子から出力される値を期待値とするテストパタンを順次作成していく。
【0048】
実施形態1のメカニズムおよび効果
実施形態1のスキャンテストのテストパタン作成方法は、LSIのスキャンテスト時間を短縮することが出来る。その理由は、図14の一般的なスキャンチェーンを形成した回路のタイミングチャートのシフト動作2pがスキャンシフト動作をM回繰り返すのに対し、本実施形態は、図6の本発明のタイミングチャートのシフト動作2のように、スキャンシフト回数(M−N)を決定し(ステップS11)、(M−N)回のスキャンシフト動作を行う(ステップS13及びS14)為、N回分のシフト動作を省略する事が出来る為である。
【0049】
本実施形態では、図4に示すように、ステップS27にて決定された、期待値が不要のフリップフロップであるためにシフトアウトが不要なフリップフロップ群301と、シフトアウトが必要なフリップフロップ群302に切り分けた回路イメージになる。
加えて、図5に示すように、ステップS13にて、SI端子よりシフトデータがシフトインされ、値が確定されるフリップフロップ群403と、キャプチャデータをシフトインデータとして使用するフリップフロップ群404に切り分けた回路イメージになる。
【0050】
図6は、実施形態1のテストパタン作成方法でテストパタンを作成する動作例を示すタイミングチャートである。
シフト動作2が、ステップS13のタイミングチャートになる。シフト動作1では、SE信号を"1"に設定し、SI端子よりシフトデータ(SD21、SD22、SD2M−2、・・・、SD2M−N−1、SD2M−N)を入力する。CLK動作により1番目のフリップフロップ703(図6では、"FF1"と表示)からシフトデータを順次伝播させ、CLKを(M−N)回入れる事で(M−N)番目のフリップフロップ401(図14では、"FF(M−N)"と表示)までシフトデータを伝播する。(M−N+1)番目のフリップフロップ402(図14では、"FF(M−N+1)"と表示)からM番目のフリップフロップ707(図14では、"FFM"と表示)には、キャプチャ動作1にて、任意のフリップフロップより前段に配置されたフリップフロップが取り込んだキャプチャデータ(CD11、CD12、・・・、CD1N)が、順次伝播される。
キャプチャ動作2では、シフト動作2により伝播されたシフトデータまたはキャプチャデータ(SD2M−N、SD2M−N−1、・・・、SD21、CD11、・・・、CD1N)を用いて、組み合わせ論理回路の出力(CD21、CD22・・・、CD2M−N、CD2M−N+1・・・、CD1M)を全フリップフロップに取り込む。
【0051】
次に、テストパタンについて説明する。テストパタンは、次のデータから構成される。
・1回目のスキャンシフト動作において、スキャンチェーンを構成する複数のフリップフロップへ既知の値を設定する(シフトイン)ためのシフトデータ。
・2回目以降、最後のスキャンシフト動作の一つ前のスキャンシフト動作において、複数のフリップフロップへ設定するための複数のシフトデータ(入力パタン)と、直前のスキャンキャプチャ動作によって各フリップフロップに取り込まれたキャプチャデータを出力させ(シフトアウト)、出力されたキャプチャデータと照合させるための複数の期待値(期待値パタン)。
・最後のスキャンシフト動作において、直前のスキャンキャプチャ動作によって各フリップフロップに取り込まれたキャプチャデータを出力させ(シフトアウト)、出力されたキャプチャデータと照合させるための複数の期待値。
【0052】
本実施形態に係るテストパタン作成方法を用いてテストパタンを作成すると、スキャンシフト動作で用いるテストパタンは、スキャンテスト回数に応じて作成されるため、シフトデータ及び期待値は、1回目からZ回目まで同一個数でなく、複数種類の個数となる。
スキャンシフト動作を3回以上のX回(Xは、3以上の整数)行う場合、フリップフロップの総数をM(Mは1以上の整数)、K回目(Kは1以上X以下の整数)のスキャンシフト動作が不要なフリップフロップの数をN[K](Nは0以上M以下の整数)、K回目のスキャンシフト動作のスキャンシフト回数を(M−N)[K]とすると、テストパタンには、各スキャンシフト動作で用いるテスト用のデータとして、
・1回目のスキャンシフト動作に対して、個数Mのシフトデータ、
・X−1回目のスキャンシフト動作それぞれに対して、個数(M−N)[X−1]と、個数Mとのいずれかのシフトデータ及び期待値、
・X回目のスキャンシフト動作に対して、個数(M−N)[X]の期待値、
を含むことになる。
【0053】
図7に、テストパタン作成方法により作成したテストパタンのデータ構成例のイメージを示す。図7では、作成されるシフトデータ及び期待値の数の変動をわかりやすく示すため、データの値には記号を用い、一つのシフトデータを三角、一つの期待値を丸で示している。なお、図7に示すスキャンテスト回数、シフトデータ、または、期待値等の個数は一例であり、説明を容易にするために、M−5、M−10、M−15等の数値を用いている。しかしながら、本発明のテストパタン作成方法により作成したテストパタンが図7に示すイメージに限定されるものでない。以下、図7を参照してテストパタンの一例を説明する。
【0054】
シフト動作1(1回目のシフト動作、2回目以降も同様)では、シフトインのみであり、スキャンシフト回数は、フリップフロップの総数と一致するため、M個のシフトデータが作成される。図1のステップ83で用いるシフトデータに相当する。
シフト動作2では、期待値が不要なフリップフロップ数N[2]が5、決定されたスキャンシフト回数、M−N[2]が(M−5)である場合を一例として示す。従って、(M−5)個のシフトデータと期待値とが作成される。図1のステップS13でシフトインするシフトデータ及びシフトアウトする期待値に相当する。
シフト動作(X−2)では、期待値が不要なフリップフロップ数N[X−2]がM、決定されたスキャンシフト回数、M−N[X−2]がゼロ、すなわち、個数Mと個数Nとが一致する場合を一例として示す。これは、図2のステップS12でYESとなり、ステップS83に戻って処理をすることになる。従って、フリップフロップの総数と一致するM個のシフトデータが作成される。
シフト動作(X−1)では、期待値が不要なフリップフロップ数N[X−1]が10、決定されたスキャンシフト回数、M−N[X−1]が(M−10)である場合を一例として示す。従って、図2のステップS12でYESとなる。従って、(M−10)個のシフトデータと期待値とが作成される。シフト動作2と同様に、図1のステップS13でシフトインするシフトデータ及びシフトアウトする期待値に相当する。
シフト動作Xでは、シフトアウトが実施される。期待値が不要なフリップフロップ数N[X]が15、決定されたスキャンシフト回数、M−N[X]が(M−15)である場合を一例として示す。従って、(M−10)個のシフトデータと期待値とが作成される。図1のステップS14でシフトアウトする期待値に相当する。
【0055】
なお、図7では示していないが、図1のステップS13において、個数Nがゼロの場合、(M−N)は個数Mと一致する。従って、スキャンシフト回数がMとなり、M個のシフトデータと期待値とが作成されることになる。
【0056】
以上説明したように、本実施形態によれば、スキャンチェーンを構成するフリップフロップについて、入力側のSI端子に近いものから順番に、期待値の必要性を判定し、期待値の要否に応じて、スキャンシフト回数を決定する。これにより、スキャンテストにおいて、スキャンシフト動作の回数を削減することができる。従って、スキャンテストに係る時間を削減することが可能になる。その結果、LSIテストのコストを抑制することができる。
【0057】
実施形態2.
実施形態1では、一つのスキャンチェーンが形成されている回路を前提として説明したが、実施形態2は、複数のスキャンチェーンが形成されている回路に適用する場合を説明する。本実施形態では、実施形態1で説明した図3の構成でテストパタン作成方法を実現することを前提として説明する。
【0058】
図8は、複数のスキャンチェーンが形成された例を示すイメージ図である。図8では、テスト対象回路に、SC1からSCZ(Zは2以上の整数)までのZ個のスキャンチェーンが形成され、SC1は、M個のフリップフロップ、SC2は、(M−2)個のフリップフロップ、SCZは、(M−1)個のフリップフロップから構成される例を示す。
複数のスキャンチェーンが異なるフリップフロップの数によって構成されている場合においても、スキャンシフト動作は、同じクロックを用いて同時に複数のスキャンチェーンを構成するフリップフロップに対して処理する。
【0059】
このため、フリップフロップの総数(個数M)には、複数のスキャンチェーンのうち、一番多いフリップフロップの個数を設定する。また、スキャンシフト回数(M−N)には、各スキャンチェーンでシフトアウトを必要とするフリップフロップの数に対応することが必要となる。従って、各スキャンチェーンでスキャンシフト回数を取得し、取得した複数のスキャンシフト回数から最大値をスキャンシフト回数(M−N)として決定する。スキャンチェーン毎に取得したスキャンシフト回数の最大値を用いることにより、複数のスキャンチェーンすべてにおいて、スキャンシフトが必要なキャプチャデータを取り出すことが可能になる。
【0060】
例えば、SC1のスキャンチェーンでは、個数Mが10、個数Nが6、スキャンシフト回数(M−N)が4、SCZのスキャンチェーンでは、個数Mが4、個数Nが1、スキャンシフト回数(M−N)が3という値を取得した場合、より大きいスキャンシフト回数を選択して、スキャンシフト回数(M−N)4を決定する。
以降の説明では、任意のスキャンチェーンを示すため、変数J(Jは1からZの整数)を用いる。J番目のスキャンチェーンについて、フリップフロップの総数をM[J]、期待値が不要と判定されるフリップフロップの個数をN[J]、スキャンシフト回数を、(M−N)[J]とする。
【0061】
なお、図8では、異なる個数のフリップフロップから構成される複数のスキャンチェーンが形成されている場合を示したが、同じ数のフリップフロップから構成される複数のスキャンチェーンが形成されている場合であっても同様に本発明を適用することができる。
以下に、本実施形態の図1のスキャンシフト回数決定処理の詳細を、図9を参照して説明する。
【0062】
図9は、実施形態2のテストパタン作成方法(複数のスキャンチェーンが形成される場合)の動作例を示すフローチャートである。図2と同じステップ番号の処理は実施形態1と同様であるため、適宜説明を省略する。実施形態2では、図1のステップS82において、複数のスキャンチェーンの情報が抽出されることになる。具体的には、J番目のスキャンチェーンについて、M[J]、N[J]が抽出される。
まず、複数のスキャンチェーンから、未解析のスキャンチェーンを選択する(ステップS31)。ここでは、SC1から順番にSCZまでのスキャンチェーンを解析するものとする。
選択されたスキャンチェーンに対して、ステップS21からS25の処理を実施形態1と同様に実行する。その際、実施形態1のステップS23にかえて、ステップS32の処理を実行する。ステップS32では、スキャンチェーン毎に、期待値が不要なフリップフロップをカウントする。例えば、個数N[1]をスキャンチェーンSC1、個数N[2]をスキャンチェーンSC2、・・・、個数N[Z]をスキャンチェーンSCZというように、各スキャンチェーンについて期待値が不要なフリップフロップをカウントし、記録媒体603に保持する。
【0063】
解析中のスキャンチェーンについて、ステップS21からS25、及びS32の処理を繰り返して、期待値が必要なフリップフロップが検出されると、期待値が不要なフリップフロップの数のカウントが終了すると(ステップS22でNO、及びステップS25でNO)、未解析のスキャンチェーンが存在するかを判定する(ステップS33)。
未解析のスキャンチェーンが存在する場合(ステップS33でYES)、ステップS31へ戻り、次のスキャンチェーンを選択してステップS21以降の処理を繰り返す。
未解析のスキャンチェーンが存在せず、全部のスキャンチェーンの解析が終了した場合(ステップS33でNO)、スキャンチェーン毎にスキャンシフト回数(M−N)[J]を取得する。具体的には、各スキャンチェーンについて、M[J]からN[J]を差し引いて、(M−N)[J]を算出する(ステップS34)。
次に、複数のスキャンシフト回数から最大値を選択し、次のスキャンシフト動作のスキャンシフト回数として決定する(ステップS35)。ここで決定した回数が、図1に記載の、スキャンシフト回数(M−N)に対応する。
【0064】
このように、複数のスキャンチェーンが形成された回路であっても、各スキャンチェーンを解析し、期待値が不要なフリップフロップ数(個数N)として、複数のスキャンチェーンで取得されたスキャンシフト回数のうち最大値を選択することにより、スキャンシフト回数を決定することができる。これにより、実施形態1と同様の効果を奏することが可能となる。
【0065】
実施形態3.
上記各実施形態では、本発明に係るテストパタン作成方法をプログラムによって実現する場合を説明したが、これに限られるわけではない。テストパタン作成方法は、例えば、組み込みシステムのように、ハードウェアとソフトウェアとの組合せにより実現してもよく、ハードウェア、ファームウェア、ソフトウェアのいずれか、あるいは、これらの二つ以上の組合せにより実現してもよい。
【0066】
図10は、テストパタン作成方法を実現するテストパタン作成装置の構成例を示すブロック図である。テストパタン作成装置100は、抽出部(シフトアウト不要フリップフロップ抽出部)1、決定部(スキャンシフト回数決定部)2、及び、記録媒体3を備え、抽出部1は、判定部11と計数部12とを含む。
記録媒体3は、組み合わせ論理回路とスキャンチェーンとに関する情報を含む回路構成情報(ネットリスト)を格納する。図3の記録媒体603に相当する。
【0067】
抽出部1は、実施形態1で説明した、期待値が不要なフリップフロップを抽出する。具体的には、抽出部1の判定部11は、組み合わせ論理回路と少なくとも一つのスキャンチェーンに関する情報を含む回路構成情報を記録媒体3から読み出し、回路構成情報から、少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出する。抽出したフリップフロップについて、当該フリップフロップが組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定する。判定部11は、期待値が必要なフリップフロップを検出するまで、入力側から近いフリップフロップの順に、期待値の必要性を判定する。続いて、抽出部1の計数部12は、期待値が不要と判定されたフリップフロップが入力側から連続して存在するフリップフロップの数を取得する。抽出部1は、図2のステップS21からS27までの処理、図9のステップS31からS33までの処理に対応する。
【0068】
決定部2は、スキャンチェーンに含まれるフリップフロップの総数(個数M)と、取得した期待値が不要なフリップフロップの数(個数N)との差分(M−N)を、スキャンキャプチャ動作後のスキャンシフト回数として決定する。決定部2は、図2及び図9のステップS28の処理に対応する。
【0069】
上述したように、図10に示す抽出部1と決定部2とを、ハードウェア、ファームウェア、ソフトウェアのいずれか、あるいは、これらの二つ以上の組合せにより実現してもよい。また、図10には図示していないが、テストパタン作成装置は、構成形態に応じて、各構成要素あるいは装置全体に、CPUで構成される一つ以上の処理部を備え、処理部が各処理の実行を制御する。
【0070】
図10では、テストパタンのシフトデータ及び期待値パタンを生成する生成部4をテストパタン作成装置100に外部に備える構成例を示している。生成部4とは、記録媒体3を介して、スキャンシフト回数を受け取り、スキャンシフト回数に応じたテストパタンを作成する。言い換えると、本発明に係るテストパタン作成装置100は、スキャンシフト回数を生成部4へ提供する装置であるともいえる。
選択的には、テストパタン作成装置100は、自装置内に記録媒体3を備えていない場合であってもよく、例えば、生成部4を備える装置が利用する記録媒体へ、スキャンシフト回数を書き込む構成であってもよい。
さらに、テストパタン作成装置100は、テストパタンのシフトデータ及び期待値パタンを生成する生成部4を備える構成(パタン生成装置101)であってもよい。例えば、テストパタン作成装置100あるいはパタン生成装置101が、図3のサーバ602に組み込まれている形態であってもよい。
【0071】
実施形態4.
実施形態1では、期待値が不要なフリップフロップの数をカウントして個数Nを取得する場合を説明したが、実施形態4では、フリップフロップのインスタンス名を図3の記録媒体603(図10の場合、記録媒体3)に格納する場合を説明する。
図11は、本発明の実施形態4のテストパタン作成方法(フリップフロップのインスタンス名を保存する場合)の動作例を示すフローチャートである。図2と同じステップ番号の処理は、実施形態1と同様であるため、適宜説明を省略する。ここでは、主に、ステップS41、S42、及び、関連する処理について説明する。
【0072】
ステップS22において、キャプチャデータが不定値となる場合(ステップS22でYES)、ステップS41へと進み、不定値となるフリップフロップであり、期待値を持たないフリップフロップとして記録媒体603に当該フリップフロップのインスタンス名を格納し、ステップS21へ戻る(ステップ41)。
不定値でない場合(ステップS22でNO)、ステップS24へ進み、フリップフロップに接続されている組み合わせ論理回路の抽出を行いステップS25に進む(ステップS24)。
ステップS25において、新規故障検出箇所を抽出していない場合(ステップS25でYES)、ステップS42へ進み、新規故障を検出しないフリップフロップとして記録媒体603にインスタンス名を格納し、ステップS21へ戻る(ステップS42)。
新規故障検出箇所を抽出している場合(ステップS25でNO)、ステップS43へと進む。
ステップS43において、ステップS41及びステップS42において記録媒体603へ格納した、期待値を持たないフリップフロップのインスタンス名の数と、新規故障を検出しないフリップフロップのインスタンス名の数とをカウントし、両方のインスタンス名の数を加算して、期待値が不要なフリップフロップ数(個数N)を取得する(ステップS43)。
【0073】
図11では、実施形態1の動作例を変更した場合を説明したが、実施形態2の動作例にも同様に適用することが可能になる。
ステップS41、S42において期待値が不要なフリップフロップのインスタンス名を格納することにより、例えば、テストパタンの生成するツール(図10の生成部4など)がインスタンス名に応じてテストパタンを作成することが可能になる。例えば、インスタンス名を用いることにより、スキャンテストの効率を向上させるテストパタンの作成に用いることが期待できる。
【0074】
実施形態5.
上記各実施形態では、期待値が不要なフリップフロップを、(1)キャプチャデータ(期待値)が不定値となるため、期待値を必要としないフリップフロップ、及び、(2)新規故障検出箇所がないため、期待値を必要としないフリップフロップのいずれかに合致するフリップフロップを抽出する場合を説明した。しかし、期待値が不要なフリップフロップの個数Nを、上述した(1)、または(2)のいずれが一方のみを用いて抽出する場合であってもよい。
【0075】
期待値が不要なフリップフロップとして、(1)キャプチャデータ(期待値)が不定値となるフリップフロップのみを抽出する場合、図2及び図9では、ステップS24、S25の処理を実施しない動作例となる。図11では、ステップS25、S42の処理を実施しない動作例となる。
期待値が不要なフリップフロップとして、(2)新規故障検出箇所がないフリップフロップのみ抽出する場合、図2及び図9では、ステップS22の処理を実施しない動作例となる。図11では、ステップS22、S41の処理を実施しない動作例となる。
【0076】
加えて、期待値が不要なフリップフロップを、(1)キャプチャデータ(期待値)が不定値となるフリップフロップ、及び、(2)新規故障検出箇所がないフリップフロップのうち、(1)、(2)の両方、(1)のみ、(2)のみ、のいずれの手法を用いるかについて、テストパタン作成時に選択可能とすることもできる。例えば、ユーザが、コンピュータ装置601の入出力部を介してコマンドを入力する際に、オプションとして、期待値パタンを出力する必要のないフリップフロップを抽出する要件を選択できるようにしてもよい。この場合、プログラムでは、オプションに対応する実行プログラム(サブルーチン)を用意しておき、入力されたオプションに応じて、読み出すサブルーチンを変更することによって動作するようにできる。
【0077】
上記各実施形態では、期待値が不要なフリップフロップを判定する二つの要件を用いる場合を説明したが、本実施形態によれば、テストパタンを作成する要件をユーザの要望に対応させるテストパタン作成方法を提供することができる。さらに、ユーザがテストパタン作成時にオプションとして要件を選択可能とすることにより、ユーザがテストパタン作成方法を利用する際に、ユーザの要望に柔軟に対応させることが可能となる。
【0078】
その他の実施形態
上述の各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0079】
加えて、本発明のテストパタン作成方法を実現するプログラムは、テストパタンを生成するツールの一部分として組み込まれている場合であってもよい。あるいは、独立したプログラムとして存在可能であり、テストパタンを生成するツールと組み合わせて用いられる場合、例えば、ツールから呼び出される(起動される)ことによってプログラムが実行される場合であってもよい。
【0080】
尚、スキャンテスト時間を短縮する従来技術である特許文献1、特許文献2についても不必要なシフトが発生する可能性がある為、上記各実施形態のテストパタン作成方法を適用する事で、更なるスキャンテスト時間削減が可能となる。
【0081】
上記各実施形態で説明した通り、本発明に係るテストパタン作成方法によれば、スキャンテストを実施するテスト方法において、スキャンシフト回数を削減することが可能になる。従って、スキャンテストに要するテスト時間(コスト)を削減することが可能になる。加えて、スキャンシフト動作によってシフトインするシフトデータ及びシフトアウトする期待値パタンを削減することになるため、テストパタンとして記録媒体に保持するデータ量を削減することができる。例えば、テスタにテストパタンを書き込む場合にも、テストパタンに含まれるデータ数を削減することが可能になることから、テストに係る時間を削減することができる。
【0082】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【0083】
1 抽出部
2 決定部
3 記録媒体
4 生成部
11 判定部
12 計数部
100 テストパタン作成装置
101 パタン生成装置
301 期待値が不要であり、シフトアウトが不要なフリップフロップ群
302 期待値が必要であり、シフトアウトが必要なフリップフロップ群
303 N番目のフリップフロップ(期待値が不要なフリップフロップ)
304 (N+1)番目のフリップフロップ(期待値が必要なフリップフロップ)
401 (M−N)番目のフリップフロップ(FF(M−N))
402 (M−N+1)番目のフリップフロップ(FF(M−N+1))
403 シフトデータがシフトインされるフリップフロップ群
404 キャプチャデータをシフトデータとして使用するフリップフロップ群
601 コンピュータ装置
602 サーバ
603 記録媒体
604 ネットワーク
611 処理部
612 通信部
701 フリップフロップ群
702 組み合わせ論理回路
703 1番目のフリップフロップ(FF1)
704、706、708、713 MUX
705 2番目のフリップフロップ(FF2)
707 M番目のフリップフロップ(FFM)
709、711 組み合わせ論理回路の出力端子
710 SI端子
712 FF1の出力端子(Q端子)
714 組み合わせ論理回路の出力端子(Zn端子)
715 FFMの出力端子
716 SO端子
717 SE信号

【特許請求の範囲】
【請求項1】
スキャンテストのテストパタン作成方法であって、
組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出し、
前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、前記抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、
前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得し、
前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定するテストパタン作成方法。
【請求項2】
前記期待値の必要性の判定は、前記抽出したフリップフロップについて、前記期待値が不定値である場合、前記期待値が不要と判定することを特徴とする請求項1記載のテストパタン作成方法。
【請求項3】
前記期待値の必要性の判定は、前記抽出したフリップフロップが接続される組み合わせ論理回路において新規故障箇所が検出されない場合、前記期待値が不要と判定することを特徴とする請求項1または2記載のテストパタン作成方法。
【請求項4】
前記テストパタンは、前記スキャンシフト回数に応じて生成され、
生成されたテストパタンが記録媒体に格納されることを特徴とする請求項1乃至3のいずれか一項に記載のテストパタン作成方法。
【請求項5】
前記テストパタンは、前記スキャンシフト回数のスキャンシフト動作が実施されると、前記スキャンシフト動作によって入力端子から入力されるシフトデータと、前記スキャンキャプチャ動作によってフリップフロップが取り込んだキャプチャデータとのいずれかを、前記スキャンチェーンを構成するフリップフロップが保持するように生成されることを特徴とする請求項1乃至4のいずれか一項に記載のテストパタン作成方法。
【請求項6】
前記テストパタンは、次のスキャンシフト動作で入力するシフトデータとして、前記スキャンシフト回数と同じ数のシフトデータを含むことを特徴とする請求項1乃至5のいずれか一項に記載のテストパタン作成方法。
【請求項7】
前記テストパタンは、前記期待値として、前記スキャンシフト回数と同じ数の期待値を含むことを特徴とする請求項1乃至6のいずれか一項に記載のテストパタン作成方法。
【請求項8】
前記スキャンチェーン内に、前記期待値が必要と判定されるフリップフロップが存在せず、かつ、すべての故障検出が完了していないと判定される場合、前記スキャンシフト回数を、前記スキャンチェーンに含まれるフリップフロップの総数に一致させることを特徴とする請求項1乃至7のいずれか一項に記載のテストパタン作成方法。
【請求項9】
前記少なくとも一つのスキャンチェーンが、複数のスキャンチェーンから構成され、
前記複数のスキャンチェーンそれぞれに含まれるフリップフロップについて、前記期待値が不要と判定されたフリップフロップが連続して存在するフリップフロップの数を取得し、
スキャンチェーン毎に、一つのスキャンチェーンに含まれるフリップフロップの総数から、前記取得したフリップフロップの数との差分を、前記一つのスキャンチェーンのスキャンシフト回数として取得し、
スキャンチェーン毎に取得したスキャンシフト回数のうち、最大値をスキャンキャプチャ動作後のスキャンシフト回数として決定することを特徴とする請求項1乃至8のいずれか一項に記載のテストパタン作成方法。
【請求項10】
前記テストパタンは、複数種類の前記スキャンシフト回数に応じて生成され、
スキャンシフト動作を3回以上のX回(Xは、3以上の整数)行う場合、フリップフロップの総数をM(Mは1以上の整数)、K回目のスキャンシフト動作のスキャンシフト回数をN[K](Kは1以上X以下の整数、Nは0以上M以下の整数)とすると、各スキャンシフト動作で用いるテスト用のデータとして、
1回目のスキャンシフト動作に対して、個数Mのシフトデータ、
X−1回目のスキャンシフト動作に対して、個数(M−N[X−1])のシフトデータ及び期待値、または、個数Mのシフトデータ、及び
X回目のスキャンシフト動作に対して、個数(M−N[X])の期待値、
を含むテストパタンが作成されることを特徴とする請求項1乃至9のいずれか一項に記載のテストパタン作成方法。
【請求項11】
前記期待値は、前記シフトデータと、前記スキャンキャプチャ動作によっていずれかのフリップフロップが取り込んだキャプチャデータとの、少なくとも一方を用いて前記組み合わせ回路が演算する演算結果であることを特徴とする請求項5記載のテストパタン作成方法。
【請求項12】
前記テストパタンは、スキャンシフト動作を実施すると、前記入力側に最も近いフリップフロップから前記スキャンシフト回数に一致するフリップフロップまでに、前記シフトデータが保持され、他のフリップフロップには、一つ前のスキャンキャプチャ動作によって前記組み合わせ回路から各フリップフロップへ取り込まれ、前記スキャンシフト動作によってシフトされるキャプチャデータが保持されるように生成されることを特徴とする請求項5または11記載のテストパタン作成方法。
【請求項13】
スキャンテストのテストパタン作成方法を実現するプログラムであって、
コンピュータに、
組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出す処理と、
前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定する処理と、
前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する処理と、
前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する処理とを実行させるプログラム。
【請求項14】
スキャンテストのテストパタン作成装置であって、
組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を格納する記録媒体と、
前記少なくとも一つのスキャンチェーンの情報を前記記録媒体から読み出し、スキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する抽出部と、
前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する決定部と、を備えるテストパタン作成装置。
【請求項15】
前記請求項1乃至11に記載のテストパタン作成方法によって生成されたテストパタンを用いて、スキャンテストを実施するテスタ。
【請求項16】
前記請求項1乃至11に記載のテストパタン作成方法によって生成されたテストパタンを用いて、スキャンテストを実施する半導体集積回路のテスト方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2013−36874(P2013−36874A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−173708(P2011−173708)
【出願日】平成23年8月9日(2011.8.9)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】