(57)【要約】  回路面積の増大を抑止しながら、不定値のテスト対象パスへの伝播の抑止を実現するスキャンパステスト方式の半導体集積回路装置及びテスト方法の提供。【課題】            【解決手段】  論理回路内の複数のフリップフロップをシリアルにつないでスキャンチェインを形成し、スキャンパステストを行うにあたり、論理回路内の１つ又は複数のフリップフロップを、テスト時に、不定値がテスト対象パスに伝播し該不定値が出力側のスキャンチェインで取り込まれることを抑制するための値を保持する不定制御フリップフロップとして備え、不定制御フリップフロップは、制御信号に基づきシリアルに接続され、スキャンチェイン１０４、１０５、１０７とは別のチェイン１０３、１０６、１０８を構成し、複数の不定制御フリップフロップには、入力端子１０１からシリアル入力される値がそれぞれ設定される。【選択図】            図１
2005308500.tif 000002
【特許請求の範囲】
【請求項１】
論理回路内の複数のフリップフロップを制御信号に基づきシリアルにつないでスキャンチェインを形成しテストが行われる半導体集積回路装置において、
前記論理回路内の少なくとも１つのフリップフロップを、テスト時に、不定値のテスト対象パスへの伝播を抑止するための値を保持する不定制御フリップフロップとして備えてなる、ことを特徴とする半導体集積回路装置。
【請求項２】
前記不定制御フリップフロップを複数備え、
複数の前記不定制御フリップフロップは、制御信号に基づき、シリアルに接続されて前記スキャンチェインとは別のシリアルチェインを構成し、
複数の前記不定制御フリップフロップには、入力端子からシリアル入力される値が設定される、ことを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
前記入力端子から、複数の前記不定制御フリップフロップのそれぞれに到るまでのシリアルチェイン上に、前記不定制御フリップフロップが出力する値に応じて、論理反転回数が奇数回又は偶数回となるように、反転回路が挿入されてなる、ことを特徴とする請求項２に記載の半導体集積回路装置。
【請求項４】
前記スキャンチェインを構成する複数のフリップフロップと、複数の前記不定制御フリップフロップとが共通のクロック信号で駆動される、ことを特徴とする請求項３に記載の半導体集積回路装置。
【請求項５】
前記不定制御フリップフロップは、前記スキャンチェインの内の入力側のスキャンチェインを構成するフリップフロップと出力側のスキャンチェインを構成するフリップフロップの間の前記テスト対象のパスに対して不定値を伝播させるパスを固定値に設定するか、又は、不定値の伝播を、前記テスト対象のパスの始点と終点の間の中間位置で停止させ、不定値が、前記出力側のスキャンチェインを構成する前記フリップフロップに及ばないように制御する、ことを特徴とする請求項１乃至４のいずれか一に記載の半導体集積回路装置。
【請求項６】
複数のフリップフロップを有し、前記複数のフリップフロップを制御信号に基づきシリアルにつないでスキャンチェインを形成し、入力側のスキャンチェインと出力側のスキャンチェインの間の回路のテストを行うスキャンパス回路において、
前記スキャンチェインを構成するフリップフロップとは別の少なくとも１つのフリップフロップを、テスト時に、不定値のテスト対象パスへの伝播を抑止するための値を保持する不定制御フリップフロップとして備え、前記テスト対象パスに接続される出力側のスキャンチェインを構成するフリップフロップには、テスト時に不定値が入力されることがないように制御されてなる、ことを特徴とするスキャンパス回路。
【請求項７】
前記不定制御フリップフロップを複数備え、複数の前記不定制御フリップフロップは、制御信号に基づき、シリアルに接続され、前記スキャンチェインとは別のシリアルチェインを構成し、
シリアルに接続された複数の前記不定制御フリップフロップには、入力端子からシリアルに入力される値が設定される、ことを特徴とする請求項６に記載のスキャンパス回路。
【請求項８】
前記不定制御フリップフロップは、前記入力側のスキャンチェインと出力側のスキャンチェインの間のテスト対象のパスに対して不定値を伝播させるパスを固定値に設定するか、又は、不定値の伝播を、前記テスト対象のパスの始点と終点の間の中間位置で停止させ、不定値が前記出力側のスキャンチェインに及ばないように制御する、ことを特徴とする請求項６又は７に記載のスキャンパス回路。
【請求項９】
前記入力端子から、複数の前記不定制御フリップフロップのそれぞれに到るまでのシリアルチェイン上に、前記不定制御フリップフロップが出力する値に応じて、論理反転回数が、奇数回又は偶数回となるように、反転回路が挿入されてなる、ことを特徴とする請求項７に記載のスキャンパス回路。
【請求項１０】
論理回路内の複数のフリップフロップを制御信号に基づきシリアルにつないでスキャンチェインを形成し、入力側のスキャンチェインと出力側のスキャンチェインの間の回路のテストが行われる半導体集積回路装置のテスト方法において、
前記スキャンチェインを構成するフリップフロップとは別に、前記論理回路内の少なくとも１つのフリップフロップを、テスト時に、不定値が、テスト対象のパスに伝播することを抑止するための値を保持する不定制御フリップフロップとして選択する工程と、
前記不定制御フリップフロップを前記値に設定した状態で、前記スキャンチェインを用いたテストを行う工程と、
を含む、ことを特徴とする半導体集積回路装置のテスト方法。
【請求項１１】
前記不定制御フリップフロップを複数有し、
複数の前記不定制御フリップフロップが制御信号に基づき、シリアルに接続されて前記スキャンチェインとは別のシリアルチェインを形成する工程と、
複数の前記不定制御フリップフロップには、入力端子からシリアルに入力される値が設定される工程と、
を含む、ことを特徴とする請求項１０に記載の半導体集積回路装置のテスト方法。
【請求項１２】
前記不定制御フリップフロップは、前記スキャンチェインの内の入力側のスキャンチェインと出力側のスキャンチェインの間の前記被テスト回路のテスト対象のパスに対して、不定値を伝播させるパスを固定値とするか、又は、不定値の伝播を、前記テスト対象のパスの始点と終点の間の中間位置で停止させ、不定値が前記出力側のスキャンチェインに及ばないように制御する、ことを特徴とする請求項１０又は１１に記載の半導体集積回路装置のテスト方法。
【請求項１３】
前記不定制御フリップフロップに値を設定するにあたり、前記入力端子には固定値を入力し、前記入力端子の値と同じ固定値に設定される前記不定制御フリップフロップには、前記入力端子から、前記不定制御フリップフロップまでのシリアルチェイン上の論理反転回数を０又は偶数回とし、
前記入力端子の値と異なる固定値に設定される前記不定制御フリップフロップには、前記入力端子から前記不定制御フリップフロップまでのシリアルチェイン上の論理反転回数を奇数回としてシリアルチェイン形成し、
前記入力端子からの固定値をシフトすることにより、前記不定制御フリップフロップを、不定値がテスト対象のパスに伝播することを抑止するための値に設定する、ことを特徴とする請求項１１に記載の半導体集積回路装置のテスト方法。
【請求項１４】
前記不定制御フリップフロップを選択する工程が、
テスト対象とならない所定のパス（「観測禁止パス」という）の始点に位置するフリップフロップが、テスト対象のパス（「観測パス」という）の始点に位置していないときに、前記観測禁止パスの始点に位置するフリップフロップを、前記不定制御フリップフロップとして選択する、ことを特徴とする請求項１０に記載の半導体集積回路装置のテスト方法。
【請求項１５】
前記不定制御フリップフロップを選択する工程が、
前記観測パスの始点に位置するフリップフロップと、前記観測禁止パスの始点に位置するフリップフロップが同一である場合に、不定値の伝播を、前記観測パスの始点と終点の間の中間位置で停止する値を設定するフリップフロップを、前記論理回路中から検索する工程と、
前記検索されたフリップフロップを、前記不定制御フリップフロップとして選択する工程と、
を含む、ことを特徴とする請求項１０に記載の半導体集積回路装置のテスト方法。
【請求項１６】
入力された信号が伝播するパスを形成する被テスト論理回路の出力を、第１のフリップフロップでラッチし、前記第１のフリップフロップでラッチされたデータを読み出してテストを行う半導体集積回路装置のテスト方法において、
前記被テスト論理回路から不定値が出力されることがないように、前記パスへの入力信号値となる所望の固定値を第２のフリップフロップにラッチさせておき、
前記第２のフリップフロップからの前記固定値の出力を前記パスへの入力信号として与え前記テストを行う、
ことを特徴とする半導体集積回路装置のテスト方法。
【請求項１７】
テスト中に出力の論理値が定まらない回路の出力を論理ゲートを介して第１のフリップフロップに入力してラッチし、前記第１のフリップフロップによってラッチされたデータを読み出してテストを行う半導体集積回路装置のテスト方法において、
前記論理ゲートへの他の入力値を出力する第２のフリップフロップに、前記テスト中に出力の論理値が定まらない回路の出力が前記論理ゲートから出力されなくなる前記他の入力値を所望の固定値としてラッチさせて前記テストを行う、ことを特徴とする半導体集積回路装置のテスト方法。
【請求項１８】
テスト中に出力の論理値が定まらない回路の出力を、選択回路を介して第１のフリップフロップに入力してラッチし、前記第１のフリップフロップによってラッチされたデータを読み出してテストを行う半導体集積回路装置のテスト方法において、
前記選択回路の選択信号を出力する第２のフリップフロップに、前記テスト中に出力の論理値が定まらない回路の出力が、前記選択回路で選択出力されなくなる前記選択信号を所望の固定値としてラッチさせて前記テストを行う、ことを特徴とする半導体集積回路装置のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置及びそのテスト方法に関し、特に、スキャンパス回路及びそのテスト方法に関する。
【背景技術】
【０００２】
半導体集積回路のテスト容易化設計（Design For Testability）手法として、論理回路中のフリップフロップをシリアルに接続してシフトレジスタとして動作させることでテストを行うスキャンパス・テストが用いられている。よく知られているように、スキャンパスを構成するフリップフロップ（「スキャンフリップフロップ」ともいう）は、シリアル入力端子（ＳＩ）と、データ入力端子（Ｄ）と、データ出力端子（Ｑ）と、クロック入力端子（Ｃ）と、スキャンモード制御端子（ＳＭＣ）とを備え、スキャンモード制御端子（ＳＭＣ）に入力される信号がスキャンモード（「シリアルモード」ともいう）を示すとき、シリアル入力端子（ＳＩ）からの入力をクロック信号に応答してサンプルしデータ出力端子（Ｑ）から出力し、次段のフリップフロップのシリアル入力端子（ＳＩ）に供給し、複数のフリップフロップを数珠つなぎにしたシリアル経路であるスキャンチェインが形成される。一方、スキャンモード制御端子（ＳＭＣ）の値がノーマル動作を示すとき、当該フリップフロップは、データ入力端子（Ｄ）の信号をクロック信号に応答してサンプルしデータ出力端子（Ｑ）から出力する。テスト時には、半導体集積回路のスキャン入力端子（ＳＣＡＮ＿ＩＮ）（「シリアル入力端子」ともいう）より、テストパタンがシリアルに入力されて入力側のスキャンチェインを構成するフリップフロップに順次設定され、入力側のスキャンチェインのフリップフロップの出力は、被テスト回路（組み合わせ回路）に供給される。この状態で、スキャンモードを解除して１クロックパルスを与えることで、被テスト回路の出力が出力側のスキャンチェインを構成するフリップフロップにパラレルに取り込まれ、再び、スキャンモードに設定し、半導体集積回路のスキャン出力端子（ＳＣＡＮ＿ＯＵＴ）（「シリアル出力端子」ともいう）から、出力側のスキャンチェインの値をシリアルに読み出し期待値と比較することで、テストが行われる。
【０００３】
ところで、半導体集積回路のスキャンテストにおいて、例えば、半導体集積回路内の被テスト回路内に、
（Ａ）テスト中に、値が定まらない部分や、
（Ｂ）実動作上、予め定められた周期内に動作が完了する必要のない部分等、
不定値を発生する部分が含まれている場合、出力側のスキャンチェインに不定値がセットされることになる。
【０００４】
なお、上記（Ａ）の例として、例えば、出力側のスキャンチェインのフリップフロップがＲＡＭ（ランダムアクセスメモリ）の出力を受ける場合、該ＲＡＭが初期化されていない限り、フリップフロップは不定値に設定される。
【０００５】
また、上記（Ｂ）の例として、例えば２クロックサイクル以上で動作が完了するようなパスがあげられる。前述したように、テスト時に、入力側のスキャンチェインの出力を入力する被テスト回路の出力は、１クロックで出力側のスキャンチェインに取り込まれる。このため、１クロックサイクル内で動作が完了しない被テスト回路のパスに接続される出力側のスキャンチェインには不定値が伝播されることになる。
【０００６】
また、ＬＦＳＲ（Linear Feedback Shift Register）等を用いてシグネチャ圧縮を行う構成では、１サイクルでも、不定値が入ると、シグネチャが壊れてしまい、シミュレーション結果（期待値）と合わなくなる。すなわち、後記特許文献１にも記載されているように、テスト結果を、ＬＦＳＲを用いてシグネチャ圧縮する手法を用いた場合には、テスト時に不定状態を発生する部分の出力がテスト結果に影響を与えないように、制御回路を追加する必要がある。なお、後記特許文献１には、使われていない機能ブロックからの不定値出力に対しても正常なシグネチャ生成を行うことを可能とする構成として、シグネチャ圧縮を行う観測レジスタ回路が、マスク情報をビットで記憶するレジスタを備え、このレジスタの値と観測データとの論理積をＡＮＤ回路でとることにより、観測データの入力、阻止を制御し、不定値が観測レジスタ回路に取り込まれることを防止している。
【０００７】
一方、スキャンチェインの構成を変形させて、不定値のテスト結果への影響を抑止するための制御回路を設けない構成も知られている（例えば後記特許文献２）。図９は、後記特許文献２の第１図を、参考のために引用したものである。図９に示すように、ＲＡＭ１０が初期化されないときは、ＲＡＭ１０のデータ出力部ｄｏ[ｎ]から取り込んだデータ信号には不定値が含まれる恐れがある。図９に示す構成では、ＲＡＭ１０からのデータ信号は、スキャンパス２２を通じてＭＩＳＲ（Multiple Input Signature Register）へ伝達されることはなく、ＭＩＳＲへは、スキャンパス１３で取り込まれた、組み合わせ回路４０からのデータ信号ＤＩ［ｎ］のみが伝達される構成とし、ＲＡＭ１０の初期化なしで、不定値の影響を受けることなく、組み合わせ回路４０のＢＩＳＴ（Built-In Self Test）を遂行できるようにしている。
【０００８】
しかしながら、図９に示す構成は、スキャンチェインが途中で二股に分かれており（すなわち、スキャンパス１２からスキャンパス１３、１４に分岐している）、通常のスキャンパスの構成とは異なる特異な構成であるため、自動テストパタン生成（ＡＴＰＧ）ツールで自動生成されたパタンをそのまま用いることができない等の問題がある。
【０００９】
以下では、スキャンパス方式の半導体集積回路おいて、不定値のテスト対象パスへの伝播を抑制するための制御回路を備えた典型的な構成について、図８を参照して、説明しておく。なお、図８は、不定値のテスト対象パスへの伝播を抑制するための制御回路を備えた代表例の説明のために、本発明者によって作成されたものである。
【００１０】
図８において、フリップフロップ１０３〜１０８は、テスト時に、シリアルに接続されて、入力側のスキャンチェインを構成し、フリップフロップ１２４、１２３、１２２は、シリアルに接続されて、出力側のスキャンチェインを構成する。フリップフロップ１０３〜１０８には、シリアル入力端子（ＳＩＮ１）よりシリアルに入力されたテストパタンが供給され、出力側のスキャンチェインを構成するフリップフロップ１２４、１２３、１２２に、１クロックで被テスト回路の出力がサンプルされ、出力側のスキャンチェインを構成するフリップフロップ１２２、１２３、１２４でのサンプル値がシリアル出力端子（ＳＯＵＴ２）から順次シリアルに出力され、試験装置等では、例えばシリアルに出力されたデータと期待値とを比較するか、あるいは、シグネチャ圧縮し、シグネチャを期待値と比較する。
【００１１】
図８において、ＡＮＤゲート５０１、５０２、５０３は、不定値のテスト対象パスへの伝播を抑止するために、新たに追加された制御回路である。例えば、ＡＮＤゲート５０１は、テストを制御するテストモード信号／ＴＥＳＴＭＯＤＥが活性状態（ロウレベル）のとき、その出力をロウレベルとし、ＡＮＤゲート５０１の出力を選択制御信号（ＳＥＬ）として入力するセレクタ１１９は、パス１１１を選択して出力してフリップフロップ１２２のデータ入力端子（Ｄ）に出力する。すなわち、テスト時において、パス１１０（回路群１１４の出力）はセレクタ１１９では、選択されず、このため、フリップフロップ１２２への不定値の取り込みは回避される。
【００１２】
同様に、ＡＮＤゲート５０２は、テストモード信号／ＴＥＳＴＭＯＤＥが活性状態（ロウレベル）のとき、その出力をロウレベルとし、パス１１２の回路１１８への伝播を遮断している。そして、ＡＮＤゲート５０３も、テストモード信号／ＴＥＳＴＭＯＤＥが活性状態（ロウレベル）のとき、その出力をロウレベルとしており、ＲＡＭ１２０の出力のフリップフロップ１２４への伝播を遮断している。
【００１３】
このように、図８に示した回路構成においては、テストモード信号／ＴＥＳＴＭＯＤＥを活性状態（ロウレベル）に固定することで、全ての不定発生部分の影響を排除することが可能である。
【００１４】
【特許文献１】特開２００１−２７３１５９号公報（第３、４頁、第１図）
【特許文献２】特開平１１−３５２１８８号公報（第６、７頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、不定値がテスト結果に影響を与えないように、制御回路を追加する構成とした場合（図８参照）、追加する制御回路により、回路面積が増大する、という問題を有している。
【００１６】
一方、不定値のスキャンパスへの混入を回避するための制御回路を追加しない場合には、スキャンチェインが特異な構成となるため（図９参照）、自動テストパタン（ＡＴＰＧ）でパタンを生成することは、困難であった。
【００１７】
したがって、本発明の目的は、回路面積の増大を抑止しながら、不定値のテスト対象パスへの伝播の抑止を実現する半導体集積回路装置及び方法を提供することにある。
【００１８】
また本発明の他の目的は、上記目的を達成しながら、ＡＴＰＧ（自動パタン生成ツール）でパタン生成可能なスキャンパステスト方式の半導体集積回路装置回路及び方法を提供することにある。
【課題を解決するための手段】
【００１９】
本願で開示される発明は、前記目的を達成するため、概略以下の構成とされる。
【００２０】
本発明の１つのアスペクトに係る半導体集積回路装置は、論理回路内の複数のフリップフロップを制御信号に基づきシリアルにつないでスキャンチェインを形成しテストが行われる半導体集積回路装置において、前記論理回路内の少なくとも１つのフリップフロップを、テスト時に、不定値のテスト対象パスへの伝播を抑制するための値を保持する不定制御フリップフロップとして備えている。
【００２１】
本発明に係る半導体集積回路装置においては、前記不定制御フリップフロップを複数備え、複数の前記不定制御フリップフロップは、制御信号に基づき、シリアルに接続されて前記スキャンチェインとは別のシリアルチェインを構成し、複数の前記不定制御フリップフロップには、入力端子からシリアル入力される値が設定される構成としてもよい。
【００２２】
本発明に係る半導体集積回路装置においては、前記入力端子から、複数の前記不定制御フリップフロップのそれぞれに到るまでのシリアルチェイン上に、前記不定制御フリップフロップが出力する値に応じて、論理反転回数が奇数回又は偶数回となるように、反転回路が挿入されている構成としてもよい（ただし、論理反転回数が０の場合、反転しなくてよいため、反転回路は挿入されない）。前記入力端子には、固定値が与えられる。
【００２３】
本発明に係る半導体集積回路装置においては、前記スキャンチェインを構成する複数のフリップフロップと、複数の前記不定制御フリップフロップとが共通のクロック信号で駆動されるようにしてもよい。
【００２４】
本発明に係る半導体集積回路装置においては、前記スキャンチェインを構成する複数のフリップフロップのシリアル接続を制御する制御信号と、複数の前記不定制御フリップフロップのシリアル接続を制御する制御信号とを、別々に設けた構成としてもよい。
【００２５】
本発明に係る半導体集積回路装置においては、前記不定制御フリップフロップは、前記スキャンチェインの内の入力側のスキャンチェインと出力側のスキャンチェインの間のテスト対象のパスに対して不定値を伝播させるパスを固定値に設定するか、又は、不定値の伝播を、前記テスト対象のパスの始点と終点の間の中間位置で停止させ、不定値が前記出力側のスキャンチェインに及ばないように制御する構成とされている。
【００２６】
本発明の他のアスペクトに係るスキャンパス回路は、複数のフリップフロップを有し、前記複数のフリップフロップを制御信号に基づきシリアルにつないでスキャンチェインを形成し、入力側のスキャンチェインと出力側のスキャンチェインの間の被テスト回路のテストを行うものであり、少なくとも１つのフリップフロップを、テスト時に、不定値のテスト対象パスへの伝播を抑制するための値を保持する不定制御フリップフロップとして備えている。本発明に係るスキャンパス回路において、前記不定制御フリップフロップを複数備え、複数の前記不定制御フリップフロップは、制御信号に基づき、シリアルに接続され、前記スキャンチェインとは別のシリアルチェインを構成し、シリアルに接続された複数の前記不定制御フリップフロップには、入力端子からシリアルに入力される値が設定される。
【００２７】
本発明の１つのアスペクトに係るテスト方法は、論理回路内の複数のフリップフロップを制御信号に基づきシリアルにつないでスキャンチェインを形成しテストを行う工程を含む半導体集積回路装置のテスト方法において、
（Ａ）前記論理回路内の少なくとも１つのフリップフロップを、テスト時に、不定値がテスト対象のパスに伝播することを抑止するための値を保持する不定制御フリップフロップとして選択する工程と、
（Ｂ）前記不定制御フリップフロップを予め定められた値に設定した状態で、前記スキャンチェインを用いたテストを行う工程と、
を含む。
【００２８】
本発明に係るテスト方法においては、前記不定制御フリップフロップを複数備え、複数の前記不定制御フリップフロップは、制御信号に基づきシリアルに接続されて前記スキャンチェインとは別の第２のスキャンチェインを形成する工程と、複数の前記不定制御フリップフロップには、シリアル入力端子から入力される信号値が設定する工程と、を含む構成としてもよい。
【００２９】
本発明に係るテスト方法においては、前記シリアル入力端子には、固定値が与えられ、前記シリアル入力端子から、複数の前記不定制御フリップフロップのそれぞれに到るまでのシフトパス上に、不定制御フリップフロップが出力する論理値に応じて、論理反転回数が奇数回、又は偶数回となるように反転素子が挿入され、テスト時に、複数の前記不定制御フリップフロップの出力値が固定される。
【００３０】
本発明に係るテスト方法においては、前記不定制御フリップフロップは、入力側のスキャンチェインと出力側のスキャンチェインの間の被テストパスに対して、不定値を与えるパスを固定値に設定するか（該パスから不定値が出力されなくなる固定値に該パスを設定する）、不定値の伝播を、被テストパスの始点と終点の間の中間位置で停止させ、不定値が、前記出力側のスキャンチェインを構成する前記フリップフロップに及ばないように制御する。
【００３１】
本発明の他のアスペクトに係るテスト方法においては、半導体集積回路内のフリップフロップを制御信号に基づきシリアルにつないでスキャンチェインを形成しスキャンパス・テストを行うテスト方法において、
（Ａ）論理回路内のフリップフロップの中から、テスト時に、不定値のテスト対象のパスへの伝播を停止する値が設定されるフリップフロップ（「不定制御フリップフロップ」という）を選択する工程と、
（Ｂ）前記不定制御フリップフロップを制御信号に基づきシリアルにつないで他のフリップフロップとは別のスキャンチェインとして形成する工程と、
（Ｃ）前記不定制御用のフリップフロップに、不定値のテスト対象のパスへの伝播を停止する値を設定することにより、テスト対象のパスのテストを行う工程と、を含む。
【００３２】
本発明に係るテスト方法において、前記不定制御フリップフロップを選択する工程（Ａ）が、テスト対象とならない所定のパス（「観測禁止パス」という）の始点に位置するフリップフロップが、テスト対象のパス（「観測パス」という）の始点に位置していないときに、前記観測禁止パスの始点に位置するフリップフロップを、前記不定制御フリップフロップとして選択する工程を含む。
本発明に係るテスト方法において、前記不定制御フリップフロップを選択する工程（Ａ）が、前記観測パスの始点に位置するフリップフロップと、前記観測禁止パスの始点に位置するフリップフロップが同一である場合に、不定値の伝播を、前記観測パスの始点と終点の間の中間位置で停止する値を設定するフリップフロップを、前記論理回路中から検索する工程と、前記検索されたフリップフロップを、前記不定制御フリップフロップとして選択する工程と、を含む。
【００３３】
本発明に係るテスト方法において、前記不定制御フリップフロップに固定値を設定するにあたり、入力端子には固定値を入力する工程と、前記入力端子の値と同じ固定値に設定される不定制御フリップフロップには、入力端子から、前記不定制御フリップフロップまでのシリアルチェイン上の論理反転回数を０又は偶数回とし、前記入力端子の値と異なる固定値に設定される不定制御フリップフロップには、前記入力端子から前記不定制御フリップフロップまでのシリアルチェイン上の論理反転回数を奇数回としてシリアルチェインを形成する工程と、スキャンモードに設定し、前記入力端子からの固定値をシフトすることにより、前記不定制御フリップフロップに固定値を設定する工程を含む構成としてもよい。
【発明の効果】
【００３４】
本発明によれば、論理回路中のフリップフロップの中から、不定値のテスト対象パスへの伝播を抑止する制御を行うフリップフロップ（不定制御フリップフロップ）を選択し、該不定制御フリップフロップを、通常のスキャンフリップフロップとは別のチェーンとして構成し、この別のチェーンとして構成された不定制御フリップフロップに対して、不定状態を発生する部分からの不定値が、スキャンフリップフロップに伝播しないような値を設定する構成としたことにより、回路規模の増大を抑えながら、不定値のテスト結果への影響を回避し、正確なテストを実現することができる。
【発明を実施するための最良の形態】
【００３５】
上記した本発明についてさらに詳細に説述すべく、添付図面を参照して、本発明の実施の形態について以下に説明する。
【００３６】
図１は、本発明の一実施の形態の構成を説明するための図である。図１において、フリップフロップ１０４、１０５、１０７は、スキャンモード制御信号（ＳＭＣ）がスキャンモードを示すときに、シリアルに接続され、該シリアルに接続された経路は、入力側のスキャンチェインを構成している。なお、フリップフロップ１０４、１０５、１０７は、スキャンモード時以外は、データ入力端子（Ｄ）からのデータ信号をクロック入力端子（Ｃ）からのクロック信号に応答してサンプルしデータ出力端子（Ｑ）から出力するというパラレル動作を行う。
【００３７】
フリップフロップ１２２、１２３、１２４は、スキャンモード制御信号（ＳＭＣ）がスキャンモードを示すときに、シリアルに接続され、該シリアルに接続された経路は、出力側のスキャンチェインを構成している。なお、フリップフロップ１２２、１２３、１２４は、スキャンモード時以外は、データ入力端子（Ｄ）からのデータ信号をクロック入力端子（Ｃ）からのクロック信号に応答してサンプルしデータ出力端子（Ｑ）から出力するというパラレル動作を行う。
【００３８】
さらに、フリップフロップ１０３、１０６、１０８は、スキャンモード制御信号（ＳＭＣ）がスキャンモードを示すときに、シリアルに接続され、不定状態を発生する部分からの値が、フリップフロップ１２４、１２３、１２２のデータ入力端子（Ｄ）への伝播を抑止するための制御を行う。フリップフロップ１０３、１０６、１０８を、本明細書では、「不定制御フリップフロップ」という。
【００３９】
入力側のスキャンチェインと出力側スキャンチェインの間には、ＲＡＭ（ランダムアクセスメモリ）１２０、ＯＲ回路１２１、組み合わせ回路１１４、１１５、１１６、１１７、１１８、セレクタ（マルチプレクサ）１１９、パス１１０、１１１、１１２、１１３、等が配設されており、これらの回路及びそのパスの少なくとも一つが、スキャンパステストによりテストされる被テスト回路をなしている。なお、図１において、ＲＡＭ１２０は、図９に示したように、テスト中に出力の値が定まらない回路として例示したものである。
【００４０】
図１の各回路の接続について簡単に説明しておくと、フリップフロップ（Ｆ２）１０４のシリアル入力端子（ＳＩ）は、半導体集積回路の外部端子をなすスキャン入力端子（ＳＩＮ＿Ｎ１）１０２に接続されており、そのデータ出力端子（Ｑ）は、組み合わせ回路１１４、１１５に接続されるとともに、フリップフロップ（Ｆ３）１０５のシリアル入力端子（ＳＩ）に接続されている。フリップフロップ（Ｆ３）１０５のデータ出力端子（Ｑ）は、組み合わせ回路１１５に接続されるとともに、フリップフロップ（Ｆ５）１０７のシリアル入力端子（ＳＩ）に接続されている。フリップフロップ（Ｆ５）１０７のデータ出力端子（Ｑ）は、組み合わせ回路１１７に接続されるとともに、スキャン出力端子１２６に接続されている。フリップフロップ（Ｆ７）１２４のシリアル入力端子（ＳＩ）は、スキャン入力端子（ＳＩＮ＿Ｎ２）１２７に接続されており、データ入力端子（Ｄ）は、ＯＲ回路１２１の出力に接続されており、データ出力端子（Ｑ）は、フリップフロップ（Ｆ８）１２３のシリアル入力端子（ＳＩ）に接続されている。フリップフロップ（Ｆ８）のデータ入力端子（Ｄ）は、組み合わせ回路１１８の出力に接続され、データ出力端子（Ｑ）はフリップフロップ（Ｆ９）１２２のシリアル入力端子（ＳＩ）に接続されている。フリップフロップ（Ｆ９）１２２のデータ入力端子（Ｄ）はセレクタ１１９の出力に接続されており、そのデータ出力端子（Ｑ）は、半導体集積回路の外部端子をなすスキャン出力端子（ＳＯＵＴ＿Ｎ２）１２５に接続されている。
【００４１】
フリップフロップ（Ｆ１）１０３のシリアル入力端子（ＳＩ）は、半導体集積回路の外部端子をなすスキャン入力端子（ＳＩＮ＿Ｃ）１０１に接続されており、そのデータ出力端子（Ｑ）は、セレクタ１１９の選択制御端子ＳＥＬに接続されるとともに、フリップフロップ（Ｆ４）１０６のシリアル入力端子（ＳＩ）に接続されている。フリップフロップ（Ｆ４）１０６のデータ出力端子（Ｑ）は、組み合わせ回路１１６に接続されるとともに、フリップフロップ（Ｆ６）１０８のシリアル入力端子（ＳＩ）に接続されている。フリップフロップ（Ｆ６）１０８のデータ出力端子（Ｑ）は、半導体集積回路の外部端子をなすスキャン出力端子（ＳＯＵＴ＿Ｃ）１０９に接続されるとともに、ＯＲ回路１２１の入力端子に接続されている。なお、フリップフロップ１０３−１０８のデータ入力端子（Ｄ）には、図示されない組み合わせ回路等の出力が入力される構成とされる場合もある。また、フリップフロップ１２２−１２４のデータ出力端子（Ｑ）は、図示されない組み合わせ回路に接続される場合もあるが、これらの構成は、図１では、省略されている。
【００４２】
図１において、実線で示すパス１１１と１１３は、遅延テスト（伝播遅延時間測定試験、タイミングマージン試験等のＡＣ試験）による、テスト対象となるパスであり、本明細書では、「観測パス」と呼ぶ。パス１１１と１１３は、クリティカルパス（ある規定時間以内に信号が伝達されなければ誤動作を生じるような重要なパスを「クリティカルパス」という）であってもよい。
【００４３】
図１において、破線で示すパス１１０と１１２は、テスト対象とされないパスを示している。
【００４４】
テスト対象とされないパス１１０と１１２は、
・実動作では、使用されないパス、あるいは、
・遅延的に遅く変化しても問題のないパス
であり、これらのパスは、遅延テストの対象とならないため、本明細書では、「観測禁止パス」と呼ぶ。パス１１０とパス１１２は、回路の接続はなされているが、論理的に信号が伝播しないような経路である「フォールスパス」の場合もある。
【００４５】
図１に示すように、本実施形態では、不定制御フリップフロップ１０３、１０６、１０８を、その他のフリップフロップ１０４、１０５、１０７とは別のチェインとしてシリアルに接続する構成している。テスト時において、フリップフロップ１０３は値０を保持するように設定し、フリップフロップ１０６は、値０又は１の固定値を保持するように設定し、フリップフロップ１０８は、値１を保持するように設定する。
【００４６】
本発明の一実施例においては、スキャンパステスト実行前に、不定制御フリップフロップ１０３、１０６、１０８にそれぞれの値が設定され、スキャンパステスト時には、不定制御フリップフロップ１０３、１０６、１０８にはクロックは与えられず、フリップフロップ１０３、１０６、１０８は設定された値を保持する。すなわち、図１において、スキャンパステスト時には、フリップフロップ１０４、１０５、１０７、１２２−１２４にのみクロックが供給される。
【００４７】
かかる設定により、テスト中は、セレクタ１１９が、観測パス１１１を常に選択することで、フリップフロップ１２２への不定状態の伝播を抑止している。すなわち、テスト対象とされないパス１１０の値が、フリップフロップ１２２の入力に影響を与えることを回避している。
【００４８】
また、組み合わせ回路１１６には、不定制御フリップフロップ１０６に固定値を設定することで、組み合わせ回路１１８からのフリップフロップ１２３への不定状態の伝播を抑止している。すなわち、不定制御フリップフロップ１０６に固定値を設定することで、パス１１２（テスト対象とされない）からの不定値の組み合わせ回路１１８への伝播を抑止し、組み合わせ回路１１８の出力からフリップフロップ１２３に、パス１１２の影響により不定値が出力されることを回避している。なお、図１では、簡単のため、組み合わせ回路１１６に対して不定状態の伝播を抑止する不定制御フリップフロップ１０６を一つ示しているが、組み合わせ回路１１６に対して不定状態の伝播するパスが複数ある場合には、シリアルに接続される複数の不定制御フリップフロップにより、組み合わせ回路１１６に対して不定状態の伝播を抑止する構成としてもよいことは勿論である。
【００４９】
さらに、ＯＲ回路１２１には、不定制御フリップフロップ１０８から値１が入力されるため、その出力は値１とされる。このため、ＲＡＭ１２０の出力はマスクされ、ＲＡＭ１２０の出力（テスト時に不定状態となる場合がある）のフリップフロップ１２４への伝播を抑止している。
【００５０】
テスト中、不定制御フリップフロップ１０３、１０６、１０８で構成されるチェインは、それぞれ固定値を維持し、フリップフロップ１０４、１０５、１０７、１２２、１２３、１２４で形成されるスキャンチェインを用いて、テスト回路（観測パス１１１上の回路１１５、観測パス１１３上の回路１１７、１１８）をテストすることが可能となる。
【００５１】
なお、図１には、入力側のスキャンチェインの最後尾のフリップフロップ１０７のデータ出力端子（Ｑ）がスキャン出力端子（ＳＯＵＴ＿Ｎ１）１２６に接続され、出力側のスキャンチェインの初段のフリップフロップ１２４のシリアル入力端子（ＳＩ）がスキャン入力端子（ＳＩＮ＿Ｎ２）１２７に接続されている構成が示されているが、入力側のスキャンチェインの最後尾のフリップフロップ１０７のデータ出力端子（Ｑ）を、フリップフロップ１２４のシリアル入力端子（ＳＩ）に接続して１本のスキャンチェインを構成するようにしてもよいことは勿論である。
【００５２】
図２は、比較例として、本発明を適用する前の段階の回路構成の一例を示す図である。なお、図２において、各要素は、図１に対応させて示されている。スキャンモード時に、スキャン入力端子（ＳＩＮ１）２０１からのテストパタンをシリアルに伝達するシフトレジスタを構成するフリップフロップ１０３〜１０８と、被テスト回路の出力をパラレルにサンプルし、スキャンモード時に、サンプル結果を、シリアルに出力するフリップフロップ１２４、１２３、１２２を備えている。ＲＡＭ１２０、ＯＲ回路１２１、セレクタ１１９、組み合わせ回路１１４、１１５、１１６−１１８は、図１に示した構成と同様のものである。
【００５３】
図２に示す構成の場合、スキャン入力端子（ＳＩＮ１）２０１から、例えばＭ系列等の擬似ランダムパタン等のパタンを入力した場合に、ＲＡＭ１２０、組み合わせ回路１１４、１１６（観測禁止パス１１０、１１２）の影響を受け、テスト時に、出力側のスキャンチェインをなすフリップフロップ１２２−１２４では、対応する被テスト回路からの不定値をサンプルする場合があり、これにより、適切なテストが行えなくなる。特に、図３に示すように、複数のスキャンチェイン３０１−３０４の出力をまとめて、圧縮保存するような回路を介して、テスト結果（パス／フェイル）を判定する場合には、その一部に不定を受け取るフリップフロップが存在すると、全体のテスト結果が無効となる。
【００５４】
図３は、複数のスキャンチェイン３０１−３０４のシリアル出力ＳＯＵＴ１、ＳＯＵＴ２、ＳＯＵＴ３、ＳＯＵＴ４を入力して圧縮する回路（ＬＦＳＲ）の例を示す図である。なお、図３に示す構成は、ＢＩＳＴ機能を具備した半導体集積回路内に備えてもよい。圧縮器３０５は、対応するスキャンチェインの出力と前段のＤ型フリップフロップの出力を入力とする排他的論理和回路（加算器）と、排他的論理和回路の出力を入力とするＤ型フリップフロップとが４段縦続接続された構成とされ、３段目と４段目のＤ型フリップフロップ３０８、３０９の出力を入力とする排他的論理和回路３１５の出力が初段の排他的論理和回路（ＸＯＲ）３１１に帰還入力されている。テスト終了時のフリップフロップ３０６−３０９に格納された値（シンドローム）をシミュレーション結果と比較して良否判定が行われる。
【００５５】
図２に示した比較例の場合、スキャンチェインの出力が不定になるサイクルがあると、圧縮器３０５のフリップフロップ３０６−３０９の値は不定となり、テスト結果が無効となる。
【００５６】
これに対して、図１に示した本発明の実施の形態においては、不定制御フリップフロップ１０３、１０６、１０８を、その他のスキャンパスとは、別のチェインで構成しており、このスキャンパスへの入力値を所定の固定値に設定することで、その他のスキャンパスに擬似ランダムパタン等を入力してテストを行なった場合であっても、不定値がフリップフロップ１２２−１２４に伝播することが抑止される。このため、本実施の形態によれば、図３に示すような圧縮器３０５を用いた場合に、前記比較例のように、テスト結果が無効になることはない。
【００５７】
また、本実施の形態において、特筆すべき点は、図２に示した比較例（不定値の伝播に対する対策無し）と較べて、素子の追加が不要とされている、ということである。すなわち、本実施の形態によれば、面積オーバーヘッドの問題は生じない。
【実施例】
【００５８】
次に、図１を参照して本実施の形態における不定制御フリップフロップを選択するための処理手順の一実施例について説明する。図４は、本発明の一実施の形態において、不定制御フリップフロップを決定するための手順の一実施例を示す流れ図である。本実施例において、図４に示した処理は、半導体集積回路装置の設計自動化装置（コンピュータ）において実行される。なお、例えば図２に示したような回路構成情報（本発明が適用される前の回路構成情報）がすでに設計自動化装置の記憶装置に格納されているものとする。
【００５９】
記憶装置に格納されている回路構成情報（例えば回路接続情報と素子情報を含む）に基づき、テスト対象となる回路部とテスト対象から外す回路部とに分ける。前述したように、例えば遅延テストにおいて、テスト対象のパスは、観測パスよりなる。また、前述したように、テスト対象から外されるパスは観測禁止パスよりなり、具体的には、
・不定値が伝播するパス、あるいは、
・遅延テストを行なう場合に、実動作で使用されないパス、あるいは遅延的に遅く変化しても問題のないパス等からなる。
【００６０】
ステップ４０１において、観測パスを示すフラグである観測パスフラグ（ＣＰＦ）を０に初期化する。具体的には、設計自動化装置を構成する計算機上で、記憶装置から読み出した回路構成情報のうち、観測パスに該当するパスの観測パスフラグ（ＣＰＦ）を０に設定する。ＣＰＦが値０のパスは、当該パスを、観測しない（テストしない）ことに対応する。観測パスフラグは、パスの属性情報として記憶管理される。
【００６１】
次のステップ４０２では、観測パス（「ＣＰ」ともいう）上の素子の観測パスフラグ（ＣＰＦ）を１に設定する。具体的には、記憶装置から読み出した回路構成情報のうち、観測パス上の素子の属性情報として設けられた観測パスフラグ（ＣＰＦ）を値１に設定する。すなわち、ＣＰＦ＝１は「観測する」に設定する。
【００６２】
次のステップ４０３では、観測禁止パスを示すフラグである観測禁止パスフラグ（ＦＰＦ）を０に初期化する。記憶装置から読み出した回路構成情報上の全素子の観測禁止パスフラグ（ＦＰＦ）を０に設定する。ＦＰＦ＝０は、「観測禁止としない」ことに対応する。
【００６３】
ステップ４０４乃至ステップ４１１の処理は、基本的に、回路構成情報上の全ての観測禁止パス分だけ、繰り返される処理である。
【００６４】
まず、ステップ４０４では、回路構成情報上の全ての観測禁止パスに対して、処理が終了したか否か判定する。回路構成情報上の全ての観測禁止パスに対して処理が終了した場合には、処理を終了する。
【００６５】
ステップ４０５では、観測禁止パス（「ＦＰ」ともいう）上の素子に対して、観測禁止パスフラグ（ＦＰＦ）を１に設定する。ＦＰＦ＝１は、「観測禁止とする」ことに対応する。
【００６６】
次のステップ４０６では、観測禁止パス（ＦＰ）の始点に位置するフリップフロップが、観測パス（ＣＰ）の始点になっていないか（該フリップフロップの観測パスフラグＣＰＦが０であるか）否か判定する。
【００６７】
ステップ４０６において、観測禁止パスの始点のフリップフロップが観測パスの始点でない場合（ＣＰＦ＝０）には（ステップ４０６のＹＥＳ分岐）、この観測禁止パス（ＦＰ）の始点に位置するフリップフロップの状態を、固定値に設定することで、該観測禁止パス（ＦＰ）の論理動作を固定することが可能である。このため、ステップ４１０に進み、該観測禁止パス（ＦＰ）の始点のフリップフロップを、不定制御フリップフロップとして登録する。
【００６８】
一方、ステップ４０６において、観測禁止パス（ＦＰ）の始点のフリップフロップの観測パスフラグＣＰＦが値１である場合には、ステップ４０７に進む。
【００６９】
ステップ４０７では、ステップ４０６で判定が行われた当該観測禁止パス（ＦＰ）をカットすることが可能なフリップフロップを検索する。すなわち、観測パスフラグ（ＣＰＦ）が１の素子が接続される観測パスを切断せず、当該観測禁止パス（ＦＰ）の該フリップフロップに到達するまでのパスを、途中で切断する設定が可能なフリップフロップが存在するか否かを検証するため、回路構成情報を検索する。
【００７０】
ステップ４０８において、観測パスを切断せず、観測禁止パス（ＦＰ）を途中で切断する設定が可能なフリップフロップが存在する場合には、ステップ４１１に進み、このフリップフロップを、不定制御フリップフロップとして登録する。
【００７１】
一方、ステップ４０８において、観測パスを切断せず、観測禁止パス（ＦＰ）を途中で切断する設定が可能なフリップフロップが存在しない場合には、ステップ４０９に進み、観測禁止パスをカットするための回路変更等を行う。
【００７２】
なお、上記したステップ４０７の処理の一例としては、観測禁止パスフラグ（ＦＰＦ＝１）のみが存在する素子、あるいは観測禁止パスフラグ（ＦＰＦ＝１）のパスと、観測パスフラグ（ＣＰＦ＝１）の交わる素子の始点となるフリップフロップであって、観測パスフラグが設定されていないものを検索し、該フリップフロップの出力値に固定値を設定することで、観測禁止パスにおける不定値の伝播が止まるか否かを検証するようにしてもよい。
【００７３】
また、ステップ４０８での判定結果が「ＮＯ」の場合（したがって、ステップ４０６の判定結果もＮＯ）、ステップ４０９では、論理的に、観測禁止パスを切断可能なように素子を追加する処理が行われる。例えば図８に示したように、制御回路が追加される。ただし、この場合、前述したように、回路オーバーヘッドが増大するため、観測パスを一部除外して、ステップ４０１から、処理全体をやり直すようにしてもよい。観測パスを減らし、逆に、観測禁止パスを増やすことで、観測パスへの不定値の伝播を抑制する制御を行う不定制御フリップフロップの候補の数が増え、また、観測禁止パス（ＦＰ）を途中で切断する設定が可能なフリップフロップの候補も増える可能性があるためである。
【００７４】
次に、図１を参照して、図４に示した処理手順の適用例について具体的に説明する。
【００７５】
遅延テストを行う場合、観測パス（ＣＰ）を１１１と１１３とし、観測禁止パス（ＦＰ）を１１０と１１２とする。
【００７６】
まず、ステップ４０１では、観測パスフラグ（ＣＰＦ）を、図１の回路中の全素子（回路構成情報中の全素子）に対して、初期化し、ＣＰＦ＝０とする（すなわち「観測しない」に設定する）。
【００７７】
次のステップ４０２では、パス１１３上の素子とパス１１１上の素子の観測パスフラグ（ＣＰＦ）を１に設定する（すなわち「観測する」に設定する）。
【００７８】
つづいて、ステップ４０３において、図１の回路全体の観測禁止パスフラグ（ＦＰＦ）を０に初期化する。
【００７９】
図１に示す回路において、観測禁止パス（ＦＰ）は、１１２と１１０の２つであるが、処理を開始した時点では、観測禁止パスの処理は終了していないことから、ステップ４０４の判定結果は「ＮＯ」となり、ステップ４０５に進む。
【００８０】
ステップ４０５では、まず、観測禁止パス１１２に対する処理を行う。すなわち、ステップ４０５では、観測禁止パス１１２上の素子の観測禁止パスフラグ（ＦＰＦ）を１にする。
【００８１】
つづいて、ステップ４０６の判定を行う。観測禁止パス１１２の始点のフリップフロップは、１０６である。このフリップフロップ１０６は、観測パスフラグ（ＣＰＦ）の値０である。このため、ステップ４０６の判定結果は、「ＹＥＳ」となり、ステップ４１０に進む。ステップ４１０では、フリップフロップ１０６を不定制御フリップフロップとして登録する。
【００８２】
次に、再度、ステップ４０３に戻り、図１の回路内の全素子の観測禁止パスフラグ（ＦＰＦ）を０に初期化する。
【００８３】
ステップ４０４の判定が行われる。まだ、観測禁止パス１１０に対する処理が終了していないため、ステップ４０５に進む。
【００８４】
ステップ４０５では、観測禁止パス１１０上の素子に対し、観測禁止パスフラグ（ＦＰＦ）が１に設定される。
【００８５】
つづいて、ステップ４０６で判定が行なわれる。この場合、観測禁止パス１１０の始点のフリップフロップは１０４である。このフリップフロップ１０４は、観測パスフラグ（ＣＰＦ）の値が１となっているため、ステップ４０６の判定結果は「ＮＯ」となり、ステップ４０７に進む。
【００８６】
ステップ４０７では、観測禁止パス１１０をカット可能なフリップフロップが存在するか否か回路内を検索する。図１に示す回路では、フリップフロップ１０３は、観測パスフラグ（ＣＰＦ）が０であるフリップフロップ（観測対象でない）である。そして、このフリップフロップ１０３は、出力値を０に設定することで、観測禁止パス１１０をカットすることが可能なフリップフロップとして求まる。
【００８７】
つづいて、ステップ４０８の判定に進む。フリップフロップ１０３が、条件を満たすフリップフロップ（観測禁止パス（ＦＰ）１１０をカットすることができるフリップフロップ）として存在するため、ステップ４１１に進む。ステップ４１１では、フリップフロップ１０３を不定制御フリップフロップとして登録する。
【００８８】
つづいて、ステップ４０３に戻り、ステップ４０４に進むが、この時点では、全観測禁止パスの処理が終了しているため、処理を終了する。
【００８９】
以上は、遅延テストに関する処理の説明であるが、論路動作試験（ファンクショナルテスト）について、同様に処理をすることが可能である。
【００９０】
図１において、ＲＡＭ１２０がテスト中に不定状態となるような回路である場合、ＲＡＭ１２０を始点としてフリップフロップに到達する全パスを観測禁止パスとして扱う。図１では、ＲＡＭ１２０からの出力としては、ＯＲ回路１２１を介してフリップフロップ１２４に至るパスのみが存在するため、ＲＡＭ１２０からＯＲ回路１２１を介してフリップフロップ１２４に至るパスを観測禁止パスとする。
【００９１】
この場合は、ＲＡＭ１２０が始点となるが、フリップフロップではないため、図４のステップ４０６の判定は「ＮＯ」となる。
【００９２】
図４のステップ４０７の処理（観測禁止パスをカット可能なフリップフロップの検索）では、
・フリップフロップ１０８が観測パスフラグを持たず（観測パスフラグＣＰＦは０）、且つ、
・フリップフロップ１０８の出力値を１に固定することで、ＲＡＭ１２０から、ＯＲ回路１２１を介してフリップフロップ１２４に至るパスをカットすることが可能である、
ため、フリップフロップ１０８が、不定制御フリップフロップとして登録される。
【００９３】
図１に示す回路構成の場合、フリップフロップ１０３、１０６、１０８を不定制御フリップフロップとして、その他のフリップフロップとは、別のスキャンチェインにして制御している。そして、この、スキャンチェインは、テスト中は、常に固定値を保つ必要がある。このように、テスト中に固定値を設定する必要のあるスキャンチェインを、本明細書では、スキャンパス用のチェインと区別するため、「スキャンチェインＣ」と呼ぶ。
【００９４】
本実施例において、スキャンチェインＣを、他のスキャンチェインの動作と分離して、固定値を設定するための構成として、例えば図５に示すような構成を用いることができる。
【００９５】
図５（Ａ）において、６０３、６０４、６０５は、通常のスキャンパスを形成するフリップフロップ（ＮＳ１、ＮＳ２、ＮＳ３）であり、６０１は、外部クロック入力端子（ＣＬＫ＿Ｎ）であり、６０２は、スキャン入力端子（ＳＩＮ＿Ｎ）である。
【００９６】
図５（Ｂ）において、６０８、６０９、６１０は、不定制御フリップフロップ（ＣＳ１、ＣＳ２、ＣＳ３）であり、６０６は、外部クロック入力端子（ＣＬＫ＿Ｎ）とは別の外部クロック入力端子（ＣＬＫ＿Ｃ）であり、６０７は、スキャン入力端子（ＳＩＮ＿Ｃ）である。すなわち、不定制御フリップフロップ６０８、６０９、６１０をシリアルに接続して形成されるチェインが、スキャンチェインＣである。
【００９７】
本実施例では、外部クロック入力端子（ＣＬＫ＿Ｃ）６０６を、他のスキャンチェイン（図５（Ａ）参照）のフリップフロップを駆動するクロック（ＣＬＫ＿Ｎ）とは別にしているため、テストの前に、スキャンチェインＣに固定値を設定し、その後に、クロック（ＣＬＫ＿Ｃ）の動作を停止することで、対応可能である。図５（Ａ）のスキャンチェインのフリップフロップ６０３、６０４、６０５と、図５（Ｂ）のスキャンチェインＣの不定制御フリップフロップ６０８、６０９、６１０には、別々のクロックが供給される。同一クロックをゲート制御することで、スキャンチェインＣに供給するクロックを停止する制御を行うことも可能ではあるが、この場合、クロックのタイミング調整等が面倒、困難となる。
【００９８】
図６は、本発明の別の実施例の構成を示す図である。図６（Ａ）において、７０３、７０４、７０５はフリップフロップ（ＮＳ１、ＮＳ２、ＮＳ３）であり、７０１は、スキャンモードと通常モードとを切り替える制御信号の外部入力端子（ＳＭＣ＿Ｎ）であり、７０２はスキャン（シリアル）入力端子（ＳＩＮ＿Ｎ）である。
【００９９】
図６（Ｂ）において、７０８、７０９、７１０は不定制御フリップフロップ（ＣＳ１、ＣＳ２、ＣＳ３））であり、７０６は、スキャンモードと通常モードの切り替える制御信号の外部入力端子（ＳＭＣ＿Ｃ）であり、７０７はスキャン入力端子（ＳＩＮ＿Ｃ）である。７１１、７１２はインバータである。７１３と７１５はＡＮＤゲートであり、７１４はＯＲゲートである。
【０１００】
図６（Ｂ）において、ＡＮＤゲート７１３、ＯＲゲート７１４、ＡＮＤゲート７１５とは、いずれも２入力とし、一方の入力端子は、不定制御フリップフロップ７０８、７０９、７１０のデータ出力端子（Ｑ）に接続されている。図６（Ｂ）に示す例では、ＡＮＤゲート７１３、ＯＲゲート７１４、ＡＮＤゲート７１５の他方の入力端子には、不定値が伝播するものとする。
【０１０１】
図６に示すように、本実施例は、図５のように、スキャンチェインＣと他のスキャンチェインのクロックを別にできない場合に有効である。すなわち、図６に示す構成では、図６（Ｂ）のスキャンチェインＣと、図６（Ａ）に示したその他のスキャンチェインは、共通のクロックが供給される。
【０１０２】
この場合、フリップフロップを通常モードにすると、フリップフロップは、データ入力端子（Ｄ）から値を取り込んでしまうが、スキャンモードを保ち続け、スキャン入力端子（ＳＩＮ＿Ｃ）７０７に、固定値を入力すると、スキャンチェインＣ上の各フリップフロップ７０８、７０９、７１０には、固定値が設定される。
【０１０３】
テスト時に、スキャン入力端子（ＳＩＮ＿Ｃ）７０７に与える固定値が０の場合は、データ出力端子（Ｑ）から０を設定する必要がある不定制御フリップフロップには、スキャン入力端子（ＳＩＮ＿Ｃ）７０７から、該フリップフロップに至るスキャンチェイン上の経路の論理反転回数（インバータの段数）が偶数回になるように構成し、データ出力端子（Ｑ）に１を設定する必要がある不定制御フリップフロップには、スキャン入力端子（ＳＩＮ＿Ｃ）７０７から、該フリップフロップに至るスキャンチェイン上の経路の論理反転回数（インバータの段数）が奇数回になるように構成すればよい。
【０１０４】
図６（Ｂ）では、ＡＮＤゲート７１３、ＯＲゲート７１４、ＡＮＤゲート７１５の他方の入力端子には、不定値が伝播されるが、この場合、フリップフロップ７０８の出力を０、フリップフロップ７０９の出力を１、フリップフロップ７１０の出力を０に保つことで、ＡＮＤゲート７１３、ＯＲゲート７１４、ＡＮＤゲート７１５はそれぞれ固定値０、１、０を出力する。これにより、不定制御フリップフロップ７０８−７１０は、ＡＮＤゲート７１３、ＯＲゲート７１４、ＡＮＤゲート７１５において、不定値の伝播を停止することが可能である。
【０１０５】
本実施例において、スキャン入力端子（ＳＩＮ＿Ｃ）７０７に印加する固定値を０とすると、フリップフロップ７０８の出力は０に固定するため、フリップフロップ７０８の出力までのスキャンチェイン上で偶数回の反転になるように調整すればよい。ここでは、０回の反転で構成されている。フリップフロップ７０９の出力を１に固定するため、フリップフロップ７０９の出力までのスキャンチェイン上で奇数回の反転になるように調整するため、インバータ７１１を挿入し１回論理を反転させている。
【０１０６】
フリップフロップ７１０の出力を０に固定するため、フリップフロップ７１０の出力までのスキャンチェイン上で偶数回の反転になるように調整するため、インバータ７１２を挿入し、２回反転させている。
【０１０７】
図７は、図６に示した本実施例の構成を、図１に示した回路構成に適用した一例を示す図である。図７は、図１において、テスト時に、クロックがスキャンチェインＣとその他のスキャンチェインで共通になっている場合の構成を示している。
【０１０８】
図７に示す例では、スキャンモードと通常動作モードを切替制御する制御信号を入力するスキャンモード制御端子（ＳＭＣ）として、スキャンチェインＣ用のスキャンモード制御端子（ＳＭＣ＿Ｃ）１３１と、その他のスキャンチェイン用のスキャンモード制御端子（ＳＭＣ＿Ｎ）１３２と分けて設けている。図７に示す例では、スキャンチェインＣと他のスキャンチェインのクロック信号は共通としている。
【０１０９】
不定値のテスト対象パスへの伝播抑止のため、不定制御フリップフロップ１０３は、データ出力端子（Ｑ）を値０に設定することが必要とされ、不定制御フリップフロップ１０６は固定値であれば特に値は要求されていず、不定制御フリップフロップ１０８はデータ出力端子（Ｑ）を値１に設定することが必要とされる。
【０１１０】
以下では、スキャン入力端子（ＳＩＮ＿Ｃ）１０１に固定値０を与える場合について説明する。この場合、フリップフロップ１０３の出力に至るシリアルチェーン上の論理反転回数は、偶数回に設定する必要があるため、反転回数は０とし、何も挿入されていない。
【０１１１】
フリップフロップ１０８の出力に至るシリアルチェーン上の論理反転回数は、奇数回に設定する必要があるため、反転回数を１として、インバータ８０１が挿入されている。
【０１１２】
図７に示した構成によれば、スキャンチェインＣのクロックが停止状態でなくとも、スキャンモード制御端子（ＳＭＣ＿Ｃ）１３１を、スキャンモードに固定することにより、スキャンチェインＣ上のフリップフロップ１０３、１０６、１０８の出力値を、不定値を伝播させないように、固定することが可能である。
【０１１３】
なお、図１の説明では、スキャン入力端子（ＳＩＮ＿Ｃ）１０１、スキャン入力端子（ＳＩＮ＿Ｎ１）１０２、スキャン出力端子（ＳＯＵＴ＿Ｃ）１０９、スキャン出力端子（ＳＯＵＴ＿Ｎ２）１２５、スキャン入力端子（ＳＩＮ＿Ｎ２）１２７、スキャン出力端子（ＳＯＵＴ＿Ｎ１）１２６は、半導体集積回路装置の外部端子（ピン）であってもよく、あるいは、チップ内の接続パッドであってもよい。例えば、図３に示した圧縮器３０５をチップ内に備えている場合、出力側のスキャンチェインの出力をシリアルに出力するスキャン出力端子（ＳＯＵＴ＿Ｎ２）１２５は外部端子ではなくチップ内に設けられる。この場合、スキャン入力端子（ＳＩＮ＿Ｎ１）１０２に、チップ内部で生成した擬似ランダムパタンをシリアルに供給する構成としてもよい。一方、スキャン入力端子（ＳＩＮ＿Ｎ１）１０２、スキャン出力端子（ＳＯＵＴ＿Ｎ２）１２５、スキャン入力端子（ＳＩＮ＿Ｃ）１０１等を外部端子として設ける場合、図示されないＬＳＩテスタからのパタンがスキャン入力端子（ＳＩＮ＿Ｎ１）１０２にシリアルに入力され、スキャン出力端子（ＳＯＵＴ＿Ｎ２）１２５からのシリアル出力が、ＬＳＩテスタのコンパレータに供給され、期待値と比較される。また、図５のクロック端子６０１、６０６、図６のスキャンモード制御端子７０１、７０６についても同様に、半導体集積回路装置の外部端子（ピン）であってもよく、あるいは、チップ内の接続パッドであってもよい。
【０１１４】
以上、本発明を上記実施例に即して説明したが、本発明は、上記実施例の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施の形態に係る回路構成の一例を示す図である。
【図２】本発明を適用しない場合の比較例を示す図である。
【図３】圧縮回路を備えた構成の一例を示す図である。
【図４】本発明の回路を自動設計するための処理手順の一実施例を示す流れ図である。
【図５】本発明の一実施例のクロック制御を示す図である。
【図６】本発明の他の実施例の制御方式を示す図である。
【図７】本発明の他の実施例の制御方式を適用した構成回路の一例を示す図である。
【図８】不定値のスキャンチェインへの伝播を制御回路により抑止する構成を説明するための図である。
【図９】特許文献２（第１図）に記載された構成を示す図である。
【符号の説明】
【０１１６】
２  フリップフロップ
１０  ＲＡＭ
１２、１３、１４、２１、２２  スキャンパス
４０  組み合わせ回路
１０１  スキャン入力端子
１０２  スキャン入力端子
１０３−１０８  フリップフロップ
１０９  スキャン出力端子
１１０、１１２  観測禁止パス
１１１、１１３  観測パス
１１４、１１５、１１６、１１７、１１８  組み合わせ回路
１１９  セレクタ
１２０  ＲＡＭ
１２１  ＯＲ回路
１２２−１２４  フリップフロップ
１２５、１２６  スキャン出力端子
１２７  スキャン入力端子
１３１、１３２  スキャンモード制御端子
２０１、２０３  スキャン入力端子
２０２、２０４  スキャン出力端子
３０１−３０４  スキャンチェイン
３０５  圧縮器
３１１−３１５  排他的論理和回路
３０６−３０９  Ｄ型フリップフロップ
５０１、５０２、５０３  ＡＮＤ回路
６０３−６０５、６０８−６１０  フリップフロップ
６０１、６０６  クロック入力端子
６０２、６０７、７０２、７０７  スキャン入力端子
７０１、７０６  スキャンモード制御端子
７０３−７０５、７０８−７１０  フリップフロップ
７１１、７１２  インバータ
７１３、７１５  ＡＮＤゲート
７１４  ＯＲゲート
８０１  インバータ
【図１】
2005308500.tif 000003
【図２】
2005308500.tif 000004
【図３】
2005308500.tif 000005
【図４】
2005308500.tif 000006
【図５】
2005308500.tif 000007
【図６】
2005308500.tif 000008
【図７】
2005308500.tif 000009
【図８】
2005308500.tif 000010
【図９】
2005308500.tif 000011