(57)【要約】【課題】スキャンテストにおいて、異クロックドメイン間のユーザロジックパスに対するホールド違反を起こさない。【解決手段】第１スキャンフリップフロップ（１１１／１１２）は、第１クロック信号（ＣＬＫ１／ＣＬＫ２）に応答して動作する第１クロックドメイン（１０１／１０２）に含まれ、スキャンテスト時に形成されるスキャンチェーンに組み込まれる。ホールド対応回路（２０２／２０１）は、第１クロック信号（ＣＬＫ１／ＣＬＫ２）と周波数の異なる第２クロック信号（ＣＬＫ２／ＣＬＫ１）に応答して動作する第２クロックドメイン（１０２／１０１）に属し、スキャンチェーンにテスト結果を取り込むキャプチャ期間に第１スキャンフリップフロップ（１１１／１１２）に出力するデータを固定する。スキャンテスト時には、第１クロックドメインおよび第２クロックドメイン（１０１、１０２）に同一周波数のクロック信号が供給される。【選択図】図３
2013019694.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号に応答して動作する第１クロックドメインに含まれ、スキャンテスト時に形成されるスキャンチェーンに組み込まれる第１スキャンフリップフロップと、
前記第１クロック信号と周波数の異なる第２クロック信号に応答して動作する第２クロックドメインに属し、前記スキャンチェーンにテスト結果を取り込むキャプチャ期間に前記第１スキャンフリップフロップに出力するデータを固定するホールド対応回路と
を具備し、
前記スキャンテスト時に前記第１クロックドメインおよび前記第２クロックドメインに同一周波数のクロック信号が供給される
スキャンテスト回路。
【請求項２】
前記ホールド対応回路は、前記スキャンテスト時に前記スキャンチェーンにテスト結果を取り込む前記キャプチャ期間を示すホールド制御信号に応答して、前記第１スキャンフリップフロップに出力するデータを固定する
請求項１に記載のスキャンテスト回路。
【請求項３】
前記ホールド対応回路は、前記第２クロック信号に応答して入力データを取り込むスキャンフリップフロップと、
前記ホールド制御信号が前記スキャンチェーン内のデータをシフトさせるスキャンシフト期間を示すときに前記スキャンフリップフロップの出力の変化を反映して出力し、前記ホールド制御信号が前記キャプチャ期間を示すときに固定して出力するラッチ回路と
を備える
請求項２に記載のスキャンテスト回路。
【請求項４】
前記第１クロック信号と前記第２クロック信号とを入力し、前記スキャンテスト時に使用されるクロック信号を選択して前記第１または前記第２クロックドメインに供給する選択回路をさらに具備する
請求項１から請求項３のいずれかに記載のスキャンテスト回路。
【請求項５】
請求項１から請求項４のいずれかに記載のスキャンテスト回路を具備する半導体集積回路装置。
【請求項６】
第１クロック信号に応答して動作する第１クロックドメインに含まれ、スキャンテスト時に形成されるスキャンチェーンに組み込まれる第１スキャンフリップフロップと、
第２クロック信号に応答して動作する第２クロックドメインに含まれ、前記スキャンチェーンに組み込まれ、前記第１スキャンフリップフロップにデータを出力する第２スキャンフリップフロップと、
前記第２スキャンフリップフロップと前記第１スキャンフリップフロップとの間に配置され、テスト結果を取り込むキャプチャ期間に前記第１スキャンフリップフロップに出力するデータを固定するラッチ回路と
を具備し、
前記スキャンテスト時に前記第１クロックドメインおよび前記第２クロックドメインに同一周波数のクロック信号が供給される
スキャンテスト回路。
【請求項７】
第１クロック信号に応答して動作する第１スキャンフリップフロップを備える第１クロックドメインと、前記第１クロック信号と周波数が異なる第２クロック信号に応答して動作する第２スキャンフリップフロップを備える第２クロックドメインとを含む半導体集積回路のスキャンテスト回路生成方法であって、
通常動作時に前記第２スキャンフリップフロップから前記第１スキャンフリップフロップにデータが出力されるユーザロジックパスを抽出するステップと、
前記ユーザロジックパスの起点となる前記第２スキャンフリップフロップを抽出するステップと、
前記第１スキャンフリップフロップに出力するデータをスキャンテスト時に固定するホールド対応回路に前記第２スキャンフリップフロップを置換するステップと、
前記ホールド対応回路に置換した後にテスト設計するステップと
を具備する
スキャンテスト回路生成方法。
【請求項８】
前記ホールド対応回路が前記スキャンテスト時にスキャンチェーンにテスト結果を取り込む前記キャプチャ期間を示すホールド制御信号に応答して前記第１スキャンフリップフロップに出力するデータを固定するように、前記ホールド対応回路に前記ホールド制御信号を接続するステップをさらに具備する
請求項７に記載のスキャンテスト回路生成方法。
【請求項９】
前記ホールド対応回路を予めライブラリに登録するステップをさらに具備する
請求項７または請求項８に記載のスキャンテスト回路生成方法。
【請求項１０】
第１クロック信号に応答して動作する第１スキャンフリップフロップを備える第１クロックドメインと、前記第１クロック信号と周波数が異なる第２クロック信号に応答して動作する第２スキャンフリップフロップを備える第２クロックドメインとを含む半導体集積回路のスキャンテスト回路生成方法であって、
通常動作時に前記第２スキャンフリップフロップから前記第１スキャンフリップフロップにデータが出力されるユーザロジックパスを抽出するステップと、
前記ユーザロジックパスの起点となる前記第２スキャンフリップフロップを抽出するステップと、
前記第２スキャンフリップフロップと前記第１スキャンフリップフロップとの間に、前記第１スキャンフリップフロップに出力するデータをスキャンテスト時に固定するラッチ回路を挿入するステップと、
前記ラッチ回路を挿入した後にテスト設計するステップと
を具備する
スキャンテスト回路生成方法。
【請求項１１】
第１クロック信号に応答して動作する第１スキャンフリップフロップを備える第１クロックドメインと、前記第１クロック信号と周波数が異なる第２クロック信号に応答して動作する第２スキャンフリップフロップを備える第２クロックドメインとを含む半導体集積回路のスキャンテスト回路生成方法であって、
スキャンテストのキャプチャサイクル動作時のタイミング検証を行うステップと、
前記第１クロックドメインと前記第２クロックドメインとの間のユーザ論理に使用される信号経路であるユーザロジックパスにホールドタイミング違反があるか否かを判定するステップと、
前記ホールドタイミング違反が検出された前記ユーザロジックパスの起点となる前記第２スキャンフリップフロップを抽出するステップと、
前記抽出した前記第２スキャンフリップフロップを、前記第１スキャンフリップフロップに出力するデータを前記スキャンテスト時に固定するホールド対応回路に置換するステップと
を具備するスキャンテスト回路生成方法。
【請求項１２】
前記ホールド対応回路を予めライブラリに登録するステップをさらに具備する
請求項７から請求項１１のいずれかに記載のスキャンテスト回路生成方法。
【請求項１３】
請求項７から請求項１２のいずれかに記載のスキャンテスト回路生成方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のスキャンテスト回路およびスキャンテスト回路の生成方法に関し、特に周波数が異なる複数のクロックが供給される半導体集積回路のスキャンテスト回路およびスキャンテスト回路生成方法に関する。
【背景技術】
【０００２】
半導体集積回路は、製造後に不良の有無を確認するために試験（以下、テスト）が行われる。このようなテストに関し、テスタビリティを高めるテスト回路の一つとして、スキャンテスト回路が知られている。スキャンテスト回路は、チップ上に配置されたフリップフロップをシリアル接続してシフトレジスタ構成のスキャンチェーンを構築する。スキャンテストにおいて、構築されたスキャンチェーンにテストデータが入力され、組み合わせ回路の論理演算結果をスキャンチェーンにキャプチャし、スキャンチェーンの出力端子からテスト結果を順次観測することでテストが実施される。
【０００３】
一方、半導体集積回路は、機能の多様化・複雑化によって、周波数が異なる複数のクロックを有し、異なるクロックドメインにそれぞれ異なるクロックが供給されることが多い。そのような半導体集積回路におけるスキャンテストの１手法として、スキャンテスト時にチップ上の全クロックを束ね、１本のクロック端子からクロックを印加するという手法が知られている。この手法では、スキャンテスト時に、１チップ全体が一つのクロックドメインとして動作する。そのため、異クロックドメイン間のユーザロジックパスなどにおいて、通常動作ではタイミング調整を行う必要のないパスであっても、セットアップ／ホールドタイミングを考慮したレイアウト設計が必須となる。そのタイミング調整は複雑であり非常に困難を極め、設計期間の増大を招いている。
【０００４】
よって、周波数が異なる複数のクロックを有する半導体集積回路において、容易にタイミング調整が可能なスキャンテスト設計の技術が求められている。ここで、クロックドメインとは、同じクロック供給源からクロック信号が印加されるフリップフロップのグループとする。異クロックドメイン間パスとは、異なるクロックドメインに属するフリップフロップ間の信号経路とする。スキャンパスとは、スキャンチェーン上の信号経路とする。ユーザロジックパスとは、ユーザ論理に使用される信号経路とする。
【０００５】
特開２０００−２６６８１８号公報には、２種類以上のクロックドメインを１つのテストクロックに束ね、マルチプレクサタイプのスキャンテストフリップフロップを用いてスキャンテストを行い、クロックドメイン間のスキャンパスのタイミング調整を行う技術が開示されている。図１にその技術を説明するための回路が示される。図１には、クロックバッファツリーとスキャンテストのフリップフロップとが示される。フリップフロップ（ＦＦ）２１、２２、２３、２４は、スキャン機能付きフリップフロップであり、それぞれデータ入力端子、データ出力端子、スキャン入力端子、クロック入力端子を有する。
【０００６】
フリップフロップ２１〜２４は、直列に接続されてシフトレジスタを構成し、スキャンパスとなる。フリップフロップ２３からフリップフロップ２２へ向かう配線は、スキャンパスであるとともにデータのラインであることを示す。図示されないが、フリップフロップ２１とフリップフロップ２２との間、フリップフロップ２３とフリップフロップ２４との間にもデータのラインがある。スキャンパスは、スキャンテスト時に取得するスキャンデータを保持するフリップフロップでシフトレジスタを構成している。スキャンパスは、スキャンテストのときのデータの読み出し経路である。
【０００７】
また、各クロック系統にバッファ（Ｂｕｆｆｅｒ）が挿入されている。バッファの数、構成は、各クロック系統により異なる。バッファは、クロック信号をドライブするために挿入される。バッファ３０、３１、３２、３３、３４には、通常動作時にクロック信号ＣＬＫ１が通る。バッファ３５、３６、３７には、通常動作時にクロック信号ＣＬＫ２が通る。図１に示されるように、フリップフロップ２１、２２に入力されるクロックをＣＬＫ１系と称し、フリップフロップ２３、２４に入力されるクロックをＣＬＫ１−２系と称する。
【０００８】
セレクタ（ＳＥＬ）１０は、通常時およびスキャンテスト時におけるクロックの選択を行なう。遅延素子（Ｄｅｌａｙ）５０は、ＣＬＫ１系とＣＬＫ１−２系との遅延差分の遅延量を有する。つまり、この回路構成は、データではなくテストクロックを遅延素子で遅らせるものである。クロックバッファツリーにおける遅延量がＣＬＫ１系とＣＬＫ１−２系とにおいてそれぞれ算出され、その差分が遅延素子５０の遅延量となる。
【０００９】
通常動作時、この回路では、セレクタ１０にテストモード制御信号ＴＭＯＤＥ＝０が供給される。これにより、フリップフロップ２１、２２のクロックバッファツリーにはクロック信号ＣＬＫ１が供給され、フリップフロップ２３、２４のクロックバッファツリーにはクロック信号ＣＬＫ２が供給される。クロック信号ＣＬＫ１とクロック信号ＣＬＫ２とでは、周波数が異なる。これらのクロック信号に基づいて、図示されない各回路は通常動作する。このときは、スキャンテストは行われないため、フリップフロップ２１〜２４はシフトレジスタとしては動作しない。
【００１０】
スキャンテスト時には、セレクタ１０にテストモード制御信号ＴＭＯＤＥ＝１が供給される。これにより、テストクロックとしてクロック信号ＣＬＫ１が選択される。全てのフリップフロップ２１〜２４は、基本的にクロック信号ＣＬＫ１に同期してスキャン動作を行う。このとき、フリップフロップ２１〜２４に入力されるテストクロックの周波数は同じになる。
【００１１】
図１に示されるように、フリップフロップ２１、２２は、クロック信号ＣＬＫ１が遅延したＣＬＫ１系により動作する。フリップフロップ２３、２４は、ＣＬＫ１−２系により動作する。ＣＬＫ１−２系のクロック信号は、選択されたクロック信号ＣＬＫ１が遅延素子５０、セレクタ１０、バッファ３５、３６等により遅延した信号である。
【００１２】
図２に、スキャンテスト時のタイムチャートが示される。ここで、セレクタ１０の前段に挿入される遅延素子５０により、スキャンテスト時のクロック信号ＣＬＫ１を基にするクロックバッファツリーの遅延は、ＣＬＫ１系とＣＬＫ１−２系でほぼ等しい。つまり、ＣＬＫ１系とＣＬＫ１−２系とには、周波数が同じで位相がほぼ等しいクロック信号が供給される（図２（ｂ）（ｄ））。これは、遅延素子５０が計算された遅延量でＣＬＫ１−２系を遅延させているからである（図２（ａ）（ｂ））。
【００１３】
フリップフロップ２３、２４は、このＣＬＫ１−２系に基づいて動作し、スキャンデータを出力する。その結果、フリップフロップ２３の出力は遅れることになり（図２（ｃ））、フリップフロップ２２の入力も遅れる（図２（ｅ））。したがって、フリップフロップ２２においてＣＬＫ１系で動作するときに、ＣＬＫ１系の立ち上がり後のフリップフロップ２２の入力データの確定時間が充分にある。タイミング関係としては、ホールドタイムを充分確保できる（図２（ｄ）（ｅ））。これにより、フリップフロップ２３からのスキャンデータを確実にラッチすることができ、スキャンテストが適確に行える。これにより、クロックスキューが低減されたことになる。
【００１４】
このように、上述の技術は、各クロックドメインのクロックの根元に遅延を挿入し、クロックドメイン間のクロックスキューを低減するという技術である。スキャンパス（スキャンチェーン）上におけるスキャンフリップフロップの接続順は、クロック系統がＣＬＫ１−２系からＣＬＫ１系へなど、単方向にそろえることが可能である。そのため、挿入される遅延素子５０の遅延量を調整することなどにより十分なホールドタイムを確保することが可能である。
【００１５】
しかし、異クロックドメイン間のユーザロジックパスは、ＣＬＫ１−２系のスキャンフリップフロップからＣＬＫ１系のスキャンフリップフロップへのパスだけではなく、ＣＬＫ１系のスキャンフリップフロップからＣＬＫ１−２系のスキャンフリップフロップへの逆方向のパスも存在する。遅延素子５０による遅延挿入により、ＣＬＫ１−２系のスキャンフリップフロップからＣＬＫ１系のスキャンフリップフロップへのパスのホールドタイムは増加するが、逆経路であるＣＬＫ１系のスキャンフリップフロップからＣＬＫ１−２系のスキャンフリップフロップへのパスのホールドタイムは減少する。そのため、上記技術では、ユーザロジックパスのホールド違反が残る可能性がある。ホールド違反が残ったままでは、適切なテストは出来ない。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０００−２６６８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
本発明は、スキャンテストにおいて、異クロックドメイン間のユーザロジックパスに対するホールド違反を起こさないスキャンテスト回路およびスキャンテスト回路の生成方法を提供する。
【課題を解決するための手段】
【００１８】
以下に、［発明を実施するための形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１９】
本発明の観点では、スキャンテスト回路は、第１スキャンフリップフロップ（１１１／１１２）と、ホールド対応回路（２０２／２０１）とを具備する。第１スキャンフリップフロップ（１１１／１１２）は、第１クロック信号（ＣＬＫ１／ＣＬＫ２）に応答して動作する第１クロックドメイン（１０１／１０２）に含まれ、スキャンテスト時に形成されるスキャンチェーンに組み込まれる。ホールド対応回路（２０２／２０１）は、第１クロック信号（ＣＬＫ１／ＣＬＫ２）と周波数の異なる第２クロック信号（ＣＬＫ２／ＣＬＫ１）に応答して動作する第２クロックドメイン（１０２／１０１）に属し、スキャンチェーンにテスト結果を取り込むキャプチャ期間に第１スキャンフリップフロップ（１１１／１１２）に出力するデータを固定する。スキャンテスト時には、第１クロックドメインおよび第２クロックドメイン（１０１、１０２）に同一周波数のクロック信号が供給される。
【００２０】
本発明の他の観点では、スキャンテスト回路生成方法は、第１クロック信号（ＣＬＫ１／ＣＬＫ２）に応答して動作する第１スキャンフリップフロップ（１１１／１１２）を備える第１クロックドメイン（１０１／１０２）と、第１クロック信号（ＣＬＫ１／ＣＬＫ２）と周波数が異なる第２クロック信号（ＣＬＫ２／ＣＬＫ１）に応答して動作する第２スキャンフリップフロップ（６０２／６０１）を備える第２クロックドメイン（１０２／１０１）とを含む半導体集積回路のスキャンテスト回路生成方法であって、通常動作時に第２スキャンフリップフロップ（６０２／６０１）から第１スキャンフリップフロップ（１１１／１１２）にデータが出力されるユーザロジックパスを抽出するステップと、ユーザロジックパスの起点となる第２スキャンフリップフロップ（６０２／６０１）を抽出するステップと、第２スキャンフリップフロップ（６０２／６０１）から第１スキャンフリップフロップに出力するデータをスキャンテスト時に固定するホールド対応回路（２０２／２０１）に第２スキャンフリップフロップ（６０２／６０１）を置換するステップと、ホールド対応回路（２０２／２０１）に置換した後にテスト設計するステップとを具備する。
【００２１】
また、スキャンテスト回路生成方法は、スキャンテストのキャプチャサイクル動作時のタイミング検証を行うステップと、第１クロックドメイン（１０１／１０２）と第２クロックドメイン（１０２／１０１）との間のユーザ論理に使用される信号の経路であるユーザロジックパスにホールドタイミング違反があるか否かを判定するステップと、ホールドタイミング違反が検出されたユーザロジックパスの起点となる第２スキャンフリップフロップ（６０２／６０１）を抽出するステップと、抽出した第２スキャンフリップフロップ（６０２／６０１）を、第１スキャンフリップフロップ（１１１／１１２）に出力するデータをスキャンテスト時に固定するホールド対応回路（２０２／２０１）に置換するステップとを具備してもよい。
【発明の効果】
【００２２】
本発明によれば、スキャンテストにおいて、異クロックドメイン間のユーザロジックパスに対するホールド違反を起こさないスキャンテスト回路およびスキャンテスト回路生成方法を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、クロックドメイン間のスキャンパスのタイミング調整を行う技術を説明するための回路の構成を示す回路図である。
【図２】図２は、図１に示される回路のスキャンテスト時の動作を示すタイムチャートである。
【図３】図３は、本発明の実施の形態に係るスキャンテスト回路を備える半導体集積回路の構成を示す図である。
【図４】図４は、本発明の実施の形態に係るホールド対応回路の回路構成の一例を示す。
【図５】図５は、本発明の実施の形態に係るスキャンテスト回路の動作を示すタイミングチャートである。
【図６】図６は、本発明の実施の形態に係るスキャンテスト回路生成方法を示すフローチャートである。
【図７】図７は、本発明の実施の形態に係るスキャンテスト回路生成方法の変形例を説明するためのフローチャートである。
【図８】図８は、スキャンテスト回路生成の入力となる半導体集積回路の例を示す図である。
【図９】図９は、本発明の実施の形態に係るスキャンテスト回路生成方法を実現するコンピュータシステムの構成を示す図である。
【発明を実施するための形態】
【００２４】
図面を参照して本発明の実施の形態を説明する。
【００２５】
図３は、本発明の実施の形態に係るスキャンテスト回路を備える半導体集積回路の構成を示す図である。半導体集積回路は、スキャンフリップフロップ１１１、１１２と、ホールド対応回路２０１、２０２と、セレクタ１３０と、組み合わせ回路１２１、１２２、１２３と、クロック入力端子１４１、１４２と、テストモード制御端子１４３と、ホールド制御端子１４４と、スキャン制御端子１４５とを具備する。ホールド対応回路２０１のデータ出力ノードＤＯＵＴは、組み合わせ回路１２１を介してスキャンフリップフロップ１１１のデータ入力ノードＤに接続され、組み合わせ回路１２３を介してスキャンフリップフロップ１１２のデータ入力ノードＤに接続される。スキャンフリップフロップ１１２のデータ出力ノードＱは、組み合わせ回路１２２を介してホールド対応回路２０２のデータ入力ノードＤＩＮに接続される。ホールド対応回路２０２のデータ出力ノードＤＯＵＴは、組み合わせ回路１２１を介してスキャンフリップフロップ１１１のデータ入力ノードＤに接続される。
【００２６】
クロック入力端子１４１からクロック信号ＣＬＫ１が入力される。クロック信号ＣＬＫ１は、ホールド対応回路２０１、スキャンフリップフロップ１１１、セレクタ１３０に供給される。クロック入力端子１４２からクロック信号ＣＬＫ２が入力される。クロック信号ＣＬＫ２は、セレクタ１３０に供給される。セレクタ１３０は、テストモード制御端子１４３から入力されるテストモード制御信号ＴＭＯＤＥに基づいて、クロック信号ＣＬＫ１、ＣＬＫ２の一方を選択してスキャンフリップフロップ１１２、ホールド対応回路２０２に供給する。ホールド制御端子１４４から入力されるホールド制御信号ＨＯＬＤは、ホールド対応回路２０１、２０２に供給される。スキャン制御端子１４５から入力されるスキャンイネーブル信号ＳＥは、スキャンフリップフロップ１１１、１１２、ホールド対応回路２０１、２０２に供給される（接続の図示は省略）。ホールド制御信号ＨＯＬＤは、ホールド対応回路２０１、２０２のデータ出力ノードＤＯＵＴから出力されるデータ信号を制御する信号であり、詳細は後述する。
【００２７】
ここで、ホールド対応回路２０１およびスキャンフリップフロップ１１１は、第１のクロックドメイン１０１に属し、スキャンフリップフロップ１１２およびホールド対応回路２０２は、第２のクロックドメイン１０２に属する。クロックドメイン１０１には、クロック入力端子１４１に印加されるクロック信号ＣＬＫ１が供給される。また、クロックドメイン１０２には、通常動作時、クロック入力端子１４２に印加されるクロック信号ＣＬＫ２が供給される。セレクタ１３０は、テストモード制御信号ＴＭＯＤＥに基づいてクロック信号ＣＬＫ１、クロック信号ＣＬＫ２のいずれかを選択して、クロックドメイン１０２へ供給する。すなわち、セレクタ１３０は、テストモード制御信号ＴＭＯＤＥが“通常動作”を示すときクロック信号ＣＬＫ２を、“スキャンテスト動作”を示すときクロック信号ＣＬＫ１を選択して出力し、クロックドメイン１０２へ供給する。
【００２８】
ホールド対応回路２０１は、前段（例えば、組み合わせ回路など：図示せず）から出力されるデータをデータ入力ノードＤＩＮから取り込む。ホールド対応回路２０１のデータ出力ノードＤＯＵＴから出力されるデータは、組み合わせ回路１２１を介してスキャンフリップフロップ１１１のデータ入力ノードＤへ供給されるとともに、組み合わせ回路１２３を介してスキャンフリップフロップ１１２のデータ入力ノードＤへ供給される。スキャンフリップフロップ１１１のデータ出力ノードＱは、内部に保持するデータを後段（例えば、組み合わせ回路など：図示せず）へ出力する。このとき、クロックドメイン１０１のホールド対応回路２０１からクロックドメイン１０２のスキャンフリップフロップ１１２へのパス（第１パス）は、異クロックドメイン間のユーザロジックパスである。
【００２９】
スキャンフリップフロップ１１２のデータ出力ノードＱから出力されるデータは、組み合わせ回路１２２を介してホールド対応回路２０２のデータ入力ノードＤＩＮに供給される。ホールド対応回路２０２のデータ出力ノードＤＯＵＴから出力されるデータは、後段（例えば、組み合わせ回路など：図示せず）へ供給されるとともに、組み合わせ回路１２１を介してスキャンフリップフロップ１１１のデータ入力ノードＤに供給される。このとき、第２クロックドメインのホールド対応回路２０２からクロックドメイン１０１のスキャンフリップフロップ１１１へのパス（第２パス）は、上記第１パスとは逆方向の異クロックドメイン間のユーザロジックパスである。
【００３０】
つまり、このスキャンテスト回路は、異クロックドメイン間のユーザロジックパス（第１パス、第２パス）の供給元に必ずホールド対応回路が配置されるように構成されている。なお、図３において、スキャンフリップフロップ１１１、１１２およびホールド対応回路２０１、２０２は、スキャンチェーンとして接続されているものとし、その接続の詳細は図示を省略する。
【００３１】
図４に、本発明の実施の形態に係るホールド対応回路２００の回路構成が示される。ホールド対応回路２００は、図３に示されるスキャンテスト回路におけるホールド対応回路２０１、２０２に相当する。ホールド対応回路２００は、図４に示されるように、スキャンフリップフロップ２１０と、ラッチ２２０とを具備し、入力ノードとしてデータ入力ノードＤＩＮと、スキャン入力ノードＳＩＮと、スキャンイネーブル入力ノードＳＥと、クロック入力ノードＣＬＫと、ホールド制御入力ノードＨＬＤとを備え、出力ノードとしてスキャン出力ノードＳＯＵＴと、データ出力ノードＤＯＵＴとを備える。
【００３２】
ホールド対応回路２００のデータ入力ノードＤＩＮ、スキャン入力ノードＳＩＮ、スキャンイネーブル入力ノードＳＥ、クロック入力ノードＣＬＫは、それぞれスキャンフリップフロップ２１０のデータ入力ノードＤ、スキャン入力ノードＳＩＮ、スキャンイネーブル入力ノードＳＥ、クロック入力ノードＣＬＫと共通である。スキャンフリップフロップ２１０のデータ出力ノードＱは、ホールド対応回路２００のスキャン出力ノードＳＯＵＴとなる。ラッチ２２０のデータ入力ノードＤＩは、スキャンフリップフロップ２１０のデータ出力ノードＱに接続される。また、ラッチ２２０のラッチイネーブル入力ノードＧは、ホールド対応回路２００のホールド制御入力ノードＨＬＤとなる。ラッチ２２０のデータ出力ノードＤＯは、ホールド対応回路２００のデータ出力ノードＤＯＵＴとなる。
【００３３】
スキャンフリップフロップ２１０は、データ出力ノードＱから保持するデータをラッチ２２０へ供給するとともに、ホールド対応回路２００のスキャン出力ノードＳＯＵＴから出力する。ラッチ２２０は、ホールド制御入力ノードＨＬＤに印加されるラッチ信号に基づいて、保持データあるいは入力データをホールド対応回路２００のデータ出力ノードＤＯＵＴから出力する。このとき、ホールド制御入力ノードＨＬＤは、ホールド制御端子１４４から入力されるホールド制御信号ＨＯＬＤにより駆動される。ホールド制御信号ＨＯＬＤを制御することにより、ラッチ２２０は、データ入力ノードＤＩに印加される信号をデータ出力ノードＤＯに出力するスルー動作、または、データ入力ノードＤＩに印加される信号に依存せずにデータ出力値を保持する動作に切り替えることができる。
【００３４】
次に、本発明の実施の形態に係るスキャンテスト回路の動作を説明する。
【００３５】
通常動作時では、テストモード制御信号ＴＭＯＤＥは、値“０”に設定される。セレクタ１３０は、入力されるクロック信号のうち、ノード０に入力されるクロック信号ＣＬＫ２を選択して出力する。したがって、クロックドメイン１０１には、クロック入力端子１４１に印加されるクロック信号ＣＬＫ１が供給される。また、クロックドメイン１０２には、クロック入力端子１４２に印加されるクロック信号ＣＬＫ２が供給される。
【００３６】
また、ホールド制御信号ＨＯＬＤは、値“０”に設定され、ホールド対応回路２０１、２０２内では、ラッチ２２０がスキャンフリップフロップ２１０のデータ出力ノードＱにあらわれる信号をそのまま出力する動作を行う。つまり、このときのホールド対応回路２０１、２０２は、スキャンフリップフロップ２１０とほぼ同じ動作を行う。
【００３７】
スキャンテスト動作時では、テストモード制御信号ＴＭＯＤＥは、値“１”に設定される。セレクタ１３０は、入力されるクロック信号のうち、ノード１に入力されるクロック信号ＣＬＫ１を選択して出力する。したがって、クロックドメイン１０１とクロックドメイン１０２とに、共にクロック入力端子１４１から入力されるクロック信号ＣＬＫ１が供給される。
【００３８】
図５は、本発明の実施の形態に係るスキャンテスト回路の動作を示すタイミングチャートである。図３、図４を参照しながら、図５を用いてスキャンテスト動作の詳細について説明する。
【００３９】
図５には、クロック入力端子１４１に印加されるクロックＣＬＫ１がクロックライン上の遅延の影響によって、スキャンフリップフロップ１１２に到達するよりも早くホールド対応回路２０１に到達する場合のタイムチャートが示される。ホールド対応回路２０１とスキャンフリップフロップ１１２との間のパス（第１パス）は、異クロックドメイン間のユーザロジックパスである。図５では、第１パスに対するスキャンテスト回路の動作が示される。第２パスのホールド対応回路２０２、および、スキャンフリップフロップ１１１の動作は同様であり、その説明は省略する。
【００４０】
図５に示されるタイミングチャートは、（ａ）ホールド対応回路２０１のスキャンイネーブル入力ノードＳＥ、（ｂ）クロック入力ノードＣＬＫ、（ｃ）スキャン出力ノードＳＯＵＴ（スキャンフリップフロップ２１０のデータ出力ノードＱ）、（ｄ）ホールド制御入力ノードＨＬＤ、（ｅ）データ出力ノードＤＯＵＴ、（ｆ）スキャンフリップフロップ１１２のクロック入力ノードＣＬＫ、（ｇ）スキャンフリップフロップ１１２のデータ出力ノードＱにおける各信号の波形を示す。また、時刻Ｔ１までの期間はスキャンシフトサイクルであり、時刻Ｔ１から時刻Ｔ２までの期間はスキャンキャプチャサイクルであり、時刻Ｔ２以降の期間はスキャンシフトサイクルである。
【００４１】
時刻Ｔ１までのスキャンシフトサイクルにおいて、データがスキャンチェーン内をシフトされて各スキャンフリップフロップに初期値が設定される。ホールド対応回路２０１内のスキャンフリップフロップ２１０には、データ“Ｄａｔａ１”が設定され、スキャン出力ノードＳＯＵＴから出力される（図５（ｃ））。このとき、ホールド対応回路２０１のスキャンイネーブル入力ノードＳＥは、値“１”を示し（図５（ａ））、ホールド制御入力ノードＨＬＤは、値“０”を示している（図５（ｄ））。ホールド制御入力ノードＨＬＤが値“０”に設定されているため、ホールド対応回路２０１内のラッチ２２０は、スキャンフリップフロップ２１０の出力データをそのまま出力する動作を行う。そのため、ホールド対応回路は、スキャンフリップフロップと同じ動作となる。
【００４２】
その後、時刻Ｔ１から時刻Ｔ２までのスキャンテストのキャプチャサイクルに移行する。このとき、ホールド対応回路２０１のスキャンイネーブル入力ノードＳＥに印加される信号は、値“１”から値“０”に変化する（図５（ａ））。また、ホールド制御入力ノードＨＬＤに印加される信号は、値“０”から値“１”へ変化する（図５（ｄ））。
【００４３】
キャプチャサイクルでは、ホールド制御入力ノードＨＬＤが値“１”に設定されることにより、ホールド対応回路２０１内のラッチ２２０は、スキャンシフトサイクルの最後である時刻Ｔ１におけるスキャンフリップフロップ２１０の出力データをラッチして保持する。そのため、スキャンキャプチャサイクル期間中（Ｔ１〜Ｔ２）、ホールド対応回路２０１のデータ出力ノードＤＯＵＴは、データ“Ｄａｔａ１”に固定される（図５（ｅ））。
【００４４】
また、ホールド対応回路２０１内のスキャンフリップフロップ２１０は、クロック入力ノードＣＬＫに印加されるクロック信号の立ち上りに応答して、データ“Ｄａｔａ２”をキャプチャする（図５（ｂ）（ｃ））。したがって、スキャン出力ノードＳＯＵＴ（データ出力ノードＱ）から出力される信号は、データ“Ｄａｔａ１”からデータ“Ｄａｔａ２”へ変化する（図５（ｃ））。ホールド対応回路２０１内のラッチ２２０は、ホールド制御入力ノードＨＬＤに値“１”が入力されているため（図５（ｄ））、データ出力ノードＤＯＵＴを変化させず、データ“Ｄａｔａ１”の出力を継続する（図５（ｅ））。
【００４５】
その後、スキャンフリップフロップ１１２は、遅れてクロック入力ノードＣＬＫに印加されるクロック信号の立ち上がりに応答して、ホールド対応回路２０１から出力されるデータ“Ｄａｔａ１”をキャプチャする（図５（ｆ）（ｇ））。
【００４６】
時刻Ｔ２において、スキャンフリップフロップへのキャプチャが完了し、スキャンシフトサイクル（時刻Ｔ２以降）に移行する。このとき、ホールド対応回路２０１のスキャンイネーブル入力ノードＳＥに印加される信号は、値“０”から値“１”に変化する（図５（ａ））。ホールド制御入力ノードＨＬＤに印加される信号は、値“１”から値“０”へ変化する（図５（ｄ））。
【００４７】
ここで、スキャンテスト回路において、ホールド対応回路２０１が、例えばスキャンフリップフロップ１１１と同じ一般的なスキャンフリップフロップである場合、データ出力ノードＤＯＵＴに対応するデータ出力ノードＱは、データ“Ｄａｔａ１”を維持しない。すなわち、データ出力ノードＤＯＵＴに対応するデータ出力ノードＱは、スキャンフリップフロップ２１０のデータ出力ノードＱの変化と同様に変化してデータ“Ｄａｔａ２”がキャプチャされることになり、誤動作する（ホールド違反）。
【００４８】
つまり、本実施の形態では、ホールド対応回路２００（２０１、２０２）が異クロックドメイン間のユーザロジックパスの起点となっているため、誤動作（ホールド違反）することなくスキャンテストを行うことが可能となる。第１パスとは逆方向に信号が伝達する異クロックドメイン間のユーザロジックパス（第２パス）についても、パスの先頭がホールド対応回路であるため、第１パスと同様、ホールド違反が発生することはない。
【００４９】
次に、本発明の実施の形態に係るスキャンテスト回路生成方法を説明する。
【００５０】
図６は、本発明の実施の形態に係るスキャンテスト回路生成方法を示すフローチャートである。図８は、スキャンテスト回路生成の入力となる半導体集積回路の例を示す図であり、図６に示されるスキャンテスト回路生成方法により、図３に示されるスキャンテスト回路が生成される。
【００５１】
図８に示されるように、元の半導体集積回路は、スキャンフリップフロップ１１１、１１２、６０１、６０２と、セレクタ１３０と、組み合わせ回路１２１、１２２、１２３と、クロック入力端子１４１、１４２と、テストモード制御端子１４３と、スキャン制御端子１４５とを具備する。スキャンフリップフロップ６０１は、図３に示されるホールド対応回路２０１に相当し、スキャンフリップフロップ６０２は、ホールド対応回路２０２に相当する。スキャンフリップフロップ６０１は、クロックドメイン１０１に属し、クロック入力端子１４１からクロック信号ＣＬＫ１が供給される。また、スキャンフリップフロップ６０２は、クロックドメイン１０２に属し、クロック入力端子１４２からクロック信号ＣＬＫ２が供給される。
【００５２】
スキャンフリップフロップ６０１は、前段（例えば、組み合わせ回路など：図示せず）から出力されるデータをデータ入力ノードＤから取り込んで保持する。スキャンフリップフロップ６０１のデータ出力ノードＱから出力されるデータは、組み合わせ回路１２１を介してスキャンフリップフロップ１１１のデータ入力ノードＤへ供給され、組み合わせ回路１２３を介してスキャンフリップフロップ１１２のデータ入力ノードＤへ供給される。スキャンフリップフロップ６０２は、組み合わせ回路１２２から出力されるデータをデータ入力ノードＤから取り込んで保持する。スキャンフリップフロップ６０２のデータ出力ノードＱから出力されるデータは、組み合わせ回路１２１を介してスキャンフリップフロップ１１１のデータ入力ノードＤへ供給される。スキャンフリップフロップ６０１、６０２に関する接続以外は、図３に示される回路と同じである。
【００５３】
本発明のスキャンテスト回路生成方法では、まず、クロックドメインの抽出が行われる（ステップＳ４０２）。図８に示される半導体集積回路では、クロックドメイン１０１とクロックドメイン１０２とが抽出される。クロックドメインが抽出されると、異クロックドメイン間のユーザロジックパスが抽出される。次に、スキャンフリップフロップ６０１（Ｑ）から組み合わせ回路１２３を経由してスキャンフリップフロップ１１２（Ｄ）に至るパス（第１パス）と、スキャンフリップフロップ６０２（Ｑ）から組み合わせ回路１２１を経由してスキャンフリップフロップ１１１（Ｄ）に至るパス（第２パス）が抽出される。それぞれの異クロックドメイン間のユーザロジックパスの起点となるスキャンフリップフロップのインスタンス名が抽出される。図８では、スキャンフリップフロップ６０１とスキャンフリップフロップ６０２とが抽出される。このような抽出処理は、市販のタイミング解析ツールなどを用いることにより実施できる。
【００５４】
異クロックドメイン間ユーザロジックパスの起点となるスキャンフリップフロップが抽出されると、それらのスキャンフリップフロップは、ホールド対応回路に置き換えられる（ステップＳ４０４）。図８では、スキャンフリップフロップ６０１がホールド対応回路２０１へ、スキャンフリップフロップ６０２がホールド対応回路２０２へ置換される。更に、ホールド制御端子１４４が作成され、ホールド対応回路２０１、２０２のホールド制御入力ノードＨＬＤは、ホールド制御端子１４４に接続される。
【００５５】
ホールド対応回路への置換が完了すると、回路上のスキャンフリップフロップをシリアル接続してシフトレジスタ構成のスキャンチェーンを構築するテスト設計が行われる（ステップＳ４０６）。続いて、チップ上の回路の配置、配線、タイミング調整などを行うレイアウト処理が実行され（ステップＳ４０８）、スキャンテスト回路生成は終了する。これらの処理は、通常のテスト設計ツール、レイアウトツールを用いて実施できる。
【００５６】
このように、本実施の形態に係る半導体集積回路では、異クロックドメイン間ユーザロジックパスの起点となるスキャンフリップフロップは、ホールド対応回路に置き換えられる。そのため、スキャンテスト時、異クロックドメイン間ユーザロジックパスに対して、ホールドタイミング違反は発生しない。したがって、レイアウト処理（ステップＳ４０８）実施後に、スキャンテストにおける異クロックドメイン間ユーザロジックパスに起因するホールドタイミング違反を修正するためのレイアウト処理の繰り返しは、発生しない。
【００５７】
本実施の形態では、ステップＳ４０２、ステップＳ４０４、ステップＳ４０６、ステップＳ４０８の順としているが、ステップＳ４０２とステップＳ４０４は、ステップＳ４０８の前であれば、どこで実施してもよい。また、ホールド対応回路２００は、図４に示されるように構成されるとして説明されたが、これは一例であり、スキャンテストのキャプチャサイクル期間に、データ出力信号が保持できる回路構成であればよい。
【００５８】
本実施の形態に係るスキャンテスト回路生成方法は、コンピュータシステムによって実現可能である。例えば、図９に示されるように、サーバ装置３００と複数のコンピュータ装置３０６とを有するコンピュータシステムにおいて、上述のスキャンテスト回路生成方法を実施することができる。
【００５９】
本発明の実施の形態に係るスキャンテスト回路生成方法を実施するためのコンピュータシステムは、例えば、サーバ装置３００と、ネットワーク３０５と、コンピュータ装置３０６とを備える。サーバ装置３００は、通信部３０１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を含む処理部３０２と、記憶部３０３と、入出力インターフェースである入出力部３０４とを具備する。コンピュータ装置３０６は、通信部３０７と、記憶部３０８と、ＣＰＵを含む処理部３０９と、入出力インターフェースである入出力部３１０とを具備する。
【００６０】
ネットワーク３０５は、コンピュータ装置３０６とサーバ装置３００とを接続する。ネットワーク３０５は、移動体通信網や、専用線網や、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。また、ネットワークによる接続なしに、単独のコンピュータ装置で実現することも可能である。
【００６１】
記憶部３０３は、本実施の形態におけるスキャンテスト回路生成方法を実現するための実行プログラムや、ネットリストデータ、セルライブラリ、スキャンイン・アウト端子情報、スキャンフリップフロップ情報といったデータを記憶する。記憶部３０３は、ハードディスクやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の記憶装置を含む。処理部３０２は、記憶部３０３に記憶される実行プログラムを読み込んで実行し、サーバ装置３００の機能を実現する。なお、各実行プログラムやデータは、サーバ装置３００の管理者により、キーボードやマウス等の入力機器、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の出力機器を含む入出力部３０４を介して外部から記憶部３０３へ格納されたり、表示されたりする。また、サーバ装置３００は、通信部３０１によってネットワーク３０５を介して、コンピュータ装置３０６へ実行プログラムやデータを提供することが可能である。
【００６２】
コンピュータ装置３０６は、本実施の形態におけるスキャンテスト回路生成方法を実現するための回路生成システムを実行する。コンピュータ装置３０６は、例えば、パーソナルコンピュータに例示される一般的な汎用コンピュータである。コンピュータ装置３０６は、通信部３０７を備え、ネットワーク３０５を介してサーバ装置３００と通信が可能である。コンピュータ装置３０６は、ネットワーク３０５を介してサーバ装置３００に接続し、スキャンテスト回路設計を実現するための実行プログラムやデータを取得し、記憶部３０８に記憶する。処理部３０９は、記憶部３０８に記憶される実行プログラムを読み込んで実行し、コンピュータ装置３０６の所定の機能を実現する。なお、コンピュータ装置３０６は、コンピュータ装置３０６の使用者との入出力インターフェースである入出力部３１０を備える。入出力部３１０は、キーボードやマウス等の入力機器、ＬＣＤ等の出力機器を含む。コンピュータ装置３０６は、上述の構成により、サーバ装置３００から実行プログラムを取得して実行し、スキャンテスト回路生成方法を実現する。
【００６３】
ここで、本実施の形態におけるスキャンテスト回路設計の実行プログラムは、サーバ装置３００の記憶部３０３に記憶される形態には限定されない。実行プログラムは、例えば、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）やフラッシュメモリを搭載したＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリといった持ち運び可能な記憶媒体に記録されてもよい。この場合、実行プログラムは、これらの持ち運び可能な記憶媒体から、コンピュータ装置３０６が備えるＣＤドライブやＵＳＢポート等を介して導入される。
【００６４】
本実施の形態では、異クロックドメイン間ユーザロジックパス（第１パス、第２パス）の起点となるスキャンフリップフロップ（６０１、６０２）は、レイアウト前の段階で、ホールド対応回路（２０１、２０２）に置き換えられる。ホールド対応回路（２０１、２０２）は、スキャンテストにおけるキャプチャサイクル期間中、データ出力信号を保持する動作を行う。そのため、スキャンテストの際に、異クロックドメイン間ユーザロジックパス（第１パス、第２パス）において、ホールド違反は発生しない。そのため、異クロックドメイン間ユーザロジックパスのホールドタイミング違反により、適切なテストが出来ないという問題を解決することができる。このように、本発明によれば、スキャンテスト動作時、異クロックドメイン間のユーザロジックパスに対するホールド違反がなくなり、レイアウト処理を繰り返して実施することがなくなる。
【００６５】
図７に、本発明の実施の形態に係るスキャンテスト回路生成方法の変形例を説明するためのフローチャートが示される。図６に示されるスキャンテスト回路生成方法に比べて、ステップＳ４０２、Ｓ４０４が削除され、代りにステップＳ５０２、Ｓ５０４が追加される。ステップＳ４０８の後に追加される判定するステップＳ５０９によって、ホールド違反を検出したときのみステップＳ５０２、Ｓ５０４が実行される。図６、図７に示されるスキャンテスト回路生成方法の差分を以下に説明する。
【００６６】
テスト設計（ステップＳ４０６）、レイアウト処理（ステップＳ４０８）の後、レイアウト処理（ステップＳ４０８）で生成されるネットリストに対して、タイミング解析が実施される。スキャンテスト動作の異クロックドメイン間ユーザロジックパスにおいて、ホールド違反が検出されない場合（ステップＳ５０９−ＹＥＳ）、スキャンテスト回路生成を終了する。ホールド違反が検出される場合（ステップＳ５０９−ＮＯ）、ステップＳ５０２へ進む。タイミング解析処理は、市販のタイミング解析ツールを用いることで容易に実施できる。ここでは、例として、図８に示される第１パスにホールド違反が検出され、第２パスにはホールド違反が検出されていないものとする。
【００６７】
スキャンテスト動作時のタイミング解析によって、ホールド違反が検出されるスキャンフリップフロップが抽出される（ステップＳ５０２）。本処理では、ホールド違反が検出されるパスの起点であるスキャンフリップフロップ６０１が抽出される。更に、半導体集積回路内のクロックドメインが抽出される。ここでは、半導体集積回路に２つのクロックドメイン、クロックドメイン１０１とクロックドメイン１０２とが抽出される。更に、異クロックドメイン間のユーザロジックパスが抽出される。ここでは、第１パスおよび第２パスが抽出される。更に、その異クロックドメイン間ユーザロジックパスの起点となるスキャンフリップフロップのインスタンス名が抽出される。ここでは、スキャンフリップフロップ６０１およびスキャンフリップフロップ６０２が抽出される。更に、これらの情報に基づいて、ホールド違反が検出される異クロックドメイン間ユーザロジックパスが抽出され、その起点となるスキャンフリップフロップのインスタンス名が抽出される。ここでは、スキャンフリップフロップ６０１が起点となるスキャンフリップフロップとして抽出される。
【００６８】
抽出されたホールド違反が検出される異クロックドメイン間ユーザロジックパスの起点となるスキャンフリップフロップは、ホールド対応回路２００に置き換えられる（ステップＳ５０４）。ここでは、スキャンフリップフロップ６０１がホールド対応回路２０１に置き換えられる。更に、ホールド対応回路２０１のホールド制御入力ノードＨＬＤは、ホールド制御端子１４４に接続される。
【００６９】
このように、図６に示されるスキャンテスト回路生成方法では、異クロックドメイン間ユーザロジックパスの起点となるスキャンフリップフロップを抽出する工程（ステップＳ４０２）、および、パス起点のスキャンフリップフロップをホールド対応回路２００に置き換える工程（ステップＳ４０４）は、レイアウト処理（ステップＳ４０８）の前に実施される。一方、図７に示されるスキャンテスト回路生成方法では、レイアウト処理（ステップＳ４０８）後に、スキャンテスト動作において異クロックドメイン間ユーザロジックパスのホールド違反があるか否かの確認工程（ステップＳ５０９）を備え、本工程でホールド違反が存在する場合に、ホールド違反が検出される異クロックドメイン間ユーザロジックパスの起点のスキャンフリップフロップの抽出を行い（ステップＳ５０２）、抽出されるスキャンフリップフロップはホールド対応回路２００に置き換えられる（ステップＳ５０４）。
【００７０】
すなわち、図７に示されるスキャンテスト回路生成方法では、ホールド違反がある異クロックドメイン間パスの起点のフロップフロップのみホールド対応回路２００に置き換えられる。ホールド違反が検出されない異クロックドメイン間ユーザロジックパスの起点のフロップフロップはホールド対応回路２００へ置き換えられないため、ホールド対応回路２００の置き換えによる面積オーバーヘッドを削減することができる。
【００７１】
以上、実施の形態を参照して本願発明を説明したが、上記実施の形態は、矛盾のない限り組み合わせて実施可能である。また、本願発明は上記実施の形態に限定されるものではなく、本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００７２】
１０  セレクタ
２１、２２、２３、２４  フリップフロップ
３０、３１、３２、３３、３４、３５、３６、３７  バッファ
５０  遅延素子
１０１、１０２  クロックドメイン
１１１、１１２  スキャンフリップフロップ
１２１、１２２、１２３  組み合わせ回路
１３０  セレクタ
１４１、１４２、１４３、１４４、１４５  外部端子
２００、２０１、２０２  ホールド対応回路
２１０  スキャンフリップフロップ
２２０  ラッチ
３００  サーバ装置
３０１  通信部
３０２  処理部
３０３  記憶部
３０４  入出力インターフェースである入出力部
３０５  ネットワーク
３０６  コンピュータ装置
３０７  通信部
３０８  記憶部
３０９  処理部
３１０  入出力部
６０１、６０２  スキャンフリップフロップ
【図１】
2013019694.tif 000003
【図２】
2013019694.tif 000004
【図３】
2013019694.tif 000005
【図４】
2013019694.tif 000006
【図５】
2013019694.tif 000007
【図６】
2013019694.tif 000008
【図７】
2013019694.tif 000009
【図８】
2013019694.tif 000010
【図９】
2013019694.tif 000011