(57)【特許請求の範囲】
【請求項１】
複数の素子を接続してなる論理回路の各信号線に、検査点を挿入した場合の回路全体のテスト容易性を表すテストコストを求めて、検査点の挿入位置と回路型を決定する論理回路検査点の解析方法において、
論理回路の各信号線のテストコストまたはその近似値を求めてテスト容易性の度合が高い順に所定数の検査点候補を選択し、前記検査点候補を挿入すると仮定した場合に前記テスト容易性が変化する影響範囲を求め、互いの影響範囲が重ならない又は重なりを無視できる検査点候補の集合を同時に新規な検査点として設定することを特徴とする論理回路検査点の解析方法。
【請求項２】
複数の素子を接続してなる論理回路の各信号線に、検査点を挿入した場合の回路全体のテスト容易性を表すテストコストを求めて、検査点の挿入位置と回路型を決定する論理回路検査点の解析方法において、
検査点の設定が無い又は有る状態で論理回路の各信号線のテストコストまたはその近似値を求め、前記テスト容易性の度合が高い順に選択した所定数の検査点候補に対し、前記検査点候補を挿入すると仮定した場合に前記テスト容易性の度合が変化する影響範囲を求め、前記テスト容易性の度合の降順に１つの候補を検査点としたときに該検査点の影響範囲に含まれない検査点候補の集合を同時に新規な検査点として設定することを特徴とする論理回路検査点の解析方法。
【請求項３】
複数の素子を接続してなる論理回路の各信号線に、検査点を挿入する場合の回路全体のテスト容易性を表すテストコストを求めて、検査点の挿入位置と回路型を決定する論理回路検査点の解析方法において、
前記論理回路に検査点の設定が無い又は有る状態で前記信号線各々のテストコストの近似値（以下、ＣＲＦ）を求め、ＣＲＦの大きな順に所定数の検査点候補を選択し、検査点候補の各々を挿入したと仮定した場合のテストコストを求め、テストコストの昇順に１つの検査点候補を検査点に設定したときに、他の検査点候補のテストコストに対する検査点影響の有無を求め、影響が無いか又は無視できる検査点候補を新規な検査点として追加すると共に、追加した検査点による他の検査点候補に対する前記検査点影響を求めて上記処理を繰り返すことを特徴とする論理回路検査点の解析方法。
【請求項４】
請求項３において、前記所定数の検査点候補の全てについて、前記検査点影響の有無による検査点の決定処理を繰り返しても所定の終了条件を満たさないとき、既決定の検査点を含む論理回路のＣＲＦを再計算し、その降順に所定数の検査点候補を再設定し、前記検査点影響を考慮した新規な検査点の決定処理を繰り返すことを特徴とする論理回路検査点の解析方法。
【請求項５】
請求項４において、前記ＣＲＦを再計算する度に更新したグループ識別情報を、以後の処理によって決定される検査点の集合に付与することを特徴とする論理回路検査点の解析方法。
【請求項６】
請求項３、４または５において、前記検査点候補から前記検査点への追加は、該当の検査点候補を挿入する信号線のテストコストが所定のしきい値を満たす場合に行なわれることを特徴とする論理回路検査点の解析方法。
【請求項７】
請求項１〜６のいずれか１項において、前記論理回路を複数の部分回路に分割し、前記テストコストおよび／または前記検査点影響の計算を、該当する検査点候補または検査点が含まれる部分回路に限定して処理することを特徴とする論理回路検査点の解析方法。
【請求項８】
複数の検査点が既に設定されている論理回路検査点の解析方法において、
前記検査点の挿入位置、回路型及び回路全体のテスト容易性を表すテストコストなどを含む回路情報に基づいて、検査点グループが未定の検査点を全て検査点候補に仮決定すると共に、前記テストコストが最小の検査点候補を検査点に決定する第１のステップと、
決定した検査点の挿入により前記テストコストが変化する影響範囲を計算し、各検査点候補をテストコストの昇順に前記影響範囲に含まれるか否か調べ、前記影響範囲に含まれない候補を新たな検査点に決定する処理を繰返し、この繰返し処理によって決定した検査点を同一グループとする相関情報を付与する第２のステップと、
前記検査点候補の全てについて前記第１のステップを実行しても、既設定の検査点数に達しないとき、前記第１のステップに戻る第３のステップと、
を含み、検査点の影響範囲が互いに交叉しないグループを示すことを特徴とする論理回路検査点の解析方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は複数素子からなる論理回路におけるテスト容易化の検査点を最適に配置するための解析方法および解析装置に関する。また、検査点の配置を改善した半導体集積回路に関する。
【０００２】
【従来の技術】
半導体集積回路のテスト容易化技術の一つに、回路中に検査点を挿入する方法がある。検査点には、信号線を１に制御する易しさ（以下、１可制御性と呼ぶ）を向上させる「１制御点」と、信号線を０に制御する易しさ（以下、０可制御性と呼ぶ）を向上させる「０制御点」と、信号線の信号値を観測できる易しさ（以下、可観測性と呼ぶ）を向上させる「観測点」がある。
【０００３】
この検査点の回路や挿入位置の解析方法については、文献Proceeding of 2nd European Test Conference（1991年）の253〜262頁に掲載されている、B.Seiss等による「Test Points Insertion for Scan-Based BIST」や、特開平６―３３１７０９号「試験可能性を改善した回路および回路の試験可能性を改善する方法」などに詳しく論じられている。
【０００４】
特に、前者の文献で述べられている検査点の解析方法は、ＣＯＰ(Controllability Observability Procedure）と呼ばれる確率的なテスト容易性尺度を用いて目的関数（以下、テストコストと呼ぶ）を定義し、それを最小化するように１つずつ検査点を決定している。すなわち、１つの検査点を求める手順として、まず検査点の候補（以下、検査点候補と呼ぶ）を、それを挿入したときのテストコストの近似値に基づいて選び、各検査点候補に対して挿入した場合の実際のテストコストを計算した後、テストコストが最小になる検査点候補を検査点に決定する。そして、この処理を検査点の個数分、繰り返す。なお、この解析方法は、乱数パターンテストの容易化に有効であることが実験により確認されている。
【０００５】
【発明が解決しようとする課題】
従来例で述べた検査点の解析方法では、大規模な論理回路に対する処理時間が膨大で、実用的には問題がある。処理時間の大部分は、最もループネストが深くなる検査点候補のテストコスト計算に費やされる。ここで、検査点候補数、検査点数がゲート数に比例すると仮定すると、最悪の場合にテストコスト計算時間がゲート数に比例し、検査点解析全体の処理時間がゲート数の３乗に比例する。一方、実用的な処理時間としては、対象となる半導体集積回路の大規模化の傾向と計算機の処理速度の向上の傾向を考慮すると、ゲート数の２乗以下に比例することが望ましい。
【０００６】
また、半導体集積回路に検査点を挿入する問題点として、回路面積のオーバーヘッドが生じる点が挙げられる。オーバーヘッドの主な要因は、検査点専用の入力素子や出力素子として用いるスキャン機能付きフリップフロップにある。
【０００７】
本発明の第１の目的は上記問題点に鑑み、論理回路における検査点の挿入位置を高速に解析する方法および装置を提供することにある。
【０００８】
本発明の第２の目的は、挿入する検査点回路のオーバーヘッドを低減した半導体集積回路を提供することにある。
【０００９】
本発明の第３の目的は、既定の検査点情報を基に、検査点回路のオーバーヘッド低減が可能な範囲を示す検査点相関情報の解析方法を提供することにある。
【００１０】
【課題を解決するための手段】
上記第１の目的は、複数の素子を接続してなる論理回路の各信号線に、検査点を挿入した場合のテスト容易度を求めて、検査点の挿入位置と回路型を決定する論理回路検査点の解析方法において、論理回路の各信号線のテストコストまたはその近似値を求めてテスト容易性の度合が高い順に所定数の検査点候補を選択し、前記検査点候補を挿入すると仮定した場合に前記テスト容易性が変化する影響範囲を求め、互いの影響範囲が重ならない又は重なりを無視できる検査点候補の集合を同時に新規な検査点として設定することによって達成される。
【００１１】
または、前記検査点候補に対し、前記テスト容易性の度合の降順にその１つを検査点としたときに、該検査点の前記影響範囲に含まれない検査点候補の集合を同時に新規な検査点として設定することによって達成される。
【００１２】
あるいは、前記論理回路に検査点の設定が無い又は有る状態で前記信号線各々のテストコスト（たとえば、ＣＯＰ）の近似値（たとえば、ＣＲＦ）を求め、ＣＲＦの大きな順に所定数の検査点候補を選択し、検査点候補の各々を挿入したと仮定した場合のテストコストを求め、テストコストの昇順に１つの検査点候補を検査点に決定したときに、他の検査点候補のテストコストに対する検査点影響の有無を求め、影響が無い又は無視できる検査点候補を新規な検査点として追加すると共に、追加した検査点による他の検査点候補に対する前記検査点影響を求めて上記処理を繰り返すことによって達成される。
【００１３】
前記所定数の検査点候補の全てについて、前記検査点影響の有無による検査点の決定処理を繰り返しても所定の終了条件を満たさないときは、既決定の検査点を含む論理回路のＣＲＦを再計算し、その降順に所定数の検査点候補を再設定し、前記検査点影響を考慮した新規な検査点の決定処理を繰り返す。
【００１４】
あるいは、前記検査点候補から前記検査点への追加は、前記検査点影響が無いこと、該検査点候補のテストコストが所定のしきい値を満たしていることの２つを、条件として決定されることを特徴とする。
【００１５】
本発明の方法を適用した論理回路検査点の解析装置は、前記論理回路に検査点の設定が無い又は有る状態で、各信号線に検査点を挿入すると仮定した場合の信号線のテストコストまたはその近似値を計算し、その中からテスト容易性の度合が高い順に所定数の検査点候補を選択する検査点指標計算部と、直前に設定された検査点によって、前記検査点候補のテスト容易性の度合に影響が有るか無いかを求める検査点影響計算部と、最初に最もテスト容易性の度合が高い検査点候補を検査点に設定し、設定された検査点との間で前記影響の無い検査点候補を次の検査点とする繰返し処理を行なう検査点決定部を備える。
【００１６】
また、前記検査点決定部は、検査点の設定により前記テスト容易度が変化する影響範囲が前記論理回路中で互いに交わらない検査点同士を同一グループとする検査点相関情報を出力することを特徴とする。
【００１７】
上記第２の目的は、複数の素子を接続した論理回路の中で、相対的にテストコストの低い複数の信号線に制御点を挿入してなる半導体集積回路において、前記制御点の挿入により前記テストコストの変化する影響範囲が互いに交わらない各制御点のテストデータ入力信号線が所定の素子に接続され、該素子は１つの外部入力素子、スキャン機能付きフリップフロップまたはテストデータ入力信号線の何れかに信号値を設定できるように接続されることにより達成される。
【００１８】
上記第３の目的は、複数の検査点が既に設定されている論理回路検査点の相関情報の解析方法において、前記検査点の挿入位置、回路型及びテストコストなどを含む回路情報に基づいて、検査点グループが未定の検査点を全て検査点候補に仮決定すると共に、テストコストが最小の検査点候補を検査点に決定する第１のステップと、決定した検査点の挿入によりテストコストが変化する影響範囲を計算し、各検査点候補をテストコストの昇順に前記影響範囲に含まれるか否か調べ、前記影響範囲に含まれない候補を新たな検査点に決定する処理を繰返し、この繰返し処理によって決定した検査点を同一グループとする相関情報を付与する第２のステップと、前記検査点候補の全てについて前記第１のステップを実行しても、既設定の検査点数に達しないとき、前記第１のステップに戻る第３のステップと、を含むことにより達成される。
【００１９】
【発明の実施の形態】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。図１は、一実施例による論理回路検査点の解析装置の構成を示す。本解析装置は、論理回路の素子や信号線に関する情報を入力する入力装置１０１と、検査点の型や挿入位置の演算を行なう演算処理装置１０２と、回路情報１２２、検査点指標情報１２３、検査点影響情報１２４、検査点情報１２５及び検査点相関情報１２６などを記憶する記憶装置１０３と、演算結果である検査点情報などを出力するデータ出力装置１０４からなる。
【００２０】
回路情報１２２は、論理回路における各素子の種別、素子間を接続する信号線の情報、仮定故障の情報、検査点の挿入が可能か否かに関する情報を含む。検査点指標情報１２３は、回路全体のテスト容易性を反映した数値情報で、検査点候補の集合の各要素に対して検査点指標を対応させたテーブルで表わされる。
【００２１】
ここで、検査点候補は信号線名と検査点型の組で表す。信号線名は、回路情報１２２で与えられる信号線の位置を特定する名称である。検査点型は、「１制御点」、「０制御点」、「観測点」等である。
【００２２】
検査点影響情報１２４は、挿入された１つまたは複数の検査点による検査点指標情報の変化の有無を表し、検査点候補に対する検査点影響情報と、その計算に必要な信号線に対するものとがある。信号線に対する検査点影響情報は、信号線名と検査点影響の組で、検査点候補に対する検査点影響情報は、検査点候補と検査点影響の組で表される。
【００２３】
検査点情報１２５は、検査点の挿入位置と回路に関する情報を、信号線名と検査点型の組で表す。検査点相関情報１２５は、検査点挿入により検査点指標情報が変化する回路中の範囲（以下、検査点影響範囲と呼ぶ）が互いに交わらない検査点グループの情報を、検査点と検査点グループの識別番号の組で表す。なお、検査点情報１２５や検査点相関情報１２６の追加、修正、あるいは新たな検査点相関情報１２６を作成する際に、データ入力装置１０１から回路情報１２２の他に検査点情報１２５を直接、入力することもある。
【００２４】
演算処理装置１０２は、回路情報１２２から検査点指標情報１２３を計算する検査点指標計算部１１１と、信号線に対する検査点影響情報と検査点候補に対する検査点影響情報を計算する検査点影響計算部１１３と、検査点指標情報１２３や検査点影響情報１２４に基づき、検査点や検査点相関情報を計算する検査点決定部１１２からなる。
【００２５】
図２は、論理回路検査点解析装置の処理手順を示すフローチャートである。ステップＳ１０１はデータ入力処理で、データ入力装置１０１により回路情報１２２を入力し、記憶装置１０３に格納する。回路情報１２２の他に検査点情報１２５が入力される場合は、その検査点情報１２５を反映するように回路情報１２２を更新する。
【００２６】
ステップＳ１０２は検査点指標計算部１１１による検査点指標計算処理で、回路情報１２２から検査点候補の集合と各検査点候補に対する検査点指標を計算し、検査点指標情報１２３を作成する。ステップＳ１０３は検査点決定部１１２による初期検査点決定処理で、検査点指標情報１２３に基づいて最も検査容易性の高い検査点候補を選択し、それを検査点情報１２５に初期登録する。
【００２７】
ステップＳ１０４は検査点影響計算部１１３による検査点影響計算処理で、検査点情報１２５に登録した直前の検査点の影響範囲を計算し、各検査点候補について検査点影響の有無を調べ、検査点影響情報１２４を作成する。
【００２８】
ステップＳ１０５は検査点決定部１１２による相関考慮検査点決定処理で、検査点指標情報１２３による検査点候補のうち、ステップＳ１０４による検査点影響が「無」で、検査点指標が所定のしきい値を越えるものを新規検査点に決定し、検査点情報１２５に登録する。
【００２９】
ステップＳ１０６は、検査点を新規に決定したか判定し、新規決定があれば再びステップＳ１０４に戻る。そして、直前の検査点の影響範囲を計算し、各検査点候補について検査点影響の有無を調べ、検査点影響が「無」で、検査点指標が所定のしきい値を越えるものがあれば、さらに新たな検査点として検査点情報１２５に登録する処理を繰り返す。これによって、影響範囲の交わりの無い検査点は、検査点指標の再計算を行なうことなく同時処理できる。
【００３０】
なお、Ｓ１０４〜Ｓ１０６のループで同時処理される検査点は、回路中への影響範囲が互いに交わらない検査点のグループとして、同一グループ番号を付与し検査点相関情報１２６に記憶する。
【００３１】
ステップＳ１０６では、検査点が新規に決定されない場合は、ステップＳ１０７で予め設定されている検査点解析処理の終了条件について判定する。終了条件を満足しない場合はステップＳ１０２に戻り、既に決定されている検査点を含んで論理回路の検査点指標計算処理を行なう。そして、検査点指標に基づき、既検査点を除く検査点候補の再決定と、初期検査点決定処理を行ない、上記した処理を繰り返す。終了条件は、たとえば検査点数の上限、検査点指標のしきい値、処理時間のリミット等による。
【００３２】
終了条件を満足する場合は、ステップＳ１０８へ進み、データ出力装置１０４により、記憶装置１０３に格納されている検査点情報１２５と検査点相関情報１２６を、論理回路検査点解析装置の結果として出力する。なお、検査点相関情報１２６を出力する必要がない場合は、ステップＳ１０５における検査点相関情報１２６の作成、ステップＳ１０８における検査点相関情報１２６の出力は省略してもよい。
【００３３】
ここで、検査点解析処理の詳細説明の前提として、論理回路と検査点の回路及び検査点影響範囲について説明する。図３は、論理回路と検査点の回路例で、同図（ａ）は、検査点挿入前の回路例で、ＡＮＤゲート、ＯＲゲート、ＮＡＮＤゲート、ＮＯＲゲート及び入／出力端子からなる論理回路である。故障集合に関しては、各ゲートの出力線、すなわち、信号線２０１〜２０６と、信号線２１２〜２１６が信号値０に縮退する故障（０縮退故障）と信号値１に縮退する故障（１縮退故障）を仮定する。
【００３４】
図３（ｂ）は、同図（ａ）の回路に、４つの検査点を挿入した回路例である。信号線２０２には１制御点２５１、信号線２１２には０制御点２６１、信号線２０３には観測点２７１、信号線２１３には観測点２８１が挿入されている。
【００３５】
１制御点２５１は、信号線２０２の１可制御性を向上させる。２入力ＯＲゲート２５３とスキャン機能付きフリップフロップ２５４から構成され、ＯＲゲート２５３の入力線は、信号線２０２の入力側部分２５２に接続する通常入力線と、スキャン機能付きフリップフロップ２５４に接続するテストデータ入力線である。ＯＲゲート２５３の出力線は信号線２０２に接続する。なお、スキャン機能付きフリップフロップ２５４は、テスト時にはスキャンチェーンで入力される信号値を出力するが、通常動作時は常に信号値０を出力する。
【００３６】
０制御点２６１は、信号線２１２の０可制御性を向上させる。２入力ＡＮＤゲート２６３とスキャン機能付きフリップフロップ２６４から構成され、ＡＮＤゲート２６３の入力線は、信号線２１２の入力側部分２６２に接続する通常入力線と、スキャン機能付きフリップフロップ２６４に接続するテストデータ入力線である。ＡＮＤゲート２６３の出力線は信号線２１２に接続する。スキャン機能付きフリップフロップ２６４は、テスト時にはスキャンチェーンで入力される信号値を出力するが、通常動作時は常に信号値１を出力する。
【００３７】
観測点２７１は、信号線２０３の可観測性を向上させる。信号線２０３から分岐した信号線２７２に、スキャン機能付きフリップフロップ２７３が接続する。同様に、観測点２８１は、信号線２１３の可観測性を向上させる。信号線２１３から分岐した信号線２８２に、スキャン機能付きフリップフロップ２８３が接続する。
【００３８】
図４に、検査点影響範囲の説明図を示す。同図（ａ）は、制御点の影響範囲を示す。論理回路４０１の入力素子群を４０２、出力素子群を４０３とする。制御点４０４による可制御性の変化のある範囲は、制御点４０４が位置する信号線から出力側に接続された縦縞の部分回路４０５である。また、制御点４０４による可観測性の変化のある範囲は、部分回路４０５と、部分回路４０５に含まれる出力から入力側に接続された横縞の部分回路４０６である。これらの部分回路４０５，４０６では、可制御性、可観測性またはその両方が変化するため、部分回路内にある信号線上の検査点候補はその検査点指標情報が変化する。したがって、部分回路４０５、４０６に含まれる信号線に対する検査点影響情報は「有」であり、それ以外の例えば、部分回路４０７に含まれる信号線に対する検査点影響情報は「無」である。
【００３９】
図３（ｂ）の具体例でみると、制御点２５１による可制御性の変化のある範囲は、信号線２０２、２０３、２０５、２０６である。また、制御点２５１による可観測性の変化のある範囲は、信号線２０６、２０５、２０４、２０３、２０２、２０１となる。
【００４０】
図４（ｂ）に、観測点の影響範囲を示す。論理回路４１１の入力素子群を４１２、出力素子群を４１３とする。観測点４１４による可観測性の変化のある範囲は、観測点４１４が位置する信号線から入力側に接続された部分回路４１５である。なお、観測点４１４による可制御性の変化はない。この部分回路４１５では、可観測性が変化するため、その部分回路内にある信号線上の検査点候補は検査点指標情報が変化する。したがって、部分回路４１５に含まれる信号線に対する検査点影響情報は「有」であり、それ以外の部分回路４１６に含まれる信号線に対する検査点影響情報は「無」である。
【００４１】
図５に、２つの検査点の影響範囲の交わりに関する説明図を示す。図中、論理回路５０１の入力素子群を５０２、出力素子群を５０３、制御点５０４とする。また、領域５０５は制御点５０４の検査点影響範囲を表す。以下、（ａ）ある検査点が他の検査点影響範囲に含まれる場合、（ｂ）２つの検査点影響範囲が互いに交わらない場合、（ｃ），（ｄ）２つの検査点影響範囲に交わりがあるがどちらの検査点も他方の検査点影響範囲には含まれない場合を説明する。
【００４２】
図５（ａ）は、制御点５０６が制御点５０４の影響範囲に含まれている。この場合、２つの制御点が強相関であると呼ぶことにする。この強相関の関係については、制御点と観測点の場合、２つの観測点の場合も同様に定義できる。仮に、２つの検査点候補が強相関である場合、どちらかを検査点に決定すると、他方の検査点影響範囲における可制御性／可観測性は変化するため、検査点指標情報を更新する必要がある。
【００４３】
図３（ｂ）の具体例でみると、制御点２５１による強相関の範囲は信号線２０１、２０２〜２０６となる。また、制御点２６１による強相関の範囲は信号線２０１、２１２〜２１６となる。
【００４４】
図５（ｂ）は、制御点５１６の検査点影響範囲５１７は制御点５０４の検査点影響範囲５０５と交わりがない。この場合、２つの制御点は独立であると呼ぶことにする。この独立の関係については、制御点と観測点の場合、２つの観測点の場合も同様に定義できる。２つの検査点候補が独立である場合、どちらかを検査点に決定しても、他方の検査点影響範囲における可制御性／可観測性は変化しないため、検査点指標情報を更新する必要がない。
【００４５】
図５（ｃ）は、制御点５２６の検査点影響範囲５２７は制御点５０４の検査点影響範囲５０５と交わりがあるが、制御点５２６は制御点５０４の検査点影響範囲５０５に含まれていないし、制御点５０４は制御点５２６の検査点影響範囲５２７に含まれていない。この場合、２つの制御点が弱相関であると呼ぶことにする。図３（ｂ）の具体例でみると、制御点２５１と制御点２６１の影響範囲は、信号線２０１で交わっている。
【００４６】
２つの制御点の検査点候補が弱相関である場合、どちらかを検査点に決定すると、他方の検査点影響範囲における可制御性は変化しないが、可観測性は一部変化する。そのため、厳密には検査点指標情報を更新する必要がある。しかし、発明者等のテストによれば、弱相関の検査点候補を検査点影響「無」と扱っても、実用上は問題がないことが確認されている。もちろん、検査点指標の再計算を行なうか否かは、最大処理時間、検査点挿入位置の最適性等の目的に応じて決定するようにしてもよい。
【００４７】
図５（ｄ）は、観測点５３６の検査点影響範囲５３７は制御点５０４の検査点影響範囲５０５と交わりがあるが、観測点５３６は制御点５０４の検査点影響範囲５０５に含まれていないし、制御点５０４は観測点５３６の検査点影響範囲５３７に含まれていない。この場合、２つの検査点候補が弱相関であり、一方を検査点に決定すると、他方の検査点影響範囲における可観測性は一部変化する。なお、弱相関の関係については、制御点と観測点の場合は（ｃ），（ｄ）のように同様に定義できるが、２つの観測点の場合は定義しない。
【００４８】
以下、図２の各ステップで行なわれる演算処理装置の各部の処理手順を順に説明する。図６は、ステップＳ１０２の検査点指標計算処理の詳細フローを示す。本処理は検査点指標計算部１１１で行なわれ、検査点指標として上述のＣＯＰと呼ばれる確率的なテスト容易性の尺度を求めるが、テスト容易化の効果を表す指標であればこれに限られない。
【００４９】
ステップＳ２０１で、まず検査点挿入前のＣＯＰを計算する。ＣＯＰの計算は、入力から出力側に向かって可制御性（１可制御性）を計算し、出力から入力側に向かって可観測性を計算する。そして、仮定された各故障に対し、故障のある信号線において正常時と故障時では異なる信号値となる確率と、その信号線の故障を観測できる確率を掛け合わした数値である、故障検出確率を計算する。すなわち、０縮退故障の故障検出確率は、１可制御性と可観測性の積であり、１縮退故障の故障検出確率は、０可制御性と可観測性の積である。なお、「０可制御性＝１−１可制御性」である。さらに、目標関数であるテストコストを、全故障に対して故障検出確率の逆数を加えた数値として定義する。これは、１つの故障を検出するためのテストパターン数の期待値と等価な値であり、回路全体のテスト容易性を反映するので、コストが小さいほどテスト容易性が高い。
【００５０】
ステップＳ２０２では、各信号線において、可観測性に関するテストコストの微分係数と、可制御性に関するテストコストの微分係数を計算する。計算方法の詳細は、文献 IEEE Transactions on Computer-Aided Design Vol.CAD-6(1987)1082〜1087頁に掲載されているR.Lisanke等による「Testability-Driven Random Test-Pattern Generation」に記述されている。
【００５１】
ステップＳ２０３では、ＣＲＦ（Cost Reduction Factor）と呼ばれる、検査点挿入によるテストコストの差分（ＡＣＲ；Actual Cost Reduction）の近似値、すなわち検査点を挿入する前のテストコストから検査点（候補）を挿入した場合のテストコストを引いた値の近似値を、各検査点候補について計算する。検査点候補となる信号線には、制御点挿入可能な信号線と観測点挿入可能な信号線とがあり、ＣＲＦの値によって選択される。
【００５２】
ＣＲＦの計算方法の詳細は、前掲B.Seiss等の文献で述べられているが、制御点のＣＲＦｃと観測点のＣＲＦｏがある。なお、ＣＲＦはＡＣＲとよい相関を示し、ＣＲＦの値が大きい信号線ほど検査点を挿入するのが望ましい。ただし、ＣＲＦは近似値であるために、精度が要求される場合は、実際に検査点の挿入した場合のテストコストを計算する必要がある。
【００５３】
ステップＳ２０４では、ＣＲＦに基づいて条件を満たすものを検査点候補とし、その集合を作成する。検査点候補となるＣＲＦの条件は、ＣＲＦの降順で予め定めておいた検査点個数の上限や、ＣＲＦの最大値に対する一定割合以上などである。ＣＲＦｃ値から選ばれた検査点候補は制御点候補、ＣＲＦｏ値から選ばれた検査点候補は観測点候補となる。
【００５４】
ステップＳ２０５とステップＳ２０６により、作成した検査点候補の集合の全要素に対し、検査点候補を挿入した場合のＣＯＰ（可制御性、可観測性、テストコスト）を計算する。それにより、検査点候補とテストコストの組の集合である、検査点指標情報１２３を作成する。
【００５５】
図７は、ステップＳ１０３の初期検査点決定処理の詳細フローを示す。本処理は検査点決定部１１２で行なわれる。
【００５６】
ステップＳ３０１では、検査点影響情報１２４の内容をすべて検査点影響「無」にクリアする。すなわち、全信号線に対する検査点影響を「無」に、全検査点候補に対する検査点影響を「無」に設定する。ステップＳ３０２では、検査点相関情報１２６のグループ番号に、その時点まで使われていない新グループ番号を設定する。ステップＳ３０３では、検査点指標情報１２３の中で、検査点指標が最良の検査点、すなわち、テストコストが最小の検査点候補を検査点として決定し、検査点情報１２５に信号線名と検査点の型を登録する。そして、ステップＳ３０５で、回路情報１２２を検査点を挿入した回路情報に更新する。
【００５７】
図８は、ステップＳ１０４の検査点影響計算処理の詳細フローを示す。本処理は検査点影響計算部１１３で行なわれる。ここでは、ある検査点と弱相関となる検査点候補は、その検査点影響を「無」としている。
【００５８】
ステップＳ４０１で、直前に決定した検査点の検査点影響範囲を計算し、その影響範囲にある信号線に対し検査点影響を「有」に設定する。検査点影響範囲外にある信号線に対する検査点影響は更新しない。次に、ステップＳ４０２で、検査点候補挿入位置について求めた検査点影響の「有」／「無」を設定する。これをステップＳ４０３で、全部の検査点候補について繰返し実行する。
【００５９】
本処理手順によれば、検査点影響計算処理（Ｓ１０４）の処理時間は、回路情報から信号線間の接続関係を探索する処理なので、対象となる素子数がゲート数以下となり、最悪の場合でゲート数に比例する。したがって、ＣＯＰ（可制御性、可観測性、テストコスト）を計算する検査点指標計算処理Ｓ１０２よりは十分小さく、検査点解析処理全体における処理時間のネックにならない。
【００６０】
図９は、ステップＳ１０５の相関考慮検査点決定処理の詳細フローである。本処理は、検査点決定部１１２によって行なわれる。
【００６１】
ステップＳ５０１で、検査点指標情報１２３を用いて、検査点候補の集合を検査点指標が良い順にソートし、検査点候補の番号を１から順に与える。検査点指標がテストコストの場合は、ソート順はテストコストの数値の昇順となる。以降の処理で、検査点指標のソート順に検査点候補を処理するために、ステップＳ５０２で、対象となる検査点候補の番号Ｎを１に設定する。
【００６２】
ステップＳ５０３で、検査点候補対象番号Ｎと検査点候補数を比較し、全ての検査点候補を処理したか判定する。番号Ｎが検査点候補数以下のとき、ステップＳ５０４で、検査点候補Ｎに対する検査点影響が「無」であるか判定し、さらに、ステップＳ５０５で、検査点影響が「無」の検査点候補Ｎが検査点指標条件を満たすか判定する。２つの条件を満たさない場合は、ステップＳ５０６で、対象となる検査点候補の番号Ｎを１増加し、ステップＳ５０３に戻る。
【００６３】
２つの条件を満たす場合、ステップＳ５０７で、検査点候補Ｎの信号線名と検査点型を検査点情報１２５に１つ追加登録し、ステップＳ５０８で、直前に登録した検査点に対応する検査点グループ番号（図７のＳ３０２で設定した番号）を検査点相関情報１２６に設定する。さらに、ステップＳ５０９で、直前に登録した検査点を挿入して回路情報１２２を更新し、ステップＳ５１０で処理を終了し、新規決定検査点ありの戻り値を返す。新規決定検査点ありの戻り値のとき、図２のステップＳ１０６は制御をＳ１０４に戻す。
【００６４】
一方、ステップＳ５０３で、検査点候補対象番号Ｎが検査点候補数より大きいとき、すなわち、全ての検査点候補がステップＳ５０４、Ｓ５０５の２つの条件を満たされないとき、ステップＳ５１１で処理を終了し、新規決定検査点なしの戻り値を返す。この戻り値のとき、図２のステップＳ１０７において、終了条件を判定し満たしていなければ、制御をステップＳ１０２に戻す。
【００６５】
ステップＳ５０５における検査点指標条件は、例えば検査点指標が上述のＣＯＰによるテストコストの場合、「検査点候補挿入後のテストコストと検査点候補挿入前のテストコストとの差分が、直前に決定した検査点挿入後のコストと検査点挿入前のコストとの差分に所定数を乗じた値より大きい」ことによる。すなわち、処理順による検査点候補のテストコストは昇順となっているので、直前の差分の一定割合と今回の差分を比較し、後者の差分があるていど大きな範囲の間、すなわちテストコスト低減の効果が期待できる間は処理を繰り返す。しかし、挿入する検査点候補のテストコストが大になり、テストコスト低減の効果が期待できない検査点指標条件に達すると、処理が打ち切られる。
【００６６】
以上、本実施例による論理回路検査点解析装置の構成と処理手順を説明した。次に、図３（ａ）の論理回路に適用した具体的な動作を、図２の処理フローに従って説明する。なお、ステップＳ１０７の終了条件は、ここでは新規決定される検査点数＝４とする。
【００６７】
まず、ステップＳ１０１で、回路情報１２２として図３（ａ）の情報を入力する。なお、仮定故障は、各素子の出力線、すなわち、信号線２０１〜２０６、２１２〜２１６上の０縮退故障と１縮退故障とする。また、制御点、観測点が挿入可能な信号線は、ともに各素子の出力線、すなわち、信号線２０１〜２０６、２１２〜２１６とする。
【００６８】
次に、ステップＳ１０２の計算過程であるステップＳ２０１〜Ｓ２０３で、ＣＯＰ等の数値が求まる。図１０（ａ）に、ＣＯＰ、微分係数及ＣＲＦの計算値のテーブルを示す。
【００６９】
図中、列１０１１は、図３（ａ）における信号線の番号を示す。列１０１２〜列１０１５はステップＳ２０１で計算される数値で、列１０１１の信号線に対する１可制御性（Ｃ）、可観測性（Ｏ）、０縮退故障の故障検出確率（Ｐ（０））、１縮退故障の故障検出確率（Ｐ（１））である。ステップＳ２０１では、列１０１４と列１０１５の各数値の逆数を積算した、テストコスト１０２０も計算している。本例の論理回路の場合、故障検出確率が最小となる故障は信号線２０３の０縮退故障で、その確率は「０．００１」であり、テストコストは「１８１０」となる。
【００７０】
列１０１６と列１０１７は、ステップＳ２０２で計算される数値で、可観測性に関するテストコストの微分係数（ｄＵ／ｄＯ）、１可制御性に関するテストコストの微分係数（ｄＵ／ｄＣ）である。なお、ｄＵ／ｄＣが正のとき、１可制御性を小さくすればテストコストも小さくなるので、０制御点挿入が望ましい。またく、ｄＵ／ｄＣが負のとき、１可制御性を大きくすればテストコストは小さくなるので、１制御点挿入が望ましい。列１０１８と列１０１９は、ステップＳ２０３で計算されるＣＲＦで、観測点を挿入した場合のＣＲＦｏ、制御点を挿入した場合のＣＲＦｃである。
【００７１】
次に、ステップＳ２０４〜Ｓ２０６の計算で、図１１（ａ）の列１１０２〜列１１０５に示す検査点指標情報１２３が求まる。列１１０２は、検査点候補であり、信号線１１０３と検査点型１１０４の組で表される。検査点候補の集合は、ステップＳ２０４で、図１０（ａ）のＣＲＦｏ及びＣＲＦｃから値が大きいもの５個を選択している。また、１制御点と０制御点の選択は候補点の微分係数ｄＵ／ｄＣによっている。列１１０５は、検査点指標となるテストコストで、ステップＳ２０５、Ｓ２０６で、検査点候補挿入後のＣＯＰを計算して求めている。
【００７２】
図１１（ａ）に示された検査点指標情報１２３に基づいて、ステップＳ１０３の初期検査点決定処理が行なわれる。なお、この処理以降で用いる検査点影響情報１２４について、検査点候補に対する検査点影響情報を図１１（ａ）の列１１１１〜列１１１３に、信号線に対する検査点影響情報を図１２（ａ）の列１２０２〜列１２０４に示す。検査点影響情報は、「有」か「無」で示される。
【００７３】
初期処理のステップＳ３０１では、列１１１１のように検査点候補に対する検査点影響（１）をすべて「無」に、列１２０２のように信号線に対する検査点影響（１）をすべて「無」に設定する。そして、ステップＳ３０２で、検査点相関情報１２６のグループ番号を１に設定する。次に、ステップＳ３０３で、図１１（ａ）の列１１０５から、テストコストが最小の検査点候補である信号線２０２の「１制御点」を選択し、検査点として検査点情報１２５に登録する。
【００７４】
図１３に検査点情報のテーブルを示す。同図（ａ）の列１３０１〜列１３０４のように、決定した検査点１３０２を信号線１３０３と検査点型１３０４の組で表す。ここでは、検査点番号１の欄に、信号線として２０２、検査点型として「１制御点」を格納する。そして、ステップＳ３０４で、検査点相関情報１２６として、列１３０５に示すように、検査点グループ番号１を格納する。
【００７５】
次に、ステップＳ１０４の検査点影響計算処理による、検査点影響情報１２４の設定とその遷移を説明する。ここでは、ある検査点と弱相関となる検査点候補に対して、検査点影響情報を「無」としている。
【００７６】
ステップＳ４０１で、検査点番号１の検査点影響範囲を計算し、信号線に対する検査点影響情報を更新する。信号線２０２の「１制御点」による影響は、上述したように、可制御性に変化のある範囲が信号線２０２から出力側へ信号線２０３、２０５、２０６である。また、可観測性に変化のある範囲は可制御性に変化のある出力部である信号線２０５、２０６から逆に入力側に接続する信号線であり、信号線２０１〜２０６である。したがって、各信号線に対する検査点番号１の影響範囲は、図１２（ａ）の列１２０３のように、信号線２０１〜２０６が「有」で、それ以外の信号線が「無」となる。
【００７７】
ステップＳ４０２とＳ４０３で、検査点番号１による信号線に対する検査点影響を示す列１２０３に基づいて、検査点候補に対する検査点影響情報を図１１（ａ）の列１１１２のように設定する。検査点候補の番号１、２、３に対しては、対応する信号線２０３、２０４、２０５の検査点影響「有」が設定される。検査点候補の番号４、５に対しては、対応する信号線２１２、２１３の検査点影響「無」が設定される。
【００７８】
次に、ステップＳ１０５の相関考慮検査点決定処理による、検査点情報１２５および検査点相関情報１２６の設定と遷移について説明する。
【００７９】
ステップＳ５０１で、図１１（ａ）の列１１０２〜１１０５の検査点指標情報を、検査点指標（テストコスト）１１０５の昇順に並び換える。図示の列１１０１は昇順に並び換えた番号を示している。ステップＳ５０２からステップＳ５０６で、番号２の検査点候補から順に、ステップＳ５０４による検査点影響が「無」で、ステップＳ５０５による検査点指標条件を満たすか判定する。
【００８０】
ここでの検査点指標条件は、検査点候補挿入後のテストコスト（たとえば、検査点候補番号２では８９４）と検査点挿入前のテストコスト（１８１０）との差分が、直前の検査点である番号１の挿入後のテストコスト（８７１）と検査点挿入前のテストコスト（１８１０）との差分に、０．１を乗じた値（９３．９）より大きいことをしきい値とする。この指標条件は、検査点候補挿入後の検査点指標が１７１６．１より小さいことと同値であり、番号２から番号５までのすべての検査点候補はこの条件を満たす。
【００８１】
したがって、検査点番号１による検査点影響が「無」で、検査点指標情報条件を満たす検査点候補は番号４、５となるが、まずテストコストの小さい候補番号４（信号線２１２の「０制御点」）が選択される。そして、ステップＳ５０７で、図１３（ａ）の検査点番号２の欄に、候補番号４の検査点候補に対応する信号線と検査点型を登録する。また、ステップＳ５０８で、検査点番号２の検査点に対応する検査点グループ番号＝１を設定する。さらに、ステップＳ５１０で、新規決定検査点ありの戻り値を返し、相関考慮検査点決定処理３０５を終了する。
【００８２】
次に、ステップＳ１０６では、検査点が新規に決定されているので、ステップＳ１０４の検査点影響計算処理に戻る。直前に決定した信号線２１２の「０制御点」の検査点影響範囲は、信号線２０１、２１２、２１３、２１４、２１５、２１６となるので、これらの信号線に対する検査点影響情報を全て「有」に設定する。この結果、信号線に対する検査点影響（３）は、図１２（ａ）の列１２０４のように遷移する。さらに、検査点候補に対する検査点影響（３）は、図１１（ａ）の列１１１３のようになる。
【００８３】
次に、再度、ステップＳ１０５の相関考慮検査点決定処理に進む。この時点での検査点候補に対する検査点影響情報１１１３によれば、検査点影響情報が「無」である検査点候補が皆無である（候補番号５も「有」に遷移している）。このため、図９のステップＳ５１１で、相関考慮検査点決定処理を終了し、新規決定検査点なしという戻り値を返す。この戻り値により、ステップＳ１０７では、終了条件を満たすか判定する。現在の設定検査点数は２個であり、終了条件の検査点数＝４を満たしていないので、ステップＳ１０２に戻る。
【００８４】
ステップＳ１０２の検査点指標計算処理では、まず、図１０（ｂ）の列１０３１〜１０３５のように、検査点情報に登録された検査点１、２を挿入した論理回路についてＣＯＰを計算し、テストコスト１０４０を計算する。テストコストを計算する際の対象となる故障として、この例では図１０（ｂ）の列１０３１の信号線上の故障の他に、挿入した検査点に含まれる素子の出力線上の故障も考慮している。そして、図１０（ｂ）の列１０３６〜１０３９のように、テストコストの微分係数及びＣＲＦを計算する。このＣＲＦに基づいて、値が大きいものから５個を検査点候補として選び、各検査点候補に対する検査点指標（テストコスト）を計算する。作成された検査点指標情報を、図１１（ｂ）の列１１２２〜１１２５に示す。
【００８５】
次のステップＳ１０３の初期検査点決定処理では、まず、信号線に対する初期の検査点影響（１）を図１２（ｂ）の列１２１２のように、また、検査点候補に対する検査点影響（１）を図１１（ｂ）の列１１３１のように、全て「無」にクリアする。そして、テストコストが最小の検査点候補である信号線２０３の観測点を、検査点番号３の検査点に選択して、検査点情報１２５に登録する。ここでの検査点グループ番号は「２」となる。この時点における検査点情報と検査点相関情報を、図１３（ｂ）の検査点番号１〜３に示す。
【００８６】
さらに、ステップＳ１０４の検査点影響計算処理で、検査点番号３の観測点による検査点影響範囲を計算する。信号線に対する検査点影響（２）を図１２（ｂ）の列１２１３に、検査点候補に対する検査点影響（２）を図１１（ｂ）の列１１３２に示す。
【００８７】
ステップＳ１０５の相関考慮検査点決定処理では、検査点影響（２）が「無」で、検査点指標条件を満たす検査点候補の中で、テストコストが最小である信号線２１３の観測点が、検査点番号４の検査点として検査点情報１２５に登録される。検査点グループ番号は「２」である。この時点における検査点情報と検査点相関情報を、図１３（ｂ）の番号１〜４に示す。
【００８８】
この結果、ステップＳ１０７で、検査点数＝４の終了条件を満たすので、ステップＳ１０８のデータ出力処理へと進む。データ出力処理では、検査点情報１２５と検査点相関情報１２６として、図１３（ｂ）の内容を出力する。
【００８９】
以上により、図３（ａ）の論理回路は検査点を挿入されて図３（ｂ）となる。各検査点は、検査点番号１から順に、「１制御点」２５１、「０制御点」２６１、「観測点」２７１、「観測点」２８１となる。
【００９０】
図３（ｂ）の論理回路に対してＣＯＰを計算した結果を図１０（ｃ）に示す。列１０６０に示したテストコストは「２５２」で、図１０（ａ）に示した検査点挿入前のテストコスト「１８１０」に比べて大幅に改善されていることがわかる。さらに、最小となる故障検出確率は、信号線２０１上の０縮退故障の「０．０２７８」であり、検査点挿入前の最小故障検出確率「０．００１０（信号線２０３上の０縮退故障）」に比べて大幅に改善されている。したがって、図２（ａ）で示される論理回路に比べて、図２（ｂ）で示される検査点挿入後の論理回路は、テスト容易性が高いと認められる。
【００９１】
ここで、図２に示した本実施例の検査点解析の処理時間について考察する。解析における大部分の処理時間は、ステップＳ１０２の検査点指標計算処理において、検査点候補挿入後のＣＯＰ計算（Ｓ２０５）に費やされる。この処理は、ステップＳ１０２〜Ｓ１０７のループ中における、ステップＳ２０５〜Ｓ２０６のループ処理であり、最もループのネストが深くなるためである。後者のループ回数は検査点候補数となる。一方、前者のループ回数は、終了条件とした全検査点数）から相関考慮検査点決定処理３０５のみで決定した検査点数を差し引いた数となる。すなわち、後者のみで検査点を決定した分だけ処理時間を短縮できることがわかる。
【００９２】
さらに、検査点の解析全体の処理時間に関して見積もる。まず、相関考慮検査点決定処理１０５で指摘する検査点数は、ゲート数の１／２乗ていどで増加すると予想できる。これは、論理回路の大規模化に対し、論理回路における素子の段数はあまり変わらず、入出力素子、記憶素子数が増加するためで、論理回路内の相関のない部分回路の数が増加するためである。また、検査点候補数、検査点数およびＣＯＰの計算時間がゲート数に比例すると仮定すると、検査点解析処理全体の処理時間は、最悪の場合でゲート数の２．５乗に比例する。なお、ＣＯＰの計算処理で、値の変化する信号線のみ計算の対象とする、いわゆるイベントドリブン方式を採用すれば、その計算時間はゲート数の１／２乗に比例するため、検査点解析処理全体の処理時間は、ゲート数の２乗に比例する。このように、本実施例による処理時間は従来に比べて大幅に短縮され、実用的な時間の範囲に入っている。
【００９３】
一方において、本実施例の相関考慮検査点決定処理によるテストコスト最小化の能力、すなわち、テスト容易化の効果は従来とほぼ同等である。これは、検査点影響が「無」である信号線では、その検査点を決定した後に回路情報を更新し検査点指標を計算し直す場合と、検査点決定前の検査点指標を用いる場合とで、その検査点指標の相対的数値が変わらないためである。
【００９４】
以上のように、本実施例の論理回路検査点解析装置は、検査点影響計算処理を行う検査点影響計算部１１３と、相関考慮検査点決定処理を行う検査点決定処理部１１２を備えて、検査指標計算部１１１のＣＯＰ計算を軽減することにより、テスト容易化の効果が同程度な検査点の決定を、高速に処理することができる。
【００９５】
次に、本発明の第２の実施例を説明する。第２の実施例の論理回路検査点解析装置では、論理回路を複数の部分回路に分割する情報を利用して、検査点決定処理を行なう。なお、本実施例の基本構成は図１及び図２と同様である。
【００９６】
図１４は、論理回路を複数の部分回路に分割する情報を利用した、検査点影響範囲の説明図である。論理回路１４０１の入力素子群を１４０２、出力素子群を１４０３とする。複数の部分回路に分割する情報により、論理回路１４０１は部分回路１４１１、１４１２、１４１３、１４１４に分割される。なお、検査点１４２１、１４２３は制御点、検査点１４２２、１４２４は観測点である。
【００９７】
検査点影響範囲をその検査点が含まれる部分回路に限定した場合、検査点１４２１、１４２２、１４２３、１４２４の影響範囲は、それぞれ領域１４３１、１４３２、１４３３、１４３４となる。
【００９８】
検査点影響計算処理１０４において、影響範囲を部分回路に限定して計算するためには、図８におけるステップＳ４０１の処理で、対象とする信号線を上記の部分回路に限定するだけでよい。
【００９９】
検査点指標計算処理１０２においても、検査点候補に対する検査点指標の計算を、その検査点候補が含まれる部分回路内に限定する。すなわち、図６におけるステップＳ２０５の処理で、その検査点候補が含まれる部分回路内の信号線に対しては可制御性・可観測性を計算し、それ以外の信号線に対しては検査点候補挿入前の可制御性・可観測性を用いて、回路全体の検査点候補挿入後のコストを計算すればよい。
【０１００】
なお、論理回路を複数の部分回路に分割する情報は、論理設計における論理ブロックの情報を用いる。あるいは、検査点解析処理の前に回路を分割する情報を作成してもよい。ただし、部分回路間の相関ができるだけ小さく、または部分回路間の接続ができるだけ少なく分割することが望ましい。
【０１０１】
第２の実施例によれば、検査点影響計算処理１０４において、検査点影響計算の必要となる信号線数が少なくできる。同様に、検査点指標計算処理３０２において、検査点候補挿入後の可制御性・可観測性計算が必要となる信号線数が少なくでき、それら処理の高速化が可能になる。
【０１０２】
次に、他の発明である検査点相関情報解析処理の実施例を説明する。本実施例では、既に与えられた検査点情報１２５から検査点相関情報１２６のみを生成する。図１５に、本実施例による検査点相関情報解析処理のフロー図を示す。論理回路検査点の解析処理の実施例である図２との相違は、検査点指標計算処理１０２を行なわずに設定済みの検査点を検査点候補とする（ステップＳ１５０２）点である。
【０１０３】
すなわち、ステップＳ１０１で回路情報１２２を入力した後、ステップＳ１５００２で、検査点相関情報の検査点グループが決まっていない検査点、従って、最初は設定済みの全ての検査点を検査点候補とする。以後の処理は第１の実施例と同様に行なわれる。検査点候補の中で最もテストコストの小さいものを検査点とし、その検査点影響範囲を計算し、その影響範囲に入らない検査点候補を新規検査点として決定できた場合は、その影響範囲を計算してさらに新規検査点を求める処理を繰返し、この繰返し処理で決定された各検査点に同一グループ番号を付与する。一方、新規検査点を決定できず、かつ、当初の設定済み検査点数にも達していない場合は、ステップＳ１５０２に戻って、検査点グループが未定の検査点の全てを新たな検査点候補として、上記処理を終了条件に到達するまで繰り返す。
【０１０４】
本実施例の処理手順では、すでに検査点が設定されている場合に、検査点指標情報を考慮することなく、検査点影響情報によってそれら検査点のグループ分けを行なうため、各検査点グループに属する検査点の数が多くなる。検査点が互いに影響範囲にないことを示すグループ番号、すなわち検査点相関情報は検査点回路の設計に有用な情報となる。後述するように、同一グループ番号の検査点はその検査点回路の一部、たとえば検査点用のスキャン機能付きフリップフロップを共用できる。
【０１０５】
次に、上記の論理回路検査点解析方法を適用した、半導体集積回路の一実施例について説明する。本集積回路の検査点は、上記の検査点情報によって最適配置されているが、さらに検査点相関情報によって検査点回路面積のオーバーヘッドの低減に効果を上げている例である。
【０１０６】
図１６は、本実施例による半導体集積回路の構成図である。４つの検査点を有する図３（ｂ）の論理回路への適用例で、信号線２０２に挿入した制御点２５１、信号線２１２に挿入した制御点２６１の回路構成が変更されている以外は同じである。制御点２５１と制御点２６２は互いの影響範囲に交わりが無く、同一グループに含まれている。
【０１０７】
すなわち、「１制御点」２５１のテストデータ入力線に接続するスキャン機能付きフリップフロップ２５４と、「０制御点」２６１のテストデータ入力線に接続するスキャン機能付きフリップフロップ２６４を、１つのスキャン機能付きフリップフロップ１５０５によって共用し、その出力線１５０４を信号線１５０１と信号線１５０２に分岐し、それぞれ、素子２５３と素子２６３に入力している。ただし、通常動作時には制御点２５１、２６１が動作しないように、素子２６３にはＮＯＴゲート１５０３により信号線１５０２の反転値を入力する。なお、スキャン機能付きフリップフロップ１５０５は通常動作時に常に信号値０を設定する。
【０１０８】
同図の回路構成ではテスト時、スキャン機能付きフリップフロップ１５０５に接続された独立な２つの制御点２５１，２６１のテストデータ入力線に同じ信号を入力しても、回路内におけるその信号が影響を与える範囲が交わらない。そのため、２つの制御点２５１、２６１それぞれにスキャン機能付きフリップフロップを設けて、そのテストデータ入力線に異なる信号を入力した場合と、同等のテスト容易化の効果が得られる。したがって、スキャン機能付きフリップフロップなど、入力素子の回路面積のオーバーヘッドが小さくなる。
【０１０９】
なお、上記の複数の検査点のテストデータ入力線を１つのスキャン機能付きフリップフロップで共用できる条件は、それらの検査点が独立であることが望ましいが、弱相関である場合も条件に含むことができる。
【０１１０】
このように、本実施例によれば、複数の検査点を持つ半導体集積回路において、複数の検査点が互いに独立または弱相関の検査点相関情報を有している場合に、それら複数の検査点のテストデータ入力線を１つのスキャン機能付きフリップフロップで共用した構成として、テスト容易性を維持しながら、回路面積のオーバーヘッドを小さくできる効果がある。
【０１１１】
【発明の効果】
本発明によれば、論理回路における検査点の解析を高速に処理でき、実用可能な解析装置を提供できる。
【０１１２】
また、他の発明によれば、既に検査点が決定されている論理回路に対し、検査点の影響範囲が互いに交叉しないグループを示す検査点相関情報が簡単に提供できるので、オーバーヘッドの少ない検査点回路の設計に役立てることができる。
【０１１３】
さらに他の発明によれば、検査点相関情報に基づいて、検査点挿入による回路面積のオーバーヘッドを低減した半導体集積回路を提供することができる。
【図面の簡単な説明】
【図１】第１の発明である論理回路検査点解析装置の一実施例による構成図。
【図２】論理回路検査点解析装置の処理手順の一実施例を示すフロー図。
【図３】一例による論理回路図および検査点を挿入した論理回路図。
【図４】検査点の影響範囲を説明する概念図。
【図５】２つの検査点の相互関係を説明する概念図。
【図６】図２の検査点指標計算処理の詳細を示すフロー図。
【図７】図２の初期検査点決定処理の詳細を示すフロー図。
【図８】図２の検査点影響計算処理の詳細を示すフロー図。
【図９】図２の相関考慮検査点決定処理の詳細を示すフロー図。
【図１０】ＣＯＰ、微分係数及びＣＲＦの計算内容を示すテーブル。
【図１１】検査点指標情報、及び検査点候補に対する検査点影響情報の構成と処理過程での遷移内容を示すテーブル。
【図１２】信号線に対する検査点影響情報と、処理過程での遷移内容を示すテーブル。
【図１３】検査点情報及び検査点相関情報の構成と内容を示すテーブル。
【図１４】本発明の他の実施例による検査点解析処理で、分割された回路情報の利用を説明する概念図。
【図１５】他の発明である検査点相関情報解析処理の一実施例で、検査点情報から検査点相関情報を計算するフロー図。
【図１６】さらに他の発明である半導体集積回路の一実施例による構成図。
【符号の説明】
１１１…検査点指標計算部、１１２…検査点決定部、１１３…検査点影響計算部、１２３…検査点指標情報、１２４…検査点影響情報、１２５…検査点情報、１２６…検査点相関情報、３０２…検査点指標計算処理、３０３…初期検査点決定処理、３０４…検査点影響範囲計算処理、３０５…相関考慮検査点決定処理。
【図１】
0003910244.tif 000002
【図２】
0003910244.tif 000003
【図３】
0003910244.tif 000004
【図４】
0003910244.tif 000005
【図５】
0003910244.tif 000006
【図６】
0003910244.tif 000007
【図７】
0003910244.tif 000008
【図８】
0003910244.tif 000009
【図９】
0003910244.tif 000010
【図１０】
0003910244.tif 000011
【図１１】
0003910244.tif 000012
【図１２】
0003910244.tif 000013
【図１３】
0003910244.tif 000014
【図１４】
0003910244.tif 000015
【図１５】
0003910244.tif 000016
【図１６】
0003910244.tif 000017