(57)【要約】【課題】  微細化が進んだプロセスに対しても、製造ばらつきの影響を最小限に抑えたクロック信号の供給を可能にする。【解決手段】  階層設計において、階層トップのクロック経路を抽出し（Ｓ１００）、抽出した各クロック経路から階層クロック入力端子ペアに対応するクロック分岐ポイントを求め（Ｓ１１０）、遅延値をクロック入力端子ペアごとに求める（Ｓ１２０）。求めた遅延値に対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成し（Ｓ１３０）、タイミング制約に従って、階層ブロック内のタイミング調整を行う（Ｓ１４０）。【選択図】    図１
2006324578.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号に同期して動作する半導体集積回路の設計方法であって、
前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路を抽出するクロック経路抽出ステップと、
前記クロック経路抽出ステップにおいて抽出した前記クロック経路が前記複数のクロック入力端子へ分岐するクロック分岐ポイントを求めるクロック分岐ポイント抽出ステップと、
前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を求める遅延値算出ステップと、
前記遅延値算出ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、
前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含む
ことを特徴とする半導体集積回路の設計方法。
【請求項２】
請求項１記載の半導体集積回路の設計方法において、
前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値は、前記クロック経路を構成する各々の構造要素ごとに求められる
ことを特徴とする半導体集積回路の設計方法。
【請求項３】
請求項１記載の半導体集積回路の設計方法において、
前記遅延値算出ステップにおいて求めた各々の前記遅延値はライブラリ又は制約情報として保持される
ことを特徴とする半導体集積回路の設計方法。
【請求項４】
請求項３記載の半導体集積回路の設計方法において、
前記ライブラリ又は前記制約情報として保持される前記遅延値は、前記階層ブロックのクロック入力端子の任意のペアごとに、このペアに対する一のクロック分岐ポイントから前記ペアの一方のクロック入力端子までの遅延値に他方のクロック入力端子を対応付けたテーブル形式で保持される
ことを特徴とする半導体集積回路の設計方法。
【請求項５】
請求項２記載の半導体集積回路の設計方法において、
前記遅延値算出ステップは、
前記クロック経路上の前記各々の構造要素が有する構造情報を求めてテーブル形式で保持する構造情報算出ステップと、
前記構造情報算出ステップにおいて求めた前記構造情報から遅延値を求める遅延値換算ステップとを含み、
前記タイミング制約作成ステップは、前記遅延値換算ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成する
ことを特徴とする半導体集積回路の設計方法。
【請求項６】
請求項５記載の半導体集積回路の設計方法において、
前記構造情報は、前記各々の構造要素が有する抵抗値及び容量値である
ことを特徴とする半導体集積回路の設計方法。
【請求項７】
請求項２記載の半導体集積回路の設計方法において、
前記遅延値算出ステップは、前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を、前記構造要素のうちのセル及び配線に対するセル遅延と配線遅延とに分けて求める遅延値分類ステップを含み、
前記タイミング制約作成ステップは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成する
ことを特徴とする半導体集積回路の設計方法。
【請求項８】
請求項７記載の半導体集積回路の設計方法において、
前記遅延値分類ステップでは、前記セルの種類及び前記配線の形状ごとに前記セル遅延と配線遅延とをそれぞれ求め、
前記タイミング制約作成ステップでは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの種類ごとに製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の形状ごとに製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成する
ことを特徴とする半導体集積回路の設計方法。
【請求項９】
クロック信号に同期して動作する半導体集積回路の設計方法であって、
前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路が確定していない段階で、前記半導体集積回路のクロック入力端子から前記階層ブロックのクロック入力端子への推定距離を求める推定距離算出ステップと、
前記推定距離算出ステップにおいて求めた前記推定距離を遅延値に換算する遅延値換算ステップと、
前記遅延値換算ステップにおいて求めた前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、
前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含む
ことを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック信号に同期して動作する半導体集積回路の設計方法に関するものである。
【背景技術】
【０００２】
従来のロジック回路を含んだ半導体集積回路の多くは、外部から供給されたクロック信号、あるいは、外部から供給された信号に基づき内部で生成したクロック信号に同期して動作する。半導体集積回路を正しく動作させるためには、このようなクロック信号で動作するクロック回路（ロジック回路）を構成する各フリップフロップにクロック信号を正しく供給することが必要である。このため、クロック回路の構成は、半導体集積回路の設計上の重要な課題であると認識されている。
【０００３】
クロック回路を解析するときには、クロック回路のうち、クロック信号が流れる経路（以下、クロック経路という）とクロック経路上に存在する論理セルとに着目し、これらの部分をクロックツリーとして解析することが、広く行なわれている。
【０００４】
一方でプロセスの微細化の進行に伴い、半導体集積回路の製造過程におけるトランジスタのばらつきの割合が増大している。このばらつきは、半導体集積回路の製造能力に影響し、同一構造の論理セルにおいても遅延時間に差が生じる、あるいは、同一構造、同一配線長の配線においても抵抗値、容量値に差が生じるため、遅延時間に差が生じてしまう。そこで経験的数値から最悪値の製造ばらつき度合いを割り出している。
【０００５】
レイアウト設計時には、製造ばらつきを考慮した設計マージンを遅延時間に与えて設計を行ない、タイミング解析においても製造ばらつきによる設計マージンを遅延時間に加えて解析が行われている。これにより、製造ばらつきにより実際の半導体集積回路で遅延値に変動があっても、製造ばらつきを考慮した設計マージン以内の値であれば半導体集積回路は正しく動作することになる。
【０００６】
従来の半導体集積回路のレイアウト設計における階層ブロック間のクロック遅延を調整する方法は、種々の技術が知られている。この中で本発明と関連性を有する技術としては、例えば、特許文献１に記載されたものがある。特許文献１には、階層ブロック間のクロック遅延の調整を、階層トップにおいて、半導体集積回路のクロック入力端子−階層ブロックのクロック入力端子間のクロック配線長を調節することにより行う方法が記載されている。
【０００７】
ここで、階層レイアウト設計、特に階層ブロックから設計を行い、階層トップへと組み上げる設計の場合、階層ブロック内ではクロック・ツリー・シンセシスが行われる。しかし、これにより、階層ブロック内のクロックツリーに対して製造ばらつきによるタイミング解析を行うことができるものの、半導体集積回路（半導体チップ）のクロック入力端子から階層ブロックのクロック入力端子までのクロックツリーに関しては、製造ばらつきによる設計マージンを考慮した遅延値を与えることができない。そのため、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子へ到達するクロックに遅延差を設けるようにクロック配線の配置を変更することにより、製造ばらつきのために階層ブロック内に生じる遅延差を緩和して対応してきた。
【特許文献１】特開２００４−２５３７７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、更なる半導体集積回路プロセスの微細化および低電圧化の進行に伴い、半導体集積回路におけるクロック信号の供給については、従来よりも高い精度のタイミング調整が要求されてきている。例えば、プロセスの微細化の進行に伴い、クロック回路に含まれる論理セルを構成するトランジスタのサイズは小さくなっており、クロック回路の各部の小さな製造ばらつきがクロック遅延に大きな影響を及ぼしている。このため、従来の階層ブロック回路内の製造ばらつきの影響を階層トップのクロック配線の配置を変更するのみでは、十分にばらつきの影響を吸収できなくなってきている。
【０００９】
上記課題を解決するために、本発明は、微細化が進んだプロセスに対しても、製造ばらつきの影響を最小限に抑えたクロック信号の供給が可能な半導体集積回路の設計方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明では、プロセスの微細化が進んだことにより、半導体集積回路のタイミング調整に及ぼす影響が顕著となってきている階層ブロックに至るまでのクロック経路の遅延値に現れる製造ばらつきの影響を抑える。これには、階層ブロックの複数のクロック入力端子へ分岐しているクロック経路のうち、分岐後のクロック経路における遅延差に着目し、この分岐後のクロック経路の遅延値に製造ばらつきを考慮した設計マージンを与えることにより、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子までのクロック回路部分の製造ばらつきまでも考慮した精度の高いタイミング調整を行う。
【００１１】
すなわち、請求項１記載の発明の半導体集積回路の設計方法は、クロック信号に同期して動作する半導体集積回路の設計方法であって、前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路を抽出するクロック経路抽出ステップと、前記クロック経路抽出ステップにおいて抽出した前記クロック経路が前記複数のクロック入力端子へ分岐するクロック分岐ポイントを求めるクロック分岐ポイント抽出ステップと、前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を求める遅延値算出ステップと、前記遅延値算出ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含むことを特徴とする。
【００１２】
請求項２記載の発明は、請求項１記載の半導体集積回路の設計方法において、前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値は、前記クロック経路を構成する各々の構造要素ごとに求められることを特徴とする。
【００１３】
請求項３記載の発明は、請求項１記載の半導体集積回路の設計方法において、前記遅延値算出ステップにおいて求めた各々の前記遅延値はライブラリ又は制約情報として保持されることを特徴とする。
【００１４】
請求項４記載の発明は、請求項３記載の半導体集積回路の設計方法において、前記ライブラリ又は前記制約情報として保持される前記遅延値は、前記階層ブロックのクロック入力端子の任意のペアごとに、このペアに対する一のクロック分岐ポイントから前記ペアの一方のクロック入力端子までの遅延値に他方のクロック入力端子を対応付けたテーブル形式で保持されることを特徴とする。
【００１５】
請求項５記載の発明は、請求項２記載の半導体集積回路の設計方法において、前記遅延値算出ステップは、前記クロック経路上の前記各々の構造要素が有する構造情報を求めてテーブル形式で保持する構造情報算出ステップと、前記構造情報算出ステップにおいて求めた前記構造情報から遅延値を求める遅延値換算ステップとを含み、前記タイミング制約作成ステップは、前記遅延値換算ステップにおいて求めた各々の前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成することを特徴とする。
【００１６】
請求項６記載の発明は、請求項５記載の半導体集積回路の設計方法において、前記構造情報は、前記各々の構造要素が有する抵抗値及び容量値であることを特徴とする。
【００１７】
請求項７記載の発明は、請求項２記載の半導体集積回路の設計方法において、前記遅延値算出ステップは、前記クロック分岐ポイント抽出ステップにおいて求めた前記クロック分岐ポイントから前記階層ブロックの各々のクロック入力端子までの遅延値を、前記構造要素のうちのセル及び配線に対するセル遅延と配線遅延とに分けて求める遅延値分類ステップを含み、前記タイミング制約作成ステップは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成することを特徴とする。
【００１８】
請求項８記載の発明は、請求項７記載の半導体集積回路の設計方法において、前記遅延値分類ステップでは、前記セルの種類及び前記配線の形状ごとに前記セル遅延と配線遅延とをそれぞれ求め、前記タイミング制約作成ステップでは、前記遅延値分類ステップにおいて求めた各々の前記セル遅延に対して前記セルの種類ごとに製造ばらつきを考慮した設計マージンを与え、また、各々の前記配線遅延に対して前記配線の形状ごとに製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成することを特徴とする。
【００１９】
請求項９記載の発明の半導体集積回路の設計方法は、クロック信号に同期して動作する半導体集積回路の設計方法であって、前記クロック信号を受ける前記半導体集積回路のクロック入力端子から、この半導体集積回路内の階層ブロックが有する複数のクロック入力端子に至るクロック経路が確定していない段階で、前記半導体集積回路のクロック入力端子から前記階層ブロックのクロック入力端子への推定距離を求める推定距離算出ステップと、前記推定距離算出ステップにおいて求めた前記推定距離を遅延値に換算する遅延値換算ステップと、前記遅延値換算ステップにおいて求めた前記遅延値に対して製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成するタイミング制約作成ステップと、前記タイミング制約作成ステップにおいて作成した前記タイミング制約に基づいて前記半導体集積回路のタイミング調整を行うタイミング調整ステップとを含むことを特徴とする。
【００２０】
以上のように、請求項１〜３記載の発明では、半導体集積回路のクロック入力端子から階層ブロックの複数のクロック入力端子までのクロック経路のうち、クロック分岐ポイントから階層ブロックの複数のクロック入力端子までのそれぞれの遅延値を求めてデータとして持たせる。そして、これら求めた遅延値に対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えて回路のタイミング調整を行なう。これにより、階層トップにおけるクロック経路の製造ばらつきを考慮した適切なタイミング調整を行うことができる。
【００２１】
また、請求項４記載の発明では、前記遅延値のデータは、クロック分岐ポイントからの遅延値を、このクロック分岐ポイントに対するクロック入力端子のペアごとに遅延値を持ったテーブル形式の書式で作成する。これにより、上記ペアのクロック入力端子から入力されるクロック信号を用いる階層ブロック内の回路間のタイミング調整を効率よく行うことができる。
【００２２】
また、請求項５及び６記載の発明では、遅延値を計算せずに、クロック経路上の各々の構造要素が有する構造情報をデータとして持たせておき、タイミング解析時に前記のデータから遅延値を求める。これにより、構造情報が置き換わった場合においても、階層トップにおけるクロック経路について、より詳細に製造ばらつきを考慮することができ、より適切なタイミング調整が可能となる。
【００２３】
請求項７記載の発明では、製造ばらつきによる設計マージンを、クロック経路上のセルごとに、あるいは、クロック経路上の配線ごとに分けて求めることにより、詳細に、製造ばらつきを考慮したタイミング調整を行うことができる。
【００２４】
特に、請求項８記載の発明では、製造ばらつきによる設計マージンを、クロック経路上のセルの個数、種類ごとに、あるいは、クロック経路上の配線の種類ごとに分けて求めることにより、更に詳細に、製造ばらつきを考慮したタイミング調整を行うことができる。
【００２５】
請求項９記載の発明では、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への推定距離を求める。そして、求めた推定距離から遅延値へ換算する処理を行ない、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への遅延値としてデータを保持する。これら求めた遅延値に対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えて回路設計を行う。これにより、例えばフロアプラン設計時のようなクロック回路構成が確定していない段階において、適切なタイミング調整を行なうことができる。
【発明の効果】
【００２６】
以上説明したように、請求項１〜６記載の発明によれば、階層トップのクロック経路の製造ばらつきも考慮したタイミング調整を行うので、従来よりも適切に製造ばらつきを考慮した設計マージンを与えることができ、過剰な設計マージンによる回路最適化による消費電力増加、および、設計期間の増加を抑えることができ、あるいは、過小な設計マージンによるレイアウト設計後の後戻りを無くすことが可能である。
【００２７】
請求項７及び８記載の発明によれば、セル、配線ごとに詳細な製造ばらつきを考慮した設計マージンを与えることができ、過剰な設計マージンによる回路最適化による消費電力増加、および、設計期間の増加を抑えることができ、あるいは、過小な設計マージンによるレイアウト設計後の後戻りを無くすことが可能である。
【００２８】
請求項９記載の発明によれば、フロアプラン設計時のようなクロック回路構成が確定していない段階においても、従来よりも適切に製造ばらつきを考慮した設計マージンを与えることができ、階層ブロック設計時に、階層トップの製造ばらつきに対して設計マージンを考慮したクロック遅延に基づいてレイアウト設計を行うことが可能となり、過剰な設計マージンによる回路最適化による消費電力増加、および、設計期間の増加を抑えることができ、あるいは、過小な設計マージンによるレイアウト設計の後戻りを無くすことが可能である。
【発明を実施するための最良の形態】
【００２９】
（第１の実施の形態）
本発明の第１の実施の形態では、半導体集積回路の階層設計において、階層トップのクロック経路上の特性を考慮して、階層ブロック設計を行う方法について説明する。図１は、本実施の形態に係る半導体集積回路の設計方法を示すフローチャートである。図１に示す手順は、クロック回路構成が確定した後に実行される。
【００３０】
図１に示すステップＳ１００では、まず、設計すべき半導体集積回路から階層トップのクロック経路を抽出する（クロック経路抽出ステップ）。次に、ステップＳ１１０では、抽出した各クロック経路から、半導体集積回路内の階層ブロックに設けられたクロック入力端子のうち、任意のペアに対応するクロック分岐ポイントを求める（クロック分岐ポイント抽出ステップ）。次に、ステップＳ１２０では、ステップＳ１１０にて抽出されたクロック分岐ポイントから階層ブロックのクロック入力端子への遅延値を求める（遅延値算出ステップ）。ここで、本実施の形態では、クロック入力端子ペアごとに前記抽出されたクロック分岐ポイントに対応付けて遅延値が求められる。次に、ステップＳ１３０では、ステップＳ１２０で求めた遅延値のそれぞれに対して、クロック経路の特性に基づく製造ばらつきを考慮した設計マージンを与えてタイミング制約が作成される（タイミング制約作成ステップ）。次に、ステップＳ１４０では、ステップＳ１３０で作成したタイミング制約に従って、階層ブロック内のタイミング調整を行う（タイミング調整ステップ）。このように、タイミング調整ステップＳ１４０では、階層トップでの製造ばらつきを考慮したクロック遅延をステップＳ１３０で求めているため、階層トップの製造ばらつきを考慮したタイミング制約に基づいて、階層ブロック内でのクロック回路の調整、および、データパスのタイミング調整が行われる。
【００３１】
図２に示す半導体集積回路（半導体チップ）に、図１に示す手順を適用した場合の説明を行う。図２に示す半導体集積回路は、少なくとも１つの階層ブロックを備えており、図２では、このうちの１つを階層ブロック２０３として示している。階層トップ２０２内の階層ブロック２０３の境界上に、階層ブロックの複数のクロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３が設けられている。半導体集積回路のクロック入力端子２０１からクロック信号が供給され、クロック回路は、クロック配線２０７、２０８、及びクロック系路上のセル２０４Ｃ１、２０４Ｃ２、２０４Ｃ３等の構造要素とクロック分岐ポイント２０６Ｐ１、２０６Ｐ２とで構成されている。尚、クロック配線２０８は、クロック配線２０７より太幅の配線である。
【００３２】
ここで、クロック分岐ポイント２０６Ｐ１は、クロック入力端子２０５Ｔ１とクロック入力端子２０５Ｔ２又はクロック入力端子２０５Ｔ３とに分岐するポイントであり、クロック分岐ポイント２０６Ｐ２は、クロック入力端子２０５Ｔ２とクロック入力端子２０５Ｔ３とに分岐するポイントである。すなわち、クロック分岐ポイント２０６Ｐ１（一のクロック分岐ポイント）に対して、クロック入力端子２０５Ｔ１とクロック入力端子２０５Ｔ２とがペアになると共に、クロック入力端子２０５Ｔ１とクロック入力端子２０５Ｔ３とがペアになる。また、クロック分岐ポイント２０６Ｐ２（一のクロック分岐ポイント）に対しては、クロック入力端子２０５Ｔ２とクロック入力端子２０５Ｔ３とがペアになる。
【００３３】
図３は、ステップＳ１２０で求めた遅延値のデータの持たせ方を示している。本実施の形態では、図１の遅延値を求めるステップＳ１２０において、階層トップ２０２のクロック経路を抽出する処理によって、クロック経路上の構造要素の構造情報が算出される（構造情報算出ステップ）。すなわち、ステップＳ１２０にて、クロック経路上の構造要素の構造情報である配線の抵抗値、容量値、セルの種類が求められる。ここでは図示していないが、これらの構造情報はテーブル形式で保持される。
【００３４】
そして、同じステップＳ１２０において、クロック分岐ポイント２０６Ｐ１、２０６Ｐ２が求められる。これに続いて、前記求められた構造要素の構造情報を基に、クロック分岐ポイント２０６Ｐ１、２０６Ｐ２のそれぞれから階層ブロック２０３の各クロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３への遅延値がクロック入力端子ペアごとに求められる（遅延値換算ステップ）。ここで、前記ペアのクロック入力端子へ分岐する各々のクロック分岐ポイントから一方のクロック入力端子への遅延値が、ペアとなる他方のクロック入力端子と対応付けられる。そして、これら対応付けられた遅延値テーブルが、図３に示すテーブル形式の書式により、ライブラリあるいは制約情報としてデータベース上に作成される。
【００３５】
このとき、クロックの分岐ポイントを求めることによって、悲観性の排除を行なっている。たとえば、階層ブロック２０３の入力端子２０５Ｔ１と２０５Ｔ３とのペアにおいては、クロック分岐ポイントは２０６Ｐ１となる。ここで、半導体集積回路のクロック入力端子２０１からクロック分岐ポイント２０６Ｐ１までの経路は、階層クロックの入力端子２０５Ｔ１と階層クロックの入力端子２０５Ｔ３とに向かうそれぞれの経路に対して共通であるため、この部分に関する製造ばらつきによる遅延変動差は０となり、考慮から外しても問題ない。これにより、クロック分岐ポイントから２０６Ｐ１から階層クロックの入力端子２０５Ｔ１と、クロック分岐ポイントから２０６Ｐ１から階層クロックの入力端子２０５Ｔ３とに対してのみ、製造ばらつきによる遅延変動差を考慮すればよいことになる。
【００３６】
したがって、図３の３０１は、階層ブロック２０３のクロック入力端子２０５Ｔ１と２０５Ｔ３とをペアとしたときのクロック分岐ポイント２０６Ｐ１から、階層ブロック２０３のクロック入力端子２０５Ｔ１までの遅延値を示している。同様に、図３の３０２は、階層ブロックのクロック入力端子２０５Ｔ１及び２０５Ｔ３をペアとしたときのクロック分岐ポイント２０６Ｐ１から、階層ブロックのクロック入力端子２０５Ｔ３までの遅延値を示している。
【００３７】
尚、クロック入力端子２０５Ｔ１に対して、自身のクロック入力端子２０５Ｔ１をペアとして考えたような場合は、製造ばらつきによる遅延変動差が０になるため求める必要が無い。従って、図３の表において、同一クロック入力端子の組み合わせとなる欄の値は、対角線を引いて省略している。
【００３８】
次に、階層ブロック２０３内でタイミング調整を行うときは、図３の表を用いる。ここでは、具体例として、あるパスの送り手側のフリップフロップが階層ブロック２０３のクロック入力端子２０５Ｔ１からのクロックで動作し、受け手側のフリップフロップが同じ階層ブロック２０３のクロック入力端子２０５Ｔ３から入力されるクロックで動作する場合を考える。この場合、図３に示したように、クロック分岐ポイント２０６Ｐ１からクロック入力端子２０５Ｔ１への遅延値３０１は２．４、また、クロック分岐ポイント２０６Ｐ１からクロック入力端子２０５Ｔ３への遅延値３０２は２．５である。これら図３の表の遅延値３０１、３０２に対して製造ばらつきを考慮した設計マージンを与えることにより、階層ブロック２０３内でのクロックツリーの製造ばらつきに対する設計マージンだけでなく、階層トップ２０２の製造ばらつきに基づく設計マージンが、階層ブロック２０３内のタイミング調整に反映される。
【００３９】
たとえば、階層トップ２０２の製造ばらつきに基づく設計マージンを＋２０％とすると、この場合の製造ばらつきを考慮した設計マージンを含むそれぞれの遅延値２０５Ｔ１（２０５Ｔ３）及び２０５Ｔ３（２０５Ｔ１）は、
２０５Ｔ１（２０５Ｔ３）＝２．４＊１．２＝２．８８
２０５Ｔ３（２０５Ｔ１）＝２．５＊１．２＝３．００
となる（上式中の括弧内はペアのクロック入力端子を示している）。
【００４０】
尚、本実施の形態では、ステップＳ１００で階層トップ２０２のクロック経路が抽出され、ステップＳ１０２では、ステップＳ１００で抽出された抵抗値・容量値情報が遅延値へ換算され、クロック分岐ポイントから階層ブロック２０３の各クロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３への遅延値が、任意のクロック入力端子のペアごとに遅延値情報データとして保持されている。しかし、図３のように遅延値情報をデータとして持たせておくのではなく、クロック分岐ポイントから階層ブロック２０３の各クロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３までの抵抗値・容量値情報をテーブル形式のデータとして持たせておき、製造ばらつきに対する設計マージンを考慮した遅延値を求める段階で、前記テーブルを用いて遅延値を計算してもよい。このように、抵抗値・容量値情報をテーブル形式のデータとして持たせておくことにより、抵抗値や容量値等の値が置き換わったときに柔軟且つ適切に対応可能となる。
【００４１】
あるいは、クロック分岐ポイントからではなく半導体集積回路のクロック入力端子２０１から階層ブロック２０３の各クロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３までの遅延値が保持されていてもよい。
【００４２】
更には、遅延値テーブルに製造ばらつきを考慮した設計マージンを掛けたものが新たな遅延テーブルとして作成されてもよい。
【００４３】
このように、第１の実施の形態により、半導体集積回路のクロック入力端子２０１から階層ブロック２０３の各クロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３までの遅延値に対して製造ばらつきを考慮した設計マージンを掛けることで、従来よりも精度よく製造ばらつきによる影響を反映し、階層ブロック２０３内のタイミング調整を行なうことが可能となる。
【００４４】
（第２の実施の形態）
次に、図４及び図５を用いて、本発明の第２の実施の形態について説明を行う。
【００４５】
本実施の形態では、第１の実施の形態と同様に遅延値テーブルを作成する際、各遅延値を、セルおよび配線ごとに分けて作成することを特徴としたものである。
【００４６】
図４は、クロック分岐ポイントから階層ブロック２０３の各クロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３への遅延値を、クロック経路上の構造要素であるセル及び配線に対して、セル遅延と配線遅延とにデータを分けて作成した場合を示している。このように、本実施の形態では、遅延値を求めるステップＳ１２０は、クロック分岐ポイントを抽出するステップＳ１１０において求めたクロック分岐ポイントから、階層ブロック２０３の各々のクロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３までの遅延値を、セル及び配線（クロック経路上の構造要素）に対してセル遅延と配線遅延とに分けて求めるステップ（遅延値分類ステップ）を含む。
【００４７】
たとえば、セル遅延に対する製造ばらつきを考慮した設計マージンを＋２０％、配線遅延に対する製造ばらつきを考慮した設計マージンを＋１０％とすると、この場合の製造ばらつきに対する設計マージンを考慮した各遅延値２０５Ｔ１（２０５Ｔ３）、２０５Ｔ３（２０５Ｔ１）は、セル遅延に対して１．２を、また、配線遅延に１．１を掛けて、
２０５Ｔ１(２０５Ｔ３)=１.８*１.２+０.６*１.１=２.８２
２０５Ｔ３(２０５Ｔ１)=１.７*１.２+０.８*１.１=２.９２
となる（上式中の括弧内はペアのクロック入力端子を示している）。
【００４８】
これにより、セル遅延と配線遅延とに対して、製造ばらつきを考慮した設計マージンを別々に与えることが可能となり、より精度よく製造ばらつきを反映したタイミング調整が可能となる。
【００４９】
また第１の変形例として、前記セル遅延と前記配線遅延とを別々に持つ遅延値テーブルに対して、セルの種類と配線の種類とを別々に持つ遅延テーブルを持つように作成する。
【００５０】
図５は、ステップＳ１２０において、更に詳細に、セルの種類ごとに遅延値を求め、同じセルの種類の遅延値は足し合わせて記載し、また、配線の種類ごとに遅延値を求め、同じ配線の種類の遅延値は足し合わせて記載する（遅延値分類ステップ）。また、クロック経路上の構成に使用されている全セルの種類、全配線の種類を記載するため、セルの遅延、および、配線の遅延の行は可変である。
【００５１】
たとえば、セル２０４Ｃ１のセル遅延に対する製造ばらつきを考慮した設計マージンを＋２０％、セル２０４Ｃ３のセル遅延に対する製造ばらつきを考慮した設計マージンを＋１５％、太幅のクロック配線２０８の配線遅延に対する製造ばらつきを考慮した設計マージンを＋１０％、通常幅のクロック配線２０７の配線遅延に対する製造ばらつきを考慮した設計マージンを＋５％とすると、この場合の全製造ばらつきに対する設計マージンを考慮した各遅延値２０５Ｔ１（２０５Ｔ３）、２０５Ｔ３（２０５Ｔ１）は、
２０５Ｔ１(２０５Ｔ３)=１.８*１.２  +０.０５*１.１+０.５５*１.０５=２.７９２５
２０５Ｔ３(２０５Ｔ１)=１.７*１.１５+０.７５*１.１+０.０５*１.０５=２.８３２５
となる（上式中の括弧内はペアのクロック入力端子を示している）。
【００５２】
これにより、セルの種類および配線の種類ごとに、製造ばらつきを考慮した設計マージンを詳細に与えることが可能となり、より精度良く製造ばらつきを考慮した設計マージンを与えることが可能となる。
【００５３】
上述した以外にも、クロック経路の特性として、クロック経路上に存在する配線のピッチやシールドの有無などを考慮してもよい。また、求めたクロック経路の特性に基づき、いかなる方法で製造ばらつきを考慮して設計マージンを求めるかは任意である。
【００５４】
このように、第２の実施の形態により、半導体集積回路のクロック入力端子２０１から階層ブロック２０３の各クロック入力端子２０５Ｔ１、２０５Ｔ２、２０５Ｔ３までの遅延値に対して製造ばらつきを考慮した設計マージンを掛けることにより、セル、配線ごとに詳細な製造ばらつきを反映した階層ブロック２０３内のタイミング調整を行なうことができる。
【００５５】
（第３の実施の形態）
次に、図６のフローチャート図及び図７の半導体集積回路の構成図を用いて、第３の実施の形態について説明を行う。
【００５６】
本実施の形態では、半導体集積回路の階層設計において階層トップのクロック経路推定を行い、階層ブロック設計を行う方法について説明する。
【００５７】
図６は、本実施の形態に係る半導体集積回路の設計方法を示すフローチャートである。図６に示す手順は、フロアプラン段階のようなクロック回路構成が確定していない段階に対して実行される。
【００５８】
図６に示す手順では、まず、ステップＳ６００において、設計すべき半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への距離を推定し、その値を求める（推定距離算出ステップ）。次に、ステップ６１０では、ステップＳ６００において求めた推定距離を遅延値に換算し、半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子への遅延値を求める（遅延値換算ステップ）。次に、ステップＳ６２０では、ステップ６１０において求めた遅延値を用いて、製造ばらつきを考慮した設計マージンを与えて、タイミング制約を作成する（タイミング制約作成ステップ）。そして、ステップＳ６３０では、ステップＳ６２０において作成したタイミング制約にしたがって、階層ブロック内のタイミング調整を行う（タイミング制約作成ステップ）。
【００５９】
このように、階層トップにおける半導体集積回路のクロック入力端子から階層ブロックのクロック入力端子までの推定距離のみに基づいて遅延値を換算し、この遅延値に対して、階層トップでの製造ばらつきを考慮した推定クロック遅延を用いて、ステップＳ６３０のタイミング調整が行われるので、階層トップのレイアウトが完了していない段階においても、精度の高いクロック回路の調整及びデータ間のタイミング調整を行うことが可能となる。
【００６０】
次に、図７に示す半導体集積回路の構成図を用いて、図６に示す手順を適用した場合の半導体集積回路の設計方法の説明を行う。
【００６１】
図７に示す半導体集積回路は、階層ブロック７０２内に１つの階層ブロック７０３を有している。この階層ブロック７０３の境界上には、階層ブロック７０３のクロック入力端子７０４Ｔ１、７０４Ｔ２、７０４Ｔ３があり、半導体集積回路のクロック入力端子７０１から供給されるクロック信号を受けている。ここで、７０５は、階層トップのレイアウトが完了していない段階の推定クロック経路を示している。
【００６２】
上記説明したステップＳ６００では、階層トップ７０２において、半導体集積回路のクロック入力端子７０１から階層ブロック７０３の各クロック入力端子７０４Ｔ１、７０４Ｔ２、７０４Ｔ３への距離、およびクロック分岐ポイントを求める。距離の求め方としては、特に限定はしないが以下の方法がある。距離が最短になるように、垂直方向と水平方向だけの線分を用いて２点間の距離を求め、直交スタイナ配線を用いて距離を求めることができる。また、配線混雑度や配線禁止領域などを考慮して推定距離を求めてもよい。前記手法で推定距離を求めたときの、半導体集積回路のクロック入力端子７０１から階層ブロック７０３のクロック入力端子７０４Ｔ１への距離を２．１ｍｍ、クロック入力端子７０４Ｔ２への距離を１．９ｍｍ、クロック入力端子７０４Ｔ３への距離を２．３ｍｍとする。
【００６３】
次に、ステップ６１０において、前記求めた距離を基に遅延値へ換算する処理を行う。遅延値への換算方法は特に限定はしないが、たとえば以下の方法がある。過去の統計的な数値から距離に応じた図８のような距離−遅延値テーブルを作成しておく。これを用いると、半導体集積回路のクロック入力端子７０１から階層ブロック７０３のクロック入力端子７０４Ｔ１への遅延値は２．２、クロック入力端子７０４Ｔ２への遅延値は２．０、クロック入力端子７０４Ｔ３への遅延値は２．４となる。
【００６４】
このようにステップＳ６１０で求められた遅延値に対して、ステップＳ６２０では、第１の実施の形態のＳ１３０と同様に製造ばらつきを考慮した設計マージンを与えてタイミング制約を作成し、この作成したタイミング制約に従って、続くステップＳ６３０において階層ブロック７０３内のタイミング調整を行う。
【００６５】
上述の説明以外にも、クロック経路の特性として、クロック経路上に存在する配線のピッチやシールドの有無などを考慮してもよい。また、求めたクロック経路の特性に基づき、いかなる方法で製造ばらつきを考慮した設計マージンを求めるかは任意である。これら各変形例に係る半導体集積回路の設計方法は、いずれも、図６に示す設計方法と同様の効果を奏する。
【００６６】
このように、第３の実施の形態により、フロアプラン段階のクロックツリー構成が確定していない場合でも、すなわち、階層トップのレイアウトが完了していない段階においても、半導体集積回路のクロック入力端子７０１から階層ブロック７０３の各クロック入力端子７０４Ｔ１、７０４Ｔ２、７０４Ｔ３までの推定遅延値に対して、製造ばらつきを考慮した設計マージンを含む係数を掛けることで、階層トップの製造ばらつきを反映した階層ブロック内のタイミング調整を可能とし、従来よりも高精度に半導体集積回路の設計を行うことができる。
【産業上の利用可能性】
【００６７】
本発明は、過剰な設計マージンによる回路最適化による消費電力の増加、及び設計期間の増加を抑え、また、設計マージンによるレイアウト設計後の後戻りを無くすことができるので、種々の半導体集積回路の設計において適用可能であり、特にクロック信号に同期して動作する半導体集積回路に有用である。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施の形態に係る半導体集積回路の設計方法を示すフローチャート図である。
【図２】本発明の第１の実施の形態に係る半導体集積回路の構成を示す図である。
【図３】本発明の第１の実施の形態に係る半導体集積回路の設計方法によって作成する遅延値情報テーブルの図である。
【図４】本発明の第２の実施の形態に係る半導体集積回路の設計方法によって作成する、セル及び配線に対する遅延値情報テーブルの図である。
【図５】本発明の第２の実施の形態に係る半導体集積回路の設計方法によって作成する、複数のセル及び配線ごとに分類した遅延値情報テーブルの図である。
【図６】本発明の第３の実施の形態に係る半導体集積回路の設計方法を示すフローチャート図である。
【図７】本発明の第３の実施の形態に係る半導体集積回路の構成を示す図である。
【図８】本発明の第３の実施の形態に係る半導体集積回路の設計方法によって作成する遅延値情報テーブルの図である。
【符号の説明】
【００６９】
２０１、７０１            半導体集積回路のクロック入力端子
２０２、７０２            階層トップ
２０３、７０３            階層ブロック
２０４Ｃ１、２０４Ｃ２、
２０４Ｃ３                基本セル
２０５Ｔ１、２０５Ｔ２、
２０５Ｔ３、７０４Ｔ１、
７０４Ｔ２、７０４Ｔ３    階層ブロックのクロック入力端子
２０６Ｐ１、２０６Ｐ２    クロックツリーのクロック分岐ポイント
２０７                    通常幅のクロック配線
２０８                    太幅のクロック配線
７０５                    推定クロック経路
Ｓ１００                  クロック経路抽出ステップ
Ｓ１１０                  クロック分岐ポイント抽出ステップ
Ｓ１２０                  遅延値算出ステップ
Ｓ１３０、Ｓ６２０        タイミング制約作成ステップ
Ｓ１４０、Ｓ６３０        タイミング調整ステップ
Ｓ６００                  推定距離算出ステップ
Ｓ６１０                  遅延値換算ステップ
【図１】
2006324578.tif 000003
【図２】
2006324578.tif 000004
【図３】
2006324578.tif 000005
【図４】
2006324578.tif 000006
【図５】
2006324578.tif 000007
【図６】
2006324578.tif 000008
【図７】
2006324578.tif 000009
【図８】
2006324578.tif 000010