(57)【要約】【課題】スキャンシフトの動作速度をより高速化する。【解決手段】フリップフロップ２０１〜２０６は、スキャンパス用のシフトレジスタを構成する。シフトモード動作時において、フリップフロップ２０１、２０３、２０５のクロック端子には、クロック信号ＣＬＫが供給され、フリップフロップ２０２、２０６のクロック端子には、クロック信号ＣＬＫを反転クロック制御回路３０３によって逆相にされた信号が供給され、セットアップ時間に余裕がないフリップフロップ２０４のクロック端子には、正転／反転クロック制御回路４０４によってクロック信号ＣＬＫと同相の信号が供給される。【選択図】図５
2011002261.tif 000002
【特許請求の範囲】
【請求項１】
スキャンパス用のシフトレジスタと、
シフトモード動作時において、前記シフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給し、さらに少なくとも１組の隣り合う前記フリップフロップのそれぞれに対しては１周期ずれたクロック信号を供給可能とするクロック信号供給部と、
を備えることを特徴とするスキャンテスト回路。
【請求項２】
前記クロック信号供給部は、それぞれの前記フリップフロップに対し、１個おきに正相と逆相のクロック信号を供給し、さらに少なくとも３個の連続する前記フリップフロップに同相のクロック信号を供給可能とするように構成されることを特徴とする請求項１記載のスキャンテスト回路。
【請求項３】
前記クロック信号供給部は、前記フリップフロップに対して供給するクロック信号が正相のクロック信号であるか逆相のクロック信号であるかを判別する判別データを保持するシフトレジスタを備え、前記保持している判別データに基づいてクロック信号の供給を制御することを特徴とする請求項１または２記載のスキャンテスト回路。
【請求項４】
前記シフトレジスタは、前記判別データを外部から設定可能であるように構成されることを特徴とする請求項３記載のスキャンテスト回路。
【請求項５】
前記クロック信号供給部は、サンプルモード動作時において、それぞれの前記フリップフロップに対し、同相のクロック信号を供給可能とするように構成されることを特徴とする請求項１記載のスキャンテスト回路。
【請求項６】
スキャンパス用のシフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給するように構成するステップと、
スキャンシフト動作時に前記フリップフロップのセットアップ時間が不足しているか否かを確認するステップと、
前記セットアップ時間が不足しているフリップフロップが１つ以上存在したときに、前記セットアップ時間が不足しているフリップフロップのシフト動作を制御するためのクロック信号を発生する正転／反転クロック制御回路を挿入し、前記セットアップ時間が不足しているフリップフロップの制御信号を前記正転／反転クロック制御回路の出力と入れ替えるステップと、
を含むことを特徴とするスキャンテスト回路の設計方法。
【請求項７】
前記確認するステップにおいて、前記セットアップ時間が不足するフリップフロップが複数存在した場合に、前記正転／反転クロック制御回路の制御情報を保持するシフトレジスタを挿入するステップを、前記入れ替えるステップの前に含むことを特徴とする請求項６記載のスキャンテスト回路の設計方法。
【請求項８】
前記スキャンテスト回路のレイアウト後に再度タイミング検証を行うステップと、
前記タイミング検証の結果に基づいて、前記正転／反転クロック制御回路の出力を変更するステップと、
をさらに含むことを特徴とする請求項７記載のスキャンテスト回路の設計方法。
【請求項９】
回路設計装置を構成するコンピュータに、
スキャンパス用のシフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給するように構成する処理と、
スキャンシフト動作時に前記フリップフロップのセットアップ時間が不足しているか否かを確認する処理と、
前記セットアップ時間が不足しているフリップフロップが１つ以上存在したときに、前記セットアップ時間が不足しているフリップフロップのシフト動作を制御するためのクロック信号を発生する正転／反転クロック制御回路を挿入し、前記セットアップ時間が不足しているフリップフロップの制御信号を前記正転／反転クロック制御回路の出力と入れ替える処理と、
を実行させるプログラム。
【請求項１０】
前記確認する処理において、前記セットアップ時間が不足するフリップフロップが複数存在した場合に、前記正転／反転クロック制御回路の制御情報を保持するシフトレジスタを挿入する処理を、前記入れ替える処理の前に実行させることを特徴とする請求項９記載のプログラム。
【請求項１１】
前記スキャンテスト回路のレイアウト後に再度タイミング検証を行う処理と、
前記タイミング検証の結果に基づいて、前記正転／反転クロック制御回路の出力を変更する処理と、
をさらに実行させることを特徴とする請求項１０記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャンテスト回路、その設計方法、およびプログラムに関し、特に、スキャンシフト動作における高速化技術に係る。
【背景技術】
【０００２】
半導体集積回路装置のテスト方法のひとつとして、スキャンテストが知られている。スキャンテストは、シフトレジスタで構成されるスキャンテスト回路（単にスキャン回路ともいう）にテストデータを並列的に取り込んで（サンプルモード動作、スキャンキャプチャ動作）、取り込んだテストデータを直列にシフトして出力する（シフトモード動作、スキャンシフト動作）ことで実行される。
【０００３】
近年、半導体集積回路装置の回路規模の増大に伴ってスキャンテストにおけるテスト時間がより長くなってきている。そこでテストにおけるコスト削減のためにテスト時間の短縮が求められている。スキャンテストにおけるテスト時間を短くするためには、シフトモード動作においてシフトレジスタを駆動するクロック信号の周波数をより高くすることが好ましい。しかしながら、クロック信号の周波数を高くしていった場合、消費電流が増大すると共に、高いクロック信号が供給されるために動作が徐々に不安定になる虞が高まる。
【０００４】
そこで、シフトレジスタを構成するフリップフロップにおいて、クロック信号の立ち上がりエッジで動作するフリップフロップとクロック信号の立ち下がりエッジで動作するフリップフロップとを交互に配置してシフト動作させることで、クロック信号の周波数を１／２とする技術が知られている（特許文献１〜３参照）。このような技術によれば、消費電流が抑制されると共に、隣り合うフリップフロップは、互いに異なるクロックエッジによって動作するために動作の安定性が高まる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−６９９３１号公報
【特許文献２】特開平９−３２０２９０号公報
【特許文献３】特許第２５７６６５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は本発明において与えられる。
【０００７】
ところで、シフトレジスタを駆動するクロック信号の周波数をより高めていった場合、シフトレジスタを構成するフリップフロップの内、セットアップ時間に余裕がないフリップフロップにおいて、セットアップ時間が不足し、動作が不安定となって正しいデータを転送できなくなる。そして、これ以上、スキャンシフトの動作速度を高速化することはできなくなってしまう。
【課題を解決するための手段】
【０００８】
本発明の１つのアスペクト（側面）に係るスキャンテスト回路は、スキャンパス用のシフトレジスタと、シフトモード動作時において、シフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給し、さらに少なくとも１組の隣り合うフリップフロップのそれぞれに対しては１周期ずれたクロック信号を供給可能とするクロック信号供給部と、を備える。
【０００９】
本発明の他のアスペクト（側面）に係るスキャンテスト回路の設計方法は、スキャンパス用のシフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給するように構成するステップと、スキャンシフト動作時にフリップフロップのセットアップ時間が不足しているか否かを確認するステップと、セットアップ時間が不足しているフリップフロップが１つ以上存在したときに、セットアップ時間が不足しているフリップフロップのシフト動作を制御するためのクロック信号を発生する正転／反転クロック制御回路を挿入し、セットアップ時間が不足しているフリップフロップの制御信号を正転／反転クロック制御回路の出力と入れ替えるステップと、を含む。
【００１０】
本発明のさらに他のアスペクト（側面）に係るプログラムは、回路設計装置を構成するコンピュータに、スキャンパス用のシフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給するように構成する処理と、スキャンシフト動作時にフリップフロップのセットアップ時間が不足しているか否かを確認する処理と、セットアップ時間が不足しているフリップフロップが１つ以上存在したときに、セットアップ時間が不足しているフリップフロップのシフト動作を制御するためのクロック信号を発生する正転／反転クロック制御回路を挿入し、セットアップ時間が不足しているフリップフロップの制御信号を正転／反転クロック制御回路の出力と入れ替える処理と、を実行させる。
【発明の効果】
【００１１】
本発明によれば、スキャンシフトの動作速度をより高速化することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施例に係るスキャンテスト回路の設計方法を表すフローチャートである。
【図２】本発明のプログラムを実行するためのシステムの構成図である。
【図３】本発明の第１の実施例に係るスキャン挿入回路の回路図である。
【図４】本発明の第１の実施例に係る反転クロック制御回路挿入回路の回路図である。
【図５】本発明の第１の実施例に係る正転／反転クロック制御回路挿入回路の回路図である。
【図６】正転／反転クロック制御回路挿入回路の動作を示すタイミングチャートである。
【図７】本発明の第２の実施例に係るスキャンテスト回路の設計方法を表すフローチャートである。
【図８】本発明の第２の実施例に係る正転／反転クロック制御回路挿入回路の回路図である。
【発明を実施するための形態】
【００１３】
本発明の実施形態に係るスキャンテスト回路は、スキャンパス用のシフトレジスタと、シフトモード動作時において、シフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給し、さらに少なくとも１組の隣り合うフリップフロップのそれぞれに対しては１周期ずれたクロック信号を供給可能とするクロック信号供給部と、を備える。
【００１４】
スキャンテスト回路において、クロック信号供給部は、それぞれのフリップフロップに対し、１個おきに正相と逆相のクロック信号を供給し、さらに少なくとも３個の連続するフリップフロップに同相のクロック信号を供給可能とするように構成されることが好ましい。
【００１５】
スキャンテスト回路において、クロック信号供給部は、フリップフロップに対して供給するクロック信号が正相のクロック信号であるか逆相のクロック信号であるかを判別する判別データを保持するシフトレジスタを備え、保持している判別データに基づいてクロック信号の供給を制御することが好ましい。
【００１６】
スキャンテスト回路において、シフトレジスタは、判別データを外部から設定可能であるように構成されることが好ましい。
【００１７】
スキャンテスト回路において、クロック信号供給部は、サンプルモード動作時において、それぞれのフリップフロップに対し、同相のクロック信号を供給可能とするが好ましい。
【００１８】
このようなスキャンテスト回路によれば、従来技術においてスキャンシフトの動作速度をセットアップ時間が不足しない速度までしか高速にできないという課題を解決することができる。その理由は、スキャンシフト動作のセットアップ時間が不足するフリップフロップに対して正転クロック信号／反転クロック信号（正相クロック信号／逆相クロック信号）どちらでも制御できる制御回路を挿入することで、セットアップ時間が不足するフリップフロップの動作を半サイクル動作から１サイクル動作への切り換えを可能とする。これによって、セットアップ時間が不足するフリップフロップにおいて、半サイクル分のセットアップ時間のマージンが追加されることで、セットアップ時間のマージンが高まる。１サイクル動作に切り換えたフリップフロップは低速動作となるが、それ以外のフリップフロップは、スキャンシフトの動作速度をより高速化することができる。したがって、スキャンテスト回路全体としては、従来技術に比べスキャンシフトの動作速度をより高速化することができる。
【００１９】
また、このようなスキャンテスト回路によれば、端子数の少ない半導体集積回路にも適用できる。その理由は、スキャンシフト動作のセットアップ時間が不足するフリップフロップが複数存在する場合に、クロック信号であるかを判別する判別データを保持するシフトレジスタを備えることで、正転／反転制御回路を制御する端子数を増やすことなく複数のフリップフロップのクロック信号を制御することができるためである。
【００２０】
以上のようなスキャンテスト回路は、以下のような設計方法によって設計するようにしても良い。また、回路設計装置を構成するコンピュータに、以下のような設計方法を実行させるプログラムとして提供されても良い。
【００２１】
本発明の実施形態に係るスキャンテスト回路の設計方法は、スキャンパス用のシフトレジスタを構成するフリップフロップの隣り合う２個のそれぞれに対し半周期ずれたスキャンシフト用のクロック信号を供給するように構成するステップと、スキャンシフト動作時にフリップフロップのセットアップ時間が不足しているか否かを確認するステップと、セットアップ時間が不足しているフリップフロップが１つ以上存在したときに、セットアップ時間が不足しているフリップフロップのシフト動作を制御するためのクロック信号を発生する正転／反転クロック制御回路を挿入し、セットアップ時間が不足しているフリップフロップの制御信号を正転／反転クロック制御回路の出力と入れ替えるステップと、を含む。
【００２２】
確認するステップにおいて、セットアップ時間が不足するフリップフロップが複数存在した場合に、正転／反転クロック制御回路の制御情報を保持するシフトレジスタを挿入するステップを、入れ替えるステップの前に含むことが好ましい。
【００２３】
スキャンテスト回路のレイアウト後に再度タイミング検証を行うステップと、タイミング検証の結果に基づいて、正転／反転クロック制御回路の出力を変更するステップと、をさらに含むことが好ましい。
【００２４】
以下、実施例に即し、図面を参照して詳しく説明する。
【実施例１】
【００２５】
図１は、本発明の第１の実施例に係るスキャンテスト回路の設計方法を表すフローチャートである。本設計方法は、スキャン回路を挿入するスキャン挿入回路ステップＳ０１と、スキャン回路の制御クロック信号を正転／反転クロック信号で一おきに制御するように変更する反転クロック制御回路挿入ステップＳ０２と、スキャン回路挿入後のタイミング確認を行うタイミング確認ステップＳ０３と、タイミング確認結果でセットアップ時間が不足していないか判定するステップＳ０４と、セットアップ時間が不足していたスキャン回路の制御を第三のクロック信号で行うように変更する反転／正転クロック制御回路挿入ステップＳ０５と、レイアウト処理を行うレイアウトステップＳ０６と、レイアウト処理後のタイミング確認を行うタイミング確認ステップＳ０７と、セットアップ時間が不足していないか判定するステップＳ０８と、ステップＳ０８でセットアップ時間が不足していた場合にＣｌｋＣｔｒｌ制御信号情報を更新するステップＳ０９とを含む。
【００２６】
上述の各処理は、コンピュータにスキャンテスト回路の設計用プログラムを実行させることで実現されるようにしてもよい。図２は、本発明のプログラムを実行するためのシステムの構成図であり、コンピュータ装置１０４とサーバ１０２とがネットワーク１０３を介して接続される。記録媒体１０１は、設計用プログラムおよび各処理情報を保持するためにサーバ１０２に内蔵される。記録媒体１０１に格納されている設計用プログラムは、ネットワーク１０３を介してコンピュータ装置１０４よって実行され、半導体集積回路の回路設計を行う。
【００２７】
図３は、ステップＳ０１で生成されるスキャン挿入回路Ｄ０１の回路図である。図３に示すスキャン挿入回路Ｄ０１は、６つのフリップフロップ２０１〜２０６から構成され、これらのフリップフロップのデータ入力端子ＤＩは、テスト対象とされる組み合わせ回路Ｌｇがそれぞれ接続される。フリップフロップ２０１の入力端子ＳＩにはスキャンイン信号ＳＩＮが入力され、フリップフロップ２０１〜２０５の出力端子は、それぞれフリップフロップ２０２〜２０６の入力端子ＳＩに接続される。フリップフロップ２０６の出力端子からは、スキャンテスト結果を表す出力信号ＳＯＵＴが出力される。また各フリップフロップのクロック端子には、クロック信号ＣＬＫが入力される。
【００２８】
図４は、ステップＳ０２で生成される反転クロック制御回路挿入回路Ｄ０３の回路図である。図４は、図３のスキャン挿入回路Ｄ０１に対して反転クロック制御回路３０３を付加する。フリップフロップ２０１、２０３、２０５のクロック端子には、クロック信号ＣＬＫが入力され、フリップフロップ２０２、２０４、２０６のクロック端子は、反転クロック制御回路３０３の出力に接続される。反転クロック制御回路３０３は、インバータ３０１と、セレクタ３０２とを備え、クロック信号ＣＬＫをインバータ３０１で反転した信号と、クロック信号ＣＬＫとをセレクタ３０２に入力し、動作モードを設定する信号ＳＭＣによっていずれかを選択し出力する。
【００２９】
ここで反転クロック制御回路３０３の動作について説明する。通常動作時およびスキャンキャプチャ動作時、つまりＳＭＣ信号が「０」レベルのとき、セレクタ３０２は、クロック信号ＣＬＫを選択して出力する。スキャンシフト動作時、つまりＳＭＣ信号が「１」レベルのとき、セレクタ３０２は、クロック信号ＣＬＫの極性を反転させるインバータ３０１を通過した信号を選択して出力する。すなわち、反転クロック制御回路挿入回路Ｄ０３の動作は、通常動作時およびスキャンキャプチャ動作時は、フリップフロップ２０１〜２０６は、正転クロック信号（正相クロック信号）で動作する。一方、スキャンシフト動作時において、フリップフロップ２０１、２０３、２０５は、正転クロック信号で動作し、フリップフロップ２０２、２０４、２０６は、反転クロック信号（逆相クロック信号）で動作する。
【００３０】
図５は、ステップＳ０５で生成される正転／反転クロック制御回路挿入回路Ｄ０４の回路図である。図５は、スキャンシフト動作のセットアップ時間が不足しないかを判別するステップＳ０４の判定において、スキャンシフト動作のセットアップ時間が不足したフリップフロップが、フリップフロップ２０４であった場合の例である。図５において、正転／反転クロック制御回路４０４は、図４の反転クロック制御回路３０３と同様の回路にさらにアンド回路４０３を追加した構成である。
【００３１】
正転／反転クロック制御回路４０４は、インバータ４０１と、セレクタ４０２と、アンド回路４０３とを備える。アンド回路４０３は、信号ＳＭＣと制御信号ＣｌｋＣｔｒｌを入力し、セレクタ４０２の選択制御端子に出力する。なお、制御信号ＣｌｋＣｔｒｌは、外部から制御することが可能である。セレクタ４０２は、クロック信号ＣＬＫをインバータ４０１で反転した信号と、クロック信号ＣＬＫとを入力し、信号ＳＭＣと制御信号ＣｌｋＣｔｒｌの論理積に応じていずれかを選択し、正転／反転クロック信号４０５を出力する。
【００３２】
ここで、正転／反転クロック制御回路４０４の動作を説明する。ＣｌｋＣｔｒｌ信号が「１」の状態では、通常動作時およびスキャンキャプチャ動作時、つまりＳＭＣ信号が「０」レベルのとき、セレクタ４０２は、クロック信号ＣＬＫを選択し、正転／反転クロック信号４０５として出力する。スキャンシフト動作時、つまりＳＭＣ信号が「１」レベルのときセレクタ４０２は、クロック信号ＣＬＫの極性を反転させるインバータ４０１を通過した信号を選択し、正転／反転クロック信号４０５として出力する。一方、ＣｌｋＣｔｒｌ信号が「０」の状態では、セレクタ４０２は、ＳＭＣ信号の値にかかわらず、強制的にクロック信号ＣＬＫをそのままの極性で正転／反転クロック信号４０５として出力する。
【００３３】
正転／反転クロック制御回路挿入回路Ｄ０４の動作は、クロック信号ＣＬＫとクロック信号ＣＬＫを反転した反転クロック信号とで１つおきに交互に制御しているフリップフロップ２０１〜２０６において、反転クロック信号で制御しているフリップフロップの１つであるフリップフロップ２０４が、セットアップ時間の不足した状態である場合を例として記載している。フリップフロップ２０１、２０３、２０５のクロック端子は、クロック信号ＣＬＫが入力され、フリップフロップ２０２、２０６のクロック端子は、反転クロック制御回路３０３の出力である反転クロック信号３０４が入力され、フリップフロップ２０４のクロック端子は、正転／反転クロック制御回路４０４の出力である正転／反転クロック信号４０５が入力される。
【００３４】
尚、セットアップ時間が不足するフリップフロップは１つ以上あってもよい。この場合、セットアップ時間が不足するフリップフロップのクロック端子は、前段のフリップフロップのクロック端子に供給されるクロック信号と同相のクロック信号を供給可能とするように構成すればよい。
【００３５】
以上の説明において、クロック信号ＣＬＫの供給部、反転クロック制御回路３０３、正転／反転クロック制御回路４０４がクロック信号供給部に相当する。
【００３６】
次に、図１のフローチャートの各ステップのそれぞれについて詳細に説明する。
【００３７】
最初に、ステップＳ０１において、テストのために挿入するスキャン回路を生成し、生成したスキャン回路のデータをスキャン挿入回路Ｄ０１として記録媒体１０１に保持する。また、生成したスキャン回路のスキャンチェーン数、スキャンパス上のフリップフロップの接続情報、スキャンクロック情報などを保存したスキャンチェーン情報Ｄ０２を記録媒体１０１に保持する。保存されたスキャン挿入回路Ｄ０１の構成例は、前述の図３に示すような回路とされる。
【００３８】
ステップＳ０２において、スキャン挿入回路Ｄ０１とスキャンチェーン情報Ｄ０２を記録媒体１０１から読み込み、クロックラインに図４に示すような反転クロック制御回路３０３を挿入した後、スキャンチェーン情報Ｄ０２から立ち下がりエッジで制御させるフリップフロップを抽出する。そして、抽出したフリップフロップのクロック入力を反転クロック制御回路３０３の出力である反転クロック信号へ接続を変更し、反転クロック制御回路挿入回路Ｄ０３を生成して記録媒体１０１に出力する。
【００３９】
次にステップＳ０３において、反転クロック制御回路挿入回路Ｄ０３を読み込み、タイミング検証を行う。
【００４０】
ステップＳ０４において、スキャンシフト動作のセットアップ時間が不足しているか否かを判定し、不足していなければ、ステップＳ０６に進む。
【００４１】
ステップＳ０４においてスキャンシフト動作のセットアップ時間が不足するフリップフロップが、１つでも存在する場合には、ステップＳ０５において正転クロック信号と反転クロック信号のどちらでも外部から制御可能な図５に示す正転／反転クロック制御回路４０４を挿入する。そしてその後に、スキャンシフト動作のセットアップ時間が不足するフリップフロップのクロック入力を、反転クロック制御回路３０３の出力である反転クロック信号３０４から正転／反転クロック制御回路４０４の出力である正転／反転クロック信号４０５に接続変更する。さらに、正転／反転クロック制御回路挿入回路Ｄ０４と正転／反転クロック信号４０５を強制的に正転クロック信号にするときは「０」とし、それ以外は「１」とする切り替換え情報であるＣｌｋＣｔｒｌ制御信号情報Ｄ０５生成して記録媒体１０１に出力すると共に、ステップＳ０６においてレイアウトを実施する。
【００４２】
以上のようにして設計されるスキャン回路において、通常動作時およびスキャンキャプチャ動作時は、フリップフロップ２０１〜２０６は、正転クロック信号で動作する。また、スキャンシフト動作時において、フリップフロップ２０１、２０３、２０５は、正転クロック信号で動作し、フリップフロップ２０２、２０６は、反転クロック信号で動作する。フリップフロップ２０４は、ＣｌｋＣｔｒｌ信号の値によって正転クロック信号と反転クロック信号のいずれかを選択して動作する。
【００４３】
次にステップＳ０７において、ＣｌｋＣｔｒｌ制御信号情報Ｄ０５を読み込み、タイミング検証を実施する。
【００４４】
ステップＳ０８において、タイミング検証の結果、スキャンシフト動作のセットアップ時間が不足しているか否かを判別し、不足していなければ回路設計を終了する。スキャンシフトのセットアップ時間が不足していれば、ステップＳ０９において正転クロック信号で制御されるようにＣｌｋＣｔｒｌ制御信号情報Ｄ０５を変更して出力し、回路設計を終了する。
【００４５】
以上のような設計方法によれば、スキャンシフト動作時に半サイクル動作をする反転クロック制御挿入回路のタイミング解析結果からセットアップ時間が不足するフリップフロップを抽出し、抽出したフリップフロップに対して正転／反転クロック制御回路を挿入する工程（ステップＳ０５）を追加する。この追加工程によって、半サイクル動作、１サイクル動作どちらでも制御することが可能となるスキャンテスト回路を生成する。
【００４６】
このようにして設計されるスキャンテスト回路は、スキャンシフト動作時に半サイクル動作させ、特定のフリップフロップにおいてセットアップ時間が不足しても、特定のフリップフロップのみの動作を半サイクル動作から１サイクル動作に制御を切り換える。このようなスキャンテスト回路によれば、スキャンテスト回路全体のスキャンシフトの動作速度をセットアップ時間が不足しない速度までしか上げることができないという従来の課題を解決することができる。この内容について、より詳細に説明する。
【００４７】
図６は、図５に示す回路の動作を示すタイミングチャートである。図５、図６において、クロック信号ＣＬＫ０５は、クロック信号ＣＬＫ０４の極性が反転したクロック信号である。
【００４８】
図６（Ａ）に示すように、半サイクル動作時は、正転／反転クロック制御回路挿入回路Ｄ０４のフリップフロップ２０３のクロック信号ＣＬＫ０３の立ち上がりエッジのタイミングＴ０１でデータ信号ＤＡＴＡ０１を出力し、データ信号ＤＡＴＡ０１はタイミングＴ０２において変化し、フリップフロップ２０４のクロック信号ＣＬＫ０４の立ち上がりエッジのタイミングＴ０４でデータ信号ＤＡＴＡ０１を受け取る。この場合、期間ｔｗ０１のセットアップ時間が不足すれば、タイミングＴ０２で変化したデータ信号ＤＡＴＡ０１をフリップフロップ２０４のクロック信号ＣＬＫ０４の立ち上がりエッジのタイミングＴ０４で受け取ることができない。
【００４９】
これに対し、図６（Ｂ）に示すように、半サイクル動作から１サイクル動作に切り替える切り換えることで、タイミングＴ０２で変化したデータ信号ＤＡＴＡ０１は、フリップフロップ２０４のクロック信号ＣＬＫ０４の立ち上がりエッジのタイミングＴ０４ではなく、ＣＬＫ０５の立ち上がりエッジのタイミングＴ０５で受け取ることになる。つまり、半サイクル動作では、期間ｔｗ０１のセットアップ時間が不足していたが、１サイクル動作に切り換えることで、半サイクル分のセットアップ時間のマージンが増え、期間ｔｗ０２のセットアップ時間のマージンが得られるようになる。この場合、フリップフロップ２０４は低速動作となる。しかし、それ以外のフリップフロップは、スキャンシフトの動作速度を遅くする必要がなく、動作速度をより速くすることができる。したがって、スキャン回路全体として、従来技術よりも高速なスキャンシフト動作が可能になる。
【００５０】
以上のように、半サイクル動作を１サイクル動作にすることによって得られるセットアップ時間のマージンに対して、反転クロック制御回路によって制御されているフリップフロップが、セットアップ時間の不足が発生しない限りにおいて、高速化に対応することが出来る。
【００５１】
ここで具体的な数値（数値は一例であり、限定されるものではない）を用いて上述を説明する。スキャンシフト動作速度１００ＭＨｚ（ただし内部は半サイクル動作のため２００ＭＨｚ動作している。）でタイミング検証を実施し、フリップフロップ２０４において１ｎｓのセットアップ時間の不足が発生したとする。このとき従来技術では、８３．３３ＭＨｚ（＝１／１２ｎｓ）までしかスキャンシフト動作を行うことができない。
【００５２】
本発明では、半サイクル動作から１サイクル動作に切り替えることでセットアップ時間のマージンが発生し、スキャンテスト回路としては、１００ＭＨｚでの動作が可能となる。さらにフリップフロップ２０４以外の反転クロック制御回路によって制御されているフリップフロップが２５０ＭＨｚまで動作可能であるとする。すなわち、内部では、半サイクル動作から１サイクル動作に切り換えることによってセットアップ時間のマージンが発生し、スキャンテスト回路としては、１００ＭＨｚでの動作が可能となり、さらにフリップフロップ２０４以外の、反転クロック制御回路によって制御されているフリップフロップが２５０ＭＨｚ（内部半サイクル動作速度）まで動作可能であった場合、スキャンシフト動作速度は１２５ＭＨｚで動作することが可能であることを意味する。
【００５３】
スキャンシフト動作に要する時間は、一般的に「スキャンチェーン長」×「周期」で表される。従来技術では、６個×６ｎｓ＝３６ｎｓかかる。これに対し、本発明では、５個が半サイクル動作で、１個が１サイクル動作であるため、５個×４ｎｓ＋１個×８ｎｓ＝２８ｎｓかかる。つまり従来技術と比較して、本発明では、約１．３倍高速化できることになる。
【実施例２】
【００５４】
図７は、本発明の第２の実施例に係るスキャンテスト回路の設計方法を表すフローチャートである。スキャンテスト回路のフリップフロップ群において、セットアップ時間の不足が発生するフリップフロップが複数存在した場合の設計方法の例である。図７において、ステップＳ１０以外の各ステップは、図１と同様の処理であり、これらの説明を省略する。
【００５５】
図７のステップＳ０４において、セットアップ時間が不足するフリップフロップが複数存在した場合、ステップＳ１０において、反転／正転クロック制御回路を制御するためのシフトレジスタ回路を挿入する。
【００５６】
図８は、セットアップ時間の不足するフリップフロップが３個と判定された場合の正転／反転クロック制御回路挿入回路Ｄ０６の回路例である。図８において、正転／反転クロック制御回路挿入回路Ｄ０６は、縦続接続されるフリップフロップ６０１〜６１３、反転クロック制御回路６１４、正転／反転クロック制御回路６１５、６１６、６１７、シフトレジスタ回路６１８を備える。
【００５７】
反転クロック制御回路６１４は、図５の反転クロック制御回路３０３と同様の回路であり、正転／反転クロック制御回路６１５、６１６、６１７は、図５の正転／反転クロック制御回路４０４と同様の回路である。
【００５８】
フリップフロップ６０１、６０３、６０５、６０７、６０９、６１１、６１３のクロック端子は、クロック信号ＣＬＫに接続され、フリップフロップ６０２、６０６、６１２のクロック端子は、反転クロック制御回路６１４の出力に接続される。また、フリップフロップ６０４のクロック端子は、正転／反転クロック制御回路６１５の出力に、フリップフロップ６０８のクロック端子は、正転／反転クロック制御回路６１６の出力に、フリップフロップ６１０のクロック端子は、正転／反転クロック制御回路６１７の出力に、それぞれ接続される。正転／反転制御回路６１５、６１６、６１７にそれぞれ内蔵されるアンド回路６１９、６２０、６２１は、それぞれシフトレジスタ回路６１８から出力されるクロック選択情報によって制御される。また、シフトレジスタ回路６１８は、ＣｌｋＣｔｒｌ端子を介して外部からクロック選択情報を設定できるように構成される。
【００５９】
本実施例のスキャンテスト回路によれば、セットアップ時間が不足するフリップフロップが複数存在する場合、これらのフリップフロップに対するクロック選択情報をシフトレジスタ回路６１８に保持しておき、シフトレジスタ回路６１８から並列的に与える。したがって、シフトレジスタ回路６１８に対してシリアルにクロック選択情報をセットするためのＣｌｋＣｔｒｌ信号の端子以外に、半導体装置の端子を特段増やすことなくスキャンテスト回路を構成することができる。
【００６０】
なお、前述の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６１】
１０１  記録媒体
１０２  サーバ
１０３  ネットワーク
１０４  コンピュータ装置
２０１〜２０６、６０１〜６１３  フリップフロップ
３０１、４０１  インバータ
３０２、４０２  セレクタ
３０３、６１４  反転クロック制御回路
４０３、６１９〜６２１  アンド回路
４０４、６１５〜６１７  正転／反転クロック制御回路
６１８  シフトレジスタ回路
【図１】
2011002261.tif 000003
【図２】
2011002261.tif 000004
【図３】
2011002261.tif 000005
【図４】
2011002261.tif 000006
【図５】
2011002261.tif 000007
【図６】
2011002261.tif 000008
【図７】
2011002261.tif 000009
【図８】
2011002261.tif 000010