(57)【要約】【課題】テストパタンを記憶するテスターメモリ容量を最小限とし、かつＡＴＰＧによって生成された全てのテストパタンを再現可能なスキャンテストパタン入力方法を提供する。【解決手段】半導体集積回路内部の記憶素子であるフリップフロップはチェーン状に接続されてスキャンチェーン１０１を構成している。スキャンクロック選択デコーダ１０３は、所定周期の擬似ランダム信号を発生するランダムパタン発生器１０２から出力されるスキャンクロック単位の信号とＡＴＰＧテストパタンの前記スキャンチェーン１０１に入力されるスキャンクロック単位のパタンとが一致するときに、前記ランダムパタン発生器１０２から出力されるスキャンクロック単位の信号を入力するためのクロックをスキャンチェーン１０１に供給する。【選択図】        図１
2004309174.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路内部の記憶素子であるフリップフロップをチェーン状に接続したスキャンチェーンに対してスキャンテストパタンを入力する方法において、
スキャンクロック単位で発生するテストパタン信号が、ＡＴＰＧ（テスト生成プログラム）により生成されたＡＴＰＧパタンの前記スキャンチェーンに入力されるスキャンクロック単位のパタンと一致またはドントケアの関係にあるときの該スキャンクロック単位のテストパタン信号を、前記スキャンチェーンに順次シフト入力することによって前記ＡＴＰＧパタンを当該半導体集積回路に設定することを特徴とするスキャンテストパタン入力方法。
【請求項２】
前記スキャンチェーンは、ｍ本（ｍ≧２）のスキャンチェーンからなり、１クロック毎に少なくともｍビットの前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記ｍ本のスキャンチェーンとが対応しており、前記ｍ本のスキャンチェーンに対して１クロック毎に前記ｍビットのテストパタン信号内の各１ビットが、前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項１に記載のスキャンテストパタン入力方法。
【請求項３】
前記スキャンチェーンは、ｍ本（ｍ≧２）のスキャンチェーンからなるｎ（ｎ≧２）個のスキャンチェーン束に分割され、１クロック毎に少なくともｍビットの前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記各スキャンチェーン束内の前記ｍ本のスキャンチェーンとが対応しており、前記各スキャンチェーン束内の前記ｍ本のスキャンチェーンに対して１クロック毎に前記ｍビットのテストパタン信号内の各１ビットが、前記各スキャンチェーン束内の前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項１に記載のスキャンテストパタン入力方法。
【請求項４】
前記スキャンチェーンは、異なる本数のスキャンチェーンからなるスキャンチェーン束を含むｎ（ｎ≧２）個のスキャンチェーン束に分割され、各スキャンチェーン束に対して、１クロック毎に各スキャンチェーン束内のスキャンチェーン数に等しいビットからなる前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記各スキャンチェーン束内の前記スキャンチェーンとが対応しており、前記各スキャンチェーン束内の前記スキャンチェーンに対して１クロック毎に前記テストパタン信号内の各１ビットが、前記各スキャンチェーン束内の前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項１に記載のスキャンテストパタン入力方法。
【請求項５】
前記テストパタン信号は、所定周期の擬似ランダム信号を発生するランダムパタン発生器から出力されることを特徴とする請求項１〜４のいずれかに記載のスキャンテストパタン入力方法。
【請求項６】
半導体集積回路内部のスキャンチェーンにスキャンクロック単位のテストパタン信号を出力するテストパタン発生手段と、該テストパタン発生手段から出力される前記スキャンクロック単位のテストパタン信号が、ＡＴＰＧ（テスト生成プログラム）により生成されたＡＴＰＧパタンの前記スキャンチェーンに入力されるスキャンクロック単位のパタンと一致またはドントケアの関係にあるとき、前記スキャンチェーンに前記テストパタン発生手段から出力されるスキャンクロック単位のテストパタン信号を入力するテストパタン入力制御手段とを有していることを特徴とするスキャンテストパタン入力装置。
【請求項７】
前記テストパタン入力制御手段は、前記テストパタン信号発生開始時点からのクロックのうち、スキャンチェーン上に設定されるＡＴＰＧパタンと一致またはドントケアの関係にあるスキャンクロック単位の前記テストパタン信号を発生するクロック情報を記憶したテスターメモリと、該テスターメモリから読み出された前記クロック情報に基づいて、前記スキャンクロック単位のテストパタン信号を前記スキャンチェーンにシフト入力するためのクロックを該スキャンチェーンに供給するスキャンクロック選択デコーダとを備えていることを特徴とする請求項６に記載のスキャンテストパタン入力装置。
【請求項８】
前記テスターメモリには、前記テストパタン信号発生開始時点からのクロック番号のうち、スキャンチェーン上に設定されるＡＴＰＧパタンに対応するスキャンクロック単位のテストパタン信号を発生するクロック番号が記憶されていることを特徴とする請求項７に記載のスキャンテストパタン入力装置。
【請求項９】
前記テスターメモリは、スキャンチェーン上に設定されるＡＴＰＧパタンに対応して、前記テストパタン発生手段から発生されるスキャンクロック単位のテストパタン信号のうち、採用するクロックを“１”（または“０”）、採用しないクロックを“０”（または“１”）としてクロック開始から順に記憶するシフトレジスタによって構成されていることを特徴とする請求項７に記載のスキャンテストパタン入力装置。
【請求項１０】
前記スキャンチェーンは、ｍ本（ｍ≧２）のスキャンチェーンからなり、前記テストパタン発生手段からは１クロック毎に少なくともｍビットの前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記ｍ本のスキャンチェーンとが対応しており、前記ｍ本のスキャンチェーンに対して１クロック毎に前記ｍビットのテストパタン信号内の各１ビットが、前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項６〜９のいずれかに記載のスキャンテストパタン入力装置。
【請求項１１】
前記スキャンチェーンは、ｍ本（ｍ≧２）のスキャンチェーンからなるｎ（ｎ≧２）個のスキャンチェーン束に分割されており、前記テストパタン発生器からは１クロック毎に少なくともｍビットの前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記各スキャンチェーン束内の前記ｍ本のスキャンチェーンとが対応しており、前記各スキャンチェーン束内の前記ｍ本のスキャンチェーンに対して１クロック毎に前記ｍビットのテストパタン信号内の各１ビットが、前記各スキャンチェーン束内の前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項６〜９のいずれかに記載のスキャンテストパタン入力装置。
【請求項１２】
前記スキャンチェーンは、異なる本数のスキャンチェーンからなるスキャンチェーン束を含むｎ（ｎ≧２）個のスキャンチェーン束に分割されており、前記テストパタン発生器からは、１クロック毎に各スキャンチェーン束内のスキャンチェーン数に等しいビットからなる前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記各スキャンチェーン束内の前記スキャンチェーンとが対応しており、前記各スキャンチェーン束内の前記スキャンチェーンに対して１クロック毎に前記テストパタン信号内の各１ビットが、前記各スキャンチェーン束内の前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項６〜９のいずれかに記載のスキャンテストパタン入力装置。
【請求項１３】
前記テストパタン発生手段は、所定周期の擬似ランダム信号を発生することにより前記半導体集積回路内部のスキャンチェーンにスキャンクロック単位のランダムパタン信号を出力するランダムパタン発生手段として構成されていることを特徴とする請求項６〜１２のいずれかに記載のスキャンテストパタン入力装置。
【請求項１４】
半導体集積回路内部の記憶素子であるフリップフロップをチェーン状に接続したスキャンチェーンと、所定周期のテストパタン信号を発生するテストパタン発生器と、該テストパタン発生器から出力されるスキャンクロック単位のテストパタン信号とＡＴＰＧ（テスト生成プログラム）により生成されたＡＴＰＧパタンの前記スキャンチェーンに入力されるスキャンクロック単位のパタンとが一致またはドントケアの関係にあることを示す信号を受けたときに、該スキャンクロック単位のテストパタン信号を前記スキャンチェーンにシフト入力するためのクロックを該スキャンチェーンに供給するスキャンクロック選択デコーダとを有していることを特徴とする半導体集積回路。
【請求項１５】
前記スキャンチェーンは、ｍ本（ｍ≧２）のスキャンチェーンからなり、前記テストパタン発生器からは１クロック毎に少なくともｍビットの前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記ｍ本のスキャンチェーンとが対応しており、前記ｍ本のスキャンチェーンに対して１クロック毎に前記ｍビットのテストパタン信号内の各１ビットが、前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項１４に記載の半導体集積回路。
【請求項１６】
前記スキャンチェーンは、ｍ本（ｍ≧２）のスキャンチェーンからなるｎ（ｎ≧２）個のスキャンチェーン束に分割されており、前記テストパタン発生器からは１クロック毎に少なくともｍビットの前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記各スキャンチェーン束内の前記ｍ本のスキャンチェーンとが対応しており、前記各スキャンチェーン束内の前記ｍ本のスキャンチェーンに対して１クロック毎に前記ｍビットのテストパタン信号内の各１ビットが、前記各スキャンチェーン束内の前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項１４に記載の半導体集積回路。
【請求項１７】
前記スキャンチェーンは、異なる本数のスキャンチェーンからなるスキャンチェーン束を含むｎ（ｎ≧２）個のスキャンチェーン束に分割されており、前記テストパタン発生器からは、１クロック毎に各スキャンチェーン束内のスキャンチェーン数に等しいビットからなる前記スキャンクロック単位のテストパタン信号が出力され、該テストパタン信号の各ビットと前記各スキャンチェーン束内の前記スキャンチェーンとが対応しており、前記各スキャンチェーン束内の前記スキャンチェーンに対して１クロック毎に前記テストパタン信号内の各１ビットが、前記各スキャンチェーン束内の前記対応するスキャンチェーンに並列に入力されることを特徴とする請求項１４に記載の半導体集積回路。
【請求項１８】
前記テストパタン発生器は、所定周期の擬似ランダム信号を発生することにより前記半導体集積回路内部のスキャンチェーンにスキャンクロック単位のランダムパタン信号を出力するランダムパタン発生器として構成されていることを特徴とする請求項１４〜１７のいずれかに記載のスキャンテストパタン入力装置。
【請求項１９】
クロックが入力される毎にテストパタン発生手段からスキャンクロック単位のテストパタン信号を出力する処理と、
前記テストパタン信号発生開始からの前記クロックをカウントするクロック番号カウント処理と、
前記テストパタン信号発生開始時点からのクロック番号のうち、スキャンチェーン上に設定されるＡＴＰＧパタンと一致またはドントケアの関係にあるスキャンクロック単位のテストパタン信号が発生されるクロック番号を記憶しているテスターメモリから、その一番目に記憶されているクロック番号を読み出す処理と、
前記カウントされたクロック番号が前記テスターメモリから読み出されたクロック番号と一致するときに発生する前記スキャンクロック単位のテストパタン信号を前記スキャンチェーンに入力するとともに、前記テスターメモリから次のクロック番号を読み出すスキャンクロック単位パタン入力処理と、
前記スキャンクロック単位パタン入力処理を、前記テスターメモリに記憶されているクロック番号を全て読み出すまで繰り返す処理とを、コンピュータに実行させるためのプログラム。
【請求項２０】
前記テストパタン信号は、所定周期の擬似ランダムパタン信号発生手段から出力されることを特徴とする請求項１９に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャン設計された半導体集積回路におけるスキャンテスト方法、及びそれを実現するための構成に関する。
【０００２】
【従来の技術】
半導体集積回路のテストを容易にする技術として、従来、半導体集積回路内の記憶素子等のフリップフロップをチェーン状に接続し、シフトレジスタを用いてこのチェーン状に接続されたフリップフロップ（以下、スキャンチェーンと呼ぶ）に次々と値を設定，読み出しを可能にする回路を付加するシフトスキャン方式が採用されている（例えば、特許文献１〜４参照）。
【０００３】
スキャンテストをする場合、まず、スキャンチェーンをシフト動作に切り替え、スキャンチェーンに周期的なクロックを入力しながら、外部からテストパタンである信号値をこのクロックに同期して周期的に印加し、チェーン接続されたフリップフロップ内を順次シフトさせることにより、テストパタンをスキャンチェーンに設定する。その後、スキャンチェーンを通常動作に切り替え、組み合わせ回路を実動作させる。そして再度スキャンチェーンをシフトさせて応答パタンを順次スキャンデータ出力端子から出力させる。以上の処理を、スキャンチェーンに設定されたテストパタン毎に繰り返す。
【０００４】
テストに必要なテストパタンデータは回路外部のテスター内のメモリに記憶されており、テストに先立ってメモリから読み出されてスキャンチェーンに設定される。また、通常、スキャンチェーンは複数に分割されており、スキャンクロックですべてのスキャンチェーンが同時にシフト動作するように構成されている。そして、スキャンクロックが印加されるたびに、テスターに記憶されているテストパタンデータが各スキャンチェーンに並列に順次取り込まれる。
【０００５】
テスト時にフリップフロップに設定するテストパタンは、通常ＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ；テスト生成プログラム）によりあらゆる可能性を考慮して多種類のテストパタンが生成され、生成されたテストパタンを、テストパタン毎に順次チェーン状に接続されたフリップフロップに設定することにより所望のテストが実行される。ＡＴＰＧソフトウェアツールは、各種の製造不良（故障）モデルに対して、殆ど完全な故障検出率を保証する各種テストパタンを生成することができる点で非常に有効な手段である。
【０００６】
図６は、従来のスキャンテストの構成例を示すブロック図であり、半導体集積回路（ＬＳＩチップ）７０内部の記憶素子であるフリップフロップ等をチェーン状に接続したスキャンチェーンが構成されており、外部から与えられるパタン入力を順次シフトして値を設定・出力することができるようになっている。スキャンチェーンは複数（図では３２本）に分割され、スキャンチェーン束７１として構成されている。一方、テスター７２は、テスターメモリ７３およびスキャンクロック発生部を有しており、テスターメモリ７３には、ＡＴＰＧにより生成されたテストパタンが格納されている。
【０００７】
スキャンテストを行う際には、まず、３２本のスキャンチェーンからなるスキャンチェーン束７１に対して、テスターメモリ７３に格納されているテストパタンデータをスキャンクロックに同期して３２ビット並列に入力することにより、スキャンチェーン束７１にテストパタンを設定する。そして、設定されたテストパタン毎に所定のスキャンテストを実行する。
【０００８】
【特許文献１】
特開平１０−１９７６０３号公報
【特許文献２】
特開２０００−２５８５００号公報
【特許文献３】
特開２００２−１７４５１８号公報
【特許文献４】
米国特許第６，３２７，６８７号明細書
【０００９】
【発明が解決しようとする課題】
図６の構成では、スキャンテストを行う場合、テスターメモリ７３に格納されたテストパタンが、外部からのスキャンクロックにあわせて、３２本のスキャンチェーンからなるスキャンチェーン束７１の入力側から順次シフト入力されるが、スキャン化されたすべてのフリップフロップの値を設定するためには、外部に用意されるテスターメモリ７３として、フリップフロップの数だけのメモリ容量を必要とするとともに、それらのメモリに予めテストパタンを記憶する作業が必要となるため、テスト（テスター）に多大なコストがかかる。
【００１０】
例えば、このＡＴＰＧツールによる故障検出目標が回路内の特定部分において起こりうる故障である場合、非常に少ないスキャンセル（フリップフロップ）のみが、この特定の故障を検出するために指定されるにすぎず、スキャンチェーン内の残りの多くのスキャンセル（フリップフロップ）は、ドントケア値（“０”でも“１”でもよいランダムな値）で満たされて一つのテスターメモリにストアされる。そのためテストパタン内に本来指定しなくてもよい値が多く含まれているにもかかわらず、それらも全てドントケア値としてテスターメモリに記憶しておかなければならないので、テストパタンをストアするために大容量のテスターメモリ７３が必要となる。
【００１１】
また、上記特許文献２あるいは特許文献３には、予め発生させるパタンを設定したパタン発生器を用いる代わりに、ランダムなパタンを発生することができる擬似ランダム発生器を用い、スキャンチェーンにランダムなパタンを設定してテストする方法の可能性も記載されているが、この方法では、テストパタンとして最適なパタンが設定されるとは限らないので、必ずしも効率的なテスト方法とはいえない。
【００１２】
また、上記特許文献４には、ＡＴＰＧによって生成されたテストパタンを圧縮してテスターメモリに記憶し、テスト時に該圧縮されたデータを解凍してスキャンチェーンにテストパタンとして設定することにより、テスターのメモリ領域を減らす技術が記載されているが、解凍するためのハードウェアが必要となり、また、圧縮されたＡＴＰＧパタンの全てを解凍ハードウェアによって再現できるとは限らないという問題がある。
【００１３】
本発明の目的は、上記問題点に鑑み、テストパタンを記憶するテスターメモリ容量を最小限とし、かつＡＴＰＧによって生成された全てのテストパタンを再現可能なスキャンテストパタン入力方法を提供することにある。
【００１４】
【課題を解決するための手段】
本発明は、半導体集積回路内部の記憶素子であるフリップフロップをチェーン状に接続したスキャンチェーンに対してスキャンテストパタンを入力する方法において、所定周期の擬似ランダム信号を発生するランダムパタン発生器から出力されるスキャンクロック単位のランダムパタン信号が、ＡＴＰＧ（テスト生成プログラム）により生成されたＡＴＰＧパタンの前記スキャンチェーンに入力されるスキャンクロック単位のパタンと一致またはドントケアの関係にあるときの該スキャンクロック単位のランダムパタン信号を、前記スキャンチェーンに順次シフト入力することによって前記ＡＴＰＧパタンを当該半導体集積回路に設定することを特徴とする。
【００１５】
本発明のスキャンテストパタン入力装置は、所定周期の擬似ランダム信号を発生することにより半導体集積回路内部のスキャンチェーンにスキャンクロック単位のランダムパタン信号を出力するランダムパタン発生手段と、該ランダムパタン発生手段から出力される前記スキャンクロック単位のランダムパタン信号が、ＡＴＰＧ（テスト生成プログラム）により生成されたＡＴＰＧパタンの前記スキャンチェーンに入力されるスキャンクロック単位のパタンと一致またはドントケアの関係にあるとき、前記スキャンチェーンに前記ランダムパタン発生器から出力されるスキャンクロック単位のランダムパタン信号を入力するテストパタン入力制御手段とを有していることを特徴とする。
【００１６】
また、本発明の半導体集積回路は、半導体集積回路内部の記憶素子であるフリップフロップをチェーン状に接続したスキャンチェーンと、所定周期の擬似ランダム信号を発生するランダムパタン発生器と、該ランダムパタン発生器から出力されるスキャンクロック単位のランダムパタン信号とＡＴＰＧ（テスト生成プログラム）により生成されたＡＴＰＧパタンの前記スキャンチェーンに入力されるスキャンクロック単位のパタンとが一致またはドントケアの関係にあるときに、該スキャンクロック単位のランダムパタン信号を前記スキャンチェーンにシフト入力するためのクロックを該スキャンチェーンに供給するスキャンクロック選択デコーダとを有していることを特徴とする。
【００１７】
【発明の実施の形態】
図１は、本発明の第１の実施形態を示すブロック図であり、半導体集積回路内部の記憶素子であるフリップフロップ等をチェーン状に接続したスキャンチェーン１０１と、所定周期の擬似ランダム信号を発生するランダムパタン発生器１０２と、スキャンチェーン１０１に入力されるＡＴＰＧパタン上の信号とランダムパタン発生器１０２から出力される信号とが一致するときの該信号をランダムパタン発生器１０２からスキャンチェーン１０１に入力するためのクロックをスキャンチェーン１０１に供給するスキャンクロック選択デコーダ１０３を備えている。
【００１８】
スキャンチェーン１０１はｍ本（ｍは１または２以上）のスキャンチェーンからなり、ランダムパタン発生器１０２からは１クロック毎にｍビットのランダムパタン信号が出力され、このｍビットのランダムパタン信号の各ビットとｍ本のスキャンチェーンとが対応しており、ｍ本のスキャンチェーンに対して１クロック毎にこのｍビットのランダムパタン信号内の各１ビットが、対応するスキャンチェーンに入力される。
【００１９】
スキャンクロック選択デコーダ１０３には、クロック信号とスキャンクロック選択信号が入力され、スキャンクロック選択信号がスキャンクロックの送出を許可（選択）しているときに入力されたクロック信号がスキャンシフトクロックとしてスキャンチェーン１０１に供給される。スキャンクロック選択信号は、ＡＴＰＧパタンとランダムパタン発生器１０２から発生される擬似ランダム信号に基づいて生成されてテスターメモリ等に記憶され、テストパタン設定時に読み出されてスキャンクロック選択デコーダ１０３に入力される。
【００２０】
ランダムパタン発生器１０２は、例えばシフトレジスタとＥＸ−ＯＲ回路の組み合わせによって構成され、これにクロックパルスを加えることによりその構成によって決まるある周期のランダムパルス列を回路内部で自動生成するもの、あるいは外部から制御できるような回路を用いるか、もしくは直接外部から信号を与えるようにしてもよい。ランダムパタン発生器１０２から出力されるランダム信号のパタンは予め推定できるので、スキャンチェーン１０１に設定するＡＴＰＧパタンが決まれば、スキャンクロックを選択制御するデータをスキャンクロック単位で決定することができる。
【００２１】
例えば、テスターメモリにはＡＴＰＧパタン毎のスキャンクロック選択制御データを記憶しておき、スキャンチェーン１０１に設定するＡＴＰＧパタン毎に、該当するスキャンクロック選択制御データをスキャンクロック選択信号としてランダムパタン発生器１０２のクロック単位のランダム信号発生と同期して読み出すことにより、スキャンチェーン１０１に所望のＡＴＰＧパタンを設定することが可能となる。
【００２２】
図２は、本実施形態のスキャンテストパタン入力動作原理を示す概略図である。なお、図２ではスキャンチェーン１０１が６本のスキャンチェーンからなるチェーン束として構成されている場合を示している。
【００２３】
また、ＡＴＰＧ（テスト生成プログラム）によって生成され、スキャンクロックが入力される毎にスキャンチェーン１０１に入力されるＡＴＰＧパタンは、（０××０××），（１××０×１），…であり（×はドントケア値）、ランダムパタン発生器１０２からクロック（ｔ１，ｔ２，ｔ３，…）毎に出力される６ビットのランダム信号パタンは（０１００１１），（１１００１０），（１０１００１），…である場合を示している。
【００２４】
クロック（ｔ１）におけるランダム信号パタン（０１００１１）は第１番目のスキャンクロックで入力されるＡＴＰＧパタン（０××０××）と一致またはドントケアの関係にあるので、スキャンクロック選択デコーダ１０３にスキャンクロック選択信号が入力される。従って、クロック（ｔ１）ではスキャンクロック選択デコーダ１０３からスキャンチェーン１０１にスキャンクロックが供給され、６本のスキャンチェーンに信号「０，１，０，０，１，１」がスキャンクロックに同期してシフト入力される。
【００２５】
次に、クロック（ｔ２）におけるランダム信号パタン（１１００１０）は第２番目のスキャンクロックで入力されるＡＴＰＧパタン（１××０×１）と一致しないので、スキャンクロック選択デコーダ１０３にスキャンクロック選択信号は入力されない。従って、クロック（ｔ２）ではスキャンクロック選択デコーダ１０３からスキャンチェーン１０１にスキャンクロックは供給されず、ランダム信号パタン（１１００１０）は破棄される。
【００２６】
次に、クロック（ｔ３）におけるランダム信号パタン（１０１００１）は第２番目のスキャンクロックで入力されるＡＴＰＧパタン（１××０×１）と一致またはドントケアの関係にあるので、スキャンクロック選択デコーダ１０３にスキャンクロック選択信号が入力される。従って、クロック（ｔ３）ではスキャンクロック選択デコーダ１０３からスキャンチェーン１０１にスキャンクロックが供給され、６本のスキャンチェーンに信号「１，０，１，０，０，１」がスキャンクロックに同期してシフト入力される。以下、同様の動作を繰り返すことにより、スキャンチェーン１０１に所望のＡＴＰＧパタンが設定される。
【００２７】
従って、テスターメモリには、生成されたＡＴＰＧパタン毎に、ランダムパタン発生器１０２から発生されるスキャンクロック単位の擬似ランダム信号の中から、スキャンクロックとして採用するクロック番号データを、擬似ランダム信号発生開始時点を基準として記憶しておき（実施例の場合、クロック番号ｔ１，ｔ３，…）、半導体集積回路にＡＴＰＧパタンを設定するためにスキャンクロック単位の擬似ランダム信号の発生を開始した時点からのクロックカウント値と一致したときの擬似ランダム信号を順次スキャンチェーンに入力することにより当該ＡＴＰＧパタンを設定することができる。
【００２８】
あるいは、テスターメモリとしてシフトレジスタを用い、該シフトレジスタに生成されたＡＴＰＧパタン毎に、ランダムパタン発生器１０２から発生されるスキャンクロック単位の擬似ランダム信号のうち、採用するクロックを“１”（または“０”）、採用しないクロックを“０”（または“１”）としてクロック開始から順に記憶しておき（実施例の場合、１，０，１，…）、このシフトレジスタの値をスキャンクロック単位の擬似ランダム信号発生クロックと同期して読み出し、“１”（または“０”）であればそのときのスキャンクロック単位の擬似ランダム信号をスキャンチェーンに入力し、“０”（または“１”）であればそのときのスキャンクロック単位の擬似ランダム信号を破棄することにより、スキャンチェーンに当該ＡＴＰＧパタンを設定してもよい。
【００２９】
図３は、本実施形態のスキャンテストパタン入力動作を示すフローチャートである。なお、図３では、テスターメモリにスキャンクロックとして採用するクロック番号データが記憶されている場合を想定している。以下、図１〜図３を参照して本実施形態のスキャンテストパタン入力動作について説明する。
【００３０】
テスターメモリには、ランダムパタン発生器１０２から発生するスキャンクロック単位の擬似ランダム信号の中からスキャンクロックとして採用する擬似ランダム信号発生開始時点からのクロック番号に対応するデータ（例えば、クロック番号ｔ１，ｔ３，…）が、スキャンチェーン１０１に設定されるＡＴＰＧパタンに対応して記憶されている。半導体集積回路に上記ＡＴＰＧパタンを設定するためのクロック入力が開始される（ステップＳ１）と、テスターメモリから最初のクロック番号（実施例では、ｔ１）が読み出される（ステップＳ２）。
【００３１】
ランダムパタン発生器１０２からはクロック入力の開始と同時に、入力クロックに同期してスキャンクロック単位の擬似ランダム信号が出力される（ステップＳ３）とともに、クロック入力開始時点からの入力クロック数がカウントされる（ステップＳ４）。
【００３２】
次に、テスターメモリから読み出されたクロック番号と、クロック入力開始時点からの入力クロックカウント値を比較し（ステップＳ５）、両者が一致したときには、スキャンクロック選択デコーダ１０３からスキャンチェーン１０１にシフトクロックを入力して、当該クロック入力に対応して生成されたスキャンクロック単位の擬似ランダム信号をスキャンチェーン１０１に入力（ステップＳ６）した後、テスターメモリに記憶されているクロック番号を全て読み出したか否かを判定する（ステップＳ７）。
【００３３】
一方、テスターメモリから読み出されたクロック番号と入力クロックカウント値が不一致の時には、スキャンクロック選択デコーダ１０３からスキャンチェーン１０１へのシフトクロックを停止し、当該クロック入力に対応して生成されたスキャンクロック単位の擬似ランダム信号を破棄する（ステップＳ８）。
【００３４】
ステップ７でテスターメモリに記憶されているクロック番号が全て読み出されていないとき、またはステップ８が実行されたときには、テスターメモリから次のクロック番号を読み出し（ステップＳ９）、ステップ３〜ステップ８を繰り返す。ステップ７でテスターメモリに記憶されているクロック番号が全て読み出されたときに、テストパタン設定を終了する（ステップＳ１０）。これらの処理はプログラムによるソフトウェア処理によって実現することもできる。
【００３５】
本実施形態によれば、スキャンテスト用のテスターメモリには、ランダムパタン発生器１０２がスキャンクロック単位のランダムパタンの発生を開始した時点からのクロック番号（ｔ１，ｔ２，ｔ３，…）に対して、どのクロック番号をスキャンチェーン１０１のスキャンクロックとして採用するかを、生成されたＡＴＰＧパタンと対応して記憶しておき、クロック信号によりランダムパタン発生器１０２がスキャンチェーン１０１のシフト入力動作を開始した時点から読み出すことにより期待値どおりのＡＴＰＧパタンを設定することができる。
【００３６】
また、テスターメモリとして、生成されたＡＴＰＧパタン毎に、ランダムパタン発生器１０２から発生されるスキャンクロック単位の擬似ランダム信号の中からスキャンクロックとして採用するクロック番号データ（上記実施例では、クロック番号ｔ１，ｔ３，…）を記憶する大きさのメモリ容量があれば足りるので、テストパタン情報が圧縮され、テスターメモリが少なくて済む。
【００３７】
図４は、本発明の第２の実施形態を示すブロック図である。本実施形態では、半導体集積回路（ＬＳＩチップ）１００内のフリップフロップをスキャン化した後、例えば３２本のスキャンチェーンからなる複数（実施例では３個）のグループ（スキャンチェーン束）１１１〜１１３に分割する。そして、それぞれのスキャンチェーン束（以下、チェーン束Ａ，Ｂ，Ｃ）は、独立したスキャンクロックにより制御可能に構成されている。
【００３８】
本実施形態においては、所定周期の擬似ランダム信号を発生するランダムパタン発生器１０２から出力されるスキャンクロック単位（３２ビット）の擬似ランダム信号は、チェーン束Ａ，Ｂ，Ｃに並列に入力される。一方、スキャンクロック選択デコーダ１０３は、テスター１３０から入力される例えば２ビットのクロック選択制御信号をデコードすることにより、ランダムパタン発生器１０２から出力される３２ビットの擬似ランダム信号を入力すべきチェーン束を選択し、該選択したチェーン束にのみスキャンクロックを供給する。従って、スキャンクロック単位の擬似ランダム信号は、クロック毎に選択されたチェーン束にのみ入力される。
【００３９】
ランダムパタン発生器１０２から出力されるスキャンクロック単位（３２ビット）の擬似ランダム信号が、チェーン束Ａ，Ｂ，Ｃのスキャンクロック単位（３２ビット）の各テストパタンのいずれのテストパタンとも一致しないときには、チェーン束Ａ，Ｂ，Ｃのいずれにもスキャンクロックは供給されず、当該スキャンクロック単位の擬似ランダム信号は破棄される。
【００４０】
第１の実施形態の場合、スキャンテストパタン設定時にすべてのスキャンチェーンを同一のクロックで制御するため、スキャンシフト中はすべてのフリップフロップが動作状態となり消費電力も大きくなる。電源設計等では、一般に通常動作を考慮して設計される場合があり、このため、スキャンチェーンの数が多くなると、スキャンテストパタン設定時の予想以上の電力消費により電源電圧降下等の問題が発生し、回路が正常に動作しなくなることがある。
【００４１】
本実施形態では、スキャンシフト時には、スキャンクロックを選択・制御することにより、動作させるスキャンチェーン（チェーン束）を選択することによって、同時動作するスキャンフリップフロップの数を少なくすることができるので、スキャンシフト時の消費電力を抑えることができ、テストパタン情報の圧縮効果に加えて、消費電力増大に伴って生ずる回路の誤動作を抑制する効果も期待できる。
【００４２】
図５は、本実施形態のスキャンテストパタン入力動作原理を示す概略図である。なお、図５では各チェーン束Ａ，Ｂ，Ｃがそれぞれ６本のスキャンチェーンからなるチェーン束として構成されている場合を示しており、ＡＴＰＧパタンは図の左から右に向かって順に入力されるものとする。
【００４３】
図５において、スキャンクロックが入力される毎に各チェーン束Ａ，Ｂ，Ｃに入力されるＡＴＰＧパタンは、チェーン束Ａでは、（１××０×１），（０××××１），…、チェーン束Ｂでは、（０××０××），（×０×１１０），…、チェーン束Ｃでは、（××１×××），（０×××××），…と生成されるものとし（×はドントケア値）、ランダムパタン発生器１０２からクロック（ｔ１，ｔ２，ｔ３，…）毎に出力される６ビットのランダム信号パタンは（０１００１１），（１１００１０），（１０１００１），…であるとする。
【００４４】
クロック（ｔ１）におけるランダム信号パタン（０１００１１）は、チェーン束Ｂの第１番目のスキャンクロックで入力されるＡＴＰＧパタン（０××０××）と一致またはドントケアの関係にあるので、テスターメモリ１３１からスキャンクロック選択デコーダ１０３にチェーン束Ｂを選択する２ビットのクロック選択制御信号が入力される。従って、クロック（ｔ１）ではスキャンクロック選択デコーダ１０３からチェーン束Ｂにスキャンクロックが供給され、チェーン束Ｂの６本のスキャンチェーンに信号「０，１，０，０，１，１」が入力される。
【００４５】
次に、クロック（ｔ２）におけるランダム信号パタン（１１００１０）は、チェーン束Ａの第１番目のスキャンクロックで入力されるＡＴＰＧパタン（１××０×１）、チェーン束Ｂの第２番目のスキャンクロックで入力されるＡＴＰＧパタン（×０×１１０）、チェーン束Ｃの第１番目のスキャンクロックで入力されるＡＴＰＧパタン（××１×××）のいずれともと一致しないので、テスターメモリ１３１からスキャンクロック選択デコーダ１０３には何れのチェーン束も選択しないクロック選択制御信号が入力される。従って、クロック（ｔ２）ではスキャンクロック選択デコーダ１０３からのスキャンクロックはいずれのチェーン束にも供給されず、ランダム信号パタン（１１００１０）は破棄される。
【００４６】
次に、クロック（ｔ３）におけるランダム信号パタン（１０１００１）は、チェーン束Ａの第１番目のスキャンクロックで入力されるＡＴＰＧパタン（１××０×１）と一致またはドントケアの関係にあるので、テスターメモリ１３１からスキャンクロック選択デコーダ１０３にチェーン束Ａを選択する２ビットのクロック選択制御信号が入力される。従って、クロック（ｔ３）ではスキャンクロック選択デコーダ１０３からチェーン束Ａにスキャンクロックが供給され、チェーン束Ａの６本のスキャンチェーンに信号「１，０，１，０，０，１」が入力される。
【００４７】
以下、同様の動作を繰り返すことにより、各チェーン束Ａ，Ｂ，Ｃに所望のＡＴＰＧパタンが設定される。従って、例えば、スキャンクロックとして採用するクロックを“１”採用しないクロックを“０”としてクロック開始から順に記憶する（上記実施例では、チェーン束Ａは０，０，１，…、チェーン束Ｂは１，０，０，…、チェーン束Ｃは０，０，０，…）シフトレジスタをチェーン束毎に設け、半導体集積回路にＡＴＰＧパタンを設定するためのクロック入力開始時点からのクロックと同期して各シフトレジスタの値を読み出し、発生したスキャンクロック単位の擬似ランダム信号を順次該当するチェーン束に入力することにより当該ＡＴＰＧパタンを設定することができる。
【００４８】
通常、ＡＴＰＧによりテスト生成されたパタンには、ドントケア値（０でも１でもどちらでもかまわない値）が多く含まれており、多くの場合、ある特定の値（０もしくは１）に設定する必要のあるフリップフロップの数は非常に少ない。ドントケア値が多くなるに従って本発明のランダムパタン生成器で生成したパタンがいずれかのスキャン束に入力される確率は高くなり、少ないパタンメモリ容量で、極めて効率的なスキャンテストパタンの設定が可能となる。
【００４９】
また、チェーン束Ａ，Ｂ，Ｃのうち、２つ以上のチェーン束においてスキャンクロック単位のテストパタンが、ランダムパタン発生器１０２から出力されるスキャンクロック単位の擬似ランダム信号と一致またはドントケアの関係にある場合には、これら一致またはドントケアの関係にある複数のチェーン束にスキャンクロックを供給し、該擬似ランダム信号を２つ以上のチェーン束に同時に入力することができる。この場合には、クロック選択制御信号は３ビットとなるが、スキャンクロック単位の擬似ランダム信号の発生回数を減らすことができるので圧縮効率は高まる。
【００５０】
なお、本実施形態には、スキャンテストパタン設定後のテスト時に、各スキャンチェーンから出力されるテストデータに対してグループ（チェーン束）毎の排他的論理和をとるＸＯＲ回路１２１〜１２３、およびＸＯＲ回路１２１〜１２３からの出力結果をテスターメモリ１３１へ出力するＭＵＸ１２４を備えた構成が示されているが、これらの構成は従来周知であり、また本発明の特徴（テストパタンの設定）とは直接関係しないのでその詳細説明は省略する。
【００５１】
また、本実施形態では、テストパタン発生手段として、ランダムパタン発生器を用いているが、本発明は、特にランダムパタン発生器に限定されるものではなく、例えば、スキャンチェーン束の数に対応する組み合わせパタンを発生することが可能な任意のテストパタン発生手段を用いることができる。
【００５２】
また、本実施形態では、各スキャンチェーン束内のスキャンチェーンの数を全て等しく設定しているが、各スキャンチェーン束内のスキャンチェーンの数は必ずしも等しくする必要はなく、各スキャンチェーン束内のスキャンチェーンの数は異なっていてもよい。
【００５３】
その場合、テストパタン発生手段は、少なくとも、最大のスキャンチェーンの数を有するスキャンチェーン束に対してスキャンクロック単位のテストパタン信号を出力可能な構成としておけば、それよりも少ないスキャンチェーンの数を有するスキャンチェーン束に対しては、その中からスキャンチェーンの数に等しいビット数を選定することにより対応できる。あるいは、各スキャンチェーン束に個別にテストパタン発生手段を設けてもよい。
【００５４】
【発明の効果】
本発明によれば、スキャンテスト用のテスターメモリには、ランダムパタン発生器がスキャンクロック単位のランダムパタンの発生を開始した時点からのクロック番号と、どのクロック番号をスキャンチェーンのスキャンクロックとして採用するかを、生成されたＡＴＰＧパタンと対応して記憶しておき、クロック信号によりランダムパタン発生器がスキャンチェーンのシフト入力動作を開始した時点から読み出すことによりＡＴＰＧパタンの設定が可能となる。従って、生成されたＡＴＰＧパタン毎に、ランダムパタン発生器から発生されるスキャンクロック単位の擬似ランダム信号の中からスキャンクロックとして採用するクロック番号データを記憶する大きさのメモリ容量があれば足りるので、テストパタン情報が圧縮され、テスターメモリが少なくて済む。
【００５５】
また、スキャンチェーンを複数のスキャンチェーン束に分割した場合には、スキャンシフト時にスキャンクロックを選択・制御することにより、動作させるスキャンチェーン束を選択することができ、同時動作するスキャンフリップフロップの数を少なくすることができるので、スキャンシフト時の消費電力を抑えることができ、テストパタン情報の圧縮効果に加えて、回路の誤動作を抑制する効果も期待できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示すブロック図である。
【図２】第１の実施形態のスキャンテストパタン入力動作を説明するための概略図である。
【図３】本実施形態のスキャンテストパタン入力動作を示すフローチャートである。
【図４】本発明の第２の実施形態を示すブロック図である。
【図５】第２の実施形態のスキャンテストパタン入力動作を説明するための概略図である。
【図６】従来のスキャンテストの構成例を示すブロック図である。
【符号の説明】
１００  ＬＳＩチップ
１０１  スキャンチェーン
１０２  乱数発生器
１０３  スキャンクロック選択デコーダ
１１１〜１１３  スキャンチェーン束
１２１〜１２３  ＸＯＲ回路
１２４  マルチプレクサ
１３０  テスター
１３１  テスターメモリ
【図１】
2004309174.tif 000003
【図２】
2004309174.tif 000004
【図３】
2004309174.tif 000005
【図４】
2004309174.tif 000006
【図５】
2004309174.tif 000007
【図６】
2004309174.tif 000008