(57)【特許請求の範囲】
【請求項１】
第１のクロックが供給される第１のクロックドメインと、
前記第１のクロックと、前記第１のクロックより周波数の高い第２のクロックと、切り替えて出力するクロック切り替え回路に接続された第２のクロックドメインと、
前記第２のクロックドメインの遅延テストに係るデータを取り込むためのスキャンフリップフロップに供給するクロックラインを遮断可能なクロック遮断回路と、を備える半導体集積回路の設計方法であって、
前記第１、第２のクロックドメインに配置された複数のスキャンフリップフロップのうち、前記第１のクロックのみで動作するスキャンフリップフロップを第１のグループ、前記クロック切り替え回路が出力するクロックで動作するスキャンフリップフロップを第２のグループ、前記第２のグループのスキャンフリップフロップであって、前記第１のスキャンフリップフロップからデータの転送がないスキャンフリップフロップを第３のグループ、とに振り分ける工程と、
前記第３のグループのうち一つのスキャンフリップフロップを挿入対象スキャンフリップフロップとし、前記挿入対象スキャンフリップフロップのクロックラインを入力側方向にトレースし、他のスキャンフリップフロップのクロック入力へ分岐する分岐点を検出する工程と、
前記分岐点に接続されているスキャンフリップフロップに第１のグループ又は第２のグループに属するスキャンフリップフロップがあれば、前記分岐点と前記挿入対象スキャンフリップフロップのクロック入力の間をクロック遮断点と定める工程と、
前記クロック遮断点に、前記クロック遮断回路を挿入する工程と、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項２】
前記クロック遮断点と定める工程は、前記分岐点に接続されているスキャンフリップフロップが第３グループに属するスキャンフリップフロップのみである場合には、さらに、クロックラインを入力側方向にトレースし、他のスキャンフリップフロップのクロック入力へ分岐する分岐点を検出する請求項１に記載の半導体集積回路の設計方法。
【請求項３】
前記第３のグループに属するスキャンフリップフロップのうち、前記挿入対象スキャンフリップフロップに選択していないスキャンフリップフロップを挿入対象スキャンフリップフロップとして、再び前記分岐点を検出する工程を含む請求項１又は２に記載の半導体集積回路の設計方法。
【請求項４】
第１のクロックが供給される第１のクロックドメインと、
前記第１のクロックと、前記第１のクロックより周波数の高い第２のクロックと、切り替えて出力するクロック切り替え回路に接続された第２のクロックドメインと、
前記第２のクロックドメインの遅延テストに係るデータを取り込むためのスキャンフリップフロップに供給するクロックラインを遮断可能なクロック遮断回路と、を備える半導体集積回路の設計を支援するコンピュータに実行させるプログラムであって、
前記第１、第２のクロックドメインに配置された複数のスキャンフリップフロップのうち、前記第１のクロックのみで動作するスキャンフリップフロップを第１のグループ、前記クロック切り替え回路が出力するクロックで動作するスキャンフリップフロップを第２のグループ、前記第２のグループのスキャンフリップフロップであって、前記第１のスキャンフリップフロップからデータの転送がないスキャンフリップフロップを第３のグループ、とに振り分ける処理と、
前記第３のグループのうち一つのスキャンフリップフロップを挿入対象スキャンフリップフロップとし、前記挿入対象スキャンフリップフロップのクロックラインを入力側方向にトレースし、他のスキャンフリップフロップのクロック入力へ分岐する分岐点を検出する処理と、
前記分岐点に接続されているスキャンフリップフロップに第１のグループ又は第２のグループに属するスキャンフリップフロップがあれば、前記分岐点と前記挿入対象スキャンフリップフロップのクロック入力の間をクロック遮断点と定める処理と、
前記クロック遮断点に、前記クロック遮断回路を挿入する処理と、
を実行させるプログラム。
【請求項５】
前記クロック遮断点と定める処理は、前記分岐点に接続されているスキャンフリップフロップが第３グループに属するスキャンフリップフロップのみである場合には、さらに、クロックラインを入力側方向にトレースし、他のスキャンフリップフロップのクロック入力へ分岐する分岐点を検出する請求項４に記載のプログラム。
【請求項６】
前記第３のグループに属するスキャンフリップフロップのうち、前記挿入対象スキャンフリップフロップに選択していないスキャンフリップフロップを挿入対象スキャンフリップフロップとして、再び前記分岐点を検出する処理を実行する請求項４又は５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、そのテスト方法、半導体集積回路の設計方法及びプログラムに関する。特に、複数のクロックで動作可能な回路を有する半導体集積回路のスキャンテスト回路に関する。
【背景技術】
【０００２】
半導体集積回路の量産工程において、製造した半導体集積回路が所定の性能を有しているか確認するテストの実施が必要である。そのようなテストの方法として、被測定対象である半導体集積回路の内部のフリップフロップにテストデータの設定及び読み出しを可能とする回路を付加するスキャンテスト方式が用いられる。特に年々、半導体集積回路の回路規模は増大しており、そのような大規模な半導体集積回路に対しても本方式を用いればテストパターンの作成を容易に行うことができる。
【０００３】
スキャンテスト方式では、回路内のフリップフロップを、図２に示すようなスキャン入力端子とスキャン出力端子を有するスキャンフリップフロップ（ＳＦＦ）に置き換え、前段のスキャンフリップフロップのスキャン出力端子と後段のスキャンフリップフロップのスキャン入力端子を順次接続してスキャンパスを形成するようにする。
【０００４】
ここで、スキャンテストの実施は、半導体集積回路本来の動作周波数ではなく、より低速な周波数でテストが実施されることがある。テスト時における動作周波数が、テストに用いるテスターの性能に依存するためである。しかし、このようなテストでは半導体集積回路が論理的に正しく動作することは検査可能であっても、実使用の周波数で動作するか否かは検査できない。近年では半導体集積回路の動作周波数は高速化の一途を辿っており、論理的には正しく動作するが、所定の周波数では動作しないということが考えられ、このような半導体集積回路は製品出荷前のテストにより検出可能でなければならない。
【０００５】
したがって、半導体集積回路が所定の周波数で正常に動作するかを確認する遅延テストの実施が望まれ、遅延テスト用の回路を有するスキャンテスト回路が必要である。
【０００６】
一方、半導体集積回路はより低消費電力での動作が要求される。低消費電力での動作の実現のため半導体集積回路の一部の動作周波数を必要に応じて低くすることが行われ、動作周波数を切り替えるために、マルチプレクサで出力するクロックを選択するようなクロック切り換え回路を有する半導体集積回路が存在する。
【０００７】
このような、半導体集積回路の内部が異なるクロックで動作（以下、異クロックドメインでの動作とする）するように構成された半導体集積回路において、遅延テストを実施しようとすれば、論理回路にデータを供給するためのラウンチ用スキャンフリップフロップと論理回路のデータを取り込むためのキャプチャ用スキャンフリップフロップとを異なる周波数で動作させる必要がある。
【０００８】
ここで、上述のような異クロックドメインで動作する半導体集積回路において、遅延テストを実施する技術が特許文献１に開示されている。特許文献１の技術によれば、同期した１／２の分周関係にある異クロックドメイン間での遅延テストが実施可能となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−０３６６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以下の分析は、本発明の観点からなされたものである。
【００１１】
特許文献１で開示された半導体集積回路は、基本クロックで動作する回路と、その基本クロックを分周したクロックで動作する回路の遅延テストを同時に行えるものであるが、その実現には規模の大きい回路を必要とする。即ち、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路で実現されたクロック生成回路と、そのクロック生成回路から出力される基本クロックから遅延テスト用のクロックを抽出する回路と、その遅延テスト用のクロックを分配する回路と、が必要である。結果として、このような回路を有する半導体集積回路の回路面積は増加し、コストも上昇する。
【００１２】
以上のとおり、従来技術には、解決すべき問題点が存在する。
【００１３】
本発明の一側面において、異クロックドメインを有する半導体集積回路での遅延テストが可能な半導体集積回路が、望まれる。
【課題を解決するための手段】
【００１４】
本発明の第１の視点によれば、第１のクロックが供給される第１のクロックドメインと、前記第１のクロックと、前記第１のクロックより周波数の高い第２のクロックと、切り替えて出力するクロック切り替え回路に接続された第２のクロックドメインと、前記第２のクロックドメインの遅延テストに係るデータを取り込むためのスキャンフリップフロップに供給するクロックラインを遮断可能なクロック遮断回路と、前記第１、第２のクロックドメインに配置された任意のスキャンフリップフロップ間の遅延テストを行うテストモードにおいて、前記クロック切り替え回路に前記第１のクロックを供給させたときに前記クロック遮断回路に前記クロックラインを遮断させ、前記クロック切り替え回路に前記第２のクロックを供給させたときに、前記クロック遮断回路に前記クロックラインの遮断を解除させる制御部と、を備える半導体集積回路が提供される。
【００１５】
本発明の第２の視点によれば、第１のクロックが供給される第１のクロックドメインと、前記第１のクロックと、前記第１のクロックより周波数の高い第２のクロックと、切り替えて出力するクロック切り替え回路に接続された第２のクロックドメインと、前記第２のクロックドメインの遅延テストに係るデータを取り込むためのスキャンフリップフロップに供給するクロックラインを遮断可能なクロック遮断回路と、を備える半導体集積回路の前記第１、第２のクロックドメインに配置された任意のスキャンフリップフロップ間の遅延テストを行う半導体集積回路のテスト方法であって、前記クロック切り替え回路に前記第１のクロックを供給させたときに前記クロック遮断回路に前記クロックラインを遮断させて遅延テストを行う工程と、前記クロック切り替え回路に前記第２のクロックを供給させたときに、前記クロック遮断回路に前記クロックラインの遮断を解除させて遅延テストを行う工程と、を含む半導体集積回路のテスト方法が提供される。
【００１６】
本発明の第３の視点によれば、第１のクロックが供給される第１のクロックドメインと、前記第１のクロックと、前記第１のクロックより周波数の高い第２のクロックと、切り替えて出力するクロック切り替え回路に接続された第２のクロックドメインと、前記第２のクロックドメインの遅延テストに係るデータを取り込むためのスキャンフリップフロップに供給するクロックラインを遮断可能なクロック遮断回路と、を備える半導体集積回路の設計方法であって、前記第１、第２のクロックドメインに配置された複数のスキャンフリップフロップのうち、前記第１のクロックのみで動作するスキャンフリップフロップを第１のグループ、前記クロック切り替え回路が出力するクロックで動作するスキャンフリップフロップを第２のグループ、前記第２のグループのスキャンフリップフロップであって、前記第１のスキャンフリップフロップからデータの転送がないスキャンフリップフロップを第３のグループ、とに振り分ける工程と、前記第３のグループのうち一つのスキャンフリップフロップを挿入対象スキャンフリップフロップとし、前記挿入対象スキャンフリップフロップのクロックラインを入力側方向にトレースし、他のスキャンフリップフロップのクロック入力へ分岐する分岐点を検出する工程と、前記分岐点に接続されているスキャンフリップフロップに第１のグループ又は第２のグループに属するスキャンフリップフロップがあれば、前記分岐点と前記挿入対象スキャンフリップフロップのクロック入力の間をクロック遮断点と定める工程と、前記クロック遮断点に、前記クロック遮断回路を挿入する工程と、を含む半導体集積回路の設計方法が提供される。
【００１７】
本発明の第４の視点によれば、第１のクロックが供給される第１のクロックドメインと、前記第１のクロックと、前記第１のクロックより周波数の高い第２のクロックと、切り替えて出力するクロック切り替え回路に接続された第２のクロックドメインと、前記第２のクロックドメインの遅延テストに係るデータを取り込むためのスキャンフリップフロップに供給するクロックラインを遮断可能なクロック遮断回路と、を備える半導体集積回路の設計を支援するコンピュータに実行させるプログラムであって、前記第１、第２のクロックドメインに配置された複数のスキャンフリップフロップのうち、前記第１のクロックのみで動作するスキャンフリップフロップを第１のグループ、前記クロック切り替え回路が出力するクロックで動作するスキャンフリップフロップを第２のグループ、前記第２のグループのスキャンフリップフロップであって、前記第１のスキャンフリップフロップからデータの転送がないスキャンフリップフロップを第３のグループ、とに振り分ける処理と、前記第３のグループのうち一つのスキャンフリップフロップを挿入対象スキャンフリップフロップとし、前記挿入対象スキャンフリップフロップのクロックラインを入力側方向にトレースし、他のスキャンフリップフロップのクロック入力へ分岐する分岐点を検出する処理と、前記分岐点に接続されているスキャンフリップフロップに第１のグループ又は第２のグループに属するスキャンフリップフロップがあれば、前記分岐点と前記挿入対象スキャンフリップフロップのクロック入力の間をクロック遮断点と定める処理と、前記クロック遮断点に、前記クロック遮断回路を挿入する処理と、を実行させるプログラムが提供される。
【発明の効果】
【００１８】
本発明の各視点によれば、異クロックドメインを有する半導体集積回路での遅延テストが可能な半導体集積回路及びその設計方法が提供される。
【図面の簡単な説明】
【００１９】
【図１】本発明の概要を説明するための図である。
【図２】スキャンフリップフロップを説明するための参考図である。
【図３】クロックの切り替えが可能な半導体集積回路の一例である。
【図４】本発明に係る実施形態のスキャンテスト回路を有する半導体集積回路のブロック図である。
【図５】図４におけるテストデコーダ回路６０の詳細を示すブロック図である。
【図６】図４のテストデコーダ回路６０の入力信号と出力信号の関係を示した図である。
【図７】図４におけるクロック遮断回路の挿入ポイントを決定するフローチャートである。
【図８】図４の半導体集積回路の生成処理を実行するためのシステム構成図である。
【発明を実施するための形態】
【００２０】
はじめに、図１を用いて本発明の概要について説明する。
【００２１】
異クロックドメインが存在する半導体集積回路において、遅延テストの実施を試みた場合にラウンチ用スキャンフリップフロップとキャプチャ用スキャンフリップフロップとが異なる周波数で動作する箇所が存在する。スキャンフリップフロップＳＦＦ０はクロックＡで動作し、スキャンフリップフロップＳＦＦ１はクロックＢで動作する場合が該当する。すると、それぞれのフリップフロップ間でのデータの転送が困難であり、遅延テストを実施することができない。そこで、複数のクロックのうち低い周波数でスキャンデータを全てのスキャンフリップフロップに設定し、遅延テストの実施の際には異クロックドメイン間でのデータの転送が発生しないようにクロックを遮断し、遅延テストを実施する。
【００２２】
次に、異クロックドメインを有する半導体集積回路の動作について説明する。図３は、クロックが切り替え可能な半導体集積回路のブロック図である。図３に示す半導体集積回路は、スキャンフリップフロップ１０乃至１３と、組み合せ回路である論理回路２０乃至２２と、クロック切り替え回路３０から構成され、クロックＡ、クロックＢ、クロック切り替え信号ＣＳＥＬを入力信号とする。クロックＡの周波数はクロックＢの周波数より低い周波数である。論理回路２０及び論理回路２１はクロックＡにより動作し、論理回路２２についてはクロックＡ又はクロックＢのいずれのクロックでも動作可能である。
【００２３】
クロック切り替え回路３０は、マルチプレクサ３０１で構成される。クロックＡは、スキャンフリップフロップ１０及びスキャンフリップフロップ１１のクロック入力端子に入力される。スキャンフリップフロップ１０は、その出力端子Ｑから論理回路２０へデータを出力する。論理回路２０から出力されるデータは、スキャンフリップフロップ１１の入力端子Ｄに入力され、スキャンフリップフロップ１１は出力端子Ｑから論理回路２１へデータを出力する。また、クロックＡ及びクロックＢはマルチプレクサ３０１の入力端子ＩＮ０及びＩＮ１に入力され、クロック切り替え信号ＣＳＥＬをマルチプレクサ３０１のセレクタ入力端子Ｓに入力することでクロックＡ又はクロックＢのいずれかを出力するか選択可能である。このマルチプレクサ３０１の出力は、スキャンフリップフロップ１２及びスキャンフリップフロップ１３のクロック入力端子に接続される。
【００２４】
論理回路２１から出力されるデータは、スキャンフリップフロップ１２の入力端子Ｄに入力され、スキャンフリップフロップ１２の出力端子Ｑから論理回路２２へデータを出力する。論理回路２２から出力されるデータはスキャンフリップフロップ１３の入力端子Ｄに入力される。
【００２５】
ここで、図３には示していないが、スキャンフリップフロップ１０の前段にある論理回路が出力するデータや半導体集積回路の外部から入力されるデータが、スキャンフリップフロップ１０の入力端子Ｄに入力される。さらに、スキャンイネーブル信号ＳＭＣが、スキャンフリップフロップ１０乃至１３の入力端子ＳＭＣに入力される。スキャンフリップフロップ１０乃至１３以外のスキャンフリップフロップや外部から供給されるスキャンシフト用の信号はスキャン入力端子に入力され、スキャンフリップフロップ１３は外部出力端子やその他の論理回路等に対して出力端子Ｑからデータの出力をする。
【００２６】
以上のような構成を持つ図３の半導体集積回路は、マルチプレクサ３０１のセレクタ入力端子ＳにＬレベル信号若しくはＨレベル信号を供給することによって、クロックＡ又はクロックＢのいずれかを出力可能であり、論理回路２２はそのいずれの周波数でも動作させることができる。
【００２７】
なお、図３の半導体集積回路のマルチプレクサ３０１のセレクタ入力端子ＳにＨレベル信号を供給して動作させた場合は、スキャンフリップフロップ１１はクロックＡで動作、スキャンフリップフロップ１２はクロックＢで動作することになるため、スキャンフリップフロップ１１からスキャンフリップフロップ１２へのデータ転送は、異クロックドメイン間のデータ転送となる。
【００２８】
このように、一部のクロックドメインに対してクロックを切り替えるように構成された半導体集積回路において遅延テストを実施するには、論理回路にデータを供給するためのスキャンフリップフロップ（ラウンチ用ＳＦＦ）１１と論理回路のデータを取り込むためのスキャンフリップフロップ（キャプチャ用ＳＦＦ）１２とで異なる周波数での動作が必要となる。しかし、その周波数は高速であるためテスト回路を構築する際にデータ転送のタイミング調整は非常に困難なものとなる。
【００２９】
［第１の実施形態］
次に、本発明の実施形態について、図４を用いてより詳細に説明する。図４は、本発明の実施形態に係るスキャンテスト回路を備える半導体集積回路のブロック図である。図４において図３と同一構成要素には、同一の符号を表し、その説明を省略する。図４の半導体集積回路は、図３に示す回路に加え、クロック選択制御回路４０と、クロック遮断回路５０と、テストデコーダ回路６０から構成される。
【００３０】
クロック選択制御回路４０は、インバータ４０１と、マルチプレクサ４０２から構成される。テストデコーダ回路６０から出力されるＣＴＲＬは、クロック選択制御回路４０に接続され、インバータ４０１に対する入力となる。また、クロック切り替え信号ＣＳＥＬはマルチプレクサ４０２の入力端子ＩＮ０に接続され、インバータ４０１の出力は入力端子ＩＮ１に接続する。
【００３１】
テストデコーダ回路６０から出力される出力信号ＴＥＮＯＵＴはマルチプレクサ４０２のセレクタ入力端子Ｓに接続され、マルチプレクサ４０２の出力はクロック切り替え回路３０のマルチプレクサ３０１のセレクタ入力端子Ｓに接続する。
【００３２】
クロック遮断回路５０はラッチ５０１とＡＮＤ回路５０２から構成される。ラッチ５０１は、入力端子ＧがＬレベル信号の場合に入力端子Ｄからデータ入力を取り込み、入力端子ＧがＨレベル信号の場合に値を保持する。マルチプレクサ３０１の出力はラッチ５０１の入力端子Ｇに接続され、テストデコーダ回路６０から出力される出力信号ＣＴＲＬ＿ＴＨＲは入力端子Ｄに接続される。ラッチ５０１の出力端子ＱはＡＮＤ回路５０２の入力端子ＩＮ１に接続され、マルチプレクサ３０１の出力が入力端子ＩＮ２に接続される。ＡＮＤ回路５０２の出力が、スキャンフリップフロップ１３のクロック入力端子に接続される。
【００３３】
テストデコーダ回路６０はスキャンイネーブル信号ＳＭＣと、テストモード信号ＴＥＮと、クロック選択制御信号ＣＬＫＳＥＬを入力とし、出力信号ＣＴＲＬと、出力信号ＴＥＮＯＵＴと、出力信号ＣＴＲＬ＿ＴＨＲを出力する。図５は、テストデコーダ回路６０の内部構成の一例である。図５に示すテストデコーダ回路６０は、ＯＲ回路６０１及び６０２と、インバータ６０３及び６０４と、を備える。
【００３４】
クロック選択制御信号ＣＬＫＳＥＬはインバータ６０４と、ＯＲ回路６０１の入力端子ＩＮ３に接続される。テストモード信号ＴＥＮはインバータ６０３に接続されると共に、そのまま出力信号ＴＥＮＯＵＴとして出力される。テストイネーブル信号ＳＭＣはＯＲ回路６０２の入力端子ＩＮ１に接続され、ＯＲ回路６０１の入力端子ＩＮ２に接続される。インバータ６０４の出力はＯＲ回路６０２の入力端子ＩＮ２に接続され、インバータ６０３の出力はＯＲ回路６０１の入力端子ＩＮ１に接続される。ＯＲ回路６０２の出力が出力信号ＣＴＲＬとして出力され、ＯＲ回路６０１の出力が出力信号ＣＴＲＬ＿ＴＨＲとして出力される。
【００３５】
クロックＡ、クロックＢ、クロック切り替え信号ＣＳＥＬ、テストモード信号ＴＥＮ、スキャンイネーブル信号ＳＭＣ、クロック選択制御信号ＣＬＫＳＥＬの各信号は半導体集積回路の外部から入力される。
【００３６】
続いて、図６の真理値表を用いて、本実施形態に係る半導体集積回路の動作を説明する。図４に示す半導体集積回路には、非テストモード、スキャンシフトモード、クロックＡ選択モード、クロックＢ選択モード、の４モードが存在する。図６の真理値表は、これら４モードとテストデコーダ回路６０に対する入力信号（ＴＥＮ、ＳＭＣ、ＣＬＫＳＥＬ）と出力信号（ＴＥＮＯＵＴ、ＣＴＲＬ、ＣＴＲＬ＿ＴＨＲ）の関係を示すものである。
【００３７】
非テストモードは、クロック遮断回路５０、マルチプレクサ４０２及びテストデコーダ回路６０が、ユーザー回路に全く影響を与えない動作モードである。非テストモードはテストモード信号ＴＥＮにＬレベルを入力することで実現できる。その際、マルチプレクサ４０２のセレクタ入力端子Ｓには出力信号ＴＥＮＯＵＴのＬレベルが入力されているため、マルチプレクサ４０２からはクロック切り替え信号ＣＳＥＬがクロック切り替え回路３０に対して出力される。また、出力信号ＣＴＲＬ＿ＴＨＲはＨレベルであるため、遮断回路５０はクロックを遮断せず、クロック切り替え信号ＣＳＥＬに応じてマルチプレクサ３０１から供給されるクロックＡ若しくはクロックＢがスキャンフリップフロップ１３に供給される。このように、非テストモードでは、クロック遮断回路５０、マルチプレクサ４０２及びテストデコーダ回路６０は半導体集積回路の通常動作には全く影響を与えない。
【００３８】
続いて、スキャンシフトモードを説明する。本モードは、スキャンテストのスキャンシフト動作を行うためのモードである。スキャンシフトモードは、テストモード信号ＴＥＮ及びスキャンイネーブル信号ＳＭＣにＨレベルをテストデコーダ回路６０に入力することで実現できる。スキャンモードでは、テストデコーダ回路６０は全ての出力信号をＨレベルとして出力する。出力信号ＴＥＮＯＵＴ及び出力信号ＣＴＲＬがＨレベルであるため、マルチプレクサ４０２はＩＮ１を選択して出力し、インバータ４０１にはＨレベルが入力されているので、ＩＮ１にはＬレベルが入力され、マルチプレクサ４０２からはＬレベルが出力される。そのＬレベルが、マルチプレクサ３０１のセレクタ入力端子Ｓに入力され、マルチプレクサ３０１からクロックＡが出力される。クロックＡは、スキャンフリップフロップ１２とクロック遮断回路５０に供給される。一方、出力信号ＣＴＲＬ＿ＴＨＲもＨレベルが出力されているためクロック遮断回路５０はクロックを遮断せず、スキャンフリップフロップ１３へクロックＡを供給する。結果的に、全てのスキャンフリップフロップ１０乃至１３に対してクロックＡを供給し、スキャンシフト動作を実施することができる。
【００３９】
クロックＡ選択モード及びクロックＢ選択モードは遅延テストを実施するモードである。クロックＡ選択モードは、テストモード信号ＴＥＮをＨレベルに、スキャンイネーブル信号ＳＭＣをＬレベルに、クロック選択制御信号ＣＬＫＳＥＬをＬレベルにすることで実現できる。その際のテストデコーダ回路６０の出力信号は、出力信号ＴＥＮＯＵＴ及び出力信号ＣＴＲＬはＨレベル、出力信号ＣＴＲＬ＿ＴＨＲはＬレベルとなる。出力信号ＴＥＮＯＵＴはＨレベルであり、出力信号ＣＴＲＬもＨレベルであるため、インバータ４０１を介して、マルチプレクサ４０２はＬレベルを出力する。マルチプレクサ４０２からＬレベルが出力されるため、マルチプレクサ３０１はクロックＡを出力する。また、出力信号ＴＥＮＯＵＴ及び出力信号ＣＴＲＬがＨレベルであるため、スキャンシフトモードと同様に、スキャンフリップフロップ１２にはクロックＡが供給される。よって、論理回路２１はクロックＡの周波数で遅延テストが実施できる。
【００４０】
一方、マルチプレクサ３０１が出力するクロックＡはクロック遮断回路５０へと入力されるが、出力信号ＣＴＲＬ＿ＴＨＲがＬレベルであるため、クロック遮断回路５０はクロックＡを遮断する。その結果、スキャンフリップフロップ１３にはクロックが供給されず、論理回路２２の出力はスキャンフリップフロップ１３でマスクされ、論理回路２２は遅延テストの対象外となる。
【００４１】
クロックＢ選択モードは、テストモード信号ＴＥＮをＨレベルに、スキャンイネーブル信号ＳＭＣをＬレベルに、クロック選択制御信号ＣＬＫＳＥＬをＨレベルにすることで実現できる。出力信号ＴＥＮＯＵＴがＨレベルで、出力信号ＣＴＲＬはＬレベルであるため、インバータ４０１を介して、マルチプレクサ４０２はＨレベルをマルチプレクサ３０１に対して出力する。マルチプレクサ３０１のセレクタ入力端子ＳにはＨレベルが入力されているため、クロックＢがマルチプレクサ３０１から出力される。そのため、スキャンフリップフロップ１２にはクロックＢが供給され、論理回路２１は異クロックドメインのため遅延テストの対象外とする。
【００４２】
一方、ＣＴＲＬ＿ＴＨＲはＨレベルであるため、マルチプレクサ３０１が出力するクロックＢはクロック遮断回路５０で遮断されず、スキャンフリップフロップ１３に入力される。スキャンフリップフロップ１２と１３とにクロックＢが供給されるため、論理回路２２はクロックＢの周波数で遅延テストが実施できる。
【００４３】
このように、本実施形態に係るスキャンテスト回路は、クロック切り替え回路３０から出力される低周波数のクロックＡを遮断し、高周波数のクロックＢを伝搬させるクロック遮断回路５０と、クロック切り替え回路３０のクロック選択を制御するクロック選択制御回路４０及びテストデコーダ回路６０を有する構成を持つ。そして、テストデコーダ回路６０に対する入力信号を適宜選択することで、クロック遮断回路５０とクロック選択制御回路４０の動作を規定し、各クロックドメインのラウンチ用スキャンフリップフロップとキャプチャ用スキャンフリップフロップに同じクロックを供給することができるようになる。
【００４４】
その結果、特許文献１に示されたＰＬＬ回路や遅延テスト用クロック抽出回路などを用いなくても、実動作での周波数を用いた遅延テストを実施することが可能となる。
【００４５】
［設計方法］
以上のようなスキャンテスト回路は、以下のような設計方法により設計することが可能である。また、回路設計装置を構成するコンピュータに、以下のような設計方法を実行させるプログラムとして提供可能である。
【００４６】
図７を用いて、半導体集積回路上に多数存在するスキャンフリップフロップを含む回路網からクロック遮断回路５０の挿入箇所を決定する手法を説明する。図７は、クロック遮断回路５０の挿入箇所を決定する処理手順を示すフローチャートである。
【００４７】
ステップＳ１において、遅延テストの実施対象になる半導体集積回路の回路情報を入力する。回路情報には、回路接続情報や回路論理データに加えて、複数のクロックを切り替えるクロック切り替え回路に関する情報も含まれる。ここでは、図３に示す半導体集積回路に対してクロック遮断回路５０の挿入位置を決定する手順について説明する。
【００４８】
次に、ステップＳ１において入力した回路情報に含まれる全てのスキャンフリップフロップのグループ分けを行う（ステップＳ２）。第１のグループは、複数のクロックのうち、最も周波数が高いクロック以外のクロックであって、クロック切り替え回路を介さずに制御されるスキャンフリップフロップ群とする。第２のグループは、クロック切り替え回路から出力されるクロックで制御されるスキャンフリップフロップ群とする。第３のグループは、第２のグループに属するスキャンフリップフロップ群の中で、第１のグループに属するスキャンフリップフロップ群のいずれかのスキャンフリップフロップからもデータの転送がないスキャンフリップフロップ群とする。図３においては、スキャンフリップフロップ１０と１１は第１のグループに属し、スキャンフリップフロップ１２と１３は第２のグループに属する。さらに、第２のグループの中からスキャンフリップフロップ１３が第３のグループとして抽出される。
【００４９】
続いて、ステップＳ３では、クロック遮断回路５０を接続するスキャンフリップフロップを決定する。このスキャンフリップフロップは、第３のグループに属するスキャンフリップフロップであれば任意のものでよい。抽出したスキャンフリップフロップを挿入対象スキャンフリップフロップと呼ぶ。図３においては、スキャンフリップフロップ１３を挿入対象スキャンフリップフロップとして抽出する。
【００５０】
次に、挿入対象スキャンフリップフロップのクロックラインを分岐点までファンイン方向にバックトレースする（ステップＳ４）。図３においてスキャンフリップフロップ１３のクロック端子からクロック切り替え回路３０に向けて探索し、分岐点Ｂ１を検出する。
【００５１】
ステップＳ４におけるバックトレースで到達した分岐点において、探索してきた経路以外のすべての分岐先に接続するスキャンフリップフロップが、第３のグループのスキャンフリップフロップ群に含まれるか否かを確認する（ステップＳ５）。ここで、一つでも第３のグループのスキャンフリップフロップ群に含まれないスキャンフリップフロップが存在する場合はステップＳ７へ遷移し、全てのスキャンフリップフロップが第３のグループのスキャンフリップフロップ群に含まれる場合は、ステップＳ６に遷移する。図３においては、分岐点Ｂ１の分岐先のスキャンフリップフロップ１２が第３グループに含まれないためステップＳ７に遷移する。
【００５２】
ステップＳ６では、ステップＳ４で到達した分岐点から更に次の分岐点までファンイン方向にバックトレースを行い、分岐点に到達後、再度ステップＳ５を実行する。図３の半導体集積回路においては、ステップＳ６に遷移しない。
【００５３】
ステップＳ５で探索した分岐点からステップＳ３で抽出した挿入対象スキャンフリップフロップまでの間を、クロック遮断回路５０の挿入位置として特定する（ステップＳ７）。図３の半導体集積回路では、分岐点Ｂ１からスキャンフリップフロップ１３までの間を、クロック遮断回路５０の挿入位置として決定する。
【００５４】
ステップＳ８では、第３のグループに属するスキャンフリップフロップ群から探索を実施していないスキャンフリップフロップの存在を確認し、未探索スキャンフリップフロップがあればステップＳ３に戻り、上記一連の処理を再度実施する。未探索スキャンフリップフロップが無ければクロック遮断回路５０の挿入位置の決定処理を終了する。図３の半導体集積回路においては、第３のグループに属するスキャンフリップフロップであって、未探索スキャンフリップフロップは存在しないためステップＳ８を終了する。
【００５５】
以上説明した方法によって、図３に示す半導体集積回路に対してクロック遮断回路５０を挿入する箇所を決定することができる。クロック遮断回路５０の挿入位置が定まれば、テストデコーダ回路６０及びクロック選択制御回路４０は、一意に定まるため図４に示す半導体集積回路を得ることができる。
【００５６】
上述の各処理は、コンピュータにスキャンテスト回路の設計用プログラムを実行させることで実現されるようにしてもよい。例えば、図８のようなシステムを構築し、サーバ上でプログラムを実行し、上述の半導体集積回路の回路図を作成することができる。
【００５７】
図８のシステムは、サーバ７００と、コンピュータ装置７１０及び７２０と、ネットワーク７３０からで構成される。サーバ７００はインターネットなどのネットワーク７３０を介してエンジニアリングワークステーションなどのコンピュータ装置７１０及び７２０と接続されている。
【００５８】
実行プログラムはサーバ７００内部の記録媒体７０１に保存されており、本プログラム、回路情報、その他の入力データはネットワーク７３０を介してコンピュータ装置７１０及び７２０にダウンロードされる。ダウンロードされた実行プログラムはコンピュータ装置７１０及び７２０で実行可能である。若しくは、コンピュータ装置７１０及び７２０がクライアントとなり、サーバ７００においてプログラムを実行することも可能である。
【００５９】
なお、上記の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６０】
１０〜１３  スキャンフリップフロップ
２０〜２２  論理回路
３０  クロック切り替え回路
４０  クロック選択制御回路
５０  クロック遮断回路
６０  テストデコーダ回路
３０１、４０２  マルチプレクサ
４０１、６０３、６０４  インバータ
５０１  ラッチ
５０２  ＡＮＤ回路
６０１、６０２  ＯＲ回路
７００  サーバ
７０１  記録媒体
７１０、７２０  コンピュータ装置
７３０  ネットワーク
【図１】
0005596424.tif 000002
【図２】
0005596424.tif 000003
【図３】
0005596424.tif 000004
【図４】
0005596424.tif 000005
【図５】
0005596424.tif 000006
【図６】
0005596424.tif 000007
【図７】
0005596424.tif 000008
【図８】
0005596424.tif 000009