(57)【要約】【課題】半導体集積回路において、スキャンテスト時における消費電力を削減する。【解決手段】半導体集積回路設計装置は、第１のスキャンＦＦのデータ入力端子に接続された第１のロジックコーンの入力端子数である第１の入力端子数と、第１のロジックコーンにデータを設定する第２のスキャンＦＦのデータ入力端子に接続された第２のロジックコーンの入力端子数である第２の入力端子数とを比較するデザイン解析部と、複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、複数のスキャンＦＦのそれぞれを第１のスキャンＦＦとした場合の前記比較結果に応じて、複数のスキャンＦＦを複数のグループに分類し、複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを複数のグループのそれぞれについて生成するスキャンチェーン構築部と、を備える。【選択図】図１
2013080331.tif 000002
【特許請求の範囲】
【請求項１】
第１のスキャンフリップフロップ（以下「スキャンＦＦ」という。）のデータ入力端子に接続された第１のロジックコーンの入力端子数である第１の入力端子数と、該第１のロジックコーンにデータを設定する第２のスキャンＦＦのデータ入力端子に接続された第２のロジックコーンの入力端子数である第２の入力端子数とを比較するデザイン解析部と、
複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンＦＦのそれぞれを前記第１のスキャンＦＦとした場合の前記比較結果に応じて、該複数のスキャンＦＦを複数のグループに分類し、該複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを該複数のグループのそれぞれについて生成するスキャンチェーン構築部と、を備えることを特徴とする半導体集積回路設計装置。
【請求項２】
前記スキャンチェーン構築部は、前記複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンＦＦ同士を同一のグループに分類するとともに、前記第１の入力端子数が前記第２の入力端子数よりも大きい場合には、前記第２のスキャンＦＦを前記第１のスキャンＦＦと同一のグループに分類することを特徴とする、請求項１に記載の半導体集積回路設計装置。
【請求項３】
前記複数のスキャンチェーンのそれぞれに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定するクロック制御回路挿入部を備えることを特徴とする、請求項１または２に記載の半導体集積回路設計装置。
【請求項４】
前記クロック制御回路挿入部は、スキャンチェーンに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することを特徴とする、請求項３に記載の半導体集積回路設計装置。
【請求項５】
前記スキャンチェーン構築部は、前記第２のスキャンＦＦが第３のスキャンＦＦのデータ入力端子に接続された第３のロジックコーンにもデータを設定し、かつ、該第３のロジックコーンの入力端子数が前記第２の入力端子数よりも大きい場合には、前記第１の入力端子数が該第３のロジックコーンの入力端子数以上であるときに、前記第１のスキャンＦＦおよび前記第２のスキャンＦＦを同一のグループに分類し、それ以外のときに、該第３のスキャンＦＦおよび前記第２のスキャンＦＦを同一のグループに分類することを特徴とする、請求項１ないし４のいずれか１項に記載の半導体集積回路設計装置。
【請求項６】
前記スキャンチェーン構築部は、前記第１のロジックコーンにデータを設定する第４のスキャンＦＦのデータ入力端子に接続された第４のロジックコーンの入力端子数である第４の入力端子数と、前記第１の入力端子数とを比較し、前記第１の入力端子数が前記第２の入力端子数よりも大きく、かつ、前記第１の入力端子数が前記第４の入力端子数よりも大きい場合には、前記第１のスキャンＦＦ、前記第２のスキャンＦＦおよび前記第４のスキャンＦＦを同一のグループに分類することを特徴とする、請求項１ないし５のいずれか１項に記載の半導体集積回路設計装置。
【請求項７】
前記スキャンチェーン構築部は、前記複数のスキャンＦＦを前記複数のグループに分類した際に、前記複数のグループのいずれかのグループに含まれるスキャンＦＦの数が所定の数を上回った場合には、同一の機能ブロックに属するスキャンＦＦを該グループに含めるようにし、それ以外のスキャンＦＦを他のグループに分類することを特徴とする、請求項１ないし６のいずれか１項に記載の半導体集積回路設計装置。
【請求項８】
前記デザイン解析部、前記スキャンチェーン構築部および前記クロック制御回路挿入部は、前記複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の代わりに、前記複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンに対するテストパタン数を用いることを特徴とする、請求項１ないし７のいずれか１項に記載の半導体集積回路設計装置。
【請求項９】
第１のスキャンフリップフロップ（以下「スキャンＦＦ」という。）のデータ入力端子に接続された第１のロジックコーンの入力端子数である第１の入力端子数と、該第１のロジックコーンにデータを設定する第２のスキャンＦＦのデータ入力端子に接続された第２のロジックコーンの入力端子数である第２の入力端子数とを比較する工程と、
複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンＦＦのそれぞれを前記第１のスキャンＦＦとした場合の前記比較結果に応じて、該複数のスキャンＦＦを複数のグループに分類する工程と、
前記複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する工程と、を含むことを特徴とする半導体集積回路設計方法。
【請求項１０】
前記複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンＦＦ同士を同一のグループに分類するとともに、前記第１の入力端子数が前記第２の入力端子数よりも大きい場合には、前記第２のスキャンＦＦを前記第１のスキャンＦＦと同一のグループに分類することを特徴とする、請求項９に記載の半導体集積回路設計方法。
【請求項１１】
前記複数のスキャンチェーンのそれぞれに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定する工程を含むことを特徴とする、請求項９または１０に記載の半導体集積回路設計方法。
【請求項１２】
スキャンチェーンに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することを特徴とする、請求項１１に記載の半導体集積回路設計方法。
【請求項１３】
前記第２のスキャンＦＦが第３のスキャンＦＦのデータ入力端子に接続された第３のロジックコーンにもデータを設定し、かつ、該第３のロジックコーンの入力端子数が前記第２の入力端子数よりも大きい場合には、前記第１の入力端子数が該第３のロジックコーンの入力端子数以上であるときに、前記第１のスキャンＦＦおよび前記第２のスキャンＦＦを同一のグループに分類し、それ以外のときに、該第３のスキャンＦＦおよび前記第２のスキャンＦＦを同一のグループに分類することを特徴とする、請求項９ないし１２のいずれか１項に記載の半導体集積回路設計方法。
【請求項１４】
前記第１のロジックコーンにデータを設定する第４のスキャンＦＦのデータ入力端子に接続された第４のロジックコーンの入力端子数である第４の入力端子数と、前記第１の入力端子数とを比較する工程と、
前記第１の入力端子数が前記第２の入力端子数よりも大きく、かつ、前記第１の入力端子数が前記第４の入力端子数よりも大きい場合には、前記第１のスキャンＦＦ、前記第２のスキャンＦＦおよび前記第４のスキャンＦＦを同一のグループに分類する工程と、を含むことを特徴とする、請求項９ないし１３のいずれか１項に記載の半導体集積回路設計方法。
【請求項１５】
前記第１ないし第４のロジックコーンの入力端子数である第１ないし第４の入力端子数の代わりに、前記第１ないし第４のロジックコーンに対するテストパタン数である第１ないし第４のテストパタン数を用いることを特徴とする、請求項９ないし１４のいずれか１項に記載の半導体集積回路設計方法。
【請求項１６】
第１のスキャンフリップフロップ（以下「スキャンＦＦ」という。）のデータ入力端子に接続された第１のロジックコーンの入力端子数である第１の入力端子数と、該第１のロジックコーンにデータを設定する第２のスキャンＦＦのデータ入力端子に接続された第２のロジックコーンの入力端子数である第２の入力端子数とを比較する処理と、
複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンＦＦのそれぞれを前記第１のスキャンＦＦとした場合の前記比較結果に応じて、該複数のスキャンＦＦを複数のグループに分類する処理と、
前記複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する処理と、をコンピュータに実行させることを特徴とするプログラム。
【請求項１７】
前記複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンＦＦ同士を同一のグループに分類するとともに、、前記第１の入力端子数が前記第２の入力端子数よりも大きい場合には、前記第２のスキャンＦＦを前記第１のスキャンＦＦと同一のグループに分類することを特徴とする、請求項１６に記載のプログラム。
【請求項１８】
前記複数のスキャンチェーンのそれぞれに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定する処理を、コンピュータに実行させることを特徴とする、請求項１６または１７に記載のプログラム。
【請求項１９】
スキャンチェーンに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することを特徴とする、請求項１８に記載のプログラム。
【請求項２０】
前記第１ないし第４のロジックコーンの入力端子数である第１ないし第４の入力端子数の代わりに、前記第１ないし第４のロジックコーンに対するテストパタン数である第１ないし第４のテストパタン数を用いることを特徴とする、請求項１６ないし１９のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路設計装置、半導体集積回路設計方法およびプログラムに関し、特に、テスト容易化設計（ＤＦＴ：Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔａｂｉｌｉｔｙ）に基づくスキャンテストが可能な半導体集積回路の設計装置、設計方法およびプログラムに関する。
【背景技術】
【０００２】
半導体集積回路（以下、「ＬＳＩ」という。）に関して、機能テストで十分な故障検出を確保することが必要とされる。ＬＳＩは、ロジック、メモリ、ＩＰコア等が搭載された大規模回路であることから、スキャンテストにより故障検出を行う手法が主流となっている。スキャンテストにおいては、スキャンシフト動作の際に、すべてのスキャンフリップフロップ（以下、「スキャンＦＦ」という。）を同時に動作させる。このとき、全スキャンＦＦまでのクロックラインが同時に動作することで瞬間的に消費電力が増大し、テスタでの電力リミットオーバーによるテスタ誤動作、テスト不能等を引き起こすおそれがある。そこで、スキャンテストにおいて、消費電力を抑える技術が必要とされている。
【０００３】
特許文献１は、シフトモード動作後にスキャンＦＦのＱ端子の固定解除（ホールド解除）を行う際に発生する消費電力を低減するために固定解除のタイミングをグループ毎に分けることで増加するテスト時間に対して、テストに必要なスキャンＦＦのＱ端子のみ固定解除することで、消費電力を低減しつつテスト時間を削減する。
【０００４】
図１７は、特許文献１に記載されたクロック探索処理の詳細な手順を示すフローチャートである。
【０００５】
ステップＳ１０において、着目しているフリップフロップのクロック端子からバックトレースして、クロック名を抽出する。このとき、着目しているクロック信号名をクロック名としてクロック関係情報記憶部３３に記憶させる。
【０００６】
続いて、ステップＳ１１において、フリップフロップのデータ入力端子のファンインコーンを抽出する。
【０００７】
ステップＳ１２において、当該フリップフロップを終点とするパスについて、当該パスの始点に当たるフリップフロップをすべて抽出し、抽出したフリップフロップに入力されているクロック信号名を抽出する。このとき、抽出したファンインコーンのフリップフロップのクロック信号名を、着目しているクロック名の関連クロックドメイン名として、クロック関係情報記憶部３３に記憶させる。
【０００８】
本工程により、クロック信号に基づき、テストパタン生成に必要な論理回路の接続関係を抽出し、テストパタン生成時に必要なスキャンＦＦのＱ出力端子のみを解除することが可能となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１３９３２２号公報（第１１頁、図１２）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以下の分析は、本発明者によってなされたものである。
【００１１】
特許文献１に記載された技術は、テスト対象とする論理回路への値の設定を考慮してスキャンチェーン構成をしないため、スキャンシフト時の最大消費電力を抑える場合にテストパタン数が増加し、テスト時間が増大し得る。
【００１２】
パタン数の増加が発生する理由は、対象スキャンＦＦのデータ入力に接続されたロジックコーン（すなわち、当該データ入力端子に接続された論理回路のうちの当該データ入力端子の論理値に影響を及ぼし得る回路の集合）の解析は可能であるものの、そのロジックコーンに値を設定するスキャンＦＦ（以下、「制御スキャンＦＦ」という。）側の解析をしていないためである。
【００１３】
特許文献１に記載された技術によるとテストパタン数が増加するメカニズムについて、一例として、図１８の半導体集積回路に基づいて説明する。
【００１４】
バッファ回路５００をテストするのに必要なパタンは、“｛０｝と｛１｝”の２パタンとなる。一方、ＯＲ回路７００をテストするのに必要なパタンは、図１９（ａ）に示すように５パタンとなる。
【００１５】
ここで、テストパタンを止めたときのパタン数の増加の有無について検討する。図１９（ｃ）に示すように、ＯＲ回路７００のテストパタンを止めた場合には、パタン数が増加する。一方、図１９（ｂ）に示すように、バッファ回路５００のテストパタンを止めても、ＯＲ回路７００をテストするための別のパタンに、そのパタンを含めることで、全体のパタン数の増加を防ぐことができる。
【００１６】
すなわち、データ入力端子に接続されたロジックコーンをテストするためのパタン数の近いスキャンＦＦ毎にスキャンチェーンを構成し、テストパタン数の多いスキャンＦＦのスキャンチェーンを常に動かし、テストパタン数が少ないスキャンＦＦのスキャンチェーンを各々交互に動作させることで、パタン数を増加させることなく、１パタン当りに動作するスキャンＦＦの数を減らし、消費電力を削減することが可能となる。
【００１７】
ロジックコーンのテストに必要なテストパタン数は、ロジックコーンの入力端子数に依存し、バッファ回路等の１入力ゲートをテストするのに必要なテストパタンは、“｛０｝および｛１｝”であり、テストパタン数は２となる。一方、２入力ＯＲゲートをテストするのに必要なテストパタンは“｛００｝、｛１０｝および｛０１｝”であり、テストパタン数は３となる。
【００１８】
特許文献１に記載された技術でも、クロック探索処理によって、対象スキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数を解析することができる。スキャンＦＦ８００はロジックコーン（ＯＲ回路７００）の入力端子数が多いため、動作率の高いスキャンチェーンに含める。一方、スキャンＦＦ６００、６１０、６２０、６３０はロジックコーン（バッファ回路５００、５１０、５２０、５３０）のテストに必要なテストパタン数が少ないため、動作率の低いスキャンチェーンに含める。
【００１９】
しかし、図１９（ａ）に示すように、ＯＲ回路７００をテストするためには、ＯＲ回路７００の入力端子に接続されたスキャンＦＦ６００、６１０、６２０、６３０に値を設定する必要がある。したがって、スキャンＦＦ６００、６１０、６２０、６３０を動作率の低いチェーンに含めてしまうと、入力端子７００ａ〜７００ｄの値の制御ができず、パタン数が増加してしまう。
【００２０】
したがって、スキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数に応じてスキャンＦＦを分類し、入力端子数の多いスキャンＦＦを動作率の高いスキャンチェーンに含めるとともに、入力端子数の少ないスキャンＦＦを動作率の低いスキャンチェーンに含めた場合には、スキャンシフト時に動作するスキャンＦＦの個数を削減することはできるものの、スキャンテストにおけるテストパタン数が増大し、テストに要する期間の長期化を招くおそれがある。
【００２１】
そこで、スキャンテストにおけるテストパタン数を増大させることなく、スキャンシフト時に動作するスキャンＦＦの個数を削減して消費電力を抑えることが課題となる。
【課題を解決するための手段】
【００２２】
本発明の第１の視点に係る半導体集積回路設計装置は、
第１のスキャンＦＦのデータ入力端子に接続された第１のロジックコーンの入力端子数である第１の入力端子数と、該第１のロジックコーンにデータを設定する第２のスキャンＦＦのデータ入力端子に接続された第２のロジックコーンの入力端子数である第２の入力端子数とを比較するデザイン解析部と、
複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンＦＦのそれぞれを前記第１のスキャンＦＦとした場合の前記比較結果に応じて、該複数のスキャンＦＦを複数のグループに分類し、該複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを該複数のグループのそれぞれについて生成するスキャンチェーン構築部と、を備える。
【００２３】
本発明の第２の視点に係る半導体集積回路設計方法は、
第１のスキャンＦＦのデータ入力端子に接続された第１のロジックコーンの入力端子数である第１の入力端子数と、該第１のロジックコーンにデータを設定する第２のスキャンＦＦのデータ入力端子に接続された第２のロジックコーンの入力端子数である第２の入力端子数とを比較する工程と、
複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンＦＦのそれぞれを前記第１のスキャンＦＦとした場合の前記比較結果に応じて、該複数のスキャンＦＦを複数のグループに分類する工程と、
前記複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する工程と、を含む。
【００２４】
本発明の第３の視点に係るプログラムは、
第１のスキャンＦＦのデータ入力端子に接続された第１のロジックコーンの入力端子数である第１の入力端子数と、該第１のロジックコーンにデータを設定する第２のスキャンＦＦのデータ入力端子に接続された第２のロジックコーンの入力端子数である第２の入力端子数とを比較する処理と、
複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンＦＦのそれぞれを前記第１のスキャンＦＦとした場合の前記比較結果に応じて、該複数のスキャンＦＦを複数のグループに分類する処理と、
前記複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する処理と、をコンピュータに実行させる。なお、プログラムは、非トランジエントなコンピュータ読み取り可能な（ｎｏｎ−ｔｒａｎｓｉｅｎｔ  ｃｏｍｐｕｔｅｒ−ｒｅａｄａｂｌｅ）記録媒体に記録したプログラム製品としても提供し得る。
【発明の効果】
【００２５】
本発明に係る半導体集積回路設計装置、半導体集積回路設計方法、および、プログラムによると、半導体集積回路のスキャンテストにおけるテストパタン数を増大させることなく、スキャンシフト時に動作するスキャンＦＦの個数を削減して消費電力を抑えることが可能となる。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態に係る半導体集積回路設計装置の構成を一例として示すブロック図である。
【図２】本発明に係る半導体集積回路設計装置の動作について説明するための図である。
【図３】第１の実施形態に係る半導体集積回路設計装置におけるデザイン解析部の動作を一例として示すフローチャートである。
【図４】第１の実施形態に係る半導体集積回路設計装置おけるロジックコーン入力端子数リストを一例として示す表である。
【図５】第１の実施形態に係る半導体集積回路設計装置おけるスキャンＦＦ情報リストを一例として示す表である。
【図６】第１の実施形態に係る半導体集積回路設計装置におけるスキャンチェーン情報リストを一例として示す表である。
【図７】第１の実施形態に係る半導体集積回路設計装置におけるスキャンチェーン構築部の動作を一例として示すフローチャートである。
【図８】第１の実施形態に係る半導体集積回路設計装置におけるクロック制御回路挿入部の動作を一例として示すフローチャートである。
【図９】第１の実施形態に係る半導体集積回路設計装置におけるパタン生成部の動作を一例として示すフローチャートである。
【図１０】第１の実施形態に係る半導体集積回路設計装置によって設計された半導体集積回路の構成を一例として示すブロック図である。
【図１１】第１の実施形態に係る半導体集積回路設計装置によって設計された半導体集積回路におけるクロック制御回路の構成を一例として示す回路図である。
【図１２】第１の実施形態に係る半導体集積回路設計装置によって設計された半導体集積回路におけるクロック制御回路の動作を一例として示すタイミングチャートである。
【図１３】第１の実施形態に係る半導体集積回路設計装置の効果の一例について説明するための図である。
【図１４】第２の実施形態に係る半導体集積回路設計装置の構成を一例として示すブロック図である。
【図１５】第２の実施形態に係る半導体集積回路設計装置におけるロジックコーンパタン数リストを一例として示す表である。
【図１６】第２の実施形態に係る半導体集積回路設計装置におけるデザイン解析部の動作を一例として示すフローチャートである。
【図１７】特許文献１に記載されたクロック探索処理の詳細手順である。
【図１８】特許文献１の課題を説明するための半導体集積回路である。
【図１９】特許文献１の課題を説明するための半導体集積回路をテストするのに必要なテストパタンである。
【発明を実施するための形態】
【００２７】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。図１は、本発明に係る半導体集積回路設計装置の構成を一例として示すブロック図である。また、図２は、本発明に係る半導体集積回路設計装置の動作について説明するための図である。
【００２８】
図１および図２（ａ）を参照すると、本発明に係る半導体集積回路設計装置は、第１のスキャンＦＦ（ＦＦ１）のデータ入力端子に接続された第１のロジックコーン（ＬＣ１）の入力端子数である第１の入力端子数（Ｎ１）と、第１のロジックコーン（ＬＣ１）にデータを設定する第２のスキャンＦＦ（ＦＦ２）のデータ入力端子に接続された第２のロジックコーン（ＬＣ２）の入力端子数である第２の入力端子数（Ｎ２）とを比較するデザイン解析部（１００）と、複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンＦＦのそれぞれを第１のスキャンＦＦとした場合の前記比較結果に応じて、該複数のスキャンＦＦを複数のグループに分類し、該複数のグループのそれぞれに含まれるスキャンＦＦを相互に接続したスキャンチェーンを該複数のグループのそれぞれについて生成するスキャンチェーン構築部（２００）と、を備える。ここで、スキャンチェーン構築部（２００）は、複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンＦＦ同士を同一のグループに分類するとともに、第１の入力端子数（Ｎ１）が第２の入力端子数（Ｎ２）よりも大きい場合には（Ｎ１＞Ｎ２）、第２のスキャンＦＦ（ＦＦ２）を第１のスキャンＦＦ（ＦＦ１）と同一のグループに分類することが好ましい。
【００２９】
このとき、データ入力端子に接続されたロジックコーンの入力端子数が相対的に多いスキャンＦＦ同士と、相対的に少ないスキャンＦＦ同士を、別々のグループに分類し、別個のスキャンチェーンに含まれるようにすることが可能となる。また、データ入力端子に接続されたロジックコーンの入力端子数が相対的に少ないスキャンＦＦが、データ入力端子に接続されたロジックコーンの入力端子数が相対的に多いスキャンＦＦのデータ入力端子に接続されたロジックコーンにデータを設定している場合には、これらのスキャンＦＦを同一のスキャンチェーンに含まれるようにすることが可能となる。
【００３０】
半導体集積回路設計装置は、前記複数のスキャンチェーンのそれぞれに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定するクロック制御回路挿入部（３００）を備えることが好ましい。クロック制御回路挿入部（３００）は、スキャンチェーンに含まれるスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することが好ましい。
【００３１】
このとき、データ入力端子に接続されたロジックコーンの入力端子数が相対的に少ないスキャンＦＦを含むスキャンチェーンの動作率を相対的に低くし、データ入力端子に接続されたロジックコーンの入力端子数が相対的に多いスキャンＦＦを含むスキャンチェーンの動作率を相対的に高くすることで、テストパタン数を増加させることなく、稼動するスキャンＦＦの個数を削減することが可能となる。したがって、スキャンテストのスキャンシフト動作における消費電力を削減することができる。
【００３２】
図２（ｂ）を参照すると、スキャンチェーン構築部（２００）は、第２のスキャンＦＦ（ＦＦ２）が第３のスキャンＦＦ（ＦＦ３）のデータ入力端子に接続された第３のロジックコーン（ＬＣ３）にもデータを設定し、かつ、第３のロジックコーンの入力端子数（Ｎ３）が第２の入力端子数（Ｎ２）よりも大きい場合には（Ｎ３＞Ｎ２）、第１の入力端子数（Ｎ１）が第３のロジックコーンの入力端子数（Ｎ３）以上であるときに（Ｎ１≧Ｎ３）、第１のスキャンＦＦ（ＦＦ１）および第２のスキャンＦＦ（ＦＦ２）を同一のグループに分類し、それ以外のときに（Ｎ１＜Ｎ３）、第３のスキャンＦＦ（ＦＦ３）および第２のスキャンＦＦ（ＦＦ２）を同一のグループに分類するようにしてもよい。
【００３３】
図２（ｃ）を参照すると、スキャンチェーン構築部（２００）は、第１のロジックコーン（ＬＣ１）にデータを設定する第４のスキャンＦＦ（ＦＦ４）のデータ入力端子に接続された第４のロジックコーン（ＬＣ４）の入力端子数である第４の入力端子数（Ｎ４）と、第１の入力端子数（Ｎ１）とを比較し、第１の入力端子数が第２の入力端子数よりも大きく、かつ、第１の入力端子数が第４の入力端子数よりも大きい場合には（Ｎ１＞Ｎ２、Ｎ１＞Ｎ４）、第１のスキャンＦＦ、第２のスキャンＦＦおよび第４のスキャンＦＦ（ＦＦ１、ＦＦ２、ＦＦ４）を同一のグループに分類するようにしてもよい。
【００３４】
また、スキャンチェーン構築部（２００）は、複数のスキャンＦＦを複数のグループに分類した際に、複数のグループのいずれかのグループに含まれるスキャンＦＦの数が所定の数を上回った場合には、同一の機能ブロックに属するスキャンＦＦを該グループに含めるようにし、それ以外のスキャンＦＦを他のグループに分類することが好ましい。
【００３５】
なお、デザイン解析部（１００）、スキャンチェーン構築部（２００）およびクロック制御回路挿入部（３００）は、前記複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の代わりに、前記複数のスキャンＦＦのそれぞれのデータ入力端子に接続されたロジックコーンに対するテストパタン数を用いるようにしてもよい。
【００３６】
本発明は、スキャンテストの消費電力削減方法および半導体集積回路に関し、スキャンＦＦを用いた半導体集積回路設計装置および半導体集積回路設計方法に関する。特に、半導体集積回路設計装置は、テスト時におけるスキャンＦＦを同時に動作させる場合において、スキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数と前記スキャンＦＦのデータ入力端子に接続されたスキャンＦＦ（制御スキャンＦＦ）のデータ入力端子に接続されたロジックコーンの入力端子数を考慮してスキャンチェーンを構成し、生成したスキャンチェーン毎にスキャンクロックの供給を制御するクロック制御回路を用いてパタン生成する機能を有し、データ入力端子に接続されたロジックコーンの入力端子数が多いスキャンＦＦで構成したスキャンチェーンは、常に動かし、データ入力端子に接続されたロジックコーンの入力端子数が少ないスキャンＦＦで構成したスキャンチェーンは、動作回数を少なくする。これにより、動作するスキャンＦＦの個数を減らし、スキャンパタン数を増加させることなく、スキャンシフト時の最大消費電力を抑えることができる。
【００３７】
（実施形態１）
第１の実施形態に係る半導体集積回路設計装置について、図面を参照して説明する。図１は、本実施形態に係る半導体集積回路設計装置の構成を一例として示すブロック図である。図１を参照すると、半導体集積回路設計装置は、デザイン解析部１００、スキャンチェーン構築部２００、クロック制御回路挿入部３００、および、パタン生成部４００を備えている。
【００３８】
デザイン解析部１００は、被テスト回路２を入力とし、スキャンＦＦ情報リスト７１を生成する。
【００３９】
スキャンチェーン構築部２００は、スキャンＦＦ情報リスト７１と被テスト回路２を入力とし、スキャンＦＦ情報リスト７１を用いて被テスト回路２に対してスキャンチェーンを構築して、スキャンチェーン情報リスト７２とスキャンチェーン構築済み回路７３を生成する。
【００４０】
クロック制御回路挿入部３００は、スキャンチェーン構築済み回路７３に対してクロック制御回路３０を挿入し、クロック制御回路挿入後回路７４を作成する。
【００４１】
パタン生成部４００は、クロック制御回路挿入後回路７４とスキャンチェーン情報リスト７２を入力とし、テストパタン７５を生成する。
【００４２】
図４は、ロジックコーン入力端子数リスト８０を一例として示す表である。図４を参照すると、ロジックコーン入力端子数リスト８０の各行は、スキャンＦＦ名８０ａ、入力端子数８０ｂ、観測スキャンＦＦ名８０ｃ、および、観測入力端子数８０ｄを含む。また、ロジックコーン入力端子数リスト８０は、スキャンＦＦの個数に応じて、複数の行を有する。
【００４３】
スキャンＦＦ名８０ａには、スキャンＦＦ名を記載する。入力端子数８０ｂには、スキャンＦＦ名８０ａに記載されたスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数（以下、「ロジックコーン入力端子数」という。）を記載する。観測スキャンＦＦ名８０ｃには、スキャンＦＦ名８０ａに記載されたスキャンＦＦの出力信号を取り込む観測スキャンＦＦのうちの、当該スキャンＦＦよりもロジックコーン入力端子数が大きい観測スキャンＦＦ名を記載する。観測入力端子数８０ｄは、観測スキャンＦＦ名８０ｃに記載された観測スキャンＦＦのロジックコーン入力端子数を記載する。
【００４４】
図５は、スキャンＦＦ情報リスト７１を一例として示す表である。図５を参照すると、スキャンＦＦ情報リスト７１の各行は、ロジックコーン情報７１ａ、スキャンＦＦ名７１ｂ、機能ブロック名７１ｃ、クロック名７１ｄ、および、制御スキャンＦＦ名７１ｅを含む。また、スキャンＦＦ情報リスト７１は、複数の行を含む。
【００４５】
ロジックコーン情報７１ａには、対象スキャンＦＦのデータ入力端子に接続されたロジックコーンの情報（ロジックコーン入力端子数）を記載する。スキャンＦＦ名７１ｂには、当該対象スキャンＦＦ名を記載する。機能ブロック名７１ｃには、当該対象スキャンＦＦが存在している機能ブロック（モジュール）名を記載する。クロック名７１ｄには、当該対象スキャンＦＦが接続されているクロック名を記載する。制御スキャンＦＦ名７１ｅには、当該対象スキャンＦＦに対する制御スキャンＦＦのうちの、当該対象スキャンＦＦよりもロジックコーン入力端子数が小さい制御スキャンＦＦ名を記載する。
【００４６】
図６は、スキャンチェーン情報リスト７２を一例として示す表である。図６を参照すると、スキャンチェーン情報リスト７２の各行は、スキャンチェーン番号７２ａ、スキャンＦＦ数７２ｂ、ロジックコーン情報７２ｃ、スキャンＦＦ名７２ｄ、機能ブロック名７２ｅ、および、クロック名７２ｆを含む。スキャンチェーン情報リスト７２は、スキャンＦＦの個数に応じて、複数の行を有する。
【００４７】
スキャンＦＦ数７２ｂには、スキャンチェーンに接続されたスキャンＦＦの番号を記載する。ロジックコーン情報７２ｃには、対象スキャンＦＦのデータ入力端子に接続されたロジックコーンの情報を記載する。スキャンＦＦ名７２ｄには、当該対象スキャンＦＦ名を記載する。機能ブロック名７２ｅには、当該対象スキャンＦＦが存在している機能ブロック名を記載する。クロック名７２ｆには、当該対象スキャンＦＦが接続しているクロック名を記載する。
【００４８】
本実施形態に係る半導体集積回路設計装置におけるデザイン解析部１００の動作について、図面を参照して説明する。図３は、デザイン解析部１００の動作を一例として示すフローチャートである。
【００４９】
図３を参照すると、デザイン解析部１００は、ロジックコーンの解析を行うスキャンＦＦを選択する（ステップＡ１）。
【００５０】
デザイン解析部１００は、ステップＡ１で選択したスキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数を解析する（ステップＡ２）。すなわち、デザイン解析部１００は、スキャンＦＦ名をロジックコーン入力端子数リスト８０のスキャンＦＦ名８０ａに記載し、スキャンＦＦのデータ入力端子に接続されたロジックコーンの入力端子数をロジックコーン入力端子数リスト８０の入力端子数８０ｂに記載し、ロジックコーン入力端子数リスト８０を作成する。
【００５１】
デザイン解析部１００は、すべてのスキャンＦＦのロジックコーン解析を終了したかどうかを判定する（ステップＡ３）。終了した場合には（ステップＡ３のＹｅｓ）、ステップＡ４に進む。一方、ロジックコーンの解析をしていないスキャンＦＦが存在する場合には（ステップＡ３のＮｏ）、デザイン解析部１００はステップＡ１に戻り、処理を繰り返す。
【００５２】
デザイン解析部１００は、スキャンＦＦのデータ入力端子に接続されたロジックコーンに値を設定するスキャンＦＦ（以下、「制御スキャンＦＦ」という。）を解析する対象となるスキャンＦＦを、対象スキャンＦＦとして設定する（ステップＡ４）。
【００５３】
デザイン解析部１００は、ステップＡ４で設定した対象スキャンＦＦに制御スキャンＦＦが存在するかどうかを判断する（ステップＡ５）。存在する場合には（ステップＡ５のＹｅｓ）、ステップＡ６に進む。一方、存在しない場合には（ステップＡ５のＮｏ）、ステップＡ１３に進む。
【００５４】
デザイン解析部１００は、ステップＡ４で設定した対象スキャンＦＦに接続された制御スキャンＦＦを選択する（ステップＡ６）。
【００５５】
デザイン解析部１００は、ロジックコーン入力端子数リスト８０のスキャンＦＦ名８０ａにステップＡ６で選択した制御スキャンＦＦ名が記載されている行の観測入力端子数８０ｄに数値が記載されているかどうかを判定する（ステップＡ７）。観測入力端子数８０ｄに数値が記載されている場合には（ステップＡ７のＹｅｓ）、ステップＡ８に進む。一方、観測入力端子数８０ｄに数値が記載されていない場合には（ステップＡ７のＮｏ）、ステップＡ９に進む。
【００５６】
ロジックコーン入力端子数リスト８０の制御スキャンＦＦの行において、観測入力端子数８０ｄに数値が記載されている場合には（ステップＡ７のＹｅｓ）、制御スキャンＦＦの入力端子数として観測入力端子数８０ｄの数値を選択する（ステップＡ８）。
【００５７】
一方、ロジックコーン入力端子数リスト８０の制御スキャンＦＦの行において、観測入力端子数８０ｄに数値が記載されていない場合には（ステップＡ７のＮｏ）、制御スキャンＦＦの入力端子数として、ロジックコーン入力端子数リスト８０の入力端子数８０ｂの数値を選択する（ステップＡ９）。
【００５８】
デザイン解析部１００は、ステップＡ４で設定した対象スキャンＦＦのロジックコーン入力端子数８０ｂが制御スキャンＦＦの入力端子数よりも大きいかどうかを判定する（ステップＡ１０）。対象スキャンＦＦのロジックコーン入力端子数８０ｂが制御スキャンＦＦの入力端子数よりも大きい場合には（ステップＡ１０のＹｅｓ）、ステップＡ１１に進む。一方、対象スキャンＦＦのロジックコーン入力端子数が制御スキャンＦＦの入力端子数以下である場合には（ステップＡ１０のＮｏ）、ステップＡ１２に進む。
【００５９】
対象スキャンＦＦのロジックコーンの入力端子数８０ｂが制御スキャンＦＦの入力端子数よりも大きい場合には（ステップＡ１０のＹｅｓ）、デザイン解析部１００は、ロジックコーン入力端子数リスト８０のスキャンＦＦ名８０ａに制御スキャンＦＦが記載された行の観測スキャンＦＦ名８０ｃに、ステップＡ４で設定した対象スキャンＦＦ名を記載するとともに、観測入力端子数８０ｄに対象スキャンＦＦのロジックコーン入力端子数８０ｂを記載する（ステップＡ１１）。
【００６０】
デザイン解析部１００は、ステップＡ４で設定した対象スキャンＦＦに接続されたすべての制御スキャンＦＦの調査が完了したかどうかを判定する（ステップＡ１２）。調査が完了した場合には（ステップＡ１２のＹｅｓ）、ステップＡ１３に進む。一方、調査が完了していない場合には（ステップＡ１２のＮｏ）、デザイン解析部１００はステップＡ６に戻り、処理を繰り返す。
【００６１】
デザイン解析部１００は、すべてのスキャンＦＦに対して制御スキャンＦＦの調査が完了したかどうかを判定する（ステップＡ１３）。調査が完了した場合には（ステップＡ１３のＹｅｓ）、ステップＡ１４に進む。一方、調査が完了していない場合には（ステップＳ１３のＮｏ）、デザイン解析部１００はステップＡ４に戻り、処理を繰り返す。
【００６２】
すべてのスキャンＦＦの調査が完了した場合には（ステップＡ１３のＹｅｓ）、デザイン解析部１００は、スキャンＦＦ情報リスト７１を作成する。すなわち、デザイン解析部１００は、各スキャンＦＦに対して、ロジックコーン入力端子数リスト８０の入力端子数８０ｂをスキャンＦＦ情報リスト７１のロジックコーン情報７１ａに記載し、ロジックコーン入力端子数リスト８０のスキャンＦＦ名８０ａをスキャンＦＦ情報リスト７１のスキャンＦＦ名７１ｂに記載し、対象スキャンＦＦが存在している機能ブロックをスキャンＦＦ情報リスト７１の機能ブロック名７１ｃに記載し、対象スキャンＦＦが接続しているクロック名をスキャンＦＦ情報リスト７１のクロック名７１ｄに記載する。
【００６３】
デザイン解析部１００は、スキャンＦＦ情報リスト７１に反映するスキャンＦＦを設定する（ステップＡ１５）。
【００６４】
デザイン解析部１００は、ステップＡ１５で設定したスキャンＦＦのロジックコーン入力端子数リスト８０の行に観測スキャンＦＦ名８０ｃが存在するかどうかを判定する（ステップＡ１６）。観測スキャンＦＦ名８０ｃが存在する場合には（ステップＡ１６のＹｅｓ）、ステップＡ１７に進む。一方、観測スキャンＦＦ名８０ｃが存在しない場合には（ステップＡ１６のＮｏ）、ステップＡ１８に進む。
【００６５】
ステップＡ１５で設定したスキャンＦＦに観測スキャンＦＦ名８０ｃが存在する場合には（ステップＡ１６のＹｅｓ）、デザイン解析部１００は、スキャンＦＦ情報リスト７１のスキャンＦＦ名７１ｂに観測スキャンＦＦ名８０ｃが記載されている行の制御スキャンＦＦ名７１ｅの箇所に、ステップＡ１５で設定したスキャンＦＦ名を記入し、ステップＡ１５で設定したスキャンＦＦ名がスキャンＦＦ名７１ｂに記載されている行をスキャンＦＦ情報リスト７１から削除する（ステップＡ１７）。
【００６６】
デザイン解析部１００は、すべてのスキャンＦＦの設定が完了したかどうかを判定する（ステップＡ１８）。設定が完了した場合には（ステップＡ１８のＹｅｓ）、処理を終了する。一方、設定が完了していない場合には（ステップＡ１８のＮｏ）、デザイン解析部１００はステップＡ１５に戻り、処理を繰り返す。
【００６７】
本実施形態に係る半導体集積回路設計装置におけるスキャンチェーン構築部２００の動作について、図面を参照して説明する。図７は、スキャンチェーン構築部２００の動作を一例として示すフローチャートである。
【００６８】
スキャンチェーン構築部２００は、スキャンチェーン情報リスト７２のスキャンチェーン番号７２ａを１に設定し、スキャンＦＦ数７２ｂのカウント数を１に設定する（ステップＢ１）。
【００６９】
スキャンチェーン構築部２００は、スキャンＦＦ情報リスト７１のロジックコーン情報７１ａの値が最も大きいスキャンＦＦ群の行を抽出したスキャンＦＦリスト８１を作成し、抽出したスキャンＦＦ群を、スキャンＦＦ情報リスト７１から削除する（ステップＢ２）。
【００７０】
スキャンチェーン構築部２００は、スキャンＦＦリスト８１内に制御スキャンＦＦ名７１ｅが記載されているスキャンＦＦが存在するかどうかを判定する（ステップＢ３）。かかるスキャンＦＦが存在する場合には（ステップＢ３のＹｅｓ）、ステップＢ４に進む。一方、かかるスキャンＦＦが存在しない場合には（ステップＢ３のＮｏ）、ステップＢ９に進む。
【００７１】
スキャンチェーン構築部２００は、スキャンＦＦリスト８１の制御スキャンＦＦ名７１ｅが記載されている行を選択し、スキャンＦＦ名７１ｂのスキャンＦＦと制御スキャンＦＦ名７１ｅに記載されているスキャンＦＦをスキャンチェーン情報リスト７２に記載し、記載したスキャンＦＦ数分のスキャンＦＦ数７２ｂをカウントアップし、選択した制御スキャンＦＦ名７１ｅが記載されている行をスキャンＦＦリスト８１から削除する（ステップＢ４）。
【００７２】
スキャンチェーン構築部２００は、カウントしたスキャンＦＦ数７２ｂが１チェーン当りスキャンＦＦの最大数を越えたかどうかを判定する（ステップＢ５）。スキャンＦＦの最大数を越えた場合には（ステップＢ５のＹｅｓ）、ステップＢ６に進む。一方、スキャンＦＦの最大数を越えていない場合には（ステップＢ５のＮｏ）、ステップＢ７に進む。
【００７３】
１チェーン当りのスキャンＦＦの最大数を越えた場合には（ステップＢ５のＹｅｓ）、スキャンチェーン構築部２００は、スキャンチェーン情報リスト７２のスキャンチェーン番号７２ａをカウントアップし、スキャンＦＦ数７２ｂを１に戻す（ステップＢ６）。
【００７４】
スキャンチェーン構築部２００は、スキャンＦＦリスト８１内に制御スキャンＦＦ名７１ｅが記載されているスキャンＦＦが存在するかどうかを判定する（ステップＢ７）。かかるスキャンＦＦが存在する場合には（ステップＢ７のＹｅｓ）、スキャンチェーン構築部２００は、ステップＢ４に戻り、処理を繰り返す。一方、かかるスキャンＦＦが存在しない場合には（ステップＢ７のＮｏ）、ステップＢ８に進む。
【００７５】
ステップＢ７で制御スキャンＦＦが存在しない場合には（ステップＢ７のＮｏ）、スキャンＦＦリスト８１に記載しているスキャンＦＦをすべて選択したかを判定する（ステップＢ８）。スキャンＦＦをすべて選択した場合には（ステップＢ８のＹｅｓ）、ステップＢ１９に進む。一方、スキャンＦＦが残っている場合には（ステップＢ８のＮｏ）、ステップＢ９に進む。
【００７６】
スキャンチェーン構築部２００は、スキャンＦＦ数７２ｂの値を確認する（ステップＢ９）。スキャンＦＦ数７２ｂが１でない場合には（ステップＢ９のＮｏ）、ステップＢ１０に進む。一方、スキャンＦＦ数７２ｂが１である場合には（スキャンＢ９のＹｅｓ）、ステップＢ１１に進む。
【００７７】
スキャンＦＦ数７２ｂの値が１でない場合には（ステップＢ９のＮｏ）、スキャンチェーン情報リスト７２のスキャンチェーン番号７２ａの数値が最も大きい数値が記載されているスキャンＦＦ群のうちで最も多く存在している機能ブロックを選択する（ステップＢ１０）。
【００７８】
スキャンＦＦ数７２ｂの値が１の場合（ステップＢ９のＹｅｓ）、または、対象機能ブロック内のスキャンＦＦのうちの未選択のスキャンＦＦが存在する場合には（ステップＢ１８のＮｏ）、スキャンＦＦリスト８１のうちで最もスキャンＦＦが多く存在する機能ブロックを選択する（ステップＢ１１）。
【００７９】
スキャンチェーン構築部２００は、スキャンＦＦリスト８１のうちの、ステップＢ１０またはＢ１１で選択した機能ブロック内で最もスキャンＦＦ数の多いクロックドメインを対象クロックとして選択する（ステップＢ１２）。
【００８０】
スキャンチェーン構築部２００は、スキャンＦＦリスト８１のうちの、ステップＢ１０またはＢ１１で選択した機能ブロックに存在し、ステップＢ１２で選択したクロックで動作するスキャンＦＦを一つ選択し、選択したスキャンＦＦの行をスキャンチェーン情報リスト７２に記載し、スキャンＦＦ数７２ｂはカウントアップ値を記載し、選択したスキャンＦＦの行をスキャンＦＦリスト８１から削除する（ステップＢ１３）。
【００８１】
スキャンチェーン構築部２００は、カウントしたスキャンＦＦ数７２ｂが１チェーン当りのスキャンＦＦの最大個数を越えたかを判断する（ステップＢ１４）。スキャンＦＦの最大個数を越えた場合には（ステップＢ１４のＹｅｓ）、ステップＢ１５に進む。一方、スキャンＦＦの最大個数を越えていない場合には（ステップＢ１４のＮｏ）、ステップＢ１６に進む。
【００８２】
１チェーン当りのスキャンＦＦの最大数を越えた場合には（ステップＢ１４のＹｅｓ）、スキャンチェーン情報リスト７２におけるスキャンチェーン番号７２ａをカウントアップし、スキャンＦＦ数７２ｂを１に戻す（ステップＢ１５）。
【００８３】
スキャンチェーン構築部２００は、ステップＢ１０またはＢ１１で選択した機能ブロック内において、ステップＢ１２で選択したクロックドメインのスキャンＦＦをすべて選択したかどうかを判定する（ステップＢ１６）。スキャンＦＦをすべて選択した場合には（ステップＢ１６のＹｅｓ）、ステップＢ１７に進む。一方、スキャンＦＦが残っている場合には（ステップＢ１６のＮｏ）、スキャンチェーン構築部２００は、ステップＢ１３に戻り、処理を繰り返す。
【００８４】
選択したクロックドメインのスキャンＦＦをすべて選択した場合には（ステップＢ１６のＹｅｓ）、スキャンチェーン構築部２００は、選択した機能ブロック内のスキャンＦＦをすべて選択したかどうかを判定する（ステップＢ１７）。スキャンＦＦをすべて選択した場合には（ステップＢ１７のＹｅｓ）、Ｂ１８に進む。一方、スキャンＦＦが残っている場合には（ステップＢ１７のＮｏ）、スキャンチェーン構築部２００は、ステップＢ１２に戻り、処理を繰り返す。
【００８５】
機能ブロック内のスキャンＦＦをすべて選択した場合には（ステップＢ１７のＹｅｓ）、スキャンチェーン構築部２００は、スキャンＦＦリスト８１のスキャンＦＦをすべて選択したかを判定する（ステップＢ１８）。スキャンＦＦをすべて選択した場合には（ステップＢ１８のＹｅｓ）、ステップＢ１９に進む。一方、スキャンＦＦが残っている場合には（ステップＢ１８のＮｏ）、スキャンチェーン構築部２００はステップＢ１１に戻り、処理を繰り返す。
【００８６】
スキャンチェーン構築部２００は、スキャンＦＦ情報リスト７１のスキャンＦＦをすべて選択したかどうかを判定する（ステップＢ１９）。スキャンＦＦをすべて選択した場合には（ステップＢ１９のＹｅｓ）、ステップＢ２０に進む。一方、未選択のスキャンＦＦが残っている場合には（ステップＢ１９のＮｏ）、スキャンチェーン構築部２００は、ステップＢ２に戻り、処理を繰り返す。
【００８７】
スキャンＦＦをすべて選択した場合には（ステップＢ１９のＹｅｓ）、スキャンチェーン構築部２００は、スキャンチェーン情報リスト７２の情報を元に、スキャンチェーンを構築する（ステップＢ２０）。
【００８８】
本実施形態に係る半導体集積回路設計装置におけるクロック制御回路挿入部３００の動作について、図面を参照して説明する。図８は、クロック制御回路挿入部３００の動作を一例として示すフローチャートである。
【００８９】
図８を参照すると、クロック制御回路挿入部３００は、対象とするスキャンチェーンを選択する（ステップＣ１）。
【００９０】
クロック制御回路挿入部３００は、ステップＣ１で選択したスキャンチェーンに繋がっているスキャンＦＦのクロックドメインを解析する（ステップＣ２）。
【００９１】
クロック制御回路挿入部３００は、ステップＣ２で解析したクロックドメインを制御するクロック制御回路３０を作成し、ＡＭＣ信号４とＳＭＣ信号５とステップＣ１で選択したスキャンチェーンのスキャンイン信号６とスキャンチェーンに存在するスキャンＦＦのクロックを繋げる（ステップＣ３）。
【００９２】
クロック制御回路挿入部３００は、全スキャンチェーンに対してクロック制御回路３０を挿入したかどうかを判定する（ステップＣ４）。全スキャンチェーンに対してクロック制御回路３０を挿入した場合には（ステップＣ４のＹｅｓ）、処理を終了する。一方、クロック制御回路３０を挿入していないスキャンチェーンが存在する場合には（ステップＣ４のＮｏ）、クロック制御回路挿入部３００はステップＣ１に戻り、処理を繰り返す。
【００９３】
本実施形態に係る半導体集積回路設計装置におけるパタン生成部４００の動作について、図面を参照して説明する。図９は、パタン生成部４００の動作を一例として示すフローチャートである。
【００９４】
図９を参照すると、パタン生成部４００は、動作させるスキャンチェーンの数を設定する（ステップＤ１）。
【００９５】
パタン生成部４００は、スキャンチェーン情報リスト７２のロジックコーン情報７２ｃの大きい順に、ステップＤ１で設定した数分のスキャンチェーンを選択する（ステップＤ２）。
【００９６】
パタン生成部４００は、ステップＤ２で選択したスキャンチェーンを用いてパタン生成を行う（ステップＤ３）。
【００９７】
パタン生成部４００は、パタン生成が完了したスキャンチェーンが存在するかどうかを判定する（ステップＤ４）。かかるスキャンチェーンが存在する場合には（ステップＤ４のＹｅｓ）、ステップＤ５に進む。一方、かかるスキャンチェーンが存在しない場合には（ステップＤ４のＮｏ）、パタン生成部４００はステップＤ２に戻り、処理を繰り返す。
【００９８】
パタン生成が完了したスキャンチェーンが存在する場合には（ステップＤ４のＹｅｓ）、パタン生成が完了したスキャンチェーンをスキャンチェーン情報リスト７２から削除する（ステップＤ５）。
【００９９】
パタン生成部４００は、被テスト回路に対してすべてのテストパタン生成が完了したかどうかを判定する（ステップＤ６）。テストパタン生成が完了した場合には（ステップＤ６のＹｅｓ）、処理を終了する。一方、テストパタン生成が残っている場合には（ステップＤ６のＮｏ）、パタン生成部４００はステップＤ２に戻り、処理を繰り返す。
【０１００】
図１０は、本実施形態に係る半導体集積回路設計装置によって設計された半導体集積回路１の構成を一例として示すブロック図である。
【０１０１】
図１０を参照すると、半導体集積回路１は、組み合わせ回路１０、スキャンＦＦ６０ａ〜６２ａ、スキャンＦＦ６０ｂ〜６２ｂ、スキャンＦＦ６０ｃ〜６２ｃ、第１ないし第３のスキャンチェーン２１〜２３、および、第１ないし第３のクロック制御回路３０ａ〜３０ｃを備えている。
【０１０２】
組み合わせ回路１０の入力端子は、スキャンＦＦ６０ａ〜６２ａ、スキャンＦＦ６０ｂ〜６２ｂ、および、スキャンＦＦ６０ｃ〜６２ｃのそれぞれの出力端子に接続されている。一方、組み合わせ回路１０の出力端子は、スキャンＦＦ６０ａ〜６２ａ、スキャンＦＦ６０ｂ〜６２ｂ、および、スキャンＦＦ６０ｃ〜６２ｃのそれぞれのデータ入力端子に接続されている。
【０１０３】
第１ないし第３のスキャンチェーン２１〜２３は、それぞれ、データ入力端子に接続されたロジックコーンの入力端子数の数が近いスキャンＦＦや、データのやり取りのあるスキャンＦＦで構成される。本実施形態では、半導体集積回路１は、一例として、３本のスキャンチェーンを含む。また、クロック制御回路３０ａ〜３０ｃは、それぞれ、スキャンチェーン２１〜２３に対して設けられる。
【０１０４】
スキャンチェーン２１は、スキャンイン端子ＳＩＮ１を入力信号とし、スキャンアウト端子ＳＯ１を出力信号とする。同様に、スキャンチェーン２２は、スキャンイン端子ＳＩＮ２を入力信号とし、スキャンアウト端子ＳＯ２を出力信号とする。スキャンチェーン２３は、スキャンイン端子ＳＩＮ３を入力信号とし、スキャンアウト端子ＳＯ３を出力信号とする。
【０１０５】
クロック制御回路３０ａは、通常モードとテストモードとを切り替えるＡＭＣ（Ａｄａｐｔｉｖｅ  Ｍｏｄｅ  Ｃｏｎｔｒｏｌ）信号４と、スキャンシフトとキャプチャモードとを切り替えるＳＭＣ（Ｓｃａｎ  Ｍｏｄｅ  Ｃｏｎｔｒｏｌ）信号５と、スキャンチェーン２１のスキャンイン端子ＳＩＮ１と、スキャンクロック信号ＣＬＫＡ〜ＣＬＫＣとを入力とする。また、クロック制御回路３０ａは、クロック制御信号４０ａをスキャンクロック信号ＣＬＫＡで動作するスキャンＦＦ６０ａのクロック信号として出力し、クロック制御信号４１ａをスキャンクロック信号ＣＬＫＢで動作するスキャンＦＦ６１ａのクロック信号として出力し、クロック制御信号４２ａをスキャンクロック信号ＣＬＫＣで動作するスキャンＦＦ６２ａのクロック信号として出力する。
【０１０６】
クロック制御回路３０ｂは、ＡＭＣ信号４と、ＳＭＣ信号５と、スキャンチェーン２２のスキャンイン端子ＳＩＮ２と、スキャンクロック信号ＣＬＫＡ〜ＣＬＫＣとを入力とする。また、クロック制御回路３０ｂは、クロック制御信号４０ｂをスキャンクロック信号ＣＬＫＡで動作するスキャンＦＦ６０ｂのクロック信号として出力し、クロック制御信号４１ｂをスキャンクロック信号ＣＬＫＢで動作するスキャンＦＦ６１ｂのクロック信号として出力し、クロック制御信号４２ｂをスキャンクロック信号ＣＬＫＣで動作するスキャンＦＦ６２ｂのクロック信号として出力する。
【０１０７】
クロック制御回路３０ｃは、ＡＭＣ信号４と、ＳＭＣ信号５と、スキャンチェーン２３のスキャンイン端子ＳＩＮ３と、スキャンクロック信号ＣＬＫＡ〜ＣＬＫＣとを入力とする。また、クロック制御回路３０ｃは、クロック制御信号４０ｃをスキャンクロック信号ＣＬＫＡで動作するスキャンＦＦ６０ｃのクロック信号として出力し、クロック制御信号４１ｃをスキャンクロック信号ＣＬＫＢで動作するスキャンＦＦ６１ｃのクロック信号として出力し、クロック制御信号４２ｃをスキャンクロック信号ＣＬＫＣで動作するスキャンＦＦ６２ｃのクロックとして出力する。
【０１０８】
図１１は、図１０に示したクロック制御回路３０ａ〜３０ｃの構成を一例として示す回路図である。
【０１０９】
図１１を参照すると、クロック制御回路３０ａ〜３０ｃは、それぞれ、インバータ回路５２、レベルラッチ回路５０、インバータ回路５３、ＯＲ回路５１、および、ＡＮＤ回路５４〜５６を備えている。
【０１１０】
インバータ回路５２は、ＳＭＣ信号５を入力とし、レベルラッチ回路５０に出力信号ｎ５２を出力する。
【０１１１】
インバータ回路５３は、ＡＭＣ信号４を入力とし、ＯＲ回路５１に出力信号ｎ５３を出力する。
【０１１２】
レベルラッチ回路５０は、スキャンイン信号６をデータ入力信号として入力し、インバータ回路５２の出力信号ｎ５２をゲーティング信号として入力し、ＯＲ回路５１に出力信号ｎ５０を出力する。
【０１１３】
ＯＲ回路５１は、インバータ回路５３の出力信号ｎ５３とレベルラッチ回路５０の出力信号ｎ５０とをそれぞれ入力し、ＡＮＤ回路５４〜５６に出力信号ｎ５１を出力する。
【０１１４】
ＡＮＤ回路５４は、ＯＲ回路５１の出力信号ｎ５１とクロック信号ＣＬＫＡとを入力とし、クロック制御信号４０をスキャンクロック信号ＣＬＫＡで動作するスキャンＦＦのクロック端子へ出力する。同様に、ＡＮＤ回路５５は、ＯＲ回路５１の出力信号ｎ５１とクロック信号ＣＬＫＢとを入力とし、クロック制御信号４１をスキャンクロック信号ＣＬＫＢで動作するスキャンＦＦのクロック端子へ出力する。また、ＡＮＤ回路５６は、ＯＲ回路５１の出力信号ｎ５１とクロック信号ＣＬＫＣとを入力とし、クロック制御信号４２をスキャンクロック信号ＣＬＫＣで動作するスキャンＦＦのクロック端子へ出力する。
【０１１５】
ＡＮＤ回路５４〜５６の個数は、制御対象とするクロックの数に応じて変動する。図１１に示した例では、制御するクロック信号の個数がクロック信号ＣＬＫＡ〜ＣＬＫＣの３系統のため、クロック制御回路３０は３つのＡＮＤ回路５４〜５６を備えている。
【０１１６】
図１２は、クロック制御回路３０（図１１）の動作を一例として示すタイミングチャートである。
【０１１７】
クロック制御回路３０は、通常モードとテストモードを切り替えるＡＭＣ信号４をテストモード時の１に設定することで、インバータ回路５３の出力信号ｎ５３は０となり、ＯＲ回路５１の出力信号ｎ５１には、レベルラッチ回路５０の出力信号ｎ５０が伝播する。
【０１１８】
この状態において、クロック制御回路３０は、スキャンシフトとキャプチャモードを切り替えるＳＭＣ信号５にキャプチャモードの０を設定することで、インバータ回路５２の出力信号ｎ５２は１となり、レベルラッチ回路５０は入力データを出力信号ｎ５０に伝播する。クロック制御回路３０は、この状態において、キャプチャモード時にスキャンイン信号６に１を設定すると、レベルラッチ回路５０の出力信号ｎ５０には１が伝播し、クロック制御信号４０、４１、４２にはクロック信号が伝播する（キャプチャ１）。その後、ＳＭＣ信号５を１に変更すると、レベルラッチ回路５０には１の値が保持されるため、スキャンイン信号６の値に関わらず、以降のスキャンシフト期間中はクロック信号が伝播する（スキャンシフト１）。
【０１１９】
クロック制御回路３０は、ＳＭＣ信号５を０（キャプチャモード）に設定し、スキャンイン信号６に０を設定すると、レベルラッチ回路５０の出力信号ｎ５０には０が伝播し、クロック制御信号４０〜４２は０となり、クロック信号が伝播しない（キャプチャ２）。その後、ＳＭＣ信号５を１に変更すると、レベルラッチ回路５０には０の値が保持されるため、スキャンイン信号６の値に関わらず、以降のスキャンシフト期間中はクロックが伝播しない（スキャンシフト２）。
【０１２０】
図１３は、本実施形態に係る半導体集積回路設計装置の効果の一例について説明するための図である。図１３に示した半導体集積回路３を参照して、本実施形態に係る半導体集積回路設計装置の動作を具体的に説明する。
【０１２１】
図１３を参照すると、半導体集積回路３において、ロジックコーン１１ないし１６は、それぞれ、４個、３個、２個、６個、２個、１０個の入力端子を有する。
【０１２２】
各スキャンＦＦのロジックコーン解析（デザイン解析部１００のステップＡ２）により、ロジックコーン入力端子数リスト８０のロジックコーン入力端子数８０ｂの値に、スキャンＦＦ９１ないしスキャンＦＦ９６は、それぞれ、４、３、２、６、２、１０を設定する。
【０１２３】
各スキャンＦＦと制御スキャンＦＦとのロジックコーン入力端子数を比較すると（ステップＡ１０）、スキャンＦＦ９４の制御スキャンＦＦであるスキャンＦＦ９３のロジックコーン入力端子数はスキャンＦＦ９４のロジックコーン入力端子数よりも小さく、スキャンＦＦ９６の制御スキャンＦＦであるスキャンＦＦ９５のロジックコーン入力端子数はスキャンＦＦ９６よりも小さい。したがって、ロジックコーン入力端子数リスト８０の観測スキャンＦＦ名８０ｃと観測入力端子数８０ｄに対して、スキャンＦＦ９３はスキャンＦＦ９４の情報が記載され、スキャンＦＦ９５はスキャンＦＦ９６の情報が記載される。また、図３のステップＡ１７において、デザイン解析部１００は、スキャンＦＦ情報リスト７１のスキャンＦＦ９４の行の制御スキャンＦＦ名７１ｅにスキャンＦＦ９３を記載し、スキャンＦＦ９６の行の制御スキャンＦＦ名７１ｅにスキャンＦＦ９５を記載する。
【０１２４】
３本のスキャンチェーンで構築する場合には、スキャンチェーン構築部２００は、スキャンＦＦ情報リスト７１に基づいて、スキャンＦＦ９６、９５で１本のスキャンチェーンを構成し、スキャンＦＦ９４、９３とで１本のスキャンチェーンを構成し、残りのスキャンＦＦ９２、９１で１本のスキャンチェーンを構成する。
【０１２５】
クロック制御回路挿入部３００は、スキャンチェーン毎にクロックを制御するクロック制御回路３０を挿入する。これにより、スキャンチェーンの動作を任意に制御し、スキャンチェーン毎のパタン生成が可能となる。
【０１２６】
以上の構成において、入力端子数が最も多い１０個の入力端子のロジックコーン１６をテストするスキャンチェーンのスキャンＦＦ９６とスキャンＦＦ９５を常に動作させ、残り２つのスキャンチェーンは交互に動作させることで、動作するスキャンＦＦ数は２／３となり、スキャンシフト時の消費電力を抑えることが可能となる。
【０１２７】
（実施形態２）
第２の実施形態に係る半導体集積回路設計装置について、図面を参照して説明する。図１４は、本実施形態に係る半導体集積回路設計装置の構成を一例として示すブロック図である。
【０１２８】
第１の実施形態の半導体集積回路設計装置（図１）は、スキャンＦＦのロジックコーン入力端子数を解析するデザイン解析部１００を備えている。一方、本実施形態では、半導体集積回路設計装置は、スキャンＦＦのロジックコーンをテストするために必要なパタン数を解析するデザイン解析部９００を備えている。
【０１２９】
半導体集積回路設計装置における上記以外の構成、すなわち、スキャンチェーン構築部２００、クロック制御回路挿入部３００およびパタン生成部４００は、本実施形態と第１の実施形態との間で同一である。
【０１３０】
図１５は、デザイン解析部９００で作成するロジックコーンパタン数リスト８０１を一例として示す表である。図１５を参照すると、本実施形態では、スキャンＦＦのロジックコーン入力端子数を記載する入力端子数８０ｂ（図４）が、当該スキャンＦＦのデータ入力に接続されたロジックコーンをテストするために必要なパタン数８０ｅに置き換わるとともに、観測スキャンＦＦのロジックコーン入力端子数を記載する観測入力端子数８０ｄが、当該観測スキャンＦＦのロジックコーンをテストするため必要な観測パタン数８０ｆに置き換わる点において、第１の実施形態と相違する。
【０１３１】
図１６は、本実施形態のデザイン解析部９００の動作を一例として示すフローチャートである。
【０１３２】
図１６を参照すると、本実施形態では、ロジックコーン入力端子数の解析（ステップＡ２）の代わりに、ロジックコーンをテストするために必要なパタン数を解析する点（ステップＥ１、Ｅ２）と、制御スキャンＦＦの解析にロジックコーンの入力端子数を用いる（ステップＡ７、ステップＡ８、ステップＡ９、ステップＡ１０、ステップＡ１１）代わりに、当該パタン数を用いる点（ステップＥ７、ステップＥ８、ステップＥ９、ステップＥ１０、ステップＥ１１）と、その結果をスキャンＦＦ情報リストに反映する（ステップＥ１４）点において、第１の実施形態におけるデザイン解析部１００の動作（図３）と相違する。
【０１３３】
デザイン解析部９００は、ステップＡ１で選択したスキャンＦＦのデータ入力端子に接続されたロジックコーンを抽出する（ステップＥ１）。
【０１３４】
デザイン解析部９００は、抽出したロジックコーンを対象にパタン生成を実行し、対象スキャンＦＦのデータ入力端子に接続されたロジックコーンをテストするのに必要なパタン数を算出し、スキャンＦＦ名をロジックコーンパタン数リスト８０１のスキャンＦＦ名８０ａに記載し、当該スキャンＦＦのデータ入力端子に接続されたロジックコーンをテストするのに必要なパタン数をロジックコーンパタン数リスト８０１のパタン数８０ｅに記載し、ロジックコーンパタン数リスト８０１を作成する（ステップＥ２）。
【０１３５】
ステップＡ３ないしＡ６の動作は、第１の実施形態と同様である。
【０１３６】
デザイン解析部９００は、ステップＡ６で選択した制御スキャンＦＦのロジックコーンパタン数リスト８０１の観測パタン数８０ｆに数値が記載されているかどうかを判定する（ステップＥ７）。観測パタン数８０ｆが記載されている場合には（ステップＥ７のＹｅｓ）、ステップＥ８に進む。一方、観測パタン数８０ｅが記載されていない場合には（ステップＥ７のＮｏ）、ステップＥ９に進む。
【０１３７】
制御スキャンＦＦにロジックコーンパタン数リスト８０１の観測パタン数８０ｆが記載されている場合には（ステップＥ７のＹｅｓ）、当該制御スキャンＦＦのパタン数に観測パタン数８０ｆの数値を選択する（ステップＥ８）。
【０１３８】
一方、制御スキャンＦＦにロジックコーンパタン数リスト８０１の観測パタン数８０ｆが記載されていない場合には（ステップＥ７のＮｏ）、当該制御スキャンＦＦのパタン数に当該ロジックコーンパタン数リスト８０１のパタン数８０ｅの数値を選択する（ステップＥ９）。
【０１３９】
デザイン解析部９００は、対象スキャンＦＦのパタン数が制御スキャンＦＦのパタン数より大きいかどうかを判定する（ステップＥ１０）。対象スキャンＦＦのパタン数が制御スキャンＦＦのパタン数より大きい場合には（ステップＥ１０のＹｅｓ）、ステップＥ１１に進む。一方、対象スキャンＦＦのパタン数が制御スキャンＦＦのパタン数以下である場合には（ステップＥ１０のＮｏ）、ステップＡ１２に進む。
【０１４０】
対象スキャンＦＦのパタン数が制御スキャンＦＦのパタン数よりも大きい場合には（ステップＥ１０のＹｅｓ）、ロジックコーンパタン数リスト８０１のスキャンＦＦ名８０ａに当該制御スキャンＦＦが記載されている行に対して、観測スキャンＦＦ名８０ｃにステップＡ４で設定した対象スキャンＦＦ名を記載し、観測パタン数８０ｆに当該対象スキャンＦＦのパタン数を記載する（ステップＥ１１）。
【０１４１】
ステップＡ１２、Ａ１３の動作は、第１の実施形態と同様である。
【０１４２】
すべてのスキャンＦＦの調査が完了した場合には（ステップＡ１３のＹｅｓ）、各スキャンＦＦに対して前記ロジックコーンパタン数リスト８０１のパタン数８０ｅをスキャンＦＦ情報リスト７１のロジックコーン情報７１ａに記載し、ロジックコーンパタン数リスト８０１のスキャンＦＦ名８０ａをスキャンＦＦ情報リスト７１のスキャンＦＦ名７１ｂに記載し、対象スキャンＦＦが存在している機能ブロックをスキャンＦＦ情報リスト７１の機能ブロック名７１ｃに記載し、接続しているクロック名をスキャンＦＦ情報リスト７１のクロック名７１ｄに記載する（ステップＥ１４）。
【０１４３】
ステップＡ１５ないしＡ１８の動作は、第１の実施形態と同様である。
【０１４４】
スキャンチェーン構築部２００、クロック制御回路挿入部３００、および、パタン生成部４００の構成および動作は、実施形態１と同一であることから、以下の動作は第１の実施形態と同一である。
【０１４５】
第１の実施形態では、ロジックコーンに必要なテストパタン数をロジックコーンの入力端子数で判断する。一方、本実施形態では、実際にテストパタンを生成しそのパタン数を基準に構築する。
【０１４６】
このため、本実施形態でも必要なテストパタン数を基準にスキャンチェーンを構築でき、ロジックコーンをテストするに多くのパタンが必要なスキャンチェーンは常に動かし、ロジックコーンをテストするに多くのパタンが必要ではないスキャンチェーンの動作回数を少なくすることで、第１の実施形態と同じく、スキャンパタン数を増加させることなく、スキャンシフト時の最大消費電力を抑えることが可能となる。
【０１４７】
なお、先行技術文献である上記特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１４８】
１、３    半導体集積回路
２    被テスト回路
４    ＡＭＣ（Ａｄａｐｔｉｖｅ  Ｍｏｄｅ  Ｃｏｎｔｒｏｌ）信号
５    ＳＭＣ（Ｓｃａｎ  Ｍｏｄｅ  Ｃｏｎｔｒｏｌ）信号
６    スキャンイン信号
１０    組み合わせ回路
１１〜１６    ロジックコーン
２１〜２３    スキャンチェーン
３０    クロック制御回路
３０ａ〜３０ｃ    クロック制御回路
３３    クロック関係情報記憶部
４０〜４２、４０ａ〜４２ａ、４０ｂ〜４２ｂ、４０ｃ〜４２ｃ    クロック制御信号
５０    レベルラッチ回路
５１    ＯＲ回路
５２、５３    インバータ回路
５４〜５６    ＡＮＤ回路
６０ａ〜６２ａ、６０ｂ〜６２ｂ、６０ｃ〜６２ｃ    スキャンＦＦ
７１    スキャンＦＦ情報リスト
７１ａ    ロジックコーン情報
７１ｂ    スキャンＦＦ名
７１ｃ    機能ブロック名
７１ｄ    クロック名
７１ｅ    制御スキャンＦＦ名
７２    スキャンチェーン情報リスト
７２ａ    スキャンチェーン番号
７２ｂ    スキャンＦＦ数
７２ｃ    ロジックコーン情報
７２ｄ    スキャンＦＦ名
７２ｅ    機能ブロック名
７２ｆ    クロック名
７３    スキャンチェーン構築済み回路
７４    クロック制御回路挿入後回路
７５    テストパタン
８０    ロジックコーン入力端子数リスト
８０ａ    スキャンＦＦ名
８０ｂ    入力端子数
８０ｃ    観測スキャンＦＦ名
８０ｄ    観測入力端子数
８０ｅ    パタン数
８０ｆ    観測パタン数
８１    スキャンＦＦリスト
９１〜９６    スキャンＦＦ
１００    デザイン解析部
２００    スキャンチェーン構築部
３００    クロック制御回路挿入部
４００    パタン生成部
５００、５１０、５２０、５３０    バッファ回路
６００、６１０、６２０、６３０    スキャンＦＦ
７００    ＯＲ回路
７００ａ、７００ｂ、７００ｃ、７００ｄ    入力端子
８００    スキャンＦＦ
８０１    ロジックコーンパタン数リスト
９００    デザイン解析部
ＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ    スキャンクロック信号
ＬＣ１〜ＬＣ４    ロジックコーン
ＦＦ１〜ＦＦ４    スキャンＦＦ
Ｎ１〜Ｎ４    入力端子数
ｎ５０〜ｎ５３    出力信号
ＳＩＮ１〜ＳＩＮ３    スキャンイン端子
ＳＯ１〜ＳＯ３    スキャンアウト端子
【図１】
2013080331.tif 000003
【図２】
2013080331.tif 000004
【図３】
2013080331.tif 000005
【図４】
2013080331.tif 000006
【図５】
2013080331.tif 000007
【図６】
2013080331.tif 000008
【図７】
2013080331.tif 000009
【図８】
2013080331.tif 000010
【図９】
2013080331.tif 000011
【図１０】
2013080331.tif 000012
【図１１】
2013080331.tif 000013
【図１２】
2013080331.tif 000014
【図１３】
2013080331.tif 000015
【図１４】
2013080331.tif 000016
【図１５】
2013080331.tif 000017
【図１６】
2013080331.tif 000018
【図１７】
2013080331.tif 000019
【図１８】
2013080331.tif 000020
【図１９】
2013080331.tif 000021