(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.
【非特許文献４】X. Wen, Y. Yamashita, S. Kajihara, L. Wang, K. K. Saluja, and K. Kinoshita, “On Low-Capture-Power Test Generation for Scan Testing,” Proc. VLSI Test Symp., pp. 265-270, 2005.
【非特許文献５】R. Sankaralingam, R. Oruganti, and N. Touba, “Static Compaction Techniques to Control Scan Vector Power Dissipation”, Proc. VLSI Test Symp., pp. 35-40, 2000.
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、上述のテストキューブのＸビットに０あるいは１を埋め込むアルゴリズム埋め込み方法、マージ埋め込み方法及びランダム埋め込み方法のいずれも、テストベクトルの総数の削減、シフト消費電力の削減もしくは単一キャプチャ消費電力の削減を目的としており、二重キャプチャ消費電力の増大による誤テストを回避できず、この結果、半導体論理回路装置の歩留りが低下するという課題がある。【００２４】
そこで、本発明の目的は、二重キャプチャ操作時の出力変化スキャンフリップフロップの数を少なくすることによって二重キャプチャ消費電力を削減し、結果としてＩＲドロップを低減させることによって誤テストを回避する半導体論理回路装置のテストベクトル生成方法及び半導体論理回路装置のテストベクトル生成プログラムを提供することにある。
【課題を解決するための手段】
【００２５】
上述の目的を達成するために本発明は、外部入力線、擬似外部入力線、外部出力線及び擬似外部出力線を有する組合せ部分と、擬似外部出力線と擬似外部入力線との間に接続されたスキャンチェーンを形成しているスキャンフリップフロップ群とを具備する半導体論理回路装置のテストベクトル生成方法において、  組合せ部分を仮想的に外部入力線を共通とする第１、第２の組合せ部分とし、スキャンフリップフロップ群を仮想的に第１、第２の組合せ部分に対して連続する第１、第２のキャプチャクロックパルスによって動作する第１、第２のスキャンフリップフロップ群とし、第１の組合せ部分の擬似外部出力線を第２の組合せ部分の擬似外部入力線とする。第１の埋込工程は第１の組合せ部分の擬似外部入力線と擬似外部出力線との対応ビット間の不一致数が少なくなるようにテストキューブのＸビットに０あるいは１を埋込む。第２の埋込工程は第２の組合せ部分の擬似外部入力線と擬似外部出力線との対応ビット間の不一致が少なくなるようにテストキューブのＸビットに０あるいは１を埋込む。不一致数均衡削減工程は第１の埋込工程の対応ビット間の不一致数と第２の埋込工程の対応ビット間の不一致数とが均衡的に少なくなるように第１、第２の埋込工程を選択かつ繰返して実行させる。また、第３の埋込工程は、第１の組合せ部分の擬似外部入力線、第１の組合せ部分の擬似外部出力線および第２の組合せ部分の擬似外部出力線にＸビットがない場合、テストキューブの残りのＸビットに０あるいは１を埋込む。これにより、テストキューブをＸビットを含まないテストベクトルに変換するものである。
【発明の効果】
【００２６】
本発明によれば、二重キャプチャ操作時における出力変化スキャンフリップフロップの数が減少するので、二重キャプチャ消費電力を削減でき、従って、ＩＲドロップによる電源電圧低下に起因する誤テストを回避できる。
【発明を実施するための最良の形態】
【００２７】
図１は本発明に係る半導体論理回路装置のテストベクトル生成の原理を示す回路展開図である。【００２８】
図１は、図１４の半導体論理回路装置を二重キャプチャパルスＣ１、Ｃ２により二重キャプチャ操作させた場合の消費電力の削減を説明するためのものである。従って、図１４の組合せ部分１１及びスキャンフリップフロップ群１２を仮想的に二重化させ、つまり組合せ部分１１と同一の組合せ部分１１１、１１２及びスキャンフリップフロップ群１２と同一のスキャンフリップフロップ群１２１、１２２を仮想的に設けてある。この場合、組
合せ部分１１１の外部入力線ＰＩ１を組合せ部分１１２の外部入力線とし、また、組合せ部分１１１の擬似外部出力線ＰＰＯ１を組合せ部分１１２の擬似外部入力線とする。さらに、スキャンフリップフロップ群１２１はキャプチャクロックパルスＣ１によりキャプチャ操作を行い、また、スキャンフリップフロップ群１２２はキャプチャクロックパルスＣ２によりキャプチャ操作を行う。【００２９】
図１においては、擬似外部入力線ＰＰＩ１の値と擬似外部出力線ＰＰＯ１の値の相違するビット数Ｎ１、及び擬似外部出力線ＰＰＯ１の値と擬似外部出力線ＰＰＯ２の値の相違するビット数Ｎ２を均衡的に少なくすることにより電源電圧ＶＤＤの低下を小さくし、この結果、実速度スキャンテストにおける誤テストを回避できる。具体的には、Ｎ１とＮ２の和（Ｎ１＋Ｎ２）とＮ１とＮ２の差の絶対値（｜Ｎ１−Ｎ２｜）の両方を小さくすることによりキャプチャパルスＣ１とキャプチャパルスＣ２におけるＩＲドロップを均衡的に小さくし、この結果、実速度スキャンテストにおける誤テストを効果的に回避できる。【００３０】
図２は図１のテストベクトル生成の原理を実現するテストベクトル生成プログラムを示すフローチャートである。【００３１】
図２のルーチンはＡＴＰＧプログラムまたはＸビット抽出プログラムによって得られた初期テストキューブが付与されることによってスタートする。この場合、初期テストキューブは初期故障と呼ばれる対象故障を検出するために生成されたものであり、そのＸビット数をＮＸ１とする。このＸビット数ＮＸ１中に二次故障と呼ばれる他の対象故障の検出に使用されたＸビット数をＮＸ２とすると、二次故障検出のためのＸビット使用率Ｘusageを
Ｘusage  ＝  （ＮＸ２／ＮＸ１）×１００％        ・・・・・・  （１）
で定義する。【００３２】
ステップ２０１では、Ｘビット使用率Ｘusageを０と初期化する。【００３３】
次に、ステップ２０２では、Ｘビット使用率Ｘusageを予め設定されたＸビット使用率Ｘusageの上限値Ｘｔｈ例えば２０％と比較する。つまり、
Ｘusage  ＜  Ｘｔｈ
か否かを判別する。この結果、Ｘusage  ＜  Ｘｔｈであればステップ２０３に進み、他方、Ｘusage  ≧  Ｘｔｈであればステップ２０６に進む。【００３４】
次に、ステップ２０３では、テストキューブによって他の二次故障を検出する見込みがあるか否かを判断する。この結果、検出見込みがあればステップ２０４に進み、他方、検出見込みがなければステップ２０６に進む。【００３５】
次に、ステップ２０４では、対象二次故障が検出されるようにテストキューブの未確定ビットに必要な０あるいは１を埋込む。【００３６】
次に、ステップ２０５では、式（１）を用いてＸビット使用率Ｘusageを更新する。【００３７】
ステップ２０２〜２０５の処理を繰返し、Ｘusage  ≧  Ｘｔｈもしくは二次故障を検出する検出込みがなくなったとき、ステップ２０６に進む。【００３８】
ステップ２０６では、残存したＸビットを含むテストキューブに対して二重キャプチャ低電力消費の埋込み処理を行う。ステップ２０６の詳細なフローを図３に示す。【００３９】
ステップ３０１では、各ビット順列（ｐｐｉ１，ｐｐｏ１，ｐｐｏ２）のＸタイプを判別する。ここで、ｐｐｉ１は図１の組合せ部分１１１の擬似外部入力線ＰＰＩの１つのビット、ｐｐｏ１は図１の組合せ部分１１１の擬似外部出力線ＰＰＯ１の対応ビット、ｐｐｏ２は図１の組合せ部分１１２の擬似外部出力線ＰＰＯ２の対応ビットである。
【００４０】
図４に示すように、上述のビット順列のＸタイプとしてはＸタイプ１〜８存在する。ここで、Ｘタイプ１はＸビットを含まず、Ｘタイプ２〜４は１つのＸビットを含み、Ｘタイプ５〜７は２つのＸビットを含み、Ｘタイプ８は３つのＸビットを含む。【００４１】
次に、ステップ３０２では、すべてのビット順列がＸタイプ１のみか否かを判別する。Ｘタイプ１のみであれば、ステップ３０８、３０９に進む。他方、Ｘタイプ１以外のＸタイプのビット順列があればステップ３０３に進む。【００４２】
ステップ３０３では、対象キャプチャクロックパルスＣ１，Ｃ２に対する総キャプチャ状態変化数ＴＥＣＴＡ１、ＴＥＣＴＡ２を計算する。つまり、
ＴＥＣＴＡ１  ＝  ＥＣＴ１  ＋  ＰＣＴ１  ・  ｋ
但し、ＥＣＴ１（Existing Capture Transition）は第１の組合せ部分１１１の擬似外部入力線ＰＰＩ１のビットの論理値と第１の組合せ部分１１１の擬似外部出力線ＰＰＯ１の対応ビットの論理値とが不一致であるビット対の数、ＰＣＴ１（Potential Capture Transition）は第１の組合せ部分１１１の擬似外部入力線ＰＰＩ１のビットと第１の組合せ部分１１１の擬似外部出力線ＰＰＯ１の対応ビットの少なくとも一方が未確定値であるビット対の数、またｋはウェイト係数である。例えば、０.５をｋの値とすることができる。
また、
ＴＥＣＴＡ２  ＝  ＥＣＴ２  ＋  ＰＣＴ２  ・  ｋ
但し、ＥＣＴ２（Existing Capture Transition）は第２の組合せ部分１１２の擬似外部入力線ＰＰＯ１のビットの論理値と第２の組合せ部分１１２の擬似外部出力線ＰＰＯ２の対応ビットの論理値とが不一致であるビット対の数、ＰＣＴ２（Potential Capture Transition）は第２の組合せ部分１１２の擬似外部入力線ＰＰＯ１のビットと第２の組合せ部分１１２の擬似外部出力線ＰＰＯ２の対応ビットの少なくとも一方が未確定値であるビット対の数、ｋはウェイト係数である。例えば、０.５をｋの値とすることができる。
【００４３】
図５は総キャプチャ状態変化数ＴＥＣＴＡ１、ＴＥＣＴＡ２の計算例を示す図である。図５の例では、ＴＥＣＴＡ１＝２．５、ＴＥＣＴＡ２＝２．０となり、ＴＥＣＴＡ１  ＞
ＴＥＣＴＡ２となる。【００４４】
次に、ステップ３０４では、総キャプチャ状態変化数ＴＥＣＴＡ１、ＴＥＣＴＡ２を比較する。この結果、ＴＥＣＴＡ１  ＞  ＴＥＣＴＡ２であればステップ３０５に進み、他方、ＴＥＣＴＡ１  ≦  ＴＥＣＴＡ２であればステップ３０６に進む。尚、ステップ３０４ではＴＥＣＴＡ１ ≧ ＴＥＣＴＡ２であってもよい。【００４５】
ステップ３０５では、第１のＸ埋込処理を行う。また、ステップ３０６では、第２のＸ埋込処理を行う。【００４６】
ステップ３０３〜３０６により、低電力消費の埋込み処理を対象キャプチャクロックパルスＣ１，Ｃ２について均衡的に行う。【００４７】
ステップ３０７では論理シミュレーションを行うことにより、外部出力線ＰＯ及び擬似外部出力線ＰＰＯに存在するＸビットの一部もしくは全部に論理値が決まる。その後、ステップ３０１に戻る。【００４８】
ステップ３０８においては、出力変化スキャンフリップフロップの数を削減できないが、テストキューブであれば、外部入力線ＰＩにＸビットが存在する。このため、テストベクトルの数やシフト消費電力を削減するなどの目的に、外部入力線ＰＩのすべてのＸビットに０もしくは１を埋込む第３のＸ埋込処理を行う。この結果、ステップ３０９において、Ｘを含まないテストベクトルが得られる。
【００４９】
図３のステップ３０５の第１のＸ埋込み処理の詳細を図６により説明する。【００５０】
始めに、ステップ６０１では、割当型Ｘタイプのビット順列が存在するか否かを判別する。ここで、対象キャプチャクロックパルスＣ１に対する割当型ＸタイプはＸタイプ２，６である。割当型Ｘタイプのビット順列が少なくとも１つ存在するときにはステップ６０２に進み、割当型Ｘタイプのビット順列が存在しないときにはステップ６０３に進む。【００５１】
ステップ６０２では、割当型Ｘタイプの一個または複数個のビット順列を選択し、該ビット順列のＸビットｐｐｉ１にそれぞれ擬似外部出力線ＰＰＯ１の対応ビットの論理値を割当てる。例えば、図７に示すごとく、擬似外部入力線ＰＰＩ１のＸビットa5に擬似外部出力線ＰＰＯ１の対応ビットb4の論理値１を割当てる。割当操作は必ず成功する。これにより、ビットa5とビットb4に対応するスキャンフリップフロップの出力も、キャプチャ操作時において変化しないことになる。その結果、キャプチャ消費電力が低減する。そして、図３のステップ３０７に進む。
【００５２】
ステップ６０３では、Ｘタイプ３、５、７および８の各ビット順列に対して正当化容易度（ＪＥ）を計算する。そして、正当化容易度ＪＥが最大値であるビット順列を正当化操作の成功率が高いとみなして対象ビット順列として選択する。【００５３】
正当化容易度ＪＥは図８の（Ａ）に示すごとく定義する。ここで、Ｓはある目標論理値の正当化が必要な、Ｘビットを持つ信号線である。また、Ｓ１，Ｓ２，…，Ｓｍは信号線Ｓから到達できる図１の組合せ部分１１１、１１２の外部入力線ＰＩ１及び組合せ部分１１１の擬似外部入力線ＰＰＩ１とする。正当化容易度ＪＥは、Ｓ１，Ｓ２，…，ＳｍのＳへの平均到達容易度を表す。図８の(Ａ)において、
Ｌは図１の組合せ部分１１１と図１の組合せ部分１１２を含む全回路の最大論理レベル、
ＬＳは信号線Ｓの論理レベル、
ＬＳｉは入力線Ｓiの論理レベル
を示す。尚、論理レベルは、図８の（Ｂ）の例に示すように定義する。すなわち、
１）図１の組合せ部分１１１の外部出力信号線ＰＯ１、図１の組合せ部分１１２の外部出力信号線ＰＯ２および図１の組合せ部分１１２の擬似外部出力線ＰＰＯ２の論理レベルを１とする。
２）あるゲートの出力の論理レベルをＬｇとすると、そのゲートの入力の論理レベルをＬｇ＋１とする。
３）ゲートのファンアウト信号線の論理レベルをＬ１，Ｌ２，…, Ｌpとすれば、そのゲートの出力（ファンアウトの幹）の論理レベルはＬ１，Ｌ２，…, Ｌpの最大値とする。
例えば、図８の（Ｂ）における信号線８０１の正当化容易度ＪＥ（８０１）は、
ＪＥ（８０１）＝（４−｜１−３｜）／４＋（４−｜１−４｜）／４
＝２／４＋１／４
＝０．７５
となる。また、図８の（Ｂ）における信号線８０２の正当化容易度ＪＥ（８０２）は、
ＪＥ（８０２）＝（４−｜１−４｜）／４
＝１／４
＝０．２５
となる。従って、ある信号線に対して、到達可能なテストキューブ中Ｘビット数が多い程、また、それらとの論理レベル差が小さい程、その信号線の正当化容易度ＪＥは大きくなる。
【００５４】
ステップ６０４では、選択された対象ビット順列が正当化操作のみを必要とする正当化型（Ｘタイプ３，５）か割当操作及び正当化操作の両方を必要とする割当／正当化型（Ｘタイプ７，８）かを判別する。この結果、正当化型であればステップ６０５〜６０７に進み、他方、割当／正当化型であればステップ６０８〜６１４に進む。【００５５】
ステップ６０５〜６０７について説明する。【００５６】
ステップ６０５においては、第１の正当化操作を行う。すなわち、図９の（Ａ）に示すように、Ｘタイプ３もしくは５の対象ビット順列の第２のビット（この例では、b3）に該対象ビット順列の第１のビット（この例では、a4）の論理値（この例では、０）が現れるように、テストキューブ内のＸビットに必要な論理値を決定する処理を行い、ステップ６０６に進む。【００５７】
ステップ６０６では、第１の正当化操作が失敗したか否かを判別する。つまり、必要な論理値の決定ができず失敗した場合、ステップ６０６からステップ６０７に進み、第２の正当化操作を行う。すなわち、図９の（Ｂ）に示すように、Ｘタイプ３もしくは５の対象ビット順列の第２のビット（この例では、b3）に該対象ビット順列の第１のビット（この例では、a4）の論理値（この例では、０）と反対の論理値（この例では、１）が現れるように、テストキューブ内のＸビットに必要な論理値を決定する処理を行う。【００５８】
ステップ６０６において第１の正当化操作が成功したと判別されたとき、あるいはステップ６０７において第２の正当化操作が終了したときには図３のステップ３０７に進む。【００５９】
次に、ステップ６０８〜６１４について説明する。【００６０】
ステップ６０８においては、第１の割当／正当化操作を行う。すなわち、図１０の（Ａ）に示すごとく、Ｘタイプ７もしくは８の対象ビット順列の第１のビット（この例では、a6）に論理値０の割当てを行い、また、該対象ビット順列の第２のビット（この例では、b5）に論理値０が現れるように、テストキューブのＸビットに必要な論理値を決定する。ステップ６０９では、第１の割当／正当化操作が失敗したか否かを判別する。この操作が失敗した場合、ステップ６０９からステップ６１０に進む。【００６１】
ステップ６１０においては、第２の割当／正当化操作を行う。すなわち、図１０の（Ｂ）に示すごとく、Ｘタイプ７もしくは８の対象ビット順列の第１のビット（この例では、a6）に論理値１の割当てを行い、また、該対象ビット順列の第２のビット（この例では、b5）に論理値１が現れるように、テストキューブのＸビットに必要な論理値を決定する。ステップ６１１では、第２の割当／正当化操作が失敗したか否かを判別する。この操作が失敗した場合、ステップ６１１からステップ６１２に進む。【００６２】
ステップ６１２においては、第３の割当／正当化操作を行う。すなわち、図１１の（Ａ）に示すごとく、Ｘタイプ７もしくは８の対象ビット順列の第１のビット（この例では、a6）に論理値０の割当てを行い、また、該対象ビット順列の第２のビット（この例では、b5）に論理値１が現れるように、テストキューブのＸビットに必要な論理値を決定する。ステップ６１３では、第３の割当／正当化操作が失敗したか否かを判別する。この操作が失敗した場合、ステップ６１３からステップ６１４に進む。
【００６３】
ステップ６１４においては、第４の割当／正当化操作を行う。すなわち、図１１の（Ｂ
）に示すごとく、Ｘタイプ７もしくは８の対象ビット順列の第１のビット（この例では、a6）に論理値１の割当てを行い、また、該対象ビット順列の第２のビット（この例では、b5）に論理値０が現れるように、テストキューブのＸビットに必要な論理値を決定する。【００６４】
ステップ６０９、６１１、６１３において第１、第２、第３の割当／正当化操作が成功したと判別されたとき、あるいはステップ６１４において第４の割当／正当化操作が終了したときには図３のステップ３０７に進む。【００６５】
図３のステップ３０６の第２のＸ埋込み処理の詳細を図１２により説明する。【００６６】
ステップ１２０１では、Ｘタイプ３〜８の各ビット順列に対して正当化容易度（ＪＥ）を計算する。そして、正当化容易度ＪＥが最大値であるビット順列を正当化操作の成功率が高いとみなして対象ビット順列として選択する。【００６７】
ステップ１２０２では、選択された対象ビット順列が１つのＸビットに対する正当化操作を必要とする単一正当化型（Ｘタイプ３，４，６，７）か２つの正当化操作を必要とする二重正当化型（Ｘタイプ５，８）かを判別する。この結果、単一正当化型であればステップ１２０３〜１２０５に進み、他方、二重正当化型であればステップ１２０６〜１２１２に進む。【００６８】
ステップ１２０３〜１２０５について説明する。【００６９】
ステップ１２０３においては、第３の正当化操作を行う。すなわち、選択された対象ビット順列がＸタイプ４もしくは６のときに該対象ビット順列の第３のビットに該対象ビット順列の第２のビットの論理値が現れるように、また選択された対象ビット順列がＸタイプ３もしくは７のときに該対象ビット順列の第２のビットに該対象ビット順列の第３のビットの論理値が現れるように、前記テストキューブの未確定ビットに０あるいは１を決定する。ステップ１２０４では、第３の正当化操作が失敗したか否かを判別する。この操作が失敗した場合、ステップ１２０４からステップ１２０５に進む。【００７０】
ステップ１２０５においては、第４の正当化操作を行う。すなわち、選択された対象ビット順列がＸタイプ４もしくは６のときに該対象ビット順列の第３のビットに該対象ビット順列の第２のビットの論理値と反対の論理値が現れるように、また選択された対象ビット順列がＸタイプ３もしくは７のときに該対象ビット順列の第２のビットに該対象ビット順列の第３のビットの論理値と反対の論理値が現れるように、前記テストキューブの未確定ビットに０あるいは１を決定する。【００７１】
ステップ１２０４において第３の正当化操作が成功したと判別されたとき、あるいはステップ１２０５において第４の正当化操作が終了したときには図３のステップ３０７に進む。【００７２】
次に、ステップ１２０６〜１２１２について説明する。【００７３】
ステップ１２０６においては、第５の正当化操作を行う。すなわち、Ｘタイプ５もしくは８の対象ビット順列の第２のビットと第３のビットに論理値０が現れるように、テストキューブのＸビットに必要な論理値を決定する。ステップ１２０７では、第５の正当化操作が失敗したか否かを判別する。この操作が失敗した場合、ステップ１２０７からステップ１２０８に進む。【００７４】
ステップ１２０８においては、第６の正当化操作を行う。すなわち、Ｘタイプ５もしくは８の対象ビット順列の第２のビットと第３のビットに論理値１が現れるように、テストキューブのＸビットに必要な論理値を決定する。ステップ１２０９では、第６の正当化操作が失敗したか否かを判別する。この操作が失敗した場合、ステップ１２０９からステップ１２１０に進む。
【００７５】
ステップ１２１０においては、第７の正当化操作を行う。すなわち、Ｘタイプ５もしくは８の対象ビット順列の第２のビットに論理値０、第３のビットに論理値１が現れるように、テストキューブのＸビットに必要な論理値を決定する。ステップ１２１１では、第７の正当化操作が失敗したか否かを判別する。この操作が失敗した場合、ステップ１２１１からステップ１２１２に進む。
【００７６】
ステップ１２１２においては、第８の正当化操作を行う。すなわち、Ｘタイプ５もしくは８の対象ビット順列の第２のビットに論理値１、第３のビットに論理値０が現れるように、テストキューブのＸビットに必要な論理値を決定する。【００７７】
ステップ１２０７、１２０９、１２１１において第５、第６、第７の正当化操作が成功したと判別されたとき、あるいはステップ１２１２において第８の正当化操作が終了したときには図３のステップ３０７に進む。【００７８】
図１３は本発明に係る二重キャプチャ低消費電力埋込み処理の一例を示す図である。【００７９】
図１３の（Ａ）に示すごとく、テストキューブとして＜Ｘ，Ｘ，１，０，Ｘ，Ｘ＞が与えられ、３ビット順列として＜１，０，０＞，＜０，Ｘ，１＞，＜Ｘ，１，Ｘ＞，＜Ｘ，０，１＞が存在する。この場合、キャプチャクロックパルスＣ１、Ｃ２の総キャプチャ状態変化数ＴＥＣＴＡ１，ＴＥＣＴＡ２は、それぞれ、２．５，  ２．０であり、従って、ＴＥＣＴＡ１≧ＴＥＣＴＡ２であるので、まずは対象キャプチャクロックパルスＣ１についての総キャプチャ状態変化数ＴＥＣＴＡ１を小さくする必要がある。
【００８０】
図１３の（Ｂ）では、対象キャプチャクロックパルスＣ１に対して組合せ部分１１１の擬似外部入力線ＰＰＩ１のビットa5，a6に対して割当操作を行う。これにより、対象キャプチャクロックパルスＣ１についての総キャプチャ状態変化数ＴＥＣＴＡ１は小さくなる。この場合において、キャプチャクロックパルスＣ１，Ｃ２の総キャプチャ状態変化数ＴＥＣＴＡ１，ＴＥＣＴＡ２は、それぞれ、１．５，  ２．０となり、従って、ＴＥＣＴＡ１＜ＴＥＣＴＡ２であるので、次に対象キャプチャクロックパルスＣ２についての総キャプチャ状態変化数ＴＥＣＴＡ２を小さくする必要がある。
【００８１】
図１３の（Ｃ）は、対象キャプチャクロックパルスＣ２に対して組合せ部分１１２の擬似外部出力線ＰＰＯ２のビットd4に対して正当化操作を行う。これにより、対象キャプチャクロックパルスＣ２についての総キャプチャ状態変化数ＴＥＣＴＡ２は小さくなる。この場合において、キャプチャクロックパルスＣ１，Ｃ２の総キャプチャ状態変化数ＴＥＣＴＡ１，ＴＥＣＴＡ２は、それぞれ、１．５，  １．５であり、従って、ＴＥＣＴＡ１≧ＴＥＣＴＡ２であるので、対象キャプチャクロックパルスＣ１についての総キャプチャ状態変化数ＴＥＣＴＡ１を小さくする必要がある。
【００８２】
図１３の（Ｄ）は、対象キャプチャクロックパルスＣ１に対して組合せ部分１１１の擬似外部出力のビットb3に対して正当化操作を行う。これにより、対象キャプチャクロックパルスＣ１についての総キャプチャ状態変化数ＴＥＣＴＡ１は小さくなる。
【００８３】
このように、対象キャプチャクロックパルスＣ１，Ｃ２に対して消費電力を均衡的に削減することができる。【００８４】
尚、図６のステップ６０５、６０７では、正当化操作の論理値を０→１の順序で行っているが、１→０の順序でもよい。また、図６のステップ６０８、６１０では、割当／正当化操作の論理値を（０割当て、０正当化）→（１割当て、１正当化）の順序で行っているが、（１割当て、１正当化）→（０割当て、０正当化）の順序でもよい。さらに、図６のステップ６１２、６１４では、割当／正当化操作の論理値を（０割当て、１正当化）→（１割当て、０正当化）の順序で行っているが、（１割当て、０正当化）→（０割当て、１正当化）の順序でもよい。【００８５】
尚、図１２のステップ１２０３、１２０５では、第３、第４の正当化操作の論理値を０→１の順序で行っているが、１→０の順序でもよい。図１２のステップ１２０６、１２０８では、正当化操作の論理値を（０正当化、０正当化）→（１正当化、１正当化）の順序で行っているが、（１正当化、１正当化）→（０正当化、０正当化）の順序でもよい。さらに、図１２のステップ１２１０、１２１２では、正当化操作の論理値を（０正当化、１正当化）→（１正当化、０正当化）の順序で行っているが、（１正当化、０正当化）→（０正当化、１正当化）の順序でもよい。【００８６】
上述の図２、図３、図６、図１２のルーチンはプログラムとして記憶媒体に記憶される。例えば、記憶媒体がＲＯＭ等の不揮発性メモリであれば予め組込まれ、記憶媒体がＲＡＭ等の揮発性メモリであれば必要に応じて書込まれる。
【図面の簡単な説明】
【００８７】
【図１】本発明に係る半導体論理回路装置のテストベクトル生成の原理を示す回路展開図である。
【図２】本発明に係る半導体論理回路装置のテストベクトル生成方法の一実施の形態を説明するフローチャートである。
【図３】図２の二重キャプチャ低消費電力埋込みステップの詳細なフローチャートである。
【図４】図３のステップ３０１のＸタイプを示す表である。
【図５】図３のステップ３０３の総キャプチャ状態変化数の計算の一例を示す図である。
【図６】図３の対象キャプチャクロックパルスＣ１に対するＸ埋込み処理ステップ３０５の詳細なフローチャートである。
【図７】図６のステップ６０２を説明する図である。
【図８】図６の正当化容易度計算ステップ６０３を説明する図である。
【図９】図６の正当化操作ステップ６０５、６０７を説明する図である。
【図１０】図６の割当／正当化操作ステップ６０８、６１０を説明する図である。
【図１１】図６の割当／正当化操作ステップ６１２、６１４を説明する図である。
【図１２】図３の対象キャプチャクロックパルスＣ２に対するＸ埋込み処理ステップ３０６の詳細なフローチャートである。
【図１３】本発明に係る二重キャプチャ低消費電力埋込み処理の一例を示す図である。
【図１４】従来の実速度スキャンテストを説明するブロック回路図である。
【図１５】図１４の回路動作を説明するタイミング図である。
【符号の説明】
【００８８】
１１，１１１，１１２：組合せ部分
１２：スキャンフリップフロップ群
ＰＩ：外部入力線
ＰＰＩ：擬似外部入力線
ＰＯ：外部出力線
ＰＰＯ：擬似外部出力線
ＳＣ：スキャンチェーン
【図１】
0004752030.tif 000002
【図２】
0004752030.tif 000003
【図３】
0004752030.tif 000004
【図４】
0004752030.tif 000005
【図５】
0004752030.tif 000006
【図６】
0004752030.tif 000007
【図７】
0004752030.tif 000008
【図８】
0004752030.tif 000009
【図９】
0004752030.tif 000010
【図１０】
0004752030.tif 000011
【図１１】
0004752030.tif 000012
【図１２】
0004752030.tif 000013
【図１３】
0004752030.tif 000014
【図１４】
0004752030.tif 000015
【図１５】
0004752030.tif 000016