(57)【要約】      （修正有）【課題】製造バラつきの下で、クロックスキューの最小化しつつ、クロック信号部での消費電力を最小化する半導体集積回路の設計方法、設計装置および、コンピュータプログラムを提供する。【解決手段】メッシュ配線構造を駆動するバッファツリーを生成するグローバルクロック構造生成部１０４と、クロック素子の配置分布とクロックゲーティング構造を考慮してクラスタを生成するクロック素子クラスタ生成部１０６と、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入するゲーティングセル複製・挿入部１０７と、ローカルクロック構造生成部１０９と、タイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルの駆動能力を調整するゲーティングセル駆動能力調整部１１１と、を備える。【選択図】図１
2011128682.tif 000002
【特許請求の範囲】
【請求項１】
クロックゲーティング構造を含む半導体集積回路のチップ情報を用いて、クロック素子と論理ゲートを配置するゲート配置手段と、
全てのクロック素子の入力端子を覆うメッシュ配線構造を生成するメッシュ配線構造生成手段と、
前記メッシュ配線構造を駆動するバッファツリーを生成するグローバルクロック構造生成手段と、
前記グローバルクロックツリーと前記メッシュ配線構造を接続するグローバル構造・メッシュ接続手段と、
クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを生成するクロック素子クラスタ生成手段と、
前記各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記クラスタを駆動するゲーティングセルとして挿入するゲーティングセル複製・挿入手段と、
前記メッシュ配線構造と前記各クロック素子クラスタを駆動するゲーティングセルを接続するメッシュ配線構造・クロック素子クラスタ接続手段と、
前記各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続するローカルクロック構造生成手段と
を備えることを特徴とする半導体集積回路の設計装置。
【請求項２】
クロック素子間論理パスのタイミング解析を行なう論理パス遅延計算手段と、
クロック素子間の論理素子上パスの前記タイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルの駆動能力を調整するゲーティングセル駆動能力調整手段と
をさらに備えることを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項３】
クロックゲーティング構造が多段構造である場合、前記クロック素子クラスタ生成手段が、ゲーティング信号の組み合わせが異なるクロック素子が同一のクロック素子クラスタに含まれないようにクロック素子集合を分割することを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項４】
前記ゲート配置手段は、ネットリストのセル間接続とフリップフロップ間タイミング制約に基づいてクロック素子と論理ゲートを配置することを特徴とする請求項１から請求項３のいずれか１項に記載の半導体集積回路の設計装置。
【請求項５】
前記メッシュ配線構造・クロック素子クラスタ接続手段は、ゲーティングセルの入力端子から最も近いメッシュ配線構造上の点へ配線を生成することを特徴とする請求項１から請求項４のいずれか１項に記載の半導体集積回路の設計装置。
【請求項６】
前記ゲーティングセル駆動能力調整手段は、クロック素子間のパス遅延と合わせて、回路動作が遅延条件を満たすように、クロックスキューを調整することを特徴とする請求項２から請求項５のいずれか１項に記載の半導体集積回路の設計装置。
【請求項７】
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け、クロック素子と論理ゲートを配置し、
全てのクロック素子の入力端子を覆うメッシュ配線構造を生成し、
前記メッシュ配線構造を駆動するバッファツリーを生成し、
前記グローバルクロックツリーと前記メッシュ配線構造を接続し、
クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを生成し、
前記各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記クラスタを駆動するゲーティングセルとして挿入し、
前記メッシュ配線構造と前記各クロック素子クラスタを駆動するゲーティングセルを接続し、
前記各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続することを特徴とする半導体集積回路の設計方法。
【請求項８】
クロック素子間論理パスのタイミング解析を行なうステップと、クロック素子間の論理素子上パスの前記タイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルの駆動能力調整を行うステップを含むことを特徴とする請求項７に記載の半導体集積回路の設計方法。
【請求項９】
クロックゲーティング構造が多段になっている場合は、クロック素子クラスタを生成するステップで、ゲーティング信号の組み合わせが異なるクロック素子が同一のクロック素子クラスタに含まれないようにクロック素子集合を分割することを特徴とする請求項７に記載の半導体集積回路の設計方法。
【請求項１０】
前記ゲートを配置するステップにおいて、ネットリストのセル間接続とフリップフロップ間タイミング制約に基づいてクロック素子と論理ゲートを配置することを特徴とする請求項７から請求項９のいずれか１項に記載の半導体集積回路の設計方法。
【請求項１１】
前記メッシュ配線構造とゲーティングセルを接続するステップにおいて、ゲーティングセルの入力端子から最も近いメッシュ配線構造上の点へ配線を生成することを特徴とする請求項７から請求項１０のいずれか１項に記載の半導体集積回路の設計方法。
【請求項１２】
前記ゲーティングセルの駆動能力調整を行うステップにおいて、クロック素子間のパス遅延と合わせて、回路動作が遅延条件を満たすように、クロックスキューを調整することを特徴とする請求項８から請求項１１のいずれか１項に記載の半導体集積回路の設計方法。
【請求項１３】
半導体集積回路の設計装置であるコンピュータに、
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付けて、クロック素子と論理ゲートを配置する処理と、
全てのクロック素子の入力端子を覆うメッシュ配線構造を生成する処理と、
前記メッシュ配線構造を駆動するバッファツリーを生成する処理と、
前記グローバルクロックツリーと前記メッシュ配線構造を接続する処理と、
クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを生成する処理と、
前記各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記クラスタを駆動するゲーティングセルとして挿入する処理と、
前記メッシュ配線構造と前記各クロック素子クラスタを駆動するゲーティングセルを接続する処理と、
前記各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する処理と、を実行させることを特徴とするプログラム。
【請求項１４】
前記コンピュータに、
クロック素子間論理パスのタイミング解析を行なう処理と、クロック素子間の論理素子上パスの前記タイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルの駆動能力調整を行う処理と、をさらに実行させることを特徴とする請求項１３に記載のプログラム。
【請求項１５】
クロックゲーティング構造が多段になっている場合は、クロック素子のクラスタ生成処理が、ゲーティング信号の組み合わせが異なるクロック素子が同一のクロック素子クラスタに含まれないようにクロック素子集合を分割する処理をに実行させることを特徴とする請求項１３に記載のプログラム。
【請求項１６】
前記ゲートを配置する処理において、ネットリストのセル間接続とフリップフロップ間タイミング制約に基づいてクロック素子と論理ゲートを配置することを特徴とする請求項１３から請求項１５のいずれか１項に記載のプログラム。
【請求項１７】
前記メッシュ配線構造とゲーティングセルを接続する処理において、ゲーティングセルの入力端子から最も近いメッシュ配線構造上の点へ配線を生成することを特徴とする請求項１３から請求項１６のいずれか１項に記載のプログラム。
【請求項１８】
前記ゲーティングセルの駆動能力調整を行う処理において、クロック素子間のパス遅延と合わせて、回路動作が遅延条件を満たすように、クロックスキューを調整することを特徴とする請求項１４から請求項１７のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法、設計装置およびコンピュータプログラムに関し、特に、クロックゲーティング構造およびメッシュ配線構造を持つクロック信号分配回路を含む半導体集積回路の配置配線を行う設計方法、設計装置およびプログラムに関する。
【背景技術】
【０００２】
同期式半導体集積回路は、演算および演算の制御を行うための論理素子（以後、論理セルまたは論理ゲートとも称する）と、論理素子群の動作の同期を取るための順序回路素子（以後、クロック素子、フリップフロップ（ＦＦ）とも称する）から構成されている。
【０００３】
各フリップフロップには、１つのクロック供給源（以後、クロックソースとも称する）から周期的に発振するクロック信号が供給される。クロック信号の立ち上がりまたは立下りで、フリップフロップが保持しているデータは論理素子群に供給される。論理素子は、供給されたデータを入力として演算および演算の制御を行い、その結果をフリップフロップに保存する。以上の処理は周期的に変化するクロック信号の立ち上がりまたは立下りで繰り返される。
【０００４】
上述の同期式半導体集積回路を、クロック信号を基準にして、正常なタイミングで動作させるための、理想的なクロック信号分配回路の配置配線の条件は、いずれのフリップフロップのクロック入力端子においても、全く同じクロック信号波形が得られるようにすることである。
【０００５】
しかし、実際には、クロック信号を引き回す配線、接続しているクロック素子の配置分布の疎密のために、フリップフロップ毎にクロック信号が到着する時間を全く同じにすることは困難である。フリップフロップ対における、クロック信号が到達する時間の差をクロックスキューと呼び、このクロックスキューが大きいと回路は正常動作しなくなる可能性がある。従って、クロック分配回路の配置配線では、可能な限りクロックスキューを最小化することが重要となる。
【０００６】
クロック信号を分配するクロック信号分配回路の構成として、クロックソースから複数のバッファを経由するツリー状の配線経路を設定し、クロック信号をツリー状に各クロック素子へ分配するものがある。ここで、クロックソースから各クロック素子までのクロック信号の伝搬経路が同じ長さ、同じバッファ段数となるようにツリー形状を設定することにより、クロックスキューを低減することが可能となる。例えば、特許文献１に上述のようなツリー構造を生成する技術が示されている。この技術によるクロック信号分配回路の配置配線例を図１２に示す。
【０００７】
しかしながら、このようなクロック信号分配回路の構成にしても、実際の設計では、各経路形状のずれ、製造プロセスのバラつきなどの影響でクロックスキューが発生してしまうことは避けられない。特に、近年、半導体プロセスの微細化により、製造における品質バラツキによる遅延バラツキ問題が深刻化しており、これに伴い、クロックスキューの最小化は、さらに困難なものになっている。
【０００８】
特許文献１記載の方法を、製造バラツキ耐性が強くなるように拡張する技術の例が、特許文献２に記載されているが、ツリー状の構造では、信号分岐先の遅延バラツキの差が生じることは避けられないため、クロックスキュー最小化には限界がある。
【０００９】
また、回路の動作性能を向上させるために、フリップフロップ間の論理素子を経由するパスの遅延計算結果に基づき、意図的にフリップフロップ間にスキューを設定する技術も提案されている（関連技術が、例えば、特許文献３に記載されており、その例を図１３に示す）。ここでは、遅延が大きい論理パスについて、始点側のクロック素子へのクロック信号到着時間を早め、終点側のクロック素子へのクロック信号到着時間を遅らせる（逆に、遅延が小さい論理パスについては、始点側のクロック素子へのクロック信号到着時間を遅らせ、終点側のクロック素子へのクロック信号到着時間を早める）ことにより、回路動作性能の向上を図っている。しかし、遅延バラツキが大きい状況下では、設計で正確にスキューを制御することが困難であるため、意図的にスキューを設定する技術も適用困難となる。
【００１０】
そこで、このような製造バラツキの問題に対処するために、ツリー構造を持つクロック分配回路の末端バッファの出力を配線短絡することにより、クロックソースからの各クロック素子へのクロック信号到着時間差を最小化する技術が提案されている。この技術によれば、バッファの出力を配線短絡することにより、クロック供給源から異なる経路を経由してきたクロック信号が平均化され、製造バラツキによるクロックスキューを低減することが可能となる。例えば、クロックツリー構造の末端バッファの出力端子をメッシュ構造（格子構造とも呼ぶ）を持った配線に接続し、メッシュ構造配線から、クロック素子へクロック信号を分配する技術が、例えば、特許文献４、特許文献５、特許文献６で提案されている。図１４に、クロック分配ツリーの末端バッファ出力を、メッシュ構造配線で短絡した例を示す。
【００１１】
一方で、近年の半導体回路の大規模化、および、高速化の進歩は、クロック信号部での消費電力の増大を招いており、クロックスキュー削減に加えて、低消費電力化を実現するクロック配置配線設計技術も重要となってきている。
【００１２】
クロック信号部の消費電力を削減する効果的な方法としては、ゲーティッドクロック回路設計手法が提案され、広く普及している（例えば、特許文献７に記載される技術）。これは、回路が動作しない場合に、クロックの動作も止めることにより、低消費電力化を図る技術であり、論理回路からゲーティング信号と呼ばれる制御信号をクロック分配回路上に接続し、クロック信号の伝搬を制御する。
【００１３】
クロックゲーティングの例を、図１５に示す。ゲーティング信号とクロック信号の論理積を取ることにより、クロック信号のクロック素子への分配を制御する論理ゲートをゲーティングセルと呼び、同一ゲーティング信号が接続するゲーティングセルからクロック信号が分配されるクロック素子の集合を、ゲーティッド回路と呼ぶ。ゲーティング信号が接続するゲーティングセルの入力端子をイネーブル端子と呼ぶ。
【００１４】
さらに、近年では、低消費電力と低スキューの双方を実現するために、クロックゲーティングとメッシュ構造を組み合わせる技術が、例えば、特許文献８、特許文献９で提案されている。ここでは、図１６に示すように、クロックゲーティングを適用する部分回路毎にメッシュ構造を適用している。これを、レイアウト構造で見ると、図１７に示すように、それぞれのゲーティッド回路に対して生成したメッシュ構造を同一レイアウト領域上に重ね合わせることになる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特許第２６９５０７８号
【特許文献２】特開２００７−１２３３３６号公報
【特許文献３】特開２００４−３３４４６８号公報
【特許文献４】特開２００３−０９２３５２号公報
【特許文献５】特許第３９２０１２４号
【特許文献６】特開２００７−２１４３３４号公報
【特許文献７】特開２００９−０５３８３０号公報
【特許文献８】特開２００３−１０９３８２号公報
【特許文献９】特開２００７−０１９４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、クロックゲーティングとメッシュ構造を組み合わせる技術では、図１６、図１７に示すように、クロックゲーティングを適用する部分回路毎にメッシュ構造を適用しているため、異なるメッシュ構造に接続するクロック素子対のスキューを十分に最小化できないという問題が存在する。すなわち、ゲーティング構造を含むクロック構成では、チップ内のクロック素子入力端子に接続する全てのバッファ出力を配線短絡するメッシュ形状配線を適用できず、ゲーティッド回路毎にメッシュ形状配線を設定することになるため、同一ゲーティッド回路内でのクロックスキューは低減できるものの、異なるゲーティッド回路間では、クロック信号の伝搬経路が異なり、クロックスキューが増大してしまう。
【００１７】
また、通常、チップ上には異なるゲーティッド回路に属するクロック素子が混在して分布することが多いため、メッシュ構造を重ねて設定することは、多くの配線資源を消費することになり、配線性の悪化、消費電力の増加につながるという問題がある。
【００１８】
回路動作向上を目的とした意図的スキュー設定についても、異なるゲーティッド回路に含まれるクロック素子対については、クロックスキューのバラツキを押えることが困難であるため、クロック素子対のスキューを適切に調整することも困難になる、という問題が存在する。
【００１９】
（発明の目的）
本発明は、このような課題を解決するためになされたものであって、クロックゲーティング構造を持つクロック分配回路を含む半導体集積回路について、クロックスキューの最小化と回路動作性能の向上を可能とする配置配線を行う設計方法、設計装置およびプログラムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明の第１の半導体集積回路の設計装置は、クロックゲーティング構造を含む半導体集積回路のチップ情報を用いて、クロック素子と論理ゲートを配置するゲート配置手段と、全てのクロック素子の入力端子を覆うメッシュ配線構造を生成するメッシュ配線構造生成手段と、メッシュ配線構造を駆動するバッファツリーを生成するグローバルクロック構造生成手段と、グローバルクロックツリーとメッシュ配線構造を接続するグローバル構造・メッシュ接続手段と、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを生成するクロック素子クラスタ生成手段と、各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入するゲーティングセル複製・挿入手段と、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルを接続するメッシュ配線構造・クロック素子クラスタ接続手段と、各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続するローカルクロック構造生成手段とを備える。
【００２１】
本発明の第１の半導体集積回路の設計方法は、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付け、クロック素子と論理ゲートを配置し、全てのクロック素子の入力端子を覆うメッシュ配線構造を生成し、メッシュ配線構造を駆動するバッファツリーを生成し、グローバルクロックツリーとメッシュ配線構造を接続し、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを生成し、各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入し、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルを接続し、各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する。
【００２２】
本発明の第１のプログラムは、半導体集積回路の設計装置であるコンピュータに、クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付けて、クロック素子と論理ゲートを配置する処理と、全てのクロック素子の入力端子を覆うメッシュ配線構造を生成する処理と、メッシュ配線構造を駆動するバッファツリーを生成する処理と、グローバルクロックツリーとメッシュ配線構造を接続する処理と、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを生成する処理と、各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入する処理と、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルを接続する処理と、各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する処理と、を実行させる。
【発明の効果】
【００２３】
本発明によれば、低消費電力化に有効であるゲーティング構造を含むクロック分配回路に対して、製造バラつきを含むスキューの削減のために有効であるメッシュ配線構造を分割することなく、全クロック素子を同一のメッシュ配線構造以下に接続することが可能となる。これにより、クロック信号分配回路の低消費電力化と低クロックスキュー化が可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【図２】本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【図３】クロック分配回路の配置結果を示す図である。
【図４】クロック素子を覆うメッシュ配線構造の設定を示す図である。
【図５】末端バッファを４つ持つグローバルクロック構造の一例と、グローバル構造とメッシュ配線構造の接続を示す図である。
【図６】ゲーティング構造とクロック素子配置を考慮したクロック素子クラスタリングの一例を示す図である。
【図７】クロック素子クラスタへのゲーティングセル挿入と、ゲーティングセルとメッシュ配線構造の接続を示す図である。
【図８】ゲーティングセルとクロック素子を接続するローカルクロック構造生成の一例を示す図である。
【図９】本発明によって得られるメッシュ配線構造以下にクロックゲーティング構造を接続する回路構成の一例を示す図である。
【図１０】クロック素子間のタイミング解析に基づいた、メッシュ配線構造以下に接続するクロックゲーティングセルの駆動能力調整の一例を示す図である。
【図１１】ゲーティング構造が２段になっている回路構成の場合の、本発明によるメッシュ配線構造挿入結果の一例を示す図である。
【図１２】特許文献記載のクロック分配方法を示す図である。
【図１３】特許文献記載のクロックスキュー調整を示す図である。
【図１４】特許文献記載のメッシュ配線構造挿入を示す図である。
【図１５】特許文献記載のゲーティングクロック回路構成を示す図である。
【図１６】特許文献記載のゲーティングクロックとメッシュ配線構造の組合せの回路構成を示す図である。
【図１７】特許文献記載のゲーティングクロックとメッシュ配線構造の組合せのレイアウトを示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
（第１の実施の形態）
図１は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【００２６】
本実施の形態の半導体集積回路設計装置１００は、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶するチップ情報記憶部９０と、チップ情報受付部１０１と、クロック素子と論理ゲートを配置するゲート配置部１０２と、全てのクロック素子の入力端子を覆うメッシュ配線構造を生成するメッシュ配線構造生成部１０３と、生成したメッシュ配線構造を駆動するバッファツリーを生成するグローバルクロック構造生成部１０４と、グローバルクロック構造とメッシュ配線構造を接続するグローバル構造・メッシュ接続部１０５と、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子群が含まれるようにクラスタを生成するクロック素子クラスタ生成部１０６と、各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入するゲーティングセル複製・挿入部１０７と、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルを接続するメッシュ配線構造・クロック素子クラスタ接続部１０８と、各ゲーティングセル出力端子とゲーティングセルが駆動するクロック素子クラスタ内のクロック素子入力端子を接続するローカルクロック構造生成部１０９と、クロック素子間の論理素子上パスのタイミング解析を行なう論理パス遅延計算部１１０と、クロック素子間の論理素子上パスのタイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルの駆動能力を調整するゲーティングセル駆動能力調整部１１１と、を備える。
【００２７】
なお、本実施の形態の半導体集積回路設計装置１００は、制御装置、記憶装置、入力装置および表示装置からなる一般的なコンピュータにより構成することができる。これらの各部については図示しない。また、上記の各ユニットは、記憶装置に格納されたコンピュータプログラムにより動作する制御装置により、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置上に構築されて制御される。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００２８】
すなわち、半導体集積回路設計装置の各構成要素は、任意のコンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００２９】
チップ情報記憶部９０は、設計対象となる半導体集積回路チップのクロック素子を含むゲートレベルのネットリストに関する情報（チップ情報）を記憶する。ここで、クロック素子の集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。この各部分集合の単位をゲーティッド回路とも呼ぶ。
【００３０】
チップ情報受付部１０１は、上記チップ情報を受け付け、チップ情報記憶部９０に記憶する。チップ情報受付部１０１は、例えば、半導体集積回路設計装置１００の図示されない、入出力インタフェースを介して、各種記録媒体または記憶装置、あるいはネットワークなどを介した他の装置からデータを入力して受け付けてもよいし、ユーザが操作入力したデータを受け付けてもよい。チップ情報記憶部９０のチップ情報は、必ずしも毎回受け付けて更新する必要はなく、既にチップ情報記憶部９０に記憶されている情報を利用することもできる。
【００３１】
ゲート配置部１０２は、クロック素子と論理ゲートを配置する。このゲート配置部１０２は、既存の配置手段を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
【００３２】
メッシュ配線構造生成部１０３は、全てのクロック素子の入力端子を覆うメッシュ配線構造を生成する。ここで、メッシュ配線構造としては、格子状配線などの関連技術として提案されている構造を利用することが考えられる。
【００３３】
グローバルクロック構造生成部１０４は、メッシュ配線構造を駆動するバッファツリーを、グローバルクロックツリーとして生成する。ここで、バッファツリーの形状としては、Ｈツリー型、２分木型などの従来から提案されている形状を使用することが考えられる。
【００３４】
グローバル構造・メッシュ接続部１０５は、グローバルクロックツリーとメッシュ配線構造を接続する。ここでは、グローバルクロックツリーの末端バッファの出力端子から配線を引出し、メッシュ配線構造上の最も近い点に接続する。
【００３５】
クロック素子クラスタ生成部１０６は、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とフリップフロップの配置分布を考慮して、クロック素子のクラスタを生成する。具体的には、同一のゲーティング論理でクロック信号の伝搬を制御できるクロック素子集合を分割し、配置座標が近いクロック素子が同一クラスタに含まれるように、複数のクロック素子クラスタを生成する。この時、１つのクロック素子クラスタに含まれるクロック素子の数に上限が与えられる。
【００３６】
ゲーティングセル複製・挿入部１０７は、クロック素子クラスタ生成部１０６で生成した各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入する。この時、元のゲーティングセルに接続していたゲーティング信号も、分岐させ、複製された各ゲーティングセルのイネーブル端子への接続を生成する。
【００３７】
メッシュ・クロック素子クラスタ接続部１０８は、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルの入力端子を接続する。具体的には、ゲーティングセルの入力端子から最も近いメッシュ配線構造上の点への配線を生成する。
【００３８】
ローカルクロック構造生成部１０９は、各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する。このローカルクロック構造生成部１０９には、既存のクロックツリー生成手段を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
【００３９】
論理パス遅延計算部１１０は、クロック素子間の論理素子上パスのタイミング解析を行なう。この論理パス遅延計算部１１０は、既存の論理パス遅延計算段を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
【００４０】
ゲーティングセル駆動能力調整部１１１は、クロック素子間の論理素子上パスのタイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルのサイズ、すなわち、駆動能力を調整し、クロック素子間の論理パス遅延と合わせて、回路動作がタイミング制約を満たすように、クロックスキューを調整する。
【００４１】
本実施形態の半導体集積回路設計装置１００において、ＣＰＵが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
【００４２】
本実施形態のコンピュータプログラムは、半導体集積回路設計装置１００を実現させるためのコンピュータに、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する手順と、クロック素子と論理ゲートを配置する手順と、全てのクロック素子の入力端子を覆うメッシュ配線構造を生成する手順と、メッシュ配線構造を駆動するバッファツリーを生成する手順と、グローバルクロックツリーとメッシュ配線構造を接続する手順と、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子のクラスタを生成する手順と、各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入する手順と、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルを接続する手順と、各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する手順と、クロック素子間の論理素子上パスのタイミング解析を行なう手順と、クロック素子間の論理素子上パスのタイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルのサイズ、すなわち、駆動能力を調整し、クロック素子間のパス遅延と合わせて、回路動作がタイミング制約を満たすように、クロックスキューを調整する手順と、を実行させるように記述されている。
【００４３】
（第１の実施の形態の動作の説明）
次に、図面を参照して、本実施の形態の動作について詳細に説明する。
【００４４】
本実施の形態に係る本実施の形態による半導体集積回路設計装置１００の動作について、以下に説明する。図２は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【００４５】
本実施の形態による半導体集積回路の設計方法は、クロックゲーティング構造を含む半導体集積回路のチップ情報を受付け（ステップＳ１０１）、クロック素子と論理ゲートを配置し（ステップＳ１０２）、全てのクロック素子の入力端子を覆うメッシュ配線構造を生成し（ステップＳ１０３）、メッシュ配線構造を駆動するバッファツリーを、グローバルクロックツリーとして生成し（ステップＳ１０４）、グローバルクロックツリーとメッシュ配線構造を接続し（ステップＳ１０５）、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子のクラスタを生成し（ステップＳ１０６）、各クロック素子クラスタに対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセルとして挿入し（ステップＳ１０７）、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルを接続し（ステップＳ１０８）、各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続し（ステップＳ１０９）、クロック素子間の論理素子上パスのタイミング解析を行ない（ステップＳ１１０）、クロック素子間の論理素子上パスのタイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルのサイズ、すなわち、駆動能力を調整し、クロック素子間の論理パス遅延と合わせて、回路動作がタイミング制約を満たすように、クロックスキューを調整する（ステップＳ１１１）。
【００４６】
以下、図２乃至図１１を用いて半導体集積回路の設計方法の処理手順について具体的に説明する。
【００４７】
はじめに、チップ情報受付部１０１により、設計対象となる半導体集積回路チップのクロック素子を含むゲートレベルのネットリストに関する情報（チップ情報）の入力を受け付け、チップ情報記憶部９０に記憶する（ステップＳ１０１）。ここで、フリップフロップの集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。この各部分集合をゲーティッド回路とも呼ぶ。入力するチップ情報に含まれるクロック分配回路は、図１５に示すような、これまでに提案されている一般的なクロックゲーティング構造を持っている。
【００４８】
次に、チップ情報受付部１０１によりチップ情報記憶部９０に記憶された論理回路に対して、ゲート配置部１０２が、論理ゲートとフリップフロップの配置を、ネットリストのセル間接続とフリップフロップ間タイミング制約に基づいて行い、図３のようなクロック素子配置結果を生成する（ステップＳ１０２）。図３では簡単のため、クロック素子１２−０３以外の論理ゲートは省略している。また、同一の符号が振られているクロック素子（例えば、Ｆ１、Ｆ２等）は、同一のゲーティング論理によりクロック信号の伝搬を制御されること、すなわち同一のゲーティッド回路に属していることを意味している。
【００４９】
次に、メッシュ配線構造生成部１０３が、図４に示すように、全てのクロック素子の入力端子を覆うメッシュ配線構造１４−０２を生成する。なお、ここでは簡単のため、メッシュ配線構造の一例として４×４の格子状配線構造を示しているが、これに限定されないことは言うまでもない。
【００５０】
次に、グローバルクロックツリー生成部１０４が、図５に示すように、メッシュ配線構造を駆動するバッファツリー１４−０１を、グローバルクロックツリーとして生成する（ステップＳ１０４）。なお、ここでは簡単のため、４個の末端バッファを持つ完全対称なクロック分配信号レイアウトの一例としてＨツリー型の構造を示しているが、これに限定されない。
【００５１】
次に、グローバル構造・メッシュ接続部１０５は、図５の１４−０４に示すように、グローバルクロックツリーとメッシュ配線構造を接続する（ステップＳ１０５）。ここでは、グローバルクロックツリーの末端バッファの出力端子から配線を引出し、メッシュ配線構造上の最も近い点に接続する。
【００５２】
次に、クロック素子クラスタ生成部１０６が、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とフリップフロップの配置分布を考慮して、フリップフロップのクラスタを生成する（ステップＳ１０６）。
【００５３】
具体的には、図６に示すように、同一のゲーティング論理でクロック信号の伝搬を制御できるクロック素子の集合を、座標が近いクロック素子が同一クラスタに含まれるように分割し、クラスタ０６−０１の集合を生成する。この時、１つのクラスタに含まれるクロック素子の数と分布面積に上限を与えることもできる。図６では、６つのクロック素子クラスタ０６−０１が生成されている。クロック素子クラスタ生成部１０６では、１つのクラスタに含まれるクロック素子の数と分布範囲が、製造バラツキが問題にならない程度の数と分布範囲になるように、クロック素子のクラスタリングが行なわれる。
【００５４】
次に、ゲーティングセル複製・挿入部１０７が、図７に示すように、クロック素子クラスタ生成部１０６で生成された各クロック素子クラスタ０６−０１（図６）に対して、そのクラスタに含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、クラスタを駆動するゲーティングセル１５−０４として挿入する（ステップＳ１０８）。この時、元のゲーティングセルに接続していたゲーティング信号も、分岐して、複製された各ゲーティングセルのイネーブル端子への接続を生成する。
【００５５】
次に、メッシュ配線構造・各クロック素子クラスタ接続部１０８が、図７の０７−０１に示すように、メッシュ配線構造と各クロック素子クラスタを駆動するゲーティングセルを接続する（ステップＳ１０８）。具体的には、ゲーティングセルの入力端子から最も近いメッシュ配線構造上の点へ配線を生成する。
【００５６】
次に、ローカルクロック構造生成部１０９が、図８に示すように、各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する配線０８−０１を生成する（ステップＳ１０９）。このローカルクロック構造生成部１０９は、既存のクロックツリー生成手段を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
【００５７】
上記の処理により、入力時のクロック分配回路構成（図１５）は、図９に示すように、回路全体を覆うメッシュ配線構造の下に、ゲーティングセルを介して、クロック素子が接続される構造となる。このため、異なるゲーティッド回路に含まれるクロック素子対のクロックスキューも最小化することが可能となる。
【００５８】
次に、論理パス遅延計算部１１０は、クロック素子間の論理素子上パスのタイミング解析を行なう（ステップＳ１１０）。図１０に、メッシュ配線構造１４−０２、ゲーティングセル１０−０１、１０−０２、１０−０３、クロック素子クラスタ１５−０３、クロック素子間論理１０−０４、１０−０５の関係図を示す。
【００５９】
ここで、回路動作を保証するための遅延条件は、例えば、クロックソース１２−０１から、メッシュ配線構造１４−０２、ゲーティングセル１０−０１およびゲーティングセル１０−０１に接続するクロック素子クラスタ１０−０６を経由して、ゲーティングセル１０−０２に接続するクロック素子クラスタ１０−０７に到達する遅延の合計が、クロックソース１２−０１から、メッシュ配線構造１４−０２、ゲーティングセル１０−０２を経由してゲーティングセル１０−０２に接続するクロック素子クラスタ１０−０７に到達する遅延の合計にクロック周期を足した時間よりも小さくなることである。論理パス遅延計算部１１０は、これらの遅延計算を行う。この論理パス遅延計算部１１０は、既存の論理パス遅延計算段を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
【００６０】
次に、ゲーティングセル駆動能力調整部１１１は、クロック素子間の論理素子上パスのタイミング解析結果に基づき、クロック素子クラスタを駆動するゲーティングセルのサイズ、すなわち、駆動能力を調整し、クロック素子間のパス遅延と合わせて、回路動作が遅延条件を満たすように、クロックスキューを調整する（ステップＳ１１１）。
【００６１】
図１０では、論理回路１０−０５の論理パス遅延が大きく、遅延条件を違反しており、一方、論理回路１０−０４の論理パス遅延は、十分、小さいとする。この時、ゲーティングセル１０−０２の駆動能力を大きく調整、ゲーティングセル１０−０３の駆動能力を小さく調整、することにより、回路の動作遅延条件を満たすことが可能になる。製造バラツキの大きい条件下では、このような遅延調整は、困難であるが、メッシュ配線構造を挿入することにより、ゲーティングセルまでのスキューを製造バラツキ込みで低減することが可能であるため、メッシュ配線構造以下の遅延調整が容易となる。
【００６２】
次に、図１１（ａ）に、ゲーティング構造が２段になっている回路構成１１−０１を含むクロック分配回路を示す。ゲーティング構造が２段になっている回路構成は、大きな論理単位でのクロック停止と、小さな論理単位でのクロック停止を組み合わせるために、一般的に採用されている。この場合、図１１（ｂ）に示すように、多段になっている２つのゲーティング信号の論理積を取ったゲーティング信号を、クロック素子クラスタを駆動するゲーティングセル１１−０４のイネーブル端子に接続することにより、メッシュ配線構造を分割することなく、全てのクロック素子を同一のメッシュ配線構造以下に接続することが可能となる。
【００６３】
ゲーティング構造が２段になっている回路構成も、本発明による半導体集積回路の設計装置および設計方法で生成可能である。すなわち、クロック素子クラスタ生成部１０６で、ゲーティング信号の組み合わせが異なるクロック素子が同一のクロック素子クラスタに含まれないようにクロック素子集合を分割するように考慮すれば良い。ゲーティングの段数が３段以上の場合に対しても、本発明は同様に適用可能である。
【００６４】
（第１の実施の形態による効果）
次に本実施の形態の効果について説明する。
【００６５】
以上、説明したように、本実施形態の半導体集積回路の設計装置および設計方法によれば、低消費電力化に有効であるゲーティング構造を含むクロック分配回路に対して、製造バラつきを含むスキューの削減のために有効であるメッシュ配線構造を分割することなく、全クロック素子を同一のメッシュ配線構造以下に接続することが可能となる。
【００６６】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００６７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００６８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００６９】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００７０】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【００７１】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【符号の説明】
【００７２】
０６−０１：クロック素子クラスタ
０７−０１：メッシュ・クロック素子クラスタ接続
０８−０１：ローカルクロック構造
１０−０１、１０−０２、１０−０３：ゲーティングセル
１０−０４、１０−０５：論理回路
１０−０６、１０−０７、１０−０８：クロック素子クラスタ
１１−０１：２段ゲーティング構造
１１−０２：２段目のゲーティング信号
１１−０３：２段目のゲーティングセル
１１−０４：１段目と２段目をゲーティング論理の論理積を含むゲーティングセル
１２−０１：クロックソース
１２−０２：配線経路
１２−０３：クロック素子
１２−０４：中継バッファ
１３−０１：遅延調整用バッファ
１３−０２：論理回路
１４−０１：グローバル構造（Ｈツリー）
１４−０２：メッシュ配線構造
１４−０３：グローバル構造末端バッファ
１４−０４：グローバル構造・メッシュ接続配線
１５−０１：ゲーティング信号１
１５−０２：ゲーティング信号２
１５−０３：ゲーティッド回路
１５−０４：ゲーティングセル
１００：半導体集積回路設計装置
９０：チップ情報記憶部
１０１：チップ情報受付部
１０２：ゲート配置部
１０３：メッシュ配線構造生成部
１０４：グローバルクロック構造生成部
１０５：グローバル構造・メッシュ接続部
１０６：クロック素子クラスタ生成部
１０７：ゲーティングセル複製・挿入部
１０８：メッシュ配線構造・クロック素子クラスタ接続部
１０９：ローカルクロック構造生成部
１１０：論理パス遅延計算部
１１１：ゲーティングセル駆動能力調整部
【図１】
2011128682.tif 000003
【図２】
2011128682.tif 000004
【図３】
2011128682.tif 000005
【図４】
2011128682.tif 000006
【図５】
2011128682.tif 000007
【図６】
2011128682.tif 000008
【図７】
2011128682.tif 000009
【図８】
2011128682.tif 000010
【図９】
2011128682.tif 000011
【図１０】
2011128682.tif 000012
【図１１】
2011128682.tif 000013
【図１２】
2011128682.tif 000014
【図１３】
2011128682.tif 000015
【図１４】
2011128682.tif 000016
【図１５】
2011128682.tif 000017
【図１６】
2011128682.tif 000018
【図１７】
2011128682.tif 000019