(57)【要約】【課題】半導体集積回路におけるばらつきを考慮したタイミング検証の信頼性を向上できるようにする。【解決手段】工程Ｓ１，Ｓ２において、複数のクロック出力端子対同士の間における統計的クロックスキューの不均一性を算出する。続いて、工程Ｓ３において、各統計的クロックスキューを持つクロック出力端子対によって駆動される部分回路を集積回路から抽出する。続いて、工程Ｓ４において、抽出された部分回路に含まれる信号パスの第１の統計的タイミング特性から部分回路のなかの最大値である第２の統計的タイミング特性を取得する。続いて、工程Ｓ５において、各統計的クロックスキューと対応する第２の統計的タイミング特性とを用いて集積回路のタイミング検証を行なう。【選択図】図１
2007095028.tif 000002
【特許請求の範囲】
【請求項１】
複数のクロック信号を出力可能なクロック回路と、該クロック回路から出力される前記複数のクロック信号のうちのいずれかが供給される複数の信号パスを含む集積回路とを有する半導体集積回路における前記クロック信号のばらつきを考慮した半導体集積回路のタイミング検証方法であって、
前記複数のクロック信号のうちの任意のクロック信号対ごとに、該クロック信号対の間に生じるクロックスキューを統計的に算出することにより、複数の統計的クロックスキューを取得する工程（ａ）と、
取得した前記複数の統計的クロックスキューのうちの一の統計的クロックスキューが生じるクロック信号対によって駆動される部分回路を前記集積回路から抽出する工程（ｂ）と、
抽出された前記部分回路に含まれる信号パスにおける第１の統計的タイミング特性を算出する工程（ｃ）と、
算出された前記第１の統計的タイミング特性から、その最大値及び最小値の少なくとも一方を第２の統計的タイミング特性として取得する工程（ｄ）と、
取得した前記第２の統計的タイミング特性を用いて、前記部分回路に含まれる信号パスにおけるタイミング検証を行なう工程（ｅ）とを備えていることを特徴とする半導体集積回路のタイミング検証方法。
【請求項２】
前記工程（ｃ）において、前記第１の統計的タイミング特性には前記信号パスごとの遅延確率分布を用い、
前記工程（ｄ）において、前記第２の統計的タイミング特性には前記部分回路に含まれる信号パス全体の最大遅延確率分布を用い、
前記工程（ｅ）において、前記最大遅延確率分布を用いることにより、前記部分回路におけるセットアップタイム余裕又はホールドタイム余裕のタイミング検証を行なうことを特徴とする請求項１に記載の半導体集積回路のタイミング検証方法。
【請求項３】
前記工程（ｃ）において、前記第１の統計的タイミング特性には前記信号パスごとの遅延確率分布を用い、
前記工程（ｄ）において、前記第２の統計的タイミング特性には前記部分回路に含まれる信号パス全体の最小遅延確率分布を用い、
前記工程（ｅ）において、前記最小遅延確率分布を用いることにより、前記部分回路におけるセットアップタイム余裕又はホールドタイム余裕のタイミング検証を行なうことを特徴とする請求項１に記載の半導体集積回路のタイミング検証方法。
【請求項４】
前記工程（ｂ）において、前記任意のクロック信号対の間に生じる統計的クロックスキュー値が同一又は同等で且つ互いの相関係数がほぼ１である場合に、前記統計的クロックスキュー値が同一又は同等のクロック信号対と接続される複数の部分回路をまとめて抽出することを特徴とする請求項１に記載の半導体集積回路のタイミング検証方法。
【請求項５】
前記工程（ｂ）において、前記各信号パスにおける遅延と前記各信号パスにおけるゲートの段数とに制約を設け、該制約を満たす信号パスを含む部分回路を前記集積回路から抽出することを特徴とする請求項１に記載の半導体集積回路のタイミング検証方法。
【請求項６】
前記工程（ａ）よりも前に、前記複数のクロック信号における各信号波形のばらつきを求める工程（ｆ）をさらに備え、
前記工程（ｃ）において、前記第１の統計的タイミング特性を、前記各クロック信号における信号波形のばらつきを反映させた状態で算出することを特徴とする請求項１に記載の半導体集積回路のタイミング検証方法。
【請求項７】
前記工程（ａ）において、前記統計的クロックスキューは、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を考慮して算出することを特徴とする請求項１に記載の半導体集積回路のタイミング検証方法。
【請求項８】
前記工程（ａ）は、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を係数として求める工程と、求めた係数を前記統計的クロックスキューに乗じる工程とを含むことを特徴とする請求項７に記載の半導体集積回路のタイミング検証方法。
【請求項９】
前記工程（ｃ）において、前記第１の統計的タイミング特性は、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を考慮して算出することを特徴とする請求項１に記載の半導体集積回路のタイミング検証方法。
【請求項１０】
前記工程（ｃ）は、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を係数として求める工程を含み、
前記工程（ｄ）は、前記係数を前記第２の統計的タイミング特性に乗じる工程を含むことを特徴とする請求項９に記載の半導体集積回路のタイミング検証方法。
【請求項１１】
複数のクロック信号を出力可能なクロック回路と、該クロック回路から出力される前記複数のクロック信号のうちのいずれかが供給される複数の信号パスを含む集積回路とを有する半導体集積回路における前記クロック信号のばらつきを考慮した半導体集積回路のタイミング検証方法であって、
前記クロックツリー回路における回路トポロジに基づいて、予想されるクロックスキューの種類を特定し、特定したクロックスキューを持つクロック信号対ごとにクロックスキューを対応付けるクロックスキュー分類工程（ａ）と、
前記クロックスキューの種類ごとにクロックスキューの確率分布を統計的に算出するクロックスキュー分布算出工程（ｂ）と、
前記クロックスキューの確率分布の種類ごとに前記クロック信号対により駆動される信号パスを前記集積回路から部分回路として抽出し分類する信号パス分類工程（ｃ）と、
抽出された部分回路ごとに、前記部分回路に含まれるすべての信号パスの遅延の確率分布を算出する信号パス群遅延分布算出工程（ｄ）と、
前記部分回路に含まれるすべての信号パスの遅延の確率分布のうち最大遅延及び最小遅延の少なくとも一方と前記クロックスキューの確率分布とによってタイミング検証を行なうタイミング検証工程（ｅ）とを備えていることを特徴とする半導体集積回路のタイミング検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、特にＬＳＩ（Ｌａｒｇｅ Ｓｃａｌｅ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ)等の設計を行なう際に、製造上のばらつきに起因する集積回路のタイミング特性のばらつきを評価するタイミング検証方法及びその検証装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩの製造技術の発達と共に、トランジスタの微細化が進展し、その集積度が急速に向上してきたため、例えばＣＭＩＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ Ｍｅｔａｌ Ｉｎｓｕｌａｔｏｒ Ｓｅｍｉｃｏｎｄｕｃｔｏｒ)半導体集積回路には種々多様な機能を組み込むことができるようになってきている。
【０００３】
ＬＳＩは種々の回路特性の仕様を満たすように設計され、とりわけ回路のタイミング設計には注意が払われる。信号が回路を伝わる際には一般に信号の伝搬遅延が生じ、タイミング設計はこの伝搬遅延が仕様の範囲内に収まるように設計する。通常、このタイミング設計時に信号のタイミング検証が行なわれる。
【０００４】
タイミング検証は、回路のタイミング特性（遅延特性）をコンピュータのソフトウエア上で仮想的に再現する技術であり、回路設計時に動作確認等の目的で広く用いられている。数あるなかの代表的なタイミング検証ソフトウエアには、米国Ｓｙｎｏｐｓｙｓ社のＰｒｉｍｅＴｉｍｅ等が知られており、このタイミング検証ソフトウエアにより、クロック回路と該クロック回路により駆動される回路との両者のタイミング特性が評価される。
【０００５】
ところで、回路設計は、回路がその回路特性に影響を与える種々の変動要因を受けたとしても、該回路が正常に動作するように設計される。このとき考慮すべき要因はさまざまであり、製造時のばらつき及びゆらぎもその要因となる。製造ばらつきには、例えば、リソグラフィ工程又は研磨工程で生じる加工寸法のばらつきや、拡散領域におけるドーパント密度の粗密等のばらつきがある。製造ばらつきが生じると、回路中のトランジスタ及び配線の電気的特性も変動するため、トランジスタ及び配線から構成されるＬＳＩの回路特性も変動する。このように、ＬＳＩの設計は、微細化が急速に進むなか、製造ばらつきの回路特性への影響がますます顕著となってきている。
【０００６】
クロック信号はＬＳＩの内部動作を同期させる重要な信号であり、該クロック信号を供給するクロック回路のタイミング設計には細心の注意が払われる。
【０００７】
図１４に従来のクロックツリー回路の一例を示す。入力端子Ｉからクロック木（ツリー）と呼ばれる複数の回路セル（バッファ）Ｃ１，Ｃ２，…，Ｃ７を経由して、各出力端子Ｏ１〜Ｏ４にそれぞれクロック信号が供給される。通常、各出力端子Ｏ１〜Ｏ４はフリップフロップ回路ＦＦ１〜ＦＦ４と接続される。クロック信号には、該クロック信号が入力端子Ｉから各出力端子Ｏ１〜Ｏ４に到達するまでの間、すなわち回路セルＣ１〜Ｃ７及び配線を通過する際に遅延が生じる。このときの各出力端子Ｏ１〜Ｏ４間に生じる遅延差がクロックスキュー（以下、単にスキューと称す。）である。
【０００８】
図１５は従来のクロックツリー回路及びフリップフロップ回路に、信号パスを含めた回路の接続構成を示す。
【０００９】
タイミング検証においては、下記の式（１）と式（２）との関係が検証される。
【００１０】
Ｔpath(max)＋Ｔskew＋Ｔsetup  ≦  Ｔcycle  …（１）
Ｔpath(min)−Ｔskew  ≧  Ｔhold            …（２）
式（１）に示すセットアップタイム側においては、最大信号パス遅延Ｔpath(max)にスキューＴskew及びセットアップタイムＴsetupを加えた値がクロック周期Ｔcycleに収まるか否かを信号パスごとに検証する。ここでは、これをセットアップタイム余裕の検証と呼ぶ。セットアップタイム側について、最小信号パス遅延を用いることもできるが、一般に問題視されやすい最大信号パス遅延を用いるセットアップタイム余裕検証について、以後言及する。
【００１１】
一方、式（２）に示すホールドタイム側においては、最小信号パス遅延Ｔpath(min)からスキューＴskewを差し引いた値がホールドタイムＴhold以上であるか否かを信号パスごとに検証する。ここでは、これをホールドタイム余裕の検証と呼ぶ。ホールドタイム側について最大信号パス遅延を用いることもできるが、一般に問題視されやすい最小信号パス遅延を用いるホールドタイム余裕検証について、以後言及する。セットアップタイムとは、各フリップフロップ回路ＦＦ１〜ＦＦ４がクロック信号のエッジに同期して入力信号を取り込めるように、該エッジの時刻よりも一定時間以上前に入力信号の値を決定するのに必要な時間をいう。また、ホールドタイムとは、入力信号を保持できるように、クロック信号のエッジの時刻よりも一定時間以上入力信号の値が変化しない時間をいう。
【００１２】
スキューが大きいと回路の誤動作を起こす原因となることから、設計マージンとしてスキューの許容範囲を設定しておき、設計時にその許容範囲を満たすか否かを検証することがタイミング設計工程で行なわれる。クロック信号経路の遅延値を各クロックの出力端子ごとに求め、求めた遅延同士の差をクロック出力端子対ごとにスキューとして計算し、計算されたスキューが許容範囲に収まっているか、すなわち最大スキューが許容範囲にあるか否かを確認するという方法が採られる。
【００１３】
ところで、スキューは製造ばらつきによって変動する。製造ばらつきは、チップ間ばらつき成分とチップ内ばらつき成分とに大別される。スキューは２つの信号経路の遅延の差で計算されることから、チップ間ばらつき成分は、ばらつきがチップ内で一様であると仮定するとスキュー変動への影響は大きくない。これに対し、１つのチップにおけるチップ内ばらつき成分は、チップ内の２つの信号経路に対して異なるばらつきを生じさせ、結果的にスキューも増減することから、タイミング検証時に十分に考慮する必要がある。
【００１４】
そこで、ばらつきがない状態を想定した遅延を経路ごとに求めておき、対をなす経路ごとの遅延に異なった係数を乗じてチップ内ばらつきを想定したスキューを作成し、それを用いたタイミング検証が行なわれている。
【００１５】
また、例えば下記に挙げる特許文献１及び２の技術も知られている。
【００１６】
特許文献１は、クロックツリー回路のスキューを求める場合に、クロック出力端子からツリーの上流方向に遡って、ツリーが合流するノードからクロック出力端子までの遅延時間に製造ばらつきを考慮してスキューを求め、それをタイミング検証に用いている。
【００１７】
特許文献２は、信号パスの遅延を計算する際に、チップ内ばらつきがパスに沿って減衰する効果を考慮している。
【００１８】
なお、製造ばらつきの影響を受けるのはクロックスキューだけではなく、信号パス遅延も同様である。この場合の、信号パス遅延を求める方法には、下記の式（３）及び式（４）の方法がある。
【００１９】
Ｔpath  ＝Σ（ｔtyp・Ｋp）        …（３）
Ｔpath  ＝Σ（ｔmax）             …（４）
式（３）は、製造ばらつきがない状態を想定した回路セル及び配線の遅延要素ｔtypを求めておき、製造ばらつきを想定した係数Ｋpを遅延要素に乗じることにより、信号パスの最大遅延及び最小遅延を得る方法である。
【００２０】
式（４）は、あらかじめ製造ばらつきを考慮した最大遅延要素ｔmaxを求めておき、それらの和から最大信号パス遅延を求める方法である。最小信号パス遅延についても同様に求めることができる。
【００２１】
また、例えば下記に挙げる非特許文献１のような技術も知られている。チップには通常多くの信号パスがあり、なかでもタイミング余裕が厳しいクリティカルパス群が性能を決定する。非特許文献１は、上記の式（３）及び式（４）のように、信号パス遅延をパス単位で扱うのではなく、チップにおけるクリティカルパス群を扱うことにより、チップ内ばらつきの影響を考えた場合のチップ全体での最大遅延を統計的に求めている。
【特許文献１】特許第２９６７７５９号公報
【特許文献２】国際公開第２００３／０６０７７６号パンフレット
【特許文献３】特開２００５−２５９１０７号公報
【非特許文献１】Ｋ．Ａ．Ｂｏｗｍａｎ ａｎｄ Ｊ．Ｄ．Ｍｅｉｎｄｌ,“Ｉｍｐａｃｔ ｏｆ Ｗｉｔｈｉｎ-Ｄｉｅ Ｐａｒａｍｅｔｅｒ Ｆｌｕｃｔｕａｔｉｏｎｓ ｏｎ Ｆｕｔｕｒｅ Ｍａｘｉｍｕｍ Ｃｌｏｃｋ Ｆｒｅｑｕｅｎｃｙ Ｄｉｓｔｒｉｂｕｔｉｏｎｓ，” Ｃｕｓｔｏｍ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔｓ Ｃｏｎｆｅｒｅｎｃｅ（２００１）
【発明の開示】
【発明が解決しようとする課題】
【００２２】
しかしながら、特許文献１には、クロックツリーのスキューを、チップ内ばらつきを考慮して算出する工程は含まれているものの、その開示されている算出方法はチップ内ばらつきを表わす係数を遅延に乗じるという近似的手法であり、クロック信号経路の遅延も算出後のスキューもいずれも統計量としては扱われていない。このため、製造ばらつきのスキューへの影響を限定的に評価できるに過ぎない。また、クロックツリー以外の信号パスの遅延自体も統計的には扱っていない。製造ばらつきは統計的に表わされるため、影響を受ける遅延もスキューも統計量として適切に扱うことが望ましい。
【００２３】
特許文献２は、チップ内ばらつきがパスに沿って平均化され減衰する効果は扱われてはいるものの、クロックスキュー等の遅延差を考える場合に重要となるパス遅延の相関関係が考慮されていない。
【００２４】
非特許文献１は、複数の信号パスを含むチップ回路の全体を代表する遅延を、チップ内ばらつきを考慮して統計的且つ解析的に求める手法は含まれているものの、クロックスキューの特徴まで考慮する方法は示されていない。
【００２５】
このように、信頼性が高いタイミング検証の要求が高いにも拘わらず、前記従来の方法はいずれも適切なタイミング検証の実現が困難であり、信頼性が低いという問題がある。
【００２６】
本発明は、前記従来の問題に鑑み、半導体集積回路におけるばらつきを考慮したタイミング検証の信頼性を向上できるようにすることを目的とする。
【課題を解決するための手段】
【００２７】
前記の目的を達成するため、本発明は、半導体集積回路のタイミング検証方法を、製造ばらつきに起因するクロックスキューと信号パス遅延との双方のばらつきを統計的に考慮する構成とする。
【００２８】
具体的に、本発明に係る第１の半導体集積回路のタイミング検証方法は、複数のクロック信号を出力可能なクロック回路と、該クロック回路から出力される複数のクロック信号のうちのいずれかが供給される複数の信号パスを含む集積回路とを有する半導体集積回路におけるクロック信号のばらつきを考慮した半導体集積回路のタイミング検証方法を対象とし、複数のクロック信号のうちの任意のクロック信号対ごとに、該クロック信号対の間に生じるクロックスキューを統計的に算出することにより、複数の統計的クロックスキューを取得する工程（ａ）と、取得した複数の統計的クロックスキューのうちの一の統計的クロックスキューが生じるクロック信号対によって駆動される部分回路を集積回路から抽出する工程（ｂ）と、抽出された部分回路に含まれる信号パスにおける第１の統計的タイミング特性を算出する工程（ｃ）と、算出された第１のタイミング特性から、その最大値及び最小値の少なくとも一方を第２の統計的タイミング特性として取得する工程（ｄ）と、取得した第２の統計的タイミング特性を用いて、部分回路に含まれる信号パスにおけるタイミング検証を行なう工程（ｅ）とを備えていることを特徴とする。
【００２９】
第１の半導体集積回路のタイミング検証方法によると、複数の統計的クロックスキューを取得した後、取得した複数の統計的クロックスキューのうちの一の統計的クロックスキューが生じるクロック信号対によって駆動される部分回路を集積回路から抽出する。その後、抽出された部分回路に含まれる信号パスにおける第１の統計的タイミング特性を算出し、算出された第１のタイミング特性から、その最大値及び最小値の少なくとも一方を第２の統計的タイミング特性として取得する。この第２の統計的タイミング特性を用いて部分回路に含まれる信号パスのタイミング検証を行なうため、ばらつきを考慮した信頼性が高いタイミング検証を行なうことができる。
【００３０】
第１の半導体集積回路のタイミング検証方法は、工程（ｃ）において、第１の統計的タイミング特性には信号パスごとの遅延確率分布を用い、工程（ｄ）において、第２の統計的タイミング特性には部分回路に含まれる信号パス全体の最大遅延確率分布を用い、工程（ｅ）において、最大遅延確率分布を用いることにより、部分回路におけるセットアップタイム余裕又はホールドタイム余裕のタイミング検証を行なうことが好ましい。
【００３１】
また、第１の半導体集積回路のタイミング検証方法は、工程（ｃ）において、第１の統計的タイミング特性には信号パスごとの遅延確率分布を用い、工程（ｄ）において、第２の統計的タイミング特性には部分回路に含まれる信号パス全体の最小遅延確率分布を用い、工程（ｅ）において、最小遅延確率分布を用いることにより、部分回路におけるセットアップタイム余裕又はホールドタイム余裕のタイミング検証を行なうことが好ましい。
【００３２】
第１の半導体集積回路のタイミング検証方法は、工程（ｂ）において、任意のクロック信号対の間に生じる統計的クロックスキュー値が同一又は同等で且つ互いの相関係数がほぼ１である場合に、統計的クロックスキュー値が同一又は同等のクロック信号対と接続される複数の部分回路をまとめて抽出することが好ましい。
【００３３】
第１の半導体集積回路のタイミング検証方法は、工程（ｂ）において、各信号パスにおける遅延と各信号パスにおけるゲートの段数とに制約を設け、該制約を満たす信号パスを含む部分回路を集積回路から抽出することが好ましい。
【００３４】
第１の半導体集積回路のタイミング検証方法は、工程（ａ）よりも前に、複数のクロック信号における各信号波形のばらつきを求める工程（ｆ）をさらに備え、工程（ｃ）において、第１の統計的タイミング特性を、各クロック信号における信号波形のばらつきを反映させた状態で算出することが好ましい。
【００３５】
第１の半導体集積回路のタイミング検証方法は、工程（ａ）において、統計的クロックスキューは、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を考慮して算出することが好ましい。
【００３６】
第１の半導体集積回路のタイミング検証方法において、工程（ａ）は、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を係数として求める工程と、求めた係数を統計的クロックスキューに乗じる工程とを含むことが好ましい。
【００３７】
第１の半導体集積回路のタイミング検証方法は、工程（ｃ）において、第１の統計的タイミング特性は、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を考慮して算出することが好ましい。
【００３８】
第１の半導体集積回路のタイミング検証方法において、工程（ｃ）は、製造ばらつき、電圧ばらつき及び温度ばらつきのうちの少なくとも１つの要因を係数として求める工程を含み、工程（ｄ）は、係数を第２の統計的タイミング特性に乗じる工程を含むことが好ましい。
【００３９】
本発明に係る第２の半導体集積回路のタイミング検証方法は、複数のクロック信号を出力可能なクロック回路と、該クロック回路から出力される複数のクロック信号のうちのいずれかが供給される複数の信号パスを含む集積回路とを有する半導体集積回路におけるクロック信号のばらつきを考慮した半導体集積回路のタイミング検証方法を対象とし、クロックツリー回路における回路トポロジ（接続形態）に基づいて、予想されるクロックスキューの種類を特定し、特定したクロックスキューを持つクロック信号対ごとにクロックスキューを対応付けるクロックスキュー分類工程（ａ）と、クロックスキューの種類ごとにクロックスキューの確率分布を統計的に算出するクロックスキュー分布算出工程（ｂ）と、クロックスキューの確率分布の種類ごとにクロック信号対により駆動される信号パスを集積回路から部分回路として抽出し分類する信号パス分類工程（ｃ）と、抽出された部分回路ごとに、部分回路に含まれるすべての信号パスの遅延の確率分布を算出する信号パス群遅延分布算出工程（ｄ）と、部分回路に含まれるすべての信号パスの遅延の確率分布のうち最大遅延及び最小遅延の少なくとも一方とクロックスキューの確率分布とによってタイミング検証を行なうタイミング検証工程（ｅ）とを備えていることを特徴とする。
【００４０】
第２の半導体集積回路のタイミング検証方法によると、クロックスキューの種類ごとにクロックスキューの確率分布を統計的に算出し、その後、クロックスキューの確率分布の種類ごとにクロック信号対により駆動される信号パスを集積回路から部分回路として抽出して分類する。続いて、抽出された部分回路ごとに、部分回路に含まれるすべての信号パスの遅延の確率分布を算出し、部分回路に含まれるすべての信号パスの遅延の確率分布のうちの最大遅延及び最小遅延の少なくとも一方とクロックスキューの確率分布とによってタイミング検証を行なう。これにより、ばらつきを考慮した信頼性が高いタイミング検証を行なうことができる。
【発明の効果】
【００４１】
本発明に係る半導体集積回路のタイミング検証方法によると、異なるスキュー分布ごとに対象となる信号パス（部分回路）を抽出し、抽出した信号パス（部分回路）の最大遅延又は最小遅延を統計的に求めてタイミング検証を行なうことができ、ばらつきを考慮した信頼性が高いタイミング検証を行なうことができる。
【発明を実施するための最良の形態】
【００４２】
（第１の実施形態）
本発明の第１の実施形態に係るタイミング検証方法について図面を参照しながら説明する。
【００４３】
図１は本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法の工程フローを示しており、クロックスキュー分類工程Ｓ１、クロックスキュー分布算出工程Ｓ２、信号パス分類工程Ｓ３、信号パス群遅延分布算出工程Ｓ４及びタイミング検証工程Ｓ５を含んでいる。
【００４４】
（クロックスキュー分類工程Ｓ１）
最初に、単純なモデルを用いてスキューを統計量で扱う考え方と、スキューの分布に差が生じる説明とを行なう。
【００４５】
図２（ａ）に示すように、例えば、それぞれが同一構成を持つバッファからなる複数の回路セル１０が接続されてなり、クロック入力端子ＩＮから各クロック出力端子ＯＵＴ１〜ＯＵＴ４までの各経路の遅延分布、平均及び標準偏差が同一のクロックツリー回路を仮定する。但し、ここでは、各クロック出力端子ＯＵＴ１〜ＯＵＴ４と接続されるフリップフロップ回路は簡単化のため図示していない。
【００４６】
クロックツリー回路には、製造ばらつきの影響により、スキューには２種類の確率分布（以後、スキュー分布と称す。）Ａ及びＢが生じ得る。ここで、クロック信号経路ｉ，ｊの各遅延の分布を、正規分布Ｎ（μi、σi2）とＮ（μj、σj2）とすると、スキュー分布Ｎ（μ、σ2）は両経路の遅延の差から式（５）及び（６）で表わされる。ここで、μは平均値であり、σは標準偏差であり、ρは相関係数である。
【００４７】
μ＝μi−μj                    …（５）
σ2＝σi2＋σj2−２ρijσiσj   …（６）
図２（ａ）に示す回路は、４本のクロック信号経路を含むため、４本のうちから任意の２本を選んでなる経路対の組み合わせは全部で６種類ある。しかしながら、いずれの経路の遅延分布の平均も標準偏差も同一と仮定しているため、スキュー分布は２種類だけ考えればよい。さらに、ここでは、式（５）のスキュー分布の平均値（中央値）μは０となる。
【００４８】
スキュー分布Ａ及びスキュー分布Ｂのスキューが生じる経路を抜き出すと、図２（ｂ）のようになる。分布Ａ及び分布Ｂを比べると、分布Ａの方が分布Ｂと比べて２つの経路の共有度合いが高く、その分、分布Ａの方が分布Ｂよりも経路間の遅延の相関が強くなる。これは、共有されている経路部分ではチップ内ばらつきの影響は両経路で同一であるため現われず、共有されていない経路部分にのみ影響が現れるからである。その結果、スキュー分布の標準偏差σは式（６）から予想されるように、スキュー分布Ａの方が小さく、スキュー分布Ｂの方が大きくなる。従って、図２（ｃ）に示すように、このクロックツリー回路の場合は、ばらつき幅が異なる２種類のスキュー分布が存在することになる。
【００４９】
このように、クロックスキュー分類工程Ｓ１は、クロックツリー回路の接続形態（トポロジ）を考慮してスキュー分布の種類を特定し、クロック信号の各信号経路対とスキューの種類とを対応付ける。図２（ａ）のクロックツリー回路の場合には、例えば［表１］のような対応表が作成できる。
【００５０】
【表１】
2007095028.tif 000003
【００５１】
（クロックスキュー分布算出工程Ｓ２）
次に、クロックスキュー分布算出工程Ｓ２において、クロックスキュー分類工程Ｓ１で分類したスキュー分布の種類ごとに、クロックツリー回路のスキュー分布を算出する。図２（ａ）に示すクロックツリー回路の場合は、スキュー分布Ａ、Ｂの２種類についてそれぞれスキュー分布を算出する。スキュー分布を統計量として求める必要から、算出手法には、上述した特許文献３に示されるようなチップ間ばらつきとチップ内ばらつきとの両成分を考慮した回路シミュレーションによるモンテカルロ解析手法等が適用できる。この場合には、チップ内ばらつきによる遅延のばらつきがクロック信号経路に沿って平均化されるという効果が考慮されることになる。
【００５２】
クロックスキュー分布算出工程Ｓ２により算出されたスキュー分布情報は、［表２］のような分布を表わすデータとして格納すればよい。
【００５３】
【表２】
2007095028.tif 000004
【００５４】
（信号パス分類工程Ｓ３）
次に、信号パス分類工程Ｓ３において、クロックスキュー分類工程Ｓ１で求めたスキュー分布の種類ごとに、ここではスキュー分布Ａ、Ｂごとに、それぞれ対応するクロック出力端子対により駆動される集積回路中の複数の信号パスを分類する。
【００５５】
例えば、図３に示すように、各クロック出力端子ＯＵＴ１〜ＯＵＴ４により得られるクロック出力端子対（クロック信号対）の組み合わせごとに、駆動される信号パスを抽出する。すなわち、２つのスキュー分布Ａ、Ｂのみが存在するとして、クロック出力端子ＯＵＴ１〜ＯＵＴ４のうちＯＵＴ１とＯＵＴ２との間のスキュー分布Ａを持つ第１のクロック出力端子対により駆動される信号パス群を抽出し、抽出した信号パス群を含む回路を第１の部分回路αとする。また、出力端子ＯＵＴ２とＯＵＴ３との間のスキュー分布Ｂを持つ第２のクロック出力端子対により駆動される信号パス群を抽出し、抽出した信号パス群を含む回路を第２の部分回路βとする。
【００５６】
ここでは、これら２つのクロック出力端子対以外の端子対、すなわちＯＵＴ１とＯＵＴ３との間、ＯＵＴ１とＯＵＴ４との間、ＯＵＴ２とＯＵＴ４との間及びＯＵＴ３とＯＵＴ４との間には、信号パスは接続されていないと仮定する。なお、信号パスとは、２つのフリップフロップ回路ＦＦ同士に挟まれた信号経路をいう。ここで、第１の部分回路αの信号パスの数をＮＡ本とし、第２の部分回路βの信号パスの数をＮＢ本とする。従って、図３に示す集積回路の例では、［表３］のような対応表を作成できる。
【００５７】
【表３】
2007095028.tif 000005
【００５８】
（信号パス群遅延分布算出工程Ｓ４）
次に、信号パス群遅延分布算出工程Ｓ４を説明する。
【００５９】
通常、クロック信号の周期（サイクルタイム）を複数の信号パスに与える場合に、ＬＳＩの最高動作速度を決定するのは複数の信号パスのうちで一番遅い信号パスとなる。従って、信号パス遅延を統計量としてではなく、ただ１つの値を持つ固定値として扱い、且つ個々の信号パスも独立していると仮定する従来の設計方法の場合には、この遅延が最も大きい信号パス、すなわちクリティカルパスがＬＳＩ全体の動作を律速しているとみなす。
【００６０】
しかしながら、第１の実施形態のように、ばらつきを考慮するために統計量として信号パス遅延を扱う場合は、信号パス全体の遅延の確率分布を求めてタイミング検証を行なう必要がある。
【００６１】
前述した非特許文献１にも示されているように、チップ内ばらつきが生じると、複数の信号パスの遅延が最大値を取る確率は、一の信号パスの遅延の確率とは異なってくる。
【００６２】
そこで、信号パス群遅延分布算出工程Ｓ４においては、抽出した部分回路ごとに、該部分回路に含まれるすべての信号パスの遅延のうちの最大値を取る確率分布を算出する。
【００６３】
例えば、Ｎ本の信号パスのうちのｋ番目の遅延分布をＤk とすると、部分回路全体の遅延Ｄの最大確率は、以下の式（７）で求められる。統計量であるＤk の算出手法には、クロックスキュー分布算出工程Ｓ２の場合と同様に、チップ間ばらつきとチップ内ばらつきとの両成分を考慮した回路シミュレーションによるモンテカルロ解析技術等が適用できる。
【００６４】
Ｄ＝Ｍａｘ（Ｄ1 ，Ｄ2 ，…，Ｄk ，…，ＤN ）    …式（７）
図４（ａ）及び図４（ｂ）は、符号１１Ａ、１１Ｂで示す各信号パスの遅延分布がすべて等しく、且つ図３において信号パスの本数がＮＡ＜ＮＢであると仮定した場合に、第１の部分回路α及び第２の部分回路βについて、式（７）により統計的最大値を求めた結果をそれぞれＤα 、Ｄβ として符号１２Ａ、１２Ｂで表わしている。
【００６５】
図４（ａ）及び（ｂ）に示すように、各部分回路α、βの遅延の最大確率分布１２Ａ、１２Ｂは、それを構成する各信号パスの遅延分布１１Ａ、１１Ｂとは、平均値も分散も異なる。さらに、各部分回路α、βの遅延の最大確率分布における各信号パスの遅延分布からのずれは、信号パスの数が多い第２の部分回路βの方が第１の部分回路αよりも大きくなる。
【００６６】
算出した最大確率分布情報は、例えば正規分布近似を行なった後、［表４］のような分布を表わすデータを格納すればよい。
【００６７】
【表４】
2007095028.tif 000006
【００６８】
（タイミング検証工程Ｓ５）
次に、タイミング検証工程Ｓ５において、これまで求めたすべてのデータを総合してタイミング検証を行なう。
【００６９】
図３において、第１のクロック出力端子対ＯＵＴ１、ＯＵＴ２については、クロックスキュー分類工程Ｓ１の結果からスキュー分布Ａに対応している。クロックスキュー分布算出工程Ｓ２で求めたスキュー分布Ａと、信号パス群遅延分布算出工程Ｓ４によって求められた第１の部分回路αの最大遅延確率分布Ｄα とを式（１）の左辺に代入すると、以下の式（８）の左辺となる。さらに、式（８）の不等号が成り立つことを確認する。
【００７０】
Ｄα ＋Ａ＋Ｔsetup  ≦  Ｔcycle    …式（８）
同様に、第２のクロック出力端子対ＯＵＴ２、ＯＵＴ３については、クロックスキュー分類工程Ｓ１の結果からスキュー分布Ｂに対応している。クロックスキュー分布算出工程Ｓ２で求めたスキュー分布Ｂと、信号パス群遅延分布算出工程Ｓ４によって求められた第２の部分回路βの最大遅延確率分布Ｄβ とを反映した式（９）の関係を検証する。
【００７１】
Ｄβ ＋Ｂ＋Ｔsetup  ≦  Ｔcycle    …式（９）
図５（ａ）は式（８）及び式（９）における左辺の確率分布を表わしている。ここで、符号２１を付したグラフが式（８）の左辺であり、符号２２を付したグラフが式（９）の左辺である。従って、例えば左辺の分布平均から標準偏差の３倍増の点がクロック周期に収まっている（図５（ａ）のパス領域）か否か等の観点により判定でき、タイミング検証を行なうことができる。
【００７２】
また、図５（ｂ）に示すように、符号２３を付した式（８）の左辺の累積確率及び符号２４を付した式（９）の左辺の累積確率を求めて、クロック周期に収まらない確率に基準を設けて判定、すなわちタイミング検証を行なうことも可能である。
【００７３】
図６は第１の実施形態に係る半導体集積回路のタイミング検証方法を実現するコンピュータシステムの一例を模式的に表わしている。図６に示すように、端末コンピュータ１０１は、メインコンピュータ１０２とネットワーク１０３を介して接続されている。
【００７４】
端末コンピュータ１０１及びメインコンピュータ１０２には、ＣＰＵ（central processing unit）、ＲＡＭ（random access memory）、ＲＯＭ（read only memory）、ハードディスク装置及びインタフェース機器等が内蔵された一般的な構成で良く、詳細な説明は省略する。図１に示した各工程を実現するプログラム１０４と、該プログラム１０４を実行させるのに必要なデータ１０５が、メインコンピュータ１０２の記憶装置に格納されている。
【００７５】
ユーザは、端末コンピュータ１０１を操作してメインコンピュータ１０２に解析の実行を指示すると、メインコンピュータ１０２上で図１に示す各工程Ｓ１〜Ｓ５を実現するプログラム１０４により、タイミング検証が実行される。その後、ユーザは、検証結果を端末コンピュータ１０１からネットワーク１０３を経由してアクセスし、出力装置等に出力して参照することができる。
【００７６】
第１の実施形態に係る信号パス群遅延分布算出工程Ｓ４においては、前述したとおり、簡単化するために、信号パス遅延分布が信号パスに依らず同一であるという仮定を行なっている。すなわち、図７（ａ）に示すように、互いに同一な遅延分布を有する複数の信号パスが、図７（ｂ）に示すヒストグラムのように存在している場合を想定している。しかしながら、実際のＬＳＩは、複数の信号パス同士が同一の遅延分布を有していることは稀であり、通常は各信号パスによって遅延分布も異なっている。一般には、図７（ｃ）に示すように、それぞれ異なる遅延分布を有する信号パスの頻度は、図７（ｄ）のように分布する。
【００７７】
従って、第１の実施形態の第１変形例として、信号パス群遅延分布算出工程Ｓ４において、図７（ｃ）及び図７（ｄ）で表わされるような信号パス群を扱う構成としてもよい。すなわち、式（７）を用いて計算する際に、各信号パスの遅延分布Ｄk に対して、各信号パスがそれぞれに異なる平均及び分散を持つ遅延分布を与えて計算すればよい。
【００７８】
また、第１の実施形態においては、式（１）におけるセットアップタイムＴsetupを固定値として扱っているが、第２変形例として、セットアップタイムＴsetupを統計量として扱うようにしてもよい。
【００７９】
また、第１の本実施形態においては、図１４に示したフリップフロップ回路ＦＦ１〜ＦＦ４自体に生じる遅延、例えば１つのフリップフロップ回路のクロック入力端子Ｃから正相出力端子Ｑに至るまでの遅延については言及しなかったが、フリップフロップ回路自体の遅延に対しても、固定値及び統計量のどちらかに含めるようにしてもよい。
【００８０】
また、図１において、各工程Ｓ１，Ｓ２，Ｓ３，Ｓ４及びＳ５は、必ずしもこの順に実行される必要はない。例えば、工程Ｓ１の後に、工程Ｓ２と工程Ｓ３とを並行して進めてもよい。なお、クロック回路の回路トポロジだけではスキュー分布の種類が決定できない場合は、スキュー分布をあらかじめクロック出力端子対ごとに算出し、すなわち工程Ｓ２を工程Ｓ１よりも先に行なって、その工程Ｓ２から得られた結果から、スキューを分類するようにしてもよい。
【００８１】
また、第１の実施形態においては、図２（ａ）及び図１４に示したように、クロックツリー回路の接続形態（トポロジ）にツリー状で且つ二分木構造を持つ回路トポロジを用いたが、これに限定されない。
【００８２】
また、第１の実施形態においては、クロック信号の伝搬のばらつき要因として製造時を想定している。実際には、電圧又は温度等の動作環境の要因によっても回路特性はばらつき得る。従って、製造時以外の要因も同時に考慮するには、以下のような方法も有効である。
【００８３】
まず、信号パスの各遅延分布を回路シミュレーション等により求める際に、例えば最低電圧及び最高温度における各遅延が最大となる条件に設定しながら製造ばらつきを与え、それに基づいて各部分回路の最大遅延確率分布Ｔpathを求める。その後、スキュー分布Ｔskewにおいても、最低電圧及び最高温度における各遅延が最大となる条件に設定して、以下の式（１０）により、セットアップタイム側のタイミング検証を行なう。
【００８４】
Ｔpath(max)|VDDmin,Tjmax＋Ｔskew|VDDmin、Tjmax＋Ｔsetup  ≦  Ｔcycle…（１０）
ホールドタイム側のタイミング検証も、同様に、例えば最高電圧及び最低温度における各遅延が最小となる条件となる条件に設定して、以下の式（１１）に従って行なう。この方法では、電圧と温度の条件設定を行なうだけで、第１の実施形態に係る一連の工程Ｓ１〜Ｓ５をそのまま適用できる。
【００８５】
Ｔpath(min)|VDDmax,Tjmin−Ｔskew|VDDmax、Tjmin  ≧  Ｔhold    …（１１）
さらには、電圧及び温度がチップ内で一様でない場合には、以下の式（１２）及び式（１３）に示すように、ＴpathとＴskewとのそれぞれに異なる係数を導入して電圧及び温度の影響を個別に設定できるようにしてもよい。
【００８６】
ＫV・ＫT・Ｔpath(max)＋ＳV・ＳT・Ｔskew＋Ｔsetup  ≦  Ｔcycle    …（１２）
Ｋ'V・Ｋ'T・Ｔpath(min)−Ｓ'V・Ｓ'T・Ｔskew  ≧  Ｔhold          …（１３）
ここで、ＫV 及びＫT は、セットアップタイム側の検証時に、部分回路の最大遅延確率分布にそれぞれ電圧及び温度の影響を付与する係数であり、Ｋ'V及びＫ'Tは、ホールドタイム側の検証時に、部分回路の最小遅延確率分布にそれぞれ電圧及び温度の影響を付与する係数である。ＳV 及びＳT は、セットアップタイム側の検証時に、スキュー分布にそれぞれ電圧及び温度の影響を付与する係数であり、Ｓ'V及びＳ'は、ホールドタイム側の検証時に、スキュー分布にそれぞれ電圧及び温度の影響を付与する係数である。この場合も、Ｔpath及びＴskewについては、第１の実施形態に係る一連の工程Ｓ１〜Ｓ５をそのまま適用することができる。
【００８７】
第１の実施形態においては、セットアップタイム余裕側の検証に最大信号パス遅延や遅延が最大になる条件を用いている。また、後述する第４の実施形態においては、ホールドタイム余裕側の検証には最小信号パス遅延や遅延が最小になる条件を用いている。また、逆に、セットアップタイム余裕側の検証に最小信号パス遅延を用い、ホールドタイム余裕側の検証に最大信号パス遅延を用いることも可能である。
【００８８】
なお、製造ばらつき等の影響によりばらつくクロック回路の特性は、クロック信号の遅延に限られず、クロック信号の波形すなわち遷移時間、さらにはスルーレート又は立上り及び立下り時間もばらつく。クロック信号波形のばらつきは、それを入力とする信号パスの遅延にも影響を与える。そこで、スキュー分布を算出する際に、クロック信号の波形ばらつきをも求めておき、各信号パスの遅延分布をこのクロック信号の波形ばらつきを参照しながら算出するようにしてもよい。
【００８９】
例えば、図１４に示すクロックツリー回路の場合は、フリップフロップ回路ＦＦ１等のクロック入力端子Ｃにおけるクロック信号の波形ばらつきを正規分布で近似しておく。次に、各信号パスの遅延分布を計算する際に、このフリップフロップ回路ＦＦ１等を検証の対象とする信号パスの前段に接続し、接続されたフリップフロップ回路ＦＦ１等のクロック入力端子Ｃに入力されるクロック信号波形を、近似した正規分布によるばらつきを付与することにより計算すればよい。
【００９０】
以上説明したように、第１の実施形態によると、チップ内ばらつき成分を含む製造ばらつきを生じたクロックツリー構造によるスキュー分布の不均一性を求め、各スキュー分布を持つクロック出力端子対により駆動される部分回路をチップ全体回路から抽出する。続いて、抽出された部分回路に含まれる複数の信号パスの遅延分布から部分回路を代表する最大遅延分布を求め、対応するスキュー分布と最大遅延分布とを用いることにより、セットアップタイム側のタイミング検証を行なうことができる。
【００９１】
これにより、従来と比べ、製造ばらつき等のばらつきを考慮したタイミング検証を確率的に行なえるようになる。その上、クロック回路の特徴や回路設計上の特徴を同時に考慮した、より信頼性が高い検証をも行なえるようになる。
【００９２】
（第２の実施形態）
以下、本発明の第２の実施形態に係るタイミング検証方法について図面を参照しながら説明する。
【００９３】
第１の実施形態は、図３に示すように、それぞれ固有のスキュー分布Ａ、Ｂに対応する第１のクロック出力端子対ＯＵＴ１、ＯＵＴ２の間と、第２のクロック出力端子対ＯＵＴ２、ＯＵＴ３の間にのみ複数の信号パスが存在している場合を説明した。
【００９４】
そこで、図８（ａ）に示すように、クロックツリー回路の分岐が図２（ａ）と比べて多く、クロック信号の出力端子数も多くなる場合には、第２の実施形態が可能となる。
【００９５】
前提として、チップ上のすべての素子（回路セル１０）はクロックツリー回路からクロック信号が供給される。このとき、近接する素子同士のばらつきの相関は強く、距離が離れる程に相関が弱くなる状況を想定する。
【００９６】
図８（ａ）に示すように、第２の実施形態においては、例えば、互いに同一又は同等のスキュー分布Ａを持ち、且つ該スキュー分布Ａ同士の相関係数がほぼ１（ρ≒１）とみなせる程にそれぞれが近接した、第１のクロック出力端子対であるＯＵＴ１及びＯＵＴ２の間には信号パスをＮＡ１本を含む第１の部分回路３１が接続され、第２のクロック出力端子対であるＯＵＴ３及びＯＵＴ４の間には信号パスをＮＡ２本を含む第２の部分回路３２が接続されているとする。ここで、各クロック出力端子ＯＵＴ１〜ＯＵＴ４は第１グループＧ１に属し、各クロック出力端子ＯＵＴ５〜ＯＵＴ８は第２グループＧ２に属している。
【００９７】
このように、図１に示す信号パス分類工程Ｓ３において、図８（ｂ）のように２つの部分回路を第１グループＧ１にグループ分けして、（ＮＡ１＋ＮＡ２）本の信号パス群からなる第３の部分回路３３を想定する。第３の部分回路３３は、スキュー分布Ａを有する仮想的なクロック出力端子対で駆動されていると考える。図１に示す工程Ｓ４以降は、第１の実施形態と同様の処理を行なうことができる。
【００９８】
これに対し、図８（ａ）において、第２グループＧ２にグループ分けされた第３のクロック出力端子対であるＯＵＴ５及びＯＵＴ６の間と、第４のクロック出力端子対であるＯＵＴ７及びＯＵＴ８の間とのそれぞれのスキュー分布も、グループＧ１と同一の分布Ａである場合でも、これら第２グループＧ２に含まれるクロック出力端子対は、第１グループＧ１に含まれるクロック出力端子対とチップ上において互いの空間的距離が離れているため、第１グループＧ１と第２グループＧ２との間ではスキュー分布間の相関が弱い（ρ＜＜１）。
【００９９】
なお、第２の実施形態においては、２つのグループの場合について説明したが、グループの数は任意である。すなわち、クロック出力端子対の数までグループを増やすことも可能である。また、スキュー分布がＡと異なるスキュー分布Ｂであっても同様である。
【０１００】
このように、第２の実施形態によると、第１の実施形態と同様の効果を得られるのに加え、互いの相関が強いスキュー分布の種類ごとにグルーピングが可能な部分回路をまとめることにより、より簡易に且つより効率的にタイミング検証を行なうことができる。
【０１０１】
（第３の実施形態）
以下、本発明の第３の実施形態に係るタイミング検証方法について図面を参照しながら説明する。
【０１０２】
図９は本発明の第３の実施形態に係る半導体集積回路のタイミング検証方法の工程フローを示している。図９に示すように、第３の実施形態においては、信号パス分類工程Ｓ３に信号パスフィルタリング工程Ｓ３１を含む点が第１の実施形態とは異なる。従って、ここでは、信号パスフィルタリング工程Ｓ３１のみを説明する。
【０１０３】
（信号パス分類工程Ｓ３）
図９に示すように、信号パス分類工程Ｓ３は、クロックスキュー分類工程Ｓ１で求めたスキュー分布の種類ごとに、各スキュー分布を有するクロック出力端子対により駆動される集積回路中の複数の信号パスを分類する。但し、第３の実施形態に係る信号パス分類工程Ｓ３は、次のように第１の実施形態とは異なっている。
【０１０４】
まず、前述したように、信号パス分類工程Ｓ３の後工程である信号パス群遅延分布算出工程Ｓ４においては最大遅延を統計的に計算する。この計算は、信号パス遅延がサイクルタイム（式（１）に示すＴcycle）とほぼ等しく、且つ信号パスの出力端において、チップ内ばらつき成分の影響が大きく残っている信号パスが多く含まれる程、最大遅延分布は元の分布から大きくずれることになる。
【０１０５】
チップ内ばらつき成分は、チップ内でランダムに生じるばらつきであるが、信号パスに沿って遅延への影響が平均化されるという性質を持つ。その平均化の度合いは信号パスの長さ、例えばゲート段数（論理段数又は論理深さともいう。）の多寡によっておおよそ決まる。具体的には、ゲート段数の平方根に反比例して平均化する近似（＝１／√ゲート段数）を用い、この平均化の近似により、ランダムばらつきの標準偏差が１段のみの場合の２０％（＝１／５×１００％）にまで減衰する場合を１つの目安にするとよい。この例の場合は、制限をかけるゲート段数は２５段となる。
【０１０６】
これにより、長い信号パス程、平均化が進むため、信号パス遅延分布におけるチップ内ばらつき成分の割合が小さくなり、その結果、信号パス群遅延分布算出工程Ｓ４において最大遅延を計算する上での信号パスの影響は小さくなる。
【０１０７】
また、信号パス遅延がサイクルタイムと比べて大幅に小さい場合は、チップ内ばらつき成分がある程度は残っていたとしても、最大遅延を計算する際のチップ内ばらつき成分による影響は小さくなる。
【０１０８】
その上、一般には遅延がサイクルタイムにほぼ等しい信号パスであっても、ゲート段数は信号パスによってさまざまである。
【０１０９】
そこで、第３の実施形態は、信号パス分類工程Ｓ３に含めた信号パスフィルタリング工程Ｓ３１において、信号パスの遅延とゲート段数とに制限を設けて、遅延がサイクルタイムにほぼ等しく且つ制限以下のゲート段数の信号パスのみを分類の対象とする。
【０１１０】
この信号パスの分類が制限された後で、信号パス群遅延分布算出工程Ｓ４以降の工程は、第１の実施形態と同様である。
【０１１１】
このように、第３の実施形態においては、部分回路を代表する最大遅延分布を算出する際の対象とする信号パスの数に制限を設けて選定することにより、信号パス群遅延分布算出工程Ｓ４における算出工数を削減することができる。
【０１１２】
（第４の実施形態）
以下、本発明の第４の実施形態に係るタイミング検証方法について図面を参照しながら説明する。
【０１１３】
図１０は本発明の第４の実施形態に係る半導体集積回路のタイミング検証方法の工程フローを示している。図１０に示すように、第４の実施形態においては、信号パス群遅延分布算出工程Ｓ４０及びタイミング検証工程Ｓ５０が第１の実施形態とは異なる。従って、ここでは、信号パスの遅延確率分布のうちの最小遅延確率分布を扱う信号パス群遅延分布算出工程Ｓ４０及びタイミング検証工程Ｓ５０のみを説明する。
【０１１４】
（信号パス群遅延分布算出工程Ｓ４０）
第１の実施形態で説明したように、製造ばらつきにチップ内ばらつきがあると、複数の信号パスの遅延が最小値を取る確率は、１つの信号パスの遅延の確率とは異なってくる。
【０１１５】
そこで、第４の実施形態に係る信号パス群遅延分布算出工程Ｓ４０は、部分回路ごとに、該部分回路に含まれるすべての信号パスの遅延のうちの最小値を取る確率分布を算出する。
【０１１６】
例えば、Ｎ本の信号パスのうちのｋ番目の遅延分布をＤk とすると、部分回路全体の遅延Ｄの最小確率は、式（１４）で求められる。統計量であるＤk の算出方法には、クロックスキュー分布算出工程Ｓ２と同様に、チップ間ばらつきとチップ内ばらつきとの両成分を考慮した回路シミュレーションによるモンテカルロ解析技術等が適用できる。
【０１１７】
Ｄ＝Ｍｉｎ（Ｄ1 ，Ｄ2 ，…，Ｄk ，…，ＤN ）    …式（１４）
図１１（ａ）及び図１１（ｂ）は、符号４１Ａ、４１Ｂで示す各信号パスの遅延分布がすべて等しく、且つ図３において信号パスの本数がＮＡ＜ＮＢであると仮定した場合に、第１の部分回路α及び第２の部分回路βについて、式（１４）により統計的最小値を求めた結果をそれぞれＤα 、Ｄβ として符号４２Ａ、４２Ｂで表わしている。
【０１１８】
図１１（ａ）及び（ｂ）に示すように、各部分回路α、βの遅延の最小確率分布４２Ａ、４２Ｂは、それを構成する各信号パスの遅延分布４１Ａ、４１Ｂとは、平均値も分散も異なる。さらに、各部分回路α、βの遅延の最小確率分布における各信号パスの遅延分布からのずれは、信号パスの数が多い第２の部分回路βの方が第１の部分回路αよりも大きくなる。
【０１１９】
算出した最小確率分布情報は、例えば正規分布近似を行なった後、第１の実施形態と同様に格納しておけばよい。
【０１２０】
（タイミング検証工程Ｓ５０）
次に、タイミング検証工程Ｓ５０において、これまで求めたすべてのデータを総合してタイミング検証を行なう。
【０１２１】
図３において、第１のクロック出力端子対ＯＵＴ１、ＯＵＴ２については、クロックスキュー分類工程Ｓ１の結果からスキュー分布Ａに対応している。クロックスキュー分布算出工程Ｓ２で求めたスキュー分布Ａと、信号パス群遅延分布算出工程Ｓ４０によって求められた第１の部分回路αの最小遅延確率分布Ｄα とを式（２）の左辺に代入すると、以下の式（１５）の左辺となる。さらに、式（１５）の不等号が成り立つことを確認する。
【０１２２】
Ｄα −Ａ  ≧  Ｔhold    …式（１５）
同様に、第２のクロック出力端子対ＯＵＴ２、ＯＵＴ３については、クロックスキュー分類工程Ｓ１の結果からスキュー分布Ｂに対応している。クロックスキュー分布算出工程Ｓ２で求めたスキュー分布Ｂと、信号パス群遅延分布算出工程Ｓ４０によって求められた第２の部分回路βの最小遅延確率分布Ｄβ とを反映した式（１６）の関係を検証する。
【０１２３】
Ｄβ −Ｂ  ≧  Ｔhold    …式（１６）
図１２（ａ）は式（１５）及び式（１６）における左辺の確率分布を表わしている。ここで、符号５１を付したグラフが式（１５）の左辺であり、符号５２を付したグラフが式（１６）の左辺である。従って、例えば左辺の分布平均から標準偏差の３倍減の点がホールドタイムに収まっている（図１２のパス領域）か否か等の観点により判定でき、タイミング検証を行なうことができる。
【０１２４】
また、図５（ｂ）の場合と同様に、式（１５）及び式（１６）のそれぞれの左辺の累積確率を求めて、ホールドタイムに収まらない確率に基準を設けてタイミング検証を行なう方法でもよい。
【０１２５】
以上説明したように、第４の実施形態によると、チップ内ばらつき成分を含む製造ばらつきを生じたクロックツリー構造によるスキュー分布の不均一性を求め、各スキュー分布を持つクロック出力端子対により駆動される部分回路をチップ全体回路から抽出する。続いて、抽出された部分回路に含まれる複数の信号パスの遅延分布から部分回路を代表する最小遅延分布を求め、対応するスキュー分布と最小遅延分布とを用いることにより、ホールドタイム側のタイミング検証を行なうことができる。
【０１２６】
これにより、従来と比べ、製造ばらつき等のばらつきを考慮したタイミング検証を確率的に行なえるようになる。その上、クロック回路の特徴や回路設計上の特徴を同時に考慮した、より信頼性が高い検証をも行なえるようになる。
【０１２７】
（第４の実施形態の一変形例）
第４の実施形態は、信号パス群遅延分布算出工程Ｓ４０において、最小遅延を統計的に計算する。この計算は、信号パス遅延が最小にほぼ等しく、且つ信号パスの出力端において、チップ内ばらつき成分の影響が大きく残っている信号パスが多く含まれる程、最小遅延分布は元の分布から大きくずれる。
【０１２８】
チップ内ばらつき成分は、チップ内でランダムに生じるばらつきであるが、信号パスに沿って遅延への影響は平均化されるという性質を持つ。その平均化の度合いは信号パスの長さ、例えばゲート段数（論理段数又は論理深さ）の多寡によっておおよそ決まる。
【０１２９】
すなわち、長い信号パス程平均化が進むため、信号パス遅延分布におけるチップ内ばらつき成分の割合が小さくなる。その結果、信号パス群遅延分布算出工程Ｓ４０において最小遅延を計算する上での信号パスの影響は小さくなる。
【０１３０】
また、信号パス遅延が大きい場合には、チップ内ばらつき成分がある程度残っていたとしても、最小遅延を計算する際のチップ内ばらつき成分による影響は小さくなる。
【０１３１】
一般に、遅延が最小にほぼ等しい信号パスであっても、ゲート段数は信号パスによってさまざまである。そこで、本変形例は、信号パス分類工程Ｓ３に含めた信号パスフィルタリング工程Ｓ３１においては、信号パスの遅延とゲート段数とに制限を設けて、遅延が「最小近傍」で且つ制限以下のゲート段数の信号パスのみを分類の対象とする。
【０１３２】
この信号パスの分類が制限された後で、信号パス群遅延分布算出工程Ｓ４０以降の工程は、第４の実施形態と同様である。
【０１３３】
本変形例によると、部分回路を代表する最小遅延分布を算出する際の対象とする信号パスの数に制限を設けて選定することにより、信号パス群遅延分布算出工程Ｓ４０における算出工数を削減することができる。
【０１３４】
なお、第４の実施形態又はその一変形例は、第１〜第３の実施形態のいずれか１つと組み合わせて実施することも可能である。
【産業上の利用可能性】
【０１３５】
本発明に係る半導体集積回路のタイミング検証方法は、クロック回路に生じる種々のスキュー分布と信号パス群の統計的遅延分布とから、タイミングマージンの状態を高精度に検証することができ、半導体集積回路の設計方法等に有用である。
【図面の簡単な説明】
【０１３６】
【図１】本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法を示す工程フロー図である。
【図２】（ａ）は本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法が対象とするクロックツリー回路とそのクロック信号端子同士の組合せを示す図である。（ｂ）はクロック信号経路間の遅延の相関を示す図である。（ｃ）は（ｂ）に示すクロック信号経路間に生じるスキュー分布を示すグラフである。
【図３】本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法が対象とする異なるクロック出力端子対にそれぞれ接続された部分回路に含まれる信号パス群を示す回路図である。
【図４】（ａ）及び（ｂ）は本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法において抽出された部分回路の最大遅延確率分布を示し、（ａ）は第１の部分回路αを示すグラフであり、（ｂ）は第２の部分回路βを示すグラフである。
【図５】（ａ）及び（ｂ）は本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法におけるセットアップタイム側のタイミング検証工程を説明するグラフであって、（ａ）は式（８）と式（９）の各左辺の確率分布を示すグラフであり、（ｂ）は式（８）と式（９）の各左辺の累積確率分布を示すグラフである。
【図６】本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法を実現するコンピュータシステムの一例を示す模式図である。
【図７】本発明の第１の実施形態に係る半導体集積回路のタイミング検証方法の信号パス群遅延分布算出工程において、（ａ）は（ｂ）に示す信号パス遅延のヒストグラムを想定した場合の各信号パスの遅延分布を示すグラフであり、（ｃ）は（ｄ）に示す信号パス遅延のヒストグラムを想定した場合の各信号パスの遅延分布を示すグラフである。
【図８】（ａ）は本発明の第２の実施形態に係る半導体集積回路のタイミング検証方法が対象とするクロックツリー回路と互いに同一なスキュー分布を有するクロック出力端子対に接続された部分回路とを示す図である。（ｂ）は（ａ）のクロック出力端子対を仮想的に１つにまとめ、且つ対応する部分回路を１つにまとめた回路図である。
【図９】本発明の第３の実施形態に係る半導体集積回路のタイミング検証方法を示す工程フロー図である。
【図１０】本発明の第４の実施形態に係る半導体集積回路のタイミング検証方法を示す工程フロー図である。
【図１１】（ａ）及び（ｂ）は本発明の第４の実施形態に係る半導体集積回路のタイミング検証方法において抽出された部分回路の最小遅延確率分布を示し、（ａ）は第１の部分回路αを示すグラフであり、（ｂ）は第２の部分回路βを示すグラフである。
【図１２】本発明の第４の実施形態に係る半導体集積回路のタイミング検証方法におけるホールドタイム側のタイミング検証工程を説明するグラフであって、式（１５）と式（１６）の各左辺の確率分布を示すグラフである。
【図１３】本発明の第４の実施形態の一変形例に係る半導体集積回路のタイミング検証方法を示す工程フロー図である。
【図１４】従来のクロックツリー回路を説明する回路図である。
【図１５】信号パスを含めた従来のクロックツリー回路を説明する回路図である。
【符号の説明】
【０１３７】
１０      回路セル
１１Ａ    一の信号パスの遅延確率分布
１１Ｂ    他の信号パスの遅延確率分布
１２Ａ    第１の部分回路の最大遅延確率分布
１２Ｂ    第２の部分回路の最大遅延確率分布
２１      式（８）の左辺における確率分布
２２      式（９）の左辺における確率分布
２３      式（８）の左辺における累積確率
２４      式（９）の左辺における累積確率
３１      第１の部分回路
３２      第２の部分回路
３３      第３の部分回路
４１Ａ    一の信号パスの遅延確率分布
４１Ｂ    他の信号パスの遅延確率分布
４２Ａ    第１の部分回路の最小遅延確率分布
４２Ｂ    第２の部分回路の最小遅延確率分布
５１      式（１５）の左辺における確率分布
５２      式（１６）の左辺における確率分布
１０１    端末コンピュータ
１０２    メインコンピュータ
１０３    ネットワーク
１０４    プログラム
１０５    データ
【図１】
2007095028.tif 000007
【図２】
2007095028.tif 000008
【図３】
2007095028.tif 000009
【図４】
2007095028.tif 000010
【図５】
2007095028.tif 000011
【図６】
2007095028.tif 000012
【図７】
2007095028.tif 000013
【図８】
2007095028.tif 000014
【図９】
2007095028.tif 000015
【図１０】
2007095028.tif 000016
【図１１】
2007095028.tif 000017
【図１２】
2007095028.tif 000018
【図１３】
2007095028.tif 000019
【図１４】
2007095028.tif 000020
【図１５】
2007095028.tif 000021