(57)【特許請求の範囲】
【請求項１】
予め設計された回路の配置及び接続関係を表す設計データと、前記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段を備える共に、
前記設計データ及び前記タイミング制約データを前記記憶手段から読み出すデータ読み出し手段と、
前記設計データにて表わされる回路に配置された前記対となる素子間に対応して設定された前記クロックスキュー値を前記タイミング制約データから取得するクロックスキュー値取得手段と、
前記設計データに基づいて前記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について前記取得したクロックスキュー値と前記算出した遅延時間とを用いて、前記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出するスラック算出手段と、
を備え、
前記設計データにて表わされる回路は、メッシュ方式クロック回路の後段にツリー構造回路を有する回路であり、
前記タイミング制約データに含まれる前記クロックスキュー値は、前記対となる素子が分配されている前記回路上の分岐点毎に予め設定されていると共に、当該分岐点は、前記メッシュ方式クロック回路自体と前記ツリー構造回路に含まれる各分岐点とであり、
前記タイミング制約データは、前記対となる素子のうち前記他方の素子におけるデータ入力時とデータ出力時とにそれぞれ許容されるクロックの遅延差を表すセットアップ用クロックスキュー値とホールド用クロックスキュー値とを前記クロックスキュー値として含み、
前記クロックスキュー値取得手段は、前記設計データにて表わされる回路上の分岐点毎に対応する前記クロックスキュー値を、当該分岐点にて分配された前記対となる素子間のクロックスキュー値として取得すると共に、当該対となる素子に対応する前記セットアップ用クロックスキュー値と前記ホールド用クロックスキュー値とを前記クロックスキュー値として前記タイミング制約データから取得し、
前記スラック算出手段は、前記セットアップ用クロックスキュー値とホールド用クロックスキュー値とに基づいて前記対となる素子におけるデータ入力時とデータ出力時とのそれぞれについて前記スラック値を算出する、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記タイミング制約データは、前記対となる素子に対して入力されるクロック毎に設定された前記クロックスキュー値を含んでおり、
前記クロックスキュー値取得手段は、前記設計データにて表わされる回路上の前記対となる素子に入力されるクロックに対応する前記クロックスキュー値を前記タイミング制約データから取得する、
情報処理装置。
【請求項３】
情報処理装置を、
予め設計された回路の配置及び接続関係を表す設計データと、前記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段から、前記設計データ及び前記タイミング制約データを読み出すデータ読み出し手段、
前記設計データにて表わされる回路に配置された前記対となる素子間に対応して設定された前記クロックスキュー値を前記タイミング制約データから取得するクロックスキュー値取得手段、
前記設計データに基づいて前記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について前記取得したクロックスキュー値と前記算出した遅延時間とを用いて、前記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出するスラック算出手段、
として機能させるためのプログラムであり、
前記設計データにて表わされる回路は、メッシュ方式クロック回路の後段にツリー構造回路を有する回路であり、
前記タイミング制約データに含まれる前記クロックスキュー値は、前記対となる素子が分配されている前記回路上の分岐点毎に予め設定されていると共に、当該分岐点は、前記メッシュ方式クロック回路自体と前記ツリー構造回路に含まれる各分岐点とであり、
前記タイミング制約データは、前記対となる素子のうち前記他方の素子におけるデータ入力時とデータ出力時とにそれぞれ許容されるクロックの遅延差を表すセットアップ用クロックスキュー値とホールド用クロックスキュー値とを前記クロックスキュー値として含み、
前記クロックスキュー値取得手段は、前記設計データにて表わされる回路上の分岐点毎に対応する前記クロックスキュー値を、当該分岐点にて分配された前記対となる素子間のクロックスキュー値として取得すると共に、当該対となる素子に対応する前記セットアップ用クロックスキュー値と前記ホールド用クロックスキュー値とを前記クロックスキュー値として前記タイミング制約データから取得し、
前記スラック算出手段は、前記セットアップ用クロックスキュー値とホールド用クロックスキュー値とに基づいて前記対となる素子におけるデータ入力時とデータ出力時とのそれぞれについて前記スラック値を算出する、
プログラム。
【請求項４】
情報処理装置が、予め設計された回路の配置及び接続関係を表す設計データと、前記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段から、前記設計データ及び前記タイミング制約データを読み出し、
前記情報処理装置が、前記設計データにて表わされる回路に配置された前記対となる素子間に対応して設定された前記クロックスキュー値を前記タイミング制約データから取得し、
前記情報処理装置が、前記設計データに基づいて前記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について前記取得したクロックスキュー値と前記算出した遅延時間とを用いて、前記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出すると共に、
前記設計データにて表わされる回路は、メッシュ方式クロック回路の後段にツリー構造回路を有する回路であり、
前記タイミング制約データに含まれる前記クロックスキュー値は、前記対となる素子が分配されている前記回路上の分岐点毎に予め設定されていると共に、当該分岐点は、前記メッシュ方式クロック回路自体と前記ツリー構造回路に含まれる各分岐点とであり、
前記タイミング制約データは、前記対となる素子のうち前記他方の素子におけるデータ入力時とデータ出力時とにそれぞれ許容されるクロックの遅延差を表すセットアップ用クロックスキュー値とホールド用クロックスキュー値とを前記クロックスキュー値として含み、
前記情報処理装置が、前記クロックスキュー値の取得時に、前記設計データにて表わされる回路上の分岐点毎に対応する前記クロックスキュー値を、当該分岐点にて分配された前記対となる素子間のクロックスキュー値として取得すると共に、当該対となる素子に対応する前記セットアップ用クロックスキュー値と前記ホールド用クロックスキュー値とを前記クロックスキュー値として前記タイミング制約データから取得し、
前記情報処理装置が、前記スラック値の算出時に、前記セットアップ用クロックスキュー値とホールド用クロックスキュー値とに基づいて前記対となる素子におけるデータ入力時とデータ出力時とのそれぞれについて前記スラック値を算出する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置にかかり、特に、集積回路の設計を支援する情報処理装置に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration：大規模集積回路）の設計は、ＣＡＤ（Computer Aided Design）を用いて行われており、回路の配置後の最適化や遅延解析も行われている。
【０００３】
そして、特に、ハイエンドＬＳＩにおけるクロック構造においては、碁盤の目（メッシュ）状にクロック信号を分配するメッシュ・アーキテクチャ（図１の符号Ｍ参照）を用いることがある。これにより、回路全体においてクロック遅延差を小さくし、チップ内製造バラツキによるクロック遅延変動を低減することにより、クロック・スキューを小さくすることができる。但し、上記クロック・メッシュをチップ全面など大きな領域に分配するには、配線リソースや消費電力の不利な面もあるため、ＦＦ（Flip Flop：フリップフロップ）に近い末端のローカル領域などにツリー構造を併用する方式がある。例えば、図１に示すような回路を設計することが考えられる。
【０００４】
ここで、一般的には、クロック分配ネットリストが確定したCTS（Clock Tree Synthesis）後では、理想スキュー解析ではなく、クロックをクロックラインの実遅延で計算し、スキュー解析することになる。しかし、メッシュ・クロック構成の場合やレイアウトを階層設計している場合には、CTS後であっても、理想スキュー解析することが多くなる。その理由は、メッシュ・クロックの場合、正確なクロック遅延を計算するためには、電子回路の動作をシミュレーションするソフトウェアである「ＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）」を実行する必要があり、実行時間を要するので、度々は実行しない。まして、階層設計している場合、階層設計単位では、メッシュ構造全体の断片しか存在しないために、実クロック遅延解析することは難しい、といったことが挙げられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１６２５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、回路設計の際には、理想スキュー（クロック）解析を行う必要がある。ところが、理想スキュー解析において、スキュー値を最大想定の１値しか取り扱わない場合には、過大なマージンを持った解析となってしまう、という問題が生じる。例えば、図１に示す例では、ＦＦ１とＦＦ２との間では、最終段ドライバ分岐であり、スキューは最小となるが、ＦＦ２とＦＦ３との間では、ローカル分配ルート分岐であり、スキューは上記ＦＦ１とＦＦ２との間よりも大きくなる。さらに、ＦＦ３とＦＦ４との間では、メッシュ分岐であるため、スキューはさらに大きくなる。このような場合に、スキュー値を最大値の１値のみ扱ってタイミング解析などを行ったとしても、許容範囲が過大な解析結果となってしまい、良好な結果を得ることができない、という問題が生じる。
【０００７】
また、特許文献１には、回路のタイミング解析方法が開示されている。この方法では、クロック信号の分岐点を特定し、当該分岐点からクロック信号の遅延時間を算出し、遅延時間に基づいてタイミングマージンを求め、ホールドタイムの解析を行っている。しかしながら、上述した技術では、遅延時間に応じたタイミングマージンを設定しているため、回路構成が複雑になった場合には、適切なタイミングマージンを設定することができない。すると、ホールドタイムの解析の精度も低下する、という問題が生じる。
【０００８】
このため、本発明の目的は、上述した課題である、集積回路設計時における解析精度の低下、を抑制することができる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため本発明の一形態である情報処理装置は、
予め設計された回路の配置及び接続関係を表す設計データと、上記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段を備える共に、
上記設計データ及び上記タイミング制約データを上記記憶手段から読み出すデータ読み出し手段と、
上記設計データにて表わされる回路に配置された上記対となる素子間に対応して設定された上記クロックスキュー値を上記タイミング制約データから取得するクロックスキュー値取得手段と、
上記設計データに基づいて上記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について上記取得したクロックスキュー値と上記算出した遅延時間とを用いて、上記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出するスラック算出手段と、
を備える。
【００１０】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
予め設計された回路の配置及び接続関係を表す設計データと、上記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段から、上記設計データ及び上記タイミング制約データを読み出すデータ読み出し手段と、
上記設計データにて表わされる回路に配置された上記対となる素子間に対応して設定された上記クロックスキュー値を上記タイミング制約データから取得するクロックスキュー値取得手段と、
上記設計データに基づいて上記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について上記取得したクロックスキュー値と上記算出した遅延時間とを用いて、上記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出するスラック算出手段と、
を実現させるためのプログラムである。
【００１１】
また、本発明の他の形態である情報処理方法は、
予め設計された回路の配置及び接続関係を表す設計データと、上記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段から、上記設計データ及び上記タイミング制約データを読み出し、
上記設計データにて表わされる回路に配置された上記対となる素子間に対応して設定された上記クロックスキュー値を上記タイミング制約データから取得し、
上記設計データに基づいて上記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について上記取得したクロックスキュー値と上記算出した遅延時間とを用いて、上記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出する、
という構成を採る。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、大規模ＬＳＩの設計時において適切かつ迅速な回路設計を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に関連する技術を説明するための回路構成の一例を示す図である。
【図２】本発明の実施形態１における情報処理装置の構成を示す機能ブロック図である。
【図３】図２に開示した情報処理装置に記憶されている回路の構成の一例を示す図である。
【図４】図２に開示した情報処理装置に記憶されているタイミング制約データの一例を示す図である。
【図５】図２に開示した情報処理装置にて生成され記憶される理想スキュー・テーブルの一例を示す図である。
【図６】図２に開示した情報処理装置の動作を示すフローチャートである。
【図７】図６に開示した情報処理装置の動作の一部であるスラック計算処理の詳細を示すフローチャートである。
【図８】図２に開示した情報処理装置の動作の他の例を示すフローチャートである。
【図９】図２に開示した情報処理装置にて回路のレイアウト最適化処理を行った時の効果を説明するための図である。
【図１０】図２に開示した情報処理装置にて回路のレイアウト最適化処理を行った時の効果を説明するための図である。
【図１１】本発明の実施形態２における情報処理装置の構成を示す機能ブロック図である。
【発明を実施するための形態】
【００１４】
＜実施形態１＞
本発明の第１の実施形態を、図２乃至図１０を参照して説明する。図２は、本実施形態における情報処理装置の構成を示す機能ブロック図である。図３は、設計対象となっている回路の構成の一例を示す図であり、図４は、当該回路のタイミング制約データの一例を示す図である。図５は、情報処理装置にて生成される理想スキュー・テーブルの一例を示す図である。図６乃至図８は、情報処理装置の動作を示す図である。図９乃至図１０は、回路のレイアウト最適化処理を行った時の効果を説明するための図である。
【００１５】
［構成］
図２に示すように、本実施形態における情報処理装置１は、ＣＰＵ（Central Processing Unit）といった演算装置１０と、ハードディスクドライブなどの記憶装置２０（記憶手段）と、を備えた一般的なコンピュータである。
【００１６】
そして、情報処理装置１は、演算装置１０にプログラムが組み込まれることにより構築された、設計データ読込部１１と、タイミング制約読込部１２と、遅延計算部１３と、スラック計算部１４と、遅延最適化部１５と、レポート出力部１６と、を備えている。これら各構成を備えることで、情報処理装置１は、後述するように、CTS後の回路データに対するレイアウトの最適化を支援する最適化システムや、回路の遅延を検証する遅延検証システムとして機能することとなる。なお、演算装置１０に組み込まれる上記プログラムは、予め記憶装置２０に記憶されていてもよく、あるいは、他の記憶媒体に記憶されおり演算装置１０に提供されてもよい。
【００１７】
上記記憶装置２０は、演算装置１０に入力されるデータである、ネットリスト２１と、タイミング制約２２と、レイアウトデータ２３と、ＳＰＥＦ（Standard Parasitic Exchange Format）２４と、セル遅延ライブラリ２５と、を記憶している。また、記憶装置２０は、演算装置１０から出力される出力レイアウトデータ２６と、遅延検証レポート２７と、を記憶する。以下、演算装置１０と記憶装置２０の構成について詳述する。
【００１８】
記憶装置２０に記憶されている上記レイアウトデータ２３は、配置・配線後の回路のレイアウト情報を格納している。ネットリスト２１は、レイアウトデータ２３に対応し論理的な接続関係を表す情報を格納している。タイミング制約２２は、回路のクロック周期の定義、理想スキュー定義、マルチ・サイクルパス（複数サイクル内でのセットアップ遅延が許されるパス）などのタイミング例外指定を格納している。ＳＰＥＦ（Standard Parasitic Exchange Format）２４は、レイアウトデータ２３における配線に対して、予め一般的なＲＣ抽出ツールにより寄生情報を抽出した抵抗、容量（カップリング容量）を格納している。セル遅延ライブラリ２５は、リーフ・セルの入出力端子間遅延情報と、順序素子の場合はセットアップ時間、ホールド時間を格納している。
【００１９】
また、記憶装置２０に後に記憶される遅延検証レポート２７は、演算装置１０からの出力結果であり、遅延検証システムによるタイミング解析によりセットアップ・ホールド遅延違反したパス情報を格納している。出力レイアウトデータ２６は、レイアウト最適化システムによって遅延最適化が実施されたレイアウトデータである。
【００２０】
ここで、本実施形態では、上述したレイアウトデータ２３やネットリスト２１、ＳＰＥＦ２４、セル遅延ライブラリ２５といった回路の配置及び接続関係を表す設計データにより、CTS（Clock Tree Synthesis）後の図３に示す構成の回路を表す情報が予め設計されていることとする。この図３に示す回路は、特に、メッシュ方式クロック回路Ｍを有し、当該メッシュ方式クロック回路の後段にツリー構造回路を有している。また、かかる構成において、メッシュ方式クロック回路Ｍ自体を１つの分岐点とし、また、ツリー構造回路部分の各分岐をそれぞれ分岐点として、これらの分岐点をそれぞれ特定する情報が、図３で括弧内に示すように割り当てられている。なお、本実施形態では、最適化あるいは解析対象となる回路として、メッシュ方式クロック回路の後段にツリー構造回路を有する回路を挙げて説明するが、これは一例であって、ツリー構造だけの回路であってもよい。
【００２１】
また、上記タイミング制約２２は、例えば、図４に示すデータであり、特に、回路上に配置され、一方の素子（例えば、フリップフロップ（ＦＦ））から他方の素子にデータが入力される対となる素子に対して、それぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定された理想スキュー定義（クロックスキュー値）を含む。この理想スキュー定義は、クロック名毎、かつ、定義点（＝クロックパス分岐点）毎に、当該分岐点以降で分配されている素子であるフリップフロップ（ＦＦ）間パスの理想スキューをそれぞれ定義したものである。
【００２２】
具体的に、図４に示すタイミング制約２２の例では、符号２２ａの部分の各行毎に、クロック名と定義点毎の理想スキューが定義されている。ここで、符号２２ａの各行における第１列の「set_ideal_skew」は、理想スキュー定義文を示す予約語である。第２列は、定義するスキューがsetup解析用（「-setup」）であるか、hold解析用（「-hold」）であるかを示している。第３列は、対象となるクロック名を示している。第４列は、相互に接続され対となる素子が分配されている分岐点を示すネット名やインスタンス名（図３の括弧内の記号）を表している。第５列は、例えば「ps（picosecond）」などの単位に基づいたスキュー値を表している。そして、図４の符号２２ａ部分の例では、まず、第１行から第３行は、setup解析用スキューが定義されており、特に、第１行は、図３のメッシュ部分Ｍ（MESH1）での分岐点、第２行はローカル分配１段目（L1_*）の分岐点、第３行はローカル分配２段目の分岐点（L2_*）のケースをそれぞれ示している。同様に、図４の符号２２ａ部分における第４行から第６行目は、hold解析用スキューが定義されており、それぞれ各分岐点のケースにおけるスキューを定義している。
【００２３】
また、上記設計データ読込部１１（データ読み出し手段）は、記憶装置２０に予め記憶されている上記ネットリスト２１、タイミング制約２２、レイアウトデータ２３、ＳＰＥＦ２４、セル遅延ライブラリ２５といった各種データを読み込み、メモリ上にデータ構造を構築して以降の処理に備える。
【００２４】
また、上記タイミング制約読込部１２は、上述した図４に示すタイミング制約２２内に含まれる理想スキュー定義２２ａを読み込み、定義点（分岐点）とスキュー値とを対で表した図５に示すような理想スキュー・テーブルを生成して一時的に記憶する。具体的に、理想スキュー・テーブルは、（定義点，セットアップ解析用スキュー値、ホールド解析用スキュー値）の形式となる。
【００２５】
また、上記遅延計算部１３は、ＳＰＥＦ２４から得られた配線の抵抗、容量値に基づき、セル遅延ライブラリ２５を参照し、個々のセル遅延、setup_time、hold_timeや、インターコネクト遅延を計算する。
【００２６】
また、上記スラック計算部１４は、まず、図３に示すような回路上でＦＦ間が分配されているクロックネットリスト構造をトレースし、CRPR（Clock Reconvergence Pessimism Removal）分岐点を認識して、理想スキュー・テーブルの定義点とCRPR分岐点がマッチするところをサーチし、各分岐点の理想スキュー値を得る。つまり、それぞれのＦＦ間パスに対応して予めタイミング制約２２として設定された理想スキュー値を取得する。そして、この理想スキュー値を用いて、required_timeを計算する。ここで、Setup解析のrequired_timeは、クロックサイクルから、setup_timeとスキューを引いた時間である。また、Hold解析のrequired_timeは、hold_timeにスキューを加えた時間である。
【００２７】
そして、上記スラック計算部１４は、上述した遅延計算部１３により計算済みのセル遅延、setup_timeやインターコネクト遅延を積み上げ、データ・ラインのarrival_timeを計算して、スラック値（Slack値）を算出する。ここで、Slack値とは、required_timeからarrival_timeを引いた時間であり、ＦＦ間パスが予め設定された設計要求を満たすか否かを表す数値である。例えば、Slack値がマイナスとなった場合には、制約を満たさない、ということになる。
【００２８】
以上のように、上述したタイミング制約読込部１２と遅延計算部１３とスラック計算部１４とは、まず、ネットリスト２１などにて図３に示すように表わされる回路上に配置されたＦＦ間パス毎、つまり、ＦＦ間の分岐点毎の理想スキュー値を、タイミング制約２２から理想スキュー・テーブルを介して取得するクロックスキュー値取得手段として機能する。このとき、特に、ＦＦ間に供給されるクロック毎、かつ、セットアップ解析用とホールド解析用とのそれぞれの理想スキュー値を取得する。
【００２９】
また、上述したタイミング制約読込部１２と遅延計算部１３とスラック計算部１４とは、ＦＦ間における遅延時間を算出すると共に、上記取得した理想スキュー値を用いて、スラック値を算出するスラック算出手段として機能する。このとき、特に、セットアップとホールドとの各スラック値を算出する。
【００３０】
また、上記遅延最適化部１５は、上記スラック計算部１４により計算されたパスのうち違反しているパス集合に対して、遅延最適化を実施する。例えば、回路を変更して、遅延計算部１３に戻って再度スラック値の計算を行い、違反パスがなくなるか、決められた終了条件（制限時間や繰り返しループ数）となるまで繰り返す。つまり、この遅延最適化部１５は、情報処理装置１がレイアウト最適化システムとして機能する場合に作動する。
【００３１】
また、上記レポート出力部１６は、スラック値、及び、計算過程のarrival_time, setup_time, hold_timeなどの補足情報も含めて、主に違反パスの情報を、ディスプレイやプリンタなどにて出力する。つまり、このレポート出力部１６は、情報処理装置１が遅延検証システムとして機能する場合に作動する。
【００３２】
［動作］
次に、上述した構成の情報処理装置１の動作を、図６乃至図８を参照して説明する。ここでは、図３に示すような接続イメージの回路を表すネットリスト２１、レイアウトデータ２３、ＳＰＥＦ２４が、記憶装置２０に記憶されていることとする。
【００３３】
まず、情報処理装置１は、設計データ読込部１１にて上記ネットリスト２１、レイアウトデータ２３、ＳＰＥＦ２４を読み込む（ステップＳ１）。続いて、タイミング制約読込部１２にて、図４に示すようなタイミング制約２２を読み込む（ステップＳ２）。このタイミング制約２２のうち、特に、符号２２ａの部分が理想スキュー定義であり、クロック名「CLK」に対して、定義点（符号２２ａの例では、MESH1, L1_*, L2_*）と、それに対応したsetup解析用スキュー値（200, 100, 20）と、hold解析用スキュー値（100, 50, 10）と、を対にして、図５に示すような理想スキュー・テーブルとして記憶する。つまり、理想スキュー・テーブルは、（定義点，setupスキュー，holdスキュー）のフォーマットとなっている。なお、クロックを複数取り扱う場合には、クロック名毎に（CLOCK=・・・）テーブルを持つことになる。
【００３４】
続いて、遅延計算部１３は、ＳＰＥＦ２４から得られた配線の抵抗、容量値に基づき、セル遅延ライブラリ２５を参照し、個々のセル遅延，setup_time，hold_timeやインターコネクト遅延を計算する（ステップＳ３）。なお、この遅延時間の算出は、後に行われてもよい。
【００３５】
続いて、スラック計算部１４は、それぞれのＦＦ間パスに対して、理想スキュー値を求めて、required_timeを計算してslack値を計算する（ステップＳ４）。例えば、図３に示す回路の始点ＦＦ１から終点ＦＦ２へのパス（符号Ｐ１）に注目することとする。ＦＦ１とＦＦ２からそれぞれクロック・ネットワークをトレースすると（図７のステップＳ１１）、分岐点（L2_1）がＦＦ１とＦＦ２とのCRPR分岐点（L2_1までがクロック共通パス）であることが分かる（図７のステップＳ１１）。次に、（L2_1）という定義点を理想スキュー・テーブル内でサーチすると、図５の３行目が該当する（図７のステップＳ１３）。これにより、setup解析の理想スキュー値「２０」が得られる（図７のステップＳ１４）。
【００３６】
続いて、スラック計算部１４は、スラック計算を行う（図７のステップＳ１５）。具体的には、パスを構成するそれぞれのセルについて、遅延計算部１３により計算済みのセル遅延、setup_time、インターコネクト遅延と、上記取得した理想スキュー値を用いて、先ずrequired_timeを計算する。Setup解析のrequired_timeは、「clock_period −
理想スキュー − setup_time」で計算される。また、Hold解析のrequired_timeは、「hold_time ＋理想スキュー」で計算される。次にarrival_timeを計算する。arrival_timeは、データラインを構成するセル、ネットの「Σセル遅延 + Σインターコネクト遅延」で計算される。Slack値は、「require_time ― arrival_time」で計算される。同様に、図３の始点ＦＦ２から終点ＦＦ３へのパス（符号Ｐ２参照）では、CRPR分岐点が（L1_1）であり、setup解析の理想スキューとして「１００」が得られる。また、始点ＦＦ３から終点ＦＦ４のパス（符号Ｐ３参照）では、CRPR分岐点が（MESH1）であり、setup解析の理想スキューとして「２００」が得られる。これを用いて、各ＦＦ間のスラック値を求めることができる。なお、hold解析のスラック値も同様に算出される。
【００３７】
最後に、情報処理装置１がレイアウト最適化システムとして機能している場合には、遅延最適化部１５により、Slack計算部１４で判明している遅延違反しているパス集合に対して、遅延最適化を実施し、遅延計算手段に戻り、違反パスがなくなるか、決められた終了条件（制限時間や繰り返しループ数）となるまで繰り返す（図６のステップＳ５）。
【００３８】
なお、情報処理装置１が遅延検証システムとして機能している場合には、まず、上述した図６のステップＳ１からＳ４と同様に、スラック計算を行う（図８のステップＳ１０１からＳ１０４）。その後、レポート出力部１６により、Slack値、及び、計算過程のarrival_time, setup_time, hold_timeなどの補足情報も含めて、主に違反パスの情報を出力する（図８のステップＳ１０５）。
【００３９】
ここで、本実施形態における情報処理装置１にて回路のレイアウト最適化を行った結果による効果を、図９、図１０に示す。まず、図９の「virtual_skew表記」及び図１０（Ｂ）は、本発明であるレイアウト最適化システムを実施した場合のデータであり、図９の「ideal_skew表記」及び図１０（Ａ）は、一律のスキュー値を用いた場合のデータである。そして、図１０では、符号２１０で示した白色の×印は、予め設定された許容される配線間の距離など製造上のメタル・パタン・ルールを違反している箇所を表すＧｅｏｍエラー箇所を示しており、それよりも２段階ほど濃い色の符号２２０で示した点は、最適化で挿入したHold保障ゲートを示している。これらの図に示すように、本発明のシステムによると、過剰なHold保証バッファ挿入が改善され、サイト使用率にして３〜５％減少し、レイアウト最適化の実行時間は９〜２５％改善したことが分かる。また、電子回路の動作をシミュレーションするソフトウェアである「ＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）」によるクロック詳細解析前に、一律な固定値理想スキューを用いるよりも個々の回路状態に応じた精度の高いスキューにより、遅延最適化、遅延検証が出来るようになる。
【００４０】
以上にように、本発明では、対となる素子間毎、例えば、素子間の分岐点毎に、理想スキュー値を予め複数設定して記憶しているため、大規模ＬＳＩの設計時においても、各素子間に対応したスキュー値を用いて、スラック値の算出を行うことができる。従って、処理の迅速化を図ることができる。
【００４１】
＜実施形態２＞
本発明の第２の実施形態を、図１１を参照して説明する。図１１は、情報処理装置の構成を示す機能ブロック図である。なお、本実施形態では、上述したレイアウト最適化システムあるいは遅延検証システムとして機能する情報処理装置の構成の概略を説明する。
【００４２】
図１１に示すように、本実施形態における情報処理装置３００は、
予め設計された回路の配置及び接続関係を表す設計データ３１１と、上記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データ３１２と、を記憶した記憶手段３１０を備える共に、
上記設計データ及び上記タイミング制約データを上記記憶手段から読み出すデータ読み出し手段３０１と、
上記設計データにて表わされる回路に配置された上記対となる素子間に対応して設定された上記クロックスキュー値を上記タイミング制約データから取得するクロックスキュー値取得手段３０２と、
上記設計データに基づいて上記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について上記取得したクロックスキュー値と上記算出した遅延時間とを用いて、上記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出するスラック算出手段３０３と、
を備える。
【００４３】
そして、上記情報処理装置では、
上記タイミング制約データに含まれる上記クロックスキュー値は、上記対となる素子が分配されている上記回路上の分岐点毎に予め設定されており、
上記クロックスキュー値取得手段は、上記設計データにて表わされる回路上の分岐点毎に対応する上記クロックスキュー値を、当該分岐点にて分配された上記対となる素子間のクロックスキュー値として取得する、
という構成を採る。
【００４４】
また、上記情報処理装置では、
上記設計データにて表わされる回路は、メッシュ方式クロック回路の後段にツリー構造回路を有する回路であり、
上記タイミング制約データに含まれる上記クロックスキュー値が対応する上記分岐点は、上記メッシュ方式クロック回路自体と上記ツリー構造回路に含まれる各分岐点とである、
という構成を採る。
【００４５】
また、上記情報処理装置では、
上記タイミング制約データは、上記対となる素子のうち上記他方の素子におけるデータ入力時とデータ出力時とにそれぞれ許容されるクロックの遅延差を表すセットアップ用クロックスキュー値とホールド用クロックスキュー値とを上記クロックスキュー値として含み、
上記クロックスキュー値取得手段は、上記設計データにて表わされる回路に配置された上記対となる素子に対応する上記セットアップ用クロックスキュー値と上記ホールド用クロックスキュー値とを上記クロックスキュー値として上記タイミング制約データから取得し、
上記スラック算出手段は、上記セットアップ用クロックスキュー値とホールド用クロックスキュー値とに基づいて上記対となる素子におけるデータ入力時とデータ出力時とのそれぞれについて上記スラック値を算出する、
という構成を採る。
【００４６】
また、上記情報処理装置では、
上記タイミング制約データは、上記対となる素子に対して入力されるクロック毎に設定された上記クロックスキュー値を含んでおり、
上記クロックスキュー値取得手段は、上記設計データにて表わされる回路上の上記対となる素子に入力されるクロックに対応する上記クロックスキュー値を上記タイミング制約データから取得する、
という構成を採る。
【００４７】
上記発明によると、まず、情報処理装置には、前段・後段に配置された対となる素子にそれぞれ入力されるクロックの許容される遅延差を表すクロックスキュー値が、当該素子間毎、例えば、当該対となる素子が分配された回路上の分岐点毎に、予め対応付けられて記憶されている。そして、情報処理装置は、回路構成を表す種々のデータから成る設計データを読み込むと共に、この設計データに基づいて、対となる素子間、例えば、素子間の分岐点に対応するクロックスキュー値を取得する。そして、対となる素子間に対応したクロックスキュー値を用いてスラック値を計算する。これにより、現時点の回路構成が制約に違反していないか否かを判断することができ、後に回路配置の最適化を行ったり、違反内容のレポートを出力することができる。このとき、予め対となる素子間毎、例えば、素子間の分岐点毎にクロックスキュー値を設定して記憶しているため、大規模ＬＳＩの設計時においても、処理の迅速化を図ることができる。
【００４８】
また、上述した情報処理装置は、当該情報処理装置に、プログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、
情報処理装置に、
予め設計された回路の配置及び接続関係を表す設計データと、上記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段から、上記設計データ及び上記タイミング制約データを読み出すデータ読み出し手段と、
上記設計データにて表わされる回路に配置された上記対となる素子間に対応して設定された上記クロックスキュー値を上記タイミング制約データから取得するクロックスキュー値取得手段と、
上記設計データに基づいて上記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について上記取得したクロックスキュー値と上記算出した遅延時間とを用いて、上記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出するスラック算出手段と、
を実現させるためのプログラムである。
【００４９】
そして、上記プログラムでは、
上記タイミング制約データに含まれる上記クロックスキュー値は、上記対となる素子が分配されている上記回路上の分岐点毎に予め設定されており、
上記クロックスキュー値取得手段は、上記設計データにて表わされる回路上の分岐点毎に対応する上記クロックスキュー値を、当該分岐点にて分配された上記対となる素子間のクロックスキュー値として取得する、
という構成を採る。
【００５０】
また、上述した情報処理装置が作動することにより実行される、本発明の他の形態である情報処理方法は、
予め設計された回路の配置及び接続関係を表す設計データと、上記回路上に配置され一方の素子から他方の素子にデータが入力される対となる素子に対してそれぞれ入力されるクロックの許容される遅延差を表し当該素子間毎に予め設定されたクロックスキュー値を含むタイミング制約データと、を記憶した記憶手段から、上記設計データ及び上記タイミング制約データを読み出し、
上記設計データにて表わされる回路に配置された上記対となる素子間に対応して設定された上記クロックスキュー値を上記タイミング制約データから取得し、
上記設計データに基づいて上記対となる素子間における遅延時間を算出すると共に、当該対となる素子間について上記取得したクロックスキュー値と上記算出した遅延時間とを用いて、上記対となる素子間が予め設定された設計要求を満たすか否かを表すスラック値を算出する、
という構成を採る。
【００５１】
そして、上記情報処理方法では、
上記タイミング制約データに含まれる上記クロックスキュー値は、上記対となる素子が分配されている上記回路上の分岐点毎に予め設定されており、
上記クロックスキュー値の取得時に、上記設計データにて表わされる回路上の分岐点毎に対応する上記クロックスキュー値を、当該分岐点にて分配された上記対となる素子間のクロックスキュー値として取得する、
という構成を採る。
【００５２】
上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理装置と同様の作用を有するために、上述した本発明の目的を達成することができる。
【００５３】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【産業上の利用可能性】
【００５４】
本発明は、回路の設計を行う際に使用するＣＡＤシステムに利用することができ、産業上の利用可能性を有する。
【符号の説明】
【００５５】
１      情報処理装置
１０    演算装置
１１    設計データ読込部
１２    タイミング制約読込部
１３    遅延計算部
１４    スラック計算部
１５    遅延最適化部
１６    レポート出力部
２０    記憶装置
２１    ネットリスト
２２    タイミング制約
２３    レイアウトデータ
２４    ＳＰＥＦ
２５    セル遅延ライブラリ
２６    出力レイアウトデータ
２７    遅延検証レポート
３００  情報処理装置
３０１  データ読み出し手段
３０２  クロックスキュー値取得手段
３０３  スラック算出手段
３１０  記憶手段
３１１  設計データ
３１２  タイミング制約データ
【図１】
0005444985.tif 000002
【図２】
0005444985.tif 000003
【図３】
0005444985.tif 000004
【図４】
0005444985.tif 000005
【図５】
0005444985.tif 000006
【図６】
0005444985.tif 000007
【図７】
0005444985.tif 000008
【図８】
0005444985.tif 000009
【図９】
0005444985.tif 000010
【図１１】
0005444985.tif 000011
【図１０】
0005444985.tif 000012