(57)【要約】【課題】  フルスキャン順序回路に含まれるスキャンセルの出力について、スキャンキャプチャの前後において発生する論理値の相違が低減されるようにテストベクトル集合の変換を行う変換装置等を提供する。【解決手段】  フルスキャン順序回路に対するテストベクトル集合を変換する変換装置４００であって、テストベクトル集合の各テストベクトルからドントケアとできるドントケアビットを特定するために、所定の制約条件であって論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビット、及び、ドントケアビットにしてはならない固定ビットを設定する設定部４０２と、前記設定部４０２により特定されたドントケアビットを含むテストキューブに対して、複数のビットペア間の関係を考慮して、論理値をドントケアビットに決定する論理値決定部４０４とを備える。【選択図】  図２
2007155339.tif 000002
【特許請求の範囲】
【請求項１】
論理回路に対するテストベクトル集合を変換する変換装置であって、
前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビット、及び、ドントケアビットにしてはならない固定ビットを設定する設定手段と、
前記設定手段が設定した候補ビットのみから特定されたドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定手段とを備えた、変換装置。
【請求項２】
前記決定手段は、前記設定手段が設定した候補ビットのみから特定されたドントケアビットを含むテストキューブに代えて他の手段で得られたドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する、請求項１記載の変換装置。
【請求項３】
論理回路に対するテストベクトル集合を変換する変換装置であって、
前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビットを設定する設定手段を備えた、変換装置。
【請求項４】
前記設定手段は、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、前記候補ビットを設定することに加えて、ドントケアビットにしてはならない固定ビットを設定する、請求項３記載の変換装置。
【請求項５】
前記論理回路はフルスキャン順序回路であり、
前記制約条件は、前記フルスキャン順序回路に含まれるスキャンセルの出力において、スキャンキャプチャの前と後の論理値の相違数が削減されるように定められる条件である、請求項１から４のいずれかに記載の変換装置。
【請求項６】
論理回路に対するテストベクトル集合を変換する変換装置であって、
前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定手段を備えた、変換装置。
【請求項７】
前記論理回路はフルスキャン順序回路であり、
前記目的は、前記フルスキャン順序回路に含まれるスキャンセルの出力において、スキャンキャプチャの前と後の論理値の相違数が効果的に削減されることである、請求項１、２又は６記載の変換装置。
【請求項８】
論理回路に対するテストベクトル集合を変換する変換方法であって、
設定手段が、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビット、及び、ドントケアビットにしてはならない固定ビットを設定する設定ステップと、
決定手段が、前記設定手段が設定した候補ビットのみから特定されたドントケアビットを含むテストキューブ、またはその他の手段で得られたドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定ステップとを含む、変換方法。
【請求項９】
論理回路に対するテストベクトル集合を変換する変換方法であって、
設定手段が、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビットを設定する設定ステップを含む、変換方法。
【請求項１０】
前記設定ステップは、前記設定手段が、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、前記候補ビットを設定することに加えて、ドントケアビットにしてはならない固定ビットを設定するステップを含む、請求項９記載の変換方法。
【請求項１１】
前記論理回路はフルスキャン順序回路であり、
前記設定ステップは、
前記テストベクトル集合の各テストベクトルに対して、前記フルスキャン順序回路に含まれるスキャンセルの出力において、スキャンキャプチャの前と後で論理値の相違が発生するビットと相違が発生しないビットとを識別する第１のステップと、
前記相違が発生しないビットを固定ビットとする第２のステップと、
前記相違が発生するビットのうちから所定の条件を満たした前記候補ビットを特定するとともに前記候補ビットに特定されなかった残余の前記相違が発生するビットを固定ビットとする第３のステップとを含み、
前記候補ビットからドントケアとできるドントケアビットを特定し、前記固定ビットからドントケアビットを特定しないことを特徴とする、請求項８又は１０に記載の変換方法。
【請求項１２】
前記第３のステップは、
各テストベクトルにおける候補ビットの予定総数を決定するステップと、
前記相違が発生するすべてのビットに対してドントケアを割り当て、３値論理シミュレーションを行って、その結果によって、入力ビットにドントケアがありそれに対応する出力ビットにドントケアがないタイプ１のドントケアビットペア、及び、入力ビットとそれに対応する出力ビットの両方にドントケアがあるタイプ２のドントケアビットペアを特定するステップと、
前記特定されたタイプ１のドントケアビットペアを優先的に候補ビットとして選択し、タイプ１のドントケアビットペアがなくなりかつ既に選択された候補ビットの数が予定総数に達していない場合、タイプ２のドントケアビットペアを所定の基準に従って候補ビットとして選択するステップを含む、請求項１１記載の変換方法。
【請求項１３】
論理回路に対するテストベクトル集合を変換する変換方法であって、
前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定ステップを含む、変換方法。
【請求項１４】
前記論理回路はフルスキャン順序回路であって、
前記決定ステップは、
前記テストキューブにおいて、前記フルスキャン順序回路に含まれるスキャンセルの出力に対応するドントケアビットをそれぞれ異なるものと見なし、このような個々のドントケアビット及びその反転が前記フルスキャン順序回路に含まれるスキャンセルの入力への出現状況を調べるステップと、
前記フルスキャン順序回路に含まれるスキャンセルの出力に対応するドントケアビットと、前記フルスキャン順序回路に含まれるスキャンセルの入力への前記ドントケアビット又はその反転の出現状況に基づいて、スキャンキャプチャの前と後で論理値の相違数が最小化することを実現させる論理値を前記ドントケアビットに決定するステップとを含む、請求項８又は１３に記載の変換方法。
【請求項１５】
請求項８から１４のいずれかに記載の変換方法をコンピュータに実行させることが可能なプログラム。
【請求項１６】
請求項１５記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換装置、変換方法、変換方法をコンピュータに実行させることが可能なプログラム、及び、このプログラムを記録した記録媒体に関し、特に、論理回路に対するテストベクトル集合を変換する変換装置等に関する。
【背景技術】
【０００２】
図１４に示すように、半導体論理回路は、設計、製造、テストの三段階を経て出荷される。ここで、テストとは、製造された半導体論理回路に対してテストベクトルを印加し、半導体論理回路からテスト応答を観測し、それを期待テスト応答と比較して良品、不良品の判別を行う。その良品率を歩留りと呼び、歩留りは半導体論理回路の品質、信頼性及び製造コストを大きく左右する。
【０００３】
一般に、半導体論理回路は主に順序回路である。順序回路は、アンド（ＡＮＤ）ゲート、ナンド（ＮＡＮＤ）ゲート、オア（ＯＲ）ゲート、ノア（ＮＯＲ）ゲート等の論理素子からなる組合せ回路部と、回路の内部状態を記憶するフリップフロップとよりなる。この場合、組合せ回路部は、外部入力線（ＰＩ）、フリップフロップの出力線である擬似外部入力線（ＰＰＩ）、外部出力線（ＰＯ）、フリップフロップの入力線である擬似外部出力線（ＰＰＯ）を有する。組合せ回路部への入力は、外部入力線より直接与えられるものと、擬似外部入力線を介して与えられるものからなる。また、組合せ回路部からの出力は、外部出力線に直接現れるものと、擬似外部出力線に現れるものからなる。
【０００４】
順序回路の組合せ回路部をテストするために、組合せ回路部の外部入力線と擬似外部入力線から所要のテストベクトルを印加し、組合せ回路部の外部出力線と擬似外部出力線からテスト応答を観測する必要がある。１つのテストベクトルは、外部入力線と擬似外部入力線に対応するビットからなる。また、１つのテスト応答は、外部出力線と擬似外部出力線に対応するビットからなる。
【０００５】
しかし、順序回路のフリップフロップの出力線（擬似外部入力線）と入力線（擬似外部出力線）は一般に外部より直接アクセスできない。従って、組合せ回路部をテストするためには、擬似外部入力線の可制御性及び擬似外部出力線の可観測性に問題がある。
【０００６】
上述の組合せ回路部のテストにおける可制御性及び可観測性の問題を解決する主な手法として、フルスキャン設計がある。フルスキャン設計とは、フリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本または複数本のスキャンチェーンを形成することである。スキャンフリップフロップの動作はスキャンインネーブル（ＳＥ）信号線で制御される。例えば、ＳＥ＝０のとき、従来のフリップフロップと同じ動作をし、クロックパルスが与えられると、組合せ回路部からの値でスキャンフリップフロップの出力値が更新され、また、ＳＥ＝１のとき、同じスキャンチェーンにある他のスキャンフリップフロップと１つのシフトレジスタを形成し、クロックパルスが与えられると、外部から新しい値がスキャンフリップフロップにシフトインされると同時に、スキャンフリップフロップに現存の値が外部へシフトアウトされる。一般に、同じスキャンチェーンにあるスキャンフリップフロップは同じスキャンインネーブル（ＳＥ）信号線を共有するが、異なるスキャンチェーンのスキャンインネーブル（ＳＥ）信号線は同一の場合もあれば異なる場合もある。
【０００７】
フルスキャン順序回路の組合せ回路部のテストはスキャンシフトとスキャンキャプチャを繰り返すことによって行われる。スキャンシフトは、スキャンインネーブル（ＳＥ）信号が論理値１にされているシフトモードで行われる。シフトモードにおいては、１つまたは複数のクロックパルスが与えられ、外部から１つまたは複数の新しい値がスキャンチェーン内のスキャンフリップフロップにシフトインされる。また、それと同時に、そのスキャンチェーン内のスキャンフリップフロップに現存の１つまたは複数の値が外部へシフトアウトされる。スキャンキャプチャは、スキャンインネーブル（ＳＥ）信号が論理値０にされているキャプチャモードで行われる。キャプチャモードにおいては、１つのスキャンチェーンにあるすべてのスキャンフリップフロップに同時に１つのクロックパルスが与えられ、組合せ回路部の擬似外部出力線の値がすべてのスキャンフリップフロップに取り込まれる。
【０００８】
スキャンシフトは、擬似外部入力線を介して組合せ回路部へテストベクトルを印加するためと、擬似外部出力線を介して組合せ回路部からテスト応答を観測するために用いられる。また、スキャンキャプチャは、組合せ回路部のテスト応答をスキャンフリップフロップに取り込むために用いられる。すべてのテストベクトルに対して、スキャンシフトとスキャンキャプチャを繰り返すことによって、組合せ回路部をテストすることができる。このようなテスト方式はスキャンテスト方式という。
【０００９】
スキャンテスト方式では、組合せ回路部へのテストベクトルの印加は、外部入力から直接行われる部分と、スキャンシフトによって行われる部分とがある。スキャンシフトによって、任意の論理値を任意のスキャンフリップフロップに設定することができるので、擬似外部入力線の可制御性の問題が解決される。組合せ回路部からのテスト応答の観測は、外部出力から直接行われる部分と、スキャンシフトによって行われる部分とがある。スキャンシフトによって、任意のスキャンフリップフロップの出力値を観測することができるため、擬似外部出力線の可観測性の問題が解決される。このように、スキャンテスト方式においては、自動テストパターン生成（ＡＴＰＧ）プログラムを用いてテストベクトル及び期待テスト応答を求めるだけで十分である。
【００１０】
上述のスキャンテスト方式が有効性を有しているにもかかわらず、通常動作時よりテスト時の消費電力が非常に大きいという問題点が存在する。半導体論理回路がＣＭＯＳ回路で構成されていれば、消費電力としては、漏れ電流による静的消費電力と、論理ゲートやフリップフロップのスイッチング動作による動的消費電力とがある。さらに、後者の動的消費電力は、シフト操作時におけるシフト消費電力と、キャプチャ操作時におけるキャプチャ消費電力とがある。
【００１１】
１つのテストベクトルに対して、スキャンシフト時に与えられるクロックパルスの数は一般に多い。例えば、あるスキャンチェーン内のすべてのスキャンフリップフロップに新しい値を設定するために、最大の場合にスキャンフリップフロップ個数分のクロックパルスを与える必要がある。このため、シフト消費電力が大きくなり、過度な発熱を引き起こすことがある。それによって、半導体論理回路装置を損壊する恐れがある。シフト消費電力の低減手法が盛んに研究されている。
【００１２】
一方、１つのテストベクトルに対して、スキャンキャプチャ時に必要なクロックパルスの数は一般に１つのスキャンチェーンにつき１つである。そのため、スキャンキャプチャ消費電力による発熱は問題にならない。しかし、キャプチャモードにおいて、擬似外部出力線に現れる組合せ回路部のテスト応答がスキャンフリップフロップに取り込まれるとき、テスト応答値とスキャンフリップフロップの現在値が異なれば、対応するスキャンフリップフロップの出力値が変化する。このような出力変化スキャンフリップフロップの数が多ければ、論理ゲートとスキャンフリップフロップのスイッチング動作によって、電源電圧が一時的に低下する。この現象はＩＲ（Ｉ：電流、Ｒ：抵抗）ドロップ現象とも呼ばれる。ＩＲドロップ現象により回路が誤動作し、誤ったテスト応答値がスキャンフリップフロップに取り込まれることがある。これによって、通常時には正常に動作できる半導体論理回路は、テスト時に不良品として判定されてしまうという誤テストが発生する。その結果として、歩留りが低下する。特に、半導体論理回路が超大規模化、超微細化、低電源電圧化した場合、誤テストによる歩留り低下は顕著である。従って、キャプチャ消費電力の低減が必要である。
【００１３】
テスト時に単一クロック信号を用いる場合には、クロックゲーティング手法を用いてスキャンキャプチャ消費電力を低減することができるが、半導体論理回路の物理設計への影響が大きい。また、テスト時に多重クロック信号を用いる場合には、ワンホット手法もしくは多重クロック手法でスキャンキャプチャ消費電力を低減することができるが、前者はテストデータ量が著しく増大し、後者はテストベクトル生成に膨大なメモリ消費が必要になるなどＡＴＰＧへの負担が大きい。従って、スキャンキャプチャ消費電力の低減においては、物理設計への影響、テストデータ量の増加、及びＡＴＰＧへの負担が小さい手法が望ましい。
【００１４】
他方、ドントケアビットを有するテストキューブはＡＴＰＧプログラムによるテストベクトルの生成過程で現れることが多い。これに対して、論理ビット（論理値０又は論理値１を持つビット）のみを含み、ドントケアビットを含まないテスト入力をテストベクトルと呼ばれる。また、ドントケアビットを有しないテストベクトルの集合が与えられる場合、その集合の故障検出率を変えずに、一部のテストベクトルの一部ビットをドントケアビットにすることができる。つまり、ドントケアビット特定プログラムによってテストキューブを得ることもできる。テストキューブが存在する原因は、フルスキャン順序回路の組合せ回路部内の１つ又は複数の対象故障を検出するために、外部入力線と擬似外部入力線における一部のビットに必要な論理値を設定すれば十分であることが多いからである。その残りのビットに０を設定しても１を設定しても、その対象故障の検出に影響を与えないため、そのようなビットはその対象故障にとってドントケアビットになる。
【００１５】
非特許文献１から３はドントケアビットを有しないテストベクトルの集合に対して、その集合の故障検出率を変えずに、一部のテストベクトルの一部ビットをドントケアビットにする技術である。
【００１６】
非特許文献１では、テストベクトルごとにドントケアビットを特定するため、Bit-Stripingという各ビットに対して順番にドントケアビットになれるかどうかのチェックを行う手法を使っている。この手法では、テストベクトル間の相関関係を完全に無視している。また、この手法は、ビット数に比例して処理時間が長くなる欠点もある。
【００１７】
非特許文献２では、ＸＩＤと呼ばれる手法に基づきドントケアビットを識別する。非特許文献１の技術と異なって、ＸＩＤ手法はテストベクトルごとではなく、与えられるテストベクトル集合内の全てのテストベクトルに対して同時に処理する。具体的には、まず各テストベクトルでしか検出できない故障（必須故障と呼ぶ）を求める。次に、全ての必須故障を検出するために必要な論理値設定をＡＴＰＧの含意操作と論理正当化の手法を応用して求める。その結果、その他の論理ビットをドントケアビットにする。この方法では、全部の入力ビットについてシミュレーションを行なうわけではないため、実行時間においては前述の非特許文献１で提案された手法よりも効率的で高速である。しかし、このドントケアビット手法は制限条件を受けていない。つまり、この手法では、どの論理ビットもドントケアビットにされる可能性がある。
【００１８】
非特許文献３では、前述の非特許文献２の技術と同様、テストベクトルごとではなく、与えられるテストベクトル集合内の全てのテストベクトルに対して同時に処理する。前述の非特許文献２の技術との違いは、どの論理ビットもドントケアビットにされることを許さず、一部の論理ビット（候補ビットと呼ぶ）のみからドントケアビットを特定することにある。候補ビット以外の論理ビット（固定ビットと呼ぶ）からはドントケアビットを特定しない。非特許文献３では、候補ビットと固定ビットからなる制約条件のもとでドントケアビットを特定する。前述の非特許文献２と同様で高速である他、所定の目的を達成するための効率的なドントケアビット特定を行うことができる。明らかに、このような目標達成効率は特定されたドントケアビットの位置に関わるため、候補ビットと固定ビットからなる制約条件を目標に合わせて設定することが大事である。
【００１９】
ドントケアビットを有するテストキューブはあくまでドントケアビットを有しないテストベクトルを生成する過程で現れる中間物である。このため、テストキューブ内のドントケアビットに最終的には論理値０または論理値１を埋め込む必要がある。
その埋め込みに際しては、何らかの目的を達成するために必要な論理値（０又は１）をドントケアビットに決定することが一般的に行われる。非特許文献４はスキャンキャプチャ消費電力の低減を目的として、テストキューブのドントケアビットに論理値を決定する技術である。
【００２０】
非特許文献４では、フルスキャン順序回路の組合せ回路部において、様々な手法で得られたドントケアビットを含むテストキューブに対して、３値（論理値０，論理値１，及びドントケアを表すＸ）シミュレーションを行い、そのテストキューブに対するテスト応答をまず求める。次に、擬似入力線ビットと擬似出力線ビットからなるビットペアを、擬似入力線ビットにのみドントケアがあるタイプＡビットペア、擬似出力線ビットにのみドントケアがあるタイプＢビットペア、及び、擬似入力線ビットと擬似出力線ビットの両方にドントケアがあるタイプＣビットペアに分類する。更に、これらのビットペアを順番に１つずつ処理していく。その処理において、タイプＡビットペアの場合、擬似入力線ビットのドントケアビットに対応する擬似出力線ビットの論理値を割り当てることにし、タイプＢビットペアの場合、擬似出力線ビットのドントケアビットに対応する擬似入力線ビットの論理値が現れるように、正当化操作を行って、テストキューブ内のドントケアビットの論理値を決めることにし、タイプＣビットペアの場合、擬似入力線ビットと擬似出力線ビットの両方にあるドントケアビットに同じ論理値（０又は１）が現れるように、擬似入力線に対する論理値の割り当てと擬似出力線に対する正当化操作を行って、テストキューブ内のドントケアビットの論理値を決めることにする。明らかに、非特許文献４の埋め込み技術の特徴は、テストキューブのドントケアビットに論理値を決める際、１つの擬似入力線ビットと１つの擬似出力線ビットからなる１つのビットペアしか考慮していない。このように決定された論理値は全体的に見て必ずしも最適と言えない。
【００２１】
【非特許文献１】R.Sankaralingam  and  N.A.Touba,  “Controlling  Peak  Power  During  Scan  Testing,”  Proceedings  of  IEEE  VLSI  Test  Symposium,  pp.153-159,2002.
【非特許文献２】K.Miyase  and  S.Kajihara,  “XID:  Don't  Care  Identification  of  Test  Patterns  for  Combinational  Circuits,”  IEEE  Transactions  on  Computer-Aided  Design,  Vol.23,  pp.321-326,2004.
【非特許文献３】K.Miyase,  S.Kajihara,  I.Pomeranz,  and  S.Reddy,  “Don’t  Care  Identification  on  Specific  Bits  of  Test  Patterns,”  Proceedings  of  IEEE/ACM  International  Conference  on  Computer  Design,  pp.194-199,2002.
【非特許文献４】X.Wen,  H.Yamashita,  S.Kajihara,  L.-T.Wang,  K.Saluja,  and  K.Kinoshita,  “On  Low-Capture-Power  Test  Generation  for  Scan  Testing,”    Proceedings  of  IEEE  VLSI  Test  Symposium,  pp.265-270,2005.
【発明の開示】
【発明が解決しようとする課題】
【００２２】
前述のように、フルスキャン順序回路のテストの場合、キャプチャモードにおいて、擬似外部出力線に現れる組合せ回路部のテスト応答がスキャンフリップフロップに取り込まれるとき、テスト応答値とスキャンフリップフロップの現在値が異なれば、対応するスキャンフリップフロップの出力値が変化する。このような出力変化スキャンフリップフロップの数が多ければ、論理ゲートとスキャンフリップフロップのスイッチング動作によって、電源電圧が一時的に低下するＩＲドロップ現象が起こり、それにより回路が誤動作し、誤ったテスト応答値がスキャンフリップフロップに取り込まれることがある。これによって、通常時には正常に動作できる半導体論理回路は、テスト時に不良品として判定されてしまうという誤テストが発生する。その結果として、歩留りが低下する。特に、半導体論理回路が超大規模化、超微細化、低電源電圧化した場合、誤テストによる歩留り低下は顕著である。従って、キャプチャ消費電力の低減が必要である。
【００２３】
上記問題が起こらないようにするためには、図１５において組合せ回路部１０２からスキャンフリップフロップ１０４に取り込まれる論理値と、スキャンフリップフロップ１０４が現在持っている論理値との間での相違数ができるだけ小さい低キャプチャ時消費電力のテストベクトルをテストに用いることが重要である。このようなテストベクトルを生成するために、何らかの手法でドントケアビットを含むテストキューブを作り、更にその中に含まれるドントケアビットに最適な論理値を決定し埋め込む形で最終テストベクトルに仕上げる必要がある。
【００２４】
テストキューブはＡＴＰＧプログラムによるテストベクトルの生成過程で現れることが多い。また、ドントケアビットを有しないテストベクトルの集合が与えられる場合、その集合の故障検出率を変えずに、一部のテストベクトルの一部のビットをドントケアビットにすることができる。特に、与えられたテストベクトルの集合からドントケアビットを特定することによってテストキューブを作ることは、テスト生成フローに与える影響が少ないため、応用において有利である。
【００２５】
しかしながら、テストキューブを作るための従来技術は、様々な欠点を持っている。非特許文献１の技術は、実行時間が長く、作られたテストキューブも必ずしもキャプチャ時消費電力を効果的に低減することができない。非特許文献２の技術は、テスト集合全体を処理対象にするため実行時間が比較的早く、より多くのドントケアビットを特定することができるが、作られたテストキューブは必ずしもキャプチャ時消費電力を効果的に低減することができない。非特許文献３の技術は、テスト集合の論理ビットの一部のみよりドントケアビットを特定することによって、キャプチャ時消費電力を効果的に低減することができるテストキューブを作ることが可能であるが、候補ビットと固定ビットで制約されるドントケアビット特定範囲を如何に定めるかについては何も示されていない。
【００２６】
更に、キャプチャ時消費電力を効果的に低減するために、テストキューブ内のドントケアビットに論理値０または論理値１を埋め込む技術がある。特に、非特許文献４の技術は、擬似入力線ビットのみならず擬似出力線ビットをも考慮して、対応する擬似入力線ビットと擬似出力線ビットの間の論理値の相違を削減するため、他の技術より有利である。しかし、非特許文献４の技術は、ドントケアビットに論理値（０又は１）を決定するときに、一回に１つの擬似出力線ビットと１つの擬似出力線ビットからなる１つのビットペアしか考慮していない。このため、このように決定された論理値は全体的に見て必ずしも最適と言えない。
【００２７】
なお、ここまではキャプチャ時の消費電力低減の問題を説明したが、テストデータ量削制、或いはテストデータの欠陥検出においても、制約が必要な同様の問題がある。
【００２８】
ゆえに、本発明は、上記問題を解決するため、例えば、フルスキャン順序回路に含まれるスキャンセルの出力について、スキャンキャプチャの前後において発生する論理値の相違が低減されるようなテストベクトル集合の変換を行う変換装置、変換方法、変換方法をコンピュータに実行させることが可能なプログラム、及び、このプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００２９】
請求項１に係る発明は、論理回路に対するテストベクトル集合を変換する変換装置であって、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビット、及び、ドントケアビットにしてはならない固定ビットを設定する設定手段と、前記設定手段が設定した候補ビットのみから特定されたドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定手段とを備えた変換装置である。
【００３０】
これにより、ドントケアビットを含まないテストベクトルの集合を最終的なテストベクトル集合とできる。この最終的なテストベクトル集合は、本来のテストの目的（故障検出率）を達成しつつ、他の目的としての例えば誤テストを回避することが可能なものである。
【００３１】
請求項２に係る発明では、請求項１の決定手段が、前記設定手段が設定した候補ビットのみから特定されたドントケアビットを含むテストキューブに代えて他の手段で得られたドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する。
【００３２】
請求項３に係る発明は、論理回路に対するテストベクトル集合を変換する変換装置であって、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビットを設定する設定手段を備えた変換装置である。
【００３３】
請求項４に係る発明では、請求項３の設定手段が、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、前記候補ビットを設定することに加えて、ドントケアビットにしてはならない固定ビットを設定する。
【００３４】
請求項５に係る発明では、請求項１から４のいずれかの論理回路がフルスキャン順序回路であり、前記制約条件が、前記フルスキャン順序回路に含まれるスキャンセルの出力において、スキャンキャプチャの前と後の論理値の相違数が削減されるように定められる条件である。
【００３５】
これにより、フルスキャン順序回路に含まれるスキャンセルの出力について、スキャンキャプチャの前と後の論理値の相違数を効果的に削減可能となり、スキャンキャプチャ時の消費電力を抑えることで、誤テストを回避できる。
【００３６】
請求項６に係る発明は、論理回路に対するテストベクトル集合を変換する変換装置であって、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定手段を備えた変換装置である。
【００３７】
請求項７に係る発明では、請求項１、２又は６の論理回路がフルスキャン順序回路であり、前記目的が、前記フルスキャン順序回路に含まれるスキャンセルの出力において、スキャンキャプチャの前と後の論理値の相違数が効果的に削減されることである。
【００３８】
請求項８に係る発明は、論理回路に対するテストベクトル集合を変換する変換方法であって、設定手段が、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビット、及び、ドントケアビットにしてはならない固定ビットを設定する設定ステップと、決定手段が、前記設定手段が設定した候補ビットのみから特定されたドントケアビットを含むテストキューブ、またはその他の手段で得られたドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定ステップとを含む、変換方法である。
【００３９】
請求項９に係る発明は、論理回路に対するテストベクトル集合を変換する変換方法であって、設定手段が、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを特定するようにするために、所定の制約条件であって前記論理回路における入出力関係に基づく条件によりドントケアビットにしてもよい候補ビットを設定する設定ステップを含む、変換方法である。
【００４０】
請求項１０に係る発明では、請求項９の設定ステップは、前記設定手段が、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちの一部のみからドントケアとできるドントケアビットを特定するようにするために、前記候補ビットを設定することに加えて、ドントケアビットにしてはならない固定ビットを設定するステップを含む。
【００４１】
請求項１１に係る発明は、請求項８又は１０において、前記論理回路がフルスキャン順序回路であり、前記設定ステップが、前記テストベクトル集合の各テストベクトルに対して、前記フルスキャン順序回路に含まれるスキャンセルの出力において、スキャンキャプチャの前と後で論理値の相違が発生するビットと相違が発生しないビットとを識別する第１のステップと、前記相違が発生しないビットを固定ビットとする第２のステップと、前記相違が発生するビットのうちから所定の条件を満たした前記候補ビットを特定するとともに前記候補ビットに特定されなかった残余の前記相違が発生するビットを固定ビットとする第３のステップとを含み、前記候補ビットからドントケアとできるドントケアビットを特定し、前記固定ビットからドントケアビットを特定しないことを特徴とする変換方法である。
【００４２】
請求項１２に係る発明は、請求項１１において、前記第３のステップが、各テストベクトルにおける候補ビットの予定総数を決定するステップと、前記相違が発生するすべてのビットに対してドントケアを割り当て、３値論理シミュレーションを行って、その結果によって、入力ビットにドントケアがありそれに対応する出力ビットにドントケアがないタイプ１のドントケアビットペア、及び、入力ビットとそれに対応する出力ビットの両方にドントケアがあるタイプ２のドントケアビットペアを特定するステップと、前記特定されたタイプ１のドントケアビットペアを優先的に候補ビットとして選択し、タイプ１のドントケアビットペアがなくなりかつ既に選択された候補ビットの数が予定総数に達していない場合、タイプ２のドントケアビットペアを所定の基準に従って候補ビットとして選択するステップを含む、変換方法である。
【００４３】
この請求項１１に係る発明と請求項１２に係る発明では、例示的ではあるが、具体的な手法によって、請求項１０に係る発明を実現でき、フルスキャン順序回路に含まれるスキャンセルの出力について、スキャンキャプチャの前と後の論理値の相違数が効果的に削減されるという目的を解決できる。
【００４４】
請求項１３に係る発明は、論理回路に対するテストベクトル集合を変換する変換方法であって、前記テストベクトル集合の各テストベクトルを構成する論理ビットのうちからドントケアとできるドントケアビットを含むテストキューブに対して、入力ビットと出力ビットからなる複数のビットペア間の関係を考慮して、所定の目的を達成するために必要な論理値をドントケアビットに決定する決定ステップを含む、変換方法である。
【００４５】
請求項１４に係る発明は、請求項８又は１３において、前記論理回路がフルスキャン順序回路であり、前記決定ステップが、前記テストキューブにおいて、前記フルスキャン順序回路に含まれるスキャンセルの出力に対応するドントケアビットをそれぞれ異なるものと見なし、このような個々のドントケアビット及びその反転が前記フルスキャン順序回路に含まれるスキャンセルの入力への出現状況を調べるステップと、前記フルスキャン順序回路に含まれるスキャンセルの出力に対応するドントケアビットと、前記フルスキャン順序回路に含まれるスキャンセルの入力への前記ドントケアビット又はその反転の出現状況に基づいて、スキャンキャプチャの前と後で論理値の相違数が最小化することを実現させる論理値を前記ドントケアビットに決定するステップとを含む、変換方法である。
【００４６】
請求項１５に係る発明は、請求項８から１４のいずれかに記載の変換方法をコンピュータに実行させることが可能なプログラムである。
【００４７】
請求項１６に係る発明は、請求項１５記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
【発明の効果】
【００４８】
本発明によれば、例えば、論理回路におけるフルスキャン順序回路に含まれるスキャンセルの出力について、スキャンキャプチャの前後において発生する論理値の相違がより効果的に低減させることができる。それにより、スキャンキャプチャ時の消費電力を抑えることで、誤テストを回避できる。従って、本来正常な動作を行う半導体論理回路をテストにおいて不良品として廃棄するような良品率の低下を解消することができる。
【００４９】
また、本発明における変換装置及び変換方法は、論理回路のテスト設計フローを変更することもハードウェア追加によって回路面積を増加させることもない。このため、本発明における変換装置及び変換方法は、キャプチャ時の誤テストを回避するために非常に効果的であると言える。
【００５０】
さらに、本発明における変換装置及び変換方法は、クロックの種類に依存しないので、テスト時に単一クロック信号を用いる場合にクロックゲーティング手法を採用する場合のようにテストデータ量が著しく増大することはなく、テストデータ量の低減にも効果がある。
【００５１】
さらに、本発明における変換装置及び変換方法は、論理回路の故障検出率の低下はないため、テストデータの欠陥検出能力の向上に効果がある。
【発明を実施するための最良の形態】
【００５２】
本発明の実施の形態を以下に示す。
【００５３】
図１を参照して、本発明の背景技術となる一般的なフルスキャン回路について説明する。
【００５４】
図１（ａ）は、一般的なフルスキャン回路の構成を示した模式図である。このフルスキャン回路は、組合せ回路部分３００とフルスキャン順序回路のスキャンフリップフロップ３０２とから構成される。組合せ回路部分３００は、外部入力線（ＰＩ）、スキャンフリップフロップの出力線である擬似外部入力線（ＰＰＩ）、外部出力線（ＰＯ）、フリップフロップの入力線である擬似外部出力線（ＰＰＯ）を有する。組合せ回路部分３００へのテストベクトルｖは、外部入力線より直接与えられる部分＜ｖ：ＰＩ＞と、擬似外部入力線を介して与えられる部分＜ｖ：ＰＰＩ＞からなる。＜ｖ：ＰＰＩ＞はスキャンシフトによってスキャンフリップフロップ３０２に設定される。また、組合せ回路部分３００からの出力はテストベクトルｖに対するテスト応答ｆ（ｖ）であり、外部出力線に直接現れる部分＜ｆ（ｖ）：ＰＯ＞と、擬似外部出力線に現れる部分＜ｆ（ｖ）：ＰＰＯ＞からなる。＜ｆ（ｖ）：ＰＰＯ＞はスキャンキャプチャによってスキャンフリップフロップ３０２に取り込まれる。
【００５５】
図１（ｂ）は図１（ａ）におけるスキャンフリップフロップ３０２におけるスキャンキャプチャの前と後において論理値に相違が発生する場合の一例を示す。
【００５６】
図１（ｂ）において、テストベクトル＜ｖ：ＰＰＩ＞の要素である一つのビットａと、それに対応するテスト応答＜ｆ（ｖ）：ＰＰＯ＞が、スキャンフリップフロップ３０２で異なる論理値を取ると、キャプチャモードの際に論理値の相違（以下、遷移とする）が発生する。ある一つのテストベクトルに対する遷移の数は、そのテストベクトルを原因とした組合せ回路部分３００を含めた回路全般で発生する消費電力と深く関係しているため、テストベクトルに対するキャプチャ時の遷移の数を削減することで、キャプチャ時の消費電力を低減することができる。
【００５７】
次に、本発明の実施の形態に係る変換装置の構成を説明する。図２は、本発明の実施の形態に係る変換装置の概略ブロック図である。
【００５８】
変換装置４００は、設定部４０２と論理値決定部４０４とから構成されている。設定部４０２は、候補ビット特定部４０６とドントケアビット特定部４０８とから構成され、論理値決定部４０４は、ドントケアＩＤ化部４１０と論理値決定処理部４１２と論理値割当処理部４１４とから構成されている。また、入出力データとして初期テストベクトル集合４１６（Ｔｉｎｔ）と中間テストベクトル集合（テストキューブ集合）４１８（Ｔｘ）と最終テストベクトル集合４２０（Ｔｆｉｎ）があり、初期テストベクトル集合４１６は予めＡＴＰＧ等の手段により生成されたテストベクトル集合である。設定部４０２が、初期テストベクトル集合４１６（Ｔｉｎｔ）を基に候補ビット及び候補ビットの中でドントケアとできるドントケアビットを特定し、中間テストベクトル集合４１８（Ｔｘ）を生成する。論理値決定部４０４は、その生成された中間テストベクトル集合（Ｔｘ）からドントケアビットに論理値を割り当て、最終テストベクトル集合（Ｔｆｉｎ）が生成される。
【００５９】
図３は、本発明の実施の形態に係る変換装置の処理を示すフロー図である。
【００６０】
まず、ステップ５００で図２に示す初期テストベクトル集合４１６（Ｔｉｎｔ）をＡＴＰＧ等の手法により生成し用意する。ただし、Ｔｉｎｔの生成中に、中間的なテストキューブ中のドントケアビットに対して論理値を決定する必要があるかもしれないが、この段階での論理値の決定は、テストベクトル数削減のための新たな故障の検出を対象としたものである。また、ｃ＿ｌｉｍｉｔ（各テストベクトルにおける遷移ビット数の上限の値）を同時に設定しておく。
【００６１】
ここで、ｃ＿ｌｉｍｉｔとはスキャンフリップフロップにおけるスキャンキャプチャの前と後において論理値に相違が発生するビット（以下遷移ビットとする）の数の上限値であり、遷移ビットの数がこれ以下であれば、誤テストを起こらないと想定できる数値であり、遷移ビットの数がこれ以上であれば誤テストを起こす要因となり得る数値である。この各テストベクトルにおける遷移ビットの数の上限の値（ｃ＿ｌｉｍｉｔ）は回路設計時の消費電力量の見積もりまたは経験則等から決定される。ｃ＿ｌｉｍｉｔが大きすぎると消費電力を減少することにほとんど有効性を示すことができない。また、ｃ＿ｌｉｍｉｔが小さすぎると候補ビットが多数存在するため、効果的なドントケアビットの特定できず、有効性を示すことができない。
【００６２】
図３に戻って、ステップ５００でＴｉｎｔが生成された後は、次のステップ５０２で、図２に示す候補ビット特定部４０６により候補ビットの特定が行われ、ステップ５０３で、図２に示すドントケアビット特定部４０８によりドントケアビットが特定される。このステップ５０２及びステップ５０３では特定したドントケアビットの分布がキャプチャ時の遷移ビット数の削減に対して有効であるドントケアビットが特定される。このステップ５０２及びステップ５０３の処理について詳細に説明する。ここでは簡単のため、すべてのスキャンフリップフロップが１本のスキャンチェーンを構成し、また、単一のクロックドメインの中で動作するものとし、シングルキャプチャ方式を仮定する。
【００６３】
なお、本発明においてはスキャンフリップフロップが複数本のスキャンチェーンで構成されてもよく、また、同様に複数のクロックドメインの中で動作するようにしても構わない。さらに、ダブルキャプチャ方式でも構わない。
【００６４】
特定されるドントケアビットの数を最大化するための正当化操作、含意操作を利用して、全てのテストベクトルを同時に処理する手法が知られているが、本発明の実施の形態においては、候補ビットによってドントケアビットの探索を制限し、一方で残りのビットに対しては固定ビットとして論理値を残したままにする。
【００６５】
図４は、候補ビットの中からドントケアとできるドントケアビットが特定されたテストベクトル集合の例を示す。
【００６６】
図４（ａ）は、初期テストベクトル集合によりテストが行われる回路の例を示した概念図であり、図４（ｂ）は、回路内に仮定された故障を検出するために生成した初期テストベクトル集合である。図４（ｃ）は、対象となる回路に対するテストベクトル集合の制約表であり、「＊」は、図２に示す候補ビット特定部４０６により特定される候補ビットで、「−」は、値を変更しない固定ビットである。候補ビットの特定についての詳細は後述する。図４（ｄ）は、初期テストベクトル集合に対して候補ビットの中からドントケアとできるドントケアビットの特定を行った結果を示している。図中に示された「Ｘ」は、特定された候補ビットの中でドントケアとできるドントケアビットであり、図２に示したドントケアビット特定部４０８により特定される。
【００６７】
次に、候補ビットの特定及び候補ビットの中からドントケアとできるドントケアビットを特定する手順を説明する。
【００６８】
制約付ドントケアビットの特定で重要とされることは、効果的な制約表を生成することである。スキャンフリップフロップにおけるスキャンキャプチャの前と後において論理値に相違が発生しないビット（以下、非遷移ビットとする）は固定ビットとされるべきであり、一方、スキャンフリップフロップにおけるスキャンキャプチャの前と後において論理値に相違が発生するビット（以下、遷移ビットとする）は、候補ビットとするべきである。また、テストベクトル集合Ｔに対する候補ビットを特定する際には、特定されたドントケアビットの分布が、キャプチャ時の遷移ビット数の最大値ＭＣＴ（Ｔ）を効果的に削減するように保障されたドントケアビットを特定すべきである。以下に、本発明の実施の形態における制約表の作成手順について説明する。
【００６９】
（手順１）入力テストベクトルに対して２値論理シミュレーションを実行し、遷移ビットと非遷移ビットを識別する。
【００７０】
（手順２）手順１で識別したビットにおいて非遷移ビットを固定ビットとする。
【００７１】
（手順３）一つのテストベクトルに対して、遷移ビットの集合を選択し、候補ビットを特定する。これを全てのテストベクトルに対して繰り返す。
【００７２】
（手順４）手順３において、候補ビットとして特定されなかった残余の遷移ビットを固定ビットとする。
【００７３】
ここで、本発明の実施の形態における制約表について説明する。図５は、制約表の生成のために用いる概念図である。
【００７４】
図５に示すように、あるテストベクトルに対してスキャンフリップフロップにおける遷移ビット数をｎとし、遷移ビット数の上限をｃ＿ｌｉｍｉｔで表すと、候補ビット数ｄは、ｄ＝ｎ−ｃ＿ｌｉｍｉｔとなる。この候補ビット数ｄの値は、図４（ｃ）における「＊」のビット数と一致している。
【００７５】
図５において、入力テストベクトルｖｉでは遷移ビット数ｎが遷移ビット数の上限ｃ＿ｌｉｍｉｔを上回っているため、遷移ビット数ｎから遷移ビット数の上限ｃ＿ｌｉｍｉｔを減算した値ｄ個を候補ビット数とすることができる。また、ｖｊでは遷移ビット数ｎが遷移ビット数の上限ｃ＿ｌｉｍｉｔを下回っているため、候補ビットは存在しない。
【００７６】
従って、候補ビット数ｄの値はｃ＿ｌｉｍｉｔの決め方に依存するため、本発明を効果的に実現するためには、適切なｃ＿ｌｉｍｉｔの設定が必要不可欠である。
【００７７】
図５に示す概念により、ある一つのテストベクトルに対する候補ビットが多数存在することによる非効率的なドントケアビットの特定、または、行う必要のないドントケアビットの特定を避けることができる。従って、その他のテストベクトルにおいて新たに効果的なドントケアビットの特定が可能となる。その結果、テストベクトル集合全体に対して、キャプチャ時の遷移ビット数の削減を達成できる。
【００７８】
図５において候補ビットの数が算出された後は、何れのビットを候補ビットとして特定するかを識別する必要がある。
【００７９】
図６は、候補ビットの特定方法を示した図である。
【００８０】
図６における候補ビットの特定方法は、後の処理であるドントケアビットに論理値を割り当てる処理を容易にするための候補ビットの特定方法である。入力テストベクトルｖに対して２値論理シミュレーションを行った結果をｆ（ｖ）とする。ｆ（ｖ）には遷移ビットが２個含まれており、それぞれの遷移ビットをａ及びｂとする。ここで、ｃ＿ｌｉｍｉｔの値を１と設定すると、特定する候補ビット数は、遷移ビット数の２からｃ＿ｌｉｍｉｔの１を差し引いた１である。
【００８１】
次に、ｖの遷移ビットをすべてＸに置き換えたものをｖ’とする。このｖ’に対して０、１及びＸの３値を使用した３値論理シミュレーションを行い、その結果をｆ(ｖ’)とすると、ａ及びｂに対応するそれぞれのドントケアビットペアは２個存在する。ここで、それぞれのドントケアビットペアについて、図７を参照して説明する。
【００８２】
図７は、ドントケアビットを含むビットペアをタイプ毎に分類して表にしたものである。
【００８３】
図７におけるタイプＡは、入力値がドントケアビットであるが、それに応答する出力値は固定値であるタイプである。このタイプＡは出力値が決まっているため、容易にドントケアビットに対して論理値を割り当てることできる。タイプＢは、入力値が固定値であるが、それに応答する出力値がドントケアビットであるタイプである。このタイプは出力値がドントケアビットであるため、出力側のドントケアビットに対する論理値の割り当ての際に出力値に影響を及ぼしている入力値を識別し、入力側のドントケアビットに論理値を割り当てる必要がある。このタイプＢは、タイプＡに比べて容易にドントケアビットに対して論理値を割り当てることできない。タイプＣは、入力値及び出力値が共にドントケアビットであり、タイプＡ及びタイプＢ双方の処理を行わなければならないため複雑な処理が必要となる。
【００８４】
図６におけるａに対応するドントケアビットペアは、図７のタイプＣに該当し、図６におけるｂに対応するドントケアビットペアは、図７のタイプＡに該当する。図７によると、タイプＡに該当するドントケアビットペアに対して行うドントケアビットに対する論理値の割り当ては、タイプＣに該当するドントケアビットペアに対して行う論理値の割り当てよりも難易度が低く容易である。従って、図６におけるｂのタイプのドントケアビットペアを特定することが望ましい。
【００８５】
以下に、候補ビットの特定手順を示す。
【００８６】
（手順１）入力テストベクトルに対して事前に２値論理シミュレーションを実行し、遷移ビットと非遷移ビットを識別する。
【００８７】
（手順２）手順１にて識別された遷移ビットをドントケアビットに置換し、３値論理シミュレーションを行い、ドントケアビットペアを特定する。
【００８８】
（手順３）候補ビット数を越えないように、最初にタイプＡのドントケアビットペアに該当する遷移ビットを候補ビットとして選択する。候補ビット数を満たさない場合は、タイプＣのドントケアビットペアに該当する遷移ビットを候補ビットとして選択する。
【００８９】
上記手順３において、複数のタイプＣが存在する場合、出力側のドントケアビットから到達可能な入力側のドントケアビット数が多いドントケアビットペアを優先して選択する。到達可能な入力側のドントケアビット数が多いほど、出力側のドントケアビットに論理値を割り当て易くなるからである。
【００９０】
以上のような手順で処理を行うことにより、候補ビットの特定及び候補ビットの中からドントケアとできるドントケアビットが特定される。
【００９１】
図３の処理フローに戻って、ここまでで特定されたドントケアビットがステップ５０４に示す中間テストベクトル集合（Ｔｘ）である。
【００９２】
次に、ステップ５０６で図２における論理値決定部４０４が、中間テストベクトル集合４１８（Ｔｘ）である特定したドントケアビットに対して、キャプチャ時に遷移ビット数が削減されるような適切な論理値の割り当てを行う。その手法を図８に示す。この手法は、従来の手法である、キャプチャ時に遷移ビット数が削減されるように割当操作、正当化操作及びそれらの組合せを行う点で類似しているが、本発明の実施の形態においては、論理値の決定方法という点が改良されている。
【００９３】
図８は、特定したドントケアビットに対して論理値の割り当てを行う場合の処理を示したフロー図である。
【００９４】
まず、図２における中間テストベクトル集合４１８において、全てのドントケアビットを含むテストベクトルに対して処理が行われたか否かを判定する（ステップ１０００、１００２）。全てのドントケアビットを含むテストベクトルに対して行われていれば、ステップ１０１８で最終テストベクトル集合Ｔｆｉｎが得られ、処理を終了する。全てのドントケアビットを含むテストベクトルに対して行われていなければステップ１００４に進む。ステップ１００４ではドントケアビットを含むテストベクトルを１つ選択し、ステップ１００６でステップ１００４で選択されたテストベクトル内の全てのドントケアビットペアの相互間の依存関係を調べる。このドントケアビットペアの相互間の依存関係を調べる処理は、図２に示すドントケアビットＩＤ化部４１０により行われる。
【００９５】
ステップ１００８で、全てのドントケアビットペアに対して相互間の依存関係を調べたか否かを判定し、全てのドントケアビットペアに対して相互間の依存関係を調べたらステップ１００２に戻る。全てのドントケアビットペアに対して相互間の依存関係を調べていなければステップ１０１０に進む。ステップ１０１０では、ドントケアビットペアを１つ選択し、ステップ１０１２で、選択したドントケアビットペアのドントケアビットに割り当てる論理値を決定する。このステップ１０１２の処理は、図２に示す論理値決定処理部４１２により行われる。次に、ステップ１０１２で決定した論理値を、ステップ１０１４で正当化することによりドントケアビットに割り当てを行い、ステップ１０１６で割り当てが成功するか否かが判定される。成功しなければステップ１０１２に戻り新たな論理値を決定する。成功すればステップ１００８に戻り、全てのドントケアビットペアに対して処理が行われるまで繰り返して処理が行われる。
【００９６】
なお、ステップ１０１４における正当化処理は行われる必要はない場合もある。
【００９７】
以下に、図８におけるステップ１００６（Ａ）のドントケアビットを含むテストベクトル内の全てのドントケアビットペアの相互間の依存関係を部分的記号Ｘシミュレーションにより求める処理についての手順を説明する。ドントケアビットペアの相互間の依存関係とは、出力側のドントケアビットが何れの入力側のドントケアビットから伝搬したかの関係をいい、依存関係を調べることにより適切な論理値の決定を行うことができる。また、部分的記号Ｘシミュレーションとは、従来故障診断に用いられてきた記号シミュレーションの一部である。
【００９８】
ここで、全ての論理値が０または１である初期テストベクトルから特定されたｍ個のドントケアビットを含むテストベクトルをｖ’とする。ｖ’に対する部分的記号Ｘシミュレーションは以下のように処理される。まず、ｖ’中のｍ個のドントケアビットを相異なるｍ個のＸ記号（Ｘ１，Ｘ２，・・・，Ｘｍ）で置き換えたものをｖ”とする。その結果ｖ”はＸ記号を含み、Ｘ記号の伝搬処理は次の２つの規則を基に繰り返し行われる。
【００９９】
（規則１）論理演算の結果がＸｉの否定となる場合は、￣Ｘｉとする（￣は否定論理を表す）。
【０１００】
（規則２）もし、論理演算の結果が確定値でなく、且つ、Ｘ記号Ｘｉまたは￣Ｘｉでもなければ、新しいＸ記号が生成される。
【０１０１】
これらの規則は、Ｘ記号の伝搬処理において論理否定のみを保存し、その他の論理演算に関する情報は無視する。その目的は、出来る限り有効な情報を保ちながらメモリの使用量を削減するためである。
【０１０２】
図９に、上記部分的記号Ｘシミュレーションを実行した結果の一例を示す。
【０１０３】
図９において、入力テストベクトルｖ’には３個のドントケアビットが存在する。上記規則に従いｖ’における３個のドントケアビットに新しく記号Ｘ１、Ｘ２及びＸ３を割り振った入力テストベクトルがｖ”である。Ｘ記号の伝搬処理は規則１及び規則２に従って繰り返し行わる。例えば、ゲートＧ２の出力はＸ２の否定になるため、￣Ｘ２と表される。また、ゲートＧ４の出力はＸ１と￣Ｘ２の論理和であるため、新しく記号Ｘ４と表される。
【０１０４】
一般的に、部分的記号Ｘシミュレーションは図９の例が示すように３値論理シミュレーションよりも依存関係の情報を求めることができる。ここでは３値論理シミュレーションの結果においては、信号線＜ｅ，ｚ＞上のドントケアビットペアは＜Ｘ，Ｘ＞となり、依存関係が得られない。しかし、部分的記号Ｘシミュレーションを行った結果、信号線＜ｅ，ｚ＞上のドントケアビットペアは＜Ｘ３，￣Ｘ３＞となり、信号線＜ｅ，ｚ＞は同じ論理値を取り得ないことを示している。この情報は３値論理シミュレーションでは得ることができない。
【０１０５】
次に、図８におけるステップ１０１２（Ｂ）及びステップ１０１４のドントケアビットペアのドントケアビットに割り当てる論理値を決定し、割り当てる処理について説明する。ここで、決定される論理値は、上記で調べた依存関係に基づいて、遷移ビットの数を削減するようにドントケアビットに設定される値である。適した論理値が決定され、割り当てられることができれば、誤テストの原因となる遷移ビット数が削減され、誤テストを回避でき得る。
【０１０６】
ドントケアビットを含むテストベクトルｖ’に対して論理値の割り当てが必要であり、ｖ’とｆ(ｖ’)のドントケアビットに対して割り当てるべき論理値を決定する必要がある場合を仮定する。以下にその決定の手順を示す。
【０１０７】
（手順１）ドントケアビットを含む入力テストベクトルｖ’に対応するＸ記号を含むｖ”に対して部分的記号Ｘシミュレーションを行う。全てのＸ記号のビットペアは＜ｖ”：ＰＰＩ＞と＜ｆ（ｖ”）：ＰＰＯ＞を比較することにより求めることができる。ただしｆ（ｖ”）はｖ”の出力側のテストベクトルである。
【０１０８】
（手順２）ビットペア＜Ｘｉ，ｂ２＞、＜ｂ１,Ｘｉ＞及び＜ｂ１,￣Ｘｉ＞のそれぞれのＸ記号のビットペアに対して図１０に示される規則に従いＸｉに適合すると思われる論理値を算出する。ここで、ｂ１及びｂ２は論理値である。ただし、Ｘｉに対する０を優先的に割り当てる指標を示す値及び１を優先的に割り当てる指標を示す値は０とする。
【０１０９】
（手順３−ａ）ビットペア＜Ｘｉ，ｂ２＞、＜ｂ１,Ｘｉ＞及び＜ｂ１,￣Ｘｉ＞のＸｉに対して論理値を決定する場合、もし、０（１）を優先的に割り当てる指標を示す値が１（０）を優先的に割り当てる指標を示す値より大きければ０（１）に決定する。
【０１１０】
（手順３−ｂ）ビットペア＜ａ，ｂ＞＝＜Ｘｉ，Ｘｉ＞の場合、０を優先して決定し、その決定による論理値の割り当てが失敗であれば１を割り当てる。
【０１１１】
（手順３−ｃ）ビットペア＜ａ，ｂ＞＝＜Ｘｉ，￣Ｘｉ＞の場合、ａに０を決定し、ｂに１を決定する。その決定による論理値の割り当てが失敗であればａに１を、ｂに０を割り当てる。
【０１１２】
（手順３−ｄ）ビットペア＜ａ，ｂ＞＝＜Ｘｉ，Ｘｊ＞または＜Ｘｉ，￣Ｘｊ＞の場合、ａ及びｂに同じ論理値を決定し、その決定による論理値の割り当てが失敗であればａ及びｂに異なる論理値を割り当てる。
【０１１３】
手順１は、部分的記号ＸシミュレーションによりＸ記号のビットペアの依存関係の情報を求める処理である。手順２は、ドントケアビットを決定するためにＸ記号のビットペアの依存関係を考慮する。手順３は、４つの異なる論理値の決定についての処理である。これらの処理の結果から、効果的にドントケアビットに論理値を決定することができる。この手順を行った場合の例を、図１１を参照して説明する。
【０１１４】
図１１は、ドントケアビットに論理値を決定する場合の例を示した図である。
【０１１５】
図１１において、３つのＸ記号のビットペア＜ａ，ｘ＞＝＜Ｘ１，０＞、＜ｂ，ｙ＞＝＜１，Ｘ１＞及び＜ｃ，ｚ＞＝＜１，Ｘ１＞がある。図１０の表に従うとＸ１に対する０を優先的に割り当てる指標を示す値は１となり、１を優先的に割り当てる指標を示す値は２となる。従って、Ｘ記号のビットペア＜ａ，ｘ＞＝＜Ｘ１，０＞のＸ１に対する論理値を決定する場合、論理値は１に決定される。これはＸ記号のビットペア＜ａ，ｘ＞では、キャプチャ時に遷移が発生するが、＜ｂ，ｙ＞及び＜ｃ，ｚ＞では、キャプチャ時に遷移が発生しない。
【０１１６】
従来の手法においては、ドントケアビットペア間の相互の関係を考慮せずに＜ａ，ｘ＞の関係のみからＸ１の論理値を決定していたため、Ｘ１には０が決定され遷移ビットの数が削減される効果が十分とは言えなかった。しかし、本発明の実施の形態に係るドントケアビットへの論理値の決定手法を行うことで、ドントケアビットペア間の相互の関係が考慮されるため、遷移ビットの数が効果的に削減され、誤テストを回避することができる。
【０１１７】
上記手順で処理を行うことにより、図３におけるステップ５０８の最終テストベクトル集合（Ｔｆｉｎ）が得られ、処理を終了する。
【０１１８】
以下に、本発明の実験結果を示す。
【０１１９】
本実験では、本発明の提案手法をＣ言語により実装し、ＩＳＣＡＳ’８９ベンチマーク回路を対象とし、ＣＰＵ１．０ＧＨｚのペンティアム（登録商標）IIIプロセッサ、メモリ５１２ＭＢの計算機により行われた。図１２は実験結果を示した表である。
【０１２０】
図１２（ａ）に、実験に使用した回路の基本情報を示す。
【０１２１】
外部入力数、外部出力数及びＦ／Ｆｓ（フリップフロップ）の数がそれぞれ「＃  ｏｆ  ＰＩｓ」、「＃  ｏｆ  ＰＯｓ」及び「＃  ｏｆ  Ｆ／Ｆｓ」に示される。ＡＴＰＧプログラムにより縮退故障用テストベクトル集合を生成し、テストベクトル数及び各回路の故障検出率はそれぞれ「＃  ｏｆ  Ｖｅｃｔｏｒ」及び「Ｆａｕｌｔ  Ｃｏｖｅｒａｇｅ」に示される。さらに、各回路のオリジナルの遷移ビットの最大数（初期テストベクトル集合における遷移ビットの最大数）が「Ｏｒｉｇｅｎａｌ  Ｍａｘ  Ｔｒａｎｓ」に示される。
【０１２２】
図１２（ｂ）は、従来の手法である、候補ビットの特定を行わないドントケアビットの特定手法に基づくキャプチャ時の消費電力低減手法による実験結果を示した表である。
【０１２３】
各回路において、候補ビットの特定を行わずに特定されたドントケアビットの割合及びＣＰＵ時間を「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｘ−Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ」の「Ｘ（％）」及び「ＣＰＵ（Ｓｅｃ．）」に示す。最下行には平均値を示しており、全て０または１であるテストベクトル集合中の平均６３．５％が故障検出率を低下させずにドントケアビットとして特定されている。
【０１２４】
従来のＬＣＰ（Ｌｏｗ  Ｃａｐｔｕｒｅ  Ｐｏｗｅｒ）手法では、特定されたドントケアビットに対する論理値の割り当ては、ドントケアビットペアの相互間の依存関係を考慮しない。各回路の遷移ビットの最大数、遷移ビットの減少比率及びＣＰＵ時間を「Ｏｌｄ  ＬＣＰ  Ｘ−Ｆｉｌｌｉｎｇ」の「Ｍａｘ  Ｔｒａｎｓ．」、「Ｒｅｄ  Ｒａｔｅ（％）」及び「ＣＰＵ（Ｓｅｃ．）」に示す。また、比較のためにドントケアビットにランダムに論理値を割り当てた場合の結果を「Ｒａｎｄｏｍ  Ｘ−Ｆｉｌｌｉｎｇ」の「Ｍａｘ  Ｔｒａｎｓ．」に示す。図１２（ｂ）の表より、明らかに、従来手法によるドントケアビットへのランダムな論理値の割り当てよりキャプチャ時の消費電力の低減効果があることがわかる。
【０１２５】
図１２（ｃ）は、本発明の実施の形態における実験結果を示した表である。
【０１２６】
本発明の実施の形態では、候補ビットの特定及び候補ビットからドントケアとできるドントケアビットの特定は制約表を生成して行われ、ドントケアビットへの論理値の割り当てはドントケアビットペアの相互間の依存関係を考慮してキャプチャ時の消費電力を低減する手法により行われた。図１２（ｃ）の表に示す各列は図１２（ｂ）の表に示す各列と同意義である。
【０１２７】
図１２（ｂ）より、従来技術によると最大遷移ビット数の減少比率は平均して３３．２％である。また、図１２（ｃ）より、本発明の実施の形態における手法によると最大遷移ビット数の減少比率は平均して４３．３％である。このことから従来技術に比べて本発明の実施の形態における手法が遷移ビット数の減少比率を３０．４％改善していることになる。
【０１２８】
遷移ビットの数は、回路中のノード遷移の数と深い相互関係があり、そのノード遷移の数はキャプチャ時の消費電力の浪費を直接反映するものであるため、本発明において提案された手法がキャプチャ時の消費電力の浪費を減少させることに効果的である。
【０１２９】
本発明の実施の形態の手法においては、遷移ビット数の上限であるｃ＿ｌｉｍｉｔを設定する必要がある。本実験においては、初期テストベクトル集合Ｔｉｎｔの遷移ビット数の最大値の１０％をｃ＿ｌｉｍｉｔに設定して行った。
【０１３０】
図１２（ｂ）における「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｘ−Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ」の平均値は６５．３％を示しており、図１２（ｃ）における「Ｕｎｃｏｎｓｔｒａｉｎｅｄ  Ｘ−Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ」の平均値は２１．９％を示している。これは、本発明の実施の形態における手法が、制約を受けるドントケアビットの数が小さいにも関わらず、キャプチャ時の消費電力の浪費を減少させる上で明らかに有効であることを示している。従って、ドントケアビットの数のみではなく、ドントケアビットの分布が、キャプチャ時の消費電力の浪費を減少させる効果を向上させる重要な役割を果たすことがわかる。
【０１３１】
なお、上記まででは、図１に示すようなフルスキャン順序回路を用いて説明したが、図１３に示すようなパーシャルスキャン回路にも適用可能である。ここで、パーシャルスキャン回路とは、一部のフリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本若しくは複数本のスキャンチェーンを形成するものである。
【０１３２】
具体的には、組合せ回路部分３０００と順序回路のフリップフロップ３００１とパーシャルスキャン順序回路のスキャンフリップフロップ３００２とから構成される。組合せ回路部分３０００は図１の組合せ回路部分３００と同様ではあるが、その入力は＜ｖ：ＰＰＩ＞がスキャンシフトによってスキャンフリップフロップ３００２に設定される部分＜ｖ：ＰＰＩｎ２＞とフリップフロップ３００１に設定される部分＜ｖ：ＰＰＩｎ１＞からなる。また、組合せ回路部分３０００からの出力は同じく図１の組合せ回路部分３００と同様であるが、テストベクトルｖに対するテスト応答ｆ（ｖ）としての外部出力線に直接現れる部分＜ｆ（ｖ）：ＰＯ＞と擬似外部出力線に現れる部分＜ｆ（ｖ）：ＰＰＯ＞のうち、＜ｆ（ｖ）：ＰＰＯ＞はスキャンキャプチャによってスキャンフリップフロップ３００２に取り込まれる部分＜ｆ（ｖ）：ＰＰＯｎ２＞とフリップフロップ３００１に取り込まれる部分＜ｆ（ｖ）：ＰＰＯｎ１＞からなる。
【０１３３】
図１３（ｂ）は図１３（ａ）におけるスキャンフリップフロップ３００２におけるスキャンキャプチャの前と後において論理値に相違が発生する場合の一例を示す。
【０１３４】
図１（ｂ）の説明と同様であるが、図１３（ｂ）において、テストベクトル＜ｖ：ＰＰＩｎ２＞の要素である一つのビットａと、それに対応するテスト応答＜ｆ（ｖ）：ＰＰＯｎ２＞が、スキャンフリップフロップ３００２で異なる論理値を取ると、キャプチャモードの際に論理値の相違（以下、遷移とする）が発生する。ある一つのテストベクトルに対する遷移の数は、そのテストベクトルを原因とした組合せ回路部分３０００を含めた回路全般で発生する消費電力と深く関係しているため、テストベクトルに対するキャプチャ時の遷移の数を削減することで、キャプチャ時の消費電力を低減することができる。
【図面の簡単な説明】
【０１３５】
【図１】本発明の背景技術となる一般的なフルスキャン回路の構成を示した模式図である。
【図２】本発明の実施の形態に係る変換装置の概略ブロック図である。
【図３】本発明の実施の形態に係る変換装置の処理を示すフロー図である。
【図４】候補ビットの中からドントケアとできるドントケアビットが特定されたテストベクトル集合の例を示した図である。
【図５】制約表の生成のために用いる概念図である。
【図６】候補ビットの特定方法を示した図である。
【図７】ドントケアビットを含むビットペアをタイプ毎に分類した表である。
【図８】特定したドントケアビットに対して論理値の割り当てを行う場合の処理を示したフロー図である。
【図９】部分的記号Ｘシミュレーションを実行した結果の一例を示す。
【図１０】論理値を決定する規則を示した図である。
【図１１】ドントケアビットに論理値を決定する場合の例を示した図である。
【図１２】本発明における実験結果を示した表である。
【図１３】一般的なパーシャルスキャン回路の模式図を図ｎに示す。
【図１４】半導体論理回路が市場に出荷されるまでの工程を示した模式図である。
【図１５】一般的な論理回路におけるフルスキャン順序回路の模式図である。
【符号の説明】
【０１３６】
４００  変換装置
４０２  設定部
４０４  論理値決定部
【図１】
2007155339.tif 000003
【図２】
2007155339.tif 000004
【図３】
2007155339.tif 000005
【図４】
2007155339.tif 000006
【図５】
2007155339.tif 000007
【図６】
2007155339.tif 000008
【図７】
2007155339.tif 000009
【図８】
2007155339.tif 000010
【図９】
2007155339.tif 000011
【図１０】
2007155339.tif 000012
【図１１】
2007155339.tif 000013
【図１２】
2007155339.tif 000014
【図１３】
2007155339.tif 000015
【図１４】
2007155339.tif 000016
【図１５】
2007155339.tif 000017