(57)【要約】【課題】製造バラつきの下で、クロックスキューの最小化しつつ、クロック信号部での消費電力を最小化する半導体集積回路の設計方法、設計装置および、コンピュータプログラムを提供する。【解決手段】半導体集積回路設計装置１００は、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶するチップ情報記憶部９０と、規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成部１０３と、フリップフロップを含む論理ゲートを配置する論理ゲート配置部１０５と、配置されたフリップフロップの配置分布と半導体集積回路のゲーティング構造を考慮して、フリップフロップのクラスタを生成するクラスタ生成部１０７と、フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入するゲーティッドブロック挿入部１０９と、ゲーティッドブロックをバッファツリーの末端バッファに置換する置換部１１１と、を備える。【選択図】図１
2010225084.tif 000002
【特許請求の範囲】
【請求項１】
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、
規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成手段と、
フリップフロップを含む論理ゲートを配置する配置手段と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成するクラスタ生成手段と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する挿入手段と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する置換手段と、を備える半導体集積回路の設計装置。
【請求項２】
請求項１に記載の半導体集積回路の設計装置において、
前記置換手段は、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う半導体集積回路の設計装置。
【請求項３】
請求項１または２に記載の半導体集積回路の設計装置において、
前記置換手段により、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合、前記置換手段は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換する半導体集積回路の設計装置。
【請求項４】
請求項３に記載の半導体集積回路の設計装置において、
前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する負荷容量追加手段をさらに備える半導体集積回路の設計装置。
【請求項５】
請求項１乃至４いずれかに記載の半導体集積回路の設計装置において、
前記置換手段が前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する移動手段をさらに備える半導体集積回路の設計装置。
【請求項６】
請求項５に記載の半導体集積回路の設計装置において、
前記移動手段が、前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行う再クラスタリンク手段と、
再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す割当手段と、をさらに備える半導体集積回路の設計装置。
【請求項７】
請求項６に記載の半導体集積回路の設計装置において、
前記移動手段による前記フリップフロップの移動と、前記再クラスタリンク手段による前記フリップフロップの再クラスタリングと、前記割当手段による前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも１回以上繰り返す繰り返し手段をさらに備える半導体集積回路の設計装置。
【請求項８】
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け、
規則対称レイアウト構造を有するバッファツリーを生成し、
フリップフロップを含む論理ゲートを配置し、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成し、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入し、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する半導体集積回路の設計方法。
【請求項９】
請求項８に記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う半導体集積回路の設計方法。
【請求項１０】
請求項８または９に記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換する半導体集積回路の設計方法。
【請求項１１】
請求項１０に記載の半導体集積回路の設計方法において、
前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する半導体集積回路の設計方法。
【請求項１２】
請求項８乃至１１いずれかに記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する半導体集積回路の設計方法。
【請求項１３】
請求項１２に記載の半導体集積回路の設計方法において、
前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行い、
再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す半導体集積回路の設計方法。
【請求項１４】
請求項１３に記載の半導体集積回路の設計方法において、
前記フリップフロップの移動と、前記フリップフロップの再クラスタリングと、前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも１回以上繰り返す半導体集積回路の設計方法。
【請求項１５】
半導体集積回路の設計装置として機能させるコンピュータに、
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付ける手順と、
規則対称レイアウト構造を有するバッファツリーを生成する手順と、
フリップフロップを含む論理ゲートを配置する手順と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成する手順と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する手順と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する手順と、を実行させるためのコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムにおいて、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記ゲーティッドブロックに接続する前記フリップフロップの前記配置分布を考慮して、前記ゲーティッドブロックの複製、および、併合を行う手順をさらにコンピュータに実行させるためのコンピュータプログラム。
【請求項１７】
請求項１５または１６に記載のコンピュータプログラムにおいて、
前記置換手段により、前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換する際に、前記バッファツリーの前記末端バッファが不足する場合、前記置換手段は、前記バッファツリーの前記末端バッファの出力端子に複数のバッファを追加接続して、前記ゲーティッドブロックを追加バッファに置換するコンピュータプログラム。
【請求項１８】
請求項１７に記載のコンピュータプログラムにおいて、
前記バッファの追加によりクロック遅延が増加する場合、前記バッファツリーの他の前記末端バッファの出力端子に負荷容量を追加する手順をさらにコンピュータに実行させるためのコンピュータプログラム。
【請求項１９】
請求項１５乃至１８いずれかに記載のコンピュータプログラムにおいて、
前記ゲーティッドブロックを前記バッファツリーの前記末端バッファに置換した後、前記フリップフロップを、前記フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応する前記バッファツリーの前記末端バッファ群周辺に移動する手順をさらにコンピュータに実行させるためのコンピュータプログラム。
【請求項２０】
請求項１９に記載のコンピュータプログラムにおいて、
前記ゲーティッドブロックに接続していた前記フリップフロップを、前記ゲーティッドブロックを置換した前記バッファツリーの前記末端バッファ周辺に移動した後、変更された前記フリップフロップの前記配置分布に基づいて、前記フリップフロップの再クラスタリングを行う再クラスタリンク手順と、
再生成された前記フリップフロップのクラスタを前記バッファツリーの前記末端バッファへ割り当て直す手順と、をさらにコンピュータに実行させるためのコンピュータプログラム。
【請求項２１】
請求項２０に記載のコンピュータプログラムにおいて、
前記フリップフロップの移動と、前記フリップフロップの再クラスタリングと、前記フリップフロップの前記クラスタにおける前記バッファツリーの前記末端バッファへの再割り当てと、を少なくとも１回以上繰り返す繰り返し手順をさらにコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法、設計装置および、コンピュータプログラムに関し、特に、クロックゲーティングを含むクロック構造を含む半導体集積回路の配置配線を行う設計方法、設計装置および、コンピュータプログラムに関する。
【背景技術】
【０００２】
同期式半導体集積回路は、演算および演算の制御を行うための論理素子（以後、論理セルまたは論理ゲートとも呼ぶ）と、論理素子群の動作の同期を取るための順序回路素子（フリップフロップまたはＦＦとも呼ぶ）から構成されている。フリップフロップには周期的に発振するクロック信号が供給され、クロック信号の立ち上がりまたは立ち下がりに応じて、フリップフロップが保持しているデータを論理素子に供給し、論理素子は供給されたデータを入力として演算および演算の制御を行い、その結果をフリップフロップに保存する。以上の処理は周期的に変化するクロック信号の立ち上がりまたは立ち下がりに応じて繰り返される。
【０００３】
上述の同期式回路を、クロック信号を基準にして、正常なタイミングで動作させるために理想的なクロック信号分配回路の配置配線は、半導体基板上のいずれの場所においても全く同じクロック信号波形が得られることである。しかし、実際には、クロック信号を引き回す配線、接続しているセルの配置によって、フリップフロップによってクロック信号が到着する時間に差が生じる。フリップフロップ集合の中で、クロック信号が最も早く到達する時間と、クロック信号が最も遅く到着する時間の差をクロックスキュー（クロック信号到着時間差）と呼ぶ。このクロックスキューが大きいと回路は正常動作しなくなる。従って、クロック分配回路の配置配線は、可能な限りクロックスキューを最小とすることが要求される。
【０００４】
図２０（ｂ）にクロック分配回路の配置配線例を示す。ここで、上述のクロックスキューを最小化するクロック分配回路配置配線方法の公知例として、特許文献１がある。この方法は、クロック分配回路を構築していく際、末端セルから順に、ボトムアップ的に２分木を構成するようにゼロスキュー併合と呼ぶ、常に、その木のスキューがゼロ（この状態をゼロスキューと呼ぶ）となるように生成していくものである。この処理を末端セル３から順にクロックドライバセル５まで繰り返すことにより、図２０（ｂ）に示すクロック分配回路の配置配線を生成する。図２０（ａ）は、クロック分配レイアウトの処理途中を示す図である。
【０００５】
近年、半導体プロセスの微細化により、製造バラツキによる遅延バラツキ問題が深刻化しており、これに従い、クロックスキューの最小化は、さらに困難なものになっている。製造バラツキ問題が深刻な半導体集積回路のクロック設計においては、製造バラツキの影響を最小化するためには、チップ領域１において、クロックドライバセル５から各末端セル３への配線経路と、配線経路上の中継バッファ７の種類および前記中継バッファ７が駆動する配線経路の形状が各段で完全に同一となるようにクロック分配信号のレイアウトを行なうことが望まれている。なお、ここでは、このような構造を持つクロック分配信号レイアウトを完全対称なクロック分配信号レイアウトと呼ぶ。図２１に完全対称なクロック分配信号レイアウト１１の例を示す。
【０００６】
高速動作する半導体回路の設計では、ゲートの配置設計を行う前に、このような完全対称なクロック構造を設計しておき、フリップフロップを含むゲートの配置を、このクロック構造に合わせて行い、その後、前記クロック構造の末端バッファとフリップフロップとの接続設計を行う手法が有効とされている。このような設計手法の例が、非特許文献１、特許文献２などに示されている。
【０００７】
なお、特許文献１の方法を、製造バラツキ耐性を強くするための拡張した方法の公知例として、特許文献３があるが、ボトムアップ的に２分木を構成するゼロスキュー併合を繰り返す方法では、完全対称なクロック信号レイアウトが生成されることは保証できない。すなわち、最先端の半導体プロセスを利用して、実際のデバイス上でのクロックスキューが極小となるクロックレイアウトを生成することは困難である。
【０００８】
一方、近年の半導体回路の大規模化、および、高速化の進歩は、クロック信号部での消費電力の増大を招いており、クロックスキュー削減に加えて、低消費電力化を実現するクロック配置配線設計技術も重要となってきている。クロック信号部の消費電力を削減する効果的な方法としては、ゲーティッドクロック回路設計手法が提案され、広く普及している。
【０００９】
しかし、ゲーティッドクロック回路設計手法は、クロックライン上にゲーティング構造が入ることにより、クロックスキューが悪化する傾向にあるという問題が存在する。これを解決する手段として、特許文献４乃至６に記載されるような、回路の論理構造とフリップフロップの配置分布とを考慮して、フリップフロップ全体を、同一ゲーティング論理で制御可能なほぼ均等なサイズのフロップフロップクラスタの集合に分割し、このフリップフロップクラスタをゲーティング単位とする技術が提案されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平５−５４１００号公報
【特許文献２】特開２００８−２８８５５９号公報
【特許文献３】特開２００７−１２３３３６号公報
【特許文献４】特開２００２−２３７５２１号公報
【特許文献５】特開２００６−１９５７５７号公報
【特許文献６】特開２００７−７２９９５号公報
【非特許文献】
【００１１】
【非特許文献１】Ｐ．Ｊ．Ｒｅｓｔｌｅ等、“Ａ  ｃｌｏｃｋ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｎｅｔｗｏｒｋ  ｆｏｒ  ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ”、米国、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、２００１年５月、第３６巻、第５号、ｐｐ．７９２−７９９
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、これらのゲーティッドクロック設計技術は、特許文献１のクロック木生成手法を基本としているため、完全対称なクロック分配信号レイアウト構造を得ることは困難であり、製造バラツキによる遅延バラツキに耐性が弱いという問題点があった。
【００１３】
また、スキュー削減のために提案されている完全対称なクロック分配信号レイアウト構造に対して、効果的にクロックゲーティングを導入する手法は未だ提案されていない。
【００１４】
このように、半導体プロセスの微細化による遅延バラツキの条件下でクロックスキューを最小化しつつ、クロック信号部での消費電力を最小化するためには、完全対称なクロック分配信号レイアウトを基本として、ゲーティングクロック構造を実現する必要があるが、特許文献１記載の設計技術では、これを実現することは困難であった。
【００１５】
本発明の目的は、上述した課題であるクロックスキューの最小化しつつ、クロック信号部での消費電力を最小化する半導体集積回路の設計方法、設計装置および、プログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明の半導体集積回路の設計装置は、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、
規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成手段と、
フリップフロップを含む論理ゲートを配置する配置手段と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成するクラスタ生成手段と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する挿入手段と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する置換手段と、を備える。
【００１７】
本発明の半導体集積回路の設計方法は、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け、
規則対称レイアウト構造を有するバッファツリーを生成し、
フリップフロップを含む論理ゲートを配置し、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成し、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入し、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する。
【００１８】
本発明のコンピュータプログラムは、半導体集積回路の設計装置として機能させるコンピュータに、
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付ける手順と、
規則対称レイアウト構造を有するバッファツリーを生成する手順と、
フリップフロップを含む論理ゲートを配置する手順と、
配置された前記フリップフロップの配置分布と前記半導体集積回路のゲーティング構造を考慮して、前記フリップフロップのクラスタを生成する手順と、
前記フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する手順と、
前記ゲーティッドブロックを前記バッファツリーの末端バッファに置換する手順と、を実行させる。
【００１９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００２０】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００２１】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【００２２】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【発明の効果】
【００２３】
本発明によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、効果的にクロックゲーティングを導入することできる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【図２】本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【図３】末端バッファを４つ持つ完全対称なクロック分配信号レイアウトの一例を示す図である。
【図４】フリップフロップの配置結果を示す図である。
【図５】フリップフロップのクラスタリングを示す図である。
【図６】フリップフロップクラスタへのゲーティッドブロック挿入結果を示す図である。
【図７】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【図８】本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【図９】ゲーティッドブロックの複製、併合、および末端バッファの追加の結果を示す図である。
【図１０】ゲーティッドブロックと末端バッファの置換の結果を示す図である。
【図１１】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【図１２】本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【図１３】末端バッファ周辺へのフリップフロップ移動の結果を示す図である。
【図１４】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【図１５】本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【図１６】フリップフロップ移動後の再クラスタリングの結果を示す図である。
【図１７】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【図１８】本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【図１９】末端バッファとフリップフロップ間の接続生成およびクロックスキュー調整用の負荷容量の追加の結果を示す図である。
【図２０】特許文献記載のクロック分配方法を示す図である。
【図２１】完全対称なクロック分配信号レイアウトを示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２６】
（第１の実施の形態）
図１は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置１００は、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶するチップ情報記憶部９０と、規則対称レイアウト構造を有するバッファツリーを生成するバッファツリー生成部１０３と、フリップフロップを含む論理ゲートを配置する論理ゲート配置部１０５と、配置されたフリップフロップの配置分布と半導体集積回路のゲーティング構造を考慮して、フリップフロップのクラスタを生成するクラスタ生成部１０７と、フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入するゲーティッドブロック挿入部１０９と、ゲーティッドブロックをバッファツリーの末端バッファに置換する置換部１１１と、を備える。
【００２７】
詳細には、半導体集積回路設計装置１００は、チップ情報記憶部９０と、チップ情報受付部１０１と、バッファツリー生成部１０３と、論理ゲート配置部１０５と、クラスタ生成部１０７と、ゲーティッドブロック挿入部１０９と、置換部１１１と、を備える。
【００２８】
なお、本実施形態の半導体集積回路設計装置１００は、制御装置、記憶装置、入力装置および表示装置からなる一般的なコンピュータにより構成することができる。これらの各部については図示しない。また、上記の各ユニットは、記憶装置に格納されたコンピュータプログラムにより動作する制御装置により、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記憶装置上に構築されて制御される。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００２９】
すなわち、半導体集積回路設計装置の各構成要素は、任意のコンピュータのＣＰＵ（Central Processing Unit）、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００３０】
チップ情報記憶部９０は、設計対象となる半導体集積回路チップのフリッププロップを含むゲートレベルのネットリストに関する情報（チップデータ）を記憶する。ここで、フリップフロップの集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。
【００３１】
チップ情報受付部１０１は、上記チップデータを受け付け、チップ情報記憶部９０に記憶する。チップ情報受付部１０１は、たとえば、半導体集積回路設計装置１００の図示されない、入出力インタフェースを介して、各種記録媒体または記憶装置、あるいはネットワークなどを介した他の装置からデータを入力して受け付けてもよいし、ユーザが操作入力したデータを受け付けてもよい。チップ情報記憶部９０の情報は、必ずしも毎回受け付けて更新する必要はなく、既にチップ情報記憶部９０に記憶されている情報を利用することもできる。
【００３２】
バッファツリー生成部１０３は、フリップフロップ配置対象領域を覆う形で、規則対称レイアウト構造を持つバッファツリーを生成する。ここで、バッファツリーの形状としては、Ｈツリー型、２分木型など従来から提案されている形状が考えられる。
【００３３】
論理ゲート配置部１０５は、論理ゲートとフリップフロップの配置をネットリストのセル間接続とフリップフロップ間タイミング制約に基づいて行う。この論理ゲート配置部１０５は、既存の配置手段を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
【００３４】
クラスタ生成部１０７は、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とフリップフロップの配置分布を考慮して、フリップフロップのクラスタを生成する。具体的には、同一のゲーティング論理でクロック信号の伝搬を制御でき、かつ、座標が近いフリップフロップ集合を１つのクラスタとしてまとめる。
【００３５】
ゲーティッドブロック挿入部１０９は、フリップフロップのクラスタ生成部１０７で生成された各クラスタに対して、ゲーティッドブロックを挿入する。
【００３６】
置換部１１１は、挿入されているゲーティッドブロックを、その近辺に存在するバッファツリーの末端バッファに置換する。
【００３７】
本実施形態の半導体集積回路設計装置１００において、ＣＰＵが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
【００３８】
本実施形態のコンピュータプログラムは、半導体集積回路設計装置１００を実現させるためのコンピュータに、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付ける手順と、規則対称レイアウト構造を有するバッファツリーを生成する手順と、フリップフロップを含む論理ゲートを配置する手順と、配置されたフリップフロップの配置分布と半導体集積回路のゲーティング構造を考慮して、フリップフロップのクラスタを生成する手順と、フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入する手順と、ゲーティッドブロックをバッファツリーの末端バッファに置換する手順と、を実行させるように記述されている。
【００３９】
このように構成された本実施形態の半導体集積回路設計装置１００の動作について、以下に説明する。
図２は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【００４０】
本実施形態の半導体集積回路の設計方法は、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け（ステップＳ１０１）、規則対称レイアウト構造を有するバッファツリーを生成し（ステップＳ１０３）、フリップフロップを含む論理ゲートを配置し（ステップＳ１０５）、配置されたフリップフロップの配置分布と半導体集積回路のゲーティング構造を考慮して、フリップフロップのクラスタを生成し（ステップＳ１０７）、フリップフロップの各クラスタを駆動するゲーティッドブロックを挿入し（ステップＳ１０９）、ゲーティッドブロックをバッファツリーの末端バッファに置換する（ステップＳ１１１）。
【００４１】
以下、図１乃至図６を用いて具体的に説明する。
はじめに、チップ情報受付部１０１により、設計対象となる半導体集積回路チップのフリッププロップを含むゲートレベルのネットリストに関する情報（チップデータ）の入力を受け付け、チップ情報記憶部９０に記憶する（ステップＳ１０１）。ここで、フリップフロップの集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。
【００４２】
そして、チップ情報受付部１０１によりチップ情報記憶部９０に記憶された論理回路に対して、バッファツリー生成部１０３が、図３に示すようにフリップフロップ配置対象領域を覆う形で、規則対称レイアウト構造を持つバッファツリーを生成する（ステップＳ１０３）。なお、ここでは簡単のため、４つの末端バッファ３１（図では、Ａ、Ｂ、Ｃ、Ｄと示す）を持つ完全対称なクロック分配信号レイアウトの一例としてＨツリー型の構造を示しているが、これに限定されない。なお、図３の３３は、クロックドライバセルを示している。
【００４３】
そして、論理ゲート配置部１０５が、論理ゲートとフリップフロップの配置をネットリストのセル間接続とフリップフロップ間タイミング制約に基づいて行い、図４のようなフリップフロップ配置結果を生成する（ステップＳ１０５）。図４では簡単のため、フリップフロップ４１以外の論理ゲートは省略している。また、同一数字が振られているフリップフロップ（たとえば、Ｆ１、Ｆ２、Ｆ３等）は、同一のゲーティング論理によりクロック信号の伝搬を制御されることを意味している。
【００４４】
そして、フリップフロップのクラスタ生成部１０７が、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とフリップフロップの配置分布を考慮して、フリップフロップのクラスタを生成する（ステップＳ１０７）。具体的には、図５に示すように、同一のゲーティング論理でクロック信号の伝搬を制御でき、かつ、座標が近いフリップフロップ集合を１つのクラスタ５１としてまとめる。ここでは、６つのクラスタ５１が生成されている。同一のゲーティング論理により制御されるフリップフロップ集合の分布範囲が大きい場合は、ゲーティング論理Ｆ２のように複数のクラスタＣ２１とＣ２２に分割される。
【００４５】
そして、ゲーティッドブロック挿入部１０９が、図６に示すように、フリップフロップのクラスタ生成部１０７で生成された各クラスタ５１（図５）に対して、ゲーティッドブロック６１を挿入する（ステップＳ１０９）。そして、置換部１１１が、ステップＳ１０９で挿入されたゲーティッドブロック６１を、その近辺に存在するバッファツリーの末端バッファに置換する（ステップＳ１１１）。
【００４６】
以上、説明したように、本実施形態の半導体集積回路設計装置１００および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
【００４７】
（第２の実施の形態）
図７は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置２００は、図１の上記実施形態の半導体集積回路設計装置１００とは、ゲーティッドブロック挿入部１０９により挿入されたゲーティッドブロック（図６）の結果と、図３のバッファツリー構造を比較して、ゲーティッドブロックを複製または併合し、あるいはバッファを追加する点で相違する。
【００４８】
本実施形態の半導体集積回路設計装置２００において、置換部１１１（ゲーティッドブロック複製部２０１、ゲーティッドブロック併合部２０３）は、ゲーティッドブロック６１をバッファツリーの末端バッファ３１（図３）に置換する際に、ゲーティッドブロック６１に接続するフリップフロップ４１（図４）の配置分布を考慮して、ゲーティッドブロック６１の複製、および、併合を行う。
【００４９】
また、本実施形態の半導体集積回路設計装置２００において、置換部１１１により、ゲーティッドブロック６１をバッファツリーの末端バッファ３１（図３）に置換する際に、バッファツリーの末端バッファ３１（図３）が不足する場合、置換部１１１（バッファ追加部２０５）は、バッファツリーの末端バッファ３１（図３）の出力端子に複数のバッファ９１を追加接続して、ゲーティッドブロック６１を追加バッファに置換する。
【００５０】
詳細には、本実施形態の半導体集積回路設計装置２００は、図１の半導体集積回路設計装置１００の構成に加え、ゲーティッドブロック複製部２０１と、ゲーティッドブロック併合部２０３と、バッファ追加部２０５と、をさらに備えている。
【００５１】
ゲーティッドブロック複製部２０１は、ゲーティッドブロックと規則対称レイアウト構造バッファツリー生成部１０３が生成したバッファツリーの末端バッファ集合とゲーティッドブロック挿入部１０９が挿入したゲーティッドブロック集合を比較し、ゲーティッドブロックが駆動するフリップフロップクラスタが大きい場合に、フリップフロップクラスタを分割し、分割により生じた各クラスタにゲーティッドブロックを複製して挿入する。
【００５２】
ゲーティッドブロック併合部２０３は、ゲーティッドブロックと規則対称レイアウト構造バッファツリー生成部１０３が生成したバッファツリーの末端バッファ集合とゲーティッドブロック挿入部１０９が挿入したゲーティッドブロック集合を比較し、ゲーティッドブロックが駆動するフリップフロップクラスタが小さい場合に、論理的に併合可能で、かつ、クラスタの座標が近いフリップフロップクラスタを併合し、併合により生じたクラスタにゲーティッドブロックを１つ挿入する。
【００５３】
バッファ追加部２０５は、ゲーティッドブロックと規則対称レイアウト構造バッファツリー生成部１０３が生成したバッファツリーの末端バッファ集合とゲーティッドブロック挿入部１０９が挿入したゲーティッドブロック集合を比較し、末端バッファ集合が不足している場合に、末端バッファの出力端子にバッファを必要数追加して接続する。
【００５４】
このように構成された本実施形態の半導体集積回路設計装置２００の動作について、以下に説明する。
図８は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【００５５】
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロック６１をバッファツリーの末端バッファ３１（図３）に置換する際に、ゲーティッドブロック６１に接続するフリップフロップ４１（図４）の配置分布を考慮して、ゲーティッドブロック６１の複製（ステップＳ２０１）、および、併合（ステップＳ２０３）を行う。
【００５６】
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロック６１をバッファツリーの末端バッファ３１（図３）に置換する際に、バッファツリーの末端バッファ３１（図３）が不足する場合は、バッファツリーの末端バッファ３１（図３）の出力端子に複数のバッファ９１を追加接続して（ステップＳ２０５）、ゲーティッドブロック６１を追加バッファに置換する（ステップＳ１１１）。
【００５７】
以下、具体的に、図７乃至図１０を用いて説明する。
本実施形態の設計方法の処理手順は、図２の上記実施形態の設計方法と同様な手順、すなわち、ステップＳ１０１〜ステップＳ１１１に加え、ステップＳ１０９とステップＳ１１１の間に、ステップＳ２０１〜ステップＳ２０５をさらに有する。
【００５８】
ステップＳ１０９の後、図６の結果と、図３のバッファツリー構造を比較して、ゲーティッドブロックの複製（ステップＳ２０１）、ゲーティッドブロックの併合（ステップＳ２０３）、およびバッファの追加（ステップＳ２０５）をそれぞれ実行する。そしてステップＳ１１１に進む。
【００５９】
ゲーティッドブロックの複製のステップＳ２０１では、図９の７０に示すように、ゲーティング論理Ｆ１は、末端バッファ３１（図３）の分布に対して、ゲーティッドブロック６１が駆動するフリップフロップクラスタ５１（図５）が大きいため、２つのクラスタに分割され、各クラスタにゲーティッドブロックが割り当てられるように、ゲーティッドブロック６１を複製して新たなゲーティッドブロック７１が一方のクラスタに挿入されている。
【００６０】
ゲーティッドブロックの併合のステップＳ２０３では、図９の８０に示すように、ゲーティング論理Ｆ２は、末端バッファ３１（図３）の分布に対して、ゲーティッドブロック８１と８３（図６の６１）が駆動するフリップフロップクラスタ５１（図５のＣ２１のＣ２２）が小さいため、併合され、生じたクラスタにゲーティッドブロック８１が１つ挿入されている。
【００６１】
また、バッファの追加のステップＳ２０５では、図９の８５に示すように、バッファツリーの末端バッファＢとＣは、それぞれの周辺に、２つのゲーティッドブロック６１がそれぞれ存在するため、各末端バッファＢとＣの出力端子に２つのバッファ９１をそれぞれ追加して接続している。末端バッファＢからは、新たな末端バッファＢ１とＢ２が生成され、末端バッファＣからは、新たな末端バッファＣ１とＣ２が生成されている。
【００６２】
図８に戻り、ゲーティッドブロックのバッファへの置換部１１１が、図９で挿入されたゲーティッドブロックを、図１０に示すように、その近辺に存在するバッファツリーの末端バッファ３１にそれぞれ置換する（ステップＳ１１１）。ゲーティング論理Ｆ１のゲーティッドブロックは末端バッファＣ２とＤに、ゲーティング論理Ｆ２のゲーティッドブロックは末端バッファＡに、ゲーティング論理Ｆ３のゲーティッドブロックは末端バッファＢ１に、ゲーティング論理Ｆ４のゲーティッドブロックは末端バッファＢ２に、ゲーティング論理Ｆ５のゲーティッドブロックは末端バッファＣ１にそれぞれ置換されている。
【００６３】
以上、説明したように、本実施形態の半導体集積回路設計装置２００および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
【００６４】
（第３の実施の形態）
図１１は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置３００は、図１または図７の上記実施形態の半導体集積回路設計装置１００または２００とは、ゲーティッドブロックをバッファツリーの末端バッファに置換した後、フリップフロップを、フリップフロップが属するゲーティング論理に接続するゲーティッドブロック群に対応するバッファツリーの末端バッファ群周辺に移動する点で相違する。
【００６５】
本実施形態の半導体集積回路設計装置３００において、置換部１１１がゲーティッドブロック６１をバッファツリーの末端バッファ３１（図３）に置換した後、フリップフロップ４１（図４）を、フリップフロップ４１（図４）が属するゲーティング論理に接続するゲーティッドブロック群に対応するバッファツリーの末端バッファ群周辺に移動するフリップフロップ移動部３０１をさらに備える。
【００６６】
詳細には、本実施形態の半導体集積回路設計装置３００は、図１の半導体集積回路設計装置１００または半導体集積回路設計装置２００の構成に加え、フリップフロップ移動部３０１をさらに備えている。
【００６７】
フリップフロップ移動部３０１は、各フリップフロップを、そのフリップフロップへのクロック信号伝搬を制御するゲーティッドブロックに対応するバッファツリーの末端バッファの周辺に移動する。各フリップフロップへクロック信号伝搬を制御するゲーティッドブロックに対応する末端バッファは、この段階で複数存在し得るため、その中で近いバッファを選択し、その周辺へ移動する。
【００６８】
このように構成された本実施形態の半導体集積回路設計装置３００の動作について、以下に説明する。
図１２は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【００６９】
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロック６１をバッファツリーの末端バッファ３１（図３）に置換した後、フリップフロップ４１（図４）を、フリップフロップ４１（図４）が属するゲーティング論理に接続するゲーティッドブロック群に対応するバッファツリーの末端バッファ群周辺に移動する（ステップＳ３０１）。
【００７０】
以下、図１１乃至図１３を用いて説明する。
本実施形態の設計方法の処理手順は、図２または図８の上記実施形態の設計方法と同様な手順、すなわち、ステップＳ１０１〜ステップＳ１１１、またはステップＳ２０１〜２０５に加え、ステップＳ１１１の後に、ステップＳ３０１をさらに有する。
【００７１】
ステップＳ１１１の後、フリップフロップ移動部３０１が、図１３に示すように、各フリップフロップ４１を、そのフリップフロップ４１へのクロック信号伝搬を制御するゲーティッドブロックに対応するバッファツリーの末端バッファＡ、Ｂ、Ｃ、Ｄの周辺に移動する（ステップＳ３０１）。たとえば、ゲーティング論理Ｆ１のゲーティッドブロックは末端バッファＣ２とＤに置換されているため、ゲーティング論理Ｆ１に属する３つのフリップフロップ４１は、末端バッファＣ２とＤのいずれかの周辺に移動することになる。
【００７２】
以上、説明したように、本実施形態の半導体集積回路設計装置３００および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
【００７３】
（第４の実施の形態）
図１４は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置４００は、図１１の上記実施形態の半導体集積回路設計装置３００とは、フリップフロップを移動した後、変更されたフリップフロップの配置分布に基づいて、フリップフロップの再クラスタリングを行う点で相違する。
【００７４】
本実施形態の半導体集積回路設計装置４００において、フリップフロップ移動部３０１が、ゲーティッドブロック６１（図６）に接続していたフリップフロップ４１（図４）を、ゲーティッドブロックを置換したバッファツリーの末端バッファ３１（図３）周辺に移動した後、変更されたフリップフロップ４１（図４）の配置分布に基づいて、フリップフロップ４１（図４）の再クラスタリングを行う再クラスタリンク制御部４０１と、再生成されたフリップフロップ４１（図４）のクラスタ１５１（図１６）をバッファツリーの末端バッファ３１（図３）へ割り当て直す割当部（再クラスタリンク制御部４０１）と、をさらに備える。
【００７５】
また、本実施形態の半導体集積回路設計装置４００において、フリップフロップ移動部３０１によるフリップフロップの移動と、再クラスタリンク制御部４０１によるフリップフロップの再クラスタリングと、再クラスタリンク制御部４０１によるフリップフロップのクラスタにおけるバッファツリーの末端バッファへの再割り当てと、を少なくとも１回以上繰り返す繰り返し部（再クラスタリンク制御部４０１）をさらに備える。
【００７６】
詳細には、本実施形態の半導体集積回路設計装置４００は、図１１の半導体集積回路設計装置３００の構成に加え、再クラスタリンク制御部４０１をさらに備えている。
【００７７】
再クラスタリンク制御部４０１は、フリップフロップ移動部３０１でのフリップフロップ移動量を計測し、最大移動量が閾値以上の場合に、更新されたフリップフロップの配置分布を基に、フリップフロップのクラスタ生成部１０７からの処理を繰り返す。最大移動量が閾値以下の場合については、後述する。
【００７８】
このように構成された本実施形態の半導体集積回路設計装置４００の動作について、以下に説明する。
図１５は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【００７９】
本実施形態の半導体集積回路の設計方法において、ゲーティッドブロックに接続していたフリップフロップを、ゲーティッドブロックを置換したバッファツリーの末端バッファ周辺に移動した後、変更されたフリップフロップの配置分布に基づいて、フリップフロップの再クラスタリングを行い、再生成されたフリップフロップのクラスタをバッファツリーの末端バッファへ割り当て直す（ステップＳ４０３）。
【００８０】
また、本実施形態の半導体集積回路設計装置４００の設計方法において、フリップフロップの移動と、フリップフロップの再クラスタリングと、フリップフロップのクラスタにおけるバッファツリーの末端バッファへの再割り当てと、を少なくとも１回以上繰り返す。
【００８１】
以下、具体的に図１４乃至図１６を用いて説明する。
本実施形態の設計方法の処理手順は、図１２の上記実施形態の設計方法と同様な手順、すなわち、ステップＳ１０１〜ステップＳ１１１、ステップＳ２０１〜２０５、ステップＳ３０１に加え、ステップＳ３０１の後に、ステップＳ４０１およびステップＳ４０３をさらに有する。
【００８２】
ステップＳ３０１の後、再クラスタリンク制御部４０１が、フリップフロップ移動部３０１でのフリップフロップ最大移動量が閾値を超えたと判断し（ステップＳ４０１のＹＥＳ）、更新されたフリップフロップの配置分布を基に、フリップフロップのクラスタ生成部１０７により再度クラスタリングを行うと（ステップＳ４０３）、図１６に示すようになる。図１３と比較して、ゲーティング論理Ｆ１のクラスタ１５１が変更されている。
【００８３】
以上、説明したように、本実施形態の半導体集積回路設計装置４００および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
【００８４】
（第５の実施の形態）
図１７は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
本実施形態の半導体集積回路設計装置５００は、図７、図１１、または図１４の上記実施形態の半導体集積回路設計装置２００、３００または４００とは、バッファの追加によりクロック遅延が増加する場合に、バッファツリーの他の末端バッファの出力端子に負荷容量を追加する点で相違する。
【００８５】
本実施形態の半導体集積回路設計装置５００は、バッファの追加によりクロック遅延が増加する場合、バッファツリーの他の末端バッファの出力端子に負荷容量を追加する負荷容量追加部５０３をさらに備える。
【００８６】
詳細には、本実施形態の半導体集積回路設計装置５００は、図７、図１１、または図１４の半導体集積回路設計装置２００、３００または４００の構成に加え、接続部５０１および負荷容量追加部５０３をさらに備えている。
【００８７】
接続部５０１は、バッファツリーの末端バッファとそのバッファが駆動するように割り当てられたフリップフロップとの間の接続を生成する。また、スキュー調整用負荷容量追加部５０３は、フリップフロップへのクロック信号遅延が早い経路上にある末端バッファの出力端子に負荷容量を追加し、クロックスキューの削減を行う。このようにして、クロックスキューを調整することができる。
【００８８】
このように構成された本実施形態の半導体集積回路設計装置５００の動作について、以下に説明する。
図１８は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【００８９】
本実施形態の半導体集積回路の設計方法において、バッファの追加によりクロック遅延が増加する場合、バッファツリーの他の末端バッファの出力端子に負荷容量を追加する。
【００９０】
以下、図１７乃至図１９を用いて説明する。
本実施形態の設計方法の処理手順は、図８、図１２、または図１５の上記実施形態の設計方法と同様な手順、すなわち、ステップＳ１０１〜ステップＳ１１１、ステップＳ２０１〜ステップＳ２０５、またはステップＳ３０１、あるいはステップＳ４０１およびステップＳ４０３に加え、ステップＳ４０１の後に、ステップＳ５０１およびステップＳ５０３をさらに有する。
【００９１】
ステップＳ４０３の後、すなわち、ステップＳ４０１で、フリップフロップ移動部３０１でのフリップフロップの最大移動量が閾値以下の場合、負荷容量追加部５０３に現在のデータが受け渡される。そして、各フリップフロップと対応する末端バッファの間に論理接続が生成され（ステップＳ５０１）、負荷容量追加部５０３が、バッファの追加によりクロック遅延が増加すると判定した場合、バッファツリーの他の末端バッファの出力端子にスキュー調整用負荷容量を追加する（ステップＳ５０３）。
【００９２】
図１９に示すように、図１６に対して、まず、各フリップフロップと対応する末端バッファ３１（Ａ、Ｂ、Ｃ、Ｄ）の間に論理接続１８１が生成されている。また、末端バッファＡ、Ｄは、接続するフリップフロップの数が末端バッファＢ、Ｃと比較して少ないため、各フリップフロップへのクロック信号伝搬遅延が早いと判断される。そのため、末端バッファＡ、Ｄの出力端子に負荷容量１９１を追加し、クロックスキューの削減を行っている。
【００９３】
以上、説明したように、本実施形態の半導体集積回路の設計装置および設計方法によれば、製造バラつきを含むスキューの削減のために有効である完全対称なクロック分配信号レイアウト構造に対して、より効果的にクロックゲーティングを導入することができ、製造バラつき影響が大きな半導体に対して、クロックスキューの削減とともに消費電力の削減を行うことが可能になる。
【００９４】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００９５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００９６】
３１  末端バッファ
３３  クロックドライバセル
４１  フリップフロップ
５１  クラスタ
６１  ゲーティッドブロック
７１  ゲーティッドブロック
８１  ゲーティッドブロック
８３  ゲーティッドブロック
９０  チップ情報記憶部
９１  バッファ
１００  半導体集積回路設計装置
１０１  チップ情報受付部
１０３  バッファツリー生成部
１０５  論理ゲート配置部
１０７  クラスタ生成部
１０９  ゲーティッドブロック挿入部
１１１  置換部
１５１  クラスタ
１８１  論理接続
１９１  負荷容量
２００  半導体集積回路設計装置
２０１  ゲーティッドブロック複製部
２０３  ゲーティッドブロック併合部
２０５  バッファ追加部
３００  半導体集積回路設計装置
３０１  フリップフロップ移動部
４００  半導体集積回路設計装置
４０１  再クラスタリンク制御部
５００  半導体集積回路設計装置
５０１  接続部
５０３  負荷容量追加部
【図１】
2010225084.tif 000003
【図２】
2010225084.tif 000004
【図３】
2010225084.tif 000005
【図４】
2010225084.tif 000006
【図５】
2010225084.tif 000007
【図６】
2010225084.tif 000008
【図７】
2010225084.tif 000009
【図８】
2010225084.tif 000010
【図９】
2010225084.tif 000011
【図１０】
2010225084.tif 000012
【図１１】
2010225084.tif 000013
【図１２】
2010225084.tif 000014
【図１３】
2010225084.tif 000015
【図１４】
2010225084.tif 000016
【図１５】
2010225084.tif 000017
【図１６】
2010225084.tif 000018
【図１７】
2010225084.tif 000019
【図１８】
2010225084.tif 000020
【図１９】
2010225084.tif 000021
【図２０】
2010225084.tif 000022
【図２１】
2010225084.tif 000023