(57)【特許請求の範囲】
【請求項１】
クロック源、前記クロック源に接続され、メッシュ状に配置された配線により形成されるメッシュ部、及び前記クロック源から前記メッシュ部を介してクロック信号を受け取るクロック供給先、を備える検証対象回路を示す回路データを取得する回路データ取得部と、
前記回路データに基づいて、前記クロック源から前記クロック供給先に至る２つのパスを、第１パス及び第２パスとして設定するパス設定部と、
前記第１パスにおける前記メッシュ部の出力端である第１出力端と、前記第２パスにおける前記メッシュ部の出力端である第２出力端との間の距離を、接続点間距離として算出する、距離算出部と、
前記クロック信号が前記クロック源から前記メッシュ部の出力端に到達するまでの時間がどれだけばらつくかを示すグローバル係数を決定する、グローバル係数決定部と、
前記グローバル係数に基づいて、前記クロック供給先におけるクロック供給タイミングを検証する、タイミング検証部と、
を具備し、
前記グローバル係数決定部は、前記接続間距離に基づいて、前記グローバル係数を決定し、
前記グローバル係数決定部は、予め設定されたグローバル係数データを参照して、前記グローバル係数を決定し、
前記グローバル係数データは、前記接続点間距離と前記グローバル係数との対応関係を示すデータである
タイミング解析装置。
【請求項２】
請求項１に記載されたタイミング解析装置であって、
更に、
前記グローバル係数に基づいて、前記クロック源から前記第１出力端までの遅延時間及び前記クロック源から前記第２出力端までの遅延時間を、それぞれ第１グローバル遅延時間及び第２グローバル遅延時間として算出する、グローバル遅延時間算出部
を具備し、
前記タイミング検証部は、前記第１グローバル遅延時間及び前記第２グローバル遅延時間に基づいて、前記第１パス及び前記２パスにおけるクロック供給タイミングを検証する
タイミング解析装置。
【請求項３】
請求項２に記載されたタイミング解析装置であって、
前記グローバル遅延時間算出部は、予め設定されたグローバル基準値に基づいて、前記第１グローバル遅延時間及び第２グローバル遅延時間を算出し、
前記グローバル基準値は、前記メッシュ部の出力端の位置毎に設定されている
タイミング解析装置。
【請求項４】
請求項２又は３に記載されたタイミング解析装置であって、
更に、
前記メッシュ部の出力端から前記クロック供給先までの間で前記クロック信号の伝播時間がどれだけばらつくかを示す、ローカル係数を決定する、ローカル係数決定部と、
前記ローカル係数に基づいて、前記第１出力端から前記クロック供給先までの伝播時間及び前記第２出力端から前記クロック供給先までの伝播時間を、それぞれ、第１ローカル遅延時間及び第２ローカル遅延時間として算出する、ローカル遅延時間算出部と、
を具備し、
前記タイミング検証部は、前記第１ローカル遅延時間及び前記第２ローカル遅延時間に基づいて、前記クロック信号の供給タイミングを検証する
タイミング解析装置。
【請求項５】
請求項２乃至４の何れかに記載されたタイミング解析装置であって、
前記グローバル遅延時間算出部は、前記第１グローバル遅延時間及び前記第２グローバル遅延時間として、それぞれ、前記第１出力端における遅延時間の最大値及び前記第２出力端における遅延時間の最小値を算出する
タイミング解析装置。
【請求項６】
コンピュータが、前記クロック源に接続され、メッシュ状に配置された配線により形成されるメッシュ部、及び前記クロック源から前記メッシュ部を介してクロック信号を受け取るクロック供給先、を備える検証対象回路を示す回路データを取得するステップと、
コンピュータが、前記回路データに基づいて、前記クロック源から前記クロック供給先に至る２つのパスを、第１パス及び第２パスとして設定するステップと、
コンピュータが、前記第１パスにおける前記メッシュ部の出力端である第１出力端と、前記第２パスにおける前記メッシュ部の出力端である第２出力端との間の距離を、接続点間距離として算出するステップと、
コンピュータが、前記接続点間距離に基づいて、前記クロック信号が前記メッシュ部の出力端に到達するまでの時間がどれだけばらつくかを示すグローバル係数を決定するステップと、
コンピュータが、前記グローバル係数に基づいて、前記クロック供給先に前記クロック信号が供給されるタイミングを検証するステップと、
を具備し、
前記グローバル係数を決定するステップは、予め設定されたグローバル係数データを参照して、前記グローバル係数を決定するステップを含み、
前記グローバル係数データは、前記接続点間距離と前記グローバル係数との対応関係を示すデータである
タイミング解析方法。
【請求項７】
請求項６に記載されたタイミング解析方法であって、
更に、
コンピュータが、前記グローバル係数に基づいて、前記クロック源から前記第１出力端までの遅延時間及び前記クロック源から前記第２出力端までの遅延時間を、それぞれ第１グローバル遅延時間及び第２グローバル遅延時間として算出するステップ、
を具備し、
前記検証するステップは、前記第１グローバル遅延時間及び前記第２グローバル遅延時間に基づいて、前記第１パス及び前記２パスにおけるクロック供給タイミングを検証するステップを含む
タイミング解析方法。
【請求項８】
請求項７に記載されたタイミング解析方法であって、
前記第１グローバル遅延時間及び第２グローバル遅延時間として算出するステップは、予め設定されたグローバル遅延基準値に基づいて、前記第１グローバル遅延時間及び第２グローバル遅延時間を算出するステップを含み、
前記グローバル遅延基準値は、前記メッシュ部の出力端毎に設定されている
タイミング解析方法。
【請求項９】
請求項７又は８に記載されたタイミング解析方法であって、
更に、
コンピュータが、前記メッシュ部の出力端から前記クロック供給先までの間で前記クロック信号の遅延時間がどれだけばらつくかを示す、ローカル係数を決定するステップと、
コンピュータが、前記ローカル係数に基づいて、前記第１出力端から前記クロック供給先までの遅延時間及び前記第２出力端から前記クロック供給先までの遅延時間を、それぞれ、第１ローカル遅延時間及び第２ローカル遅延時間として算出するステップと、
を具備し、
前記クロック供給タイミングを検証するステップは、前記第１ローカル遅延時間及び前記第２ローカル遅延時間に基づいて、前記クロック信号の供給タイミングを検証するステップを含む
タイミング解析方法。
【請求項１０】
請求項７乃至９の何れかに記載されたタイミング解析方法であって、
前記第１グローバル遅延時間及び第２グローバル遅延時間として算出するステップは、前記第１グローバル遅延時間及び前記第２グローバル遅延時間として、それぞれ、前記第１出力端における遅延時間の最大値及び前記第２出力端における遅延時間の最小値を算出する
ステップを含む
タイミング解析方法。
【請求項１１】
請求項６乃至１０のいずれかに記載されたタイミング解析方法を、コンピュータにより実現するための、タイミング解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイミング解析装置、タイミング解析方法、及びタイミング解析プログラムに関する。
【背景技術】
【０００２】
集積回路では、クロック源（ルート）によりクロック信号が生成される。クロック信号は、所定のパスを経由して、クロック供給先素子に供給される。
【０００３】
図１は、集積回路の一例を示す概略図である。図１に示される集積回路は、複数のドライバ（Ｉ１〜Ｉ７）、及び複数のクロック供給先素子ａ〜ｄ（以下、単に、クロック供給先と記載される）を備えている。複数のドライバのうち、ドライバＩ１は、クロック信号を生成するクロック源である。ドライバＩ２及びＩ３は、クロック源Ｉ１の下位に接続されている。ドライバＩ２の下位には、ドライバＩ４及びＩ５が接続されている。ドライバＩ３の下位には、ドライバＩ６及びＩ７が接続されている。ドライバＩ４の下位にはクロック供給先素子ａが、ドライバＩ５の下位にはクロック供給先素子ｂが、ドライバＩ６の下位にはクロック供給先素子ｃが、ドライバＩ７の下位にはクロック供給先素子ｄが、それぞれ接続されている。
【０００４】
図１に示される集積回路では、クロック源Ｉ１で生成されたクロック信号が、所定のパスを介して、各クロック供給先素子（ａ〜ｄ）に供給される。例えば、クロック供給先素子ａに対しては、クロック源Ｉ１から、ドライバＩ２及びＩ４を介して、クロック信号が供給される。
【０００５】
クロック信号がクロック供給先素子に到達するまでには、時間を要する。クロック信号が伝播するのに要する時間は、遅延時間と呼ばれる。２つのパスが存在する場合、２つのパス間で遅延時間が大きくずれていると、集積回路が誤動作することがある。その遅延時間のずれは、クロックスキューとも呼ばれる。誤動作を防止するため、集積回路を設計する際に、設計した回路におけるクロックスキューが見積もられる。そして、クロックスキューに応じたマージンが設定される。設定されたマージンに基づいて、動作周波数などが決定される。もしくは、クロックスキューの検証結果に基づいて、回路設計がやり直される。
【０００６】
クロックスキューは、２つのパスの間での遅延時間の差を計算することにより、求められる。２つのパスが分岐点で分岐している場合、クロック源から分岐点までの遅延時間は、２つのパス間で同じである。従って、各パスについて、分岐点から各クロック供給先までの遅延時間が求められる。そして、分岐点から先の部分における遅延時間の差が、２つのパス間のクロックスキューとして求められる。具体的には、遅延時間は、分岐点から各クロック供給先までの経路、及び分岐点と各クロック供給先との間に存在するドライバの数、などに基づいて計算される。
【０００７】
関連技術が、特許文献１（特開２００５−１００３１０号公報）に記載されている。特許文献１には、集積回路のパスの遅延時間を計算する遅延時間計算方法が記載されている。この遅延時間計算方法は、相対するパスの遅延時間の相対ばらつきを、システマティック成分とランダム成分とに分離し、当該システマティック成分とランダム成分を用いて遅延時間を計算することを特徴としている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−１００３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、クロックスキューを低減するために、集積回路に、メッシュ部が設けられることがある。メッシュ部は、クロック信号を供給するための配線がメッシュ状に配置された部分である。メッシュ部は、少なくとも一本のバス配線を備えている。同一のバス配線に対しては、複数のドライバの出力配線が共通に接続される。
【００１０】
図２は、メッシュ部が設けられた集積回路の一例を示す概略図である。図２に示される集積回路は、クロック源Ｉ１、ドライバＩ２〜Ｉ７、メッシュ部、及びクロック供給先ａ〜ｄを備えている。メッシュ部は、ドライバＩ４〜Ｉ７の下位に接続されている。各クロック供給先ａに対しては、メッシュ部を介して、クロック信号が供給される。
【００１１】
メッシュ部に対しては、複数のドライバＩ４〜Ｉ７から、クロック信号が供給される。そのため、複数のドライバＩ４〜Ｉ７間で、クロック信号の到達時間がずれていたとしても、メッシュ部ではそのずれが平坦化される。結果として、複数のクロック供給先ａ〜ｄ間でクロック信号の到達時間を揃えることができ、クロックスキューを低減できる。
【００１２】
しかしながら、メッシュ部が設けられる場合には、２つのパスにおける分岐点を正確に定義することが困難である。
【００１３】
仮に、クロック源Ｉ１を２つのパスにおける分岐点として定義したとする。この場合、クロックスキューの計算結果には、メッシュ部によるクロックスキューの低減効果が全く反映されない。本来はクロックスキューが十分に抑制されているにもかかわらず、クロックスキューとして大きな値が見積もられてしまう。従って、不必要に冗長なマージンが設定されてしまい、チップサイズや設計工数が増加してしまうことがある。
【００１４】
一方で、メッシュ部を分岐点として定義したとする。すなわち、クロック源からメッシュ部までの間において、２つのパスの間に遅延時間が生じないものと考えたとする。この場合には、クロックスキューが過小に見積もられてしまう。なぜならば、メッシュ部内の異なる２つの点の間においても、クロック信号の遅延時間のばらつきはゼロではないからである。メッシュ部においても、異なる二つの点の間では、電圧変動、面内の傾斜、及びパターン形状などに依存して、遅延時間にシステマティックなばらつきが生じてしまう。従って、クロックスキューが過小に見積もられてしまい、集積回路が誤動作する可能性がある。
【００１５】
すなわち、メッシュ部が設けられた場合、２つのパス間のクロックスキューを正確に見積もることができない、という問題点があった。
【課題を解決するための手段】
【００１６】
本発明に係るタイミング解析装置は、前記クロック源に接続され、メッシュ状に配置された配線により形成されるメッシュ部、及び前記クロック源から前記メッシュ部を介してクロック信号を受け取るクロック供給先、を備える検証対象回路を示す回路データを取得する回路データ取得部と、前記回路データに基づいて、前記クロック源から前記クロック供給先に至る２つのパスを、第１パス及び第２パスとして設定するパス設定部と、前記第１パスにおける前記メッシュ部の出力端である第１出力端と、前記第２パスにおける前記メッシュ部の出力端である第２出力端との間の距離を、接続点間距離として算出する、距離算出部と、前記接続点間距離に基づいて、前記メッシュ部の出力端における前記クロック信号の遅延時間がどれだけばらつくかを示すグローバル係数を決定する、グローバル係数決定部と、前記グローバル係数に基づいて、前記クロック源から前記第１出力端までの遅延時間及び前記クロック源から前記第２出力端までの遅延時間を、それぞれグローバル第１遅延時間及びグローバル第２遅延時間として算出する、グローバル遅延時間算出部と、前記グローバル第１遅延時間及び前記グローバル第２遅延時間算出部に基づいて、前記第１パス及び前記２パスにおけるクロック供給タイミングを検証する、タイミング検証部とを具備する。
【００１７】
本発明者の知見によれば、メッシュ部における２つの点の間では、クロック信号の遅延時間のばらつきが、２つの点の間の距離に依存する。従って、上述のように、接続点間距離に応じてグローバル係数を求めることにより、メッシュ部を設けた場合のクロックスキューを正確に見積もることができる。
【００１８】
本発明に係るタイミング解析方法は、コンピュータにより、前記クロック源に接続され、メッシュ状に配置された配線により形成されるメッシュ部、及び前記クロック源から前記メッシュ部を介してクロック信号を受け取るクロック供給先、を備える検証対象回路を示す回路データを取得するステップと、コンピュータにより、前記回路データに基づいて、前記クロック源から前記クロック供給先に至る２つのパスを、第１パス及び第２パスとして設定するステップと、コンピュータにより、前記第１パスにおける前記メッシュ部の出力端である第１出力端と、前記第２パスにおける前記メッシュ部の出力端である第２出力端との間の距離を、接続点間距離として算出するステップと、コンピュータにより、前記接続点間距離に基づいて、前記メッシュ部の出力端における前記クロック信号の遅延時間がどれだけばらつくかを示すグローバル係数を決定するステップと、コンピュータにより、前記グローバル係数に基づいて、前記クロック源から前記第１出力端までの遅延時間及び前記クロック源から前記第２出力端までの遅延時間を、それぞれグローバル第１遅延時間及びグローバル第２遅延時間として算出するステップと、コンピュータにより、前記グローバル第１遅延時間及び前記グローバル第２遅延時間算出部に基づいて、前記第１パス及び前記２パスにおけるクロック供給タイミングを検証するステップとを具備する。
【００１９】
本発明に係るタイミング解析プログラムは、上述のタイミング解析方法をコンピュータにより実現するための、プログラムである。
【発明の効果】
【００２０】
本発明によれば、クロックスキューを正確に見積もることのできる、タイミング解析装置、タイミング解析方法、及びタイミング解析プログラムが提供される。
【図面の簡単な説明】
【００２１】
【図１】集積回路の一例を示す概略図である。
【図２】メッシュ部が設けられた集積回路の一例を示す概略図である。
【図３】実施形態の概要を示す概略図である。
【図４】タイミング解析装置を示す機能ブロック図である。
【図５】解析対象回路の一例を示す概略図である。
【図６】係数ライブラリに格納されたデータを示す概念図である。
【図７】遅延情報格納部に格納されたデータを示す概念図である。
【図８】タイミング検証方法を示すフローチャートである。
【図９】メッシュ部の一例を示す概略図である。
【図１０】具体例における解析対象回路を示す概略図である。
【発明を実施するための形態】
【００２２】
以下に、図面を参照しつつ、本発明の実施形態について説明する。
【００２３】
まず、本実施形態の概要について説明する。
【００２４】
図３は、本実施形態の概要を示す概略図である。図３に例示されるタイミング解析対象回路は、クロック源（ルート）、メッシュ部１４、及びクロック供給先を含んでいる。クロック供給先は、メッシュ部１４を介してクロック源に接続されている。クロック信号は、クロック源からメッシュ部１４を介してクロック供給先に供給される。ここで、タイミング解析対象となるクロック信号のパスとして、クロック源からクロック供給先に至る２つのパス（第１パス及び第２パス）が設定されているものとする。
【００２５】
２つのパスのクロックスキューは、一方のパスにおける遅延時間と、他方のパスにおける遅延時間との差により、求められる。但し、各パスの遅延時間は、基準値を中心としてばらつくことが考えられる。すなわち、各パスの遅延時間Ｔｔは、最小値Ｔｔｍｉｎから最大値Ｔｔｍａｘまでの範囲を有すると考えられる。従って、クロックスキューは、一方のパスの遅延時間の最大値Ｔｔｍａｘと、他方のパスの遅延時間の最小値Ｔｔｍｉｎとに基づいて、見積もられる。
【００２６】
ここで、タイミング解析対象回路について、クロック源からメッシュ部１４の出力端１３までの領域が、グローバルエリアと定義される。また、メッシュ部１４の出力端からクロック供給先までの領域が、ローカルエリアと定義される。各パスの遅延時間は、それぞれのエリアにおいて、基準値を中心としたばらつきを有すると考えられる。すなわち、各パスのグローバルエリアにおける遅延時間は、最小値Ｔｇｍｉｎから最大値Ｔｇｍａｘまでの範囲を有する。各パスのローカルエリアにおける遅延時間は、最小値Ｔｌｍｉｎから最大値Ｔｌｍａｘまでの範囲を有する。各パスの遅延時間の最大値Ｔｔｍａｘは、グローバルエリアの最大値Ｔｇｍａｘとローカルエリアの最大値Ｔｌｍａｘとの和であると考えられる。各パスの遅延時間の最小値Ｔｔｍｉｎは、グローバルエリアの最小値Ｔｇｍｉｎとローカルエリアの最小値Ｔｍｉｎとの和であると考えられる。
【００２７】
グローバルエリアにおける遅延時間に着目する。グローバルエリアにおける遅延時間は、基準値Ｔｇｓを中心とした±ΔＴｇの範囲で、ばらつくものと考えられる。本実施形態では、ΔＴｇのＴｇｓに対する割合（＝ΔＴｇ／Ｔｇｓ）が、グローバル係数αｇとして定義されるものとする。この場合、グローバルエリアにおける最大値Ｔｇｍａｘは、「Ｔｇｓ（１＋αｇ）」として表現され、最小値Ｔｇｍｉｎは「Ｔｇｓ（１−αｇ）」として表現される。
【００２８】
ここで、本実施形態では、グローバル係数αｇとして、２つのパスの間の相対的なばらつきが反映された値が採用される。メッシュ部１４内の異なる２つの点の間では、遅延時間に相対的なばらつきが生じる。この相対的なばらつきの量は、２つの点の間の距離に依存する。すなわち、その距離が小さければ相対的なばらつきは少なく、その距離が大きければ相対的なばらつきは大きい。
【００２９】
従って、本実施形態では、第１パスにおけるメッシュ部１４の出力端１３ａと、第２パスにおけるメッシュ部１４の出力端１３ｂとの位置が識別される。そして、出力端１３ａと出力端１３ｂとの間の距離Ｌｇが算出される。そして、距離Ｌｇに応じて、グローバル係数αｇが決定される。すなわち、本実施形態では、基準値Ｔｇｓに対するばらつきを示すグローバル係数αとして、２つのパスの間の相対的なばらつきが反映された値が用いられる。そして、決定されたグローバル係数αｇに基づいて、各パスに関する最大値Ｔｇｍａｘ及び最小値Ｔｇｍｉｎなどが求められ、クロックスキューが見積もられる。
【００３０】
上述のように、距離Ｌｇに応じてグローバル係数αｇが決定されるため、メッシュ部１４が設けられた場合のクロックスキューを正確に見積もることができる。これにより、精度よくタイミング解析を行うことが可能になる。
【００３１】
続いて、以下に、本実施形態を詳細に説明する。
【００３２】
図４は、本実施形態に係るタイミング解析装置１を示す機能ブロック図である。タイミング解析装置１は、遅延情報格納部３、係数ライブラリ４、回路データ取得部５、パス設定部６、距離算出部７、グローバル係数決定部８、グローバル遅延時間算出部９、タイミング検証部１０、ローカル係数決定部１１、及びローカル遅延時間算出部１２を備えている。このうち、遅延情報格納部３及び係数ライブラリ４は、ハードディスクなどに例示される記憶媒体により実現される。また、回路データ取得部５、パス設定部６、距離算出部７、グローバル係数決定部８、グローバル遅延時間算出部９、タイミング検証部１０、ローカル係数決定部１１、及びローカル遅延時間算出部１２は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）などの記憶媒体に格納されたタイミング解析プログラムがＣＰＵにより実行されることで、実現される。
【００３３】
回路データ取得部５は、解析対象である回路を示す回路データを取得する。具体的には、回路データ取得部５は、回路データとして、予め用意された回路情報及びレイアウト情報を取得する。回路情報は、解析対象回路に含まれる素子群の接続関係や、素子群の物理的性質などを示すデータである。レイアウト情報は、素子群の配置、及び素子同士を接続する配線の配置などを示すデータである。
【００３４】
図５は、解析対象回路の一例を示す概略図である。図５に示される解析対象回路は、クロック源ＩＧ１、複数のドライバＩＧ２〜ＩＧ７、メッシュ部１４、複数のドライバＩＬ１〜ＩＬ４、フリップフロップ回路ＦＦ１、及びフリップフロップ回路ＦＦ２を備えている。クロック源ＩＧ１の下位には、ドライバＩＧ２及びＩＧ３が接続されている。ドライバＩＧ２の下位には、ドライバＩＧ４及びＩＧ５が接続されている。ドライバＩＧ３の下位には、ドライバＩＧ６及びＩＧ７が接続されている。ドライバＩＧ４〜ＩＧ７の下位には、メッシュ部１４が共通に接続されている。メッシュ部１４には、異なる位置に、ドライバＩＬ１及びＩＬ２が接続されている。ドライバＩＬ１は、ドライバＩＬ３、及びフリップフロップ回路ＦＦ１を介して、フリップフロップ回路ＦＦ２に接続されている。ドライバＩＬ２は、ドライバＩＬ４を介して、フリップフロップ回路ＦＦ２に接続されている。
【００３５】
パス設定部６は、回路データに基づいて、タイミング解析の対象となる２つのパス（第１パス及び第２パス）を設定する。パス設定部６は、例えば、図示しない入力装置を介してユーザから入力されたパスの指定情報に基づいて、２つのパスを設定する。パス設定部６は、設定した２つのパスを示すパスデータを生成する。本実施形態では、フリップフロップ回路ＦＦ２がクロック供給先として決定されるものとする。また、第１パスとして、クロック源１から、メッシュ部１４、ドライバＩＬ２、及びドライバＩＬ４を介してフリップフロップ回路ＦＦ２に至るパスが設定されるものとする。第２パスとして、クロック源１から、メッシュ部１４、ドライバＩＬ１、ＩＬ３、及びフリップフロップ回路ＦＦ１を介してフリップフロップ回路ＦＦ２に至るパスが設定されるものとする。
【００３６】
距離算出部７は、パスデータに基づいて、第１パスに沿うメッシュ部１４の出力端１３ａ（第１出力端）の位置を識別する。また、第２パスに沿うメッシュ部１４の出力端１３ｂ（第２出力端）の位置を識別する。そして、距離算出部７は、第１出力端１３ａと第２出力端１３ｂとの間の距離を、接続点間距離Ｌｇとして算出する。距離算出部７は、算出した接続点間距離Ｌｇを示す接続点間距離データを生成する。
【００３７】
グローバル係数決定部８は、グローバル係数αｇを決定する。具体的には、グローバル係数決定部８は、接続点間距離データに基づいて、グローバル係数αｇを決定する。グローバル係数決定部８は、決定したグローバル係数αｇを示すグローバル係数データを生成する。ここで、グローバル係数決定部８は、係数ライブラリ４を参照して、グローバル係数αｇを決定する。以下に、係数ライブラリ４に格納されたデータを説明する。
【００３８】
図６は、係数ライブラリ４に格納されたデータを示す概念図である。図６に示されるように、係数ライブラリ４には、グローバル係数ライブラリ、及びローカル係数ライブラリが含まれている。グローバル係数決定部８は、グローバル係数ライブラリを参照し、グローバル係数を決定する。そこで、ここでは、グローバル係数ライブラリについて説明する。
【００３９】
図６に示されるように、グローバル係数ライブラリには、接続点間距離Ｌｎ、ステージ段数、及びグローバル係数αｇの対応関係が示されている。既述のように、メッシュ部１４が設けられる場合であっても、グローバルエリアにおいて、２つのパス間では遅延時間が相対的にばらつく。グローバルエリアにおける遅延時間の相対的なばらつき量は、出力端同士の間の距離に依存する。具体的には、出力端同士の間の距離が短いほど、ばらつき量が少なくなる。従って、グローバル係数ライブラリでは、接続点間距離に応じて、グローバル係数αｇが決められている。また、遅延時間のばらつきは、クロック源からメッシュ部１４までの間に設けられたドライバの数（ステージ段数）に依存することもある。そこで、グローバル係数αｇは、ステージ段数に応じて、設定されている。
【００４０】
グローバル係数ライブラリは、例えば、予め実験データなどを求めることにより、準備される。
【００４１】
グローバル遅延時間算出部９は、グローバル係数データに基づいて、第１パス及び第２パスそれぞれのグローバル遅延時間を算出する。第１パスのグローバル遅延時間が、以下、第１グローバル遅延時間と記載される。第２パスのグローバル遅延時間が、以下、第２グローバル遅延時間として記載される。具体的には、第１グローバル遅延時間として、第１パスに沿うグローバルエリアの遅延時間の最大値Ｔｇｍａｘ−１が計算される。また、第２グローバル遅延時間として、第２パスに沿うグローバルエリアにおける遅延時間の最小値Ｔｇｍｉｎ−２が計算される。グローバル遅延時間算出部９は、グローバル遅延時間（Ｔｇｍａｘ−１及びＴｇｍｉｎ−２）を示すグローバル遅延時間データを生成する。
【００４２】
詳細には、グローバル遅延時間算出部９は、遅延情報格納部３を参照することにより、各パスの基準値Ｔｇｓを取得する。そして、基準値Ｔｇｓとグローバル係数αｇとに基づいて、グローバル遅延時間を算出する。
【００４３】
ここで、遅延情報格納部３に格納されたデータについて説明する。図７は、遅延情報格納部３に格納されたデータを示す概念図である。図７に示されるように、遅延情報格納部３には、グローバル遅延情報、及びローカル遅延情報が格納されている。グローバル遅延時間算出部９は、グローバル遅延情報に基づいて、グローバル遅延時間を算出する。そこで、グローバル遅延情報について、以下に説明する。
【００４４】
図７に示されるように、グローバル遅延情報は、メッシュ部１４の出力端の位置と、グローバル基準値Ｔｇｓとの対応関係を示している。グローバル基準値Ｔｇｓは、クロック源ＩＧ１からメッシュ部１４の出力端までの間の距離、及びクロック源ＩＧ１とメッシュ部１４との間に設けられたドライバ数（ステージ段数）などに基づいて、予め決定されている。
【００４５】
すなわち、グローバル遅延時間算出部９は、グローバル遅延情報を参照し、第１パスに対応するグローバル基準値「Ｔｇｓ−１」を取得する。そして、グローバル遅延時間算出部９は、グローバル基準値「Ｔｇｓ−１」に対し、「１＋αｇ」を乗算する。これにより、第１グローバル遅延時間Ｔｇｍａｘ−１が計算される。また、第２パスに対応するグローバル基準値「Ｔｇｓ−２」に対し、「１−αｇ」が乗算される。これにより、第２グローバル遅延時間Ｔｇｍｉｎ−２が計算される。
【００４６】
ローカル係数決定部１１は、ローカル係数αｌを決定する機能を備えている。ローカル係数決定部１は、パスデータに基づいて、ローカル係数αｌを決定する。ここで、ローカル係数は、ローカルエリアにおける遅延時間が、基準値に対してどれだけずれるかを示す数値である。ローカル係数決定部は、ローカル係数ライブラリを参照して、ローカル係数αｌを決定する。そこで、以下に、ローカル係数ライブラリについて説明する。
【００４７】
図６に示されるように、ローカル係数ライブラリは、対角距離とローカル係数αｌとの関係を示している。図５に示されるように、ローカルエリアにおいて、２つのパスに含まれるドライバの全てを含む矩形を描いたとする。対角距離は、その矩形の対角線の距離を示している。ローカルエリアにおける２つのパスの相対的なばらつき量は、その矩形の対角距離に依存している。このローカル係数ライブラリは、予め実験データなどを取得することによって、用意される。
【００４８】
すなわち、ローカル係数決定部１１は、パスデータに基づいて、矩形の対角距離を求める。そして、ローカル係数ライブラリを参照し、求めた対角距離に応じた係数を、ローカル係数αｌとして決定する。
【００４９】
ローカル係数決定部１１は、決定したローカル係数を示すローカル係数データを生成する。
【００５０】
ローカル遅延時間算出部１２は、ローカル係数データに基づいて、第１パス及び第２パスそれぞれのローカル遅延時間を算出する。第１パスのローカル遅延時間が、以下、第１ローカル遅延時間と記載される。第２パスのローカル遅延時間が、以下、第２ローカル遅延時間として記載される。具体的には、ローカル遅延時間算出部１２は、第１ローカル遅延時間として、第１パスに沿うローカルエリアの遅延時間の最大値Ｔｌｍａｘ−１を計算する。また、第２ローカル遅延時間として、第２パスに沿うローカルエリアの遅延時間の最小値Ｔｌｍｉｎ−２が計算される。
【００５１】
詳細には、ローカル遅延時間算出部１２は、遅延情報格納部３のローカル遅延情報を参照することにより、ローカル遅延時間を算出する。ここで、ローカル遅延情報について、以下に説明する。
【００５２】
図７に示されるように、ローカル遅延情報は、距離Ｌ−ｎ、ステージ段数、及び基準値Ｔｌｓ（ローカル基準値）の対応関係を示している。距離Ｌ−ｎは、メッシュ部１４の出力端からクロック供給先までの間のパスに沿う距離である。段数は、メッシュ部１４の出力端からクロック供給先までのドライバの数を示している。ローカル基準値Ｔｌｓは、ローカルエリアにおける遅延時間の基準値を示している。
【００５３】
すなわち、ローカル遅延時間算出部１２は、ローカル遅延情報を参照し、各パスに対応するローカル基準値Ｔｌｓを取得する。ローカル遅延時間算出部１２は、第１パスに対応するローカル基準値Ｔｌｓ−１に対し、「１＋αｌ」を乗算することにより、第１ローカル遅延時間Ｔｌｓｍａｘ−１を計算する。また、第２パスに対応するローカル基準値Ｔｌｓ−２に対し、「１−αｌ」を乗算することにより、第２ローカル遅延時間Ｔｌｓｍｉｎ−２を計算する。
【００５４】
タイミング検証部１０は、グローバル遅延時間データ及びローカル遅延時間データに基づいて、クロック供給先に供給されるクロック信号のタイミングを解析する。具体的には、第１グローバル遅延時間Ｔｇｍａｘ−１と第１ローカル遅延時間Ｔｌｍａｘ−１とに基づいて、第１パス全体における遅延時間の最大値Ｔｔｍａｘ−１が求められる。また、第２グローバル遅延時間Ｔｌｍｉｎ−１と第２ローカル遅延時間Ｔｌｍｉｎ−２とに基づいて、第２パス全体における遅延時間の最小値Ｔｔｍｉｎ−１が求められる。そして、第１パス全体における遅延時間の最大値と第２パス全体における遅延時間の最小値との差「（Ｔｇｍａｘ−１）−（Ｔｌｍｉｎ−２）」が、クロックスキューとして求められ、このクロックスキューの値が検証される。タイミング検証部１０は、検証結果を出力する。
【００５５】
続いて、上述のタイミング解析装置１の動作方法について説明する。図８は、本実施形態に係るタイミング検証方法を示すフローチャートである。
【００５６】
ステップＳ１０；回路データの取得
まず、回路データ取得部５が、解析対象である回路を示す回路データを取得する。
【００５７】
ステップＳ２０；パス設定
次いで、パス設定部６が、タイミング解析対象である２つのパス（第１パス及び第２パス）を設定する。具体的には、パス設定部６は、クロック供給先を決定する。そして、クロック源ＩＧ１からクロック供給先に至る２つのパスが設定される。
【００５８】
ステップＳ３０；接続点間距離の計算
次いで、距離算出部７が、パスデータに基づいて、接続点間距離Ｌｇを算出する。距離算出部７は、接続点間距離Ｌｇを示す接続点間距離データを生成する。
【００５９】
ステップＳ４０；グローバル係数の決定
次いで、グローバル係数決定部８が、接続点間距離データに基づいて、グローバル係数αｇを決定する。グローバル係数決定部８は、係数ライブラリ４を参照することにより、グローバル係数αｇを決定する。すなわち、グローバル係数決定部８は、接続点間距離Ｌｇに対応するグローバル係数αｇを決定する。グローバル係数決定部８は、決定したグローバル係数αｇの値を示すグローバル係数データを生成する。
【００６０】
ステップＳ５０；グローバル遅延時間の算出
次いで、グローバル遅延時間算出部９が、グローバル係数データに基づいて、グローバル遅延時間を算出する。グローバル遅延時間算出部９は、第１パス及び第２パスについて、それぞれ、第１グローバル遅延時間Ｔｇｍａｘ−１及び第２パスのグローバル遅延時間Ｔｇｍｉｎ−２を計算する。
【００６１】
ステップＳ６０；ローカル係数の決定
続いて、ローカル係数決定部１１が、パスデータに基づいて、ローカル係数αｌを決定する。ローカル係数決定部１１は、係数ライブラリ４のローカル係数ライブラリを参照することにより、ローカル係数αｌを決定する。
【００６２】
すなわち、ローカル係数決定部１１は、パスデータに基づいて、矩形の対角距離を求める。そして、ローカル係数ライブラリを参照し、求めた対角距離に応じた係数を、ローカル係数αｌとして決定する。ローカル係数決定部１１は、決定したローカル係数を示すローカル係数データを生成する。
【００６３】
ステップＳ７０；ローカル遅延時間の算出
次いで、ローカル遅延時間算出部１２が、ローカル係数データに基づいて、ローカル遅延時間を算出する。ローカル遅延時間算出部９は、第１パス及び第２パスについて、それぞれ、第１ローカル遅延時間及び第２ローカル遅延時間を計算する。
【００６４】
ステップＳ８０；タイミング検証
続いて、タイミング検証部１０が、グローバル遅延時間データ及びローカル遅延時間データに基づいて、クロック供給先に供給されるクロック信号のタイミングを解析する。タイミング検証部１０は、検証結果を出力する。
【００６５】
以上説明したように、本実施形態によれば、メッシュ部１４における第１出力端１３ａと第２出力端１３ｂとの間の距離に基づいて、グローバルエリアにおける遅延時間のばらつきを示す、グローバル係数が求められる。そして、グローバル係数に基づいて、第１パスと第２パスとの間のクロックスキューが求められる。メッシュ部１４を設けた場合であっても、グローバルエリアの遅延時間のばらつきとして適切な値を採用することができる。これにより、クロックスキューが適切に見積もられる。
【００６６】
尚、本実施形態では、距離算出部７が、第１出力端１３ａ及び第２出力端１３ｂそれぞれの位置を識別する。メッシュ部１４の出力端の位置の識別手法について、以下に説明する。図９は、メッシュ部１４の構成の一例を示す概略図である。図９に示されるように、メッシュ部１４には、バス配線１５が、メッシュ状に配置されている。図９に示される例では、バス配線１５に対して、２つのドライバＩＬ１及びＩＬ２が接続されている。ここで、ドライバＩＬ１の入力端１７−１は、配線１８−１を介して、バス配線１５の出力端１６−１に接続されている。また、ドライバＩＬ２の入力端１７−２は、配線１８−２を介して、バス配線１５の出力端１６−２に接続されている。接続点間距離Ｌｇを求める際には、距離メッシュ部１４の出力端として、各ドライバの入力端１７（１７−１、１７−２）が用いられてもよいし、バス配線１５の出力端１６（１６−１、１６−２）が用いられてもよい。メッシュ部１４における遅延時間のばらつきをより正確に見積もる観点からは、メッシュ部１４として、バス配線１５部分だけをメッシュ部１４として定義することが好ましい。すなわち、メッシュ部１４の出力端として、点１６（１６−１及び１６−２）を用いることが好ましい。しかしながら、データ構造上、バス配線１５の出力端１６（１６−１、１６−２）における位置は、簡単には識別できないことが多い。また、配線１７（１７−１及び１７−２）に起因する遅延時間のばらつきは、十分に小さいことが多い。そこで、各ドライバの入力端１７（１７−１及び１７−２）をメッシュ部１４の出力端と定義してもよい。各ドライバの入力端１７の位置は、データ構造上、容易に識別できることが多い。従って、接続点間距離を求める際の計算負荷を軽減することが可能になる。
【００６７】
また、本実施形態では、第１グローバル遅延時間として（第１出力端１３ａにおけるクロック信号の到達時間の最大値）が、「グローバル基準値×（１＋αｇ）」により、算出される場合について説明した。すなわち、グローバル基準値とは、第１出力端１３ａにおける遅延時間の中心値を示すことになる。但し、基準値として、中心値とは別の値（例えば、遅延時間の最小値など）が採用されてもよい。グローバル係数αｇの値は、グローバル基準値としてどのような値が採用されているかに応じて、決定される。第２グローバル遅延時間、第１ローカル遅延時間、及び第２ローカル遅延時間についても、同様である。
【００６８】
続いて、本実施形態をより詳細に説明するために、本実施形態の具体例について説明する。本具体例では、タイミング解析として、ＳＥＴＵＰ解析が行われるものとする。
【００６９】
ステップＳ１０において、回路データ取得部５が解析対象回路を取得する。図１０は、本具体例において与えられる解析対象回路を示す概略図である。すなわち、回路データ取得部５が、図１０に示される回路データを取得したとする。尚、図１０に示されるように、解析対象回路は、クロック源ＩＧ１、ドライバＩＧ１〜ＩＧ７、メッシュ部１４、ドライバＩＬ１〜ＩＬ５、ドライバＩＤ１〜ＩＤ４、及びフリップフロップ回路ＦＦ１〜ＦＦ３を備えている。ドライバＩＧ１〜ＩＧ７は、クロック源ＩＧ１とメッシュ部１４との間に配置されている。ドライバＩＬ１〜ＩＬ５、ドライバＩＤ１〜ＩＤ４、及びフリップフロップ回路ＦＦ１〜ＦＦ３は、メッシュ部１４の下位に接続されている。
【００７０】
ステップＳ２０において、パス設定部６が、クロック供給先としてＦＦ３を設定したとする。そして、第１パス（ラウンチパス）として、クロック源ＩＧ１から、メッシュ部１４、ドライバＩＬ１、ＩＬ３、ＦＦ２、ＩＤ３、及びＩＤ４を介して、ＦＦ３へ至るパスが設定されたとする。また、第２パス（キャプチャーパス）として、クロック源ＩＧ１から、ドライバＩＬ４、及びＩＬ５を介して、ＦＦ３へ至るパスが設定されたとする。
【００７１】
ステップＳ３０において、距離算出部７が、第１出力端１３ａと第２出力端１３ｂとの間の距離を、接続点間距離Ｌｇとして算出する。
【００７２】
ステップＳ４０において、グローバル係数決定部が、グローバル係数αｇを決定する。
【００７３】
ステップＳ５０において、グローバル遅延時間算出部９が、グローバル遅延時間を算出する。ここで、ラウンチパスに沿うグローバル基準値Ｔｇｓ−１（第１出力端１３ａに対応するグローバル基準値）がＡ２ｇであったとする。また、キャプチャーパスに沿うグローバル基準値Ｔｇｓ−２（第２出力端１３ｂに対応するグローバル基準値）がＢ２ｇであったとする。このとき、グローバル遅延時間算出部９は、第１グローバル遅延時間として、「Ａｇ２×（１＋αｇ）」という値を算出する。また、第２グローバル遅延時間として、「Ｂｇ２×（１−αｇ）」という値が算出される。
【００７４】
ステップＳ６０において、ローカル係数決定部１１が、ラウンチパス及びキャプチャーパスのそれぞれについて、ローカル係数αｌを決定する。この際、ローカル係数決定部１１は、図１０に示されるように、ＩＬ１、ＩＬ３、ＦＦ２、ＩＤ３、ＩＤ４、ＩＬ４、ＩＬ５、及びＦＦ３が含まれる矩形を識別する。そして、その矩形の対角線の長さＬＩが求められる。ローカル係数αｌとしては、その長さＬＩに対応する値が採用される。またローカル係数決定部１１は、各パスにおけるステージ段数を求める。ローカル係数α１としては、ステージ段数に対応する値が採用される。今、ラウンチパスでは、ローカルエリア内におけるステージ段数が、５である。従って、ラウンチパスのローカル係数として、Ｌ１及びステージ段数（５）に対応する値αｌ（Ｌ１、５）が採用される。また、キャプチャーバスのステージ段数は、２である。従って、キャプチャーバスのローカル係数として、Ｌ１及びステージ（２）に対応する値αｌ（Ｌ１、２）が採用される。
【００７５】
ステップＳ７０において、ローカル遅延時間算出部１２が、ローカル遅延時間を算出する。ここで、ラウンチパスに沿うローカル基準値（Ｔｌｓ−１）が「Ａ２ｌ＋Ｄ２３」であったとする。また、キャプチャーパスに沿うローカル基準値Ｔｌｓ−２が「Ｂ２ｌ」であったとする。このとき、ローカル遅延時間算出部１２は、第１ローカル遅延時間として、「（Ａ２ｌ＋Ｄ２３）×（１＋α（Ｌ１、５））」という値を算出する。第２ローカル遅延時間としては、「Ｂ２ｌ×（１−α（Ｌ１、２））」という値が算出される。
【００７６】
ステップＳ８０において、タイミング検証部１０は、ラウンチパスにおける最大遅延時間と、キャプチャーパスにおける最小遅延時間とを計算する。ラウンチパスにおける最大遅延時間は、第１グローバル遅延時間と第１ローカル遅延時間との和により、求められる。一方、キャプチャーパスにおける最小遅延時間は、第２グローバル遅延時間と第２ローカル遅延時間との和により、求められる。タイミング検証部１０は、求めた最大遅延時間及び最小遅延時間に基づいて、ラウンチパスとキャプチャーパスとの間のクロックスキューを求め、クロックスキューを検証する。
【００７７】
尚、グローバルエリアにおける遅延時間の基準値Ｔｇｌは、ドライバ部分と素子間を接続する配線部分とで別々に設定されていてもよい。この場合、グローバル係数αｇも、ドライバ部分と配線部分とで、別々に設定することができる。
【００７８】
例えば、ラウンチパスについて、ドライバ部分における遅延時間の基準値がＡ２ｇ［ＩＯ］という値であったとする。また、ラウンチパスについて、配線部分における遅延時間の基準値が、Ａ２ｇ［ＩＣ］という値であったとする。更に、ドライバ部分に対応するグローバル係数αｇとして、αｉｇという値が得られたとする。また、配線部分に対応するグローバル係数αｇとして、αｎｇという値が得られたとする。この場合、ラウンチパスにおける最大遅延時間は、下記式１により、計算される。
（数式１）；Ａ２ｇ［ＩＯ］×（１＋αｉｇ）＋Ａ２ｇ［ＩＣ］×（１＋αｎｇ）＋（Ａ２ｌ＋Ｄ２３）×（１＋α（Ｌ１、５））
【００７９】
また、キャプチャーパスについて、ドライバ部分における遅延時間の基準値がＢ２ｇ［ＩＯ］という値であったとする。また、ラウンチパスについて、配線部分における遅延時間の基準値が、Ｂ２ｇ［ＩＣ］という値であったとする。更に、ドライバ部分に対応するグローバル係数αｇとして、αｉｇという値が得られたとする。また、配線部分に対応するグローバル係数αｇとして、αｎｇという値が得られたとする。この場合、ラウンチパス全体の遅延時間は、下記式２により、計算される。
（数式２）；Ｂ２ｇ［ＩＯ］×（１＋αｉｇ）＋Ｂ２ｇ［ＩＣ］×（１＋αｎｇ）＋Ｂ２ｌ×（１＋α（Ｌ１、５））
【００８０】
上式１及び２を用い、キャプチャーパスの遅延時間とラウンチパスの遅延時間との差を求めることにより、タイミング検証を行うことができる。
【００８１】
以上、本発明を実施形態により詳細に説明した。但し、本発明は、上述の実施形態に限定されるものではなく、当業者にとって自明な範囲で適宜変更されて用いられることも可能である。
【符号の説明】
【００８２】
１  タイミング解析装置
２  タイミング解析プログラム
３  遅延情報格納部
４  係数ライブラリ
５  回路データ取得部
６  パス設定部
７  距離算出部
８  グローバル係数決定部
９  グローバル遅延時間算出部
１０  タイミング検証部
１１  ローカル係数決定部
１２  ローカル遅延時間算出部
１３ａ  第１出力端
１３ｂ  第２出力端
１４  メッシュ部
１５  バス配線
１６（１６−１、１６−２）  バス出力端
１７（１７−１、１７−２）  ドライバ入力端
１８（１８−１、１８−２）  配線
【図１】
0005512227.tif 000002
【図２】
0005512227.tif 000003
【図３】
0005512227.tif 000004
【図４】
0005512227.tif 000005
【図５】
0005512227.tif 000006
【図６】
0005512227.tif 000007
【図７】
0005512227.tif 000008
【図８】
0005512227.tif 000009
【図９】
0005512227.tif 000010
【図１０】
0005512227.tif 000011