(57)【特許請求の範囲】
【請求項１】
テスト対象とされるテスト対象回路と、
上記テスト対象回路のスキャンを可能とするスキャンチェインと、
乱数を発生させることで、上記スキャンチェインに供給されるテストパタンを形成するための第１乱数発生回路と、
上記第１乱数発生回路とは別個に設けられ、乱数を発生させるための第２乱数発生回路と、
上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生回路で発生される乱数を変化させるための乱数制御回路と、を含み、
上記乱数制御回路は、上記第１乱数発生回路の出力値の論理を反転可能な反転論理部と、
反転制御条件設定信号が入力され、上記第２乱数発生回路によって発生される乱数を用いて上記反転論理部の動作を制御する反転制御信号を上記反転論理部に供給する反転制御回路と、を含み、
上記反転制御回路は、上記反転制御条件設定信号に基づいて、上記反転制御信号における論理値１及び論理値０の出現確率を制御可能であり、
上記反転論理部の出力信号が上記テスト対象回路に供給される半導体装置。
【請求項２】
テスト対象とされるテスト対象回路と、
上記テスト対象回路のスキャンを可能とするスキャンチェインと、
乱数を発生させることで、上記スキャンチェインに供給されるテストパタンを形成するための第１乱数発生回路と、
上記第１乱数発生回路とは別個に設けられ、乱数を発生させるための第２乱数発生回路と、
上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生回路で発生される乱数を変化させるための乱数制御回路と、を含み、
上記乱数制御回路は、反転制御信号に基づいて上記第１乱数発生回路の出力値の論理を反転可能な反転論理部と、反転制御回路と、条件設定回路と、を含み、
上記条件設定回路は、上記反転制御回路での反転制御条件を設定可能であり、
上記反転制御回路は、上記条件設定回路に設定される反転制御条件に従って、上記第２乱数発生回路によって発生される乱数を用いて上記反転制御信号における論理値１及び論理値０の出現確率を制御可能であり、
上記反転論理部の出力信号が上記テスト対象回路に供給される半導体装置。
【請求項３】
上記反転論理部は、上記第１乱数発生回路の出力信号と、上記反転制御回路から出力された反転制御信号との排他的論理和を得る排他的論理和回路を含んで成る請求項１または２記載の半導体装置。
【請求項４】
上記乱数制御回路は、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生回路での乱数発生動作の開始及び停止を制御可能なランストップ制御回路を含む請求項１または２記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、さらにはそれにおける自己診断技術に関する。
【背景技術】
【０００２】
半導体集積回路のテスト方式として、ＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ Ｓｅｌｆ−Ｔｅｓｔ）方式と呼ばれる方式がある。このＢＩＳＴ方式によれば、擬似乱数パタン発生器と符号圧縮器とを含む半導体集積回路において、テスト対象論理に擬似乱数パタンが与えられ、応答パタンの圧縮結果とその期待値とが比較されることで自己診断を可能とする。
【０００３】
ＢＩＳＴではスキャン設計された被検査回路に大量のパタンを与えるための疑似乱数テストパタン発生器、出力応答系列を圧縮し最終符号でのみの比較で良否判定するための符号圧縮器などを含んで構成される。通常、パタン発生器、パタン圧縮器には線形フィードバックシフトレジスタ（Ｌｉｎｅａｒ Ｆｅｅｄｂａｃｋ Ｓｈｉｆｔ Ｒｅｇｉｓｔｅｒ）が用いられる。線形フィードバックシフトレジスタを用いたパタン発生器ではすべて「０」を除くすべてのパタンを疑似ランダム的に発生することが可能である。
【０００４】
このようなパタン発生器を備えたＢＩＳＴについて記載された文献の例として、特許文献１，２を挙げることができる。
【０００５】
特許文献１記載の技術では、検査対象回路と複数のフリップフロップを連結して構成された複数のシフトレジスタを有する被検査回路と、線形フィードバックシフトレジスタで構成される乱数パタン発生器と符号圧縮器とが組み込まれて検査対象ＬＳＩが形成される。その場合において、クロック分周回路を組み込み、乱数パタン発生器に印加されるシフトクロックをクロック分周回路にも印加し、クロック分周回路はクロック制御ピンから入力される信号に応じてシフトクロックを１／２、１／４、１／８等の周期に変化させて、符号圧縮器および前記複数のシフトレジスタに印加するようにしている。
【０００６】
特許文献２記載の技術では、論理集積回路内のフリップフロップ群がスキャンチェインで連結され、該論理集積回路内に乱数生成回路と符号圧縮器とが組込まれ、クロック信号がフリップフロップ群、乱数生成回路及び符号圧縮器に供給され、該クロック信号に同期して、順次、乱数生成回路で生成された乱数パタンがフリップフロップ群に書き込まれてシフトスキャンされ、その結果が符号圧縮器で圧縮される。そして、乱数生成回路を構成するラッチ素子の一部又は全体のクロック信号を一時遮断して乱数の生成又は出力を一時停止させ、論理集積回路内のフリップフロップ群をシフトスキャンする乱数の１又は０の連続する長さの平均値を増大させるようにしている。
【０００７】
【特許文献１】特開平１０−１７０６０９号公報
【特許文献２】特開２００１−１７４５１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記従来技術について本願発明者が検討したところ、特許文献１に記載された技術のように、スキャンチェインのクロックをパタン発生器のクロックの周期よりも長くすると、テストに必要なパタン発生器のクロック数が増加し、テスト時間が増加するおそれがあることが見いだされた。また、特許文献２に記載された技術では、スキャンチェイン上のデータ変化率を任意に設定しようとした場合、スキャンシフト中に外部からのクロック制御が必要である。さらに、外部からの制御をしない場合には、スキャンチェイン上のデータ変化率を任意に設定することができない。そして上記従来技術のように、パタン発生器のクロックを一時的に遮断することによって、乱数の生成を一時停止させる場合には、タイミング設計やレイアウト設計が難しくなるおそれがある。
【０００９】
本発明の目的は、線形フィードバックシフトレジスタを用いる場合に、テストに必要なパタン発生器のクロック数の増加によりテスト時間が増加するのを回避するための技術を提供することにある。
【００１０】
本発明の別の目的は、線形フィードバックシフトレジスタを用いる場合に、クロック信号を遮断することなく、パタン発生器の乱数生成を停止させ、スキャンチェイン上のデータ変化率の低減を可能とする技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１３】
すなわち、テスト対象とされるテスト対象回路と、上記テスト対象回路のスキャンを可能とするスキャンチェインと、乱数を発生させることで、上記スキャンチェインに供給されるテストパタンを形成するための第１乱数発生回路と、上記第１乱数発生回路とは別個に設けられ、乱数を発生させるための第２乱数発生回路と、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生回路で発生される乱数を変化させるための乱数制御回路とを含む。スキャンチェインのクロックをパタン発生器のクロックの周期よりも長くする必要がないので、テストに必要なパタン発生器のクロック数の増加を回避することができ、それによってテスト時間の増加を回避することができる。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１５】
すなわち、線形フィードバックシフトレジスタを用いる場合に、テストに必要なパタン発生器のクロック数の増加によりテスト時間が増加するのを回避することができる。また、クロック信号を遮断することなく、パタン発生器の乱数生成を停止させ、スキャンチェイン上のデータ変化率を低減することができる。
【発明を実施するための最良の形態】
【００１６】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕本発明の代表的な実施の形態に係る半導体装置（１）は、テスト対象とされるテスト対象回路（７００）と、上記テスト対象回路のスキャンを可能とするスキャンチェイン（６５０）と、乱数を発生させることで、上記スキャンチェインに供給されるテストパタンを形成するための第１乱数発生回路（１００）と、上記第１乱数発生回路とは別個に設けられ、乱数を発生させるための第２乱数発生回路（２００）と、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生回路で発生される乱数を変化させるための乱数制御回路とを含む。
【００１８】
上記乱数制御回路は、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生回路で発生される乱数を変化させる。スキャンチェインのクロックをパタン発生器のクロックの周期よりも長くする必要がないので、テストに必要なパタン発生器のクロック数の増加が回避され、それによりテスト時間が増加するのが回避される。また、スキャンチェイン上のデータ変化率の低減が達成される。
【００１９】
〔２〕上記乱数制御回路は、上記第１乱数発生器の出力値の論理を反転可能な反転論理部（６００）と、上記第２乱数発生回路によって発生される乱数を用いて上記反転論理部の動作を制御可能な反転制御回路（４００）と、を含んで構成することができる。
【００２０】
〔３〕上記乱数制御回路は、上記第１乱数発生器の出力値の論理を反転可能な反転論理部（６００）と、上記反転制御回路での反転制御条件を設定可能な条件設定回路（５００）と、上記条件設定回路の条件設定に従って、上記第２乱数発生回路によって発生される乱数を用いて上記反転論理部の動作を制御可能な反転制御回路（４００）とを含んで構成することができる。
【００２１】
〔４〕上記反転論理部は、上記第１乱数発生器の出力信号と、上記反転制御回路から出力された反転制御信号との排他的論理和を得る排他的論理和回路（６０１〜６０５）を含んで構成することができる。
【００２２】
〔５〕上記乱数制御回路は、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生器での乱数発生動作の開始及び停止を制御可能なランストップ制御回路（３００）を含んで構成することができる。
【００２３】
〔６〕上記乱数制御回路は、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生器での乱数発生動作の開始及び停止を制御可能なランストップ制御回路（３００）と、
ランストップ制御回路での制御条件を設定可能な条件設定回路（５００）とを含んで構成することができる。
【００２４】
〔７〕上記条件設定回路は、上記ランストップ制御回路から出力される論理値の出現確率を経時的に変化させるためのステートマシーンを含んで構成することができる。
【００２５】
〔８〕テスト対象とされるテスト対象回路（７００）と、上記テスト対象回路のスキャンを可能とするスキャンチェイン（６５０）と、乱数を発生させることで、上記スキャンチェインに供給されるテストパタンを形成するための第１乱数発生回路（１００）と、上記第１乱数発生回路とは別個に設けられ、乱数を発生させるための第２乱数発生回路（２００）と、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生回路で発生される乱数を変化させるための乱数制御回路と、を含んで半導体装置を構成する。このとき、上記乱数制御回路は、上記第１乱数発生器の出力値の論理を反転可能な反転論理部（６００）と、上記第２乱数発生回路によって発生される乱数を用いて上記反転論理部の動作を制御可能な反転制御回路（４００）と、上記第２乱数発生回路によって発生される乱数を用いて、上記第１乱数発生器での乱数発生動作の開始及び停止を制御可能なランストップ制御回路（３００）と、を含んで構成することができる。
【００２６】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２７】
＜実施形態１＞
図１には、本発明にかかる半導体装置の一例とされる自己診断型論理集積回路が示される。
【００２８】
図１において、検査対象とされる自己診断型論理集積回路１は、特に制限されないが、第１乱数発生器（ＲＡＮ−ＮＵＭ（１））１００と、副となる第２乱数発生器（ＲＡＭ−ＮＵＭ（２））２００と、反転制御回路（ＩＣＯＮＴ）４００と、条件設定回路（ＲＥＧ）５００と、反転論理部（ＩＬＯＧ）６００と、テスト対象回路（ＴＳＴＣ）７００と、符号圧縮器（ＣＯＭＰ）８００とを含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成されている。第１乱数発生器１００の各レジスタから出力された乱数値は、反転論理部６００によって、その一部または全てが論理反転され、スキャンチェイン６５０によって、テスト対象回路７００にテストパタンとしてスキャンインされる。テスト終了後に、テスト対象論理のテスト結果をスキャンチェイン６６０によってスキャンアウトし、符号圧縮器８００にて圧縮符号化する。スキャンインを行なう際、副となる第２乱数発生器２００が発生する乱数を反転制御回路４００に入力し、条件設定回路５００から出力される反転制御条件設定信号群５６０によって設定された条件に従い、反転制御回路４００から反転制御信号４５０が出力され、反転論理部６００にて、第１乱数発生器１００から出力された乱数値の反転／非反転を制御する。
【００２９】
図２は、副となる第２乱数発生器２００と、反転制御回路４００の構成例が示される。
【００３０】
副となる第２乱数発生器２００は、線形フィードバックシフトレジスタであり、シフトレジスタとして動作する記憶素子２０１〜２０７と、シフトレジスタの最終段の記憶素子２０７の出力値と、特定の記憶素子の出力値との排他的論理和を得る排他的論理和回路２０８、２０９の出力をシフトレジスタの最初段の記憶素子２０１にフィードバックする回路を含んで成る。
【００３１】
反転制御回路４００は、ＮＡＮＤ（ナンド）素子４０１〜４０３、及びＡＮＤ（アンド）素子４０４を含んで成る。反転制御条件設定信号群５６０は、複数の条件設定信号４１１〜４１３、４３１を含み、これらの反転制御条件設定信号のうち、４１１〜４１３はそれぞれ、ＮＡＮＤ素子４０１〜４０３の一方の入力端子に伝達される。また、反転制御条件設定信号４３１は、ＮＡＮＤ素子を介さずに、ＡＮＤ素子４０４に入力される。記憶素子２０５，２０６，２０７の出力信号は、ＮＡＮＤ素子４０１〜４０３における他方の入力端子に伝達される。ＮＡＮＤ素子４０１〜４０３で入力信号のナンド論理が求められ、後段のＡＮＤ素子４０４において上記ＮＡＮＤ素子４０１〜４０３及び反転制御条件設定信号４３１のアンド論理が求められる。このＡＮＤ素子４０４の出力が反転制御信号４５０として、反転論理回路６００に伝達される。反転制御条件設定信号４３１が論理値「０」の場合、その他の反転制御条件設定信号４１１〜４１３の値に関わらず、反転制御信号４５０は常に論理値「０」となる。反転制御条件設定信号４３１が論理値「１」であり、なおかつ反転制御条件設定信号４１１〜４１３の全てが論理値「０」の場合、反転制御信号４５０は常に論理値「１」となる。また、反転制御条件設定信号４３１が論理値「１」であり、なおかつ反転制御条件設定信号４１１〜４１３のうち、１つだけが論理値「１」で残りが論理値「０」の場合、副となる第２乱数発生器２００の出力する値によって、反転制御信号４５０は、１／２の確率で論理値「０」となり、１／２の確率で論理値「１」となる。同様に、反転制御条件設定信号４３１が論理値「１」であり、なおかつ反転制御条件設定信号４１１〜４１３のうち、２つが論理値「１」で残りが論理値「０」の場合、副となる第２乱数発生器２００の出力する値によって、反転制御信号４５０は、３／４の確率で論理値「０」となり、１／４の確率で論理値「１」となる。以下同様に、反転制御条件設定信号群５６０の値によって、反転制御信号４５０の論理値「０」又は「１」の出現確率を制御する。
【００３２】
また、条件設定回路５００にステートマシンを組み込むことで、パタン発生中に外部からの制御をすること無しに、条件設定回路５００から出力される反転制御条件設定信号群５６０を自動的に変化させることが可能である。つまり、ステートマシンにより、反転制御条件設定信号群５６０を経時的に変化させることによって、反転制御信号４５０の論理値「０」又は「１」の出現確率を経時的に変化させることができる。
【００３３】
図３には、第１乱数発生器１００と、反転論理部６００の構成例が示される。
【００３４】
第１乱数発生器１００は、線形フィードバックシフトレジスタであり、シフトレジスタとして動作する記憶素子１０１〜１０５と、シフトレジスタの最終段の記憶素子１０５の出力値と、特定の記憶素子の出力値との排他的論理和を得る排他的論理和回路１０６、１０７の出力をシフトレジスタの最初段の記憶素子１０１にフィードバックする回路を持つ。
【００３５】
反転論理部６００は、第１乱数発生器１００の出力値と、反転制御信号４５０との排他的論理和を得る排他的論理和回路６０１〜６０５からなる。反転制御信号４５０が論理値「０」の場合、第１乱数発生器１００から出力された値は反転されず、スキャンチェイン６５０によって、そのままテストパタンとしてテスト対象回路７００にスキャンインされる。反転制御信号４５０が論理値「１」の場合、第１乱数発生器１００から出力された値は排他的論理和を得る回路６０１〜６０５によって論理反転され、スキャンチェイン６５０によって、反転された値がテストパタンとしてテスト対象回路７００にスキャンインされる。従って、反転制御信号４５０の論理値「０」又は「１」の出現確率を制御することによって、第１乱数発生器１００の出力値の一部または全てを反転し、テストパタンとしてテスト対象回路７００にスキャンインすることができる。
【００３６】
図４には、テスト対象回路７００の構成例が示される。
【００３７】
図４において、７１１，７１２，７２１，７２２，７４１，７５１，７５２は、記憶素子である。スキャンチェイン６５１上にある記憶素子７１１、７１２のそれぞれの出力が、ＡＮＤ素子７９０の入力端子につながっており、ＡＮＤ素子７９０の出力が、スキャンチェイン６５２上にある記憶素子７２１の入力端子につながっている。テスト実行時には、スキャンチェイン６５１によって記憶素子７１１、７１２に設定されたテストパタンがＡＮＤ素子７９０に入力され、その出力値が記憶素子７２１に格納される。記憶素子７２１に格納された値を、スキャンチェイン６６２を使って符号圧縮器に回収し、符号が正しいか判定することでテストが行われる。
【００３８】
上記構成の動作を説明する。
【００３９】
一例として、図２において、反転制御条件設定信号群５６０のうち、反転制御条件設定信号４１１が論理値「０」であり、残りの反転制御条件設定信号４１２、４１３、４３１を１としてスキャンシフトを行い、反転制御信号４５０がシフトクロックのたびに、「００１００」というように変化される場合を考える。
【００４０】
図５には、第１乱数発生器１００、反転論理部６００、及びテスト対象回路７００の動作が示される。前述のとおり、反転制御信号４５０はシフトクロックのたびに「００１００」と値が変わる。
【００４１】
図５（Ａ）はスキャンイン開始時の状態である。
【００４２】
図５（Ｂ）は一回目のスキャンクロックが印加された状態である。記憶素子１０１に格納されていた値が記憶素子１０２にシフトされ、記憶素子１０１には新たに発生した乱数が格納される。また、反転制御信号４５０が０であったため、記憶素子１０１〜１０５から出力された値が、反転されることなくスキャンチェイン上の記憶素子７１１、７１２、７１３、７１４、７１５にスキャンインされる。
【００４３】
図５（Ｃ）は二回目のスキャンクロックが印加された状態である。図５（Ｂ）の場合と同様に、スキャンインが行なわれる。
【００４４】
図５（Ｄ）は三回目のスキャンクロックが印加された状態である。クロック印加時に、記憶素子１０１に格納されていた値が記憶素子１０２にシフトされ、記憶素子１０１には新たに発生した乱数が格納される。また、反転制御信号４５０が１であったため、記憶素子１０１〜１０５から出力された値が反転されたのち、スキャンチェイン上の記憶素子７１１、７１２、７１３、７１４、７１５にスキャンインされる。
【００４５】
図５（Ｅ）は、上記の作業を繰り返し、テスト対象回路のスキャンチェイン上の全ての記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５にテストパタンを印加した状態を示す。
【００４６】
ここで、本例の比較対象とされる回路の一例として、線形フィードバックシフトレジスタを用いたパタン発生器について説明する。図１３には、線形フィードバックシフトレジスタを用いたパタン発生器が示される。図１３においてパタン発生器９００は、記憶素子９０１〜９０５で構成されており、スキャンチェインによって、テスト対象回路７００の記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５に接続されている。
【００４７】
図１３（Ａ）はスキャンイン開始時のパタン発生器９００と、テスト対象回路７００の状態である。図１３（Ｂ）は一回目のスキャンクロックが印加された状態である。記憶素子９０１に格納されていた値が記憶素子９０２にシフトされ、記憶素子９０１にはフィードバックループによって新たに発生した乱数が格納される。また、パタン発生器９００とスキャンチェイン上の記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５のクロックが同一であるため、図１３（Ａ）で記憶素子９０１〜９０５から出力された値が、スキャンチェイン上の記憶素子７１１、７２１、７３１、７４１、７５１にスキャンインされる。図１３（Ｃ）は二回目のスキャンクロックが印加された状態である。図１３（Ｂ）の場合と同様に、記憶素子９０１に格納されていた値が記憶素子９０２にシフトされ、記憶素子９０１にはフィードバックループによって新たに発生した乱数が格納される。また、スキャンチェイン上の記憶素子７１１に格納されていたスキャンインデータが記憶素子７１２にシフトされ、図１３（Ｂ）で記憶素子９０１〜９０５から出力された値が、スキャンチェイン上の記憶素子７１１、７２１、７３１、７４１、７５１にスキャンインされる。図１３（Ｅ）は上記の作業を繰り返し、テスト対象回路のスキャンチェイン上の全ての記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５にテストパタンを印加した状態を示す。
【００４８】
このように、図１３に示されるパタン生成器を用いた場合、図１３（Ｆ）において矢印１３１で示されるように、スキャンチェイン内の各記憶素子に右肩下がりの相関が発生しており、これらの記憶素子は、テスト中常に同じ値になっていることがわかる。このため、これらの記憶素子が異なる値になった場合にだけ生ずるような故障は、検出できないことになり、それが検出率の低下を招くことになる。
【００４９】
これに対して、図１に示される構成では、反転制御信号４５０により、第１乱数発生回路１００から出力された乱数値の反転／非反転を制御することができるので、テスト対象回路のスキャンチェイン上の全ての記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５にテストパタンを印加した状態は、図５（Ｅ）に示されるようになり、図１３（Ｆ）の矢印１３１で示される右肩下がりの相関を緩和することができる。このため、記憶素子が異なる値になった場合にだけ生ずるような故障を検出することができるので、検出率の低下を回避することができる。
【００５０】
上記例によれば、以下の作用効果を得ることができる。
【００５１】
（１）反転制御信号４５０により、第１乱数発生回路１００から出力された乱数値の反転／非反転を制御することができるので、テスト対象回路のスキャンチェイン上の全ての記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５にテストパタンを印加した状態は、図５（Ｅ）に示されるようになり、図１３（Ｆ）の矢印１３１で示される右肩下がりの相関を緩和することができる。このため、記憶素子が異なる値になった場合にだけ生ずるような故障をも検出することができるので、検出率の低下を回避することができる。
【００５２】
（２）特許文献１に記載された技術のように、スキャンチェインのクロックをパタン発生器のクロックの周期よりも長くする必要がないので、テストに必要なパタン発生器のクロック数の増加が回避され、それによりテスト時間が増加するのが回避される。
【００５３】
＜実施形態２＞
図６には、半導体集積回路１の別の構成例が示される。図６に示される半導体集積回路１が図１に示されるのと大きく相違するのは、反転制御回路４００や反転論理部６００に代えて、ランストップ制御回路（ＲＵＮ／ＳＴＯＰ）３００が設けられている点である。
【００５４】
図７には、第２乱数発生器２００及びランストップ制御回路３００の構成例が示される。
【００５５】
図７に示される第２乱数発生器２００は、基本的には、図２に示されるのと同様に構成されるが、図７に示される第２乱数発生器２００では、記憶素子２０１，２０２，２０３の出力値が、後段のランストップ制御回路３００に伝達されるようになっている。
【００５６】
上記ランストップ制御回路３００は、特に制限されないが、ＮＡＮＤ素子３０１〜３０３、ＡＮＤ素子３０４を含んで成る。ＮＡＮＤ素子３０１〜３０３の一方の入力端子には、条件設定回路５００からのランストップ制御条件設定信号群５５０における各ランストップ制御条件設定信号３１１，３１２，３１３が伝達される。ＮＡＮＤ素子３０１〜３０３の他方の入力端子には、第２乱数発生器２００では、記憶素子２０１，２０２，２０３の出力値が伝達される。ＮＡＮＤ素子３０１〜３０３でそれぞれ入力信号のナンド論理が求められる。ＮＡＮＤ素子３０１〜３０３の出力信号は、後段のＡＮＤ素子３０４に入力され、このＡＮＤ素子３０４において、ＮＡＮＤ素子３０１〜３０３の出力信号のアンド論理が求められるようになっている。ＡＮＤ素子３０４の出力信号は、ランストップ制御信号３５０として後段の第１乱数発生器１００に供給される。
【００５７】
ランストップ制御条件設定信号３１１〜３１３の全てが論理値「０」の場合、ランストップ制御信号３５０は常に論理値「１」となる。また、ランストップ制御条件設定信号３１１〜３１３のうち、１つだけが論理値「１」で、残りが論理値「０」の場合、副となる乱数発生器２００の出力する値によって、ランストップ制御信号３５０は、１／２の確率で論理値「０」となり、１／２の確率で論理値「１」となる。同様に、ランストップ制御条件設定信号３１１〜３１３のうち、２つが論理値「１」で残りが論理値「０」の場合、副となる乱数発生器２００の出力する値によって、ランストップ制御信号３５０は、３／４の確率で論理値「０」となり、１／４の確率で論理値「１」となる。以下同様に、ランストップ制御条件設定信号群５５０の値によって、ランストップ制御信号３５０の論理値「０」又は「１」の出現確率を制御することができる。換言すれば、条件設定回路５００による条件設定に応じてランストップ制御信号３５０の論理値「０」又は「１」の出現確率が制御される。
【００５８】
また、条件設定回路５００にステートマシンを組み込むことで、パタン発生中に外部からの制御をすること無しに、条件設定回路５００から出力されるランストップ制御条件設定信号群５５０を自動的に変化させることが可能である。つまり、ステートマシンにより、ランストップ制御条件設定信号群５５０を経時的に変化させることによって、ランストップ制御信号３５０の論理値「０」又は「１」の出現確率を経時的に変化させることができる。
【００５９】
図８には、第１乱数発生回路１００の構成例が示される。図８に示される構成が図３に示されるのと大きく相違するのは、記憶素子１０１〜１０５に対応してセレクタ１１１〜１１５が配置されている点である。セレクタ１１１〜１１５は、それぞれ対応する記憶素子１０１〜１０５に入力される信号をランストップ制御信号３５０に従って選択する機能を有する。ランストップ制御信号３５０が論理値「１」の場合、セレクタ１１１によって排他的論理和回路１０６の出力信号が選択的に記憶素子１０１に供給され、セレクタ１１２によって記憶素子１０１の出力信号が選択的に後段の記憶素子１０２に供給され、セレクタ１１３によって記憶素子１０２の出力信号が選択的に後段の記憶素子１０３に供給される。同様に、セレクタ１１４によって前段の記憶素子の出力信号が選択的に後段の記憶素子１０４に供給され、セレクタ１１５によって記憶素子１０４の出力信号が選択的に後段の記憶素子１０５に供給される。これにより、第１乱数発生回路１００によって乱数が生成され、それがテスト対象回路７００に供給される。これに対して、ランストップ制御信号３５０が論理値「０」の場合、セレクタ１１１によって記憶素子１０１の出力信号が選択的に記憶素子１０１に供給され、セレクタ１１２によって記憶素子１０２の出力信号が選択的に記憶素子１０２に供給され、セレクタ１１３によって記憶素子１０３の出力信号が選択的に記憶素子１０３に供給される。同様にセレクタ１１４によって記憶素子１０４の出力信号が選択的に記憶素子１０４に供給され、セレクタ１１５によって記憶素子１０５の出力信号が選択的に記憶素子１０２に供給される。この状態で、第１乱数発生回路１００は乱数を生成することができない。記憶素子１０１〜１０５の出力値が固定される。
【００６０】
ここで図７において、ランストップ制御条件設定信号群５５０のうち、ランストップ制御条件設定信号３１１だけが論理値「１」であり、残りのランストップ制御条件設定信号３１２、３１３が論理値「０」としてスキャンシフトが行われ、ランストップ制御信号３５０がシフトクロックされるたびに、「１０１０１」という値をとる場合を考える。
【００６１】
図９には、第１乱数発生器１００と、反転論理部６００とテスト対象回路７００の概念図が示される。前述のとおり、ランストップ制御信号３５０はシフトクロックのたびに「１０１０１」と値が変わる。
【００６２】
図９（Ａ）はスキャンイン開始時の状態である。
【００６３】
図９（Ｂ）は一回目のスキャンクロックが印加された状態である。クロック印加時に、ランストップ制御信号３５０が１であったため、記憶素子１０１に格納されていた値が記憶素子１０２にシフトされ、記憶素子１０１には新たに発生した乱数が格納される。また、記憶素子１０１〜１０５から出力された値がスキャンチェイン上の記憶素子７１１、７１２、７１３、７１４、７１５にスキャンインされる。
【００６４】
図９（Ｃ）は二回目のスキャンクロックが印加された状態である。クロック印加時に、ランストップ制御信号３５０が０であったため、記憶素子１０１〜１０５は、クロック印加前の値を保持している。また、スキャンチェイン上の記憶素子７１１に格納されていたスキャンインデータが記憶素子７１２にシフトされる。また、記憶素子１０１〜１０５から出力された値がスキャンチェイン上の記憶素子７１１、７１２、７１３、７１４、７１５にスキャンインされる。
【００６５】
図９（Ｄ）は三回目のスキャンクロックが印加された状態である。クロック印加時にランストップ制御信号３５０が論理値「１」であったため、記憶素子１０２に格納されていた値が記憶素子１０３にシフトされ、記憶素子１０１に格納されていた値が記憶素子１０２にシフトされ、記憶素子１０１には新たに発生した乱数が格納される。また、記憶素子１０１〜１０５から出力された値がスキャンチェイン上の記憶素子７１１，７１２，７１３，７１４，７１５にスキャンインされる。
【００６６】
図９（Ｅ）は、上記の作業を繰り返し、テスト対象回路のスキャンチェイン上の全ての記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５にテストパタンを印加した状態を示す。
【００６７】
このように、ランストップ制御信号３５０を変化させることで、スキャンチェイン上のデータ変化率を低減させることができる。また、データ変化率の低減率はスキャンシフト中にランストップ制御信号３５０が０をとる確率によって決まる。本例では、図５で説明したとおり、条件設定回路５００から出力されるランストップ制御条件設定信号群５５０によって、ランストップ制御信号３５０が０をとる確率を制御することができ、従って、スキャンチェイン上のデータ変化率を制御することができる。
【００６８】
上記例によれば、以下の作用効果を得ることができる。
【００６９】
（１）ランストップ制御信号３５０を変化させることで、スキャンチェイン上のデータ変化率を低減させることができる。また、条件設定回路５００から出力されるランストップ制御条件設定信号群５５０によって、ランストップ制御信号３５０が０をとる確率を制御することができ、それによってスキャンチェイン上のデータ変化率を制御することができる。
【００７０】
（２）上記（１）の作用効果を得るのに、線形フィードバックシフトレジスタを用いたパタン発生器を含むＢＩＳＴにおいて、クロック信号を遮断することなく、パタン発生器の乱数生成を停止させる。クロック信号の遮断によって、パタン発生器の乱数の生成を一時停止させる場合には、タイミング設計やレイアウト設計が難しくなる。しかし、上記（１）に記載されているように、セレクタ１１１〜１１５は記憶素子の出力を選択し、第１乱数発生器１００は値を保持し、同じ値が連続して反転論理部６００に出力される。本例ではクロック信号の遮断ではなく、セレクタ１１１〜１１５を用いて乱数生成の一時停止を行なっているので、タイミング設計や、レイアウト設計が比較的容易である。
【００７１】
＜実施形態３＞
図１０には、半導体集積回路１の別の構成例が示される。
【００７２】
図１０に示される半導体集積回路１においては、図１に示されるのと同様に反転論理部６００と、それを制御するための反転制御回路４００が設けられ、また、図６に示されるのと同様に第１乱数発生器１００を制御するためのランストップ制御回路３００が設けられている。
【００７３】
図１１には、第１乱数発生器１００と、反転論理部６００とテスト対象回路７００の動作が示される。ここでは、ランストップ制御信号３５０がシフトクロックのたびに、「１０１０１」というように変化され、さらに、反転制御信号４５０がシフトクロックのたびに、「００１００」と値が変わる場合が示される。
【００７４】
図１１（Ａ）はスキャンイン開始時の状態である。
【００７５】
図１１（Ｂ）は一回目のスキャンクロックが印加された状態である。クロック印加時に、ランストップ制御信号３５０が１であったため、記憶素子１０１に格納されていた値が記憶素子１０２にシフトされ、記憶素子１０１には新たに発生した乱数が格納される。また、反転制御信号４５０が０であったため、記憶素子１０１〜１０５から出力された値が、反転されることなくスキャンチェイン上の記憶素子７１１、７１２、７１３、７１４、７１５にスキャンインされる。
【００７６】
図１１（Ｃ）は二回目のスキャンクロックが印加された状態である。クロック印加時に、ランストップ制御信号３５０が０であったため、記憶素子１０１〜１０５は、クロック印加前の値を保持している。また、スキャンチェイン上の記憶素子７１１に格納されていたスキャンインデータが記憶素子７１２にシフトされる。また、反転制御信号４５０が０であったため、記憶素子１０１〜１０５から出力された値が、反転されることなくスキャンチェイン上の記憶素子７１１、７１２、７１３、７１４、７１５にスキャンインされる。
【００７７】
図１１（Ｄ）は三回目のスキャンクロックが印加された状態である。クロック印加時に、ランストップ制御信号３５０が１であったため、記憶素子１０１に格納されていた値が記憶素子１０２にシフトされ、記憶素子１０１には新たに発生した乱数が格納される。また、スキャンチェイン上の記憶素子７１１に格納されていたスキャンインデータが記憶素子７１２にシフトされる。また、反転制御信号４５０が論理値「１」であったため、記憶素子１０１〜１０５から出力された値が反転されたのち、スキャンチェイン上の記憶素子７１１、７１２、７１３、７１４、７１５にスキャンインされる。
【００７８】
図１１（Ｅ）は、上記の作業を繰り返し、テスト対象回路のスキャンチェイン上の全ての記憶素子７１１〜７１５、７２１〜７２５、７３１〜７３５、７４１〜７４５、７５１〜７５５にテストパタンを印加した状態を示す。
【００７９】
上記のように、ランストップ制御信号３５０と反転制御信号４５０を同時に変化させ、テスト時にスキャンチェイン上のデータ変化率、故障検出率等を考慮して、条件設定を行ない、テストパタン発生が可能である。本例によれば、実施形態１における作用効果と、実施形態２における作用効果との双方を得ることができる。
【００８０】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８１】
例えば、図１２に示されるように、テスト対象回路７００のスキャンチェイン本数と、第１乱数発生器１００の出力するネット数が異なる場合には、反転論理部６００とテスト対象回路７００の間に、組み合わせ論理を用いて構成された空間伸張回路（ＥＸＰＣ）１０００を設け、この空間伸張回路１０００を介して第１乱数発生器１００の出力がテスト対象回路７００に伝達される。かかる構成においても、反転論理部６００での論理反転制御や、第１乱数発生器１００でのランストップ制御が行われることにより、スキャンチェイン上のデータ変化率の低減と、スキャンチェイン内の記憶素子間の相関の緩和を図ることができる。
【００８２】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野である自己診断型論理集積回路に適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体装置に広く適用することができる。
【図面の簡単な説明】
【００８３】
【図１】本発明にかかる半導体装置の一例とされる自己診断型論理集積回路の構成例ブロック図である。
【図２】図１に示される自己診断型論理集積回路における主要部の構成例回路図である。
【図３】図１に示される自己診断型論理集積回路における主要部の構成例回路図である。
【図４】図１に示される自己診断型論理集積回路における主要部の構成例回路図である。
【図５】図１に示される自己診断型論理集積回路における主要部の動作説明図である。
【図６】本発明にかかる半導体装置の一例とされる自己診断型論理集積回路の別の構成例ブロック図である。
【図７】図６に示される自己診断型論理集積回路における主要部の構成例回路図である。
【図８】図６に示される自己診断型論理集積回路における主要部の構成例回路図である。
【図９】図６に示される自己診断型論理集積回路における主要部の動作説明図である。
【図１０】本発明にかかる半導体装置の一例とされる自己診断型論理集積回路の別の構成例ブロック図である。
【図１１】図１０に示される自己診断型論理集積回路における主要部の動作説明図である。
【図１２】本発明にかかる半導体装置の一例とされる自己診断型論理集積回路の別の構成例ブロック図である。
【図１３】本発明にかかる半導体装置の一例とされる自己診断型論理集積回路の比較対象とされる回路における主要部の動作説明図である。
【符号の説明】
【００８４】
１００  第１乱数発生回路
２００  第２乱数発生回路
３００  ランストップ制御回路
４００  反転制御回路
５００  条件設定回路
６００  反転論理部
７００  テスト対象回路
８００  符号圧縮器
【図１】
0005179861.tif 000002
【図２】
0005179861.tif 000003
【図３】
0005179861.tif 000004
【図４】
0005179861.tif 000005
【図５】
0005179861.tif 000006
【図６】
0005179861.tif 000007
【図７】
0005179861.tif 000008
【図８】
0005179861.tif 000009
【図９】
0005179861.tif 000010
【図１０】
0005179861.tif 000011
【図１１】
0005179861.tif 000012
【図１２】
0005179861.tif 000013
【図１３】
0005179861.tif 000014