(57)【特許請求の範囲】
【請求項１】
クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得手段と、
クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得手段と、
クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出手段と、
前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出手段と、を備える、
ことを特徴とする遅延解析装置。
【請求項２】
前記クロック情報算出手段は、クロックメッシュ上の２つの位置におけるクロック信号の遅延時間を、その２つの位置とクロックメッシュ接続素子の接続位置との位置関係に基づいて線形補間することにより、該クロックメッシュ接続素子に入力されるクロック信号の遅延時間を算出する、
ことを特徴とする請求項１に記載の遅延解析装置。
【請求項３】
前記クロック情報算出手段は、クロックメッシュ上の２つの位置におけるクロック信号の波形鈍り値を、その２つの位置とクロックメッシュ接続素子の接続位置との位置関係に基づいて線形補間することにより、該クロックメッシュ接続素子に入力されるクロック信号の波形鈍り値を算出する、
ことを特徴とする請求項１または２に記載の遅延解析装置。
【請求項４】
前記クロック情報算出手段は、縦横にマトリクス状に導線が配置されたクロックメッシュの、縦方向、横方向のいずれか一方向の位置関係に基づいて線形補間する、
ことを特徴とする請求項２または３に記載の遅延解析装置。
【請求項５】
第１の論理回路と同一形状のクロックメッシュと、そのクロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、を有する第２の論理回路の回路情報を取得する第２回路情報取得手段、を備え、
前記クロック情報取得手段は、第２の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を取得する手段、を備え、
前記クロック情報算出手段は、第２の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値に基づいて、第１の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出する、
ことを特徴とする請求項１乃至４のいずれか１項に記載の遅延解析装置。
【請求項６】
第１の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間と、
第１の論理回路の回路素子に入力されるクロック信号の遅延時間とを基に、最も速いタイミングでクロック信号を受け取る素子と最も遅いタイミングでクロック信号を受け取る素子との間の時間差を算出するクロックスキュー算出手段、を備える、
ことを特徴とする請求項１乃至５のいずれか１項に記載の遅延解析装置。
【請求項７】
第１回路情報取得手段と、クロック情報取得手段と、クロック情報算出手段と、遅延時間算出手段と、を備える装置が実行する遅延解析方法であって、
前記第１回路情報取得手段が、クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得ステップと、
前記クロック情報取得手段が、クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得ステップと、
前記クロック情報算出手段が、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出ステップと、
前記遅延時間算出手段が、前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出ステップと、を有する、
ことを特徴とする遅延解析方法。
【請求項８】
コンピュータに、
クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得ステップと、
クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得ステップと、
クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出ステップと、
前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出ステップと、を実行させる、
ことを特徴とする遅延解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遅延解析装置、遅延解析方法、及び遅延解析プログラムに関する。
【背景技術】
【０００２】
半導体集積回路を高速に動作させるためには、各フリップフロップに入力されるクロック信号の遅延時間のばらつき（以下、「クロックスキュー」という）を抑制することが重要である。遅延時間はＳＰＩＣＥシミュレーションによって計算することができるが、ＳＰＩＣＥシミュレーションは、トランジスタレベルで計算を行っているために、大規模な半導体集積回路で実行すると、現実的時間内に計算が終了しないという問題がある。特許文献１には、回路内で使用されるゲートやフリップフロップ等の論理ブロックに遅延情報を持たせることによって、高速に遅延時間を算出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０１−２７１８６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クロックスキューを抑制する手法として、メッシュ状にクロックネットをレイアウトする手法があるが、特許文献１に記載されているような方法では、メッシュ状クロックネット（以下、「クロックメッシュ」という）のような多入力多出力で入出力信号の状態が相互に影響しあう回路周辺の遅延計算を精度よく行うことができない。
【０００５】
クロックメッシュ周辺の回路のみ精度の高いＳＰＩＣＥシミュレーションを実行し、他の部分は従来方法を使用することも考えられるが、この場合、クロックメッシュ周辺の回路に設計変更があると、その度に計算時間の長いＳＰＩＣＥシミュレーションを実行しなければならず、設計期間の増大を招くという問題がある。
【０００６】
本発明はこのような問題に鑑みてなされたものであり、高い精度を保ちながらも、高速に遅延時間を算出できる遅延解析装置、遅延解析方法、及び遅延解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点にかかる遅延解析装置は、
クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得手段と、
クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得手段と、
クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出手段と、
前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出手段と、を備える、
ことを特徴とする。
【０００８】
上記目的を達成するため、本発明の第２の観点にかかる遅延解析方法は、
第１回路情報取得手段と、クロック情報取得手段と、クロック情報算出手段と、遅延時間算出手段と、を備える装置が実行する遅延解析方法であって、
前記第１回路情報取得手段が、クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得ステップと、
前記クロック情報取得手段が、クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得ステップと、
前記クロック情報算出手段が、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出ステップと、
前記遅延時間算出手段が、前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出ステップと、を有する、
ことを特徴とする。
【０００９】
上記目的を達成するため、本発明の第３の観点にかかる遅延解析プログラムは、
コンピュータに、
クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得ステップと、
クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得ステップと、
クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出ステップと、
前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出ステップと、を実行させる、
ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、高い精度を保ちながらも、高速に遅延時間を算出できる遅延解析装置、遅延解析方法、及び遅延解析プログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る遅延解析装置の構成を示すブロック図である。
【図２】クロックメッシュを有する論理回路のレイアウトを示す図である。
【図３】図２に示す論理回路の設計変更前のレイアウトを示す図である。
【図４】記憶部に記憶された設計変更前クロックメッシュ遅延時間・波形鈍り値を説明するための図である。
【図５】クロック信号の遅延時間・波形鈍り値を説明するための図であり、（Ａ）は遅延時間を、（Ｂ）は波形鈍り値を、それぞれ説明するための図である。
【図６】本実施形態に係る遅延解析処理を説明するためのフローチャートである。
【図７】図６で示す遅延解析処理で実行されるクロックメッシュ設計変更分補完処理を説明するためのフローチャートである。
【図８】設計変更前回路の情報に基づいて遅延時間・波形鈍り値を補完する様子を説明するための図である。
【図９】トータルのクロックパスでの遅延時間・波形鈍り値を算出する様子を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本実施形態に係る遅延解析装置について、図面を参照しながら説明する。遅延解析装置１００は、クロックメッシュを有する半導体集積回路の、各素子に入力されるクロック信号の遅延時間等を算出するための装置である。遅延解析装置１００は、図１に示すように、操作部１１０と、制御部１２０と、表示部１３０と、記憶部１４０とから構成される。
【００１３】
操作部１１０は、マウスやキーボード等から構成され、ユーザによる処理開始命令を受け取り制御部１２０に送信する。
【００１４】
制御部１２０は、プロセッサ等から構成され、記憶部１４０に格納されているプログラムに従って動作し、後述の「遅延解析処理」を含む種々の動作を実行する。
【００１５】
表示部１３０は、ディスプレイ等から構成され、制御部１２０で実行した「遅延解析処理」の処理結果等を表示する。
【００１６】
記憶部１４０は、ハードディスク等の記憶装置から構成され、設計変更後回路情報１４１、設計変更前回路情報１４２、設計変更前クロックメッシュ遅延時間・波形鈍り値１４３、セル遅延ライブラリ１４４、遅延制約情報１４５等の各種データを記憶する。
【００１７】
設計変更後回路情報１４１は、例えば、半導体集積回路等の論理回路の設計に使用されるＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）用データであり、具体的には、回路中の各素子（抵抗やフリップフロップ等）の接続を示すネットリストや、各素子を基板やチップにレイアウトした際のレイアウト情報などである。
【００１８】
設計変更前回路情報１４２は、上述の論理回路（以下、設計変更後回路２００という）を設計する基となった論理回路（以下、設計変更前回路３００という）の回路情報である。なお、以下の説明では、理解を容易にするため、設計変更前回路３００は設計変更後回路２００と同一形状のクロックメッシュを有しているものとする。また、クロックメッシュにクロック信号が供給されるまでのクロックパスは両回路で同一であるものとする。例えば、設計変更後回路２００が、図２に示すように、クロック信号を供給するＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）２１０と、クロック信号の駆動能力を高めるクロックドライバ２２０ａ〜ｆと、クロック信号を各素子に分配するクロックメッシュ２３０と、クロックメッシュ２３０によりクロック信号が供給されるクロックドライバ２４０ａ〜ｅと、クロックドライバ２４０を経由してクロック信号が供給されるフリップフロップ２５０ａ〜ｆとから構成される論理回路であるとする。このとき、設計変更前回路３００は、図３に示すように、設計変更後回路と同一周期のＰＬＬ３１０と、クロックドライバ２２０と同一配置のクロックドライバ３２０ａ〜ｆと、クロックメッシュ２３０と同一形状のクロックメッシュ３３０とを有している。
【００１９】
設計変更前クロックメッシュ遅延時間・波形鈍り値１４３は、設計変更前回路３００の設計時に、クロックスキュー算出等のために、ＳＰＩＣＥシミュレーション等により取得し、あらかじめ記憶しておいた情報である。具体的には、クロックメッシュに接続され、クロックメッシュによりクロック信号が供給される素子（以下、「クロックメッシュ接続素子」という）に入力されるクロック信号の遅延時間および波形鈍り値を、その素子番号あるいは記号（例えば、ネットリストに記載された数値や記号）と関連づけて記憶した情報である。例えば、設計変更前回路３００が、図３に示すレイアウトの論理回路であるとすれば、クロックメッシュ接続素子（クロックドライバ３４０ａ〜ｃやフリップフロップ３５０ａ）に入力されるクロック信号の遅延時間および波形鈍り値を、図４に示すように、その素子番号・記号と関連付けて表にした情報が、設計変更前クロックメッシュ遅延時間・波形鈍り値１４３である。なお、図４では、理解を容易にするため、素子番号・記号を、素子に付された符号（３４０ａ〜ｃ、３５０ａ）で代替している。
【００２０】
ここで、「遅延時間」とは、例えば、図５（Ａ）に示すように、ＰＬＬから出力される基準クロック信号と、クロックパス上で検出される検出クロック信号との、閾値電圧ＶＴＨ（信号の論理を判別する電圧）での時間差ｄｌｙのことをいう。
【００２１】
また、「波形鈍り値」とは、クロック信号の電圧が変化するタイミングを示す値のことであり、例えば、検出クロック信号を折れ線にした近似信号（例えば、図５（Ｂ）に示すように、電圧ＶＬ（例えば、電源電圧ＶＤＤ×０．１）から電圧ＶＨ（例えば、電源電圧ＶＤＤ×０．９）までの信号の傾きに基づいてクロック信号を折れ線にしたもの）が、０Ｖから電源電圧ＶＤＤに達するまでに要する時間ｔｒｎのことをいう。
【００２２】
セル遅延ライブラリ１４４は、フリップフロップやクロックドライバ等の各セルにおける、入力端子から出力端子への遅延時間や、入力端子に入力されるデータ信号に対するクロック信号のセットアップ時間やホールド時間などを集約した情報である。なお、セル遅延ライブラリについては、特開２００１−２７３３３８号公報及び特開２００６−３９６２１号公報でそれぞれ「セルライブラリ」及び「タイミング制約ライブラリ」として詳しく説明されている。
【００２３】
遅延制約情報１４５は、半導体集積回路を動作させるための制約情報となる基本クロック周期（或いは基本クロック周波数）、入力ピン外部の遅延時間、出力ピン外部の要求遅延時間、遅延制約例外パス（フォールス・パス、マルチサイクル・パス）などの情報である。
【００２４】
次に、このような構成を有する遅延解析装置１００の動作について説明する。制御部１２０は、操作部１１０より処理開始命令を受信すると、図６に示す遅延解析処理を開始する。以下、図６のフローチャートを参照して「遅延解析処理」を説明する。
【００２５】
最初に、制御部１２０は、設計変更後回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間・波形鈍り値を算出するための「クロックメッシュ設計変更分補間処理」を実行する（ステップＳ１００）。以下、図７のフローチャートを参照して「クロックメッシュ設計変更分補間処理」を説明する。
【００２６】
制御部１２０は、記憶部１４０に記憶されている設計変更後回路情報１４１を基に、設計変更後回路２００のクロックメッシュ接続素子を抽出する。そして、制御部１２０は、設計変更後回路情報１４１に格納されたレイアウト情報等を使って、抽出したクロックメッシュ接続素子の「クロックメッシュ端子位置情報」を取得する（ステップＳ１０１）。例えば、設計変更後回路２００が、図２に示すレイアウトの論理回路であるとすれば、図８（Ｂ）に示すように、クロックドライバ２４０ａ〜ｄそれぞれについて、クロックメッシュ２３０の左上隅を原点Ｏとし、原点からの横（Ｘ軸）方向と縦（Ｙ軸）方向の距離に基づいて変換した座標情報（例えば、（Ｘ２，Ｙ１）、（Ｘ５，Ｙ１）といった情報）を取得する。
【００２７】
次に、制御部１２０は、設計変更前回路情報１４２を基に、設計変更前回路３００のクロックメッシュ接続素子を抽出する。そして、制御部１２０は、設計変更後回路情報１４１に格納されたレイアウト情報等を使って、抽出したクロックメッシュ接続素子の「クロックメッシュ端子位置情報」を取得する（ステップＳ１０２）。例えば、設計変更前回路３００が、図３に示すレイアウトの論理回路であるとすれば、図８（Ａ）に示すように、クロックメッシュ接続素子（クロックドライバ３４０ａ〜ｄ、フリップフロップ３５０ａ）それぞれについて、クロックメッシュ３３０の左上隅を原点とした座標情報（例えば、（Ｘ１，Ｙ１）、（Ｘ３，Ｙ２）、（Ｘ４，Ｙ１）といった情報）を取得する。
【００２８】
次に、制御部１２０は、ステップＳ１０２で抽出したクロックメッシュ接続素子の素子番号あるいは記号を、設計変更前回路情報１４２に格納されたネットリスト等から特定する。そして、特定した素子番号・記号と、記憶部１４０に記憶されている設計変更前クロックメッシュ遅延時間・波形鈍り値１４３の素子番号・記号とを照合し、クロックメッシュ接続素子に入力されるクロック信号の「遅延時間」および「波形鈍り値」を取得する（ステップＳ１０３）。例えば、記憶部１４０に、図４に示すような設計変更前クロックメッシュ遅延時間・波形鈍り値１４３が格納されているとすれば、クロックドライバ３４０ａ〜ｄ、および、フリップフロップ３５０ａの（遅延時間，波形鈍り値）を、図８（Ａ）に示すように、それぞれ（ｄｌｙ１，ｔｒｎ１）、（ｄｌｙ２，ｔｒｎ２）、（ｄｌｙ３，ｔｒｎ３）、（ｄｌｙ４，ｔｒｎ４）として取得する。
【００２９】
次に、制御部１２０は、設計変更後回路２００の複数のクロックメッシュ接続素子の中から１つクロックメッシュ接続素子を選択する。そして、選択したクロックメッシュ接続素子のクロックメッシュ接続位置を基準とし、設計変更前回路３００について、左右両方向にそれぞれクロックメッシュ接続素子をサーチする（ステップＳ１０４）。
【００３０】
サーチした結果、例えば、図８のクロックドライバ２４０ｄのように、左右片側にしかクロックメッシュ接続素子がない場合、ステップＳ１０６に処理を進める（ステップＳ１０５：Ｎｏ）。一方、図８のクロックドライバ２４０ｃのように、左右両方向にクロックメッシュ接続素子（クロックドライバ３４０ａ、３４０ｂ）がある場合、ステップＳ１０７に処理を進める（ステップＳ１０５：Ｙｅｓ）。
【００３１】
左右片側にしかクロックメッシュ接続素子がない場合（ステップＳ１０５：Ｎｏ）、選択したクロックメッシュ接続素子の直近のクロックメッシュ接続素子の「遅延時間」・「波形鈍り値」を、そのまま、選択したクロックメッシュ接続素子に入力されるクロック信号の「遅延時間」・「波形鈍り値」とする（ステップＳ１０６）。例えば、選択したクロックメッシュ接続素子が図８（Ｂ）に示すクロックドライバ２４０ｄであるとすれば、図８（Ａ）に示すクロックドライバ３４０ｃの遅延時間、波形鈍り値（ｄｌｙ３，ｔｒｎ３）をそのままクロックドライバ２４０ｄに入力されるクロック信号の遅延時間、波形鈍り値として取得する。
【００３２】
一方、左右両方向にクロックメッシュ接続素子がある場合（ステップＳ１０５：Ｙｅｓ）、ステップＳ１０２で取得した「クロックメッシュ端子位置情報」と、ステップＳ１０３で取得した「遅延時間」・「波形鈍り値」とを基に、選択したクロックメッシュ接続素子に入力されるクロック信号の「遅延時間」・「波形鈍り値」を算出する（ステップＳ１０７）。
【００３３】
具体的には、選択したクロックメッシュ接続素子（設計変更後回路２００）のクロックメッシュ端子位置と、その左右直近に位置する２つのクロックメッシュ接続素子（設計変更前回路３００）のクロックメッシュ端子位置との位置関係に基づいて、２つのクロックメッシュ接続素子の「遅延時間」・「波形鈍り値」を線形補間することによって、選択したクロック接続素子の「遅延時間」・「波形鈍り値」を算出する。例えば、選択したクロックメッシュ接続素子が図８（Ｂ）に示すクロックドライバ２４０ｃであるとすれば、その素子の左右直近のクロックメッシュ接続素子は、図８（Ａ）に示すクロックドライバ３４０ａとクロックドライバ３４０ｂであるので、それらの遅延時間（ｄｌｙ１、ｄｌｙ２）、波形鈍り値（ｔｒｎ１、ｔｒｎ２）に基づいて、クロックドライバ２４０ｃの遅延時間ｄｌｙ、波形鈍り値ｔｒｎを、以下の（式１）、（式２）により算出する。
【００３４】
【数１】
0005708014.tif 000002
【００３５】
ここで、ｒ１、ｒ２は、クロックドライバ２４０ｃの端子位置（Ｘ２，Ｙ１）と、クロックドライバ３４０ａ、３４０ｂの端子位置（Ｘ１，Ｙ１）（Ｘ３，Ｙ２）との位置関係を示す値であり、以下の（式３）（式４）により求まる。
【００３６】
【数２】
0005708014.tif 000003
【００３７】
なお、上述したような線形補間であっても遅延時間・波形鈍り値の精度は十分に保たれる。なぜなら、クロックメッシュは規則的で外部からの影響に強く安定した構造で、遅延・鈍りは位置が近ければほとんど差がないからである。また、クロックメッシュ上にクロックドライバ等を配置する場合、通常、遅延時間や波形鈍り値がばらつかないように、片方向の位置（本実施形態ではＹ軸方向の位置）はあまりずれないように配置する。そのため、どちらか片方向（本実施形態ではＸ軸方向）のみの位置関係に基づく補間処理であってもその精度は十分に保たれる。
【００３８】
以上により、計算が終了すると、制御部１２０は、次に、全てのクロックメッシュ接続素子で遅延時間・波形鈍り値の取得が完了したか、判別する（ステップＳ１０８）。全てのクロックメッシュ接続素子で取得が完了していない場合（ステップＳ１０８：Ｎｏ）、設計変更後回路２００のクロックメッシュ接続素子の中から遅延時間・波形鈍り値を取得していない素子の１つを選択し（ステップＳ１０９）、再び、ステップＳ１０４に戻り、処理を実行する。全てのクロックメッシュ接続素子で取得が完了している場合（ステップＳ１０８：Ｙｅｓ）、クロックメッシュ設計変更分補間処理を終了する。
【００３９】
クロックメッシュ設計変更分補間処理を終了したら、制御部１２０は、図６のフローチャートに戻り、設計変更後回路情報１４１からクロックメッシュ部分の回路情報を除去した「クロックメッシュ以外回路情報」を生成する（ステップＳ２００）。なお、上述した「クロックメッシュ部分」には、理解を容易にするため、図９に示すように、クロックメッシュにクロック信号が供給されるまでのクロックパスが含まれているものとする。
【００４０】
次に、制御部１２０は、クロックメッシュ以外回路情報と、セル遅延ライブラリ１４４とを基に、クロックメッシュ以外回路の各素子に入力されるクロック信号の遅延時間・波形鈍り値をそれぞれ取得する（ステップＳ３００）。例えば、図９に示す論理回路において、フリップフロップ２５０ｆに入力されるクロック信号の遅延時間、波形鈍り値（ｄｌｙＦ，ｔｒｎＦ）を取得する場合であれば、制御部１２０は、セル遅延ライブラリ１４４から、図９に示す（ｂ）（クロックドライバ２４０ｄの入出力間）で発生するクロック信号の遅延時間、波形鈍り値を示す情報（ｄｌｙＡ，ｔｒｎＡ）、図９に示す（ｃ）（クロックドライバ２４０ｅの入出力間）で発生するクロック信号の遅延時間、波形鈍り値を示す情報（ｄｌｙＢ，ｔｒｎＢ）をそれぞれ取得する。そして、それら遅延時間を単純に加算したり（ｄｌｙＦ＝ｄｌｙＡ＋ｄｌｙＢ）、所定の係数Ｋを使用したり（ｄｌｙＦ＝ｄｌｙＡ＋ｄｌｙＢ＋Ｋ×ｔｒｎＡ＋Ｋ×ｔｒｎＢ）して、フリップフロップ２５０ｆに入力されるクロック信号の遅延時間ｄｌｙＦを求める。また、波形鈍り値ｔｒｎＦも同様に、ｔｒｎＡとｔｒｎＢを加算する等して求める。
【００４１】
次に、制御部１２０は、ステップＳ３００で取得したクロックメッシュ以外回路の遅延時間・波形鈍り値と、ステップ１００で取得したクロックメッシュ部分の遅延時間・波形鈍り値（つまりクロックメッシュ接続素子に入力されるクロック信号の遅延時間・波形鈍り値）とを合併処理し、各素子に入力されるクロック信号のトータルのクロックパスでの遅延時間を算出する（ステップＳ４００）。例えば、図９に示す論理回路において、フリップフロップ２５０ｆに入力されるクロック信号のトータルのクロックパス（図９に示す（ａ）〜（ｃ））の遅延時間を取得する場合であれば、ステップ３００で示した方法と同様に、クロックドライバ２４０ｄに入力されるクロック信号の遅延時間に、図９に示す（ｂ）（ｃ）の区間の遅延時間ｄｌｙＡ＋ｄｌｙＢを加算する等して遅延時間を算出する。
【００４２】
次に、制御部１２０は、ステップＳ４００で取得した各素子に入力される遅延時間を基に、設計変更後回路２００の遅延解析を行い、表示部１３０に出力する（ステップＳ５００）。例えば、設計変更後回路２００の各素子の中で最も速いタイミングでクロック信号を受け取る素子と最も遅いタイミングでクロック信号を受け取る素子との間の時間差（クロックスキュー）を算出したり、各素子に入力される遅延時間により算出されるクロックパス遅延時間や信号パス遅延時間が、遅延制約情報１４５に格納された遅延制約を満たしているか否かを判定したりする。そして、制御部１２０は、その算出結果や判定結果を表示部１３０に出力する。
【００４３】
本実施形態によれば、設計変更前の情報を使ってクロックメッシュ接続素子の遅延時間・波形鈍り情報を補完処理している。そのため、クロックメッシュ周辺回路に設計変更があったとしても、実行時間の長いＳＰＩＣＥシミュレーションを実行する必要がないので、高速に遅延時間が算出できる。
【００４４】
また、本実施形態で使用した補完処理は、計算時間の少ない線形補完であるので、高速に遅延時間を算出できる。特に、本実施形態では、縦横にマトリクス状に導線が配置されたクロックメッシュの、縦方向、横方向のいずれか一方向のみの位置関係に基づいて線形補間を実行しているので、さらに高速に遅延計算できる。このような線形補完によっても、クロックメッシュは規則的で外部からの影響に強く安定した構造で、遅延・鈍りは位置が近ければほとんど差がないので、高い計算精度を保つことができる。
【００４５】
なお、本実施形態では、設計変更後回路２００と設計変更前回路３００のクロックメッシュにクロック信号が供給されるまでのクロックパスは同一であるものとしたが、クロックメッシュに供給されるクロック信号が同一周期であれば、必ずしも同一である必要はない。
【００４６】
また、ステップＳ３００やステップＳ４００で説明した遅延時間・波形鈍り値を求める方法は、ステップ３００やステップＳ４００で例示した方法に限らず、例えば、各回路素子間を接続する配線の抵抗や容量等を考慮したＲＣシミュレーションや、論理回路内で使用されるゲートやフリップフロップ等に遅延情報を持たせる、背景技術で説明したような従来方法により算出してもよい。なお、従来方法については、特開２００１−２７３３３８号公報、特開２０００−２５９６８６号公報、特開２０００−３０５９６６号公報、特開２０００−２５０９５０号公報などで詳細に説明されている。
【００４７】
本実施形態の遅延解析装置１００は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールして、上述の処理を実行することによって遅延解析装置１００を構成してもよい。また、インターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、例えばコンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、ＯＳとアプリケーションソフトとの共同により実現してもよい。この場合には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【００４８】
上記プログラムを記録する記録媒体としては、ＵＳＢメモリ、フレキシブルディスク、ＣＤ、ＤＶＤ、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標）、ＭＯ、ＳＤカード、メモリースティック（登録商標）、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気テープ等のコンピュータ読取可能な記録媒体を使用することができる。また、ＨＤＤ（ハードディスク）やＳＳＤ（ソリッドステートドライブ）等、通常、システム又は装置に固定して使用する記録媒体を使用することもできる。
【００４９】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００５０】
（付記１）
クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得手段と、
クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得手段と、
クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出手段と、
前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出手段と、を備える、
ことを特徴とする遅延解析装置。
【００５１】
（付記２）
前記クロック情報算出手段は、クロックメッシュ上の２つの位置におけるクロック信号の遅延時間を、その２つの位置とクロックメッシュ接続素子の接続位置との位置関係に基づいて線形補間することにより、該クロックメッシュ接続素子に入力されるクロック信号の遅延時間を算出する、
ことを特徴とする付記１に記載の遅延解析装置。
【００５２】
（付記３）
前記クロック情報算出手段は、クロックメッシュ上の２つの位置におけるクロック信号の波形鈍り値を、その２つの位置とクロックメッシュ接続素子の接続位置との位置関係に基づいて線形補間することにより、該クロックメッシュ接続素子に入力されるクロック信号の波形鈍り値を算出する、
ことを特徴とする付記１または２に記載の遅延解析装置。
【００５３】
（付記４）
前記クロック情報算出手段は、縦横にマトリクス状に導線が配置されたクロックメッシュの、縦方向、横方向のいずれか一方向の位置関係に基づいて線形補間する、
ことを特徴とする付記２または３に記載の遅延解析装置。
【００５４】
（付記５）
第１の論理回路と同一形状のクロックメッシュと、そのクロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、を有する第２の論理回路の回路情報を取得する第２回路情報取得手段、を備え、
前記クロック情報取得手段は、第２の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を取得する手段、を備え、
前記クロック情報算出手段は、第２の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値に基づいて、第１の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出する、
ことを特徴とする付記１乃至４のいずれか１つに記載の遅延解析装置。
【００５５】
（付記６）
第１の論理回路のクロックメッシュ接続素子に入力されるクロック信号の遅延時間と、第１の論理回路の回路素子に入力されるクロック信号の遅延時間とを基に、最も速いタイミングでクロック信号を受け取る素子と最も遅いタイミングでクロック信号を受け取る素子との間の時間差を算出するクロックスキュー算出手段、を備える、
ことを特徴とする付記１乃至５のいずれか１つに記載の遅延解析装置。
【００５６】
（付記７）
クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得ステップと、
クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得ステップと、
クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出ステップと、
前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出ステップと、を有する、
ことを特徴とする遅延解析方法。
【００５７】
（付記８）
コンピュータに、
クロックメッシュと、クロックメッシュによりクロック信号が供給されるクロックメッシュ接続素子と、クロックメッシュ接続素子を経由してクロック信号が供給される回路素子と、を有する第１の論理回路の回路情報を取得する第１回路情報取得ステップと、
クロックメッシュを流れるクロック信号の情報であって、クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値を取得するクロック情報取得ステップと、
クロックメッシュ上の複数の位置におけるクロック信号の遅延時間および／または波形鈍り値に基づいて、クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値を算出するクロック情報算出ステップと、
前記クロックメッシュ接続素子に入力されるクロック信号の遅延時間および／または波形鈍り値と、第１の論理回路の回路情報により特定されるクロックパス上の回路素子の情報とを基に、クロックパス上の回路素子に入力されるクロック信号の遅延時間を算出する遅延時間算出ステップと、を実行させる、
ことを特徴とする遅延解析プログラム。
【符号の説明】
【００５８】
１００      遅延解析装置
１１０      操作部
１２０      制御部
１３０      表示部
１４０      記憶部
１４１      設計変更後回路情報
１４２      設計変更前回路情報
１４３      設計変更前クロックメッシュ遅延時間・波形鈍り値
１４４      セル遅延ライブラリ
１４５      遅延制約情報
２００      設計変更後回路
２１０      ＰＬＬ
２２０      クロックドライバ
２３０      クロックメッシュ
２４０      クロックドライバ
２５０      フリップフロップ
３００      設計変更前回路
３１０      ＰＬＬ
３２０      クロックドライバ
３３０      クロックメッシュ
３４０      クロックドライバ
３５０      フリップフロップ
【図１】
0005708014.tif 000004
【図２】
0005708014.tif 000005
【図３】
0005708014.tif 000006
【図４】
0005708014.tif 000007
【図５】
0005708014.tif 000008
【図６】
0005708014.tif 000009
【図７】
0005708014.tif 000010
【図８】
0005708014.tif 000011
【図９】
0005708014.tif 000012