第1のスキャンフリップフロップ以下スキャンFFという。のデータ入力端子に接続された第1のロジックコーンの入力端子数である第1の入力端子数と、該第1のロジックコーンにデータを設定する第2のスキャンFFのデータ入力端子に接続された第2のロジックコーンの入力端子数である第2の入力端子数とを比較するデザイン解析部と、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンFFのそれぞれを前記第1のスキャンFFとした場合の前記比較結果に応じて、該複数のスキャンFFを複数のグループに分類し、該複数のグループのそれぞれに含まれるスキャンFFを相互に接続したスキャンチェーンを該複数のグループのそれぞれについて生成するスキャンチェーン構築部と、を備えることを特徴とする半導体集積回路設計装置。前記スキャンチェーン構築部は、前記複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンFF同士を同一のグループに分類するとともに、前記第1の入力端子数が前記第2の入力端子数よりも大きい場合には、前記第2のスキャンFFを前記第1のスキャンFFと同一のグループに分類することを特徴とする、請求項1に記載の半導体集積回路設計装置。前記複数のスキャンチェーンのそれぞれに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定するクロック制御回路挿入部を備えることを特徴とする、請求項1または2に記載の半導体集積回路設計装置。前記クロック制御回路挿入部は、スキャンチェーンに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することを特徴とする、請求項3に記載の半導体集積回路設計装置。前記スキャンチェーン構築部は、前記第2のスキャンFFが第3のスキャンFFのデータ入力端子に接続された第3のロジックコーンにもデータを設定し、かつ、該第3のロジックコーンの入力端子数が前記第2の入力端子数よりも大きい場合には、前記第1の入力端子数が該第3のロジックコーンの入力端子数以上であるときに、前記第1のスキャンFFおよび前記第2のスキャンFFを同一のグループに分類し、それ以外のときに、該第3のスキャンFFおよび前記第2のスキャンFFを同一のグループに分類することを特徴とする、請求項1ないし4のいずれか1項に記載の半導体集積回路設計装置。前記スキャンチェーン構築部は、前記第1のロジックコーンにデータを設定する第4のスキャンFFのデータ入力端子に接続された第4のロジックコーンの入力端子数である第4の入力端子数と、前記第1の入力端子数とを比較し、前記第1の入力端子数が前記第2の入力端子数よりも大きく、かつ、前記第1の入力端子数が前記第4の入力端子数よりも大きい場合には、前記第1のスキャンFF、前記第2のスキャンFFおよび前記第4のスキャンFFを同一のグループに分類することを特徴とする、請求項1ないし5のいずれか1項に記載の半導体集積回路設計装置。前記スキャンチェーン構築部は、前記複数のスキャンFFを前記複数のグループに分類した際に、前記複数のグループのいずれかのグループに含まれるスキャンFFの数が所定の数を上回った場合には、同一の機能ブロックに属するスキャンFFを該グループに含めるようにし、それ以外のスキャンFFを他のグループに分類することを特徴とする、請求項1ないし6のいずれか1項に記載の半導体集積回路設計装置。前記デザイン解析部、前記スキャンチェーン構築部および前記クロック制御回路挿入部は、前記複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の代わりに、前記複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンに対するテストパタン数を用いることを特徴とする、請求項1ないし7のいずれか1項に記載の半導体集積回路設計装置。第1のスキャンフリップフロップ以下スキャンFFという。のデータ入力端子に接続された第1のロジックコーンの入力端子数である第1の入力端子数と、該第1のロジックコーンにデータを設定する第2のスキャンFFのデータ入力端子に接続された第2のロジックコーンの入力端子数である第2の入力端子数とを比較する工程と、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンFFのそれぞれを前記第1のスキャンFFとした場合の前記比較結果に応じて、該複数のスキャンFFを複数のグループに分類する工程と、前記複数のグループのそれぞれに含まれるスキャンFFを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する工程と、を含むことを特徴とする半導体集積回路設計方法。前記複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンFF同士を同一のグループに分類するとともに、前記第1の入力端子数が前記第2の入力端子数よりも大きい場合には、前記第2のスキャンFFを前記第1のスキャンFFと同一のグループに分類することを特徴とする、請求項9に記載の半導体集積回路設計方法。前記複数のスキャンチェーンのそれぞれに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定する工程を含むことを特徴とする、請求項9または10に記載の半導体集積回路設計方法。スキャンチェーンに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することを特徴とする、請求項11に記載の半導体集積回路設計方法。前記第2のスキャンFFが第3のスキャンFFのデータ入力端子に接続された第3のロジックコーンにもデータを設定し、かつ、該第3のロジックコーンの入力端子数が前記第2の入力端子数よりも大きい場合には、前記第1の入力端子数が該第3のロジックコーンの入力端子数以上であるときに、前記第1のスキャンFFおよび前記第2のスキャンFFを同一のグループに分類し、それ以外のときに、該第3のスキャンFFおよび前記第2のスキャンFFを同一のグループに分類することを特徴とする、請求項9ないし12のいずれか1項に記載の半導体集積回路設計方法。前記第1のロジックコーンにデータを設定する第4のスキャンFFのデータ入力端子に接続された第4のロジックコーンの入力端子数である第4の入力端子数と、前記第1の入力端子数とを比較する工程と、前記第1の入力端子数が前記第2の入力端子数よりも大きく、かつ、前記第1の入力端子数が前記第4の入力端子数よりも大きい場合には、前記第1のスキャンFF、前記第2のスキャンFFおよび前記第4のスキャンFFを同一のグループに分類する工程と、を含むことを特徴とする、請求項9ないし13のいずれか1項に記載の半導体集積回路設計方法。前記第1ないし第4のロジックコーンの入力端子数である第1ないし第4の入力端子数の代わりに、前記第1ないし第4のロジックコーンに対するテストパタン数である第1ないし第4のテストパタン数を用いることを特徴とする、請求項9ないし14のいずれか1項に記載の半導体集積回路設計方法。第1のスキャンフリップフロップ以下スキャンFFという。のデータ入力端子に接続された第1のロジックコーンの入力端子数である第1の入力端子数と、該第1のロジックコーンにデータを設定する第2のスキャンFFのデータ入力端子に接続された第2のロジックコーンの入力端子数である第2の入力端子数とを比較する処理と、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンFFのそれぞれを前記第1のスキャンFFとした場合の前記比較結果に応じて、該複数のスキャンFFを複数のグループに分類する処理と、前記複数のグループのそれぞれに含まれるスキャンFFを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する処理と、をコンピュータに実行させることを特徴とするプログラム。前記複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンFF同士を同一のグループに分類するとともに、、前記第1の入力端子数が前記第2の入力端子数よりも大きい場合には、前記第2のスキャンFFを前記第1のスキャンFFと同一のグループに分類することを特徴とする、請求項16に記載のプログラム。前記複数のスキャンチェーンのそれぞれに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定する処理を、コンピュータに実行させることを特徴とする、請求項16または17に記載のプログラム。スキャンチェーンに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することを特徴とする、請求項18に記載のプログラム。前記第1ないし第4のロジックコーンの入力端子数である第1ないし第4の入力端子数の代わりに、前記第1ないし第4のロジックコーンに対するテストパタン数である第1ないし第4のテストパタン数を用いることを特徴とする、請求項16ないし19のいずれか1項に記載のプログラム。以下の分析は、本発明者によってなされたものである。特許文献1に記載された技術は、テスト対象とする論理回路への値の設定を考慮してスキャンチェーン構成をしないため、スキャンシフト時の最大消費電力を抑える場合にテストパタン数が増加し、テスト時間が増大し得る。パタン数の増加が発生する理由は、対象スキャンFFのデータ入力に接続されたロジックコーンすなわち、当該データ入力端子に接続された論理回路のうちの当該データ入力端子の論理値に影響を及ぼし得る回路の集合の解析は可能であるものの、そのロジックコーンに値を設定するスキャンFF以下、制御スキャンFFという。側の解析をしていないためである。特許文献1に記載された技術によるとテストパタン数が増加するメカニズムについて、一例として、図18の半導体集積回路に基づいて説明する。バッファ回路500をテストするのに必要なパタンは、{0}と{1}の2パタンとなる。一方、OR回路700をテストするのに必要なパタンは、図19aに示すように5パタンとなる。ここで、テストパタンを止めたときのパタン数の増加の有無について検討する。図19cに示すように、OR回路700のテストパタンを止めた場合には、パタン数が増加する。一方、図19bに示すように、バッファ回路500のテストパタンを止めても、OR回路700をテストするための別のパタンに、そのパタンを含めることで、全体のパタン数の増加を防ぐことができる。すなわち、データ入力端子に接続されたロジックコーンをテストするためのパタン数の近いスキャンFF毎にスキャンチェーンを構成し、テストパタン数の多いスキャンFFのスキャンチェーンを常に動かし、テストパタン数が少ないスキャンFFのスキャンチェーンを各々交互に動作させることで、パタン数を増加させることなく、1パタン当りに動作するスキャンFFの数を減らし、消費電力を削減することが可能となる。ロジックコーンのテストに必要なテストパタン数は、ロジックコーンの入力端子数に依存し、バッファ回路等の1入力ゲートをテストするのに必要なテストパタンは、{0}および{1}であり、テストパタン数は2となる。一方、2入力ORゲートをテストするのに必要なテストパタンは{00}、{10}および{01}であり、テストパタン数は3となる。特許文献1に記載された技術でも、クロック探索処理によって、対象スキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数を解析することができる。スキャンFF800はロジックコーンOR回路700の入力端子数が多いため、動作率の高いスキャンチェーンに含める。一方、スキャンFF600、610、620、630はロジックコーンバッファ回路500、510、520、530のテストに必要なテストパタン数が少ないため、動作率の低いスキャンチェーンに含める。しかし、図19aに示すように、OR回路700をテストするためには、OR回路700の入力端子に接続されたスキャンFF600、610、620、630に値を設定する必要がある。したがって、スキャンFF600、610、620、630を動作率の低いチェーンに含めてしまうと、入力端子700a~700dの値の制御ができず、パタン数が増加してしまう。したがって、スキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数に応じてスキャンFFを分類し、入力端子数の多いスキャンFFを動作率の高いスキャンチェーンに含めるとともに、入力端子数の少ないスキャンFFを動作率の低いスキャンチェーンに含めた場合には、スキャンシフト時に動作するスキャンFFの個数を削減することはできるものの、スキャンテストにおけるテストパタン数が増大し、テストに要する期間の長期化を招くおそれがある。そこで、スキャンテストにおけるテストパタン数を増大させることなく、スキャンシフト時に動作するスキャンFFの個数を削減して消費電力を抑えることが課題となる。本発明の第1の視点に係る半導体集積回路設計装置は、第1のスキャンFFのデータ入力端子に接続された第1のロジックコーンの入力端子数である第1の入力端子数と、該第1のロジックコーンにデータを設定する第2のスキャンFFのデータ入力端子に接続された第2のロジックコーンの入力端子数である第2の入力端子数とを比較するデザイン解析部と、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンFFのそれぞれを前記第1のスキャンFFとした場合の前記比較結果に応じて、該複数のスキャンFFを複数のグループに分類し、該複数のグループのそれぞれに含まれるスキャンFFを相互に接続したスキャンチェーンを該複数のグループのそれぞれについて生成するスキャンチェーン構築部と、を備える。本発明の第2の視点に係る半導体集積回路設計方法は、第1のスキャンFFのデータ入力端子に接続された第1のロジックコーンの入力端子数である第1の入力端子数と、該第1のロジックコーンにデータを設定する第2のスキャンFFのデータ入力端子に接続された第2のロジックコーンの入力端子数である第2の入力端子数とを比較する工程と、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンFFのそれぞれを前記第1のスキャンFFとした場合の前記比較結果に応じて、該複数のスキャンFFを複数のグループに分類する工程と、前記複数のグループのそれぞれに含まれるスキャンFFを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する工程と、を含む。本発明の第3の視点に係るプログラムは、第1のスキャンFFのデータ入力端子に接続された第1のロジックコーンの入力端子数である第1の入力端子数と、該第1のロジックコーンにデータを設定する第2のスキャンFFのデータ入力端子に接続された第2のロジックコーンの入力端子数である第2の入力端子数とを比較する処理と、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンFFのそれぞれを前記第1のスキャンFFとした場合の前記比較結果に応じて、該複数のスキャンFFを複数のグループに分類する処理と、前記複数のグループのそれぞれに含まれるスキャンFFを相互に接続したスキャンチェーンを前記複数のグループのそれぞれについて生成する処理と、をコンピュータに実行させる。なお、プログラムは、非トランジエントなコンピュータ読み取り可能なnon-transientcomputer-readable記録媒体に記録したプログラム製品としても提供し得る。本発明に係る半導体集積回路設計装置、半導体集積回路設計方法、および、プログラムによると、半導体集積回路のスキャンテストにおけるテストパタン数を増大させることなく、スキャンシフト時に動作するスキャンFFの個数を削減して消費電力を抑えることが可能となる。はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。図1は、本発明に係る半導体集積回路設計装置の構成を一例として示すブロック図である。また、図2は、本発明に係る半導体集積回路設計装置の動作について説明するための図である。図1および図2aを参照すると、本発明に係る半導体集積回路設計装置は、第1のスキャンFFFF1のデータ入力端子に接続された第1のロジックコーンLC1の入力端子数である第1の入力端子数N1と、第1のロジックコーンLC1にデータを設定する第2のスキャンFFFF2のデータ入力端子に接続された第2のロジックコーンLC2の入力端子数である第2の入力端子数N2とを比較するデザイン解析部100と、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数、および、該複数のスキャンFFのそれぞれを第1のスキャンFFとした場合の前記比較結果に応じて、該複数のスキャンFFを複数のグループに分類し、該複数のグループのそれぞれに含まれるスキャンFFを相互に接続したスキャンチェーンを該複数のグループのそれぞれについて生成するスキャンチェーン構築部200と、を備える。ここで、スキャンチェーン構築部200は、複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の値が近いスキャンFF同士を同一のグループに分類するとともに、第1の入力端子数N1が第2の入力端子数N2よりも大きい場合にはN1>N2、第2のスキャンFFFF2を第1のスキャンFFFF1と同一のグループに分類することが好ましい。このとき、データ入力端子に接続されたロジックコーンの入力端子数が相対的に多いスキャンFF同士と、相対的に少ないスキャンFF同士を、別々のグループに分類し、別個のスキャンチェーンに含まれるようにすることが可能となる。また、データ入力端子に接続されたロジックコーンの入力端子数が相対的に少ないスキャンFFが、データ入力端子に接続されたロジックコーンの入力端子数が相対的に多いスキャンFFのデータ入力端子に接続されたロジックコーンにデータを設定している場合には、これらのスキャンFFを同一のスキャンチェーンに含まれるようにすることが可能となる。半導体集積回路設計装置は、前記複数のスキャンチェーンのそれぞれに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数に応じて、前記複数のスキャンチェーンのそれぞれの動作率を決定するクロック制御回路挿入部300を備えることが好ましい。クロック制御回路挿入部300は、スキャンチェーンに含まれるスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数が多くなるに従って動作率が高くなるように、前記複数のスキャンチェーンのそれぞれの動作率を決定することが好ましい。このとき、データ入力端子に接続されたロジックコーンの入力端子数が相対的に少ないスキャンFFを含むスキャンチェーンの動作率を相対的に低くし、データ入力端子に接続されたロジックコーンの入力端子数が相対的に多いスキャンFFを含むスキャンチェーンの動作率を相対的に高くすることで、テストパタン数を増加させることなく、稼動するスキャンFFの個数を削減することが可能となる。したがって、スキャンテストのスキャンシフト動作における消費電力を削減することができる。図2bを参照すると、スキャンチェーン構築部200は、第2のスキャンFFFF2が第3のスキャンFFFF3のデータ入力端子に接続された第3のロジックコーンLC3にもデータを設定し、かつ、第3のロジックコーンの入力端子数N3が第2の入力端子数N2よりも大きい場合にはN3>N2、第1の入力端子数N1が第3のロジックコーンの入力端子数N3以上であるときにN1≧N3、第1のスキャンFFFF1および第2のスキャンFFFF2を同一のグループに分類し、それ以外のときにN1<N3、第3のスキャンFFFF3および第2のスキャンFFFF2を同一のグループに分類するようにしてもよい。図2cを参照すると、スキャンチェーン構築部200は、第1のロジックコーンLC1にデータを設定する第4のスキャンFFFF4のデータ入力端子に接続された第4のロジックコーンLC4の入力端子数である第4の入力端子数N4と、第1の入力端子数N1とを比較し、第1の入力端子数が第2の入力端子数よりも大きく、かつ、第1の入力端子数が第4の入力端子数よりも大きい場合にはN1>N2、N1>N4、第1のスキャンFF、第2のスキャンFFおよび第4のスキャンFFFF1、FF2、FF4を同一のグループに分類するようにしてもよい。また、スキャンチェーン構築部200は、複数のスキャンFFを複数のグループに分類した際に、複数のグループのいずれかのグループに含まれるスキャンFFの数が所定の数を上回った場合には、同一の機能ブロックに属するスキャンFFを該グループに含めるようにし、それ以外のスキャンFFを他のグループに分類することが好ましい。なお、デザイン解析部100、スキャンチェーン構築部200およびクロック制御回路挿入部300は、前記複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンの入力端子数の代わりに、前記複数のスキャンFFのそれぞれのデータ入力端子に接続されたロジックコーンに対するテストパタン数を用いるようにしてもよい。本発明は、スキャンテストの消費電力削減方法および半導体集積回路に関し、スキャンFFを用いた半導体集積回路設計装置および半導体集積回路設計方法に関する。特に、半導体集積回路設計装置は、テスト時におけるスキャンFFを同時に動作させる場合において、スキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数と前記スキャンFFのデータ入力端子に接続されたスキャンFF制御スキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数を考慮してスキャンチェーンを構成し、生成したスキャンチェーン毎にスキャンクロックの供給を制御するクロック制御回路を用いてパタン生成する機能を有し、データ入力端子に接続されたロジックコーンの入力端子数が多いスキャンFFで構成したスキャンチェーンは、常に動かし、データ入力端子に接続されたロジックコーンの入力端子数が少ないスキャンFFで構成したスキャンチェーンは、動作回数を少なくする。これにより、動作するスキャンFFの個数を減らし、スキャンパタン数を増加させることなく、スキャンシフト時の最大消費電力を抑えることができる。実施形態1第1の実施形態に係る半導体集積回路設計装置について、図面を参照して説明する。図1は、本実施形態に係る半導体集積回路設計装置の構成を一例として示すブロック図である。図1を参照すると、半導体集積回路設計装置は、デザイン解析部100、スキャンチェーン構築部200、クロック制御回路挿入部300、および、パタン生成部400を備えている。デザイン解析部100は、被テスト回路2を入力とし、スキャンFF情報リスト71を生成する。スキャンチェーン構築部200は、スキャンFF情報リスト71と被テスト回路2を入力とし、スキャンFF情報リスト71を用いて被テスト回路2に対してスキャンチェーンを構築して、スキャンチェーン情報リスト72とスキャンチェーン構築済み回路73を生成する。クロック制御回路挿入部300は、スキャンチェーン構築済み回路73に対してクロック制御回路30を挿入し、クロック制御回路挿入後回路74を作成する。パタン生成部400は、クロック制御回路挿入後回路74とスキャンチェーン情報リスト72を入力とし、テストパタン75を生成する。図4は、ロジックコーン入力端子数リスト80を一例として示す表である。図4を参照すると、ロジックコーン入力端子数リスト80の各行は、スキャンFF名80a、入力端子数80b、観測スキャンFF名80c、および、観測入力端子数80dを含む。また、ロジックコーン入力端子数リスト80は、スキャンFFの個数に応じて、複数の行を有する。スキャンFF名80aには、スキャンFF名を記載する。入力端子数80bには、スキャンFF名80aに記載されたスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数以下、ロジックコーン入力端子数という。を記載する。観測スキャンFF名80cには、スキャンFF名80aに記載されたスキャンFFの出力信号を取り込む観測スキャンFFのうちの、当該スキャンFFよりもロジックコーン入力端子数が大きい観測スキャンFF名を記載する。観測入力端子数80dは、観測スキャンFF名80cに記載された観測スキャンFFのロジックコーン入力端子数を記載する。図5は、スキャンFF情報リスト71を一例として示す表である。図5を参照すると、スキャンFF情報リスト71の各行は、ロジックコーン情報71a、スキャンFF名71b、機能ブロック名71c、クロック名71d、および、制御スキャンFF名71eを含む。また、スキャンFF情報リスト71は、複数の行を含む。ロジックコーン情報71aには、対象スキャンFFのデータ入力端子に接続されたロジックコーンの情報ロジックコーン入力端子数を記載する。スキャンFF名71bには、当該対象スキャンFF名を記載する。機能ブロック名71cには、当該対象スキャンFFが存在している機能ブロックモジュール名を記載する。クロック名71dには、当該対象スキャンFFが接続されているクロック名を記載する。制御スキャンFF名71eには、当該対象スキャンFFに対する制御スキャンFFのうちの、当該対象スキャンFFよりもロジックコーン入力端子数が小さい制御スキャンFF名を記載する。図6は、スキャンチェーン情報リスト72を一例として示す表である。図6を参照すると、スキャンチェーン情報リスト72の各行は、スキャンチェーン番号72a、スキャンFF数72b、ロジックコーン情報72c、スキャンFF名72d、機能ブロック名72e、および、クロック名72fを含む。スキャンチェーン情報リスト72は、スキャンFFの個数に応じて、複数の行を有する。スキャンFF数72bには、スキャンチェーンに接続されたスキャンFFの番号を記載する。ロジックコーン情報72cには、対象スキャンFFのデータ入力端子に接続されたロジックコーンの情報を記載する。スキャンFF名72dには、当該対象スキャンFF名を記載する。機能ブロック名72eには、当該対象スキャンFFが存在している機能ブロック名を記載する。クロック名72fには、当該対象スキャンFFが接続しているクロック名を記載する。本実施形態に係る半導体集積回路設計装置におけるデザイン解析部100の動作について、図面を参照して説明する。図3は、デザイン解析部100の動作を一例として示すフローチャートである。図3を参照すると、デザイン解析部100は、ロジックコーンの解析を行うスキャンFFを選択するステップA1。デザイン解析部100は、ステップA1で選択したスキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数を解析するステップA2。すなわち、デザイン解析部100は、スキャンFF名をロジックコーン入力端子数リスト80のスキャンFF名80aに記載し、スキャンFFのデータ入力端子に接続されたロジックコーンの入力端子数をロジックコーン入力端子数リスト80の入力端子数80bに記載し、ロジックコーン入力端子数リスト80を作成する。デザイン解析部100は、すべてのスキャンFFのロジックコーン解析を終了したかどうかを判定するステップA3。終了した場合にはステップA3のYes、ステップA4に進む。一方、ロジックコーンの解析をしていないスキャンFFが存在する場合にはステップA3のNo、デザイン解析部100はステップA1に戻り、処理を繰り返す。デザイン解析部100は、スキャンFFのデータ入力端子に接続されたロジックコーンに値を設定するスキャンFF以下、制御スキャンFFという。を解析する対象となるスキャンFFを、対象スキャンFFとして設定するステップA4。デザイン解析部100は、ステップA4で設定した対象スキャンFFに制御スキャンFFが存在するかどうかを判断するステップA5。存在する場合にはステップA5のYes、ステップA6に進む。一方、存在しない場合にはステップA5のNo、ステップA13に進む。デザイン解析部100は、ステップA4で設定した対象スキャンFFに接続された制御スキャンFFを選択するステップA6。デザイン解析部100は、ロジックコーン入力端子数リスト80のスキャンFF名80aにステップA6で選択した制御スキャンFF名が記載されている行の観測入力端子数80dに数値が記載されているかどうかを判定するステップA7。観測入力端子数80dに数値が記載されている場合にはステップA7のYes、ステップA8に進む。一方、観測入力端子数80dに数値が記載されていない場合にはステップA7のNo、ステップA9に進む。ロジックコーン入力端子数リスト80の制御スキャンFFの行において、観測入力端子数80dに数値が記載されている場合にはステップA7のYes、制御スキャンFFの入力端子数として観測入力端子数80dの数値を選択するステップA8。一方、ロジックコーン入力端子数リスト80の制御スキャンFFの行において、観測入力端子数80dに数値が記載されていない場合にはステップA7のNo、制御スキャンFFの入力端子数として、ロジックコーン入力端子数リスト80の入力端子数80bの数値を選択するステップA9。デザイン解析部100は、ステップA4で設定した対象スキャンFFのロジックコーン入力端子数80bが制御スキャンFFの入力端子数よりも大きいかどうかを判定するステップA10。対象スキャンFFのロジックコーン入力端子数80bが制御スキャンFFの入力端子数よりも大きい場合にはステップA10のYes、ステップA11に進む。一方、対象スキャンFFのロジックコーン入力端子数が制御スキャンFFの入力端子数以下である場合にはステップA10のNo、ステップA12に進む。対象スキャンFFのロジックコーンの入力端子数80bが制御スキャンFFの入力端子数よりも大きい場合にはステップA10のYes、デザイン解析部100は、ロジックコーン入力端子数リスト80のスキャンFF名80aに制御スキャンFFが記載された行の観測スキャンFF名80cに、ステップA4で設定した対象スキャンFF名を記載するとともに、観測入力端子数80dに対象スキャンFFのロジックコーン入力端子数80bを記載するステップA11。デザイン解析部100は、ステップA4で設定した対象スキャンFFに接続されたすべての制御スキャンFFの調査が完了したかどうかを判定するステップA12。調査が完了した場合にはステップA12のYes、ステップA13に進む。一方、調査が完了していない場合にはステップA12のNo、デザイン解析部100はステップA6に戻り、処理を繰り返す。デザイン解析部100は、すべてのスキャンFFに対して制御スキャンFFの調査が完了したかどうかを判定するステップA13。調査が完了した場合にはステップA13のYes、ステップA14に進む。一方、調査が完了していない場合にはステップS13のNo、デザイン解析部100はステップA4に戻り、処理を繰り返す。すべてのスキャンFFの調査が完了した場合にはステップA13のYes、デザイン解析部100は、スキャンFF情報リスト71を作成する。すなわち、デザイン解析部100は、各スキャンFFに対して、ロジックコーン入力端子数リスト80の入力端子数80bをスキャンFF情報リスト71のロジックコーン情報71aに記載し、ロジックコーン入力端子数リスト80のスキャンFF名80aをスキャンFF情報リスト71のスキャンFF名71bに記載し、対象スキャンFFが存在している機能ブロックをスキャンFF情報リスト71の機能ブロック名71cに記載し、対象スキャンFFが接続しているクロック名をスキャンFF情報リスト71のクロック名71dに記載する。デザイン解析部100は、スキャンFF情報リスト71に反映するスキャンFFを設定するステップA15。デザイン解析部100は、ステップA15で設定したスキャンFFのロジックコーン入力端子数リスト80の行に観測スキャンFF名80cが存在するかどうかを判定するステップA16。観測スキャンFF名80cが存在する場合にはステップA16のYes、ステップA17に進む。一方、観測スキャンFF名80cが存在しない場合にはステップA16のNo、ステップA18に進む。ステップA15で設定したスキャンFFに観測スキャンFF名80cが存在する場合にはステップA16のYes、デザイン解析部100は、スキャンFF情報リスト71のスキャンFF名71bに観測スキャンFF名80cが記載されている行の制御スキャンFF名71eの箇所に、ステップA15で設定したスキャンFF名を記入し、ステップA15で設定したスキャンFF名がスキャンFF名71bに記載されている行をスキャンFF情報リスト71から削除するステップA17。デザイン解析部100は、すべてのスキャンFFの設定が完了したかどうかを判定するステップA18。設定が完了した場合にはステップA18のYes、処理を終了する。一方、設定が完了していない場合にはステップA18のNo、デザイン解析部100はステップA15に戻り、処理を繰り返す。本実施形態に係る半導体集積回路設計装置におけるスキャンチェーン構築部200の動作について、図面を参照して説明する。図7は、スキャンチェーン構築部200の動作を一例として示すフローチャートである。スキャンチェーン構築部200は、スキャンチェーン情報リスト72のスキャンチェーン番号72aを1に設定し、スキャンFF数72bのカウント数を1に設定するステップB1。スキャンチェーン構築部200は、スキャンFF情報リスト71のロジックコーン情報71aの値が最も大きいスキャンFF群の行を抽出したスキャンFFリスト81を作成し、抽出したスキャンFF群を、スキャンFF情報リスト71から削除するステップB2。スキャンチェーン構築部200は、スキャンFFリスト81内に制御スキャンFF名71eが記載されているスキャンFFが存在するかどうかを判定するステップB3。かかるスキャンFFが存在する場合にはステップB3のYes、ステップB4に進む。一方、かかるスキャンFFが存在しない場合にはステップB3のNo、ステップB9に進む。スキャンチェーン構築部200は、スキャンFFリスト81の制御スキャンFF名71eが記載されている行を選択し、スキャンFF名71bのスキャンFFと制御スキャンFF名71eに記載されているスキャンFFをスキャンチェーン情報リスト72に記載し、記載したスキャンFF数分のスキャンFF数72bをカウントアップし、選択した制御スキャンFF名71eが記載されている行をスキャンFFリスト81から削除するステップB4。スキャンチェーン構築部200は、カウントしたスキャンFF数72bが1チェーン当りスキャンFFの最大数を越えたかどうかを判定するステップB5。スキャンFFの最大数を越えた場合にはステップB5のYes、ステップB6に進む。一方、スキャンFFの最大数を越えていない場合にはステップB5のNo、ステップB7に進む。1チェーン当りのスキャンFFの最大数を越えた場合にはステップB5のYes、スキャンチェーン構築部200は、スキャンチェーン情報リスト72のスキャンチェーン番号72aをカウントアップし、スキャンFF数72bを1に戻すステップB6。スキャンチェーン構築部200は、スキャンFFリスト81内に制御スキャンFF名71eが記載されているスキャンFFが存在するかどうかを判定するステップB7。かかるスキャンFFが存在する場合にはステップB7のYes、スキャンチェーン構築部200は、ステップB4に戻り、処理を繰り返す。一方、かかるスキャンFFが存在しない場合にはステップB7のNo、ステップB8に進む。ステップB7で制御スキャンFFが存在しない場合にはステップB7のNo、スキャンFFリスト81に記載しているスキャンFFをすべて選択したかを判定するステップB8。スキャンFFをすべて選択した場合にはステップB8のYes、ステップB19に進む。一方、スキャンFFが残っている場合にはステップB8のNo、ステップB9に進む。スキャンチェーン構築部200は、スキャンFF数72bの値を確認するステップB9。スキャンFF数72bが1でない場合にはステップB9のNo、ステップB10に進む。一方、スキャンFF数72bが1である場合にはスキャンB9のYes、ステップB11に進む。スキャンFF数72bの値が1でない場合にはステップB9のNo、スキャンチェーン情報リスト72のスキャンチェーン番号72aの数値が最も大きい数値が記載されているスキャンFF群のうちで最も多く存在している機能ブロックを選択するステップB10。スキャンFF数72bの値が1の場合ステップB9のYes、または、対象機能ブロック内のスキャンFFのうちの未選択のスキャンFFが存在する場合にはステップB18のNo、スキャンFFリスト81のうちで最もスキャンFFが多く存在する機能ブロックを選択するステップB11。スキャンチェーン構築部200は、スキャンFFリスト81のうちの、ステップB10またはB11で選択した機能ブロック内で最もスキャンFF数の多いクロックドメインを対象クロックとして選択するステップB12。スキャンチェーン構築部200は、スキャンFFリスト81のうちの、ステップB10またはB11で選択した機能ブロックに存在し、ステップB12で選択したクロックで動作するスキャンFFを一つ選択し、選択したスキャンFFの行をスキャンチェーン情報リスト72に記載し、スキャンFF数72bはカウントアップ値を記載し、選択したスキャンFFの行をスキャンFFリスト81から削除するステップB13。スキャンチェーン構築部200は、カウントしたスキャンFF数72bが1チェーン当りのスキャンFFの最大個数を越えたかを判断するステップB14。スキャンFFの最大個数を越えた場合にはステップB14のYes、ステップB15に進む。一方、スキャンFFの最大個数を越えていない場合にはステップB14のNo、ステップB16に進む。1チェーン当りのスキャンFFの最大数を越えた場合にはステップB14のYes、スキャンチェーン情報リスト72におけるスキャンチェーン番号72aをカウントアップし、スキャンFF数72bを1に戻すステップB15。スキャンチェーン構築部200は、ステップB10またはB11で選択した機能ブロック内において、ステップB12で選択したクロックドメインのスキャンFFをすべて選択したかどうかを判定するステップB16。スキャンFFをすべて選択した場合にはステップB16のYes、ステップB17に進む。一方、スキャンFFが残っている場合にはステップB16のNo、スキャンチェーン構築部200は、ステップB13に戻り、処理を繰り返す。選択したクロックドメインのスキャンFFをすべて選択した場合にはステップB16のYes、スキャンチェーン構築部200は、選択した機能ブロック内のスキャンFFをすべて選択したかどうかを判定するステップB17。スキャンFFをすべて選択した場合にはステップB17のYes、B18に進む。一方、スキャンFFが残っている場合にはステップB17のNo、スキャンチェーン構築部200は、ステップB12に戻り、処理を繰り返す。機能ブロック内のスキャンFFをすべて選択した場合にはステップB17のYes、スキャンチェーン構築部200は、スキャンFFリスト81のスキャンFFをすべて選択したかを判定するステップB18。スキャンFFをすべて選択した場合にはステップB18のYes、ステップB19に進む。一方、スキャンFFが残っている場合にはステップB18のNo、スキャンチェーン構築部200はステップB11に戻り、処理を繰り返す。スキャンチェーン構築部200は、スキャンFF情報リスト71のスキャンFFをすべて選択したかどうかを判定するステップB19。スキャンFFをすべて選択した場合にはステップB19のYes、ステップB20に進む。一方、未選択のスキャンFFが残っている場合にはステップB19のNo、スキャンチェーン構築部200は、ステップB2に戻り、処理を繰り返す。スキャンFFをすべて選択した場合にはステップB19のYes、スキャンチェーン構築部200は、スキャンチェーン情報リスト72の情報を元に、スキャンチェーンを構築するステップB20。本実施形態に係る半導体集積回路設計装置におけるクロック制御回路挿入部300の動作について、図面を参照して説明する。図8は、クロック制御回路挿入部300の動作を一例として示すフローチャートである。図8を参照すると、クロック制御回路挿入部300は、対象とするスキャンチェーンを選択するステップC1。クロック制御回路挿入部300は、ステップC1で選択したスキャンチェーンに繋がっているスキャンFFのクロックドメインを解析するステップC2。クロック制御回路挿入部300は、ステップC2で解析したクロックドメインを制御するクロック制御回路30を作成し、AMC信号4とSMC信号5とステップC1で選択したスキャンチェーンのスキャンイン信号6とスキャンチェーンに存在するスキャンFFのクロックを繋げるステップC3。クロック制御回路挿入部300は、全スキャンチェーンに対してクロック制御回路30を挿入したかどうかを判定するステップC4。全スキャンチェーンに対してクロック制御回路30を挿入した場合にはステップC4のYes、処理を終了する。一方、クロック制御回路30を挿入していないスキャンチェーンが存在する場合にはステップC4のNo、クロック制御回路挿入部300はステップC1に戻り、処理を繰り返す。本実施形態に係る半導体集積回路設計装置におけるパタン生成部400の動作について、図面を参照して説明する。図9は、パタン生成部400の動作を一例として示すフローチャートである。図9を参照すると、パタン生成部400は、動作させるスキャンチェーンの数を設定するステップD1。パタン生成部400は、スキャンチェーン情報リスト72のロジックコーン情報72cの大きい順に、ステップD1で設定した数分のスキャンチェーンを選択するステップD2。パタン生成部400は、ステップD2で選択したスキャンチェーンを用いてパタン生成を行うステップD3。パタン生成部400は、パタン生成が完了したスキャンチェーンが存在するかどうかを判定するステップD4。かかるスキャンチェーンが存在する場合にはステップD4のYes、ステップD5に進む。一方、かかるスキャンチェーンが存在しない場合にはステップD4のNo、パタン生成部400はステップD2に戻り、処理を繰り返す。パタン生成が完了したスキャンチェーンが存在する場合にはステップD4のYes、パタン生成が完了したスキャンチェーンをスキャンチェーン情報リスト72から削除するステップD5。パタン生成部400は、被テスト回路に対してすべてのテストパタン生成が完了したかどうかを判定するステップD6。テストパタン生成が完了した場合にはステップD6のYes、処理を終了する。一方、テストパタン生成が残っている場合にはステップD6のNo、パタン生成部400はステップD2に戻り、処理を繰り返す。図10は、本実施形態に係る半導体集積回路設計装置によって設計された半導体集積回路1の構成を一例として示すブロック図である。図10を参照すると、半導体集積回路1は、組み合わせ回路10、スキャンFF60a~62a、スキャンFF60b~62b、スキャンFF60c~62c、第1ないし第3のスキャンチェーン21~23、および、第1ないし第3のクロック制御回路30a~30cを備えている。組み合わせ回路10の入力端子は、スキャンFF60a~62a、スキャンFF60b~62b、および、スキャンFF60c~62cのそれぞれの出力端子に接続されている。一方、組み合わせ回路10の出力端子は、スキャンFF60a~62a、スキャンFF60b~62b、および、スキャンFF60c~62cのそれぞれのデータ入力端子に接続されている。第1ないし第3のスキャンチェーン21~23は、それぞれ、データ入力端子に接続されたロジックコーンの入力端子数の数が近いスキャンFFや、データのやり取りのあるスキャンFFで構成される。本実施形態では、半導体集積回路1は、一例として、3本のスキャンチェーンを含む。また、クロック制御回路30a~30cは、それぞれ、スキャンチェーン21~23に対して設けられる。スキャンチェーン21は、スキャンイン端子SIN1を入力信号とし、スキャンアウト端子SO1を出力信号とする。同様に、スキャンチェーン22は、スキャンイン端子SIN2を入力信号とし、スキャンアウト端子SO2を出力信号とする。スキャンチェーン23は、スキャンイン端子SIN3を入力信号とし、スキャンアウト端子SO3を出力信号とする。クロック制御回路30aは、通常モードとテストモードとを切り替えるAMCAdaptiveModeControl信号4と、スキャンシフトとキャプチャモードとを切り替えるSMCScanModeControl信号5と、スキャンチェーン21のスキャンイン端子SIN1と、スキャンクロック信号CLKA~CLKCとを入力とする。また、クロック制御回路30aは、クロック制御信号40aをスキャンクロック信号CLKAで動作するスキャンFF60aのクロック信号として出力し、クロック制御信号41aをスキャンクロック信号CLKBで動作するスキャンFF61aのクロック信号として出力し、クロック制御信号42aをスキャンクロック信号CLKCで動作するスキャンFF62aのクロック信号として出力する。クロック制御回路30bは、AMC信号4と、SMC信号5と、スキャンチェーン22のスキャンイン端子SIN2と、スキャンクロック信号CLKA~CLKCとを入力とする。また、クロック制御回路30bは、クロック制御信号40bをスキャンクロック信号CLKAで動作するスキャンFF60bのクロック信号として出力し、クロック制御信号41bをスキャンクロック信号CLKBで動作するスキャンFF61bのクロック信号として出力し、クロック制御信号42bをスキャンクロック信号CLKCで動作するスキャンFF62bのクロック信号として出力する。クロック制御回路30cは、AMC信号4と、SMC信号5と、スキャンチェーン23のスキャンイン端子SIN3と、スキャンクロック信号CLKA~CLKCとを入力とする。また、クロック制御回路30cは、クロック制御信号40cをスキャンクロック信号CLKAで動作するスキャンFF60cのクロック信号として出力し、クロック制御信号41cをスキャンクロック信号CLKBで動作するスキャンFF61cのクロック信号として出力し、クロック制御信号42cをスキャンクロック信号CLKCで動作するスキャンFF62cのクロックとして出力する。図11は、図10に示したクロック制御回路30a~30cの構成を一例として示す回路図である。図11を参照すると、クロック制御回路30a~30cは、それぞれ、インバータ回路52、レベルラッチ回路50、インバータ回路53、OR回路51、および、AND回路54~56を備えている。インバータ回路52は、SMC信号5を入力とし、レベルラッチ回路50に出力信号n52を出力する。インバータ回路53は、AMC信号4を入力とし、OR回路51に出力信号n53を出力する。レベルラッチ回路50は、スキャンイン信号6をデータ入力信号として入力し、インバータ回路52の出力信号n52をゲーティング信号として入力し、OR回路51に出力信号n50を出力する。OR回路51は、インバータ回路53の出力信号n53とレベルラッチ回路50の出力信号n50とをそれぞれ入力し、AND回路54~56に出力信号n51を出力する。AND回路54は、OR回路51の出力信号n51とクロック信号CLKAとを入力とし、クロック制御信号40をスキャンクロック信号CLKAで動作するスキャンFFのクロック端子へ出力する。同様に、AND回路55は、OR回路51の出力信号n51とクロック信号CLKBとを入力とし、クロック制御信号41をスキャンクロック信号CLKBで動作するスキャンFFのクロック端子へ出力する。また、AND回路56は、OR回路51の出力信号n51とクロック信号CLKCとを入力とし、クロック制御信号42をスキャンクロック信号CLKCで動作するスキャンFFのクロック端子へ出力する。AND回路54~56の個数は、制御対象とするクロックの数に応じて変動する。図11に示した例では、制御するクロック信号の個数がクロック信号CLKA~CLKCの3系統のため、クロック制御回路30は3つのAND回路54~56を備えている。図12は、クロック制御回路30図11の動作を一例として示すタイミングチャートである。クロック制御回路30は、通常モードとテストモードを切り替えるAMC信号4をテストモード時の1に設定することで、インバータ回路53の出力信号n53は0となり、OR回路51の出力信号n51には、レベルラッチ回路50の出力信号n50が伝播する。この状態において、クロック制御回路30は、スキャンシフトとキャプチャモードを切り替えるSMC信号5にキャプチャモードの0を設定することで、インバータ回路52の出力信号n52は1となり、レベルラッチ回路50は入力データを出力信号n50に伝播する。クロック制御回路30は、この状態において、キャプチャモード時にスキャンイン信号6に1を設定すると、レベルラッチ回路50の出力信号n50には1が伝播し、クロック制御信号40、41、42にはクロック信号が伝播するキャプチャ1。その後、SMC信号5を1に変更すると、レベルラッチ回路50には1の値が保持されるため、スキャンイン信号6の値に関わらず、以降のスキャンシフト期間中はクロック信号が伝播するスキャンシフト1。クロック制御回路30は、SMC信号5を0キャプチャモードに設定し、スキャンイン信号6に0を設定すると、レベルラッチ回路50の出力信号n50には0が伝播し、クロック制御信号40~42は0となり、クロック信号が伝播しないキャプチャ2。その後、SMC信号5を1に変更すると、レベルラッチ回路50には0の値が保持されるため、スキャンイン信号6の値に関わらず、以降のスキャンシフト期間中はクロックが伝播しないスキャンシフト2。図13は、本実施形態に係る半導体集積回路設計装置の効果の一例について説明するための図である。図13に示した半導体集積回路3を参照して、本実施形態に係る半導体集積回路設計装置の動作を具体的に説明する。図13を参照すると、半導体集積回路3において、ロジックコーン11ないし16は、それぞれ、4個、3個、2個、6個、2個、10個の入力端子を有する。各スキャンFFのロジックコーン解析デザイン解析部100のステップA2により、ロジックコーン入力端子数リスト80のロジックコーン入力端子数80bの値に、スキャンFF91ないしスキャンFF96は、それぞれ、4、3、2、6、2、10を設定する。各スキャンFFと制御スキャンFFとのロジックコーン入力端子数を比較するとステップA10、スキャンFF94の制御スキャンFFであるスキャンFF93のロジックコーン入力端子数はスキャンFF94のロジックコーン入力端子数よりも小さく、スキャンFF96の制御スキャンFFであるスキャンFF95のロジックコーン入力端子数はスキャンFF96よりも小さい。したがって、ロジックコーン入力端子数リスト80の観測スキャンFF名80cと観測入力端子数80dに対して、スキャンFF93はスキャンFF94の情報が記載され、スキャンFF95はスキャンFF96の情報が記載される。また、図3のステップA17において、デザイン解析部100は、スキャンFF情報リスト71のスキャンFF94の行の制御スキャンFF名71eにスキャンFF93を記載し、スキャンFF96の行の制御スキャンFF名71eにスキャンFF95を記載する。3本のスキャンチェーンで構築する場合には、スキャンチェーン構築部200は、スキャンFF情報リスト71に基づいて、スキャンFF96、95で1本のスキャンチェーンを構成し、スキャンFF94、93とで1本のスキャンチェーンを構成し、残りのスキャンFF92、91で1本のスキャンチェーンを構成する。クロック制御回路挿入部300は、スキャンチェーン毎にクロックを制御するクロック制御回路30を挿入する。これにより、スキャンチェーンの動作を任意に制御し、スキャンチェーン毎のパタン生成が可能となる。以上の構成において、入力端子数が最も多い10個の入力端子のロジックコーン16をテストするスキャンチェーンのスキャンFF96とスキャンFF95を常に動作させ、残り2つのスキャンチェーンは交互に動作させることで、動作するスキャンFF数は2/3となり、スキャンシフト時の消費電力を抑えることが可能となる。実施形態2第2の実施形態に係る半導体集積回路設計装置について、図面を参照して説明する。図14は、本実施形態に係る半導体集積回路設計装置の構成を一例として示すブロック図である。第1の実施形態の半導体集積回路設計装置図1は、スキャンFFのロジックコーン入力端子数を解析するデザイン解析部100を備えている。一方、本実施形態では、半導体集積回路設計装置は、スキャンFFのロジックコーンをテストするために必要なパタン数を解析するデザイン解析部900を備えている。半導体集積回路設計装置における上記以外の構成、すなわち、スキャンチェーン構築部200、クロック制御回路挿入部300およびパタン生成部400は、本実施形態と第1の実施形態との間で同一である。図15は、デザイン解析部900で作成するロジックコーンパタン数リスト801を一例として示す表である。図15を参照すると、本実施形態では、スキャンFFのロジックコーン入力端子数を記載する入力端子数80b図4が、当該スキャンFFのデータ入力に接続されたロジックコーンをテストするために必要なパタン数80eに置き換わるとともに、観測スキャンFFのロジックコーン入力端子数を記載する観測入力端子数80dが、当該観測スキャンFFのロジックコーンをテストするため必要な観測パタン数80fに置き換わる点において、第1の実施形態と相違する。図16は、本実施形態のデザイン解析部900の動作を一例として示すフローチャートである。図16を参照すると、本実施形態では、ロジックコーン入力端子数の解析ステップA2の代わりに、ロジックコーンをテストするために必要なパタン数を解析する点ステップE1、E2と、制御スキャンFFの解析にロジックコーンの入力端子数を用いるステップA7、ステップA8、ステップA9、ステップA10、ステップA11代わりに、当該パタン数を用いる点ステップE7、ステップE8、ステップE9、ステップE10、ステップE11と、その結果をスキャンFF情報リストに反映するステップE14点において、第1の実施形態におけるデザイン解析部100の動作図3と相違する。デザイン解析部900は、ステップA1で選択したスキャンFFのデータ入力端子に接続されたロジックコーンを抽出するステップE1。デザイン解析部900は、抽出したロジックコーンを対象にパタン生成を実行し、対象スキャンFFのデータ入力端子に接続されたロジックコーンをテストするのに必要なパタン数を算出し、スキャンFF名をロジックコーンパタン数リスト801のスキャンFF名80aに記載し、当該スキャンFFのデータ入力端子に接続されたロジックコーンをテストするのに必要なパタン数をロジックコーンパタン数リスト801のパタン数80eに記載し、ロジックコーンパタン数リスト801を作成するステップE2。ステップA3ないしA6の動作は、第1の実施形態と同様である。デザイン解析部900は、ステップA6で選択した制御スキャンFFのロジックコーンパタン数リスト801の観測パタン数80fに数値が記載されているかどうかを判定するステップE7。観測パタン数80fが記載されている場合にはステップE7のYes、ステップE8に進む。一方、観測パタン数80eが記載されていない場合にはステップE7のNo、ステップE9に進む。制御スキャンFFにロジックコーンパタン数リスト801の観測パタン数80fが記載されている場合にはステップE7のYes、当該制御スキャンFFのパタン数に観測パタン数80fの数値を選択するステップE8。一方、制御スキャンFFにロジックコーンパタン数リスト801の観測パタン数80fが記載されていない場合にはステップE7のNo、当該制御スキャンFFのパタン数に当該ロジックコーンパタン数リスト801のパタン数80eの数値を選択するステップE9。デザイン解析部900は、対象スキャンFFのパタン数が制御スキャンFFのパタン数より大きいかどうかを判定するステップE10。対象スキャンFFのパタン数が制御スキャンFFのパタン数より大きい場合にはステップE10のYes、ステップE11に進む。一方、対象スキャンFFのパタン数が制御スキャンFFのパタン数以下である場合にはステップE10のNo、ステップA12に進む。対象スキャンFFのパタン数が制御スキャンFFのパタン数よりも大きい場合にはステップE10のYes、ロジックコーンパタン数リスト801のスキャンFF名80aに当該制御スキャンFFが記載されている行に対して、観測スキャンFF名80cにステップA4で設定した対象スキャンFF名を記載し、観測パタン数80fに当該対象スキャンFFのパタン数を記載するステップE11。ステップA12、A13の動作は、第1の実施形態と同様である。すべてのスキャンFFの調査が完了した場合にはステップA13のYes、各スキャンFFに対して前記ロジックコーンパタン数リスト801のパタン数80eをスキャンFF情報リスト71のロジックコーン情報71aに記載し、ロジックコーンパタン数リスト801のスキャンFF名80aをスキャンFF情報リスト71のスキャンFF名71bに記載し、対象スキャンFFが存在している機能ブロックをスキャンFF情報リスト71の機能ブロック名71cに記載し、接続しているクロック名をスキャンFF情報リスト71のクロック名71dに記載するステップE14。ステップA15ないしA18の動作は、第1の実施形態と同様である。スキャンチェーン構築部200、クロック制御回路挿入部300、および、パタン生成部400の構成および動作は、実施形態1と同一であることから、以下の動作は第1の実施形態と同一である。第1の実施形態では、ロジックコーンに必要なテストパタン数をロジックコーンの入力端子数で判断する。一方、本実施形態では、実際にテストパタンを生成しそのパタン数を基準に構築する。このため、本実施形態でも必要なテストパタン数を基準にスキャンチェーンを構築でき、ロジックコーンをテストするに多くのパタンが必要なスキャンチェーンは常に動かし、ロジックコーンをテストするに多くのパタンが必要ではないスキャンチェーンの動作回数を少なくすることで、第1の実施形態と同じく、スキャンパタン数を増加させることなく、スキャンシフト時の最大消費電力を抑えることが可能となる。なお、先行技術文献である上記特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示請求の範囲を含むの枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素各請求項の各要素、各実施例の各要素、各図面の各要素等を含むの多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。