第2実施例スキャンシフトによって第1データを格納する第1フリップフロップと、スキャンシフトによって第2データを格納する第2フリップフロップと、前記第1データとスキャンイネーブル信号との論理演算結果をイネーブル制御信号として出力する第1制御回路と、組合せ回路からの第1イネーブル信号と前記第2データとの論理演算結果を第2イネーブル信号として出力する第2制御回路と、前記イネーブル制御信号と前記第2イネーブル信号との論理演算結果をゲート制御信号として出力する第3制御回路と、前記ゲート制御信号に応じて次段のフリップフロップ回路へのクロック信号の伝播を制御するクロックゲーティング回路とを具備する半導体集積回路。請求項1に記載の半導体集積回路において、前記第1制御回路は、前記第1データと前記スキャンイネーブル信号との論理和を前記イネーブル信号として出力するORゲートであり、前記第2制御回路は、前記第1イネーブル信号と前記第2データとの論理積を前記第2イネーブル信号として出力するANDゲートであり、前記第3制御回路は、前記イネーブル制御信号と前記第2イネーブル信号との論理和を前記ゲート制御信号として出力するORゲートである半導体集積回路。CPUが、RTL記述による半導体集積回路にクロックゲーティング回路を挿入するステップと、前記CPUが、前記クロックゲーティング回路と、前記クロックゲーティング回路によって、クロック信号の伝播が制御されるフリップフロップの数とを対応付けてCGC制御データベースとして記録するステップと、前記CPUが、スキャンシフトによって自身に格納されるデータによって前記クロックゲーティング回路に対するイネーブル信号の入力を制御するフリップフロップ回路を、前記半導体集積回路に挿入するステップと、前記CPUが、前記フリップフロップ回路と前記クロックゲーティング回路とを対応付けて前記CGC制御データベースに記録するステップとを具備する半導体集積回路の設計支援方法。請求項3に記載の設計支援方法において、前記フリップフロップ回路を挿入するステップは、前記CPUが、スキャンシフトによって第1データを格納する第1フリップフロップと、スキャンシフトによって第2データを格納する第2フリップフロップと、前記第1データとスキャンイネーブル信号との論理演算結果をイネーブル制御信号として出力する第1制御回路と、組合せ回路からの第1イネーブル信号と前記第2データとの論理演算結果を第2イネーブル信号として出力する第2制御回路と、前記イネーブル制御信号と前記第2イネーブル信号との論理演算結果をゲート制御信号として出力する第3制御回路とを追加するステップと、前記CPUが、前記クロックゲーティング回路のイネーブル端子と前記ゲート制御信号が供給される信号線とを接続するステップとを備え、前記フリップフロップ回路と前記クロックゲーティング回路とを対応付けて前記CGC制御データベースに記録するステップは、前記CPUが、前記第2フリップフロップと、前記クロックゲーティング回路とを対応付けて前記CGC制御データベースとして記憶装置に記録するステップを備える半導体集積回路の設計支援方法。請求項3又は4に記載の設計支援方法において、前記CPUが、前記CGC制御データベースと予め指定されたフリップフロップの活性化率に基づいてスキャンパステストにおけるテストパタンを生成するステップを更に具備する半導体集積回路の設計支援方法。請求項3から5のいずれか1項に記載の設計支援方法をコンピュータに実行させる半導体集積回路の設計支援プログラム。特許文献1に記載の技術では、クロックゲーティング回路に対するスキャンイネーブル信号の入力のみならず、組み合わせ回路からのイネーブル信号の入力も、スキャンレジスタ内のテストパタンデータによって制御している。特許文献1では、イネーブル信号の入力を任意に設定可能なテストパタンデータによって制御できるため、キャプチャ時においても、フリップフロップ回路に対するクロックの入力を遮断することが可能となる。これにより、テスト対象とならないフリップフロップ回路のトグルが抑制されるため、キャプチャ時の電力を削減することができる。しかし、特許文献1では、複数のスキャンレジスタに格納されたデータの組み合わせによって、イネーブル信号の入力を遮断するクロックゲーティング回路を決定している。このため、N個のクロックゲーティング回路を制御する場合、N個のスキャンレジスタが必要となる。又、この場合、N出力のデコーダをN-1個用意するとともに、クロックゲーティング回路を制御するデコーダをN-1個のデコーダから選択する選択回路を用意する必要がある。従って、特許文献1に記載の半導体集積回路では、スキャンパステストの省電力化のためにスキャンレジスタに格納するデータパタンは複雑化し、回路規模も増大してしまう。特に、制御対象となるクロックゲーティング回路の数が増大した場合、デコーダ数や選択回路数が増大するため回路規模も大きくなる。又、デコーダ出力数や選択回路を制御する制御信号数に応じてスキャンレジスタ数も増えるため、テストパタンデータ量も増大してしまう。上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために、[発明を実施するための形態]で使用される番号符号が付加されている。ただし、付加された番号符号は、[特許請求の範囲]に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。本発明による半導体集積回路は、第1フリップフロップ回路5、第2フリップフロップ回路7、第1制御回路4、第2制御回路6、第3制御回路3、及びクロックゲーティング回路2を具備する。第1フリップフロップ5は、スキャンシフトによって第1データを格納する。第2フリップフロップ7は、スキャンシフトによって第2データを格納する。第1制御回路4は、第1データとスキャンイネーブル信号SMCとの論理演算結果をイネーブル制御信号C2として出力する。第2制御回路6は、組合せ回路9からの第1イネーブル信号EN1と第2データとの論理演算結果を第2イネーブル信号EN2として出力する。第3制御回路3は、イネーブル制御信号C2と第2イネーブル信号EN2との論理演算結果をゲート制御信号C1として出力する。クロックゲーティング回路2は、ゲート制御信号C2に応じて次段のフリップフロップ回路1へのクロック信号CLKの伝播を制御する。他の観点において本発明による半導体集積回路の設計支援方法は、CPU110が、RTL記述による半導体集積回路にクロックゲーティング回路2を挿入するステップと、CPU110が、クロックゲーティング回路2と、クロックゲーティング回路2によって、クロック信号CLKの伝播が制御されるフリップフロップ1の数とを対応付けてCGC制御データベース202として記録するステップと、CPU110が、スキャンシフトによって自身に格納されるデータによってクロックゲーティング回路に対するイネーブル信号の入力を制御するフリップフロップ回路7を、半導体集積回路に挿入するステップと、CPU110が、フリップフロップ回路7とクロックゲーティング回路2とを対応付けてCGC制御データベース202に記録するステップとを具備する。本発明によれば、クロックゲーティング回路を搭載した半導体集積回路の回路規模の増大を抑制しながら、テスト時の消費電力を低減することができる。又、組合せ回路とクロックゲーティング回路とを接続するイネーブル信号線の異常を検出することができる。更に、スキャンパステスト時のフリップフロップの活性化率を容易に設定することができる。以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。半導体集積回路図1から図5を参照して、本発明による半導体集積回路の構成の一例を説明する。図1は、本発明による半導体集積回路の構成の一例を示す図である。図1に示す半導体集積回路は、フリップフロップ回路1-1~1-3、5、7、10、12、クロックゲーティング回路2、ゲート制御回路3第3制御回路、モード制御回路4第1制御回路、イネーブル制御回路6第2制御回路、組合せ回路9、11を具備する。フリップフロップ回路1-1~1-3、5、7、10、12は、スキャンモードにおいて他のフリップフロップ回路図示しないフリップフロップ回路も含んでも良いとともにシリアルに接続されてスキャンパスを形成し、スキャンレジスタとして機能する。フリップフロップ回路1-1~1-3、5、7、10、12は、スキャンモードにおけるスキャンシフト動作によってテストパタンデータが設定されるため、それぞれに設定する値は一意に決定できる。スキャンテストにおいては、フリップフロップ回路を始点、終点とした組合せ回路のロジックコーンとして扱えば良いため、テストパタンデータの作成は容易である。そのテストパタンデータの長さはフリップフロップ回路間に設けられた組合せ回路の論理の複雑さ、深さによって決まる。組合せ回路11は、キャプチャモードにおいて、前段に接続されるフリップフロップ回路12からの出力データを処理し、処理結果を、後段に接続されるフリップフロップ回路1-1に出力する。フリップフロップ回路1-1は、クロックゲーティング回路2から供給されるクロック信号CLKに同期して、組合せ回路11からの出力データを格納する。同様に、キャプチャモード時、フリップフロップ1-2、1-3は、図示しない組合せ回路に接続され、クロックゲーティング回路2から供給されるクロック信号CLKに同期して、フリップフロップ回路からの出力データを格納する。クロックゲーティング回路2は、ゲート制御回路3からのゲート制御信号C1に応じて、フリップフロップ回路へのクロック信号の伝搬又は遮断を制御する。詳細には、クロックゲーティング回路2は、クロック信号CLKが供給されるクロック端子CLKとゲート制御信号C1が入力されるイネーブル端子ENと、次段のフリップフロップ回路にクロック信号CLKを供給するクロック端子GCLKを備える。クロックゲーティング回路2は、ゲート制御信号C1に応じて、クロック信号CLKを伝搬させるか遮断するかを決定し、伝搬させる場合、クロック信号CLKを、クロック端子GCLKを介してフリップフロップ回路1-1~1-3に出力する。例えば、クロックゲーティング回路2は、クロック信号CLKの反転信号に応じてゲート制御信号C1を保持するラッチ回路と、クロック信号CLKが示す論理値と当該ラッチ回路からの出力ゲート制御信号C1が示す論理値との論理積をクロック端子GCLKに出力するANDゲートを備える図示なし。この場合、クロックゲーティング回路2は、ゲート制御信号C1がハイレベル1のとき、クロック信号CLKをクロック端子GCLKに出力し、ゲート制御信号C1がハイレベル0のとき、ローレベル0の信号をクロック端子GCLKに出力する。すなわち、クロックゲーティング回路2は、ハイレベル1のゲート制御信号C1に応じて、クロック信号CLKを伝搬させて制御対象となるフリップフロップ1-1~1-3に供給し、ローレベル0のゲート制御信号C1に応じて、フリップフロップ回路1-1~1-3へのクロック信号CLKを遮断する。ゲート制御回路3は、モード制御回路4から出力されたイネーブル制御信号C2が示す論理値と、イネーブル制御回路6から出力されたイネーブル信号以下、第2イネーブル信号EN2と称すが示す論理値との論理演算結果を、ゲート制御信号C1としてクロックゲーティング回路2に出力する。ここでは、ゲート制御回路3として、イネーブル制御信号C2と第2イネーブル信号EN2との論理和をゲート制御信号C1として出力するORゲートが好適に利用される。尚、ゲート制御回路3は、クロックゲーティング回路2に内蔵されていても良い。ゲート制御回路3の動作の詳細は後述する。モード制御回路4は、スキャンイネーブル信号SMCが示す論理値と、フリップフロップ回路5第1フリップフロップの保持データ第1データとの論理演算結果を、イネーブル制御信号C2としてゲート制御回路3に出力する。ここでは、モード制御回路4として、スキャンイネーブル信号SMCとフリップフロップ回路5の保持データとの論理和を、イネーブル制御信号C2として出力するORゲートが好適に利用される。尚、スキャンイネーブル信号SMCは、スキャンモードとキャプチャモードとの切り替えを制御する信号である。例えば、半導体集積回路は、ハイレベル1のスキャンイネーブル信号SMCに応じてスキャンモードに設定され、ローレベル0のスキャンイネーブル信号SMCに応じてキャプチャモードに設定される。図2は、本発明に係るモード制御回路4の動作の一例を示す真理値表である。図2を参照して、モード制御回路4は、スキャンイネーブル信号SMCがローレベル0の場合、フリップフロップ回路5の保持データが示す論理値のイネーブル制御信号C2を、ゲート制御回路3に出力する。すなわち、モード制御回路4は、キャプチャモードのとき、フリップフロップ回路5の保持データがイネーブル制御信号C2として出力する。一方、スキャンイネーブル信号SMCがハイレベル1の場合、フリップフロップ回路5の保持データが示す論理値に関わらず、ハイレベル1のイネーブル制御信号C2をゲート制御回路3に出力する。すなわち、モード制御回路4は、スキャンモードのとき、フリップフロップ回路5の保持データに関わらずハイレベル1のイネーブル制御信号C2を出力する。上述したモード制御回路4の動作を換言すると、モード制御回路4は、フリップフロップ回路5の保持データがハイレベル1を示す場合、スキャンイネーブル信号SMCが示す論理値に関わらず、ハイレベル1のイネーブル制御信号C2をゲート制御回路3に出力する。すなわち、モード制御回路4は、フリップフロップ回路5の保持データがハイレベル1の場合、ゲート制御回路3へのスキャンイネーブル信号SMCの伝搬を遮断し、イネーブル制御信号C2をハイレベル1に固定する。一方、フリップフロップ回路5の保持データがローレベル0の場合、モード制御回路4は、スキャンイネーブル信号SMCが示す論理値のイネーブル制御信号C2を、ゲート制御回路3に出力する。すなわち、フリップフロップ回路5の保持データがローレベル0の場合、モード制御回路4は、スキャンイネーブル信号SMCをイネーブル制御信号C2としてゲート制御回路3に出力伝播する。この際、キャプチャモードの場合、ローレベル0のスキャンイネーブル信号SMCがイネーブル制御信号C2としてゲート制御回路3に出力され、スキャンモードの場合、ハイレベル1のスキャンイネーブル信号SMCがイネーブル制御信号C2としてゲート制御回路3に出力される。このように、本発明に係るモード制御回路4は、スキャンシフトによってフリップフロップ回路5に設定されたテストパタンデータを用いて、スキャンイネーブル信号SMCのゲート制御回路3クロックゲーティング回路2への伝搬を制御することができる。フリップフロップ回路5は、スキャンモードにおいて、他のフリップフロップ回路とともにスキャンパスを形成するスキャンレジスタとして機能する。このため、スキャンシフト動作によってテストデータがフリップフロップ回路5に書き込まれる。フリップフロップ回路5の保持データは、キャプチャモードにおいてゲート制御回路3を制御するイネーブル制御信号C2となる。すなわち、キャプチャモードにおけるイネーブル制御信号C2の値は、スキャンレジスタに設定されたテストパタンデータによって設定されることとなる。組合せ回路11は、キャプチャモードにおいて、前段に接続されるフリップフロップ回路10からの出力データを処理し、処理結果以下、第1イネーブル信号EN1と称すを、イネーブル信号線8を介してイネーブル制御回路6に出力する。第1イネーブル信号EN1のクロックゲーティング回路2への入力は、イネーブル制御回路6及びゲート制御回路3によって制御される。イネーブル制御回路6は、イネーブル信号線8を介して組合せ回路9から出力された第1イネーブル信号EN1が示す論理値と、フリップフロップ回路7第2フリップフロップの保持データ第2データとの論理演算結果を、第2イネーブル信号EN2としてゲート制御回路3に出力する。ここでは、イネーブル制御回路6として、第1イネーブル信号EN1とフリップフロップ回路7の保持データとの論理積を、第2イネーブル信号EN2として出力するANDゲートが好適に利用される。尚、第1イネーブル信号EN1は、フリップフロップ回路10の保持データに基づいた組合せ回路9の処理結果である。図3は、本発明に係るイネーブル制御回路6の動作の一例を示す真理値表である。図3を参照して、イネーブル制御回路6は、フリップフロップ回路7の保持データがハイレベル1の場合、第1イネーブル信号EN1が示す論理値の第2イネーブル信号EN2を、ゲート制御回路3に出力する。すなわち、フリップフロップ回路7の保持データがハイレベル1の場合、イネーブル制御回路6は、組合せ回路9からの第1イネーブル信号EN1を第2イネーブル信号EN2としてゲート制御回路3に出力伝播する。一方、フリップフロップ回路7の保持データがローレベル0の場合、イネーブル制御回路6は、第1イネーブル信号EN1が示す論理値に関わらず、ローレベル0の第2イネーブル信号EN2をゲート制御回路3に出力する。すなわち、イネーブル制御回路6は、フリップフロップ回路7の保持データがローレベル0の場合、クロックゲーティング回路2への第1イネーブル信号EN1の伝搬を遮断し、第2イネーブル信号EN2を0に固定する。このように、本発明に係るイネーブル制御回路6は、スキャンシフトによってフリップフロップ回路7に設定されたテストパタンデータを用いて、第1イネーブル信号EN1のゲート制御回路3クロックゲーティング回路2への伝搬を制御することができる。図4は、本発明に係るゲート制御回路3の動作の一例を示す真理値表である。図2から図4を参照して、ゲート制御回路3は、イネーブル制御信号C2が示す論理値がローレベル0を示す場合、第2イネーブル信号EN2が示す論理値のゲート制御信号C1を、クロックゲーティング回路2に出力する。すなわち、半導体集積回路がキャプチャモードに設定された場合、ゲート制御回路3は、第2イネーブル信号EN2をゲート制御信号C1としてクロックゲーティング回路2に出力伝播する。例えば、キャプチャモードにおいて、フリップフロップ回路7にハイレベル1のデータが保持されている場合、第1イネーブル信号EN1が第2イネーブル信号EN2としてゲート制御回路3に入力される。この場合、クロックゲーティング回路2は、組合せ回路9から出力された第1イネーブル信号EN1に応じてフリップフロップ回路1-1~1-3へのクロック信号CLKの供給を制御することとなる。すなわち、スキャンシフトによりフリップフロップ回路7にハイレベル1のテストパタンデータを書き込むことで、キャプチャモードにおけるフリップフロップ回路1-1~1-3に対するクロック信号CLKの供給又は遮断を、第1イネーブル信号EN1に応じて制御することが可能となる。あるいは、キャプチャモードにおいて、フリップフロップ回路7にローレベル0のデータが保持されている場合、ローレベル0の第2イネーブル信号EN2がゲート制御回路3に入力される。この場合、クロックゲーティング回路2は、フリップフロップ回路1-1~1-3へのクロック信号CLKの供給を遮断する。すなわち、スキャンシフトによりフリップフロップ回路7にローレベル0のテストパタンデータを書き込むことで、キャプチャモードにおけるフリップフロップ回路1-1~1-3に対するクロック信号CLKの供給を停止することが可能となる。これによりキャプチャモード時のフリップフロップ回路1-1~1-3のトグルを抑えることができ、キャプチャ時の電力消費を削減することができる。フリップフロップ回路7及びイネーブル制御回路6をクロックグループ単位クロックドメイン単位で挿入することによって、クックドメイン単位でクロック信号が意図的に遮断される。これにより、半導体集積回路におけるキャプチャ時の消費電力は低減し、IRドロップ等の影響は削減され、テスト時の特性が改善される。一方、イネーブル制御信号C2が示す論理値がローレベル1を示す場合、ゲート制御回路3は、第2イネーブル信号EN2が示す論理値に関わらず、ハイレベル1のゲート制御信号C1をクロックゲーティング回路2に出力する。すなわち、ゲート制御回路3は、フリップフロップ回路5にハイレベル1のデータが設定されている場合、クロックゲーティング回路2への第2イネーブル信号EN2の伝搬を遮断し、ゲート制御信号C1を1に固定する。これにより、クロックゲーティング回路2は、スキャンイネーブル信号SMC、第1イネーブル信号EN1、又はフリップフロップ回路7に格納されたデータの論理値に関わらずフリップフロップ回路1-1~1-3にクロック信号CLKを出力伝播する。尚、スキャンモードの場合もイネーブル制御信号C2が示す論理値はローレベル1を示すため、フリップフロップ回路1-1~1-3にクロック信号CLKは出力伝播され、スキャンシフト動作が可能となる。本発明では、キャプチャモードにおいて、フリップフロップ回路5の保持データによってイネーブル制御信号C2をハイレベル1に固定し、クロック信号CLKをフリップフロップ回路1-1~1-3に伝播させ、フリップフロップ回路7の保持データによって第2イネーブル制御信号C2をローレベル0に固定し、フリップフロップ回路1-1~1-3へのクロック信号CLKを遮断する。このように、本発明では、キャプチャモードにおいて、第1イネーブル信号EN1に拠らず、フリップフロップ回路5、7に設定されたデータに基づいて、フリップフロップ回路1-1~1-3へのクロック信号CLKの伝播を制御することができるため、イネーブル信号線8に対する故障検査を行うことが可能となる。又、この故障検査の際に行われるクロック信号CLKの伝播制御は、スキャンシフト動作によってフリップフロップ回路5、7に対し一意に設定されたテストパタンデータで行われるため、当該検査のために外部端子を用意する必要はない。更に、イネーブル信号線8の故障検出は最低1回行われれば良いため、当該故障検出テスト以外のテストパタンデータとして1をフリップフロップ回路5に設定することで、キャプチャモードにおいて、第2イネーブル信号ENの値に拠らずフリップフロップ回路1-1~1-3へのクロック信号CLKが伝搬することとなる。このためATPG時に制御しなければならない論理が減るため、パタン数を削減できる。本発明では、第1イネーブル信号EN1及びフリップフロップ回路7内データの論理演算結果と、スキャンイネーブル信号SMC及びフリップフロップ回路5内データの論理演算結果との論理演算結果によって、クロックゲーティング回路2のゲーティング動作を制御している。このため、キャプチャ時におけるクロック信号CLKの伝播を制御するためには、少なくとも3つの論理演算回路を必要とする。本実施の形態では1つのANDゲートと2つのORゲートを用意するだけで、クロックゲーティング回路2の制御が可能となる。特に、キャプチャ時の消費電力低減のためにクロックゲーティング回路2のクロック伝搬を遮断する場合、1組のフリップフロップ回路7とイネーブル制御回路6ここではANDゲートのみを用意すれば良い。従って、本発明による半導体集積回路は、特許文献1に記載の回路に比べ格段に小型化できる。図1に示す半導体集積回路の一例では、1つのクロックゲーティング回路2におけるクロック伝搬の制御を行う構成について説明したがこれに限らず、図5に示すように複数のクロックゲーティング回路2-1、2-2におけるクロック伝搬の制御が行われても良い。又、クロック伝搬が制御されるクロックゲーティング回路は、複数のみならず1つのフリップフロップ回路に対するクロック信号の供給を制御しても良い。図5は、本発明による半導体集積回路の構成の他の一例を示す図である。図5に示す半導体集積回路では、ゲート制御回路3に複数のクロックゲーティング回路2-1、2-2が接続されている。又、クロックゲーティング回路2-1はフリップフロップ回路1-11に対するクロック信号CLKの供給を制御し、クロックゲーティング回路2-2はフリップフロップ回路1-21、1-22に対するクロック信号CLKの供給を制御する。フリップフロップ回路1-11は、組合せ回路11-11を介して前段のフリップフロップ回路12-11に接続され、フリップフロップ回路1-21は、組合せ回路11-21を介して前段のフリップフロップ回路12-21に接続される。フリップフロップ回路1-22も同様に図示しない組合せ回路に接続される。その他の構成は、図1に示す半導体集積回路と同様である。本発明によれば、複数のクロックゲーティング回路2-1、2-2のクロック伝搬を制御する場合でも、ゲート制御回路3、モード制御回路4、フリップフロップ回路5、7、及びイネーブル制御回路6をそれぞれ1つ用意すれば良い。動作については、図1の説明と同様であるためその説明は省略する。又、ゲーティング動作の制御対象となるクロックゲーティング回路の駆動数は、1つとは限らず、複数でも構わない。ここで、駆動数とはクロックゲーティング回路がクロック信号CLKの供給を制御する対象のフリップフロップ回路の数を示す。図5に示す一例では、1つのフリップフロップ回路7に設定されたデータによって、それぞれ駆動数が異なる複数のクロックゲーティング回路2-1、2-2のキャプチャ時におけるクロック遮断電力消費抑制が制御される。フリップフロップ回路7が制御可能なクロックゲーティング回路、すなわち、フリップフロップ回路7による電力抑制量は、半導体集積回路の設計時にEDAツール又は設計者によって予め設定される。この際、クロックゲーティング回路の駆動数が考慮されて、フリップフロップ回路7と、これによって制御されるクロックゲーティング回路が対応付けられる。半導体集積回路の設計方法及びテストパタン生成方法図6から図8を参照して、本発明による半導体集積回路の設計支援装置、及び設計方法を説明する。図6を参照して、本発明による半導体集積回路設計支援装置100以下、設計支援装置100と称すの構成の一例を説明する。図6は、本発明による設計支援装置100の実施の形態における構成図である。設計支援装置100は、バス160を介して相互に接続されるCPU110、RAM120、入力装置130、出力装置140、記憶装置150を具備する。入力装置130は、キーボードやマウス等のユーザによって操作されることで、各種データをCPU110や記憶装置150に出力する。出力装置140は、モニタやプリンタに例示され、CPU110から出力される半導体装置のレイアウト結果をユーザに対し視認可能に出力する。記憶装置150はハードディスクやメモリ等に例示される外部記憶装置である。記憶装置150は、半導体集積回路設計支援プログラム200以下、設計支援プログラムと称す、RTLRegisterTransferLevel記述によるネットリスト201、及びCGC制御データベース202を格納している。CPU110は、入力装置130からの入力に応答して、記憶装置150内の設計支援プログラム200を実行することで、EDAツールとしての機能を実現する。この際、記憶装置150からの各種データやプログラムはRAM120に一時格納され、CPU110は、RAM120内のデータを用いて各種処理を実行する。図7は、本発明に係る半導体集積回路の設計方法の一例を示すフロー図である。ここでは、図1又は図5に示す半導体集積回路に対するクロックゲーティング回路2の実装からテストパタンの作成までの設計方法を説明する。先ず、CPU110は、予め設計された半導体集積回路のネットリスト201に対し、クロックゲーティング回路2を挿入するステップS101。この際、CPU12は、挿入したクロックゲーティング回路2のインスタンス以下CGCインスタンス22と称すと、当該クロックゲーティング回路2の駆動数以下、CGC駆動F/F数23と称すとを対応付けてCGC制御データベース202に記録する。図8は、本発明に係るCGC制御データベースの構造の一例を示す図である。図8を参照して、挿入されたクロックゲーティング回路2aの駆動数が5の場合、CGCインスタンス22aとCGC駆動F/F数5とが対応付けられてCGC制御データベース202に記録される。尚、ステップS101の時点では、後述するパワー制御F/Fインスタンス21は設定されていない。続いて、CPU110は、クロックゲーティング回路2を制御するためのフリップフロップ回路5、7をネットリスト201上に設定、又はネットリスト201に追加するとともに、ゲート制御回路3、モード制御回路4、イネーブル制御回路6をネットリスト201に追加し、それぞれの構成を結線するステップS102。CPU110は、クロックゲーティング回路2を制御するフリップフロップ回路7が決まると、当該フリップフロップ回路7のインスタンス以下、パワー制御F/Fインスタンス21と称すと、制御対象のCGCインスタンス22とCGC駆動F/F数23とを対応付けてCGC制御データベース202に記録する。ステップS102においてCPU110は、CGC制御データベース202を参照し、制御対象となるクロックゲーティング回路2のCGC駆動F/F数23の数や、論理依存性、あるいはクロックゲーティング回路2の配置位置等を考慮して、クロックゲーティング回路2を制御するフリップフロップ回路5、7を追加する。例えば、1つのフリップフロップ回路7によってクロック信号CLKの停止対象となるフリップフロップ回路の総数以下、総駆動数と称すが均等になるようにクロックゲーティング回路2を制御するフリップフロップ回路7が決定されることが好ましい。あるいは、総駆動数の上限値又は下限値が、フリップフロップ回路7の挿入条件として定義され、CGC駆動F/F数23の総和が総駆動数の上限値以下又は下限値以上となるように、クロックゲーティング回路2を制御するフリップフロップ回路7が決定されることが好ましい。又、フリップフロップ回路7を追加する場合、フリップフロップ回路7とクロックゲーティング回路2との配置位置も考慮されることが好ましい。図8は、1つのフリップフロップ回路7によってクロック供給を停止するフリップフロップ回路の上限が6と規定されている場合の設定例を示す。図8を参照して、CPU110は、クロックゲーティング回路2a、b、cが近傍にあり同一クロック信号CLKを制御している場合、総駆動数が6以下となるように、フリップフロップ回路7A、Bを追加する。ここでは、フリップフロップ回路7Aが制御するクロックゲーティング回路2として、CGC駆動F/F数23が5のCGCインスタンスaが設定され、フリップフロップ回路7Bが制御するクロックゲーティング回路2として、CGC駆動F/F数23が3のCGCインスタンスbと、CGC駆動F/F数23が2のCGCインスタンスb総駆動数は5が設定される。又、フリップフロップ回路7Cが制御するクロックゲーティング回路2として、CGC駆動F/F数23が1のCGCインスタンスaと、CGC駆動F/F数23が2のCGCインスタンスeとCGC駆動F/F数23が3のCGCインスタンスf総駆動数は6が設定される。このように、フリップフロップ回路7パワー制御F/Fインスタンス21の制御対象となるフリップフロップ回路数CGC駆動F/F数23を、所定の条件で自動的に設定することが可能となる。又、フリップフロップ回路5もフリップフロップ回路7と同様に、追加されることが好ましい。CPU110は、フリップフロップ回路5、7や制御回路等の追加が完了したRTL記述の半導体集積回路を論理合成しステップS104、スキャンパスを構成するためのセレクタの追加や結線を行うステップS103。これにより、ステップS102で追加されたフリップフロップ回路5、7がスキャンパスの一部を構成するスキャンレジスタとして機能することとなる。続いて、CPU110は、設計支援プログラム200を実行することでATPGAutomaticTestPatternGeneratorとして機能し、テストパタン204を生成するステップS105。この際、CPU110は、CGC制御データベース202と記憶装置150に格納された活性化率203を考慮してテストパタンを生成する。詳細には、CPU110は、スキャンパスを含む論理合成された半導体集積回路の回路構成を認識し、従来のATPGと同様のアルゴリズムによりテスト内容に応じたテストパタン204を作成する。この際、CPU110は、入力装置130を介してユーザから指定された活性化率203に基づいて、キャプチャモード時に活性化フリップフロップ回路に対してクロック信号CLKを供給又は非活性化フリップフロップ回路に対してクロック信号CLKを停止させるフリップフロップ回路の数の上限値又は下限値を決める。活性化率203は、キャプチャモード時において消費電力量の目標値に応じて設定されることが好ましい。又、活性化率203として半導体集積回路における活性化クロック供給するフリップフロップ回路の割合の上限又は下限が設定されることが好ましい。例えば、CPU110は、決められた活性化率の上限値以下となるようにCGC制御データベース202を参照して、フリップフロップ回路7に設定するテストパタンデータの値を決める。ここで、CGC制御データベース202にはフリップフロップ回路7が制御可能な総駆動数が対応付けられている。このため、CPU110は、フリップフロップ回路7の総駆動数の総和が、活性化率の上限値以下となるように、フリップフロップ回路7への設定値を決定することで、ユーザが指定した活性化率に抑えたスキャンパス試験を行うためのテストパタン204の生成が可能になる。このように、本発明によれば、ユーザ指定の活性化率を満足するテストパタン204を容易に生成することができる。生成されたテストパタン204は、記憶装置150に格納され、スキャンテストに利用される。尚、フリップフロップ回路5に対して設定するスキャンパスデータの設定方法もフリップフロップ回路7に対する設定方法と同様である。ステップS102の工程を実行することはユーザによる手作業でも比較的容易である。しかし、この工程をEDAツールに機能として組込み、上述のように自動的に挿入する手法は有効である。この場合、回路実装者が意識することなく、従来手法と同様に本発明を実現することができる。又、ステップS103以降の工程においては、追加したフリップフロップ回路5、75は回路実装者が意識することなく、スキャンパスに組み込まれ、パタン作成ATPGにおいても、意識することなく自動的に作成することができる。又、フリップフロップ回路5、7に設定するデータにより、従来よりも柔軟に活性化率を変更してスキャンパステストを行うことが可能となるため、パタン作成のアルゴリズムを最適化することにより、パタン数をより従来よりも削減できる場合がある。以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。ゲート制御回路3、モード制御回路4、イネーブル制御回路6のそれぞれの論理演算方法は、上述の形態に限らず、他の論理演算回路によって実現されても良い。図1、図5に示す一例ではフリップフロップ回路5、7を利用したクロック伝搬制御方法について説明したが、これに限らず、フリップフロップ回路7及びイネーブル制御回路6、ゲート制御回路3を削除した構成でも構わない。この場合、キャプチャ時の消費電力削減効果はなくなるが、図2に示す真理値表に従うイネーブル制御信号C2によってクロックゲーティング回路2を制御することで、イネーブル信号線8の故障検出テストを行うことは可能となる。このとき、スキャンシフト動作によってフリップフロップ回路5に設定されたテストパタンデータによって故障検出テストが可能となることから、ATPG時に制御しなければならない論理が減りパタン数が削減される。