(57)【特許請求の範囲】
【請求項１】
外部入力線（ＰＩ）、擬似外部入力線（ＰＰＩ）、外部出力線（ＰＯ）、擬似外部出力線（ＰＰＯ）を有する組合せ部分（１１）と、
前記擬似外部出力線と前記擬似外部入力線との間に接続された複数のスキャンフリップフロップ（１２−１，１２−２，…，１２−ｎ）と
を具備する前記スキャンフリップフロップをシフトレジスタとして直列接続して少なくとも１本のスキャンチェーン（ＳＣ）を確立するようにした半導体論理回路装置のテスト方法において、
前記外部入力線及び前記擬似外部入力線において未指定ビット（Ｘ）を含むテストキューブに対して、前記擬似外部入力線のビットと前記擬似外部出力線のビットとの対応ビット間の不一致数が少なくなるように前記未指定ビットに０あるいは１を埋込むことにより前記テストキューブを未指定ビットを含まないテストベクトルに変換する変換工程
を具備することを特徴とする半導体論理回路装置のテスト方法。
【請求項２】
前記変換工程は、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態を判別し、この結果、前記擬似外部入力線にも前記擬似外部出力線にも未指定ビットが存在しない状態をケースタイプ１とし、前記擬似外部入力線に少なくとも１つの未指定ビットが存在しかつ前記擬似外部出力線に未指定ビットが存在しない状態をケースタイプ２とし、前記擬似外部入力線に未指定ビットが存在せずかつ前記擬似外部出力線に少なくとも１つの未指定ビットが存在する状態をケースタイプ３とし、前記擬似外部入力線に少なくとも１つの未指定ビットが存在しかつ前記擬似外部出力線に少なくとも１つの未指定ビットが存在する状態をケースタイプ４とするケースタイプ判別工程
を具備する請求項１に記載の半導体論理回路装置のテスト方法。
【請求項３】
前記変換工程は、
前記ケースタイプ判別工程で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ１と判別された場合に、前記外部入力線のすべての未指定ビットに０あるいは１を埋め込む０／１埋込み工程を具備し、
前記０／１埋込み工程の後に前記変換工程が終了する請求項２に記載の半導体論理回路装置のテスト方法。
【請求項４】
前記変換工程は、
前記ケースタイプ判別工程で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ２と判別された場合に前記擬似外部入力線のすべての未指定ビットに該未指定ビットが対応する前記擬似外部出力線のビットの論理値を割当てる割当操作工程と、
該割当操作工程の後に論理シミュレーションを行うことにより前記外部出力線及び前記擬似外部出力線に存在する全部の未指定ビットに０あるいは１が決定される論理シミュレーション工程と
を具備し、
前記論理シミュレーション工程の後にケースタイプ判別工程に戻る請求項２に記載の半導体論理回路装置のテスト方法。
【請求項５】
前記変換工程は、
前記ケースタイプ判別工程で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ３と判別された場合に前記擬似外部出力線の未指定ビットの１つを対象未指定ビットとして選択し該対象未指定ビットが対応する前記擬似外部入力線のビットの論理値が該対象未指定ビットに現れるように前記外部入力線の未指定ビットに０あるいは１が決定される第１の正当化操作工程と、
前記第１の正当化操作工程が失敗した場合のみ該対象未指定ビットが対応する前記擬似外部入力線のビットの論理値の反対値が該対象未指定ビットに現れるように前記外部入力線の未指定ビットに０あるいは１が決定される第２の正当化操作工程と、
前記第１の正当化操作工程の成功後あるいは該第１の正当化操作工程の失敗後の前記第２の正当化操作工程の後に論理シミュレーションを行うことにより前記外部出力線及び前記擬似外部出力線に存在する一部もしくは全部の未指定ビットに０あるいは１が決定される論理シミュレーション工程と
を具備し、
前記論理シミュレーション工程の後にケースタイプ判別工程に戻る請求項２に記載の半導体論理回路装置のテスト方法。
【請求項６】
前記変換工程は、
前記ケースタイプ判別工程で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ４と判別された場合に、前記擬似外部入力線のビットｐｐｉ及び該ビットｐｐｉに対応する前記擬似外部出力線のビットｐｐｏからなるビットペア＜ｐｐｉ、ｐｐｏ＞の状態を判別し、この結果、ｐｐｉ＝０あるいは１、ｐｐｏ＝０あるいは１ならばタイプＡのビットペアとし、ｐｐｉ＝未指定ビット、ｐｐｏ＝０あるいは１ならばタイプＢのビットペアとし、ｐｐｉ＝０あるいは１、ｐｐｏ＝未指定ビットならばタイプＣのビットペアとし、ｐｐｉ＝未指定ビット，ｐｐｏ＝未指定ビットならばタイプＤのビットペアとするビットペアタイプ判別工程と、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットにおいて前記タイプＢのビットペアの数が０でない場合に、すべてのタイプＢのビットペアの入力線側ビットｐｐｉに、そのビットが対応する出力線側ビットｐｐｏの論理値を割当てる割当操作工程と、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットにおいて前記タイプＢのビットペアの数が０でありかつ前記タイプＣのビットペアの数が０でない場合に、タイプＣのビットペアの１つを対象ビットペアとして選択し、該対象ビットペアの出力線側ビットｐｐｏに対応する該対象ビットペアの入力線側ビットｐｐｉの論理値が該対象ビットペアの出力線側ビットｐｐｏに現れるように前記外部入力線及び前記擬似外部入力線の未指定ビットに０あるいは１を決定する第１の正当化操作工程と、
該第１の正当化操作工程が失敗した場合のみ該対象ビットペアの出力線側ビットｐｐｏに対応する該対象ビットペアの入力線側ビットｐｐｉの論理値の反対値が該対象ビットペアの出力線側ビットｐｐｏに現れるように前記外部入力線及び前記擬似外部入力線の未指定ビットに０あるいは１が決定される第２の正当化操作工程と、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットにおいて前記タイプＢのビットペアと前記タイプＣのビットペアが存在せず前記タイプＤのビットペアが存在する場合に、該タイプＤのビットペアの１つを対象ビットペアとして選択し該対象ビットペアの入力線側ビットｐｐｉと該対象ビットペアの出力線側ビットｐｐｏに同一論理値が現れるように該対象ビットペアの入力線側ビットｐｐｉに論理値の割当てると共に、該対象ビットペアの出力線側ビットｐｐｏに論理値の正当化を行い、前記外部入力線や前記擬似外部入力線の未指定ビットに０あるいは１が決定される第１の割当／正当化操作工程と、
該第１の割当／正当化操作工程が失敗した場合のみ、該対象ビットペアの入力線側ビットｐｐｉと該対象ビットペアの出力線側ビットｐｐｏに異なる論理値が現れるように該対象ビットペアの入力線側ビットｐｐｉに論理値の割当てると共に、該対象ビットペアの出力線側ビットｐｐｏに論理値の正当化を行い、前記外部入力線及び前記擬似外部入力線の未指定ビットに０あるいは１が決定される第２の割当／正当化操作工程と、
前記割当操作工程、前記正当化操作工程、前記第１もしくは第２の割当／正当化操作工程の後に論理シミュレーションを行うことにより前記外部出力線及び前記擬似外部出力線に存在する一部もしくは全部の未指定ビットに０あるいは１が決定される論理シミュレーション工程と
を具備し、
前記論理シミュレーション工程の後にケースタイプ判別工程に戻る請求項２に記載の半導体論理回路装置のテスト方法。
【請求項７】
外部入力線（ＰＩ）、擬似外部入力線（ＰＰＩ）、外部出力線（ＰＯ）、擬似外部出力線（ＰＰＯ）を有する組合せ部分（１１）と、
前記擬似外部出力線と前記擬似外部入力線との間に接続された複数のスキャンフリップフロップ（１２−１，１２−２，…，１２−ｎ）と
を具備する前記スキャンフリップフロップをシフトレジスタとして直列接続して少なくとも１本のスキャンチェーン（ＳＣ）を確立するようにした半導体論理回路装置のテストプログラムにおいて、
前記外部入力線及び前記擬似外部入力線において未指定ビット（Ｘ）を含むテストキューブに対して、前記擬似外部入力線のビットと前記擬似外部出力線のビットとの対応ビット間の不一致数が少なくなるように前記未指定ビットに０あるいは１を埋込むことにより前記テストキューブを未指定ビットを含まないテストベクトルに変換する変換処理
をコンピュータに実行させるための半導体論理回路装置のテストプログラム。
【請求項８】
前記変換処理は、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態を判別し、この結果、前記擬似外部入力線にも前記擬似外部出力線にも未指定ビットが存在しない状態をケースタイプ１とし、前記擬似外部入力線に少なくとも１つの未指定ビットが存在しかつ前記擬似外部出力線に未指定ビットが存在しない状態をケースタイプ２とし、前記擬似外部入力線に未指定ビットが存在せずかつ前記擬似外部出力線に少なくとも１つの未指定ビットが存在する状態をケースタイプ３とし、前記擬似外部入力線に少なくとも１つの未指定ビットが存在しかつ前記擬似外部出力線に少なくとも１つの未指定ビットが存在する状態をケースタイプ４とするケースタイプ判別処理
を具備する請求項７に記載の半導体論理回路装置のテストプログラム。
【請求項９】
前記変換処理は、
前記ケースタイプ判別処理で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ１と判別された場合に、前記外部入力線のすべての未指定ビットに０あるいは１を埋め込む０／１埋込み処理を具備し、
前記０／１埋込み処理の後に前記変換処理が終了する請求項８に記載の半導体論理回路装置のテストプログラム。
【請求項１０】
前記変換処理は、
前記ケースタイプ判別処理で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ２と判別された場合に前記擬似外部入力線のすべての未指定ビットに該未指定ビットが対応する前記擬似外部出力線のビットの論理値を割当てる割当操作処理と、
該割当操作処理の後に論理シミュレーションを行うことにより前記外部出力線及び前記擬似外部出力線に存在する全部の未指定ビットに０あるいは１が決定される論理シミュレーション処理と
を具備し、
前記論理シミュレーション処理の後にケースタイプ判別処理に戻る請求項８に記載の半導体論理回路装置のテストプログラム。
【請求項１１】
前記変換処理は、
前記ケースタイプ判別処理で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ３と判別された場合に前記擬似外部出力線の未指定ビットの１つを対象未指定ビットとして選択し該対象未指定ビットが対応する前記擬似外部入力線のビットの論理値が該対象未指定ビットに現れるように前記外部入力線の未指定ビットに０あるいは１が決定される第１の正当化操作処理と、
前記第１の正当化操作処理が失敗した場合のみ該対象未指定ビットが対応する前記擬似外部入力線のビットの論理値の反対値が該対象未指定ビットに現れるように前記外部入力線の未指定ビットに０あるいは１が決定される第２の正当化操作処理と、
前記第１の正当化操作処理の成功後あるいは該第１の正当化操作処理の失敗後の前記第２の正当化操作処理の後に論理シミュレーションを行うことにより前記外部出力線及び前記擬似外部出力線に存在する一部もしくは全部の未指定ビットに０あるいは１が決定される論理シミュレーション処理と
を具備し、
前記論理シミュレーション処理の後にケースタイプ判別処理に戻る請求項８に記載の半導体論理回路装置のテストプログラム。
【請求項１２】
前記変換処理は、
前記ケースタイプ判別処理で前記擬似外部入力線のビット及び前記擬似外部出力線のビットの状態がケースタイプ４と判別された場合に、前記擬似外部入力線のビットｐｐｉ及び該ビットｐｐｉに対応する前記擬似外部出力線のビットｐｐｏからなるビットペア＜ｐｐｉ、ｐｐｏ＞の状態を判別し、この結果、ｐｐｉ＝０あるいは１、ｐｐｏ＝０あるいは１ならばタイプＡのビットペアとし、ｐｐｉ＝未指定ビット、ｐｐｏ＝０あるいは１ならばタイプＢのビットペアとし、ｐｐｉ＝０あるいは１、ｐｐｏ＝未指定ビットならばタイプＣのビットペアとし、ｐｐｉ＝未指定ビット，ｐｐｏ＝未指定ビットならばタイプＤのビットペアとするビットペアタイプ判別処理と、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットにおいて前記タイプＢのビットペアの数が０でない場合に、すべてのタイプＢのビットペアの入力線側ビットｐｐｉに、そのビットが対応する出力線側ビットｐｐｏの論理値を割当てる割当操作処理と、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットにおいて前記タイプＢのビットペアの数が０でありかつ前記タイプＣのビットペアの数が０でない場合に、タイプＣのビットペアの１つを対象ビットペアとして選択し、該対象ビットペアの出力線側ビットｐｐｏに対応する該対象ビットペアの入力線側ビットｐｐｉの論理値が該対象ビットペアの出力線側ビットｐｐｏに現れるように前記外部入力線及び前記擬似外部入力線の未指定ビットに０あるいは１を決定する第１の正当化操作処理と、
該第１の正当化操作処理が失敗した場合のみ該対象ビットペアの出力線側ビットｐｐｏに対応する該対象ビットペアの入力線側ビットｐｐｉの論理値の反対値が該対象ビットペアの出力線側ビットｐｐｏに現れるように前記外部入力線及び前記擬似外部入力線の未指定ビットに０あるいは１が決定される第２の正当化操作処理と、
前記擬似外部入力線のビット及び前記擬似外部出力線のビットにおいて前記タイプＢのビットペアと前記タイプＣのビットペアが存在せず前記タイプＤのビットペアが存在する場合に、該タイプＤのビットペアの１つを対象ビットペアとして選択し該対象ビットペアの入力線側ビットｐｐｉと該対象ビットペアの出力線側ビットｐｐｏに同一論理値が現れるように該対象ビットペアの入力線側ビットｐｐｉに論理値の割当てると共に、該対象ビットペアの出力線側ビットｐｐｏに論理値の正当化を行い、前記外部入力線や前記擬似外部入力線の未指定ビットに０あるいは１が決定される第１の割当／正当化操作処理と、
該第１の割当／正当化操作処理が失敗した場合のみ、該対象ビットペアの入力線側ビットｐｐｉと該対象ビットペアの出力線側ビットｐｐｏに異なる論理値が現れるように該対象ビットペアの入力線側ビットｐｐｉに論理値の割当てると共に、該対象ビットペアの出力線側ビットｐｐｏに論理値の正当化を行い、前記外部入力線及び前記擬似外部入力線の未指定ビットに０あるいは１が決定される第２の割当／正当化操作処理と、
前記割当操作処理、前記正当化操作処理、前記第１もしくは第２の割当／正当化操作処理の後に論理シミュレーションを行うことにより前記外部出力線及び前記擬似外部出力線に存在する一部もしくは全部の未指定ビットに０あるいは１が決定される論理シミュレーション処理と
を具備し、
前記論理シミュレーション処理の後にケースタイプ判別処理に戻る請求項８に記載の半導体論理回路装置のテストプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体論理回路装置のテスト方法及びテストプログラムに関する。
【背景技術】
【０００２】
半導体論理回路装置は、設計、製造、テストの三段階を経て出荷される。ここで、テストとは、製造された半導体論理回路装置に対してテストベクトルを印加し、半導体論理回路装置よりテスト応答を観測し、それを期待テスト応答と比較して良品、不良品の判別を行う。その良品率を歩留りと呼び、歩留りは半導体論理回路装置の品質、信頼性及び製造コストを大きく左右する。【０００３】
一般に、半導体論理回路装置（主に順序回路）は、アンド（ＡＮＤ）ゲート、ナンド（ＮＡＮＤ）ゲート、オア（ＯＲ）ゲート、ノア（ＮＯＲ）ゲート等の論理素子からなる組合せ部分と、回路の内部状態を記憶するフリップフロップとよりなる。この場合、組合せ部分は、外部入力線（ＰＩ）、フリップフロップの出力線である擬似外部入力線（ＰＰＩ）、外部出力線（ＰＯ）、フリップフロップの入力線である擬似外部出力線（ＰＰＯ）を有する。組合せ部分への入力は、外部入力線より直接与えられるものと、擬似外部入力線を介して与えられるものからなる。また、組合せ部分からの出力は、外部出力線に直接現れるものと、擬似外部出力線に現れるものからなる。【０００４】
半導体論理回路装置の組合せ部分をテストするために、組合せ部分の外部入力線と擬似外部入力線から所要のテストベクトルを印加し、組合せ部分の外部出力線と擬似外部出力線からテスト応答を観測する必要がある。１つのテストベクトルは、外部入力線と擬似外部入力線に対応するビットからなる。また、１つのテスト応答は、外部出力線と擬似外部出力線に対応するビットからなる。【０００５】
しかし、半導体論理回路装置のフリップフロップの出力線（擬似外部入力線）と入力線（擬似外部出力線）は一般に外部より直接アクセスできない。従って、組合せ部分をテストするためには、擬似外部入力線の可制御性及び擬似外部出力線の可観測性に問題がある。【０００６】
上述の組合せ部分のテストにおける可制御性及び可観測性の問題を解決する主な手法として、スキャン設計がある。スキャン設計とは、フリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本または複数本のスキャンチェーンを形成することである。スキャンフリップフロップの動作はスキャンイネーブル（ＳＥ）信号で制御される。例えば、スキャンイネーブル信号（ＳＥ）が論理値０のとき、通常のフリップフロップと同じ動作をし、この結果、クロックパルスが与えられると、組合せ部分からの値でスキャンフリップフロップの出力値が更新される。他方、スキャンイネーブル信号（ＳＥ）が論理値１のとき、同じスキャンチェーンにある他のスキャンフリップフロップと１つのシフトレジスタを形成し、この結果、クロックパルスが与えられると、外部から新しい値がスキャンフリップフロップにシフトインされると同時に、スキャンフリップフロップに存在していた値が外部へシフトアウトされる。一般に、同じスキャンチェーンにあるスキャンフリップフロップは同一のスキャンイネーブル（ＳＥ）信号を共有するが、異なるスキャンチェーンのスキャンイネーブル（ＳＥ）信号は同一の場合もあれば異なる場合もある。【０００７】
スキャン設計された半導体論理回路装置の組合せ部分のテストはシフト動作とキャプチャ動作を繰り返すことによって行われる。シフト動作は、スキャンイネーブル（ＳＥ）信号が論理値１にされているシフトモードで行われる。シフトモードにおいては、１つまたは複数のクロックパルスが与えられ、この結果、外部から１つまたは複数の新しい値がスキャンチェーン内のスキャンフリップフロップにシフトインされる。また、それと同時に、そのスキャンチェーン内のスキャンフリップフロップに存在していた１つまたは複数の値が外部へシフトアウトされる。キャプチャ動作は、スキャンイネーブル（ＳＥ）信号が論理値０にされているキャプチャモードで行われる。キャプチャモードにおいては、１つのスキャンチェーンにあるすべてのスキャンフリップフロップに同時に１つのクロックパルスが与えられ、この結果、組合せ部分の擬似外部出力線の値がすべてのスキャンフリップフロップに取り込まれる。【０００８】
シフト動作は、擬似外部入力線を介して組合せ部分へテストベクトルを印加するためと、擬似外部出力線を介して組合せ部分からテスト応答を観測するために用いられる。また、キャプチャ動作は、組合せ部分のテスト応答をスキャンフリップフロップに取り込むために用いられる。すべてのテストベクトルに対して、シフト動作とキャプチャ動作を繰り返すことによって、組合せ部分をテストすることができる。このようなテスト方式はスキャンテスト方式という。【０００９】
スキャンテスト方式では、組合せ部分へのテストベクトルの印加は、外部入力から直接行われる部分と、シフト操作によって行われる部分とがある。シフト操作によって、任意の論理値を任意のスキャンフリップフロップに設定することができるので、擬似外部入力線の可制御性の問題が解決される。組合せ部分からのテスト応答の観測は、外部出力線から直接行われる部分と、シフト操作によって行われる部分とがある。シフト操作によって、任意のスキャンフリップフロップの出力値を観測することができるため、擬似外部入力線の可観測性の問題が解決される。このように、スキャンテスト方式においては、組合せ部分に対して自動テストパターン生成（ＡＴＰＧ）プログラムを用いてテストベクトル及び期待テスト応答を求めるだけで十分である。
【００１０】
上述のスキャンテスト方式が有効性を有しているにもかかわらず、通常動作時よりテスト時の消費電力が非常に大きいという問題点が存在する。たとえば、半導体論理回路装置がＣＭＯＳ回路で構成されていれば、消費電力としては、漏れ電流による静的消費電力と、論理ゲートやフリップフロップのスイッチング動作による動的消費電力とがある。さらに、後者の動的消費電力は、シフト操作時におけるシフト消費電力と、キャプチャ動作時におけるキャプチャ消費電力とがある。【００１１】
１つのテストベクトルに対して、シフト操作時の与えられるクロックパルスの数は一般に多い。例えば、あるスキャンチェーン内のすべてのスキャンフリップフロップに新しい値を設定するために、最大の場合にスキャンフリップフロップ個数分のクロックパルスを与える必要がある。このため、シフト消費電力が大きくなり、過度な発熱を引き起こすことがある。それによって、半導体論理回路装置を損壊する恐れがある。シフト消費電力の低減手法が盛んに研究されている。【００１２】
一方、１つのテストベクトルに対して、キャプチャ動作時の必要なクロックパルスの数は一般に１つのスキャンチェーンにつき１つである。そのため、キャプチャ消費電力による発熱は問題にならない。しかし、キャプチャモードにおいて、擬似外部出力線に現れる組合せ部分のテスト応答がスキャンフリップフロップに取り込まれるとき、テスト応答値とスキャンフリップフロップの現在値が異なれば、対応するスキャンフリップフロップの出力値が変化する。このような出力変化スキャンフリップフロップの数が多ければ、論理ゲートとスキャンフリップフロップのスイッチング動作によって、電源電圧が一時的に低下する。この現象はＩＲ（Ｉ：電流、Ｒ：抵抗）ドロップ現象とも呼ばれる。ＩＲドロップ現象により回路が誤動作し、誤ったテスト応答値がスキャンフリップフロップに取り込まれることがある。これによって、通常時には正常に動作できる半導体論理回路装置は、テスト時に不良品として判定されてしまうという誤テストが発生する。その結果として、歩留りが低下する。特に、半導体論理回路装置が超大規模化、超微細化、低電源電圧化した場合、誤テストによる歩留り低下は顕著である。従って、キャプチャ消費電力の低減が必要である。【００１３】
テスト時に単一クロック信号を用いる場合には、クロックゲーティング手法を用いてキャプチャ消費電力を削減することができるが、半導体論理回路装置の物理設計への影響が大きい。また、テスト時に多重クロック信号を用いる場合には、ワンホット手法もしくは多重クロック手法でキャプチャ消費電力を削減することができるが、前者はテストデータ量が著しく増大し、後者はテストベクトル生成に膨大なメモリ消費が必要になるなどＡＴＰＧプログラムへの負担が大きい。従って、キャプチャ消費電力の低減においては、物理設計への影響、テストデータ量の増加、及びＡＴＰＧプログラムへの負担が小さい手法が望ましい。
【００１４】
他方、未指定ビット（以下、Ｘビットとも言う）を有する入力ベクトルであるテストキューブはＡＴＰＧプログラムによるテストベクトルの生成過程で現れることが多い。また、Ｘビットを有しないテストベクトルの集合が与えられる場合、その集合の故障検出率を変えずに、一部のテストベクトルの一部ビットをＸビットに変換することができる。つまり、Ｘビット抽出プログラムによってテストキューブを得ることもできる。テストキューブが存在する原因は、組合せ部分内の１つの対象故障を検出するために、外部入力線と擬似外部入力線における一部のビットに必要な論理値を設定すれば十分であることが多いからである。その残りのビットに０を設定しても１を設定しても、その対象故障の検出に影響を与えないため、そのようなビットはその対象故障にとってＸビットになる。【００１５】
Ｘビットを有するテストキューブはあくまでＸビットを有しないテストベクトルを生成する過程で現れる中間物である。このため、テストキューブのＸビットに最終的には論理値（０または１）を何らかの方法で埋め込む必要があり、その方法としては、アルゴリズム埋め込み方法、マージ埋め込み方法、ランダム埋め込み方法がある。【００１６】
アルゴリズム埋め込み方法では、テストキューブ中のＸビットにある目的に最適な論理値（０または１）をアルゴリズムによって決定して埋め込む。このようなアルゴリズムはＡＴＰＧプログラムに実装されていることが多い。アルゴリズム埋め込み方法は動的圧縮と呼ばれるテストベクトルの総数の低減動作（参照：非特許文献１、２）あるいはシフト消費電力の低減動作（参照：非特許文献３）のために用いられる。【００１７】
マージ埋め込み方法では、あるテストキューブを他のテストキューブとマージすることを前提として、両テストキューブの対応ビットが同じ論理値となるように、Ｘビットに０あるいは１を埋め込む。例えば、テストキューブ１Ｘ０とテストキューブ１１Ｘをマージするために、テストキューブ１Ｘ０のＸビットに１を埋め込み、テストキューブ１１ＸのＸビットに０を埋め込む。このマージ埋め込み方法は静的圧縮と呼ばれるテストベクトルの総数の低減動作（参照：非特許文献１）あるいはシフト消費電力の低減動作（参照：非特許文献４）のために用いられる。
【００１８】
ランダム埋め込み方法では、テストキューブにあるＸビットに０あるいは１をランダムに埋め込む。このランダム埋め込み方法は、アルゴリズム埋め込み方法あるいはマージ埋め込み方法を行った後に残存しているＸビットを対象に行われることが多い。このランダム埋め込み方法も動的圧縮と呼ばれるテストベクトルの総数の低減動作（参照：非特許文献１）あるいはシフト消費電力の低減動作（参照：非特許文献４）のために用いられる。
【００１９】
【非特許文献１】M. Abramovici, M. Breuer, and A. Friedman, Digital Systems Testing and Testable Design, Computer Science Press, pp.245-246,1990.
【非特許文献２】X. Lin, J. Rajski, I. Pomeranz, S. M. Reddy, “On Static Test Compaction and Test Pattern Ordering for Scan Designs”, Proc. Intl. Test Conf., pp. 1088-1097, 2001.
【非特許文献３】S. Kajihara, K. Ishida, and K. Miyase, “Test Vector Modification for Power Reduction during Scan Testing”, Proc. VLSI Test Symp., pp. 160-165, 2002.
【非特許文献４】R. Sankaralingam, R. Oruganti, and N. Touba, “Static Compaction Techniques to Control Scan Vector Power Dissipation”, Proc. VLSI Test Symp., pp. 35-40, 2000.
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、上述のテストキューブのＸビットに０あるいは１を埋め込むアルゴリズム埋め込み方法、マージ埋め込み方法及びランダム埋め込み方法のいずれも、テストベクトルの総数の低減もしくはシフト消費電力の低減を目的としており、キャプチャ消費電力の増大による誤テストを回避できず、この結果、半導体論理回路装置の歩留りが低下するという課題がある。【００２１】
そこで、本発明の目的は、キャプチャ動作時の出力変化スキャンフリップフロップの数を少なくすることによってキャプチャ消費電力を削減し、結果として誤テストを回避する半導体論理回路装置のテスト方法及びテストプログラムを提供することにある。
【課題を解決するための手段】
【００２２】
上述の目的を達成するために本発明は、外部入力線、擬似外部入力線、外部出力線及び擬似外部出力線を有する組合せ部分と、擬似外部出力線と擬似外部入力線との間に接続された、スキャンチェーンを形成しているスキャンフリップフロップとを具備する半導体論理回路装置のテスト方法において、１つのテストキューブに対し、擬似外部入力線と擬似外部出力線の対応ビットの論理値の不一致数が少なくなるようにテストキューブ内のＸビットに０あるいは１を埋込むことにより、Ｘビットを含むテストキューブをＸビットを含まないテストベクトルに変換するものである。
【発明の効果】
【００２３】
本発明によれば、キャプチャ動作時における出力変化スキャンフリップフロップの数が減少するので、キャプチャ消費電力を低減でき、従って、ＩＲドロップによる電源電圧低下に起因する誤テストを回避できる。
【図面の簡単な説明】
【００２４】
【図１】本発明に係る半導体論理回路装置の一実施の形態を示すブロック回路図である。
【図２】図１の半導体論理回路装置のテストのために、Ｘビットを含むテストキューブをＸビットを含まないテストベクトルへ変換する処理のフローチャートである。
【図３】図２のステップ２０２のケースタイプを示す表である。
【図４】図２のステップ２０２のケースタイプを示す図である。
【図５】図２のステップ２０５を説明する図である。
【図６】図２のステップ２０７、２０９を説明する図である。
【図７】図２のステップ２１０におけるビットペアタイプを説明する表である。
【図８】図２のステップ２１６、２１８を説明する図である。
【符号の説明】
【００２５】
１１：組合せ部分
１２−１，１２−２，…，１２−ｎ：スキャンフリップフロップ
ＰＩ：外部入力線
ＰＰＩ：擬似外部入力線
ＰＯ：外部出力線
ＰＰＯ：擬似外部出力線
ＳＣ：スキャンチェーン
【発明を実施するための最良の形態】
【００２６】
図１は本発明に係る半導体論理回路装置の一実施の形態を示すブロック回路図である。【００２７】
図１の半導体論理回路装置は、アンド（ＡＮＤ）ゲート、オア（ＯＲ）ゲート、ナンド（ＮＡＮＤ）ゲート、ノア（ＮＯＲ）ゲート等の論理素子よりなる組合せ部分１１、及びスキャンフリップフロップ１２−１，１２−２，…，１２−ｎよりなる。【００２８】
組合せ部分１１は、外部入力線ＰＩ、スキャンフリップフロップ１２−１，１２−２，…，１２−ｎの出力線である擬似外部入力線ＰＰＩ、外部出力線ＰＯ、及びスキャンフリップフロップ１２−１，１２−２，…，１２−ｎの入力線である擬似外部出力線ＰＰＯを有する。尚、外部入力線ＰＩのビット数と外部出力線ＰＯのビット数とは必ずしも同一ではないが、擬似外部入力線ＰＰＩのビット数と擬似外部出力線ＰＰＯのビット数とは必ず同一である。【００２９】
各スキャンフリップフロップ１２−１，１２−２，…，１２−ｎにおいて、第１の入力（下側入力）端子はシフトモードに用いられ、他方、第２の入力（上側入力）端子はキャプチャモードに用いられる。このため、スキャンフリップフロップ１２−１，１２−２，…，１２−ｎの第１の入力端子はスキャンイネーブル（ＳＥ）信号が論理値１のときに選択され、他方、第２の入力端子はスキャンイネーブル（ＳＥ）信号が論理値０のときに選択される。尚、スキャンフリップフロップ１２−１の第１の入力端子はスキャンイン端子ＳＩに接続され、スキャンフリップフロップ１２−ｎの出力端子はスキャンアウト端子ＳＯに接続されているが、本発明はこのようなスキャンチェーンが一本のみである場合に限定されるものではなく、スキャンチェーンが複数本ある場合にも適用できる。【００３０】
すなわち、シフトモードにおいては、ＳＥ信号が論理値１に設定され、この結果、スキャンフリップフロップ１２−１，１２−２，…，１２−ｎは下側入力端子からデータを読み込む。従って、スキャンイン端子ＳＩ、スキャンフリップフロップ１２−１、スキャンフリップフロップ１２−２、…、スキャンフリップフロップ１２−ｎ及びスキャンアウト端子ＳＯが接続され、スキャンイン端子ＳＩとスキャンアウト端子ＳＯの間にスキャンチェーンＳＣが確立する。このとき、スキャンフリップフロップ１２−１，１２−２，…，１２−ｎはクロックＣＬＫのクロックパルスによってシフトレジスタとして動作し、新しいテストベクトルのシフトインと前のテストベクトルに対応するテスト応答のシフトアウトが行われる。【００３１】
他方、キャプチャモードにおいては、ＳＥ信号が論理値０に設定され、この結果、クロックＣＬＫにクロックパルスが与えられると、組合せ部分１１の擬似外部出力線ＰＰＯにある論理値がスキャンフリップフロップ１２−１，１２−２，…，１２−ｎに一斉に取り込まれる。【００３２】
図１の半導体論理回路装置に対して、テストキューブ内のＸビットに０あるいは１を埋込むことにより、Ｘビットを含むテストキューブをＸビットを含まないテストベクトルに変換する過程を図２が示している。尚、テストキューブはＡＴＰＧプログラムまたはＸビット抽出プログラムによって生成されるものとする。ここで、テストキューブとは外部入力線ＰＩ及び擬似外部入力線ＰＰＩに対応する入力ベクトルでＸビットを含むものである。この場合、テストキューブの外部入力線ＰＩ及び擬似外部入力線ＰＰＩにＸビットを含む結果、テストキューブの外部出力線ＰＯ及び擬似外部出力線ＰＰＯにもＸビットを含むことになる。言い換えると、テストキューブの外部入力線ＰＩ及び擬似外部入力線ＰＰＩのＸビットがなくなれば、外部出力線ＰＯ及び擬似外部出力線ＰＰＯのＸビットも自動的になくなる。このように、図２のルーチンはＸビットを含むテストキューブをＸビットを含まないテストベクトルに変換する。【００３３】
始めに、ステップ２０１において、ＡＴＰＧプログラムまたはＸビット抽出プログラムによって得られた、Ｘビットを含むテストキューブが付与される。【００３４】
次に、ステップ２０２において、ケースタイプを判別する。ここで、ケースタイプは図３に示すごとく４通り存在する。すなわち、
ケースタイプ１：  図４の（Ａ）に示すごとく、擬似外部入力線ＰＰＩ及び擬似外部出力線ＰＰＯにＸビットが存在しない状態、
ケースタイプ２：  図４の（Ｂ）に示すごとく、擬似外部入力線ＰＰＩに少なくとも１つのＸビットが存在しかつ擬似外部出力線ＰＰＯにＸビットが存在しない状態、
ケースタイプ３：  図４の（Ｃ）に示すごとく、擬似外部入力線ＰＰＩにＸビットが存在せずかつ擬似外部出力線ＰＰＯに少なくとも１つのＸビットが存在する状態、
ケースタイプ４：  図４の（Ｄ）に示すごとく、擬似外部入力線ＰＰＩに少なくとも１つのＸビットが存在しかつ擬似外部出力線ＰＰＯに少なくとも１つのＸビットが存在する状態、
である。【００３５】
ケースタイプ１の場合、ステップ２０３に進む。ステップ２０３においては、出力変化スキャンフリップフロップの数を減少できないが、テストキューブであるので、図４の（Ａ）に示すごとく、外部入力線ＰＩにＸビットが必ず存在する。その結果、外部出力線ＰＯにもＸビットが存在する可能性がある。ステップ２０３においては、テストベクトルの数やシフト消費電力を削減するなどの目的に、外部入力線ＰＩのすべてのＸビットに０もしくは１を埋込む。この結果、ステップ２０４において、Ｘを含まないテストベクトルが得られる。【００３６】
ケースタイプ２の場合、ステップ２０５に進み、擬似外部入力線ＰＰＩのすべてのＸビットにそれぞれが対応する擬似外部出力線ＰＰＯのビットの論理値を割当てる。例えば、図５に示すごとく、擬似外部入力線ＰＰＩのＸビットaに対応する擬似外部出力線ＰＰＯのビットeの論理値０を割当て、また、擬似外部入力線ＰＰＩのＸビットcに対応する擬似外部出力線ＰＰＯのビットgの論理値１を割当てる。これにより、ビットaとビットeに対応するスキャンフリップフロップの出力もビットeとビットgに対応するスキャンフリップフロップの出力も、キャプチャ動作時において変化しないことになる。次いで、ステップ２１９に進む。
【００３７】
ケースタイプ３の場合、ステップ２０６に進み、対象Ｘビットを選択する。この場合、まず、擬似外部出力線ＰＰＯのＸビット数が１つか２つ以上かを判別する。Ｘビットが１つしかない場合、そのＸビットを対象Ｘビットとする。Ｘビットが２ビット以上ある場合、まずどのＸビットを処理するかを選択して、選択されたＸビットを対象Ｘビットとする。一般に、次のステップ２０７の第１の正当化操作の処理の成功率が高い順にＸビットを選択する。
【００３８】
次に、ステップ２０７においては、第１の正当化操作を行う。すなわち、図６の（Ａ）に示すように、対象Ｘビットに対応する擬似外部入力線ＰＰＩのビットの論理値Ｖ（たとえば１）が対象Ｘビットに現れるように、テストキューブ内のＸビットに必要な論理値を割当てる処理を行い、この結果、この割当てが成功した場合、ステップ２０８を介してステップ２１９に進む。
【００３９】
他方、上述の第１の正当化操作においては、必要な論理値の割当てができず失敗する場合がある。この第１の正当化操作が失敗した場合、ステップ２０８からステップ２０９に進み、第２の正当化操作を行う。すなわち、図６の（Ｂ）に示すように、論理値Ｖと反対の論理値Ｐ（たとえば０）が対象Ｘビットに現れるように、テストキューブ内のＸビットに必要な論理値を割当てる処理を行う。次いで、ステップ２１９に進む。
【００４０】
図６を簡単に説明する。図６では、擬似外部出力線ＰＰＯのＸビットgを対象Ｘビットとする。第１の正当化操作（図６の（Ａ））では、対象Ｘビットgに対応する擬似外部入力線ＰＰＩのビットcの論理値１が対象Ｘビットgに現れるように、テストキューブ内のＸビットaに論理値１を決定すればよいとする。この場合、テストキューブ内のＸビットaに論理値１を割当てる。他方、第２の正当化操作（図６の（Ｂ））では、対象Ｘビットgに対応する擬似外部入力線ＰＰＩのビットcの論理値１の反対値０が対象Ｘビットgに現れるように、テストキューブ内のＸビットaに論理値０を決定すればよいとする。この場合、テストキューブ内のＸビットaに論理値０を割当てる。
【００４１】
ケースタイプ４の場合、まず、ステップ２１０において、擬似外部入力線ＰＰＩ及び擬似外部出力線ＰＰＯの各ビットのペア（ｐｐｉ，ｐｐｏ）に着目し、次のごとく定義する図７に示すタイプＡ，Ｂ，Ｃ，Ｄを判別する。
タイプＡ：ｐｐｉ，ｐｐｏのいずれもＸビットではない状態、
タイプＢ：ｐｐｉがＸビットでありかつｐｐｏがＸビットでない状態、
タイプＣ：ｐｐｉがＸビットではなくかつｐｐｏがＸビットである状態、
タイプＤ：ｐｐｉもｐｐｏもＸビットである状態、
である。【００４２】
タイプＡのビットペアについては何ら処理を行わない。【００４３】
ステップ２１１において、タイプＢのビットペア数が０であるか否かを判別し、ステップ２１２において、タイプＣのビットペア数が０であるか否かを判別する。この結果、タイプＢのビットペアが存在するときには、ステップ２０５に進み、タイプＢのビットペアのすべてに対して割当操作を行ってから、ステップ２１９に進む。他方、タイプＢのビットペアがなくタイプＣのビットペアが存在するときには、ステップ２１３に進み、タイプＣのビットペアの１つを対象ビットペアに選択してそれに対してステップ２０７の第１の正当化操作、第１の正当化操作が失敗した場合にはステップ２０８からステップ２０９に進み、第２の正当化操作を行う。その後、ステップ２１９に進む。また、タイプＢのビットペアもタイプＣのビットペアも存在しないときには、ステップ２１４〜２１８に進む。【００４４】
ステップ２１４においては、タイプＤのビットペア数が０か否かを判別する。この結果、タイプＢ、タイプＣのビットペアは存在せずタイプＤのビットペアのみが存在するときには、ステップ２１５に進む。【００４５】
ステップ２１５では、まずタイプＤのビットペアの１つを対象ビットペアとして選択する。一般に、次のステップ２１６の第１の割当／正当化操作が成功する可能性の高いビットペアを対象ビットペアに選択する。【００４６】
ステップ２１６においては、サブ１操作、サブ２操作よりなる第１の割当／正当化操作を行う。たとえば、図８の（Ａ）に示すごとく、サブ１操作では、論理値Ｖ（たとえば０）を用い、サブ２操作ではその反対の論理値Ｐ（たとえば１）を用いる。まず、サブ１操作にて、対象ビットペアの擬似外部入力線におけるＸビットｐｐｉに論理値Ｖの割当てを行い、また、対象ビットペアの擬似外部出力線におけるＸビットｐｐｏに論理値Ｖが現れるように、テストキューブのＸビットに必要な論理値を決定する。このサブ１操作において、必要な論理値の設定ができず失敗する場合がある。このサブ１操作が失敗した場合、上記の処理を論理値Ｖから論理値Ｐに置換してサブ２操作を行う。【００４７】
上述のサブ１操作、サブ２操作からなる第１の割当／正当化操作が失敗した場合、ステップ２１７からステップ２１８に進み、サブ３操作、サブ４操作よりなる第２の割当／正当化操作を行う。たとえば、図８の（Ｂ）に示すごとく、サブ３操作では、対象ビットペアの擬似外部入力線におけるＸビットｐｐｉに論理値Ｖの割当てを行い、また、対象ビットペアの擬似外部出力線におけるＸビットｐｐｏに論理値Ｐが現れるように、テストキューブのＸビットに必要な論理値を決定する。このサブ３操作が失敗した場合、サブ４操作において、対象ビットペアの擬似外部入力線におけるＸビットｐｐｉに論理値Ｐの割当てを行い、また、対象ビットペアの擬似外部出力線におけるＸビットｐｐｏに論理値Ｖが現れるように、テストキューブのＸビットに必要な論理値を決定する処理を行う。
【００４８】
ステップ２１９では論理シミュレーションを行うことにより、外部出力線ＰＯ及び擬似外部出力線ＰＰＯに存在するＸビットの一部もしくは全部に論理値が決まる。その後、ステップ２０２に戻る。【００４９】
上述の図２はプログラムとして記憶媒体に記憶される。例えば、記憶媒体がＲＯＭ等の不揮発性メモリであれば予め組込まれ、記憶媒体がＲＡＭ等の揮発性メモリであれば必要に応じて書込まれる。
【図１】
0004752029.tif 000002
【図２】
0004752029.tif 000003
【図３】
0004752029.tif 000004
【図４】
0004752029.tif 000005
【図５】
0004752029.tif 000006
【図６】
0004752029.tif 000007
【図７】
0004752029.tif 000008
【図８】
0004752029.tif 000009