(57)【特許請求の範囲】
【請求項１】
一定のビット数及び時刻数のパターン列が複数個集まったパターン列群を1回以上発生する回路であって、
上記パターン列群内のパターン列は全て同一である同一パターン列発生部と、前記同一パターン列発生部から発生されたパターン列群を入力とし、前記パターン列群内のパターン列における一部のビットを反転させ、パターン列群及びパターン列群内パターン列番号及びパターン列内時刻に応じて、反転するパターン内ビット位置を変更する回路であるビット反転制御部とを有することを特徴とするテストパターン発生回路。
【請求項２】
請求項１において、前記同一パターン列発生部が線形フィードバックシフトレジスタと、前記パターン列群の１つを発生する間、前記線形フィードバックシフトレジスタ内のレジスタの初期値を保持し続けるレジスタを少なくとも１つ有することを特徴とするテストパターン発生回路。
【請求項３】
請求項１又は２において、前記ビット反転制御部が、入力されるパターン列群内で、反転ビットのないパターン列、１パターンの一部又は全部のビットが反転したパターン列、連続又は所定のパターン数分の間隔があいた複数パターンの一部又は全部のビットが反転したパターン列の複数パターン列の全て、あるいは上記複数パターン列の一部のパターン列を含むようにビット反転を制御する制御回路を有することを特徴とするテストパターン発生回路。
【請求項４】
請求項１ないし３のいずれか１つに記載されたテストパターン発生回路又は前記ビット反転制御部と、テスト対象回路とが集積され、前記テスト対象回路内に貼られたスキャンチェーンの入力信号線又はテスト対象回路への外部入力信号線と前記テストパターン発生回路又は前記ビット反転制御部の出力信号線が接続されたことを特徴とする半導体集積回路。
【請求項５】
スキャンチェーンの入力信号線又は外部入力信号線を持つテスト対象回路にテストパターンの信号を加え、上記テスト対象回路の応答パターンを期待値と比較する半導体集積回路のテスト方法であって、上記テストパターンの信号の発生ステップとして、一定のビット数及び時刻数のパターン列が複数個集まったパターン列群内のパターン列が全て同一である同一パターン列を発生するステップと、
前記同一パターン列のパターン列群のパターン列における一部のビットを反転させ、パターン列群及びパターン列群内パターン列番号及びパターン列内時刻に応じて、反転するパターン内ビット位置を変更するステップを有することを特徴とする半導体集積回路のテスト方法。
【請求項６】
請求項５記載のテスト方法において、前記同一パターン列を発生するステップの同一パターン列生成方法が、
仮定した故障を検出するテストパターンの集合を生成する第一のステップと、前記テストパターンの集合をパターン列の集合に変換して考え、設定すべきパターン列内時刻とパターン内ビット位置の組の集合が一致し、かつ、所定のハミング距離以下のパターン列同士を同じクラスタとなるように前記パターン列の集合を分類する第二のステップと、前記パターン列のクラスタそれぞれに対し、属するパターン列からパターン列内時刻及びパターン内ビット位置ごとの多数決により求まるパターン列を生成する第三のステップを有することを特徴とする半導体集積回路のテスト方法。
【請求項７】
請求項５記載のテスト方法において、前記同一パターン列を発生するステップが、
仮定した故障を検出するテストパターンの集合を生成する第一のステップと、前記テストパターンの集合をパターン列の集合に変換して考え、設定すべきパターン列内時刻とパターン内ビット位置の組の集合が一致し、かつ、所定のハミング距離以下のパターン列同士を同じクラスタとなるように前記パターン列の集合を分類する第二のステップと、前記パターン列のクラスタそれぞれに対し、属するパターン列からパターン列内時刻及びパターン内ビット位置ごとの多数決により求まるパターン列を生成する第三のステップと、前ステップで求めた各パターン列をLFSRのレジスタ初期値に変換する第四のステップと、前ステップで求められたLFSRレジスタ初期値の中で、パターン列群に展開すると新規に故障を検出できるあるいはテストパターンを含むものを選択する第五のステップを有することを特徴とする半導体集積回路のテスト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路のテスト方法及びそのテスト方法に使用するテストパターン発生回路並び半導体集積回路に関するものである。
【０００２】
【従来の技術】
半導体集積回路の良否を検査するテスト方法として、ストアドテスト方式と組込み自己テスト（Built-In Self-Test、 BIST）方式が代表的である。ストアドテスト方式は、仮定した故障に対しアルゴリズムによりテストパターンを求め、それを記憶したテスト装置によりテスト対象回路に印加してテスト対象回路からの応答パターンを期待値と比較するテスト方法である。BIST方式は、擬似乱数パターン発生器と符号圧縮器を半導体集積回路に内蔵して、テスト対象回路に大量の擬似乱数パターンを与え、応答パターンの圧縮結果を期待値と比較するテスト方法である。
【０００３】
ストアドテスト方式では、大規模のテスト対象回路に対し高い故障検出率を得るにはテストパターン数あるいはテストデータ量が増大し、半導体集積回路テスト装置に記憶しきれないという問題がある。BIST方式では、線形フィードバックシフトレジスタ（LFSR）で発生される擬似乱数パターンを用いるため、テストデータ量は少ないが、大規模なテスト対象回路に対しては限られた数の擬似乱数パターンでは高い故障検出率が得られないという問題がある。
【０００４】
また、BIST方式の故障検出率を改善する案が多数提案されている。特開平10-197601号公報や特開平11-142481号公報に記載された検査点挿入方式では、検査点と呼ぶ回路をテスト対象回路中に付加することにより乱数パターンでも高い故障検出率を得る。文献Proceeding of Design Automation Conference 97 (1997年) 472-477頁に掲載されたK. H. Tsai等の論文 “STARBIST: Scan Autocorrelated Random Pattern Generation" で記述された方式では、基準となる１つのパターンに対し１ビットずつ反転した近傍パターンを特定の確率で発生するために、LFSRによる乱数パターンの重みを制御する回路とビット反転を制御する回路をスキャンチェーンの途中に付加し、故障を効率的に検出する。文献Proceeding of International Test Conference 98 (1998年)1057-1064頁に掲載されたG. Kiefer等の論文 “Deterministic BIST with Multiple Scan Chains" で記述された方式では、LFSRで発生した擬似乱数パターンを類似したテストパターンに変更するために一部のビットを反転させる論理を付加する。文献Proceeding of International Test Conference 92 (1992年)120-129頁に掲載されたS. Hellebrandの論文 “Generation of vector patterns through reseeding of multiple-polynomial linear feedback shift registers" で記述されたReseeding方式では、LFSRの初期値（seedと呼ぶ）を発生したいテストパターンから計算し、そのseedを次々に入れ換える。
【０００５】
【発明が解決しようとする課題】
上述のBIST方式の故障検出率を改善するいずれの方法も大規模な半導体集積回路に適用するには課題がある。まず、検査点挿入方式では、テスト対象の半導体集積回路（以下テスト対象回路とも略称）中のパスに検査点を挿入するため回路の動作速度を遅くするオーバーヘッドがあるという問題に加え、テスト対象回路に依存して検査点を変更する必要があるため、検査点の挿入位置が決まらないとテスト対象回路のレイアウトや配線が局所的にも決まらないという半導体集積回路の設計期間が増大するという問題がある。
【０００６】
また、K. H. Tsai等の方法やG. Kiefer等の方法では、テスト対象回路に対し、時間のかかるテストパターン生成処理結果に依存してビット反転等を制御する回路やスキャンチェーンを変更しなければレイアウトや配線ができないという設計期間が増大するという問題のほかに、テスト対象回路が大規模回路になると、H. Tsai等の方法ではスキャンチェーンの貼り方の制限による配線オーバーヘッドの増加、G. Kiefer等の方法ではビット反転を制御する回路の増大がある。さらに、Reseeding方式では、オリジナルのBIST方式と比べてハード面でのオーバーヘッドや設計期間の増大の問題はないが、seed数がストアドパターン数と同等以上になることが予想され、BIST方式本来の目的であるテストデータ量削減の効果が小さいという問題がある。
【０００７】
本発明の主な目的は、少ないテストデータ量で高い故障検出率を得る半導体集積回路等ののテスト方法、特にBIST方式を用いたテスト方法を実現することである。
本発明の他の目的は、上記テスト方法を実施するため、付加する回路がテスト対象回路に依存せず、テストのための回路設計が容易な半導体回路装置を実現することである。
本発明の更に他の目的は、上記テスト方法を実施するため付加する回路による動作速度のオーバーヘッドがなく、ゲートや配線のハード的なオーバーヘッドも小さいテストのための回路装置を実現することである。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明の半導体集積回路のテスト方法は、擬似乱数パターンであるテストパターン信号（以下単にテストパターンと呼ぶ）をテスト対象回路に加え、そのテスト対象回路の応答パターンを期待値と比較するテスト方法であって、
上記テストパターンを発生するステップが、一定のビット数及び時刻数のパターン列が複数個集まったパターン列群であって、そのパターン列群内のパターン列は全て同一である同一パターン列であるパターン列群を一回以上発生する第１ステップと、前記パターン列群内のパターン列における一部のビットを反転させる第２ステップと、前記第２ステップでパターン列群、パターン列群内パターン列番号、パターン列内時刻に応じて、反転するパターン内ビット位置を変更する第３ステップとを有する。
【０００９】
また、本発明の半導体集積回路テスト方法の好ましい実施形態では、スキャンチェーン本数や外部入力端子数から定まるビット数及び最大スキャンチェーン長や単位テスト系列長から定まる時刻数のパターン列が複数個集まったパターン列群を1回以上テスト対象回路に印加し、パターン列群内では１つの基準となるパターン列が存在し、その基準となるパターン列に対し、反転ビットのないパターン列、1パターンの一部又は全部のビットが反転したパターン列、連続あるいは所定のパターン数分の間隔があいた複数パターンの一部又は全部のビットが反転したパターン列の、全て、あるいは一部のパターン列を用いる。
【００１０】
また、上記半導体集積回路のテスト方法を実施するため、本発明のテストパターン発生回路は、一定のビット数及び時刻数のパターン列が複数個集まったパターン列群を１回以上発生する回路で、そのパターン列群内のパターン列は全て同一である同一パターン列発生部と、前記同一パターン列発生部から発生されたパターン列群を入力とし、前記パターン列群内のパターン列における一部のビットを反転させ、パターン列群及びパターン列群内パターン列番号及びパターン列内時刻に応じて、反転するパターン内ビット位置を変更する回路であるビット反転制御部とをもつ。
【００１１】
本発明の好ましい実施形態では、上記パターン発生回路とテスト対象回路とを単一の半導体集積回路として構成する場合、上記パターン発生回路のビット反転制御部とテスト対象回路とを単一の半導体集積回路として構成する場合、上記パターン発生回路をテスト対象回路と独立した半導体集積回路として構成する場合があり、上記テスト対象回路と分離されたパターン発生部、あるいはパターン発生回路は、これらを含む半導体回路テスト装置を構成し、半導体回路テスト装置を構成するプローブを上記テスト対象回路の外部入力端子に接続してテストを実行する。
【００１２】
また、同一パターン列発生部は、線形フィードバックシフトレジスタと、１つのパターン群を発生する間、その線形フィードバックシフトレジスタ内の初期値を保持するレジスタを持ち、更に、線形フィードバックシフトレジスタ内のレジスタに、シリアル又はパラレルにコピーする機能を持つ。また、前記複数のパターン列群を発生するため、前記線形フィードバックシフトレジスタ内のレジスタの初期値を複数個保存するレジスタを設ける場合もある。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照し説明する。
【００１４】
図１は、本発明によるテスト方法を実施する回路の一実施例の構成を示す。
【００１５】
本テスト方法を実施するためには回路は、同一パターン列発生部１１０と、ビット反転制御部１２０と、テスト対象回路１３０から構成される。同一パターン列発生部１１０の出力線群ＰＴ１、ＰＴ２…ＰＴｎは、ビット反転制御部１２０に入力され、ビット反転制御部１２０の出力線群は、テスト対象回路１３０の入力端ＩＮ１、ＩＮ２…ＩＮｎに入力される。
【００１６】
同一パターン列発生部１１０は、クロックに同期して出力線数ｎをビット幅とするパターンを出力する。同一パターン列発生部１１０が出力するパターンで、所定の時刻数分のパターンをパターン列と呼ぶとき、同一のパターン列を複数個順次出力し、この複数個の同一のパターン列をパターン列群と呼び、ビット反転制御部１２０から異なるパターン列群を順次出力する。
【００１７】
ビット反転制御部１２０は、入力されるパターン列群の各パターンに対し、パターン列番号やパターン列内時刻に応じて、パターン中の一部のビットを反転する回路である。ビット反転制御部１２０は、各時刻に対し入力パターン中のビット反転位置を表現したパターン（ビット反転位置に対応するビットのみ論理値１）を出力する反転制御回路１２１と、ビット反転制御部１２０の入力パターンの各ビットを反転制御回路１２１の出力したパターンの各ビットに応じて排他的論理和を得る回路１２２〜１２４をもつ。
【００１８】
さらに、反転制御回路１２１の出力するパターン列群は、全て論理値０の成分をもつパターン列と、1パターンだけ一部又は全部のビットが論理値１であるパターン列と、連続あるいは所定のパターン数分の間隔があいた複数パターンの一部又は全部のビットが論理値１であるパターン列の、全て、あるいは一部のパターン列を含む。このとき、ビット反転制御部１２０の出力する各パターン列群は、１つの基準となるパターン列に対し、反転ビットのないパターン列、1パターンの一部又は全部のビットが反転したパターン列、連続あるいは所定のパターン数分の間隔があいた複数パターンの一部又は全部のビットが反転したパターン列の、全て、あるいは一部から構成される。テスト対象回路１３０は、論理設計者が設計した回路の中でテストの対象にする半導体集積回路等である。
【００１９】
図２(a)は、上記テスト対象回路の第一の回路例を示す。第一の回路例は、フルスキャン設計されたテスト対象回路２００であり、テスト対象回路２００中の全ての記憶素子（２１１、２１２……２３３）に対し、テスト中に設定、読み出しが可能となるようにスキャン機能をつけ、テスト対象回路２００を組合せ回路としてテストする。図２(b)は上記スキャン機能付き記憶素子の回路２４０を示す。クロック入力C、データ入力D、出力Qを持つ記憶素子２４１に対し、セレクタ２４２を付加し、入力線SEの入力が論理値０のときは、入力線Dの入力の値を格納する通常動作で、入力線SEの入力が論理値１のときは入力線SIの入力値を格納するスキャン動作となる。
【００２０】
図２(a)に戻って、スキャン機能付き記憶素子２１１〜２１３、２２１〜２２３、２３１〜２３３は、それぞれスキャンチェーン２０１、２０２、２０３上に直列に接続される。なお、図には記憶素子のみ記載しており、通常動作で使われる組合せ回路部分は省略している。外部入出力端子にはバウンダリスキャン記憶素子が挿入されている（図示せず）。テスト対象回路２００の動作は、端子２０４のスキャンイネーブル信号SENが０のとき端子２０５のクロックCLKを叩けば回路本来の通常動作となり、信号SENが１のときクロックCLKを叩けば各スキャンチェーン２０１、２０２、２０３上でスキャンシフト動作となる。テスト対象回路２００の入力IN1、IN2、…、INnが有効となるのは、スキャンシフト動作のときである。
【００２１】
図２(c)は、上記テスト対象回路の第二の回路例を示す。第二の回路例は、ノンスキャン設計されたテスト対象回路２６０であり、記憶素子２５１、２５２、２６１、２６２、２７１、２７２等にはスキャン機能を付けず、外部入力端子と等価な信号線をテスト対象回路２６０の入力INnとする。この場合、テスト対象回路２６０は順序回路としてテストする。
【００２２】
上述のように、本実施例によれば、フルスキャン設計又はノンスキャン設計のいずれの回路に対しも、同一パターン列発生部１１０とビット反転制御部１２０を備えるパターン発生回路により、テストパターンとして故障検出に有効とされる近傍パターン、即ち、基準となる１つのパターンに対し数ビット反転したパターンを発生することができるので、Reseeding方式と組み合わせることにより、BIST方式で高い故障検出率を得ることができる。
【００２３】
ここで、同一パターン列発生部１１０の構成例の一部である線形フィードバックシフトレジスタ（以下、LFSRと略称）を先に説明する。
図３は、線形フィードバックシフトレジスタの回路例で、従来知られているパターン発生器のものと同じである。LFSR３００は、シフトレジスタとして動作する記憶素子群３０１〜３０３と、最下段の記憶素子３０３の値と特定の記憶素子の値との排他的論理和を得る回路３０４、３０５の出力をセレクタ３０６を通して最上段の記憶素子３０１にフィードバックする。なお、記憶素子３０１〜３０３はクロック入力が変化した時にデータ入力を取り込むエッジトリガ型とする。以下の説明では、LFSR３００内のシフトレジスタの状態をseedと呼ぶ。
【００２４】
図９の(a)は、LFSR３００の動作モードを示す。入力INTSELを論理値１のとき初期設定モードと呼び、記憶素子群３０１〜３０３は入力BRCに同期してシフトし、入力SEEDINからseedの初期値を設定できる。入力INTSELが論理値０のときパターン発生モードと呼び、入力BRCに同期して、各記憶素子の出力PT1、PT2、…、PTnから疑似乱数パターンを発生する。
【００２５】
LFSRの性質として、ｎビットのLFSRにおける記憶素子の出力をフィードバックに用いる排他的論理和の入力に用いるか否かを論理値０、１で表現したｎ個のビット列と、２の剰余系でｎ次多項式の１次からｎ次の係数（０又は１）を対応させたとき、そのｎ次多項式が原始多項式、即ち既約であるならば、ｎビットのLFSRはseedの成分が全て論理値０でないとき発生するパターンの周期は最大、即ち２のｎ乗から１を減じた数となる。例えば、２の剰余系で４次多項式X^4+X+1=0は原始多項式であるので、LFSR３００が４ビットとすると、出力PT1とPT4の排他的論理和をフィードバックすれば、発生するパターンの周期は最大の１５となる。
【００２６】
図４、図５、図６、図７及び図８はいずれも、上記本発明の実施例における同一パターン列発生部１１０の回路例を示す。
図４は、同一パターン列発生部１１０の第一の回路構成例で、パラレルなseed復元が可能なLFSR４００を示す。シフトレジスタとして動作する記憶素子群４０１〜４０３と、最下段の記憶素子４０３の値と特定の記憶素子の値との排他的論理和４０４、４０５をセレクタ４０６を通して最上段の記憶素子４０１にフィードバックする部分の構成は、図３のLFSR３００と同じである。seedを記憶するために、記憶素子群４０１〜４０３にそれぞれ対応した記憶素子群４０７〜４０９を備え、セレクタ４１０〜４１２でseedの復元を制御する。
【００２７】
LFSR４００の動作モードを図９（b）に示す。入力INTSELが論理値１、入力RDSELが論理値０でクロックBRCが印加されるとき初期設定モードと呼び、記憶素子群４０１〜４０３はクロックBRCに同期してシフトし、入力SEEDINからseedの初期値を設定する。そのseedを記憶素子群４０７〜４０９にパラレルにコピーする。入力INTSELが論理値０、RDSELが論理値０のときパターン発生モードと呼び、クロックBRCに同期して、各記憶素子４００１〜４０３の出力PT1、PT2、…、PTnから疑似乱数パターンを発生し、記憶素子群４０７〜４０９の値は保持される。入力INTSELが０、RDSELが１のときseed復元モードと呼び、クロックBRCに同期して、記憶素子群４０７〜４０９の値が記憶素子群４０１〜４０３にseedとしてパラレルに（一斉に）復元される。入力INTSELが１、RDSELが０でクロックBRCが印加されないとき、seed更新モードと呼び、記憶素子群４０１〜４０３の値を記憶素子群４０７〜４０９にパラレルにコピーする。
【００２８】
図５は同一パターン列発生部１１０の第二の回路構成例で、シリアルなseed復元が可能なLFSR４２０を示す。シフトレジスタとして動作する記憶素子群４２１〜４２３と、最下段の記憶素子４２３の値と特定の記憶素子の値との排他的論理和回路４２４、４２５の出力をセレクタ４２６を通して先頭の記憶素子４２１にフィードバックする部分の構成は、前記LFSR３００と同じである。seedを記憶するために、記憶素子群４２１〜４２３にそれぞれ対応した記憶素子群４２７〜４２９を備え、セレクタ４３０でseedの復元を制御する。
【００２９】
LFSR４２０の動作モードを図９(c)に示す。入力INTSELが論理値１、入力RDSELが論理値０でクロックBRCが印加されるとき初期設定モードと呼び、記憶素子群４２１〜４２３はクロックBRCに同期してシフトし、入力SEEDINからseedの初期値を設定する。そのseedを記憶素子群４２７〜４２９にシリアルにコピーする。入力INTSELが論理値０、入力RDSELが論理値０のときパターン発生モードと呼び、クロックBRCに同期して、各記憶素子の出力PT1、PT2、…、PTnから疑似乱数パターンを発生し、記憶素子群４２７〜４２９の値は保持される。入力INTSELが０、入力RDSELが１のときseed復元モードと呼び、クロックBRCに同期して、記憶素子群４２７〜４２９の値が記憶素子群４２１〜４２３にseedとしてシリアルに復元される。
【００３０】
図６は、同一パターン列発生部１１０の第三の回路構成例で、パラレルなseed復元される複数の多項式に対応したLFSR４４０を示す。図では４ビットの例を示す。シフトレジスタとして動作する記憶素子群４４１〜４４４と、最下段の記憶素子４４４の値と最上段の記憶素子４４１の値との排他的論理和回路４４５をセレクタ４４６を通して最上段の記憶素子４４１にフィードバックする構成と、seedを記憶するための記憶素子群４４７〜４５０と、seedの復元を制御するセレクタ４５１〜４５４は、前記LFSR４００と同じである。LFSR４４０では、排他的論理和４４５の入力にAND素子４５６の出力端を接続し、記憶素子４５５で設定された値に応じてフィードバックに用いる排他的論理和の入力の一部をマスクする構成を追加した。
【００３１】
この構成により、LFSRに対応した２の剰余系の多項式を複数個もつことができる。図の例では、x^4+x+1=0（原始多項式）と、x^4+1=0（シフトレジスタ）である。また、LFSR４４０の動作はLFSR４００の動作とほぼ同様で、異なる点は、初期設定モード時にフィードバックに用いる排他的論理和の入力を制御する記憶素子４５５の値を設定する必要があることである。
【００３２】
図７は、同一パターン列発生部１１０の第四の回路構成例で、パラレルなseed復元及びシフトによるパターン発生を可能にしたLFSR４６０を示す。LFSR４６０の4ビットのシフトレジスタ部分４６１〜４６４及びseed復元機能４６７〜４７０の構成は前記LFSR４４０と同じである。ただし、パターン発生モードで、記憶素子４７５の値が論理値０のときは記憶素子４６１と４６４の値の排他的論理和を記憶素子４６１にフィードバックするが、記憶素子４７５の値が論理値１のときは入力SEEDINからの値を記憶素子４７５をバイパスしてシフトレジスタ４６１〜４６４に取り込む。これは、後で図１７説明する複数個のLFSRをもつ同一パターン列発生部で、別のLFSRの状態を利用する時に用いる。
【００３３】
図８は、同一パターン列発生部１１０の第五の回路構成例で、シフトレジスタ群４８０を示す。記憶素子群４８１、４８２、４８３とセレクタ４８４、記憶素子群４８５、４８６、４８７とセレクタ４８８、記憶素子群４８９、４９０、４９１とセレクタ４９２は、入力INTSELが１のとき、入力BRCに同期してシフトすることにより入力群SEEDIN1、SEEDIN2、…SEEDINnから初期値を設定し、入力INTSELが論理値０のとき、それぞれがシフトレジスタとして動作して、出力PT1、PT2、…、PTnからは最終記憶素子４８３、４８７、４９１の値からなるパターン信号を出力する。
【００３４】
以上の同一パターン発生部１１０の回路構成例５つに対して、その特長をまとめる。第一の回路構成例LFSR４００は、seedの復元がパラレルにできるためテスト時間を短くできる。第二の回路構成例LFSR４２０は、seedの復元はシリアルなためテスト時間は長くなるがゲートオーバーヘッドがLFSR４００より小さい。第三の回路構成例LFSR４６０は、LFSR多項式を複数もつことができる。第四の回路構成例LFSR４８０は、複数個のLFSRをもつときに別のLFSRの状態を利用してパターンを発生できる。第五の回路構成例では、ゲートオーバーヘッドや全記憶素子に設定するためのデータ量は大きいが、パターン列として全ての組合せを表現できる。
【００３５】
次に、反転制御回路１２１の詳細な構成について説明する。なお、パターン列内パターン数は２５６として説明する。
図１０は、反転制御回路１２１の第一の回路構成例を示す。反転制御回路６００では、１パターンだけ全部のビットが論理値１であるパターン列を２５６通り出力する。反転制御回路６００は、出力C1-C８をもつパターン列内時刻用８bitカウンタ６０１と出力C1-C8をもつパターン列番号用８bitカウンタ６０２と、２つのカウンタ６０１及び６０２の値が一致しているか否かを求める比較器６０４を備え、その出力はマスク用のAND素子６０５を通してｎ個の出力RVS1、RVS2、…、RVSnに分配される。クロックBRCは、パターン列内時刻用カウンタ６０１のクロックCとして使われ、パターン列番号用カウンタ６０２のクロックCはクロックBRCと入力HCCKENとの論理積素子６０３で供給される。
【００３６】
ここで、反転制御回路６００に使われるｎビットカウンタの回路例を図１４(a)に示す。ｎビットカウンタ７００は、カウンタの状態を表す記憶素子７０１〜７０４と、排他的論理和を求めるための素子７１２〜７１４と、カウンタの０リセットをする素子７２１〜７２４と、カウンタとしての動作かシフト動作かを選択するセレクタ７３１〜７３４から構成され、カウンタの状態をｎ個の出力C1、C2、…、Cnによって出力する。
【００３７】
図１４(b)は、カウンタ７００の動作モードを示す。入力SFTENが論理値１、入力Rが論理値０のときシフトモードと呼び、入力SFTINよりクロックCに同期してカウンタ内記憶素子７０１〜７０４をシフトすることでカウンタの初期値を設定する。入力SFTENが論理値０、Rが論理値１のときリセットモードと呼び、クロックCに同期してカウンタを０に設定する。入力SFTENが論理値０、Rが論理値０のときインクリメントモードと呼び、クロックCに同期してカウンタのもつ値を１増加させる。
【００３８】
反転制御回路６００の説明に戻り、その動作モードを説明する。入力INTSELが論理値１、入力RDSELが論理値０、入力HCCKENが論理値１のとき、クロックBRCに同期して２つのカウンタ６０１、６０２内の記憶素子の内容がシフトするので、入力CTINよりそれらの初期値を設定できる。入力INTSELが論理値０、入力RDSELが論理値１のとき、クロックBRCに同期してパターン列内時刻用カウンタ６０１を値０（記憶素子を全て０）に設定する。入力INTSELが論理値０、入力RDSELが論理値０のとき、入力HCCKENが論理値０であればクロックBRCでパターン列内時刻用カウンタ６０１のみインクリメントし、入力HCCKENが論理値１であればクロックBRCで２つのカウンタ６０１、６０２をインクリメントする。さらに、パターン列内で常に入力NBENが論理値１のとき、２つのカウンタの値が一致する場合のみ成分が全て論理値１であるパターンを出力し、それ以外のパターンでは全て論理値０であるパターンを出力する。パターン列内で常に入力NBENが論理値０のとき、全て論理値０の成分をもつパターン列が出力される。
【００３９】
図１１は、反転制御回路１２１の第二の回路構成例を示す。反転制御回路では、１パターンだけ半分のビットが論理値１であるパターン列を５１２通り出力する。反転制御回路６２０は、パターン列内時刻用カウンタ６２１と、比較器６２４を備え、マスク用のAND素子６２５、入力HCCKENとの論理積素子６２３は、反転制御回路６００のAND素子６０５及び論理積素子６０３と同じである。パターン列番号用カウンタ６２２は反転制御回路６００のパターン列番号用カウンタ６０２に９ビット目C9が追加された構成であり、ビットC9の論理値あるいはその反転値との論理積素子６２６〜６３０を通してｎ個の出力RVS1、RVS2、…、RVSnに接続する。図１１の回路の場合、パターン列番号用カウンタ６２２の9ビット目C9が論理値０であれば、RVS1、RVS3、…のみ論理値１をもつパターンを出力し、9ビット目C9が論理値１であれば、RVS2、RVS4、…、RVSn…のみ論理値１をもつパターンを出力する。
【００４０】
図１２は反転制御回路１２１の第三の回路構成例を示す。反転制御回路６４０では、１パターンだけ全ビットが論理値１であるパターン列を２５６通り、周期１２８の間隔をもつ２パターンの全ビットが論理値１であるパターン列を２５６通り、計５１２通りのパターン列を出力する。反転制御回路６４０は、パターン列内時刻用カウンタ６４１を備え、マスク用のAND素子６４５、入力HCCKENの論理積６４３は、それぞれ前記反転制御回路６００のAND素子６０５及び論理積素子６０３と同じである。
【００４１】
パターン列番号用カウンタ６４２はAND素子６０５及び論理積素子６０３に９ビット目C9が追加されており、回路６４４は前記比較器６０４の機能が一部変更されている。回路６４４は、パターン列番号用カウンタ６４２の９ビット目C9が論理値０のとき従来の8ビット比較器と同じ動作をするが、その９ビット目C9が論理値１のとき下位７ビットの比較器となる。この結果、パターン列番号用カウンタ６４２の９ビット目C9が論理値０のとき１パターンだけ全ビットが論理値１であるパターン列を出力し、パターン列番号用カウンタ６４２の９ビット目C9が論理値１のとき周期１２８ので出現する２パターンの全ビットが論理値１であるパターン列を出力する。
【００４２】
図１３は、反転制御回路１２１の第四の回路構成例を示す。反転制御回路６６０は、１パターンだけ全ビットが論理値１であるパターン列を２５６通り、時刻の連続した２パターンの全ビットが論理値１であるパターン列を２５６通り、１時刻分間隔のある２パターン全ビットが論理値１であるパターン列を２５６通り、２時刻分間隔のある２パターン全ビットが論理値１であるパターン列を２５６通り、計１０２４通りのパターン列を出力する。
【００４３】
反転制御回路６６０は、パターン列内時刻用カウンタ６６１と、比較器６６４と、マスク用のAND素子６６５、入力HCCKENと信号BRDの論理積回路６６３とを備える。これらはそれぞれ前記反転制御回路６００のパターン列内時刻用カウンタ６０１と、比較器６０４と、マスク用のAND素子６０５及び論理積回路６０３と同じである。パターン列番号用カウンタ６６２は反転制御回路６００のカウンタ６０２に９、１０ビット目C9,C10が追加された構成であり、AND素子６６６、６６７、６６８はカウンタ６０２に９、１０ビット目C9,C10の出力を制御する。上記９、１０ビット目C9,C10の論理値がどちらも０のときAND素子６６６、６６７、６６８の出力は全て論理値０、９ビット目C9が論理値１で１０ビット目C10が論理値０のときAND素子６６６の出力のみが論理値１、９ビット目C9が論理値０で１０ビット目C10が論理値１のときAND素子６６７の出力のみが論理値１、上記９、１０ビット目C9,C10がどちらも論理値１のときAND素子６６８の出力のみが論理値１となる。
【００４４】
記憶素子６６９〜６７２は、順にその時点での時刻、１時刻前、２時刻前、３時刻前における比較器６６４の出力値を記憶する。OR素子６７３には、４つの入力、すなわち、比較器６６４の出力値、1時刻前の比較器６６４の出力値をもつ記憶素子６７０とAND素子６６６との出力値との論理積、２時刻前の比較器６６４の出力値をもつ記憶素子６７１とAND素子６６７との出力値との論理積、３時刻前の比較器６６４の出力値をもつ記憶素子６７２とAND素子６６８との出力値との論理積があり、そのいずれか１つが１であれば、出力RVS1、RVS2、…、RVSnへ論理値１が伝わる。この結果、パターン列番号用カウンタ６６２の９、１０ビット目C9,C10の論理値がどちらも０のとき１パターンだけ全ビットが論理値１であるパターン列を出力し、９ビット目C9が論理値１で１０ビット目C10が論理値０のとき時刻の連続した２パターンの全ビットが論理値１であるパターン列を出力し、９ビット目C9が論理値０で１０ビット目C10が論理値１のとき１時刻分間隔のある２パターン全ビットが論理値１であるパターン列を出力し、９、１０ビット目C9,C10がどちらも論理値１のとき２時刻分間隔のある２パターン全ビットが論理値１であるパターン列を出力する。
【００４５】
ここで、反転制御回路１２１内のカウンタのビット数について、例えば、反転制御回路６００ではパターン列内時刻用カウンタ６０１のビット数を８としたが、この数から求まるカウンタの周期２５６はパターン列内のパターン数上限を意味するもので、８に限定されない。もしパターン列内のパターン数がパターン列内時刻用カウンタ６０１の周期より大きい場合、反転制御回路６００は、全部のビットが論理値１であるパターンがその周期で出現するパターン列を順次出力する。
【００４６】
一方、反転制御回路６００ではパターン列番号用カウンタ６０２のビット数を８としたが、この数から求まるカウンタの周期２５６はパターン列群内のパターン列の個数上限を意味するもので、この例のように８でなくても良い。パターン列群内のパターン列の個数がパターン列番号用カウンタ６０２の周期より大きいと同じパターン列が出現するだけであるので、この場合は想定しない。以上のカウンタのビット数に関する注意は、反転制御回路１２１の他の構成例でも同じである。
【００４７】
好ましい実施形態では、上述の各パターン発生部、ビット反転制御部、反転制御回路部は、単独又は組み合わせた形態で単一の半導体集積回路で構成される。以下の本発明による半導体集積回路を説明する。
図１５の（a）は、本発明によるテストパターン発生回路を持つ半導体集積回路の第一の実施例の構成を示す。半導体集積回路８００は、同一パターン列発生部８１０と、ビット反転制御部８２０と、パターン発生制御部８３０が１つの半導体集積回路（テストパターン発生器）として構成される。同一パターン列発生部８１０は、図４、図５、図６に示した同一パターン列発生部４００、４２０、４４０のいずれかとする。ビット反転制御部８２０内の反転制御回路８２１は、図１０、図１１、図１２、図１３に示した反転制御回路６００、６２０、６４０、６６０のいずれかとする。パターン発生制御部８３０は、２つの入力BINIT、NHGENから出力INTSEL、RDSEL、NBEN、HCCKENを４つの信号に設定するデコーダで、上記２つの入力に対する出力の組合せ及び動作モードの呼称を図１５の
(b)に示す。
【００４８】
初期設定モード８４１では、同一パターン列発生部８１０及び反転制御回路８２１内の記憶素子に対し、入力SEEDINからシリアルに同一パターン列発生器８１０の初期値を設定する。パターン発生モード８４２では、同一パターン列発生部８１０はLFSRとして動作して疑似乱数パターンを順次発生し、反転制御回路８２１は全ての成分RVS1、RVS２…RVSｎが論理値０であるパターンを出力し続けるため、パターン発生器８００は、同一パターン列発生部８１０の発生する疑似乱数パターンをそのまま出力する。seed復元モード８４３では、同一パターン発生部内のseedが記憶されていたレジスタにパラレルあるいはシリアルに復元され、反転制御回路８２１内のパターン列内時刻用カウンタが０にリセットされる。
【００４９】
近傍パターン発生モード８４４では、近傍パターン群、すなわち、基準となるパターン列に対し、反転ビットのないパターン列、１パターンの一部又は全部のビットが反転したパターン列、連続あるいは所定のパターン数分の間隔があいた複数パターンの一部又は全部のビットが反転したパターン列の、全て、あるいは一部のパターン列を発生する。なお、以下の説明では、パターン発生器８００が発生する近傍パターン群の中で、基準となるパターン列のことを親パターン、それ以外の基準となるパターン列と一部のビットが反転しているパターン列のことを子パターンと呼ぶ。
【００５０】
図１６は、本発明によるテストパターン発生回路を持つ半導体集積回路の第二の実施例の構成を示す。半導体集積回路９００は、パターン発生器９０１とテスト対象回路９０２から構成される。パターン発生器９０１は、図１５（a）のパターン発生器８００と同じ構成で、同一パターン列発生部８１０とビット反転制御部８２０の組合せは前述の回路のいずれの組み合わせでも良い。テスト対象回路９０２は、図２の(a)、(c)に示したテスト対象回路２００、２６０のいずれでもよい。本実施例では、故障検出に有効な近傍パターンを発生できるので、少ないテストデータ量で高い故障検出率を得ることができる。
【００５１】
図１７は、本発明によるパターン発生回路を持つ半導体集積回路の第三の実施例の構成を示す。半導体集積回路９２０は、複数のパターン発生器９２１…９２２と１つのテスト対象回路９２３から構成される。パターン発生器９２１…９２２のぞれそれは、前記パターン発生器８００と同じで、同一パターン列発生部８１０とビット反転制御部８２０の組合せはいずれの組み合わせでも良い。テスト対象回路９２３は、図の２(a)、(c)に示したテスト対象回路２００、２６０のいずれでもよい。本実施例では、少ないテストデータ量で高い故障検出率を得ることができる効果に加えて、サイズの小さいパターン発生器を複数もち半導体集積回路内に分散して配置することにより、テスト対象回路内のスキャンチェーンを配線するオーバーヘッドを低減できる。
【００５２】
図１８は、本発明によるパターン発生回路を持つ半導体集積回路の第四の実施例の構成を示す。半導体集積回路９４０は、パターン発生器９４１とテスト対象回路９４２とパターン圧縮器９４３が１つ半導体集積回路を構成する。本実施例は本発明に基づいたBIST方式の標準的な構成である。パターン発生器９４１は、前記パターン発生器８００と同じ構成で、同一パターン列発生部８１０とビット反転制御部８２０の組合せはいずれの組み合わせでも良い。テスト対象回路９４２は、図２(a)に示したフルスキャン設計されたテスト対象回路２００と同じ構成である。
【００５３】
図１９は、図１８のパターン圧縮器の回路を示す。パターン圧縮器９４３の回路９６０は、BIST方式で一般に使われるMultiple Input Signature Resister(MISR)と同じ構成である。MISRは、記憶素子９６１〜９６４と排他的論理和９６５、９６６及びそのフィードバックからなる部分はLFSRで、各入力SA1、SA2、…、SAnの論理値を各記憶素子９６１〜９６４の直前で排他的論理和９６７〜９８０をとる構成である。入力SA1、SA2、…、SAnから入力されるパターン列を順次クロックBMCに同期して記憶素子９６１〜９６４にコード化（圧縮）していく。LFSRに対応する２の剰余系の多項式が原始多項式であれば、誤り見逃し（入力パターン列に誤りがある場合に最終的な記憶素子９６１〜９６４のビット列に誤りがない）確率は非常に小さい事が知られている。すなわち、MISRの最終状態の期待値のみを読み出した結果と比較することは、各パターンごとの期待値と比較する場合と同等の故障検出能力があることを意味する。従って、図１９の回路構成では、さらに少ないテストデータ量で高い故障検出率を得ることができる。
【００５４】
図２０は、本発明によるパタン発生回路を持つ半導体集積回路の第五の実施例の構成を示す。半導体集積回路９８０は、初期値保存レジスタ９８１とパターン発生器９４１とテスト対象回路９４２とパターン圧縮器９４３から構成される。前記第四の実施例である半導体集積回路９４０に比較して、入力TDIとパターン発生器９４１との間に初期値保存レジスタ９８１が追加されている点が異なり、第四の実施例である半導体集積回路９４０と同じ部分は同じ符号で示している。初期値保存レジスタ９８１は、入力BINITが論理値１、入力NHGENが論理値０の初期設定モードのときに、クロックBRCに同期してシフトレジスタとして動作する。記憶素子９８３〜９８５はその数がパターン圧縮器９４３内の記憶素子数で、パターン圧縮器９４３の初期値を格納する。記憶素子９８６〜９８８、９８９〜９９１、９９２〜９９４は、それぞれ、その数がパターン発生器９４１内の記憶素子数で、パターン発生器９４１の第一回目の初期値、第二回目の初期値、第ｓ回目の初期値を格納する。なお、ｓはパターン列群の数である。前述の第四の実施例では、パターン列群毎に半導体集積回路テスト装置からパターン発生器９４１の初期値を与えるため、半導体集積回路テスト装置とのインターフェースにおけるオーバーヘッドがあった。しかし、第五の実施例では、複数のパターン列群に対するパターン発生器９４１の初期値を最初に格納できるため、半導体集積回路テスト装置とのインターフェースにおけるオーバーヘッドが小さくなる。
【００５５】
以上の第一ないし第五の半導体集積回路の構成では、本発明による同一パターン列発生部１１０とビット反転制御部１２０が半導体集積回路内に内蔵されているが、これらがテスト対象回路と別の半導体集積回路テスト装置として構成してもよい。また、上記半導体集積回路テスト装置が同一パターン列発生部１１０を内蔵し、テストの対象となる半導体集積回路がビット反転制御部１２０を内蔵してもよい。さらに、同一パターン列発生部１１０やビット反転制御部１２０は、半導体集積回路外のウェハー部分に作成して、いわゆるウェハー上での半導体集積回路テスト装置に適用してもその効果は失われない。
【００５６】
次に、本発明によるパターン発生回路を持つ半導体集積回路の動作をタイムチャートを使用して説明する。
図２１は、図１８に示した半導体集積回路９４０の基本的な動作のタイムチャートを示す。まず、BIST初期設定モード１００１では、パターン発生器９４１（図１５の８００と同じ）内のパターン発生制御部８３０を初期設定モード８４１に設定し、パターン発生器９４１とパターン圧縮器９４３の記憶素子数分、クロックBMCとクロックBRCを交互にパルスを与え、入力TDIからseedを含むパターン発生器９４１とパターン圧縮器９４３の初期値を順に入力する。
【００５７】
親パターン設定モード１００２では、パターン発生器９４１内のパターン発生制御部８３０をパターン発生モード８４２に設定、スキャンイネーブルSENを論理値１に設定し、最大のスキャンチェーン長分、スキャンチェーンシフト用クロックCLKとクロックBRCに交互にパルスを与えることで、テスト対象回路９４２内の記憶素子全てに論理値が設定され、テスト対象回路９４２をテストする親パターンとなる。
【００５８】
クロックアドバンス及びseed復元モード１００３では、パターン発生器９４１内のパターン発生制御部８３０をseed復元モード８４３に設定、スキャンイネーブルSENを論理値０に設定し、データキャプチャー用のクロックCLKとseed復元用のクロックBRCに１回ずつパルスを与える。
【００５９】
近傍パターン設定・圧縮モード１００４では、パターン発生器９４１内のパターン発生制御部８３０を近傍パターン発生モード８４４に設定、スキャンイネーブルSENを論理値１に設定し、最大のスキャンチェーン長分、クロックBMC、スキャンチェーンシフト用クロックCLK、クロックBRCに順にパルスを与え、クロックアドバンス結果の圧縮と次の子パターンの設定を同時に行う。そして、モード１００３とモード１００４を親パターン用の１回分＋子パターン数分ほど繰り返す。ここまでのモード１００１〜１００４までの手順で、パターン発生器９４１において１つのパターン列群を発生し、テスト対象回路９４２に対し親パターン１つと子パターン群によるテストを行い、その応答パターン結果をパターン圧縮器９４３の最終状態（全記憶素子の値）に圧縮している。
【００６０】
このモード１００１〜１００４までの手順をseed数、即ちパターン列群の数ほど、繰り返す。なお、２回目以降のBIST初期設定モード１００１では、パターン発生器９４１とパターン圧縮器９４３の初期値設定と同時に、テストの応答パターンを圧縮した結果であるパターン圧縮器９４３の最終状態も読み出す。そして、上記手順の繰り返しの最終回については、圧縮結果抽出モード１００５でパターン圧縮器９４３の最終状態を読み出す。
【００６１】
ここで、図１８に示した半導体集積回路９４０と図２１に示したタイムチャートで、テスト対象回路９４２をどのようなパターンでテストできるかを説明する。説明のため、フルスキャン設計であるテスト対象回路９４２のスキャンチェーン長を２５９、スキャンチェーン本数をｎ個とする。従って、パターン発生器９４１の発生するパターン列内のパターン数は２５９となる。１つのパターン列群において、基準となるパターン列をスキャン展開したパターン、即ち、親パターンに対し、どのような子パターンが発生されるのかを、図１０〜図１３で示した反転制御回路ごとに図２４〜図２７を用いて説明する。
【００６２】
図２４〜図２７の各図は図２(a)に示したテスト対象回路２００を簡略化したもので、１つ１つの小さな正方形はスキャン機能付き記憶素子に対応し、ハッチングがあるときは親パターンと反転したビットであることを表す。また、子パターンの番号は、その子パターンが生成されたときのパターン列番号用カウンタの値を表す。
【００６３】
図２４は、反転制御回路６００を用いた場合の子パターン２５６個を示す。子パターン０〜２は周期２５６で２列が反転したパターンで、子パターン３〜２５５は１列のみ反転したパターンとなる。
【００６４】
図２５は、反転制御回路６２０を用いた場合の子パターン５１２個をに示す。反転ビットのある列は、子パターン０〜２５５と子パターン２５６〜５１１が図２４に対応している。ただし、列内での反転しているビットは、子パターン０〜２５５では奇数行目(IN1、IN3、…で接続されるスキャンチェーン上の記憶素子)で、子パターン２５６〜５１１では偶数行目（IN2、IN4、…で接続されるスキャンチェーン上の記憶素子）である。
【００６５】
図２６は、反転制御回路６４０を用いた場合の子パターン２５６〜３８４を示す。子パターン３８４個の中で、子パターン０〜２５５は図２４と同じであるため省いている。子パターン２５６〜２５８は周期１２８で３列が反転したパターンで、子パターン２５９〜３８３は周期１２８で２列反転したパターンとなる。
【００６６】
図２７は、反転制御回路６６０を用いた場合の子パターン１０２４個の中で、子パターン２５６〜１０２３をに示す。子パターン０〜２５５は図２４と同じであるため省かれている。子パターン２５６〜５１１は周期２５６で連続した２列が反転したパターンで、子パターン２５６、２５７は計４列、子パターン２５８は計３列、子パターン２５９〜５１１は２列が反転したパターンである。子パターン５１２〜７６７は周期２５６で１列間隔のある２列が反転したパターンで、子パターン５１２は計４列、子パターン５１３、５１４は計３列、子パターン５１５〜７６７は２列が反転したパターンである。子パターン７６８〜１０２３は周期２５６で２列間隔のある２列が反転したパターンで、子パターン７６８〜７７０は計３列、子パターン７７１〜１０２３は２列が反転したパターンである。
【００６７】
図２８は、本発明によるパターン発生回路を持つ半導体集積回路の第六の実施例の構成を示す。半導体集積回路１２００は、パターン発生器１２１０とテスト対象回路１２２０から構成される。テスト対象回路１２２０は、８個の記憶素子１２２１〜１２２８と、それらの出力x1〜x8を入力とするAND素子１２２９と、AND素子１２２９の出力x0を入力する記憶素子１２３０をもち、記憶素子１２３０の出力y0は記憶素子１２２１〜１２２８のそれぞれの入力Ｄに加えられる。
【００６８】
テスト対象回路１２２０はフルスキャン設計されており、記憶素子１２３０はスキャンチェーン１２３１上にあり、記憶素子１２２１〜１２２８はスキャンチェーン１２３２上にある。パターン発生回路１２１０は、図１５に示したパターン発生器８００と同じ構成である。ただし、その発生するパターンのビット数は出力PG1、PG2、PG3、PG4の４ビットである。同一パターン列発生部８１０は図６に示した同一パターン列発生部４４０と同じ構成である。反転制御回路８２１は図１０に示した反転制御回路６００と同様の構成で、２つのカウンタ６０１、６０２のビット数はどちらも３ビットとする。
【００６９】
テスト対象回路１２２０で、記憶素子の出力x0、x1、…、x8、y0に対し０縮退故障と１縮退故障を仮定したときのテストパターン集合を図２８(b)に示す。列１２４１は各テストパターンの番号、列１２４２は各テストパターンを記憶素子出力名に対する論理値の組で表現したもの、列１２４３は各テストパターンで検出可能な縮退故障を「信号線名／縮退値」で表現し列挙したものである。なお、列１２４２で論理値がXとなっているのは、不定値、即ち、論理値０でも論理値１でもよいことを表す。
【００７０】
図２８（b）で示したテストパターン集合の性質を述べる。パターン番号２〜９のパターンは、記憶素子の出力x1〜x8の８ビット全てが論理値１であるパターン番号１のパターンに対し、１ビットずつ反転したパターンである。即ち、パターン番号１のパターンとハミング距離が１である近傍パターンでほどんどの故障を検出できることがわかる。前述したK. H. Tsai等の論文によると、多くの回路に対し、近傍パターンがテストパターンとして有効であることが指摘されている。
【００７１】
図２９は、上記半導体集積回路１２００のテスト時における詳細な動作を示す。タイムチャートは図２１で示したものに従うが、パターン圧縮器を持たないためクロックBMCはない。図中の「P」はクロックにパルスが与えられることを示す。また、パターン発生器の初期値に関しては、フィードバックイネーブル用の記憶素子の値を０、LFSR部分のseedを（１，１，１，１）、パターン列番号用３ビットカウンタの値を７に設定する。なお、パターン列内時刻用３ビットカウンタの値は、子パターン出現ごとに０にリセットされるため、初期化する必要はない。
【００７２】
時刻１〜１１はパターン発生器の初期値設定で、時刻１１で上記の設定が完了する。時刻１２〜１９はスキャンのシフトによる親パターン設定で、時刻１９の記憶素子y0、x1、…x8の親パターンが設定される。時刻２０ではクロックアドバンスにより、親パターンに対する応答結果を記憶素子y0、x1、…x8に格納する。時刻２１〜２８では、親パターンに対する応答結果をスキャンのシフトにより外部出力端子O1、O2で読み出すと同時に、時刻２８の記憶素子x0、x1、…x8に子パターン０（x8のみ論理値０に反転）が設定される。このように、クロックアドバンスと子パターン設定・結果読み出しを繰り返す。時刻９１で記憶素子y0、x1、…x8に子パターン７を設定し、時刻９２でクロックアドバンスにより応答パターンを記憶素子y0、x1、…x8に格納する。そして、最後に、時刻９３〜１００で、子パターン７の応答パターンを読み出す。
【００７３】
以上の動作によって実現できるテストパターンは、図２８(b)で示したテストパターン集合の全てをカバーする。即ち、親パターンはパターン番号１とパターン番号１０をカバーし、子パターン０はパターン番号２とパターン番号１０、子パターン１はパターン番号３とパターン番号１０、子パターン２はパターン番号４とパターン番号１０、子パターン３はパターン番号５とパターン番号１０、子パターン４はパターン番号６とパターン番号１０、子パターン５はパターン番号７とパターン番号１０、子パターン６はパターン番号８とパターン番号１０、子パターン７はパターン番号９とパターン番号１１を全て含む。
【００７４】
よって、半導体集積回路１２００の全縮退故障をテストするためのテストデータ量は、パターン発生器１２１０の初期値の１seed、１０ビット（カウンタの初期値を含む）である。一方、仮にテスト対象回路１２２０をストアドテスト方式で全縮退故障をテストする場合のテストデータ量は、１１パターン、計７４ビットである。このように、本発明を用いた半導体集積回路は、そのテストに必要なデータ量を著しく減らすことができる。
【００７５】
次に、本発明による半導体集積回路について、疑似乱数パターンを発生させるタイムチャートと、複雑なタイムチャートとそのときのテストパターンを説明する。
図２２は、図１８に示した半導体集積回路９４０を例に、従来のLFSRと同様な疑似乱数パターンを発生するタイムチャートを示す。まず、BIST初期設定モード１０１１と初期パターン設定モード１０１２は、それぞれ図２１のモード１００１、１００２と同じである。クロックアドバンスモード１０１３と乱数パターン設定・圧縮モード１０１４では、パターン発生モード８４２（図１５（b））に設定する。このとき、図４〜図７に示した同一パターン列発生部４００、４２０、４４０、４６０はいずれもLFSRそのものと同じ動作をするため、その出力パターンは疑似乱数パターンとなる。最後の圧縮結果判定モード１０１５は、図２１のモード１００５と同じである。
【００７６】
図２３は、図１８に示した半導体集積回路９４０に対する複雑なタイムチャートの例を示す。図１８は図２１で示したタイムチャートに比べて、親パターン設定モード１０２２〜１０２５と、近傍パターン設定・圧縮モード１０２７〜１０３０が複雑になっており、seed更新モード１０３１が新たに追加されている。以下変更があった部分についてのみ説明する。
【００７７】
親パターン設定モードにおいて、空回し１０２２では、クロックBRCのみパルスを与えるため、LFSRのみ状態を遷移し、スキャンチェーンはシフトしない。これを指定された空回し数分繰り返す。空送り１０２３では、クロックCLKのみパルスを与えるため、LFSRの状態は変わらずにスキャンチェーンのみはシフトする。これを指定された空送り数分繰り返す。設定１０２４では、クロックCLKとクロックBRCに交互にパルスを与えることで、スキャンチェーンはシフトし、LFSRの状態も遷移する。以上１０２２〜１０２４のモードを、テスト対象回路９４２内の記憶素子全てに論理値が設定されるまで繰り返す。その後、空送り追加１０２５で、クロックCLKのみパルスを与えるためスキャンチェーンのみシフトする。これを指定された空送り追加数分繰り返す。なお、空回し数はスキャンチェーン本数以下、空送り数は最大スキャンチェーン長以下、空送り追加数は空送り数以下でなければならない。
【００７８】
また、近傍パターン設定・圧縮モード１０２７〜１０３０も、パターン圧縮回路９４３を動作させるためのクロックBMCを除いては、親パターン設定モード１０２２〜１０２５と同じである。seed更新モード１０３１については、パターン発生器９４１内のパターン発生制御部８３０を初期設定モード８４１に設定し、クロックBRCにパルスを与えないので、LFSRの状態をseed保存用記憶素子群にコピーする。
【００７９】
上記の「空回し」、「空送り」、「seed更新」という動作について説明する。図１８に示した半導体集積回路９４０を例に、パターン発生器９４１は４ビットのLFSRをベースにした同一パターン列発生器４４０（図６）と同様で、テスト対象回路９４２内のスキャンチェーン本数は４つ、スキャンチェーン長は全て５とする。このとき、テスト対象回路９４２に設定されたテストパターンと設定完了時点のLFSRの状態を、図３１〜３２に示す。図では、パターン発生器９４１内の論理値を表現した部分１４０１はLFSRの４ビットのみを記述し、フィードバック制御１４０２とseed入力１４０３を模式化している。LFSRの初期値（seed）は、s1、s2、s3、s4が順にseed入力１４０３からシリアルに設定され、LFSRの初期値設定後に生成する乱数列を、r1、r2、r3、…と表現する。もし、フィードバック制御１４０２の入力が０であれば、r1=s1、r2=s2、r3=s3、…である。フィードバック制御１４０２の入力が１であれば、r1=s1+s4、r2=s2+r1、r3=s3+r2、…となる。
【００８０】
図３１の(a)は、空回し数＝０、空送り数＝０の場合で、テスト対象回路１４１１で設定されたテストパターンは、右上から左下に向かって記憶素子間の相関があることがわかる。図３１の(b)は、空回し数＝１、空送り数＝０の場合で、テスト対象回路１４１２で設定されたテストパターンは、右上から左下に向かって１列ずつあいた記憶素子間の相関があることがわかる。図３１の(c)は、空回し数＝０、空送り数＝１、空送り追加数＝０の場合で、テスト対象回路１４１３で設定されたテストパターンは、スキャンチェーンのシフト方向に２個ずつ同じ論理値が設定されており、右上から左下への相関もあることがわかる。図３１の(d)は、空回し数＝０、空送り数＝１、空送り追加数＝１の場合で、テスト対象回路１４１４で設定されたテストパターンは、テスト対象回路１４１３で設定されたテストパターンを１つ右にシフトしたもので、記憶素子間の相関関係が変わっていることがわかる。また、図３１の(e)は、空回し数＝０、空送り数＝０で、seed更新を行った場合を示しており、テスト対象回路１４１５で設定されたテストパターンは、LFSRから発生する擬似乱数パターンの２つ目であるし、LFSRの初期値をr2、r3、r4、r5と設定した場合のテストパターンとみることもできる。
【００８１】
このように、「空回し」動作は、テストパターン中の記憶素子の相関を変えて、故障検出率を向上できるという効果がある。「空送り」動作は、スキャンチェーンシフト中やクロックアドバンス時の遷移信号発生の割合を抑える効果があり、テスト時のノイズを低減できる。「空送り追加」動作は、「空送り」動作において生じる記憶素子の相関を変えて、故障検出率を向上できる。
【００８２】
さらに、他の実施例として、図１７で示した半導体集積回路９２０のように、複数のパターン発生器をもつときのテストパターンとその効果を述べる。各パターン発生器９２１〜９２２には、パターン発生時に擬似乱数発生とシフト動作を切換えることができる同一パターン列発生部４６０（図７）をもつ。テスト対象回路９２３のスキャンチェーンは１２本で４本ずつパターン発生回路９２１〜９２２に接続し、スキャンチェーン長は５とする。このとき、全ての同一パターン列発生部４６０の記憶素子４７５に論理値０を設定したときのテストパターンを図３２の(a)に示し、初期設定用の入力TDIに最も近いパターン発生器１４２３の記憶素子４７５のみ論理値０で、それ以外のパターン発生器１４２１、１４２２の記憶素子４７５に論理値１を設定したときのテストパターンを図３２の（b）に示す。
【００８３】
同一パターン列発生部１４２１、１４２２、１４２３内のLFSRの初期値を、順に、(s11、s12、s13、s14)、(s21、s22、s23、s24)、(s31、s32、s33、s34)とする。また、LFSRの初期値設定後に生成する乱数列を、順に、(r11、r12、r13、…)、(r21、r22、r23、…)、(r31、r32、r33、…)とし、これらの値はそれぞれ(s11、s12、s13、s14)、(s21、s22、s23、s24)、(s31、s32、s33、s34)の一次式で表現できる。
【００８４】
ここで、図３２の(a)の場合と図３２の(b)の場合を比較して、seed変換の容易さを説明する。テストパターン中の設定すべき記憶素子の集合は、１つのパターン発生器から接続されたスキャンチェーン上にあると仮定する。このとき、記憶素子群１４３１、１４３２、１４３３、１４４３における次元数、即ち、連立一次方程式を立てたときの変数の数は４であるが、記憶素子群１４４１、１４４２における次元数は８（記憶素子群１４４１における変数は、s11、s12、s13、s14、s21、s22、s23、s24。記憶素子群１４４２における変数は、s21、s22、s23、s24、s31、s32、s33、s34。）である。次元数が大きいほどseed変換成功の可能性が高いといえるため、図３２(b)のシフト動作によるパターン発生はseed変換に有利だといえる。このように、パターン発生時に擬似乱数発生とシフト動作を切換えることができる同一パターン列発生部４６０は、複数のパターン生成期をもつ場合に、seed変換成功の可能性を高くするという効果がある。
【００８５】
以下では、本発明による半導体集積回路のテスト方法に必要な情報の抽出方法、特に、同一パターン列発生部１１０における発生するパターン列の決定方法の一実施例を述べる。
説明の前提となるハード構成として、同一パターン列発生部１１０は同一パターン発生部４００、４２０、４４０、４６０のようなLFSRをベースにした構成、テスト対象回路はテスト対象回路２００のようなフルスキャン設計された場合について述べる。
【００８６】
テスト手順は、１００％に近い故障検出率を効率的に得るために、まず、BIST方式で図２２に示した乱数パターン発生モード１０１４で所定のパターン数分テストした後、図２１に示した近傍パターン発生モード１００４を実行し、最後にBIST方式による故障検出率を補うストアドテスト方式によるテストがあるという前提で述べる。従って、求めるべき情報は、同一パターン列発生部で用いるseed集合と、故障検出率を補う追加テストパターン集合である。なお、seed集合の各要素は、パターン発生器の初期値であり、その各初期値には、LFSRのseedの他に、空回し数、空送り数、空送り追加数、LFSR多項式切換え、パターン列番号用カウンタの初期値を含む。
【００８７】
まず、seed集合及び追加テストパターン集合を求める手順の概略を図３３に示す。ステップ１５０１では、BIST方式の乱数パターンモードにおける期待値計算と故障シミュレーションを実行し、故障検出情報１５１２を出力する。ステップ１５０２では、故障検出情報１５１２からわかる未検出故障に対し、テストパターンの生成あるいは冗長判定を行い、テストパターン集合１５１３を出力するとともに、故障検出情報１５１２に冗長判定結果を反映する。ステップ１５０３では、テストパターン集合１５１３を利用して近傍パターンの中心パターンである親パターンを生成し、親パターン集合１５１４を出力する。ステップ１５０４では、親パターン集合１５１４をBIST近傍パターン発生モードを実行できる情報であるseed集合１５１５に変換し、そのときの期待値計算と故障シミュレーションを実行して、故障検出情報１５１２を更新する。ステップ１５０５では、テストパターン集合１５１３と故障検出情報１５１２から故障検出率を補うのに必要なテストパターンを抽出して、追加テストパターン集合１５１６を出力し、故障検出情報１５１２を更新する。
【００８８】
ステップ１５０２のテストパターン生成では、後で述べる親パターン生成１５０３でのパターンクラスタが効果的になるために、各パターンは設定不要な記憶素子はできるだけ不定値となるように生成する。例えば、１つの故障に対するテストパターンを既存のテストパターン生成アルゴリズムを利用して生成し、設定不要な記憶素子は不定値のままとして故障シミュレーションを行い、同時に検出される故障を見つける、といった処理を繰り返せばよい。ただし、生成したパターン同士の不定値部分を利用してマージするといった、いわゆるテストパターン圧縮は行わない方が望ましい。
【００８９】
図３４は前記親パターン生成処理１５０３の手順を示す。ステップ１７０１では、テストパターン集合を、各テストパターンの論理値０又は１を設定された記憶素子の集合が一致するグループに分割する。ステップ１７０２では、ステップ１７０１で求めたパターンのグループをさらに分割し、分割された各グループ内のテストパターンが、使用する反転制御回路１２１の機能に応じて定まるハミング距離以下とする。例えば、反転制御回路６００、６２０の場合はハミング距離が１以下で、反転制御回路６４０、６６０の場合はハミング距離が２以下とすればよい。このようにして生成されたテストパターンのグループの１つ１つをパターンクラスタと呼ぶ。ステップ１７０３では、各パターンクラスタに対し、各ビットごとに多数決をとることで求まるパターンを親パターンとする。
【００９０】
図３５は、前記seed集合生成処理１５０４の手順を示す。ステップ１８１１で、親パターン集合１５１４から未試行の親パターンを選択し、ステップ１８１２で、空回し数、空送り数、空送り追加数、LFSR多項式の与えられたパターン生成条件の中から、未試行の条件を選択する。選択した親パターン、パターン生成条件に対し、以下の処理を行う。ステップ１８１３では、スキャンチェーンの接続と空回し数、空送り数、空送り追加数に依存する記憶素子間の相関についてチェックする。もし、実現できないパターンと判明すれば、ステップ１８１４で未試行のパターン生成条件があればステップ１８１２に戻り、未試行のパターン生成条件がなければステップ１８２０に進む。もし、ステップ１８１３での相関チェックが問題無ければ、ステップ１８１５へ進み、選択したLFSR多項式から発生する乱数列より親パターンを実現できるように、LFSRのseedを連立一次方程式の解法を利用して求める。もし条件を満たすseedが存在しない場合は、ステップ１８１６からステップ１６１４へ進む。条件を満たすseedが存在する場合はステップ１８１７へ進み、親パターン及び使用する反転制御回路１２１の機能に応じて発生される子パターン群に対し、故障シミュレーションを行う。このとき、ステップ１８１８で新規に検出される故障がなければステップ１８２０へ進む。新規に検出される故障があれば、有効な子パターンの番号の集合を記憶しておく。そして、ステップ１８１９では、LFSRのseedと、選択したLFSR多項式から求まるLFSRフィードバック位置を指定する記憶素子の値と、有効な子パターンの最初の番号から求まるパターン列番号用カウンタの値から決まるパターン発生器の初期値を採用するとともに、空回し数、空送り数、空送り追加数と、有効な子パターンの最初の番号と最後の番号からそれらの差に１加えた値として求まる子パターン数を記憶する。ステップ１８２０では、未試行の親パターンがあればステップ１８１１に戻り、全ての親パターンに対し試行したならば、処理を終了する。
【００９１】
図３６は、前記追加テストパターン生成処理１５０５の手順を示す。ステップ１９３１では、テストパターン集合１５１３から未試行のテストパターンを選択し、そのパターンに対しステップ１９３２で故障シミュレーションを行う。ステップ１９３３で、新規に故障を検出した場合、ステップ１９３４へ進み、そうでなければステップ１９３７へ進む。ステップ１９３４では、試行中のテストパターンが既に保存してあるパターンにマージ可能な場合は、ステップ１９３６でマージし、そうでなければ、ステップ１９３５で新規にそのパターンを保存する。ステップ１９３７では未試行のテストパターンがあれば、ステップ１９３１へ進み、テストパターン集合１５１３のテストパターン全てについて試行したならば、処理を終了する。
【００９２】
ここで、図２８で示した半導体集積回路１２００に対し、ステップ１５０２、１５０３、１５０４を実行した例を説明する。まず、テストパターン生成処理１５０２の結果であるテストパターン集合１５１３は、図２８(b)のテストパターン１２４２である。次に、親パターン生成１５０３における処理を説明する。ステップ１７０１により、テストパターンの番号１〜１１を、信号線x1、x2、…、x8を設定する必要のあるパターン番号１〜９のグループと、信号線y0を設定する必要のあるパターン番号１０〜１１のグループに分類する。ステップ１７０２で、所定のハミング距離を１とするとき、パターン番号１〜９のグループはパターン番号１の近傍であり、パターン番号１０〜１１のグループはパターン番号１０の近傍であることから、それぞれのグループがパターンクラスタとなりうる。ステップ１７０３により、パターン番号１〜９のグループでビット毎多数決をとると親パターンはパターン番号１に一致し、同様に、パターン番号１０〜１１のグループでは親パターンはパターン番号１０に一致する。
【００９３】
次に、seed生成処理１５０４に進む。ステップ１７１１で親パターンであるパターン番号１を選択し、ステップ１７１２で空回し数＝０、空送り数＝０、LFSR多項式をx^4+1=0（シフトレジスタとして動作）を選択する。ステップ１６１３で記憶素子間の相関チェックをするが、テスト対象回路１２２０では相関がなくOKである。ステップ１６１５では、seedを（s1、s2、s3、s4）とするとき、記憶素子１２２８〜１２２１に対する条件として、順に、s1=1、s2=1、s3=1、s4=1、r1=1、r2=1、r3=1、r4=1、r5=1となり、この連立一次方程式を解く。ただし、r1、r2、…、r5は、LFSRの初期値設定後に生成する乱数列で、r1=s1、r2=s2、r3=s3、r4=s4、r5=s1である。この連立一次方程式の解は存在し、s1=1、s2=1、s3=1、s4=1である。即ち、seed変換が成功したので、ステップ１６１７でこのseedから生成される親パターンと子パターン８個に対する故障シミュレーションを実行すると、図２９で示したテストパターンが出現するので、全縮退故障を検出する。従って、ステップ１６１９でこのseedを採用し、seedである（1、1、1、1）と、パターン生成条件である、空回し数＝０、空送り数＝０、LFSR多項式をx^4+1=0という情報を記憶する。そして、ステップ１６１１に戻り、親パターンであるパターン番号１０に対する処理がステップ１６１２、１６１３、１６１５、１６１６、１６１７と進み、(X、1、X、X)というseedを求められるが、ステップ１６１８にて新規故障検出がないため、このseedは採用しない。
【００９４】
図３７は、本発明のテストパターン発生回路における反転制御回路の別の回路を示す。図１１の回路では、図２５に示すように偶数列又は奇数列での反転制御を可能にする。これに対して、図３７の回路では、任意の列に対して、反転制御を可能にする。パターン列内時刻用カウンタ６８１、パターン列番号用カウンタ６８２、比較器６８４、ＡＮＤ素子６８５は、図１０に示すパターン列内時刻用カウンタ６０１、パターン列番号用カウンタ６０２、比較器６０４、ＡＮＤ素子６０５とそれぞれ同じ機能を持つ構成要素であり、ここでは説明を省略する。本構成回路の特徴は、列ごとに反転を制御するために反転情報レジスタ６９４を設けた点にある。反転情報レジスタ６９４はｎ個のレジスタを含み、各レジスタの出力とＡＮＤ素子６８５の出力との論理積が各出力ＲＶＳ１，ＲＶＳ２，…ＲＶＳｎに出力される。
【００９５】
反転情報レジスタ６９４には、入力ＣＴＩＮから列反転パターンが入力される。図３８は、（レジスタ１、レジスタ２、レジスタ３…レジスタｎ）（尚、レジスタｉは出力ＲＶＳｉに対応するレジスタである。）に列反転パターンとして（１，１，０，…１）が入力された場合の子パターンの出力を示したものである。この場合、反転行（例えば子パターン０における第３行）において、第１，２、ｎ列は親パターンの反転パターンであり、第３列は非反転パターンとなる。もちろん、本回路構成に対して、図１２の回路構成を適用することにより反転する行の周期を可変としてもよく、図１３の回路構成を適用することにより反転する行を複数行にしてもよい。これらの場合においても反転行において、所定の列が非反転パターンとなる。
【００９６】
また、反転情報レジスタに格納する値は、レジスタに格納された値としたが、子パターンごとに変化させることもできる。この場合、所望の列反転パターンを形成するための回路を別途反転情報レジスタ６９４に付加する必要がある。また、図３７の回路構成では別途反転情報レジスタ６９４、カウンタ６８１，６８２が一本のスキャンチェーンにつながれているが、反転情報レジスタ６９４についてはカウンタとは別に初期値を入力するように構成してもよい。この場合、反転情報レジスタ６９４がカウンタとは独立にその値を制御することができる。
以上のように、上記の処理に従えば、本発明による半導体集積回路のテスト方法に必要な情報、即ち、パターン発生器の初期値を計算する事ができる。
【００９７】
【発明の効果】
本発明による半導体集積回路は、近傍パターンを発生する回路をテスト対象回路と独立に付加することにより、設計期間の増大の問題がなく、テスト対象回路の動作速度オーバーヘッドがなく、ハード的なオーバーヘッドが小さく、そして、少ないテストデータ量で、高い故障検出率を得ることができる。
【図面の簡単な説明】
【図１】本発明によるテスト方法を実施する回路の一実施例の構成を示す図。
【図２】上記テスト対象回路の回路を示す図。
【図３】LFSR（LFSR）の回路図。
【図４】本発明によるパターン発生回路の実施例における同一パターン発生部の第一の回路構成例の回路図。
【図５】本発明によるパターン発生回路の実施例における同一パターン列発生部の第二の回路構成例の回路図。
【図６】本発明によるパターン発生回路の実施例における同一パターン列発生部の第三の回路構成例の回路図。
【図７】本発明によるパターン発生回路の実施例における同一パターン列発生部の第四の回路構成例の回路図。
【図８】本発明によるパターン発生回路の実施例における同一パターン列発生部の第五の回路構成例の回路図。
【図９】同一パターン列発生部の動作を表す図。
【図１０】本発明によるパターン発生回路の実施例における反転制御回路の第一の回路構成例の回路図。
【図１１】本発明によるパターン発生回路の実施例における反転制御回路の第二の回路構成例の回路図。
【図１２】本発明によるパターン発生回路の実施例における反転制御回路の第三の回路構成例の回路図。
【図１３】本発明によるパターン発生回路の実施例における反転制御回路の第四の回路構成例の回路図。
【図１４】上記反転制御回路に使用されるｎビットカウンタの回路図と、その動作を表す図。
【図１５】本発明によるパターン発生回路を持つ半導体集積回路（パターン発生器）の第一の実施例の構成及びその動作を表す図。
【図１６】本発明によるパターン発生回路を持つ半導体集積回路の第二の実施例の構成を図。
【図１７】本発明によるパターン発生回路を持つ半導体集積回路の第三の実施例の構成を示す図。
【図１８】本発明によるパターン発生回路を持つ半導体集積回路の第四の実施例の構成を示す図。
【図１９】図１８のパターン圧縮器の回路図。
【図２０】本発明によるパターン発生回路を持つ半導体集積回路の第五の実施例の構成を示す図。
【図２１】図１８に示した半導体集積回路の基本的な動作のタイムチャート図。
【図２２】図１８に示した半導体集積回路の疑似乱数パターンを発生するタイムチャート図。
【図２３】図１８に示した半導体集積回路に疑似乱数パターンを発生するタイムチャート図。
【図２４】図１０の反転制御回路を用いた場合の子パターンの様子を示す図。
【図２５】図１１の反転制御回路を用いた場合の子パターンの様子を示す図。
【図２６】図１２の反転制御回路を用いた場合の子パターンの様子を示す図。
【図２７】図１３の反転制御回路を用いた場合の子パターンの様子を示す図。
【図２８】本発明によるパターン発生回路を持つ半導体集積回路の第六の実施例の構成及び動作をを示す図。
【図２９】図２８の半導体集積回路のテスト時における詳細な動作を示す図。
【図３０】図２８の半導体集積回路のテスト時における詳細な動作を示す図。
【図３１】本発明による半導体集積回路において、パターン発生条件による動作の違いを説明する模式図。
【図３２】本発明による半導体集積回路において、パターン発生条件による動作の違いを説明する模式図。
【図３３】本発明による半導体集積回路のテストに必要な情報の抽出方法の一実施例の処理フロー図。
【図３４】図３３の親パターン生成処理の詳細な処理フロー図。
【図３５】図３３のseed集合生成処理の詳細な処理フロー図。
【図３６】図３３のテストパターン生成処理の詳細な処理フロー図。
【図３７】本発明によるパターン発生回路の実施例における反転制御回路の別の回路図。
【図３８】図３７の反転制御回路を用いた場合の子パターンの様子を示す図。
【符号の説明】
１１０…同一パターン列発生部、
１２０…ビット反転制御部、１２１…反転制御回路
１２２，１２３，１２４…排他論理和回路、
１３０…テスト対象回路、
８００…パターン発生器。
【図１】
0003937034.tif 000002
【図２】
0003937034.tif 000003
【図３】
0003937034.tif 000004
【図４】
0003937034.tif 000005
【図５】
0003937034.tif 000006
【図６】
0003937034.tif 000007
【図７】
0003937034.tif 000008
【図８】
0003937034.tif 000009
【図９】
0003937034.tif 000010
【図１０】
0003937034.tif 000011
【図１１】
0003937034.tif 000012
【図１２】
0003937034.tif 000013
【図１３】
0003937034.tif 000014
【図１４】
0003937034.tif 000015
【図１５】
0003937034.tif 000016
【図１６】
0003937034.tif 000017
【図１７】
0003937034.tif 000018
【図１８】
0003937034.tif 000019
【図１９】
0003937034.tif 000020
【図２０】
0003937034.tif 000021
【図２１】
0003937034.tif 000022
【図２２】
0003937034.tif 000023
【図２３】
0003937034.tif 000024
【図２４】
0003937034.tif 000025
【図２５】
0003937034.tif 000026
【図２６】
0003937034.tif 000027
【図２７】
0003937034.tif 000028
【図２８】
0003937034.tif 000029
【図２９】
0003937034.tif 000030
【図３０】
0003937034.tif 000031
【図３１】
0003937034.tif 000032
【図３２】
0003937034.tif 000033
【図３３】
0003937034.tif 000034
【図３４】
0003937034.tif 000035
【図３５】
0003937034.tif 000036
【図３６】
0003937034.tif 000037
【図３７】
0003937034.tif 000038
【図３８】
0003937034.tif 000039