(57)【特許請求の範囲】
【請求項１】
順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出するスキャンチェーン抽出プログラムにおいて、
テストパターンの入力制御を行うテスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーンを定義する制御回路スキャンチェーン定義ステップと、
定義した該制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定ステップと、
入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定ステップと、
該集積回路内に存在するすべての該スキャンチェーンに関するデータを抽出したか否かを判断する抽出判断ステップと、
該抽出判断ステップにおいて、該スキャンチェーンに関するデータをすべて抽出していないと判断した場合には、該スキャンチェーンの始点となる他の順序回路素子に接続されている、該制御回路スキャンチェーンを構成する該各順序回路素子の初期値を変更する初期値変更ステップと、
該集積回路の順序回路素子をトレースして該スキャンチェーンを評価するデータを抽出するステップと
をコンピュータに実行させることを特徴とするスキャンチェーン抽出プログラム。
【請求項２】
該制御回路スキャンチェーンのうち少なくとも一つは、該テストパターンを修正して、該スキャンチェーンに修正したテストパターンを入力するパターン修正回路を構成する順序回路素子から構成されることを特徴とする請求項１に記載のスキャンチェーン抽出プログラム。
【請求項３】
該初期値変更ステップにおいて、該パターン修正回路を構成する順序回路素子の初期値を変更することを特徴とする請求項２に記載のスキャンチェーン抽出プログラム。
【請求項４】
順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出するスキャンチェーン抽出方法において、
テストパターンの入力制御を行うテスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーンを定義する制御回路スキャンチェーン定義手順と、
定義した該制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定手順と、
入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定手順と、
該集積回路内に存在するすべての該スキャンチェーンを抽出したか否かを判断する抽出判断手順と、
該抽出判断手順において、該スキャンチェーンに関するデータをすべて抽出していないと判断した場合には、該スキャンチェーンの始点となる他の順序回路素子と接続されている、該制御回路スキャンチェーンを構成する該各順序回路素子の初期値を変更する初期値変更手順と、
該集積回路の順序回路素子をトレースして該スキャンチェーンを評価するデータを抽出する手順と
からなることを特徴とするスキャンチェーン抽出方法。
【請求項５】
順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出する試験装置において、
テストパターンの入力制御を行うテスト制御回路、該テスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーン、及び該制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定手段と、
入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定手段と、
該集積回路内に存在するすべての該スキャンチェーンに関するデータを抽出したか否かを判断する抽出判断手段と、
該抽出判断手段において、該スキャンチェーンに関するデータをすべて抽出していないと判断した場合には、該スキャンチェーンの始点となる他の順序回路素子に接続されている、該制御回路スキャンチェーンを構成する該各順序回路素子の初期値を変更する初期値変更手段と、
該順序回路素子をトレースして該スキャンチェーンを評価するデータを抽出する手段と
からなることを特徴とするスキャンチェーン抽出を行う試験装置。
【請求項６】
テストパターンが入力されるスキャンチェーンと、
前記スキャンチェーンを構成する順序回路素子に対して初期値を設定する初期値設定手段と、
入力される信号値が前記スキャンチェーンを通過するように、前記スキャンチェーンをスルー状態に設定する状態設定手段と
集積回路内に存在するスキャンチェーンに関するデータを抽出したか否かを判断する抽出判断手段と、
前記抽出判断手段において、前記スキャンチェーンに関するデータが抽出されていないと判断した場合には、前記スキャンチェーンの始点となる他の順序回路素子に接続されているテスト制御回路内に定義した制御回路スキャンチェーンを構成する各順序回路素子の初期値を変更する初期値変更手段と、
該順序回路素子をトレースして該スキャンチェーンを評価するデータを抽出する手段と
を有することを特徴とする回路素子。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などの集積回路の製造不良を検出するための試験方法において用いるテストパターンにミスが在るか否かをチェックする方法およびプログラムに関するものである。
【背景技術】
【０００２】
ＬＳＩの製造不良について検証を行なう場合、多くのテストパターンが必要となる。そして、ＬＳＩが順序回路素子、例えばフリップフロップ（ｆｌｉｐ−ｆｌｏｐ、ＦＦ），ラッチ等を含む場合、テストパターン作成の複雑さはより増大する。
【０００３】
そこで、ＬＳＩでは、スキャン設計が一般的に行なわれている。スキャン設計を施されたＬＳＩでは、ＬＳＩ内部の順序回路素子（主にフリップフロップ）を用いてスキャンチェーンが形成され、スキャンチェーンにテストパターンがシフトインされ、クロック印加後にスキャンチェーンの値が外部に読み出される構成となっている。                        
【０００４】
そして、従来、ＬＳＩの製造不良の検証などにおいて、パラレルスキャンチェーン方法という不良品の検証方法を用いていた。
【０００５】
図１は、パラレルスキャンチェーンの構成図である。
【０００６】
ＬＳＩ１００は、テスト制御回路１０１、フリップフロップ１０２，１０３，１０４，１０５を備える。フリップフロップ１０２，１０３を含む複数のフリップフロップがスキャンチェーン１０６を構成し、同様にしてフリップフロップ１０４，１０５を含む複数のフリップフロップがスキャンチェーン１０７を構成する。図１中において、省略するがフリップフロップにより構成されるスキャンチェーンは１０６、１０７のほかにも同様にＬＳＩ１００内に存在し、パラレルスキャンチェーンの構成の場合には、最大１６本存在する。各スキャンチェーンは、テスト制御回路、LSI外部の入出力ピンに接続されている。
【０００７】
以下、パラレルスキャンの動作を明確にするため、パラレルスキャンチェーン１０６、１０７について説明し、それに付随するＬＳＩの外部に設けられた入出力ピン等のみについて説明する。もちろん、説明において、記載しないパラレルスキャンチェーンについても説明するパラレルスキャンチェーン１０６、１０７と同様の動作を行うものとし、ＬＳＩ１００内に存在するものとし、パラレルスキャンチェーンがパラレルスキャンチェーン１０６，１０７の２本に限定されることを示すものではない。
【０００８】
まず、ＬＳＩ１００内の状態値を全て不定値‘Ｘ’に設定して初期化を行う。ここで不定値に設定すると言うことは、ＬＳＩ１００内の初期状態値が０か１かどちらか不明であることを意味するものであり、このような設定はチェックの精度を向上するために必要なことである。
【０００９】
そして、パラレルスキャンチェーン１０６、１０７の情報を抽出するために、テスト制御回路１０１専用のＬＳＩ外部ピン１０８、１０９からテストパターンを入力してシミュレーションを行い、テスト制御回路１０１をスキャンシフト状態に設定する。
【００１０】
テスト制御回路１０１内のスキャンシフトクロック発生器（図示せず）から、フリップフロップに対して直接クロック信号、例えば通常ＡＣＫ（エークロック）信号，ＢＣＫ（ビークロック）信号を与えてシミュレーションを行い、各スキャンＦＦ１０２〜１０５のスキャンイン（ＳＩ）ピンからスキャンアウト（ＳＯ）ピンへの信号経路をスルー状態に設定する。
【００１１】
ここでスキャンシフトクロック生成器（図示せず）はテスト制御回路内に存在し、シミュレータが識別可能となっている。またスルー状態とは、テストパターンなどの０，１の信号が、スキャンＦＦ１０２〜１０５を反転することなく通過していく状態のことであり、シミュレータとは、ＬＳＩにテストパターンを入力してシミュレーションを行うものであり、図中には省略のため図示していない。
【００１２】
各パラレルスキャンチェーン１０６、１０７のＬＳＩ外部入力ピン１０８，１０９から‘０’値を与えてシミュレーションを行うと、各スキャンＦＦ１０２〜１０５はスルー状態になっているのでそのまま‘０’値が抜けて行き、パラレルスキャンチェーンのＬＳＩ外部出力ピンに到達する。
【００１３】
この間に通過したスキャンＦＦを順にトレースすることにより、パラレルスキャンチェーンに関するデータを抽出する。
【００１４】
そしてパラレルスキャンチェーンに関するデータを抽出した後、テストパターンを発生して外部ピンより出力された結果をみることによって、ＬＳＩの製造不良を検出することができる。
【００１５】
図２はスキャンするＦＦのピン構成図である。
【００１６】
まず入力側のピンは、データの取り込みのタイミングを指示するクロック信号を取り込むＣＫピン２０１、データを取り込むＤピン２０２、パラレルスキャンデータを取り込むＳＩピン２０５と、データをシフトさせる信号を取り込むＡＣＫピン２０３、ＢＣＫピン２０４から構成される。出力側のピンは、ＣＫピン２０１のクロック信号でＤピン２０２からとりこんだデータを出力するＱピンと、ＳＩピンから取り込んだスキャンデータを出力するＳＯピン２０７から構成される。通常、ＡＣＫピン、ＢＣＫピンから交互に一回、シフトクロック信号が入力されると、フリップフロップはパラレルスキャンデータをシフトする。
【００１７】
図３は、従来技術でのパラレルスキャンチェーンに関するデータを抽出するときの概略図である。
【００１８】
これは、図１のパラレルスキャンチェーン部分（１０６、１０７）のみを取り出し、拡大して表したものである。
【００１９】
パラレルスキャンチェーンは、ＦＦ３０１、３０２、３０３などの複数のＦＦで構成されている。ここでパラレルスキャンチェーンには、ＦＦ３０１、３０２、３０３以外にＦＦは存在してもよく、パラレルスキャンチェーンを構成するＦＦの数は３つに限定されない。
【００２０】
そしてパラレルスキャンチェーンを構成する全てのＦＦに対して、それぞれのＦＦに入力されるＡＣＫ信号,ＢＣＫ信号をＯＮ状態にして、ＬＳＩの外部入力ピンからパラレルスキャンチェーンに‘０’を入力してシミュレーションを実行する。ここで図３中に記載の各ＦＦの前に示される‘０’はそれぞれのＦＦに対して‘０’が入力されることを意味し、矢印は‘０’がパラレルスキャンチェーン内を伝播していくことを意味している。
【００２１】
そして、全てのパラレルスキャンチェーンがＬＳＩの外部ピンと直接つながっており、スキャンチェーンが１６本ある場合には、ＬＳＩの外部ピンは、入力側も外部側も１６ピン存在する構成となっている。
【００２２】
そのため、ＬＳＩの外部入力ピンを起点とし、ＬＳＩの外部出力ピンまでの間に設けられたスキャンＦＦのトレースを行い、全パラレルスキャンチェーンに関するデータを求めることが可能である。ここでトレースとは、外部入力ピンよりテストパターンを入力し、パラレルスキャンチェーンの状態を調べることである。
【００２３】
また従来の技術に関する特許文献として以下のものが存在する。
【特許文献１】特開２００２−２３６１４４号公報
【特許文献２】特許第４２５５２７０号公報  上記特許文献１には、パターン発生器によって発生された試験パターンを外部入力により修正してから複数のシフトレジスタに入力するパターン修正器を備え、シフトレジスタであるスキャンパス数を増やしスキャンパス段数を少なくすることで、集積回路（ＬＳＩ等）の試験時間を短縮することができ、その際に意味あるデータ部分のみをテスタから供給して修正するので、テスタに格納されるデータの量を削減することができる発明が記載されている。上記特許文献２には、パラレルスキャンチェーンに関するデータを抽出する技術が開示されている。
【００２４】
これにより、高品質なテストを短時間で実行できるようになり、設計者に厳しい設計規約を課すことなく且つ高品質なテスタを必要とすることなく高品質なテストを可能とする。
【発明の開示】
【発明が解決しようとする課題】
【００２５】
ここで、スキャン方法には上記したパラレルスキャンのほかにＢＡＳＴスキャンがある。ＢＡＳＴスキャンはパラレルスキャンとは異なり、外部入出力ピンの数よりも多くのＢＡＳＴスキャンチェーンを設けることができ、パラレルスキャンより多くのスキャンチェーンをスキャンすることができるものである。
【００２６】
しかしながら、ＢＡＳＴスキャンチェーンを備えたＬＳＩでは、各ＢＡＳＴスキャンチェーンに対応して外部入力ピンがＢＡＳＴスキャンチェーンの本数分設けられていないため、パラレルスキャンチェーンのようにＬＳＩの外部入出力ピンを通じてテストパターンをスルー状態に設定できず、スキャンチェーンに関するデータを容易に抽出することができない。
【００２７】
本発明は、これに鑑みてなされたものであり、ＬＳＩの外部からＢＡＳＴ回路に関する情報を与えること無く、ＢＡＳＴスキャンチェーンに関するデータを容易に抽出することを目的とする。
【課題を解決するための手段】
【００２８】
本発明に係るスキャンチェーン抽出プログラムは、順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出するスキャンチェーン抽出プログラムにおいて、テストパターンの入力制御を行うテスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーンを定義する制御回路スキャンチェーン定義ステップと、設定した制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定ステップと、入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定ステップと、該スキャンチェーンに関するデータを抽出するスキャンチェーン抽出ステップと、該集積回路内に存在するすべての該スキャンチェーンに関するデータを抽出したか否かを判断する抽出判断ステップと、抽出判断ステップにおいて、該スキャンチェーンに関するデータがすべて抽出していないと判断した場合には、スキャンチェーンの始点となる順序回路素子と接続されているテスト制御回路を構成する順序回路素子の初期値を変更する初期値変更ステップとをコンピュータに実行させることを特徴とする。
【００２９】
また本発明に係るスキャンチェーン抽出プログラムは、該制御回路スキャンチェーンのうち少なくとも一つは、該テストパターンを修正して、該スキャンチェーンに修正したテストパターンを入力するパターン修正回路を構成する順序回路素子から構成されることを特徴とする。
【００３０】
また本発明に係るスキャンチェーン抽出プログラムは、該初期値変更ステップにおいて、該パターン修正回路を構成する順序回路素子の初期値を変更することを特徴とする。
【００３１】
また本発明に係るスキャンチェーン抽出方法は、順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出するスキャンチェーン抽出方法において、テストパターンの入力制御を行うテスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーンを定義する制御回路スキャンチェーン定義手順と、設定した制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定手順と、入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定手順と、該スキャンチェーンに関するデータを抽出するスキャンチェーン抽出手順と、該集積回路内に存在するすべての該スキャンチェーンを抽出したか否かを判断する抽出判断手順と、抽出判断手順において、該スキャンチェーンに関するデータがすべて抽出していないと判断した場合には、スキャンチェーンの始点となる順序回路素子と接続されているテスト制御回路を構成する順序回路素子の初期値を変更する初期値変更手順とからなることを特徴とする。
【００３２】
さらに本発明に係るスキャンチェーンに関するデータを抽出する試験装置は、順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出する試験装置において、テストパターンの入力制御を行うテスト制御回路、該テスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーン、及び該制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定手段と、入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定手段と、該スキャンチェーンに関するデータを抽出するスキャンチェーン抽出手段と、該集積回路内に存在するすべての該スキャンチェーンに関するデータを抽出したか否かを判断する抽出判断手段と、抽出判断手段において、該スキャンチェーンに関するデータがすべて抽出していないと判断した場合には、スキャンチェーンの始点となる順序回路素子と接続されているテスト制御回路を構成する順序回路素子の初期値を変更する初期値変更手段とからなることを特徴とする。
【発明の効果】
【００３３】
本発明によれば、ＢＡＳＴ回路情報を外部から与えること無く、ＢＡＳＴスキャンチェーンを容易に抽出できるようになる。
【００３４】
ＢＡＳＴスキャンチェーンの情報を利用して、ＬＳＩの出荷判定テストパターンの検証に必要なＢＡＳＴスキャンシフト処理を省略することができるため、スキャンシミュレーションの高速化を実現することができる。
【００３５】
そのため、出荷判定パターンの検証時間が大幅に短縮することができる。
【発明を実施するための最良の形態】
【００３６】
図４は、本発明の一実施例に係るＬＳＩのブロック図である。
【００３７】
ＬＳＩ４００はテスト制御回路を含んでおり、テスト制御回路４０１はＢＡＳＴ回路４０２、４０３を組み込んだ構成となっている。ＢＡＳＴ回路４０２，４０３は、テスト制御回路の一部として動作する。ここで本実施例において、ＢＡＳＴ回路４０２は、擬似乱数発生回路（ＬＦＳＲ）とパターン修正回路（ＭＯＤＩＦＩＥＲ）、ＢＡＳＴ回路４０３は、不定値マスク回路（ＸＭＡＳＫ）とスキャン出力圧縮回路（ＭＩＳＲ）を備えるよう構成されるものである。以下、本実施例では、テストパターンがシフトインされ、クロック印加後にスキャンチェーンの値が外部に読み出される順序回路素子から成るスキャンチェーンをＢＡＳＴスキャンチェーンと呼ぶ。
【００３８】
本実施例におけるＬＳＩでは、ＢＡＳＴスキャンチェーンは１２８本の構成となっており、（図４中にはＢＡＳＴスキャンチェーンは２本のみ記載している）それぞれのＢＡＳＴスキャンチェーンはＦＦの列によって構成され、ＦＦ４０４、４０５を含んでおり、他のＢＡＳＴスキャンチェーンもＦＦ４０６，４０７から構成されている。テストパターンを入力する入力ピンはＬＳＩには９本存在し、ここでは代表してＴＤＩピン４０８とＳＤＩｎピン４０９を図４中に記載する。そして外部出力ピンも８本存在し、ここでは代表してＴＤＯピン４１０とＳＤＯｎピン４１１を図４中に記載する。もちろん入力ピンの数も出力ピンの数もこれに限定されることはなく、他の数であっても構わない。
【００３９】
図５はＢＡＳＴ回路と各ＢＡＳＴスキャンチェーンの接続関係を表すブロック図である。
【００４０】
本実施例において、ＢＡＳＴスキャンチェーンは、ＢＡＳＴ回路５００内のパターン修正回路（ＭＯＤＩＦＩＥＲ）５０３から、ＢＡＳＴ回路５０１内の不定値マスク回路（ＸＭＡＳＫ）５０４の間に張られた１２８本のチェーンである。
【００４１】
ＢＡＳＴ回路５００は擬似乱数発生回路５０２とパターン修正回路５０３を有しており、ＢＡＳＴ回路５０１は、不定値マスク回路５０４とスキャン出力圧縮回路５０５を有している。ここで、ＢＡＳＴ回路５００は図４中のＢＡＳＴ回路４０２に対応し、ＢＡＳＴ回路５０１はＢＡＳＴ回路４０３に対応する。
【００４２】
擬似乱数発生回路５０２は乱数パターンを発生する。パターン修正回路５０３は、ＬＳＩに設けられたＢＡＳＴ制御ピン（図示せず）などから入力される制御信号に基づいて、擬似乱数発生回路５０２が発生した乱数パターンの中の所望のビットを修正する。ここで、ビットの修正をするとは具体的には乱数パターン中のビットの０／１を反転させることである。また擬似乱数発生回路（ＬＦＳＲ）５０２もパターン修正回路（ＭＯＤＩＦＩＥＲ）５０３と同様にして、ＬＳＩ外部入力ピンであるＢＡＳＴ制御ピン（図示せず）により制御される。
【００４３】
パターン修正器５０３は１２８本のＢＡＳＴスキャンチェーンと接続されており、パターン修正器５０３出力である修正された乱数パターンが、各ＢＡＳＴスキャンチェーン先頭のＦＦ５０６、５０８、５１０に入力される。
【００４４】
ＦＦ５０６〜５１１はＢＡＳＴスキャンチェーンを構成しており、ここでは、各ＢＡＳＴスキャンチェーンの先頭のＦＦ５０６、５０８、５１０と最終のＦＦ５０７、５０９、５１１のみ記載している。
【００４５】
不定値マスク回路５０４は、ＬＳＩの制御入力ピン等から入力される制御信号に基づいて、各ＢＡＳＴスキャンチェーンの最終のＦＦ５０７、５０９、５１１の値のうち不定値（Ｘ状態）のものをマスクすることにより、不定状態を規定の状態に変換する。
【００４６】
スキャン出力圧縮回路５０５は、不定値マスク回路５０４からのＢＡＳＴスキャン出力データを圧縮し格納する。
【００４７】
図６はパターン修正回路（ＭＯＤＩＦＩＥＲ）のブロック図である。
【００４８】
各ＢＡＳＴスキャンチェーンには、擬似乱数発生回路（ＬＦＳＲ）５０２により生成され、さらにパターン修正器５０３において所望のビットを修正された乱数パターンが入力される。
【００４９】
パターン修正器５０３は、乱数パターンの中の所望のビットを修正するために、この乱数パターンを構成する乱数値を任意の値に設定し、反転するＦＦ６０１、６０２を有している。
【００５０】
ＦＦ６０１、６０２に‘１’を設定することにより、乱数パターンの所望のビットをＥＯＲ回路６０３、６０４において反転させることができる。ここでＦＦ６０１、６０２のみ図６中には記載しなかったが、他のＢＡＳＴスキャンチェーン（残りの１２６本）に対応してＦＦ６０１、６０２と同様にパターン修正回路６００内にフリップフロップが存在する。同様にして、ＥＯＲ回路もＥＯＲ６０３、６０４以外に、残りの１２６本のＢＡＳＴスキャンチェーンに対応して他に１２６個存在する。もちろん、ＢＡＳＴスキャンチェーン、パターン修正回路６００内のＦＦ、パターン修正回路内のＥＯＲ回路の数は１２８本、１２８個に限定されることはなく、他の数のＢＡＳＴスキャンチェーン、パターン修正回路６００内のＦＦ、パターン修正回路６００内のＥＯＲ回路が存在しても構わない。
【００５１】
ＢＡＳＴスキャンチェーンの終端である不定値マスク回路５０４にはスキャンパターン圧縮回路（ＭＩＳＲ）５０５が接続されており、スキャンシフトされた各ＢＡＳＴスキャンチェーンの値をスキャンパターン圧縮回路５０５で圧縮する構成となっている。
【００５２】
そしてパターン修正回路６００はスキャンチェーン毎に１ビットのＦＦに対応しており、このＦＦ６０１、６０２においてスキャンシフト値を取り込む。
【００５３】
これらＢＡＳＴ回路５００、５０１を構成する擬似乱数発生回路、パターン修正回路、不定値マスク回路、スキャン出力圧縮回路は、それぞれがスキャンＦＦによって構成された専用スキャンチェーンとなっており、テスト制御回路によりＬＳＩ外部ピンＴＤＩからＴＤＯへ接続される構成となっている。
【００５４】
図７は擬似乱数発生回路をスキャンチェーンとして抽出する場合のトレースを示す図である。
【００５５】
まず、トレースを開始する前に、ＬＳＩの状態値を全て‘Ｘ’に設定して初期化を行う。
【００５６】
そして、ＢＡＳＴ回路内にある擬似乱数発生回路、パターン修正回路，不定値マスク回路，スキャン出力圧縮回路の状態に関する情報を求めるために、制御入力ピン等から信号値を入力して、スキャンチェーンに関するデータを求める。ここでスキャンチェーンとは、ＢＡＳＴスキャンチェーンとは異なるものであって、ＢＡＳＴスキャンチェーンに接続されるＦＦであって、それぞれのパターン修正回路，不定値マスク回路，スキャン出力圧縮回路内同士の相関情報を示すものである。
【００５７】
次に、擬似乱数発生回路のスキャンチェーンを通って制御入力ピンから出力ピンに抜けるスキャンチェーン（図７図示の矢印）に関するデータを、擬似乱数発生回路選択モードを選択することにより抽出する。
【００５８】
パターン修正回路，不定値マスク回路，スキャン出力圧縮回路についても、擬似乱数発生回路と同様にテスト制御回路の設定を変えることにより、それぞれ制御入力ピンから出力ピンのスキャンチェーン情報として抽出することができる。
【００５９】
次に、テスト制御回路を操作してパターン修正回路、不定値マスク回路、スキャン出力圧縮回路の全てに対して‘０’値を与えてシミュレーションを行い、パターン修正回路，不定値マスク回路の機能を動作させないように設定する。
【００６０】
テスト制御回路７０１の制御動作は、擬似乱数発生回路７００に‘０’を与えてシミュレーションを行い、全ＢＡＳＴスキャンチェーンの入力に‘０’を設定する。
【００６１】
ここで擬似乱数発生回路７００は、すべてのＦＦに０を設定すると生成される乱数が全て０になる構成となっている。
【００６２】
続いて、ＢＡＳＴスキャンチェーンを構成する各ＦＦに対してスキャンシフトクロック生成器から直接クロック信号（ＡＣＫ，ＢＣＫ）を与えて、ＢＡＳＴスキャンチェーンの全ＦＦをスルー状態に設定する。ここで、全ＢＡＳＴスキャンチェーンに‘０’値がスルーした状態になり、終端のスキャン出力圧縮回路の入力まで‘０’が伝播する。    
【００６３】
図８はＢＡＳＴ回路において、シミュレーションによる‘０’値伝播を示している。
【００６４】
図７に示された処理で抽出しておいたパターン修正回路の各ＦＦに‘１’を直接設定してシミュレーションを行う。これにより、ＢＡＳＴ回路の機能であるスキャンイン値の修正機能が有効となり、対応するＢＡＳＴスキャンチェーンに設定された値‘０’の反転である‘１’がスキャンチェーンをスルーして伝播する。
【００６５】
ここで‘１’が伝播していくＦＦをトレースすることにより、ＢＡＳＴスキャンチェーンに関するデータを抽出することが出来る。
【００６６】
図９はパターン修正回路の一部を示すブロック図である。
【００６７】
パターン修正回路５０３は、一つのＢＡＳＴスキャンチェーンに対してＦＦ９００とＥＯＲ論理回路９０１を有している。
【００６８】
まず、初期設定として、疑似乱数発生回路５０２に‘０’を与えてＢＡＳＴスキャンチェーンの入力に‘０’を設定する。そしてＦＦ９００においてもＭＯＤＩＦＹ信号とＣＬＫ信号によって‘０’を設定して、テスト制御回路を操作してパターン修正回路の全てに対して‘０’を与える。ここでＭＯＤＩＦＹ信号、ＣＬＫ信号は外部入力ピンより入力される。
【００６９】
そして、ＦＦ９００の出力として直接‘１’を設定してシミュレーションを行う。
【００７０】
擬似乱数発生回路から乱数値として‘０’の値がＥＯＲ回路９０１に入力されており、ＦＦ９００からＥＯＲ回路９０１に‘１’が入力されると、擬似乱数発生回路からの値‘０’を反転してＢＡＳＴスキャンチェーンへ‘１’が伝播していく。テストパターンの反転を探索開始点の目印とし、これによりパターン修正回路５０３がＢＡＳＴスキャンチェーンの探索開始点となる。
【００７１】
パターン修正回路５０３は、ＦＦ９００を計１２８個有しており、それぞれのＦＦに対応してＢＡＳＴスキャンチェーンが設けられており、上記と同様の動作を行う。
【００７２】
図１０は、スキャンチェーンに関するデータを抽出するフローチャートである。
【００７３】
まず、テスト制御回路全体を初期化し、ＢＡＳＴ回路内の擬似乱数発生回路、パターン修正回路、不定値マスク回路、スキャン出力圧縮回路のスキャンチェーンに関するデータを抽出し、各回路の情報を取得する（ステップＳ１０００）。
【００７４】
擬似乱数発生回路５０２、パターン修正回路５０３、不定値マスク回路５０４、スキャン出力圧縮回路５０５のスキャンチェーンに対してすべて‘０’を設定し（ステップＳ１００１）、スキャンシフトクロックをスルー状態に設定する（ステップＳ１００２）。ここでテスト制御回路４０１により所望の乱数がＢＡＳＴスキャンチェーンに設定されるように擬似乱数発生回路５０２に値を設定し、テスト制御回路４０１によりパターン修正回路５０３、不定値マスク回路５０４が動作しないように値を設定する。スキャンシフトクロック生成器にＢＡＳＴスキャンチェーンのＦＦがスルー状態に設定し、シミュレーションを行う。
【００７５】
これにより、ＢＡＳＴスキャンチェーンに擬似乱数発生回路で与えた乱数値がそれぞれスルーしてチェーン毎に同じ値になる。
【００７６】
そしてＢＡＳＴスキャンチェーンに関するデータをすべて抽出したか判断し（ステップＳ１００３）、各ＢＡＳＴスキャンチェーンに対応するパターン修正回路−ＦＦに値を反転させるように‘１’の値を設定し（ステップＳ１００４）、シミュレーションを行う。これにより各ＢＡＳＴスキャンチェーン上を値が反転して伝播していく。この時に伝播していくＦＦをトレースすることで、各ＢＡＳＴスキャンチェーンを抽出することができる（ステップＳ１００５）。
【００７７】
これによれば、ＬＳＩの不良チェック行うためのＢＡＳＴスキャンチェーンの本数に依存せずにスキャンチェーンの抽出が可能となる。
【００７８】
次に、以上述べた本発明のスキャンチェーン抽出プログラムの実施形態の変形例、その他の技術的な拡張事項等を以下に列挙する。
【００７９】
（１）上記実施形態では、スキャンチェーンは１２８本であったがこれに限定されるものではく、２５６本など他の数のスキャンチェーンであっても構わない。
【００８０】
（２）上記実施形態では、不良箇所のチェック対象物としてＬＳＩを例にとり説明したが、これに限定されるものではなく、他の集積回路であっても構わない。
【００８１】
次に、以上述べたスキャンチェーン抽出プログラムの実施形態から抽出される技術的思想を請求項の記載形式に準じて付記として列挙する。本発明に係る技術的思想は上位概念から下位概念まで、様々なレベルやバリエーションにより把握できるものであり、以下の付記に本発明が限定されるものではない。
【００８２】
（付記１）  順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出するスキャンチェーン抽出プログラムにおいて、
テストパターンの入力制御を行うテスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーンを定義する制御回路スキャンチェーン定義ステップと、
設定した制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定ステップと、
入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定ステップと、
該スキャンチェーンに関するデータを抽出するスキャンチェーン抽出ステップと、
該集積回路内に存在するすべての該スキャンチェーンに関するデータを抽出したか否かを判断する抽出判断ステップと、
抽出判断ステップにおいて、該スキャンチェーンに関するデータがすべて抽出していないと判断した場合には、スキャンチェーンの始点となる順序回路素子と接続されているテスト制御回路を構成する順序回路素子の初期値を変更する初期値変更ステップと、
をコンピュータに実行させることを特徴とするスキャンチェーン抽出プログラム。
【００８３】
（付記２）  該制御回路スキャンチェーンのうち少なくとも一つは、該テストパターンを修正して、該スキャンチェーンに修正したテストパターンを入力するパターン修正回路を構成する順序回路素子から構成されることを特徴とする付記１に記載のスキャンチェーン抽出プログラム。
【００８４】
（付記３）  該初期値変更ステップにおいて、該パターン修正回路を構成する順序回路素子の初期値を変更することを特徴とする付記２に記載のスキャンチェーン抽出プログラム。
【００８５】
（付記４）  該初期値設定ステップにおいて、設定する初期値は０であることを特徴とする付記１乃至３に記載のスキャンチェーン抽出プログラム。
【００８６】
（付記５）  該初期値変更ステップにおいて、スキャンチェーンの始点となる順序回路素子と接続されているテスト制御回路を構成する順序回路素子の初期値を０から１に変更することを特徴とする付記４に記載のスキャンチェーン抽出プログラム。
【００８７】
（付記６）  順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出するスキャンチェーン抽出方法において、
テストパターンの入力制御を行うテスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーンを定義する制御回路スキャンチェーン定義手順と、
設定した制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定手順と、
入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定手順と、
該スキャンチェーンに関するデータを抽出するスキャンチェーン抽出手順と、
該集積回路内に存在するすべての該スキャンチェーンを抽出したか否かを判断する抽出判断手順と、
抽出判断手順において、該スキャンチェーンに関するデータがすべて抽出していないと判断した場合には、スキャンチェーンの始点となる順序回路素子と接続されているテスト制御回路を構成する順序回路素子の初期値を変更する初期値変更手順と、
からなることを特徴とするスキャンチェーン抽出方法。
【００８８】
（付記７）  該制御回路スキャンチェーンのうち少なくとも一つは、該テストパターンを修正して、該スキャンチェーンに修正したテストパターンを入力するパターン修正回路を構成する順序回路素子から構成されることを特徴とする付記６に記載のスキャンチェーン抽出方法。
【００８９】
（付記８）  該初期値変更手順において、該パターン修正回路を構成する順序回路素子の初期値を変更することを特徴とする付記７に記載のスキャンチェーン抽出方法。
【００９０】
（付記９）  順序回路素子によって構成され、集積回路のテストを行うためのテストパターンが入力されるスキャンチェーンに関するデータを抽出する試験装置において、
テストパターンの入力制御を行うテスト制御回路、該テスト制御回路内に存在する順序回路素子によって構成される制御回路スキャンチェーン、及び該制御回路スキャンチェーンを構成する各順序回路素子に対して初期値を設定する初期値設定手段と、
入力される信号値が該スキャンチェーンを変化することなく通過するように、該スキャンチェーンをスルー状態に設定する状態設定手段と、
該スキャンチェーンに関するデータを抽出するスキャンチェーン抽出手段と、
該集積回路内に存在するすべての該スキャンチェーンに関するデータを抽出したか否かを判断する抽出判断手段と、
抽出判断手段において、該スキャンチェーンに関するデータがすべて抽出していないと判断した場合には、スキャンチェーンの始点となる順序回路素子と接続されているテスト制御回路を構成する順序回路素子の初期値を変更する初期値変更手段と、
からなることを特徴とするスキャンチェーン抽出を行う試験装置。
【００９１】
（付記１０）  該制御回路スキャンチェーンのうち少なくとも一つは、該テストパターンを修正して、該スキャンチェーンに修正したテストパターンを入力するパターン修正回路を構成する順序回路素子から構成されることを特徴とする付記９に記載のスキャンチェーン抽出を行う試験装置。
【００９２】
（付記１１） テストパターンが入力されるスキャンチェーンと、
前記スキャンチェーンを構成する順序回路素子に対して初期値を設定する初期値設定手段と、
集積回路内に存在するスキャンチェーンに関するデータを抽出したか否かを判断する抽出判断手段と、
前記抽出判断手段において、前記スキャンチェーンに関するデータが抽出されていないと判断した場合には、前記スキャンチェーンの始点となる順序回路素子に接続されているテスト制御回路の初期値を変更する初期値変更手段と、
入力される信号値が前記スキャンチェーンを通過するように、前記スキャンチェーンをスルー状態に設定する状態設定手段と、
を有することを特徴とする回路素子。
【００９３】
（付記１２）  スキャンチェーンと、
前記スキャンチェーンの一端に設けられ、任意のデータパターンを発生するパターン発生手段と、
指示により、前記パターン発生手段により発生されたデータパターンの情報を変更するパターン修正部と、
前記スキャンチェーンをスルー状態に設定する状態設定手段と、
を備えたことを特徴とする回路素子。
【００９４】
（付記１３）  前記回路素子において、
前記パターン発生部は、乱数データパターンを発生することを特徴とする、付記１２に記載の回路素子。
【００９５】
（付記１４）  前記回路素子において、
前記パターン修正部は、前記パターン発生部により発生されたデータパターンを構成するビットを反転させる機能を有することを特徴とする、付記１２又は１３に記載の回路素子。
【図面の簡単な説明】
【００９６】
【図１】パラレルスキャンチェーンの構成図
【図２】スキャンするＦＦのピン構成図
【図３】従来技術でのパラレルスキャンチェーンを抽出するときの概略図
【図４】本発明の一実施例に係るＬＳＩのブロック図
【図５】ＢＡＳＴ回路と各ＢＡＳＴスキャンチェーンの接続関係を表すブロック図
【図６】パターン修正回路（ＭＯＤＩＦＩＥＲ）のブロック図
【図７】擬似乱数発生回路をスキャンチェーンとして抽出する場合のトレースを示す図
【図８】ＢＡＳＴ回路における‘０’値の伝播を示す概略図
【図９】パターン修正回路の一部を示すブロック図
【図１０】本発明の一実施例に係るスキャンチェーンを抽出するフローチャート
【符号の説明】
【００９７】
１００…ＬＳＩ
１０１…テスト制御回路
１０２…フリップフロップ
１０３…フリップフロップ
１０４…フリップフロップ
１０５…フリップフロップ
１０６…スキャンチェーン
１０７…スキャンチェーン
１０８…入力ピン
１０９…入力ピン
１１０…出力ピン
１１１…出力ピン
４００…ＬＳＩ
４０１…テスト制御回路
４０２…ＢＡＳＴ回路
４０３…ＢＡＳＴ回路
５００…ＢＡＳＴ回路
５０１…ＢＡＳＴ回路
５０２…擬似乱数発生回路
５０３…パターン修正回路
５０４…不定値マスク回路
５０５…スキャンパターン圧縮回路
６０１…フリップフロップ
６０２…フリップフロップ
６０３…ＥＯＲ素子
６０４…ＥＯＲ素子
【図１】
0004839856.tif 000002
【図２】
0004839856.tif 000003
【図３】
0004839856.tif 000004
【図４】
0004839856.tif 000005
【図５】
0004839856.tif 000006
【図６】
0004839856.tif 000007
【図７】
0004839856.tif 000008
【図８】
0004839856.tif 000009
【図９】
0004839856.tif 000010
【図１０】
0004839856.tif 000011