(57)【要約】内部信号線に着眼しつつ、実速度スキャンテストであっても、テストデータ量、故障検出率、パフォーマンス、回路設計には影響を及ぼさず、テストコンプレッションの場合のように入力ビット中の未定値（ドントケア）ビットが少ない場合であっても、ラウンチ遷移ひいては歩留り損失リスクを減らすことが可能で、さらにテストにおける消費電力の削減も可能とすることを目的とする。変換装置１は、特定内部信号線抽出部３と、特定内部信号線区別部５と、入力ビットにおける入力未定値ビット及び入力論理ビットを特定する特定部７と、特定された入力未定値ビットを含む入力ビットにおける未定値ビットに論理値１又は論理値０を割り当てる割当部９とを備える。特定部７は、入力未定値ビット特定部１１と、入力論理ビット特定部１３とを備える。
2010021233.tif 000002
【特許請求の範囲】
【請求項１】
与えられる集合であって、故障検出対象の論理回路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合が持つ少なくとも１つの特性を維持しつつ若しくは向上させつつ新たな集合を生成する生成装置であって、
入力ビットにおける論理ビット及び未定値ビットとすべきビットを特定する特定手段を備え、
前記特定手段が、
前記論理回路内の特定の内部信号線であって、それぞれに指定される論理値を有している第一の特定内部信号線、それぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に関し、
前記与えられた集合に基づき、前記特性を維持しながら若しくは向上させながら、
前記第一の特定内部信号線が有する前記各指定される論理値の少なくとも一つを未定値の状態に変更させること、
前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、
前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、
少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、
特定する、生成装置。
【請求項２】
前記特定の内部信号線には後段回路が接続されており、
前記各指定される論理値及び前記各指定される論理値とは異なる論理値は、前記後段回路をコントロールする値である、請求項１記載の生成装置。
【請求項３】
前記後段回路はフリップフロップ回路群であり、前記特定の内部信号線は前記フリップフロップ回路群を制御するための信号線であり、
前記特定の内部信号線に論理値１又は論理値０を割り当てる割当手段をさらに備え、
前記割当手段が、前記特定処理により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、
前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、
前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、請求項２記載の生成装置。
【請求項４】
与えられる集合であって、故障検出対象の論理回路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合が持つ少なくとも１つの特性を維持しつつ若しくは向上させつつ新たな集合を生成する生成方法であって、
特定手段が、前記論理回路内の特定の内部信号線であって、それぞれに指定される論理値を有している第一の特定内部信号線、それぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に関し、
前記与えられた集合に基づき、前記特性を維持しながら若しくは向上させながら、
前記第一の特定内部信号線が有する前記各指定される論理値の少なくとも一つを未定値の状態に変更させること、
前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、
前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、
少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、
特定する特定処理を含む、生成方法。
【請求項５】
前記特定の内部信号線には後段回路が接続されており、
前記各指定される論理値及び前記各指定される論理値とは異なる論理値は、前記後段回路をコントロールする値である、請求項４記載の生成方法。
【請求項６】
前記後段回路はフリップフロップ回路群であり、前記特定の内部信号線は前記フリップフロップ回路群を制御するための信号線であり、
割当手段が、前記特定処理により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、
前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、
前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、
割当処理を含む、請求項５記載の生成方法。
【請求項７】
請求項４から６のいずれかに記載の生成方法をコンピュータに実行させることが可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、生成方法及びプログラムに関し、特に組み合わせ回路又はフルスキャン順序回路の組み合わせ回路部分等の故障検出の対象回路に対するテストについての生成装置、生成方法及びプログラムに関する。
【背景技術】
【０００２】
図９に示すように、半導体論理回路は、設計、製造、テストの三段階を経て出荷される。ここで、テストとは、製造された半導体論理回路に対して０又は１の論理値が各論理ビットに定められたテストベクトルを印加し、半導体論理回路からテスト応答を観測し、それを期待テスト応答と比較して良品、不良品の判別を行う。その良品率を歩留りと呼び、歩留りは半導体論理回路の品質、信頼性及び製造コストを大きく左右する。【０００３】
図１０は、一般的な論理回路におけるフルスキャン順序回路の模式図である。【０００４】
一般に、半導体論理回路は主に順序回路である。順序回路は、アンド（ＡＮＤ）ゲート、ナンド（ＮＡＮＤ）ゲート、オア（ＯＲ）ゲート、ノア（ＮＯＲ）ゲート等の論理素子からなる組合せ回路部１２０１と、回路の内部状態を記憶するフリップフロップ１２０３とよりなる。この場合、組合せ回路部１２０１は、外部入力線（ＰＩ）、フリップフロップの出力線である擬似外部入力線（ＰＰＩ）、外部出力線（ＰＯ）、フリップフロップの入力線である擬似外部出力線（ＰＰＯ）を有する。組合せ回路部１２０１への入力は、外部入力線より直接与えられるものと、擬似外部入力線を介して与えられるものからなる。また、組合せ回路部１２０１からの出力は、外部出力線に直接現れるものと、擬似外部出力線に現れるものからなる。【０００５】
順序回路の組合せ回路部１２０１をテストするために、組合せ回路部１２０１の外部入力線（ＰＩ）と擬似外部入力線（ＰＰＩ）から所要のテストベクトルｖを印加し、組合せ回路部１２０１の外部出力線ＰＯと擬似外部出力線ＰＰＯからテスト応答ｆ（ｖ）を観測する必要がある。１つのテストベクトルは、外部入力線と擬似外部入力線に対応する入力ビットからなる。また、１つのテスト応答は、外部出力線と擬似外部出力線に対応する出力ビットからなる。【０００６】
しかし、順序回路のフリップフロップ１２０３の出力線（擬似外部入力線）と入力線（擬似外部出力線）は一般に外部より直接アクセスできない。従って、組合せ回路部１２０３をテストするためには、擬似外部入力線の可制御性及び擬似外部出力線の可観測性に問題がある。【０００７】
上述の組合せ回路部１２０１のテストにおける可制御性及び可観測性の問題を解決する主な手法として、フルスキャン設計がある。フルスキャン設計とは、フリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本または複数本のスキャンチェーンを形成することである。スキャンフリップフロップの動作はスキャンインネーブル（ＳＥ）信号線で制御される。例えば、ＳＥ＝０のとき、従来のフリップフロップと同じ動作をし、クロックパルスが与えられると、組合せ回路部からの値でスキャンフリップフロップの出力値が更新され、また、ＳＥ＝１のとき、同じスキャンチェーンにある他のスキャンフリップフロップと１つのシフトレジスタを形成し、クロックパルスが与えられると、外部から新しい値がスキャンフリップフロップにシフトインされると同時に、スキャンフリップフロップに現存の値が外部へシフトアウトされる。一般に、同じスキャンチェーンにあるスキャンフリップフロップは同じスキャンインネーブル（ＳＥ）信号線を共有するが、異なるスキャンチェーンのスキャンインネーブル（ＳＥ）信号線は同一の場合もあれば異なる場合もある。【０００８】
フルスキャン順序回路の組合せ回路部のテストはスキャンシフトとスキャンキャプチャを繰り返すことによって行われる。スキャンシフトは、スキャンインネーブル（ＳＥ）信号が論理値１にされているシフトモードで行われる。シフトモードにおいては、１つまたは複数のクロックパルスが与えられ、外部から１つまたは複数の新しい値がスキャンチェーン内のスキャンフリップフロップにシフトインされる。また、それと同時に、そのスキャンチェーン内のスキャンフリップフロップに現存の１つまたは複数の値が外部へシフトアウトされる。スキャンキャプチャは、スキャンインネーブル（ＳＥ）信号が論理値０にされているキャプチャモードで行われる。キャプチャモードにおいては、１つのスキャンチェーンにあるすべてのスキャンフリップフロップに同時に１つのクロックパルスが与えられ、組合せ回路部の擬似外部出力線の値がすべてのスキャンフリップフロップに取り込まれる。【０００９】
スキャンシフトは、擬似外部入力線を介して組合せ回路部１２０１へテストベクトルを印加するためと、擬似外部出力線を介して組合せ回路部１２０１からテスト応答を観測するために用いられる。また、スキャンキャプチャは、組合せ回路部１２０１のテスト応答をスキャンフリップフロップ１２０３に取り込むために用いられる。すべてのテストベクトルに対して、スキャンシフトとスキャンキャプチャを繰り返すことによって、組合せ回路部１２０１をテストすることができる。このようなテスト方式はスキャンテスト方式という。【００１０】
スキャンテスト方式では、組合せ回路部１２０１へのテストベクトルの印加は、外部入力から直接行われる部分と、スキャンシフトによって行われる部分とがある。スキャンシフトによって、任意の論理値を任意のスキャンフリップフロップに設定することができるので、擬似外部入力線の可制御性の問題が解決される。組合せ回路部１２０１からのテスト応答の観測は、外部出力から直接行われる部分と、スキャンシフトによって行われる部分とがある。スキャンシフトによって、任意のスキャンフリップフロップの出力値を観測することができるため、擬似外部出力線の可観測性の問題が解決される。このように、スキャンテスト方式においては、自動テストパターン生成（ＡＴＰＧ）プログラムを用いてテストベクトル及び期待テスト応答を求めるだけで十分である。【００１１】
図１１は、テスト入力とテスト応答との関係を示した模式図である。【００１２】
図１１において、テストベクトルに未定値Ｘ（論理値１と論理値０のいずれでもよいドントケア（Ｘ））が存在する場合、それによってテスト応答にも未定値Ｘ（ドントケア（Ｘ））が現れる。未定値としてのドントケアが存在する原因は、１つ又は複数の故障を検出するために、テスト入力の一部のビットのみに論理値が決まれば十分であることによる。このように故障検出などの所定の目的を達成する上で論理値１と論理値０のいずれでもよいドントケアとできるものはテストキューブと呼ばれ、ＡＴＰＧ又はドントケア発見手法によって求められる。ドントケアには、自由に論理値１又は０を割り当てることができる。テスト入力のビットを論理ビットとすべきか或いはドントケアビットとすべきかについては、例えば特許文献１に記載のように本願発明者等によって提案されたものがある。【００１３】
特許文献１に記載の技術は、論理回路の入出力関係に基づく条件によりドントケアビットにしてもよい候補ビット及びドントケアビットにしてはならない固定ビットを設定し、設定された候補ビットのみから特定されたドントケアビットを含むテストキューブに対して入力ビットと出力ビットからなる複数のビットペア間の関係を考慮してドントケアビットに論理値を割り当てる技術である。【００１４】
なお、ドントケア抽出を可能としている技術としては他にも本願発明者等によって特許文献２に記載の技術もある。【００１５】
特許文献２に記載の技術は、それまでの縮退故障検出を対象とするものとは異なって遷移遅延故障検出を対象にでき、テストパターンの圧縮によるサイズの削減を図り、テスト印加時間を短縮できる技術である。【００１６】
ここで、テストキューブとテストベクトルについて説明しておく。図１２を参照して、Ｘで表されているドントケアビットを含むc１，c２，c３からなるものがテストキューブである。論理値０と論理値１のいずれかの論理ビットのテストベクトルからなる集合がテストベクトル集合である。【００１７】
次に、テストキューブの求め方も説明しておく。図１３は、テストキューブの求め方の概念を説明する図であってテストデータ操作の例を説明するための図である。図１４は、テストリラクゼーション（ドントケア判定）の例を簡単に説明するための図である。【００１８】
図１３を参照して、故障検出などの所定の目的を達成する上で論理値０と論理値１のいずれでもよいドントケアがＸで表されている。テストキューブは、ＡＴＰＧによるテスト生成中にドントケアビットを生じさせる動的技法と、ＡＴＰＧ後にテストリラクゼーションと言ってドントケアとできるドントケアビットを見つける静的技法とによって求められる。このようなテストキューブは論理値が定められ（X−Filling)、最終的には論理値０と論理値１のいずれかによって値が満たされた論理ビットのテストベクトルからなるテストベクトル集合として得られる。以下では、ドントケアビットへの論理値の割当に関して、キャプチャ時の信号値変化が少なくなるように決められる。なお、上記静的技法は圧縮したテストベクトル集合にも適用でき、テストデータ量は少なくなる。【００１９】
図１４を参照して、テストキューブ内に含まれるドントケアにできるビットを見つけるテストリラクゼーションには、故障シミュレーション、含意操作、正当化操作が用いられ、ドントケアは制約のもとで見つけられるが、一般的にいう制約は特定の故障モデルについて故障検出率を調整することをいう。ここで、通常、６０％〜９０％のビットがドントケアとできる。それに対して以下では故障検出率は変化させない制約を可能としている。なお、当初のテストベクトル集合は動的圧縮或いはランダム割り当てによってコンパクトなテストベクトル集合として与えられることも可能である。【００２０】
さらに、実速度スキャンテストという考えがあり、これはタイミング関連のテスト品質を向上させるために必須とされる。これを実現するために、パスの出発点で遷移がラウンチされ、その応答がシステムの速度でパスの終点でキャプチャされる。実際には、ラウンチオンキャプチャ（ＬＯＣ）クロッキング方式は実速度スキャンテストに広く用いられている。【００２１】
図１５はＬＯＣクロッキング方式を説明するための図である。【００２２】
図１５を参照して、テストベクトルがＳLを最後とする一連のシフトクロックパルス（Ｌ：最長スキャンチェーンの長さ）によってロードされた後で、遷移が最初のキャプチャクロックパルスＣ1によって対応するスキャンＦＦのところでラウンチされる。遷移はＳLによって導入された値とＣ1によって取り込まれた値との差によって生じる。なお、遷移ラウンチ（Ｃ1）と応答キャプチャ（Ｃ2）の間のテストサイクルは定格のシステムクロック周期である。【００２３】
スキャンテストはタイミング関連のテスト品質を向上させるために不可欠とされるが、その適用可能性はテスト誘発性歩留り損失が大きな課題となっている。このテスト誘発性歩留り損失とは機能的に問題ない集積回路が実速度スキャンテストの間のみに機能しない場合に生じるものと言われる。この問題の主な原因は電源ノイズ、すなわち、ＩＲドロップおよびグラウンドバウンスであり、これらはＣ1における過度のラウンチ遷移から生じ、遅延増加を引き起こしてしまう。これまでに電源電圧が10％低下するとパス遅延が30％増大することが示されている文献もある。このことはＣ2におけるキャプチャ故障を招き、ひいてはテスト誘発性歩留り損失につながってしまう。ディープサブミクロンで低電力のチップではこの問題は急速に悪化している状況にある。したがって過度の電源ノイズによって誘発される歩留り損失リスクを低減させることが強く望まれる。【００２４】
ラウンチ遷移を減らすための従来の技術は以下の３つの技術に基づいている。【００２５】
（１）部分的キャプチャ：Ｃ1（図１５）においてキャプチャするＦＦの数は回路の変更、ワンホットクロッキング、キャプチャクロックスタガリングによって減らすことが可能である。しかし、このアプローチは著しいＡＴＰＧの変化、テストデータの増加、さらには故障検出率の低下まで引き起こしかねない。【００２６】
（２）低キャプチャ電力ＡＴＰＧ：テストベクトル内の１および０を注意深く生成して、ラウンチ遷移をＦＦにおける入出力等値化、クロックゲーティング等の技術によって減らすことができる。しかし、このアプローチはテストデータの著しい増加とＣＰＵ時間の増大に悩まされうる。【００２７】
（３）テストリラクゼーション＆X‐filling：テストリラクゼーションとは論理値が全て特定されたテストベクトル集合から、故障検出率を低下させることなく、ドントケアビット（Ｘビット）を特定することである。それから、テストリラクゼーションによって得られた部分的に特定されたテストキューブに対して、できるだけ多くのＦＦの入力値と出力値を等しくするためにX‐fillingが実行される。このようにして、ラウンチ遷移が削減される。【００２８】
図１６は、テストリラクゼーション＆X‐filling手法の概念を示した図である。【００２９】
テストリラクゼーションについて説明する。図１６に示すように、テストリラクゼーションは全て特定されたテストベクトル集合Ｖからドントケアビット（Ｘビット）を特定して、部分的に特定されたテストキューブ集合Ｃを、Ｖの特性のいくつかはＣによって保持されていることを保証しながら、生成するプロセスである。保持される特性の中には縮退故障検出率、遷移遅延故障検出率、さらに遷移遅延故障検出のための全ての活性化パスまでもが含まれる。【００３０】
Ｘビットはランダム-fillを無効化することによるテスト生成からも直接に得られるが、ATPG時間およびテストデータ量が増大する。例えば、ランダム-fillを無効化して低電力X‐fillingのためのＸビットを放置するとテストベクトル数は144.8％に増加することが示されている。したがって、ランダム-fillを用いて最大限テストコンパクションを適用して、まずはコンパクトな初期（全て特定された）テストベクトル集合を生成し、続いてテストリラクゼーションを用いて（部分的に特定された）テストキューブを生成するのが望ましい。こうして得られるコンパクトな最終テストベクトル集合にはX‐fillingを実行した後の付随的な利益もある。【００３１】
次に、X‐fillingについて説明する。図１６に示すように、X‐fillingはあるテストキューブ内のＸビットにある目的のために論理値を割り当てるプロセスである。例えば、X‐fillingはラウンチ遷移（ＬＳＡ）を削減するために用いられる。ここで、ＬＳＡはＣ1のところで起こる（図１５参照）。多数の低ＬＳＡのX‐filling手法が提案されている。【００３２】
図１７はそれらの1つであるJP-fillと呼ばれるものを示す図である。【００３３】
図１７では、テストキューブはc＝＜10XX＞であり、組み合わせ部分の論理関数はFである。したがって、＜c：PPI＞＝＜0XX＞であり、＜F（c）：PPO＞＝＜XXX＞である。まず、正当化（図１７の丸１）を実行してｐ1が0なのでｐ2に0を設定するよう試みる。続いて、形式X‐X、のq1‐q2およびr1‐r2のビットペアについては、各PPOのＸビットの０になる確率および１になる確率を算出するには、各入力Ｘビットの０になる確率および１になる確率に0.50を設定して確率伝搬を実行する。ｑ2が0である確率（0.93）はｑ2が1である確率（0.07）よりも非常に大きいので、ｑ1に0を割り当てるのは理にかなっている（図１７の丸２）。しかし、ｒ2が0である確率（0.48）はｒ2が1である確率（0.51）に近いので、ｒ1については何も決定されない（図１７の丸３）。この場合、３値論理シミュレーションが実行され、JP‐fillのもう一つのパス（図１７の丸４）が正当化および／あるいは確率伝搬を用いて実行される。要するに、JP‐fillはスケーラビリティを確率伝搬によって向上させると共に、正当化および複数のパスを用いてX‐fillingの効率を向上させる。このようにしてJP‐fillは効率とスケーラビリティをバランスよく実現する。【００３４】
ところで、クロックゲーティング方式の一例を図１８に示すが、クロックゲーティング方式は最も広く実際に用いられている消費電力管理メカニズムである。なお、回路にはクロックゲーティングブロックが複数含まれていてもよい。図１８にはｉ番目のクロックゲーティングブロックであってスキャンテスティング用に強化されているものを示している。シフトモード（ＳＥ＝１）では、シフト操作が適切に実行されるように全てのFFが常にクロックＣＫによって駆動されている。クロック制御信号（ＥＮi）はＣＫの立ち上がりエッジのところで生成され、キャプチャモード（ＳＥ＝０）の制御を引き継ぐ。ＧＥＮiはＣＫとＡＮＤ素子につながれて直接ＦＦに接続されるゲートクロックＧＣＫiを生成する。クロックゲーティングはキャプチャモードにおいてラウンチ遷移を削減するのに用いられる。このためには最終シフトパルスＳLにおいてＥＮiを０に設定すればよい。こうして図１９に示すように、ラウンチキャプチャクロックパルス（図１５のC1）は抑えられ、ＧＣＫiに制御されている全てのＦＦ、すなわち図１８に示したＦＦ1i〜ＦＦpiはキャプチャしない。すなわち、ＦＦにおけるラウンチ遷移がまとめて削減されたことになる。【００３５】
ここで、以下の定義を行う。あるＦＦのクロックがゲートクロックである場合、そのＦＦはクロックゲートＦＦという。そうでない場合、そのＦＦは非クロックゲートＦＦという。同じゲートクロックで制御されているＦＦ群はクロックゲートＦＦ群という。あるクロックツリーを通して接続されている全てのＦＦは1つのクロックゲートＦＦ群と考えられる。【００３６】
ＡＴＰＧの観点から、クロックゲーティングは次の２つの基本的なアプローチによって用いられる。【００３７】
アプローチ１（検出指向）：テスト生成を実行する際には、より多くのFFを遷移故障検出におけるラウンチおよびキャプチャに使用可能にするために、ＦＦへの信号をできるだけアクティブ化する（すなわちクロックゲーティングを無効化する）ように実行する。多くの商業的ＡＴＰＧシステムはこのアプローチを陰に陽に用いている。こうすることでラウンチ遷移がより活発になる代わりに、テストベクトル集合が小さくなり、故障検出率が向上し、テスト印加時間が小さくなる。【００３８】
アプローチ２（削減指向）：テスト生成においてクロックゲーティングはラウンチ遷移を削減するために積極的に用いられる。しかし、こうすることで遷移故障検出におけるラウンチおよびキャプチャに使用可能なＦＦの数は減少し、テストベクトル数が増加し、テスト印加時間が増大し、さらにはある条件下では故障検出率の損失まで起こる。【００３９】
このようにＦＦ群が活性化されるか或いは活性化されないかを決定できる信号ＧＣＫがあるが、この信号ＧＣＫはクロックゲーティング回路を制御する制御信号ＥＮｉによってその値が決定される。この制御信号ＥＮｉ（或いは信号ＧＣＫ）の値をコントロールすることができれば、ＦＦ群の非活性化による大幅な消費電力削減も可能となる。【００４０】
クロックゲーティング回路の活性化と非活性化をコントロールして消費電力削減を図ろうとしたものには非特許文献１がある。
【先行技術文献】
【特許文献】
【００４１】
【特許文献１】特開２００７−１５５３３９号公報
【特許文献２】国際公開ＷＯ２００８／００１８１８
【非特許文献】
【００４２】
【非特許文献１】R．Illman、外２名著,「ATPG  power  reduction  using  clock  gate  “default”constraints.」First  International  Workshop  on  the  Impact  of  Low-Power  Design  on  Test  and  Reliability（fringe  to  ETS  2008），Proceedings  LPonTR  2008，29  May  2008，Hotel  Majestic  Pallanza，Lago  Maggiore，Italy
【発明の概要】
【発明が解決しようとする課題】
【００４３】
しかしながら、特許文献１に記載のような従来のいずれの技術においても、上記したように擬似外部入力線の可制御性及び擬似外部出力線の可観測性の問題解決の流れもあって、入力ビットと出力ビットとの関係を考慮しているに留まっていた。また、特許文献２に記載のような従来のいずれの技術においても、ドントケア抽出を可能としているが、入力ビットと出力ビットを超える着眼、すなわち外部入力線（擬似外部入力線）及び外部出力線（擬似外部出力線）を越える着眼はなされていなかった。【００４４】
さらに、テストリラクゼーション＆X‐filling手法というアプローチは重大な制限に悩まされる。すなわち、テストベクトル集合から特定されたＸビットの数が少なかった場合、ラウンチ遷移を減らす効率が不十分になりうる。そのようなＸビット不足はテストコンパクションあるいはテストコンプレッションによって引き起こされうる。具体的に説明すると、図２０に実用的な回路の一例（ゲート数60万および遷移遅延テストベクトル数600）についてのグラフを示すが、この回路においてテスト生成の初期段階に得られたテストベクトルはＸビットが少ない（60％にも満たない）。【００４５】
また、非特許文献１の技術は故障検出率と消費電力削減を両立するものではなく、故障検出率を維持して消費電力削減を行うとすれば追加データが必要となり、テストデータ量に関するサイズは大きくなってしまうという問題がある。つまり、ＦＦ群を単純に非活性化するとすれば消費電力削減は可能となるが、テストでは故障検出という大前提があり、故障検出率といった最終的に得られるテストベクトルの特性は極めて重要であるため、上記アプローチ１の検出指向により故障検出率をあげようとすればＦＦ群を活性化させる傾向に陥ってしまう。その結果、故障検出率のような特性を考慮しながらも、上記アプローチ２の削減指向によってテストデータ量に関するサイズの増加を起こさず、さらに消費電力削減も可能とするような提案が望まれていた。【００４６】
特に、上記したように、実速度スキャンテストでは、過度のラウンチ遷移による電源ノイズに起因する歩留り損失リスクを受けやすく、テストデータ量、故障検出率、パフォーマンス、回路設計には影響を及ぼさずに、テストコンプレッションの場合のように入力ビット中のドントケアビットが少ない場合であっても、ラウンチ遷移ひいては歩留り損失リスクを減らすことが期待されている。【００４７】
ゆえに、本願に係る発明は、内部信号線に着眼しつつ、実速度スキャンテストであっても、テストデータ量、故障検出率、パフォーマンス、回路設計には影響を及ぼさず、テストコンプレッションの場合のように入力ビット中の未定値（ドントケア）ビットが少ない場合であっても、ラウンチ遷移ひいては歩留り損失リスクを減らすことが可能で、さらにテストにおける消費電力の削減も可能とすることを目的とする。
【課題を解決するための手段】
【００４８】
請求項１に係る発明は、与えられる集合であって、故障検出対象の論理回路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合が持つ少なくとも１つの特性を維持しつつ若しくは向上させつつ新たな集合を生成する生成装置であって、入力ビットにおける論理ビット及び未定値ビットとすべきビットを特定する特定手段を備え、前記特定手段が、前記論理回路内の特定の内部信号線であって、それぞれに指定される論理値を有している第一の特定内部信号線、それぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に関し、前記与えられた集合に基づき、前記特性を維持しながら若しくは向上させながら、前記第一の特定内部信号線が有する前記各指定される論理値の少なくとも一つを未定値の状態に変更させること、前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、特定する、ものである。【００４９】
請求項２に係る発明は、請求項１において、前記特定の内部信号線には後段回路が接続されており、前記各指定される論理値及び前記各指定される論理値とは異なる論理値は、前記後段回路をコントロールする値であるものである。【００５０】
請求項３に係る発明は、請求項２において、前記後段回路はフリップフロップ回路群であり、前記特定の内部信号線は前記フリップフロップ回路群を制御するための信号線であり、前記特定の内部信号線に論理値１又は論理値０を割り当てる割当手段をさらに備え、前記割当手段が、前記特定処理により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、ものである。【００５１】
請求項４に係る発明は、与えられる集合であって、故障検出対象の論理回路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合が持つ少なくとも１つの特性を維持しつつ若しくは向上させつつ新たな集合を生成する生成方法であって、特定手段が、前記論理回路内の特定の内部信号線であって、それぞれに指定される論理値を有している第一の特定内部信号線、それぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に関し、前記与えられた集合に基づき、前記特性を維持しながら若しくは向上させながら、前記第一の特定内部信号線が有する前記各指定される論理値の少なくとも一つを未定値の状態に変更させること、前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、特定する特定処理を含む、ものである。【００５２】
なお、上記請求項１及び４における特定処理において、第二の特定内部信号線について「少なくとも一つ」と表現しているが、できるだけ多くについて異なる論理値を維持させることが好ましく、全てについて異なる論理値を維持させることがより好ましい。同様に、上記特定処理において、第三の特定内部信号線についても「少なくとも一つ」と表現しているが、できるだけ多くについて未定値を維持させ又は異なる論理値に変更させることが好ましく、全てについて未定値を維持させ又は異なる論理値に変更させることがより好ましい。また、上記特定処理について、３つの処理に関して「少なくともいずれかが可能な」としているが、未定値が発生していない場合には第三の特定内部信号線の処理ができない場合もあり得るが、３つの処理が全て行われることが好ましい。【００５３】
請求項５に係る発明は、請求項４において、前記特定の内部信号線には後段回路が接続されており、前記各指定される論理値及び前記各指定される論理値とは異なる論理値が、前記後段回路をコントロールする値であるものである。【００５４】
請求項６に係る発明は、請求項５において、前記後段回路がフリップフロップ回路群であり、前記特定の内部信号線が前記フリップフロップ回路群を制御するための信号線であり、割当手段が、前記特定処理により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、割当処理を含む、ものである。【００５５】
なお、請求項２、３、５、又は、６における前記フリップフロップ回路群を制御するための信号線としては、クロック制御信号線が挙げられるが、ゲートクロック信号線として捉えてもよい。【００５６】
請求項７に係る発明は、請求項４から６のいずれかに記載の生成方法をコンピュータに実行させることが可能なプログラムである。
【発明の効果】
【００５７】
本願に係る発明によれば、特定の内部信号線を第一、第二及び第三の特定内部信号線に区別し、第一の特定内部信号線については各指定される論理値を未定値の状態に変更させることが可能で、第二の特定内部信号線及び第三の特定内部信号線については各指定される論理値以外の状態とさせることが可能となるように、入力ビットにおける論理ビット及び未定値ビットを特定するので、与えられた集合のサイズを変更することもなく、すなわち特性の低下を抑止しながら、特に第一の特定内部信号線の状態をコントロールできる新しいテストキューブを含む新しい集合を生成できる。【００５８】
その結果、例えば特定の内部信号線がフリップフロップ群の活性化と非活性化をコントロールする信号線であれば、できるだけ多くの特定の内部信号線が非活性化することを選択することで数多くのフリップフロップを非活性にできて、テストにおける消費電力の削減が可能になる。【００５９】
また、実速度スキャンテストであっても、テストデータ量、故障検出率、パフォーマンス、回路設計には影響が及ぼされず、テストコンプレッションの場合のように入力ビット中のドントケアビットが少ない場合であっても、ラウンチ遷移ひいては歩留り損失リスクを減らすことが可能となる。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施の形態にかかるテストキューブ集合の生成方法を実施可能な変換装置を示したブロック図である。
【図２】図１の変換装置の動作を具体的に説明するための図である。
【図３】CTXの基本的な考え方を説明するための図である。
【図４】CTXの基本概念を示したフロー図である。
【図５】CTXのためのテスト生成を目的とする、m個のクロックゲーティングブロックを含む回路のモデルを示す図である。
【図６】制限付きテストリラクゼーションを説明するための図である。
【図７】実験結果を説明するための二つの表を示す図である。
【図８】パーシャルスキャン回路を説明するための図である。
【図９】半導体論理回路が、設計、製造、テストの三段階を経て出荷されることを示した図である。
【図１０】一般的な論理回路におけるフルスキャン順序回路の模式図である。
【図１１】テスト入力とテスト応答との関係を示した模式図である。
【図１２】テストキューブとテストベクトルについて説明するための図である。
【図１３】テストキューブの求め方の概念を説明する図であってテストデータ操作の例を説明するための図である。
【図１４】テストリラクゼーションの例を簡単に説明するための図である。
【図１５】ＬＯＣクッキング方式を説明するための図である。
【図１６】テストリラクゼーション＆X‐filling手法の概念を示した図である。
【図１７】多数の低LSAのX‐filling手法の1つであるJP-fillと呼ばれるものを示す図である。
【図１８】クロックゲーティング方式の一例を示した図である。
【図１９】図１７のクロックゲーティング回路に関する信号のタイミングチャートを示した図である。
【図２０】実用的な回路の一例（ゲート数60万および遷移遅延テストベクトル数600）についてのテストベクトル数と未定値Ｘの割合を示したグラフである。
【発明を実施するための形態】
【００６１】
図１は、本発明の実施の形態にかかるテストキューブ集合の生成方法を実施可能な変換装置を示したブロック図である。
【００６２】
図１を参照して、この変換装置１は、故障検出対象の論理回路内の内部信号線の中から特定の内部信号線を抽出する特定内部信号線抽出部３と、抽出された特定内部信号線を後述するように区別する特定内部信号線区別部５と、入力ビットにおける入力未定値ビット及び入力論理ビットを特定する特定部７と、特定された入力未定値ビットを含む入力ビットにおける未定値ビットに論理値１又は論理値０を割り当てる割当部９とを備える。特定部７は、入力未定値ビット特定部１１と、入力論理ビット特定部１３とを備える。このような構成を有する変換装置１は、入力ビットに関しての与えられた集合の一例である初期テストベクトル集合１５から新たな集合の一例としてのテストキューブ集合１７を生成し、さらにテストキューブ集合１７から最終テストベクトル集合１９に変換してテストとして故障検出対象の論理回路へ印加される集合を生成できる。
【００６３】
ここで、特定内部信号線抽出部３が抽出する特定の内部信号線としては、例えば、後段回路としてのフリップフロップ回路群の活性化と非活性化を決定できるクロックゲーティング回路へ入力されるクロック制御信号線が挙げられる。そして、特定内部信号線区別部５は、上記のようなクロック制御信号線が論理値１（０）の場合と論理値０（１）の場合とを区別し、例えば、論理値１を持つクロック制御信号線を第一の特定内部信号線とし、論理値０を持つクロック制御信号線を第二の特定内部信号線とする。なお、与えられる集合に未定値（ドントケア）ビットが含まれている場合には、特定内部信号線区別部５は、未定値Ｘを持つクロック制御信号線を第三の特定内部信号線としてさらに区別できるものとする。
【００６４】
図２は、図１の変換装置の動作を具体的に説明するための図である。
【００６５】
図２（Ａ）に示したものは図１の初期テストベクトル集合１５の一例である。初期テストベクトル集合は、例えば、自動テストパターン生成（ＡＴＰＧ）プログラムにより生成される。これに対して、特定内部信号線抽出部３及び特定内部信号線区別部５の動作により入力ビットに関する制約ビット集合２１が決定される。この制約ビット集合２１の中で「＊」がついたビットは未定値（ドントケア）Ｘとできることが期待されるビットであり、「―」がついたビットは論理値１と論理値０のいずれかである論理ビットとされるビットである。特定部７は、フリップフロップ群を活性化させる例えば論理値１（指定される論理値）を有している上記した第一のクロック制御信号線、フリップフロップ群を非活性化させる例えば論理値０（指定される論理値とは異なる論理値）を有している第二のクロック制御信号線に関し、故障シミュレーションにより、故障検出率といった特性の低下を抑止しながら第一のクロック制御信号線が有する論理値１を未定値の状態に変更させること、及び、第二のクロック制御信号線には論理値０を維持させて論理値１ではない状態とさせることの両者を可能な限り行うように、入力ビットにおける論理ビット及び未定値ビットを特定する特定処理を行う。その結果、図２（Ｃ）に示すような、□で囲まれて特定されている未定値ビットにすべきビット（図１の入力未定値ビット特定部１１により得られる。）と○で囲まれて特定されている論理ビット（図１の入力論理ビット特定部１３により得られる。）が示された集合が得られる。これによって、図２（Ｄ）に示すようなテストキューブ集合１７が新たな集合として生成される。新たなテストキューブ集合１７は、初期テストベクトル集合との関係ではテストデータ量というサイズの増加はなく、故障検出率というような特性の低下は抑えられつつ第一のクロック制御信号線を、例えば論理値１から論理値０のようにフリップフロップ群を活性化させる論理値から非活性化させる論理値に変更させえる集合である。最後に、割当部９が動作して、特定処理により特定された未定値ビットにすべきビットを含む入力ビットにおける未定値ビットに対し、第一のクロック制御信号線が未定値の状態に変更可能なものについてはフリップフロップ群を非活性化させる例えば論理値０を有するように論理値１又は論理値０を割り当てる割当処理を行い、図２（Ｅ）に示すような最終テストベクトル集合１９が得られる。
【００６６】
なお、与えられる集合に未定値（ドントケア）ビットが含まれている場合には、特定内部信号線区別部５は、未定値Ｘを持つクロック制御信号線を第三の特定内部信号線としてさらに区別できるため、特定部７は、第三のクロック制御信号線には当該未定値を維持させ又は例えば論理値０（指定される論理値とは異なる論理値）に変更させて論理値１ではない状態とさせることを可能な限り行って、入力ビットにおける論理ビット及び未定値ビット（未定値ビットにすべきビットを含む）を特定する特定処理を行えばよい。そして、割当部９は、第三のクロック制御信号線が維持された未定値を有している場合にはフリップフロップ群を非活性化させる例えば論理値０を有するように論理値１又は論理値０を割り当てる割当処理を行えばよい。
【００６７】
また、上記の説明では、特定の内部信号線としてクロック制御信号線を一例として挙げたが、それ以外の内部信号線を特定内部信号線としてもよく、全て同一種類の内部信号線を特定内部信号線とする必要は必ずしもない。
【００６８】
さらに、上記では特定内部信号線の一例としてクロック制御信号線を挙げ、クロック制御信号線が有する論理値として後段のフリップフロップ群を活性化する場合の論理値を１、非活性化する場合の論理値を０としたが、クロック信号との出力をＡＮＤとするかＯＲとするかによっても異なり、それぞれで指定される論理値を持つものを第一の特定内部信号線とし、それぞれで指定される論理値とは異なる論理値を持つものを第二の特定内部信号線とすればよい。
【００６９】
さらに、第一の内部信号線と第二の内部信号線と第三の内部信号線の全てに関して上記した特定処理が行われる必要はなく、第一の内部信号線のみ、第二の内部信号線のみ、第三の内部信号線のみ、或いはそれらの間の組み合わせに関して上記した特定処理が行われてもよい。加えて、例えば第一の内部信号線が複数ある場合には少なくともその一つに関して上記の特定処理が行われるものであってもよく、これに関しては第二、第三の内部信号線に関しても同様である。
【００７０】
以下、図１及び図２を用いて説明した本願発明に関してさらに説明する。
【００７１】
［ＣＴＸ（Clock-Gating-Based  Test  Relaxation）の基本概念］
図３は、ＣＴＸの基本的な考え方を説明するための図である。図３に示す基本的な考え方は、クロックゲーティングを巧みに用いたテストリラクゼーション＆X‐fillingである。図３（Ａ）では４つのフリップフロップ（以下、ＦＦ）がＥＮＡとＥＮＢの２つのクロック制御信号によって制御されており、ＥＮＡとＥＮＢの値は初期テストベクトルに対しては１である。このことからすべてのＦＦがアクティブ、すなわち、Ｃ1（図１５）においてキャプチャすることになり、結果として４つの初期ラウンチ遷移が生じる。ＣＴＸは次の２つのステージからなる。
【００７２】
＜ステージ１（クロック無効化）＞
図３（Ｂ）に示されているように、まずテストリラクゼーションを実行してできるだけ多くの有効化クロック制御信号（値＝１）をニュートラル信号（値＝Ｘ）に置き換え、次に図３（Ｃ）に示されているように、X‐fillingを実行してできるだけ多くのニュートラルクロック制御信号を無効化信号（値＝０）に置き換える。無効化クロック制御信号（図３（Ｃ）のＦＦ1およびＦＦ2）に制御されたすべてのＦＦが非アクティブなので、ラウンチ遷移は効率よくまとめて減らされる。このステージ１の処理が、図１の変換装置１により行われる。
【００７３】
＜ステージ２（ＦＦ静止化）＞
テストリラクゼーションを実行してできるだけ多くのアクティブ遷移ＦＦ（入力値≠出力値、すなわち、図３（Ｃ）のＦＦ3およびＦＦ4）をニュートラルＦＦ（入力値または出力値＝Ｘ、すなわち、図３（Ｄ）のＦＦ3およびＦＦ4）に置き換え、次にX‐fillingを実行してニュートラルＦＦの入力値と出力値を等値化することで、できるだけ多くのニュートラルＦＦを非遷移ＦＦ（入力値＝出力値、すなわち、図３（Ｅ）のＦＦ4）に置き換える。このようにして、個々のＦＦにおけるラウンチ遷移の数が減らされる。このステージ２の処理は、本願発明者等によって他の出願にて提案された技術等が用いられる。
【００７４】
ＣＴＸ方式の主な貢献は下記の通りである。（１）クロック無効化に基づくテストリラクゼーション＆X‐filling：ＣＴＸは実速度スキャンテストにおけるクロックゲーティングの省電力可能性を完全に探索する。（２）ＦＦ静止化に基づくテストリラクゼーションおよびX‐filling：ＣＴＸはアクティブのままのＦＦの入力値と出力値をできるだけ一致させて個々のＦＦにおけるラウンチ遷移をさらに減らす。（３）クロックゲーティングの非干渉的用法：テストデータ操作を通じてクロックゲーティングを用いることで、ＣＴＸはＡＴＰＧの変化もテストデータの増加も故障検出率の減少も一切引き起こさない。（４）Ｘビット効率：クロック無効化およびＦＦ静止化によってＣＴＸはＸビットがほとんどなくともラウンチ遷移を著しく減らす。
【００７５】
［問題の形式化］
実速度スキャンテストにおけるクロックゲーティングに基づくラウンチ遷移を減少するという課題は以下のようになる。Vinitialをあるテストベクトル集合と仮定する。以下の条件下で新しいテストベクトル集合Vfinalを見つけよ。（１）Vfinalの故障検出率はVinitialの故障検出率より小さくはない。（２）VfinalのサイズはVinitialのサイズと等しい。（３）Vfinalのピークラウンチ遷移はクロック無効化およびFF静止化を用いてVinitialのピークラウンチ遷移よりもできるだけ小さくする。
【００７６】
［基本概念］
上記の課題を解決するために、ＣＴＸ（Clock−Gating−Based  Test  Relaxation  and  X−Filling）を提案する。以下はＣＴＸの手順を述べる上で有用な用語であり、以下のように定義する。
【００７７】
定義Ａ：入力ベクトルにおけるクロック制御信号ＥＮの値が論理値１（０）であるとき、ＥＮは有効である（無効である）という。値がＸであるとき、ＥＮはニュートラルであるという。例えば、図３（Ａ）（Ｂ）（Ｃ）におけるＥＮAはそれぞれ、有効な、ニュートラルな、無効なクロック制御信号である。
【００７８】
定義Ｂ：ＦＦあるいはクロックゲートＦＦ群へのクロックが有効（無効）であるとき、そのＦＦあるいはそのクロックゲートＦＦ群はアクティブ（非アクティブ）であるという。例えば、図３（Ｃ）におけるＦＦ1およびＦＦ2（ＦＦ3およびＦＦ4）は非アクティブ（アクティブ）ＦＦである。クロックゲートＦＦ群｛ＦＦ1，ＦＦ2｝（｛ＦＦ3，ＦＦ4｝）は非アクティブ（アクティブ）である、ともいう。
【００７９】
定義Ｃ：ＦＦの入力値と出力値が同じ（異なる）論理値であるとき、そのＦＦは非遷移ＦＦ（遷移ＦＦ）であるという。ＦＦの入力値あるいは出力値がＸであるとき、そのＦＦはニュートラルＦＦという。例えば、図３（Ｄ）のＦＦ3およびＦＦ4は両方ともニュートラルＦＦである。図３（Ｅ）において、ＦＦ3は遷移ＦＦであり、ＦＦ4は非遷移ＦＦであり、両方ともアクティブである。
【００８０】
ＣＴＸは以下の２つの見解に基づいている。
【００８１】
見解１：全ての有効クロック制御信号が実際に有効である必要はない。このことが起こるのは、あるテストベクトル内の故障を検出するためにクロック制御信号を有効にしたものの、後にその故障がそのクロック制御信号が有効である必要のない他のテストベクトルによって検出されるかもしれない場合である。
【００８２】
見解２：故障検出のためにはあるＦＦのみがアクティブでさえあればよい場合であっても、同じクロックゲートＦＦ群にあるＦＦは同じクロック制御信号を共有しているので、他の全てのＦＦもアクティブでなければならない。この結果、クロックゲーティングが粗い場合には特に、不必要な遷移が起こる。
【００８３】
図４は、ＣＴＸの基本概念を示したフロー図である。
【００８４】
1番目の見解は図４に示したＣＴＸのステージ１（Clock−Disabling）に通じている。テストリラクゼーションを実行してできるだけ多くの有効クロック制御信号をニュートラル信号に置き換え、次にX‐fillingを実行してできるだけ多くのニュートラルクロック制御信号を無効信号に置き換える。このようにして、クロックゲーティングをまとめて削減する能力のおかげで、ラウンチ遷移はクロックゲートＦＦ群レベルで効率よく削減される。図１の変換装置１の動作が実行される内容である。
【００８５】
２番目の見解は図１４に示したＣＴＸのステージ２（ＦＦ静止化）に通じている。テストリラクゼーションを実行してできるだけ多くのアクティブ遷移ＦＦをニュートラルＦＦに置き換え、次にX‐fillingを実行してできるだけ多くのニュートラルＦＦを非遷移ＦＦに置き換える。このようにして、ラウンチ遷移は個々のＦＦレベルでさらに削減される。
【００８６】
［回路モデル］
図５は、ＣＴＸのためのテスト生成を目的とする、ｍ個のクロックゲーティングブロックを含む回路のモデルを示す図である。
まず、図１５に示すように全て特定されたテストベクトルνは最終シフトパルスＳLの立ち上がりエッジの時にロードされる。νはＦＦの出力値に対応するＰＰＩ部＜ν：PPI＞および初期入力値に対応するＰＩ部＜ν：PI＞からなる。クロック制御論理回路の組み合わせは、図５に示されているもののように、ｍ個のクロックゲーティングブロックに対応するｍ個のクロック制御信号ＥＮ1、ＥＮ2、・・・ＥＮmを生じさせる。クロック制御信号はそれぞれ無効かもしれず有効かもしれず、対応するクロックゲートＦＦ群がラウンチキャプチャパルスＣ1時にアクティブであるか否かを決定する。
【００８７】
［ＣＴＸの手順］
上記した図４に示したＣＴＸの基本概念に基づいてＣＴＸの手続きは次のように記述できる。
【００８８】
入力：Ｖ0＝｛ν0i｜ｉ＝１，２，・・・，ｎ｝    ／／初期テストベクトル集合
出力：Ｖ2＝｛ν2i｜ｉ＝１，２，・・・，ｎ｝    ／／最終テストベクトル集合
【００８９】
＜ステージ１（クロック無効化）＞
（1−1）ｉ＝１，２，・・・，ｎに対して、RS（ν0i）＝｛ν0i下で少なくとも1つの有効クロック制御信号から到達可能なν0i内のビット｝とする。
（1−2）Ｔ1＝RS（ν01）∪RS（ν02）・・・∪RS（ν0n）とする。
（1−3）Ｖ0に制限付きテストリラクゼーションを実行して、Ｖ0の故障検出率を保持しつつ、Ｔ1内のできるだけ多くのビットをＸビットに置き換える。得られた部分的に特定されたテストキューブをＣ1＝｛ｃ1i｜ｉ＝１，２，・・・，ｎ｝とする。
（1−4）ｉ＝１，２，・・・，ｎに対して、ｃ1i内の各いくつかのＸビットに対して適切な論理値を割り当てることでｃ1i下の各ニュートラルクロック制御信号に対して０を正当化するよう試みる。
（1−5）ｉ＝１，２，・・・，ｎに対して、ｃ1i内に残っているＸビットに対して低ＬＳＡのX‐fillingを実行する。得られた全て特定されたテストベクトルの集合をV1＝｛ν1i｜ｉ＝１，２，・・・，ｎ｝とする。
【００９０】
＜ステージ２（FF静止化）＞
（2−1）ｉ＝１，２，・・・，ｎに対して、RF（ν1i）＝｛ν1i下でアクティブ遷移ＦＦに対応するν1i内のビット｝とする。
（2−2）Ｔ2＝RF（ν11）∪RF（ν12）・・・∪RF（ν1n）とする。
（2−3）Ｖ1に制限付きテストリラクゼーションを実行して、（1）Ｖ1の故障検出率および（2）全てのクロック制御信号の論理値を保持しつつ、Ｔ2内のできるだけ多くのビットをXビットに置き換える。得られた部分的に特定されたテストキューブをＣ2＝｛ｃ2i｜ｉ＝１，２，・・・，ｎ｝とする。
（2−4）ｉ＝１，２，・・・，ｎに対して、ｃ2i内のXビットに対して低ＬＳＡのX‐fillingを実行する。得られた全て特定されたテストベクトルの集合をＶ2＝｛ν2i｜ｉ＝１，２，・・・，ｎ｝とする。
【００９１】
［制限付きテストリラクゼーション］
ＣＴＸのキーとなる操作は、全て特定されたテストベクトル集合Vに実行される制限付きリラクゼーションであり、（１）Vの故障検出率および（２）S内のターゲット列の論理値を保持したまま、Ｔ内のできるだけ多くのターゲットビットをＸビットに置き換えるために実行する。結果として部分的に特定されたテストキューブCが得られる。以上のことは図６に示されており、＊印はターゲットビットの位置を表している。ステップ（1−3）ではＳ＝φを仮定することが可能であり、ここでの制限付きテストリラクゼーションでは故障検出率のみが保持される必要がある。
【００９２】
［制限付きテストリラクゼーションの手順］
図６は、制限付きテストリラクゼーションの手順を説明するための図である。
【００９３】
まず、図６において、入力Vは全て特定されたテストベクトル集合である。Tはターゲットビット集合である。Ｓはターゲット列集合（ＣＴＸのステップ（1−3）では、Ｓ＝φ）である。出力Ｃ：結果として得られる部分的に特定されたテストキューブ集合である。
【００９４】
ステップS−1では、Ｖの全ての必須故障を特定する。それらの故障はそれぞれＶ内のあるテストベクトルによってのみ検出され、2回検出故障シミュレーションによって特定される。
【００９５】
ステップS−2では、Ｖ内のビットであって、（１）全ての必須故障を検出するために、および、（２）Ｓ内の全てのターゲット列の論理値を保持するために、論理値が必要とされる全てのビットを、Ｔ内のビットはできるだけ避けるようなやり方で、特定する。そのようなビットはＡＴＰＧでも広く応用されている正当化操作を用いて容易に見つけ出される。続いてＶ内の特定されたビットをＸビットに置き換え、中間テストキューブ集合Ｃ´が得られる。
【００９６】
ステップS−3では、３値故障シミュレーションをＣ´に実行してＶの全ての非必須故障を求める。検出されなかった全ての非必須故障については、それらを検出するために論理値が必要とされるＶ内のＸビットを、Ｔ内のビットはできるだけ避けるようなやり方で、特定する。続いて特定されたＸビットをＶ内のそのビットの元の論理値を用いて回復する。こうして最終テストキューブ集合Ｃが得られる。
【００９７】
なお、制限付きテストリラクゼーションの手順の時間的コストはＯ（Ｍ×Ｎ）である。ここで、ＭおよびＮはそれぞれ故障の数およびテストベクトルの数である。
【００９８】
［実験結果］
図７は実験結果を説明するための二つの表を示す図である。
【００９９】
ＣＴＸテスト生成方式は評価実験のためにC言語を用いて実装されている。ゲートクロックを備えたベンチマーク回路が入手できないため、オープンソースのマイクロプロセッサデザインであるpicoJava（登録商標）を合成し図７（Ａ）の表に示す2つのテスト回路TC−1およびTC−2を作成した。１つのクロックゲーティングブロックは1つのクロックゲートＦＦ群に対応している。評価実験はTC−1およびTC−2に対して行われ、結果は図７（Ｂ）の表にまとめた。遷移ＬＯＣ遅延テストベクトルはTetraMAX（登録商標）によって生成される。テストベクトル数および故障検出率はそれぞれ“ベクトル数”および“故障検出率（％）”の下に表示されている。（1）Preferred‐Fillを用いたXID、（2）JP‐Fillを用いたXID、（3）提案したＣＴＸ方式を用いた３つの実験を行った。ここで、XIDとはゲートクロックを用いないテストリラクゼーションシステムである。WSA基準による最初のテストベクトル集合に対するラウンチ遷移の削減率はそれぞれ“XID＋Preferred”、“XID＋JP”、“CTX”の下に示されている。図７（Ｂ）の表はＣＴＸ方式が従来のテストリラクゼーションとX‐fillingに基づいたこれまでの方式よりも効率的であることを示している。また、クロックゲートメカニズムが大量に用いられている低電力デバイスにＣＴＸが特に効率的であることも示されている。
【０１００】
実験結果も踏まえ、以下のことが言える。
（１）ＣＴＸは実速度スキャンテストにおける歩留まり損失リスクを削減する上で、ＣＴＸはテストデータの増加も故障検出率の低下も回路／クロッキングの変更も回路のパフォーマンスの低下も一切引き起こさないという意味で、非干渉的である。このことがＣＴＸをどんなパワーセーフテスト生成フローにおいても利用価値の高いものにしている。（２）ＣＴＸはテストキューブ内のＸビットの数が限られているテストコンパクションおよびテストコンプレッションに適用可能である。ＣＴＸは最初のテストベクトル量が不変であるような巧みなやり方でクロックゲートを十分に活用することでそのようなＸビット不足を補っている。
【０１０１】
［まとめ］
以上のように、実速度スキャンテストにおいて歩留り損失を生じさせうるラウンチ遷移を効率的に削減するために、ＣＴＸ（Clock−Gating−Based  Test  Relaxation  and  X−Filling）という方式を提案した。基本的な考え方はクロックゲーティングを用いて故障検出に貢献しないＦＦをできるだけ多く無効化することである。ＣＴＸはテストリラクゼーションおよびX‐fillingにクロックゲーティングを十分に活用する種類のものとしては初めてのものである。ＣＴＸはテストサイズ、故障検出率、ＡＴＰＧ・回路・クロックの設計、および機能上のパフォーマンスに全く影響を及ぼさずに歩留り損失を削減できる。その上、ＣＴＸはＸビットが限られているようないかなるテストコンプレッション方式にも適用可能である。
【０１０２】
なお、上記まででは、図１０に示すようなフルスキャン順序回路を用いて説明したが、図８に示すようなパーシャルスキャン回路にも適用可能である。ここで、パーシャルスキャン回路とは、一部のフリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本若しくは複数本のスキャンチェーンを形成するものである。また、パイプライン順序回路に対しても適用可能である。
【０１０３】
具体的には、組合せ回路部分３０００と順序回路のフリップフロップ３００１とパーシャルスキャン順序回路のスキャンフリップフロップ３００２とから構成される。組合せ回路部分３０００は図１０の組合せ回路部分１２０１と同様ではあるが、その入力は＜ｖ：ＰＰＩ＞がスキャンシフトによってスキャンフリップフロップ３００２に設定される部分＜ｖ：ＰＰＩｎ２＞とフリップフロップ３００１に設定される部分＜ｖ：ＰＰＩｎ１＞からなる。また、組合せ回路部分３０００からの出力は同じく図１０の組合せ回路部分１２０１と同様であるが、テストベクトルｖに対するテスト応答ｆ（ｖ）としての外部出力線に直接現れる部分＜ｆ（ｖ）：ＰＯ＞と擬似外部出力線に現れる部分＜ｆ（ｖ）：ＰＰＯ＞のうち、＜ｆ（ｖ）：ＰＰＯ＞はスキャンキャプチャによってスキャンフリップフロップ３００２に取り込まれる部分＜ｆ（ｖ）：ＰＰＯｎ２＞とフリップフロップ３００１に取り込まれる部分＜ｆ（ｖ）：ＰＰＯｎ１＞からなる。
【０１０４】
図８（ｂ）は図８（ａ）におけるスキャンフリップフロップ３００２におけるスキャンキャプチャの前と後において論理値に相違が発生する場合の一例を示す。
【０１０５】
図１０（ｂ）とも同様であるが、図８（ｂ）において、テストベクトル＜ｖ：ＰＰＩｎ２＞の要素である一つのビットａと、それに対応するテスト応答＜ｆ（ｖ）：ＰＰＯｎ２＞が、スキャンフリップフロップ３００２で異なる論理値を取ると、キャプチャモードの際に論理値の相違（以下、遷移とする）が発生する。ある一つのテストベクトルに対する遷移の数は、そのテストベクトルを原因とした組合せ回路部分３０００を含めた回路全般で発生する消費電力と深く関係しているため、テストベクトルに対するキャプチャ時の遷移の数を削減することで、キャプチャ時の消費電力を低減することができる。このような処理が図４のステージ２（FF静止化）の処理として行われる。
【０１０６】
なお、上記では故障検出対象の論理回路の例として、フルスキャン順序回路の組み合わせ回路部分の場合のほか、パーシャルスキャン回路の組合わせ回路部分の場合も示したが、パイプライン方式の論理回路などの他の論理回路であってもよい。
【符号の説明】
【０１０７】
７    特定部
９    割当部
１１    入力未定値ビット特定部
１３    入力論理ビット特定部
【図１】
2010021233.tif 000003
【図２】
2010021233.tif 000004
【図３】
2010021233.tif 000005
【図４】
2010021233.tif 000006
【図５】
2010021233.tif 000007
【図６】
2010021233.tif 000008
【図７】
2010021233.tif 000009
【図８】
2010021233.tif 000010
【図９】
2010021233.tif 000011
【図１０】
2010021233.tif 000012
【図１１】
2010021233.tif 000013
【図１２】
2010021233.tif 000014
【図１３】
2010021233.tif 000015
【図１４】
2010021233.tif 000016
【図１５】
2010021233.tif 000017
【図１６】
2010021233.tif 000018
【図１７】
2010021233.tif 000019
【図１８】
2010021233.tif 000020
【図１９】
2010021233.tif 000021
【図２０】
2010021233.tif 000022
【手続補正書】
【提出日】平成22年5月19日(2010.5.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
与えられる集合であって、故障検出対象の論理回路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合の故障モデルを維持しつつ又は故障検出率を維持しつつ若しくは向上させつつ新たな集合を生成する生成装置であって、
前記論理回路内の特定の内部信号線を抽出する特定内部信号線抽出手段と、
前記特定の内部信号線を、当該特定の内部信号線が有する論理値に基づいて区別する特定内部信号線区別手段と、
前記入力ビットにおける論理ビット及び未定値ビットとすべきビットを特定する特定手段とを備え、
前記特定の内部信号線には後段回路が接続されており、
前記特定手段が、
前記特定内部信号線抽出手段により抽出された前記特定の内部信号線であって、前記特定内部信号線区別手段により、前記後段回路を活性化させるそれぞれに指定される論理値を有している第一の特定内部信号線、前記後段回路を非活性化させるそれぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に区別された内部信号線に関し、
前記与えられた集合に基づき、前記故障モデルを維持しながら又は前記故障検出率を維持しながら若しくは向上させながら、
前記第一の特定内部信号線が有する当該各指定される論理値の少なくとも一つを未定値の状態に変更させること、
前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、
前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、
少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、
特定する、生成装置。
【請求項２】
前記後段回路はフリップフロップ回路群であり、前記特定の内部信号線は前記フリップフロップ回路群を制御するための信号線である、請求項１記載の生成装置。
【請求項３】
前記特定の内部信号線に論理値１又は論理値０を割り当てる割当手段をさらに備え、
前記割当手段が、前記特定手段により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、
前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、
前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、請求項２記載の生成装置。
【請求項４】
与えられる集合であって、故障検出対象の論理回路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合の故障モデルを維持しつつ又は故障検出率を維持しつつ若しくは向上させつつ新たな集合を生成する生成方法であって、
特定内部信号線抽出手段が、前記論理回路内の特定の内部信号線を抽出する特定内部信号線抽出処理と、
特定内部信号線区別手段が、前記特定の内部信号線を、当該特定の内部信号線が有する論理値に基づいて区別する特定内部信号線区別処理と、
特定手段が、前記入力ビットにおける論理ビット及び未定値ビットとすべきビットを特定する特定処理とを含み、
前記特定の内部信号線には後段回路が接続されており、
前記特定処理において、前記特定手段が、
前記特定内部信号線抽出処理において抽出された前記特定の内部信号線であって、前記特定内部信号線区別処理において、前記後段回路を活性化させるそれぞれに指定される論理値を有している第一の特定内部信号線、前記後段回路を非活性化させるそれぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に区別された内部信号線に関し、
前記与えられた集合に基づき、前記故障モデルを維持しながら又は前記故障検出率を維持しながら若しくは向上させながら、
前記第一の特定内部信号線が有する当該各指定される論理値の少なくとも一つを未定値の状態に変更させること、
前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、
前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、
少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、
特定する、生成方法。
【請求項５】
前記後段回路はフリップフロップ回路群であり、前記特定の内部信号線は前記フリップフロップ回路群を制御するための信号線である、請求項４記載の生成方法。
【請求項６】
割当手段が、前記特定処理により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、
前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、
前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、
割当処理を含む、請求項５記載の生成方法。
【請求項７】
請求項４から６のいずれかに記載の生成方法をコンピュータに実行させることが可能なプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
クトルｖを印加し、組合せ回路部１２０１の外部出力線ＰＯと擬似外部出力線ＰＰＯからテスト応答ｆ（ｖ）を観測する必要がある。１つのテストベクトルは、外部入力線と擬似外部入力線に対応する入力ビットからなる。また、１つのテスト応答は、外部出力線と擬似外部出力線に対応する出力ビットからなる。
［０００６］
しかし、順序回路のフリップフロップ１２０３の出力線（擬似外部入力線）と入力線（擬似外部出力線）は一般に外部より直接アクセスできない。従って、組合せ回路部１２０１をテストするためには、擬似外部入力線の可制御性及び擬似外部出力線の可観測性に問題がある。
［０００７］
上述の組合せ回路部１２０１のテストにおける可制御性及び可観測性の問題を解決する主な手法として、フルスキャン設計がある。フルスキャン設計とは、フリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本または複数本のスキャンチェーンを形成することである。スキャンフリップフロップの動作はスキャンインネーブル（ＳＥ）信号線で制御される。例えば、ＳＥ＝０のとき、従来のフリップフロップと同じ動作をし、クロックパルスが与えられると、組合せ回路部からの値でスキャンフリップフロップの出力値が更新され、また、ＳＥ＝１のとき、同じスキャンチェーンにある他のスキャンフリップフロップと１つのシフトレジスタを形成し、クロックパルスが与えられると、外部から新しい値がスキャンフリップフロップにシフトインされると同時に、スキャンフリップフロップに現存の値が外部へシフトアウトされる。一般に、同じスキャンチェーンにあるスキャンフリップフロップは同じスキャンインネーブル（ＳＥ）信号線を共有するが、異なるスキャンチェーンのスキャンインネーブル（ＳＥ）信号線は同一の場合もあれば異なる場合もある。
［０００８］
フルスキャン順序回路の組合せ回路部のテストはスキャンシフトとスキャンキャプチャを繰り返すことによって行われる。スキャンシフトは、スキャンインネーブル（ＳＥ）信号が論理値１にされているシフトモードで行われる。シフトモードにおいては、１つまたは複数のクロックパルスが与えられ
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合の故障モデルを維持しつつ又は故障検出率を維持しつつ若しくは向上させつつ新たな集合を生成する生成装置であって、前記論理回路内の特定の内部信号線を抽出する特定内部信号線抽出手段と、前記特定の内部信号線を、当該特定の内部信号線が有する論理値に基づいて区別する特定内部信号線区別手段と、前記入力ビットにおける論理ビット及び未定値ビットとすべきビットを特定する特定手段とを備え、前記特定の内部信号線には後段回路が接続されており、前記特定手段が、前記特定内部信号線抽出手段により抽出された前記特定の内部信号線であって、前記特定内部信号線区別手段により、前記後段回路を活性化させるそれぞれに指定される論理値を有している第一の特定内部信号線、前記後段回路を非活性化させるそれぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に区別された内部信号線に関し、前記与えられた集合に基づき、前記故障モデルを維持しながら又は前記故障検出率を維持しながら若しくは向上させながら、前記第一の特定内部信号線が有する当該各指定される論理値の少なくとも一つを未定値の状態に変更させること、前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、特定する、ものである。
［００４９］
請求項２に係る発明は、請求項１において、前記後段回路はフリップフロップ回路群であり、前記特定の内部信号線は前記フリップフロップ回路群を制御するための信号線であるものである。
［００５０］
請求項３に係る発明は、請求項２において、前記特定の内部信号線に論理値１又は論理値
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
０を割り当てる割当手段をさらに備え、前記割当手段が、前記特定手段により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、ものである。
［００５１］
請求項４に係る発明は、与えられる集合であって、故障検出対象の論理回路に入力される入力ビットが、論理値１若しくは論理値０の論理ビットからなるテストベクトルの集合、少なくとも一つのビットが未定値の未定値ビットを含み残余のビットが論理ビットであるテストキューブの集合、又は、テストベクトルとテストキューブとの組み合わせの集合から、前記与えられた集合の故障モデルを維持しつつ又は故障検出率を維持しつつ若しくは向上させつつ新たな集合を生成する生成方法であって、特定内部信号線抽出手段が、前記論理回路内の特定の内部信号線を抽出する特定内部信号線抽出処理と、特定内部信号線区別手段が、前記特定の内部信号線を、当該特定の内部信号線が有する論理値に基づいて区別する特定内部信号線区別処理と、特定手段が、前記入力ビットにおける論理ビット及び未定値ビットとすべきビットを特定する特定処理とを含み、前記特定の内部信号線には後段回路が接続されており、前記特定処理において、前記特定手段が、前記特定内部信号線抽出処理において抽出された前記特定の内部信号線であって、前記特定内部信号線区別処理において、前記後段回路を活性化させるそれぞれに指定される論理値を有している第一の特定内部信号線、前記後段回路を非活性化させるそれぞれに指定される論理値とは異なる論理値を有している第二の特定内部信号線、及び、未定値を有している第三の特定内部信号線に区別された内部信号線に関し、前記与えられた集合に基づき、前記故障モデルを維持しながら又は前記故障検出率を維持しながら若しくは向上させながら、前記第一の特定内部信号線が有する当該各指定される論理値の少なくとも一つを未定値の状態に変更させること、前記第二の特定内部信号線には当該異なる論理値の少なくとも一つを維持させて当該維持された異なる論理値を有する第二の特定内部信号線を前記指定される論理値以外の状態とさせること、及び、前記第三の特定内部信号線には当該未定値の少なくとも一つを維持させ又は前記異なる論理値に変更させて当該維持された未定値を有する又は当該変更された異なる論理値を有する第三の特定内部信号線を前記指定される論理値以外の状態とさせることについて、少なくともいずれかが可能な、入力ビットにおける論理ビット及び未定値ビットとすべきビットを、特定する、ものである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
［００５２］
なお、上記請求項１及び４における特定処理において、第二の特定内部信号線について「少なくとも一つ」と表現しているが、できるだけ多くについて異なる論理値を維持させることが好ましく、全てについて異なる論理値を維持させることがより好ましい。同様に、上記特定処理において、第三の特定内部信号線についても「少なくとも一つ」と表現しているが、できるだけ多くについて未定値を維持させ又は異なる論理値に変更させることが好ましく、全てについて未定値を維持させ又は異なる論理値に変更させることがより好ましい。また、上記特定処理について、３つの処理に関して「少なくともいずれかが可能な」としているが、未定値が発生していない場合には第三の特定内部信号線の処理ができない場合もあり得るが、３つの処理が全て行われることが好ましい。
［００５３］
請求項５に係る発明は、請求項４において、前記後段回路はフリップフロップ回路群であり、前記特定の内部信号線は前記フリップフロップ回路群を制御するための信号線であるものである。
［００５４］
請求項６に係る発明は、請求項５において、割当手段が、前記特定処理により特定された未定値ビットとすべきビットを含む入力ビットにおける未定値ビットに対し、前記第一の特定内部信号線が未定値の状態に変更可能なものについては前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当て、前記第三の特定内部信号線が維持された未定値を有している場合には前記各指定される論理値とは異なる論理値を有するように論理値１又は論理値０を割り当てる、割当処理を含む、ものである。
［００５５］
なお、請求項２、３、５、又は、６における前記フリップフロップ回路群を制御するための信号線としては、クロック制御信号線が挙げられるが、ゲートクロック信号線として捉えてもよい。
［００５６］
請求項７に係る発明は、請求項４から６のいずれかに記載の生成方法をコ
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
のである。ＣＴＸはテストサイズ、故障検出率、ＡＴＰＧ・回路・クロックの設計、および機能上のパフォーマンスに全く影響を及ぼさずに歩留り損失を削減できる。その上、ＣＴＸはＸビットが限られているようないかなるテストコンプレッション方式にも適用可能である。
［０１０２］
なお、上記まででは、図１０に示すようなフルスキャン順序回路を用いて説明したが、図８に示すようなパーシャルスキャン回路にも適用可能である。ここで、パーシャルスキャン回路とは、一部のフリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本若しくは複数本のスキャンチェーンを形成するものである。また、パイプライン順序回路に対しても適用可能である。
［０１０３］
具体的には、組合せ回路部分３０００と順序回路のフリップフロップ３００１とパーシャルスキャン順序回路のスキャンフリップフロップ３００２とから構成される。組合せ回路部分３０００は図１０の組合せ回路部１２０１と同様ではあるが、その入力は＜ｖ：ＰＰＩ＞がスキャンシフトによってスキャンフリップフロップ３００２に設定される部分＜ｖ：ＰＰＩｎ２＞とフリップフロップ３００１に設定される部分＜ｖ：ＰＰＩｎ１＞からなる。また、組合せ回路部分３０００からの出力は同じく図１０の組合せ回路部１２０１と同様であるが、テストベクトルｖに対するテスト応答ｆ（ｖ）としての外部出力線に直接現れる部分＜ｆ（ｖ）：ＰＯ＞と擬似外部出力線に現れる部分＜ｆ（ｖ）：ＰＰＯ＞のうち、＜ｆ（ｖ）：ＰＰＯ＞はスキャンキャプチャによってスキャンフリップフロップ３００２に取り込まれる部分＜ｆ（ｖ）：ＰＰＯｎ２＞とフリップフロップ３００１に取り込まれる部分＜ｆ（ｖ）：ＰＰＯｎ１＞からなる。
［０１０４］
図８（ｂ）は図８（ａ）におけるスキャンフリップフロップ３００２におけるスキャンキャプチャの前と後において論理値に相違が発生する場合の一例を示す。
［０１０５］
図１０（ｂ）とも同様であるが、図８（ｂ）において、テストベクトル＜ｖ：ＰＰＩｎ２＞の要素である一つのビットａと、それに対応するテスト応
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2010021233.tif 000023
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2010021233.tif 000024
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１２
【補正方法】変更
【補正の内容】
【図１２】
2010021233.tif 000025
【国際調査報告】
2010021233.tif 000026
2010021233.tif 000027
2010021233.tif 000028
2010021233.tif 000029