(57)【特許請求の範囲】
【請求項１】
コンピュータに、設計データに含まれる回路内のネットの遅延時間を計算させる遅延時間計算プログラムであって、
前記ネットが前記回路の論理的な情報で決まる論理条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の手順と、
前記第１の手順で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報で決まる物理条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の手順と、
前記第１の手順或いは第２の手順のいずれかで選択された遅延計算手順により前記ネットの遅延時間を計算する第３の手順と
を前記コンピュータに実行させ、
前記第１の遅延計算手順は、前記第２の遅延計算手順より詳細計算を行うことを特徴とする、遅延時間計算プログラム。
【請求項２】
前記物理条件は、前記論理条件よりも条件判定に要する時間が長いことを特徴とする、請求項１記載の遅延時間計算プログラム。
【請求項３】
前記第１の手順に先立ち、入力装置からの入力指示から決まる指定条件に応じて前記第１の遅延計算手順を選択する第４の手順を前記コンピュータに更に実行させ、
前記第１の手順は、前記第４の手順で前記第１の遅延計算手順が選択されない場合、前記論理条件に応じて前記第１の遅延計算手順を選択し、
前記第２の手順は、前記第４及び第１の手順で前記第１の遅延計算手順が選択されない場合、前記物理条件に応じて前記第１の遅延計算手順或いは第２の遅延計算手順の一方を選択することを特徴とする、請求項１又は２記載の遅延時間計算プログラム。
【請求項４】
前記第４の手順に先立ち、前記ネットの遅延時間の計算時間が設定時間を超える場合に前記第２の遅延計算手順を選択する手順
を前記コンピュータに更に実行させることを特徴とする、請求項３記載の遅延時間計算プログラム。
【請求項５】
前記第１の手順では、前記ネットのノード数が一定数以上の場合、或いは、前記ネットのファンアウト数が一定数以上の場合、前記第１の遅延計算手順を選択することを特徴とする、請求項１乃至４のいずれか１項記載の遅延時間計算プログラム。
【請求項６】
前記第２の手順では、
前記ネットの総配線長が一定値以上の場合、前記ネットの総容量値が一定値以上の場合、或いは、前記ネットの総抵抗がある一定値以上の場合、前記第１の遅延計算手順を選択し、
前記ネットの総抵抗が前記ある一定値未満の場合、前記第２の遅延計算手順を選択することを特徴とする、請求項５記載の遅延時間計算プログラム。
【請求項７】
前記第１の手順に先立ち、前記ネットをノード数の大きい順にソートして遅延時間の計算対象とする手順
を前記コンピュータに更に実行させることを特徴とする、請求項１乃至６のいずれか１項記載の遅延時間計算プログラム。
【請求項８】
設計データに含まれる回路内のネットの遅延時間を計算する遅延時間計算装置であって、
前記ネットが前記回路の論理的な情報で決まる論理条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の処理と、前記第１の処理で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報で決まる物理条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の処理を行う、選択部と、
前記選択部で選択された前記第１の遅延計算手順或いは第２の遅延計算手順により前記ネットの遅延時間を計算する計算部
を備え、
前記第１の遅延計算手順は、前記第２の遅延計算手順より詳細計算を行うことを特徴とする、遅延時間計算装置。
【請求項９】
回路内のネットの遅延時間をコンピュータにより計算する遅延時間計算方法であって、
前記ネットが前記回路の論理的な情報で決まる論理条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の手順と、
前記第１の手順で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報で決まる物理条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の手順と、
前記第１の手順或いは第２の手順のいずれかで選択された遅延計算手順により前記ネットの遅延時間を計算する第３の手順
を前記コンピュータに実行させ、
前記第１の遅延計算手順は、前記第２の遅延計算手順より詳細計算を行うことを特徴とする、遅延時間計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模集積回路（ＬＳＩ：Large Scale Integrated circuit）等における遅延時間を計算するための遅延時間計算プログラム、装置及び方法に関する。
【背景技術】
【０００２】
ＣＡＤ（Computer Aided Design）を用いたＬＳＩ等の設計において、タイミング解析等で用いるＬＳＩ内部の遅延時間は、回路素子であるゲートを信号が伝播する際の遅延時間であるゲートディレイと、配線を信号が伝播する際の遅延時間であるネットディレイに分類することができる。ゲートディレイに関しては、入力波形なまり（Slew）と出力負荷容量により特徴付けられた（又は、キャラクタライズされた）ライブラリを使用して遅延時間を計算するのが一般的である。一方、ネットディレイの計算については、各種計算方法が提案されている。
【０００３】
第１の計算方法では、高精度な計算が必要な場合は個別に指示することにより、狭い範囲で限定的に遅延時間を計算する。第２の計算方法では、ＬＳＩの全てのネットを対象に計算を行う際に、遅延時間の精度と計算コストとのトレードオフに応じて単一計算方法により遅延時間を計算する。計算コストとは、処理時間（又は、計算時間）、処理（又は、計算）で必要となるメモリ容量等を考慮に入れたコストを言う。
【０００４】
一方、第３の計算方法では、寄生容量の抽出の際にＣ（容量）モデルとＲＣ（抵抗・容量）モデルを抽出し、配線長に応じて夫々のモデルに適した計算式を使用して遅延時間を計算する。しかし、第３の計算方法の場合、Ｃモデルは近年の微細化されたテクノロジに対して精度的に不十分である。また、インダクタンスを考慮した遅延時間の計算はできない。更に、ＣモデルとＲＣモデルを使用した遅延時間の計算では非常に大きな計算誤差が発生する可能性がある。例えば、配線長のみに応じてＣモデル又はＲＣモデルの一方を選択するものとすると、配線長が例えば0.01μｍの違いで別々のモデルを選択した場合に、外見上は殆ど同じネットであるにもかかわらず、モデルに応じて使用する計算式によって計算される遅延時間が大きく異なる可能性がある。
【０００５】
また、第４の計算方法では、ＬＳＩ全体のネットを例えば通常のネットとバスネットとに分類し、バスネットについてはバスネットに適した計算式を使用して遅延時間を計算する。
【０００６】
エルモアディレイモデル（Elmore Delay Model）を用いる第５の計算方法では、配線抵抗と配線容量から簡易的に遅延時間を近似解により求める。ＡＷＥ（Asymptotic Waveform Evaluation）を用いる第６の計算方法では、入力されたステップ電圧に対する応答波形を近似解により求める。第６の計算方法によると、高次解になる程計算精度が高くなるが、計算にかかる計算コストが増大してしまう。
【０００７】
更に、回路の方程式を表した行列式の要素を縮小化して行列式を解くＰＲＩＭＡ（Passive Reduced-order Interconnect Macromodeling Algorithm）という第７の計算方法も提案されている。この第７の計算方法の場合も、計算精度が高くなると計算コストが増大してしまう。
【０００８】
近年、ＬＳＩの微細化が進み高速なテクノロジが一般的になってきたため、ネットの遅延時間の計算精度も高いものが要求されるようになってきた。更に、設計規模も大きくなり、ＬＳＩ全体のネット数も非常に多くなってきた。近年の大規模化したＬＳＩでは、ゲート数又は配線ネット数が1000万を超えているため、ＬＳＩの全てのネットに対して高精度な計算方法を適用すると、遅延時間の計算に膨大な時間がかかり実用的ではない。
【０００９】
このように、ＬＳＩ内のネットの遅延時間の計算方法には、上記の如く様々な方法が提案されているが、高精度に遅延時間を計算しようとすると計算コストが増大してしまう。そこで、ある１つの判定条件を満足した場合にのみ高精度にＬＳＩ内のネットの遅延時間を計算することもできるが、判定条件によっては、高精度に遅延時間を計算した方が良い場合に高精度の計算が行われなかったり、逆に、高精度に遅延時間を計算しなくても良い場合に計算コストの高い高精度の計算を行ってしまう可能性がある。つまり、満足するべき判定条件を厳しく設定すれば計算コストは抑えられるものの、本来高精度の計算を行った方が良い場合に精度の低い簡易な計算を行ってしまうために、遅延時間を高精度に計算することができない可能性がある。一方、満足するべき判定条件を緩く設定すれば遅延時間を高精度に計算することができるものの、本来精度の低い簡易な計算を行っても良い場合にも高精度の計算を行ってしまために、計算コストが増大してしまう。このように、ＬＳＩ内のネットの遅延時間を高精度に計算することと、計算コストの増大を抑制することとは、トレードオフの関係にあり、両者を同時に実現することは難しい。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平７−１８２３８０号公報
【特許文献２】特開平６−６０１４５号公報
【特許文献３】特開平３−２２０６７６号公報
【非特許文献】
【００１１】
【非特許文献１】A. Odabasioglu, M. Celik, and T. Pileggi, "PRIMA: passive reduced-order interconnect macromodeling algorithm", ICCAD 1997, pp.58-65
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来技術では、回路におけるネットの遅延時間を高精度に計算することは難しい。
【００１３】
そこで、本発明は、回路におけるネットの遅延時間を高精度に計算することが可能な遅延時間計算プログラム、装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一観点によれば、コンピュータに、設計データに含まれる回路内のネットの遅延時間を計算させる遅延時間計算プログラムであって、前記ネットが前記回路の論理的な情報で決まる論理条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の手順と、前記第１の手順で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報で決まる物理条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の手順と、前記第１の手順或いは第２の手順のいずれかで選択された遅延計算手順により前記ネットの遅延時間を計算する第３の手順とを前記コンピュータに実行させ、前記第１の遅延計算手順は、前記第２の遅延計算手順より詳細計算を行う遅延時間計算プログラムが提供される。
【００１５】
本発明の一観点によれば、設計データに含まれる回路内のネットの遅延時間を計算する遅延時間計算装置であって、前記ネットが前記回路の論理的な情報で決まる論理条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の処理と、前記第１の処理で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報で決まる物理条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の処理を行う、選択部と、前記選択部で選択された前記第１の遅延計算手順或いは第２の遅延計算手順により前記ネットの遅延時間を計算する計算部を備え、前記第１の遅延計算手順は、前記第２の遅延計算手順より詳細計算を行う遅延時間計算装置が提供される。
【００１６】
本発明の一観点によれば、回路内のネットの遅延時間をコンピュータにより計算する遅延時間計算方法であって、前記ネットが前記回路の論理的な情報で決まる論理条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の手順と、前記第１の手順で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報で決まる物理条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の手順と、前記第１の手順或いは第２の手順のいずれかで選択された遅延計算手順により前記ネットの遅延時間を計算する第３の手順を前記コンピュータに実行させ、前記第１の遅延計算手順は、前記第２の遅延計算手順より詳細計算を行う遅延時間計算方法が提供される。
【発明の効果】
【００１７】
開示の遅延時間計算プログラム、装置及び方法によれば、回路におけるネットの遅延時間を高精度に計算することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施例における遅延時間計算装置の一例を示す機能ブロック図である。
【図２】制限値テーブルの一例を説明する図である。
【図３】指定ドライバテーブルの一例を説明する図である。
【図４】ネットテーブル、ノードテーブル、及びセグメントテーブルの一例を説明する図である。
【図５】遅延時間計算処理の一例を説明するフローチャートである。
【図６】セグメントの一例を説明する図である。
【図７】セグメントの他の例を説明する図である。
【図８】コンピュータシステムの一例を示すブロック図である。
【発明を実施するための形態】
【００１９】
開示の遅延時間計算プログラム、装置及び方法では、設計データに含まれる回路内のネットの種類によっては簡易計算で遅延時間を計算しても高精度の詳細計算で計算した場合と遜色のない計算精度を保てる場合があり、例えば配線長が短いネット等では通常は誤差が非常に小さい点に着目する。具体的には、設計データに含まれる回路内のネットを複数の判定条件により分類し、ネットの種類に応じて計算方法を決定することで、回路全体に対してネットの遅延時間を精度良く計算する。計算コストを増大しないように計算方法を決定するようにしても良い。
【００２０】
複数の判定条件によりネットを分類する際には、例えば判定に要する時間が相対的に短い判定から先に行って計算方法が決定できれば、判定に要する時間が相対的に長い判定を省略して、判定の開始から計算方法の決定までの時間を短縮して遅延時間の計算が完了するまでの処理の高速化を図るようにしても良い。
【００２１】
また、設計データに含まれる回路から仮想的に定義されネットが有する実装情報であるノードの数が大きい程複雑な配線であり、配線長又は配線負荷が大きくなる傾向があるので、ノードの数の大きなネットから計算方法を決定しても良い。更に、設定時間を設けることにより、回路内の全てのネットに対する遅延時間計算処理が所望の時間内に完了するように、必要に応じて遅延時間の計算を高精度計算から簡易計算に切り替えるようにしても良い。これらの場合、限られた計算時間で所定の計算精度を必要とするネットの遅延時間を優先的に計算することができる。
【００２２】
以下に、開示の遅延時間計算プログラム、装置及び方法の各実施例を図面と共に説明する。
【実施例】
【００２３】
図１は、本発明の一実施例における遅延時間計算装置の一例を示す機能ブロック図である。図１に示す遅延時間計算装置１は、テーブル作成部１０、ネットディレイ計算部１３、ゲートディレイ計算部１４、及び記憶部１５を有する。テーブル作成部１０は、第１のテーブル作成部１１と第２のテーブル作成部１２を含む。ネットディレイ計算部１３は、選択部１３１、簡易計算部１３２、及び詳細計算部（又は、高精度計算部）１３３を含む。
【００２４】
第１のテーブル作成部１１は、各種パラメータの制限値を含む制御データ２５からの入力データに基づき、図２に示す制限値テーブル３１、及び図３に示す指定ドライバテーブル３２を作成する。言い換えると、制御データ２５は、制限値テーブル３１及び指定ドライバテーブル３２を作成するのに必要な情報を含み、ユーザによる入力指示から決まる指定条件の情報も含む。制御データ２５からの入力データ（ユーザによる入力指示から決まる指定条件の情報を含む）は、キーボード等の入力装置（図示せず）から入力されても、記憶部１５を含む内部記憶部又は外部記憶部から読み出されて入力されても良い。
【００２５】
図２は、制限値テーブル３１の一例を説明する図である。制限値テーブル３１は、後述する詳細計算（又は、高精度計算）を行う場合の条件が指定された場合に、遅延時間の計算対象である着目ネットに対して指定されたノード数Ｎｘ、ファンアウト数ＦＯｘ、配線長Ｌｘ、総容量値Ｃｘ、総抵抗値Ｒｘ、制限時間Ｔｘ等のパラメータを格納する。ここで、ノードとは、配線と配線とを接続する接続点又は配線とゲートとを接続する接続点を言い、ゲート（又は、回路ブロック）の入出力ピンやビア（Via）等を含む。また、配線と配線とを接続する仮想的な接続ポイントをノードとしても良い。つまり、ノードは、設計データに含まれる回路（又は、回路情報）から仮想的に定義されるものである。詳細計算を行う場合の条件が指定されないパラメータについては、デフォルト値が格納される。制限時間Ｔｘは、設計データに含まれる回路の全てのネットの遅延時間の計算が基準時間内に完了するか否かを判断するために用いられ、詳細については後述する。設計データに含まれる回路のネットの遅延時間の計算を開始してから当該回路の全てのネットの遅延時間の計算が完了する前に制限時間Ｔｘが経過した場合、それ以降のネットについては後述する簡易計算を行う。
【００２６】
図３は、指定ドライバテーブル３２の一例を説明する図である。指定ドライバテーブル３２は、着目ネットに対して指定されたドライバ名を格納する。指定ドライバテーブル３２のドライバ名で指定されたドライバを有するネットは、詳細計算の対象となる。
【００２７】
図１に示す第２のテーブル作成部１２は、ＬＳＩ等の設計対象（又は、解析対象）に関する論理情報を含むネットリスト２１、セグメント（配線）を含む設計対象の実装情報２２、素子の各種パラメータを含む素子ライブラリ２３、及びネットについて計算された遅延時間（ネットディレイ）を格納する遅延データベース（ＤＢ：Data-Base）２４に基づき、図４に示すネットテーブル３３、ノードテーブル３４、及びセグメントテーブル３５を作成する。第２のテーブル作成部１２は、ネット毎に、そのネットを構成するノードと、ノード間を接続するセグメントの情報を実装情報２２から取り出してこれらのテーブル３３，３４，３５を作成する。ネットリスト２１、実装情報２２、素子ライブラリ２３、及び遅延ＤＢ２４からの入力データは、キーボード等の入力装置（図示せず）から入力されても、記憶部１５を含む内部記憶部又は外部記憶部から読み出されて入力されても良い。この例では、少なくとも遅延ＤＢ２４が記憶部１５に格納されているものとする。
【００２８】
図４は、ネットテーブル３３、ノードテーブル３４、及びセグメントテーブル３５の一例を説明する図である。ネットテーブル３３は、第２のテーブル作成部１２がネットリスト２１を読み込んだ後で作成され、ＬＳＩ内の全てのネットについてネット名、ドライバ名、ノード先頭アドレス、ノード数、セグメント先頭アドレス、セグメント数、ファンアウト数、総配線長、総配線容量、総配線抵抗、配線種類、計算済フラグflag等のパラメータを格納する。
【００２９】
１つのネットについて格納された計算済フラグflagは、当該ネットがどの計算方法により計算されたかによって以下に説明する値を設定されると共に、計算された遅延時間と共に遅延ＤＢ２４に格納される。また、過去の遅延時間計算で得られた遅延ＤＢ２４のデータを入力とする場合には、読み込んだ遅延ＤＢ２４のデータに設定されている計算済フラグflagの値が計算済フラグflagに設定される。例えば、計算済フラグflagがflag=0の場合は、まだ遅延時間計算を行っていないネットを示す。ネットリスト２１から新たに計算を行う場合、設計情報が変更になった場合等で、遅延時間計算を最初から行う場合には、計算済フラグflagはflag=0に設定される。計算済フラグflagがflag=1の場合は簡易計算により計算されたネットを示し、flag=2の場合は詳細計算により計算されたネットを示し、flag=3の場合は時間制限により強制的に簡易計算されたネットを示す。
【００３０】
ノードテーブル３４は、各ノードについて、ノード種類、ピン情報へのポインタ等のパラメータを格納する。例えば、ノード種類は、ノードがピンの場合に１、ビア（Via）の場合に２、その他の場合に０である。ネットテーブル３３に格納されたノード先頭アドレスは、図４中矢印で示すようにこのノードテーブル３４のノードへの参照ポインタを形成する。
【００３１】
セグメントテーブル３５は、各セグメントについて、ノードテーブル３４からのフロム（from）ノードアドレス、ノードテーブル３４へのツー（to）ノードアドレス、配線抵抗、配線容量、インダクタンス、配線種類等のパラメータを格納する。例えば、配線種類は、実配線の場合に１、仮配線の場合に０である。ネットテーブル３３に格納されたセグメント先頭アドレスは、図４中矢印で示すようにこのセグメントテーブル３５のセグメントへの参照ポインタを形成する。
【００３２】
第１のテーブル作成部１１は、遅延時間計算処理が開始されて制御データ２５が入力されると制限値テーブル３１及び指定ドライバテーブル３２を作成する。第２のテーブル作成部１２は、制限値テーブル３１及び指定ドライバテーブル３２が作成されると、回路の全てのネットについてネットテーブル３３、ノードテーブル３４、及びセグメントテーブル３５を作成しても、着目ネットの遅延時間計算処理で必要となった時点で着目ネットについてのみネットテーブル３３、ノードテーブル３４、及びセグメントテーブル３５を作成しても良い。後者の場合、ファンアウト数、総配線長、総配線容量、総配線抵抗、配線種類、計算済フラグflag等のパラメータは、図５と共に後述する判定条件による各判定において必要になった時点で第２のテーブル作成部１２が各テーブル３３〜３５にネットディレイ計算部１３により取り出し可能に格納しても良い。
【００３３】
ＬＳＩ等の回路全体に対してネットディレイ、すなわち、ネットの遅延時間を計算する計算コストを決定するための要素は、大きく分けて以下の３つ条件Ｊ１〜Ｊ３を含む。指定条件（又は、要件）Ｊ１は、ユーザによる入力指示から決まる。論理条件Ｊ２は、回路の論理的な情報から決まる。物理条件Ｊ３は、回路の物理的な情報から決まる。
【００３４】
ネットディレイ計算部１３は、上記テーブル３１〜３５を用いて上記条件Ｊ１，Ｊ２，Ｊ３に応じてネットの遅延時間の計算方法を選択部１３１で後述するように選択する。選択部１３１が簡易計算方法（又は、簡易遅延計算手順）を選択すると、簡易計算部１３２がネットの遅延時間を簡易計算方法を用いて計算して記憶部１５に格納する。一方、選択部１３１が詳細計算方法（又は、詳細遅延計算手順）を選択すると、詳細計算部１３３がネットの遅延時間を詳細計算方法を用いて計算して記憶部１５に格納する。ゲートディレイ計算部１４は、例えば入力波形なまり（Slew）と出力負荷容量により特徴付けられたライブラリを使用して遅延時間を計算する周知の方法でゲートディレイを計算して記憶部１５に格納する。尚、ゲートディレイの計算は、ネットディレイを計算する本実施例の動作と直接関係しないので、その詳細な説明は省略する。また、ゲートディレイを求める必要がない設計処理（又は、解析処理）であれば、ゲートディレイ計算部１４は省略可能である。
【００３５】
遅延時間の計算に簡易計算方法を使用するか、或いは、詳細計算方法を使用するかは、遅延時間計算処理のなるべく早い段階で決定できれば、計算方法を決定するまでの判定に要する時間を短縮できるので、その分回路全体に対するネットの遅延時間の計算を完了するまでに要する時間の短縮にも貢献できる。また、上記の３つの条件Ｊ１〜Ｊ３を判断するための情報の量の違い等から、条件Ｊ１，Ｊ２，Ｊ３の順番で当該条件を判断するための情報の取り出しに要する時間が長くなる。従って、当該条件を判断するための情報の取り出しに要する時間が短い条件Ｊ１，Ｊ２，Ｊ３の順番で条件判断を行い早い段階で計算方法の選択が完了すれば、条件を判断するための情報の取り出しに要する時間を含む、条件判断に要する時間が短い条件判断から順に実行されるので、その分回路全体に対するネットの遅延時間の計算を完了するまでに要する時間を短縮できる。更に、各条件Ｊ１，Ｊ２，Ｊ３を判断するために必要な情報のみを必要となった時点で取り出すようにすれば、第２のテーブル作成部１２で回路の全てのネットについてテーブル３３〜３５を予め作成しておく場合と比較すると、回路全体に対するネットの遅延時間の計算を完了するまでに要する時間の短縮につながる。同様に、条件判断の結果実行される簡易計算等の配線遅延計算で必要となる情報のみを必要となった時点で取り出すことで、回路全体に対するネットの遅延時間の計算を完了するまでに要する時間の短縮につながる。回路内のネットの数は、例えば1000万を超えるので、１つの着目ネットに対する処理で上記の如く処理時間（又は、計算時間）を短縮することで、回路内の全てのネットの遅延時間の計算に要する時間の短縮効果は大きい。
【００３６】
上記の条件Ｊ１〜Ｊ３を詳細な項目に分類すると、以下のような項目ｋ１〜ｋ９が得られる。
ｋ１：  実配線であるか論理配線(ゲートの位置による仮想配線等)であるか
ｋ２：  総抵抗値
ｋ３：  総容量値
ｋ４：  ファンアウト数
ｋ５：  配線長さ
ｋ６：  配線情報としてのノード数、セグメント数
ｋ７：  ドライバの種類
ｋ８：  インダクタンス考慮の有無
ｋ９：  計算に要する時間
上記の項目ｋ１〜ｋ９をキーに各着目ネットがどの計算方法に適しているかを判断し、適していると判断した計算方法に従った計算を実行する。また、計算された遅延時間（ネットディレイ）は記憶部１５内の遅延ＤＢ２４に格納されるが、このネットディレイがどの計算方法により計算されたのかを識別するための計算済フラグflagを設定してネットディレイと共に遅延ＤＢ２４に格納する。この計算済フラグflagは、ネットディレイを再度計算する場合に、より精度の高い計算を行いたいような場合に参照することもできる。
【００３７】
更に、前記遅延ＤＢ２４は、フリップフロップ（ＦＦ：Flip-Flop）間等のパスディレイを計算する場合に使用できる。ＬＳＩの設計処理（又は、解析処理）において、パスのルートと共に遅延時間の表示も行うが、そのネットの表示と共にどの計算方法で計算されたかを表示部に表示すれば、ユーザが特に計算精度を高めたいような場合にはそのネットを指定することにより高精度の計算を行うことが可能となる。
【００３８】
図５は、上記条件Ｊ１〜Ｊ３を用いた遅延時間計算処理の一例を説明するフローチャートである。図５に示す遅延時間計算処理は、図１に示すネットディレイ計算部１３により実行される。図５において、ＳＴ１はユーザによる入力指示から決まる上記指定条件Ｊ１に関連する処理、ＳＴ２は上記論理条件Ｊ２に関連する処理、ＳＴ３は上記物理条件Ｊ３に関連する処理を示す。ステップＳ５，Ｓ７，Ｓ８は上記指定条件Ｊ１による比較（又は、選択）処理、ステップＳ１０，Ｓ１２は上記論理条件Ｊ２による比較処理、ステップＳ１４，Ｓ１６，Ｓ１８は上記物理条件Ｊ３による比較処理を、この順序で行う。比較処理の順序は、なるべく早い段階で簡易計算を使用するか詳細計算を使用するかを決定するために決められており、比較処理（又は、判定処理）の高速化に寄与する。尚、指定条件Ｊ１がない場合には、条件Ｊ２，Ｊ３を用いた処理ＳＴ２，ＳＴ３を実行することで遅延時間計算処理を行えば良い。
【００３９】
図５の遅延時間計算処理では、簡易計算と詳細計算を必要に応じて切り替える処理を、ＬＳＩ内の全てのネットに対して繰り返し実行する。各着目ネットに対しては、ネットテーブル３３、ノードテーブル３４、及びセグメントテーブル３５からデータ（パラメータ）を取得する。これらのデータに対して、制御値テーブル３１及び指定ドライバテーブル３２の制限値等の値を参照することで計算方法を選択して遅延時間を計算する。
【００４０】
第１のテーブル作成部１１によるテーブル３１，３２の作成と、第２のテーブル作成部１２によるテーブル３３〜３５の作成は、図５の遅延時間計算処理を開始するときに順に実行しても良いが、第２のテーブル作成部１２によるテーブル３３〜３５の作成は、テーブル３３〜３５のデータが必要になった時点で実行しても良い。つまり、ファンアウト数、総配線長、総配線容量、総配線抵抗、配線種類、計算済フラグflag等のパラメータの取り出しは、図５の各判定ステップにおいて当該パラメータが必要となった時点で第２のテーブル作成部１２がネットリスト２１と実装情報２２から取り出して各テーブル３３〜３５にネットディレイ計算部１３により取り出し可能に格納するようにしても良い。
【００４１】
図５において、遅延時間計算処理が開始されると、ステップＳ０−１は、初期化処理として計算済フラグflagを、着目ネットが未計算ネットであることを示す値０に設定する。
【００４２】
ステップＳ０−２は、ネットが有する実装情報であるノード数をネットテーブル３３から取り出して、ＬＳＩ内の全てのネットをノード数の大きい順にソートする。ネットのノード数が大きい程複雑な配線であり、配線長又は配線負荷も大きくなる傾向がある。そこで、この例では、ノード数の大きなネットから遅延時間の計算対象である着目ネットに選定して、ノード数の大きなネットから優先的に遅延時間を高精度計算で計算できるようにしている。これにより、限られた計算時間で所定の計算精度を必要とするネットの遅延時間を優先的に計算することが可能となる。尚、ノード数にかかわらず着目ネットを選定する場合には、ステップＳ０−２は省略可能である。
【００４３】
ステップＳ１は、ＬＳＩ内の全てのネット数分のループ処理をステップＳ２以降の処理を実行することにより行う。ステップＳ２は、着目ネットに対応付けて設定されている計算済フラグflagが１又は２である、或いは、０又は３であるかを判定する。計算済フラグflagが１又は２の場合は、着目ネットは既に各種条件により簡易計算或いは詳細計算の何れかにより遅延時間が計算済みのネットであることを示しており、この着目ネットの遅延時間の計算は不要であるため、処理はステップＳ１へ戻り次のネットの処理に移行する。計算済フラグflagが０又は３の場合は、着目ネットは未計算ネットであるか、或いは、前回時間制限による時間切れで簡易計算になったネットであることを示しており、各種条件の判断を行う必要があるため、処理はステップＳ３へ進む。
【００４４】
ステップＳ３は、ネットディレイ計算部１５内で計測される、図５の遅延時間計算処理を開始してからの経過時間が設定時間内か否かを判定する。設定時間は、例えば制限時間Ｔｘに設定されていても良い。設定時間が設定されない場合は、図２の制限値テーブル３１の制限時間Ｔｘが無限大又は十分大きな値に設定されているものとする。ステップＳ３の判定結果がＮＯであると、ステップＳ２３は計算済フラグflagを３に設定し、処理は後述するステップＳ２１へ進んで簡易計算を行う。一方、ステップＳ３の判定結果がＹＥＳであれば、処理はステップＳ４へ進み、以下に説明する各種条件による判定に応じた適切な計算を行い、その際に計算済フラグflagが３から１又は２に書き替えられる。
【００４５】
尚、ステップＳ２とステップＳ３の実行順序を入れ替えても良い。この場合、ステップＳ３の判定結果がＹＥＳであるとステップＳ２が実行され、ステップＳ２の判定の結果計算済フラグflagが０又は３の場合は処理がステップＳ４へ進む。
【００４６】
ステップＳ４は、ネットテーブル３３から着目ネットのドライバ名を取得してDrvとして記憶部１５に格納する。ステップＳ５は、ドライバ名Drvがドライバテーブル３２に格納されているか否かを判定する。この例では、ドライバの種類によって詳細計算を行う場合に、ユーザによる入力指示により決まる指定条件Ｊ１の情報としてそのドライバ名が制御データ２５で指定されて指定ドライバテーブル３２に格納されているものとする。ネットテーブル３３から取得した着目ネットのドライバが指定条件Ｊ１の情報で指定されたドライバ名であれば、当該ドライバ名がドライバテーブル３２に格納されているのでステップＳ５の判定結果はＹＥＳであり、処理はステップＳ２０へ進んで計算済フラグflagが２に書き替えられ、その後処理はステップＳ２２へ進んで詳細計算（以下、高精度計算と言う）を行う。このように、ドライバ抵抗、回路構成、駆動能力等により計算精度に大きな影響を及ぼす回路等については、予め高精度計算を指定するようにユーザによる入力指示により決まる指定条件Ｊ１の情報（すなわち、制御データ２５）を選定しておくことで遅延時間の計算精度を維持することができる。
【００４７】
ステップＳ５の判定結果がＮＯであると、ステップＳ６はネットテーブル３３から着目ネットのインダクタンス成分を取得してＬとして記憶部１５に格納する。ステップＳ７は、着目ネットのインダクタンス成分Ｌが、ユーザによる入力指示により決まる指定条件Ｊ１の情報として制御データ２５で指定された値０であるか否かを判定する。この値０は、制限値テーブル３１に格納されていても良い。インダクタンス成分Ｌが０でなくステップＳ７の判定結果がＮＯであると、処理はステップＳ２０へ進んで計算済フラグflagが２に書き替えられ、その後処理はステップＳ２２へ進んで高精度計算を行う。これは、簡易計算では遅延時間の計算式のパラメータとしてインダクタンス成分Ｌが使用されておらず、インダクタンス成分Ｌの影響を考慮できないためである。尚、寄生容量抽出時のモデルによっては、インダクタンス成分Ｌを抽出しない場合もあり、インダクタンス成分Ｌを無視した高精度計算を行うようにしても良いことは言うまでもない。
【００４８】
着目ネットの配線は、論理配線と、実配線とがあり得る。そこで、ステップＳ７の判定結果がＹＥＳであると、ステップＳ８は、ネットテーブル３３から配線種類を取得して、配線種類が論理配線であるか、或いは、実配線であるかを判定する。論理配線では、セルの配置位置から仮想的に最短で配線したと仮定したときの配線長により、配線の抵抗と容量が計算される。一方、実配線は、実際の配線による抵抗、容量、インダクタンス及び他の配線との隣接効果による寄生成分も含まれた値を有する。このため、この例では、ユーザによる入力指示により決まる指定条件Ｊ１として、基本的に論理配線の着目ネットについては簡易計算を行うような設定になっている。つまり、ステップＳ８の判定結果が論理配線であると、処理はステップＳ１９へ進んで計算済フラグflagが１に書き替えられ、その後処理はステップＳ２１へ進んで簡易計算を行う。
【００４９】
ステップＳ８の判定結果が実配線であると、処理はステップＳ９へ進む。ステップＳ９は、ネットテーブル３３から着目ネットのノード数を取得してNnetとして記憶部１５に格納する。ステップＳ１０は、ノード数Nnetが制限値テーブル３１のノード数Ｎｘ未満であるか否かを判定する。着目ネットの実装情報２２には、メタル配線部分とこれらを接続するノードを含む。図６と共に後述するように、ノード数が大きくなると、ネットの形状が複雑になりネットの長さも長くなる傾向にある。このようなノード数が大きいネットは、簡易計算では遅延時間の計算精度が低くなる傾向にあり、ノード数が一定数（例えば、５）以上の場合は高精度計算を行う方が良い。そこで、ステップＳ１０の判定結果がＮＯであると、処理はステップＳ２０へ進んで計算済フラグflagが２に書き替えられ、その後処理はステップＳ２２へ進んで高精度計算を行う。
【００５０】
一方、ステップＳ１０の判定結果がＹＥＳであると、ステップＳ１１は、ネットテーブル３３から着目ネットのファンアウト数を取得してfoとして記憶部１５に格納する。ステップＳ１２は、ファンアウト数foが制限値テーブル３１のファンアウト数ＦＯｘ未満であるか否かを判定する。着目ネットに付くレシーバの数をファンアウト数と言うが、このファンアウト数も多くなると回路構成が複雑になり簡易計算では遅延時間の計算精度が低くなるので、ある一定数以上のファンアウト数の場合は高精度計算を行う方が良い。具体的には、ファンアウトが２以上の場合は高精度計算を行う方が良い。これは、ファンアウトが１の場合、配線の長さ等にもよるが、簡易計算と高精度計算の計算誤差が比較的小さいからである。そこで、ステップＳ１２の判定結果がＮＯであると、処理はステップＳ２０へ進んで計算済フラグflagが２に書き替えられ、その後処理はステップＳ２２へ進んで高精度計算を行う。
【００５１】
ステップＳ１２の判定結果がＹＥＳであると、ステップＳ１３は、ネットテーブル３３から着目ネットの総配線長を取得してｌ（エル）として記憶部１５に格納する。ステップＳ１４は、総配線長ｌが制限値テーブル３１の配線長Ｌｘ未満であるか否かを判定する。着目ネットの配線長が大きくなると、負荷抵抗及び容量が大きくなり、遅延時間の計算精度に影響を及ぼす。そこで、ある一定値（例えば、１０μｍ）以上の配線長の着目ネットについては、遅延時間を高精度計算で計算する。従って、ステップＳ１４の判定結果がＮＯであると、処理はステップＳ２０へ進んで計算済フラグflagが２に書き替えられ、その後処理はステップＳ２２へ進んで高精度計算を行う。
【００５２】
ステップＳ１４の判定結果がＹＥＳであると、ステップＳ１５は、ネットテーブル３３から着目ネットの総容量を取得してｃとして記憶部１５に格納する。ステップＳ１６は、総容量ｃが制限値テーブル３１の総容量値Ｃｘ未満であるか否かを判定する。着目ネットの総配線容量（又は、総配線抵抗）がある一定値以上の場合には高精度計算を行う方が良い。着目ネットの総配線容量（又は、総配線抵抗）は、基準となるインバータの入力ピン容量の例えば３倍の値とする。或いは、着目ネットの総配線容量（又は、総配線抵抗）が５ｆＦ（又は、５Ω）以上の場合は、高精度計算を行うようにしても良い。着目ネットの容量が大きいということは配線の長さが大きい場合やファンアウト数が大きい場合等、配線形状の複雑さにも影響される。このため、上記のステップＳ１２の条件を通過した着目ネットに対して、ステップＳ１４（又は、ステップＳ１６）で更に条件の絞り込みを行う。
【００５３】
ステップＳ１６の判定結果がＮＯであると、処理はステップＳ２０へ進んで計算済フラグflagが２に書き替えられ、その後処理はステップＳ２２へ進んで高精度計算を行う。一方、ステップＳ１６の判定結果がＹＥＳであると、ステップＳ１７は、ネットテーブル３３から着目ネットの総配線抵抗を取得してｒとして記憶部１５に格納する。ステップＳ１８は、総配線抵抗ｒが制限値テーブル３１の総抵抗値Ｒｘ（ある一定値）未満であるか否かを判定する。ステップＳ１８の判定結果がＮＯであると、処理はステップＳ２０へ進んで計算済フラグflagが２に書き替えられ、その後処理はステップＳ２２へ進んで高精度計算を行う。一方、ステップＳ１８の判定結果がＹＥＳであると、処理はステップＳ１９へ進んで計算済フラグflagが１に書き替えられ、その後処理はステップＳ２１へ進んで簡易計算を行う。
【００５４】
ステップＳ２１は、テーブル３３〜３５から必要なパラメータを取得して簡易計算を行うことでネットの遅延時間を計算して記憶部１５に格納し、処理はステップＳ１へ戻る。また、ステップＳ２２は、テーブル３３〜３５から必要なパラメータを取得して高精度計算を行うことでネットの遅延時間を計算して記憶部１５に格納し、処理はステップＳ１へ戻り回路内の次の着目ネットに対して上記と同様の処理を実行する。
【００５５】
簡易計算と高精度計算の計算誤差は、どのような計算式を使用するかに応じて異なる場合がある。このため、上記ノード数、ファンアウト数、配線長、総配線容量、総配線抵抗は、外部からの指定も可能である。
【００５６】
ＬＳＩ内の各ネットの遅延時間は、図５の処理により選択された計算方法（簡易計算又は高精度計算）により計算される。また、各ネットの計算済フラグflagに、遅延時間がどの計算方法で計算されたかを区別可能とする値を設定する。
【００５７】
簡易計算でも精度が保てるネットを選択し、簡易計算と高精度計算を適切に使い分けることにより、ＬＳＩ全体のネットの遅延時間（ネットディレイ）の計算時間を短縮することができる。
【００５８】
上述のように、簡易計算と高精度計算を適切に使い分けることで、配線遅延の計算時間の短縮を図ることができるが、配線の実装状況によっては所望の時間内に遅延時間計算処理を完了できない場合がある。そこで、図５のステップＳ３，Ｓ２３は、設定時間を設けることにより、ＬＳＩ内の全てのネットに対する遅延時間計算処理が所望の時間内に完了するように、必要に応じて遅延時間の計算を高精度計算から簡易計算に切り替えるものである。これにより、限られた計算時間で所定の計算精度を必要とするネットの遅延時間を優先的に計算することが可能となる。
【００５９】
また、計算済フラグflagが１又は２の場合は、着目ネットは既に各種条件により簡易計算或いは詳細計算の何れかにより遅延時間が計算済みのネットであることを示しており、０又は３の場合は、着目ネットは未計算ネットであるか、或いは、前回時間制限による時間切れで簡易計算になったネットであることを示している。従って、遅延時間の計算を再度実行する場合には、計算済フラグflagが３であることを確認することで、既に簡易計算で遅延時間を計算したネットについて高精度計算を実行することが可能になる。
【００６０】
次に、ＬＳＩのネットのノードについて説明する。ノードとは、上記の如くゲートの入出力ピンやビア（Via）等を含む。また、１つの配線ワイヤに着目すると、通常は同じ単位当たりの抵抗、容量を有し、均一な値であるが、別の配線が隣接するとその影響で容量値が変化する。つまり、同じ１本のワイヤでも、部分的に異なる容量を有する。このように容量が異なる部分でノードを発生させる。
【００６１】
ネットを解析するときは、集中定数回路とみなして解析するより、分布定数回路とみなして解析した方がより計算精度が上がる。そこで、開示の遅延時間計算方法では、１つのセグメントが所定の長さである例えば１０μｍを超えた場合には１０μｍ単位にセグメントをノードにより分割し、１つのセグメントは最大でも１０μｍとする。この場合も、上記と同様にしてノードを発生する。すなわち、仮想的なビアを挿入することにより、１つの長い配線を複数の配線に分割する。ただし、上記の所定の長さの値は、テクノロジー条件等に応じて設定するべきであり、変更可能である。
【００６２】
図６及び図７は、上記の方法により発生したノードと、ノードを接続するセグメントの例を説明する図である。図６及び図７において、□印はノードを示し、ノード間を接続する実線（直線）はメタル配線等のセグメントを示す。図６では、ノード数が１７、ドライバ数が１、レシーバ数が５である。一方、図７では、ノード数が２、ドライバ数が１、レシーバ数が１である。
【００６３】
例えばＣモデルのような場合、ネットは集中容量とみなされてしまう。例えば、図６のようにレシーバが複数あるネットでは、夫々のドライバ・レシーバ間の遅延は異なるが、Ｃモデルではドライバ・レシーバ間の異なる遅延を表現できない。このように、長さが同じでもノード数やレシーバ数（ファンアウト数）が多いと、ネットの複雑さが増して計算精度にも影響してくる。
【００６４】
例えば、４５ｎｍテクノロジーでは、ノード数＝２、ファンアウト数＝１、配線長＝１０μｍとしてＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）シミュレーション等を行うと、ネットディレイの最小単位は１ｐｓ未満となる。目標とする遅延時間の精度を１ｐｓ以下とすると、上記の最小のネットディレイの単位条件で十分にクリアすることができる。
【００６５】
従って、図５と共に説明した遅延時間計算処理の条件のデフォルト値としては、図７のように最も単純なネット形状として、ノード数Ｎｘ＝２、ＦＯｘ＝１、Ｌｘ＝１０μｍとすると、単位長当たりの平均的な抵抗Ｒ及び容量Ｃは既知なので、総容量値Ｃｘ及び総抵抗値Ｒｘを計算することができる。また、対象となるテクノロジーに対してＳＰＩＣＥシミュレータ等により、ネット遅延が１ｐｓ未満になるように配線の総容量値Ｃｘ及び総抵抗値Ｒｘを調整し、その時の配線長Ｌｘを逆算することで、Ｎｘ＝Ｌｘ／１０μｍ としても良い。
【００６６】
遅延時間計算方法の一例としては、エルモア（Elmore）法、Elmore２次近似法、ＡＷＥ法、ＰＲＩＭＡ法等がある。Elmore法は、ＲＣ回路の簡易遅延モデル（Elmore遅延モデル）を用いて遅延時間を簡単な近似式で表す簡易計算方法である。Elmore２次近似法は、Elmore法に対して２次近似解を解く簡易計算方法である。ＡＷＥ法（漸近的波形評価法)は、回路網の応答波形を近似する高精度計算方法であり、１次解はElmore遅延モデルと等価であり、２次解はElmore２次近似法による２次近似解と等価である。ＡＷＥ法の場合、高次の解程実波形に近づき精度が高いといえる。しかし、ＡＷＥ法では解が得られない場合もあり、計算コストも比較的大きくなる。ＰＲＩＭＡ法は、回路方程式による行列式を縮小して解く高精度計算方法である。
【００６７】
Elmore２次近似法でも、配線が比較的短く、レシーバが１個というような簡単な回路であれば、計算される遅延時間の精度は十分高い。そこで、上記の例では、例えば簡単で計算コストが比較的低いElmore２次近似法とＰＲＩＭＡ法を夫々簡易計算と高精度計算の方法として用いることができる。
【００６８】
図８は、コンピュータシステムの一例を示すブロック図である。図８に示すコンピュータシステム１００は、ＣＰＵ１０１、記憶部１０２、インタフェース（Ｉ／Ｆ）１０３、入力装置１０４、及び表示部１０５がバス１０６により接続された構成を有する。尚、ＣＰＵ１０１と、記憶部１０２、Ｉ／Ｆ１０３、入力装置１０５、及び表示部との接続は、図８に示すバス接続に限定されるものではない。
【００６９】
ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することによりコンピュータシステム１００全体を制御する。記憶部１０２は、半導体記憶装置、磁気記録媒体、光記録媒体、光磁気記録媒体等のコンピュータ読み取り可能な記憶媒体で形成可能であり、上記のプログラムや各種データを格納すると共に、ＣＰＵ１０１が実行する演算の中間結果や演算結果等を一時的に格納する一時メモリとしても機能する。記憶部１０２は、図１に示す記憶部１５としても機能可能であり、遅延ＤＢ２４格納可能である。Ｉ／Ｆ１０３は、記憶部１０２に格納するプログラムやデータを外部記憶部等の外部装置からネットワーク（図示せず）を介して受信することができる。また、Ｉ／Ｆ１０３は、必要に応じて、データをネットワークを介して外部記憶部等の外部装置へ送信することができる。入力装置１０４は、キーボード等により形成可能である。表示部１０５は、ディスプレイ等により形成可能である。入力装置１０４及び表示部１０５は、タッチパネルのように入力装置と表示部の両方の機能を有する入出力装置で形成しても良い。
【００７０】
ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することにより、コンピュータシステム１００を少なくとも遅延時間計算装置１として機能させる。図５の遅延時間計算処理を開始してからの経過時間は、例えばＣＰＵ１０１の内部タイマにより計測可能である。プログラムは、ＣＰＵ１０１にＬＳＩ等の設計対象の設計処理（又は、解析対象の解析処理）の手順を実行させるものであっても良く、記憶部１０２を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていても良い。また、プログラムは、ＣＰＵ１０１に図１に示す各部１１〜１４の機能を実現させるものであっても、ＣＰＵ１０１に少なくとも図５のネットディレイ計算処理を実行させるものであっても良い。つまり、ＣＰＵ１０１に図５のネットディレイ計算処理を実行させるプログラムは、ＣＰＵ１０１に設計処理（又は、解析処理）の手順を実行させるプログラムに対してプラグイン可能な構成としても良い。
【００７１】
開示の遅延時間計算プログラム、装置及び方法では、例えば特許文献１の如き容量抽出は行わず、抽出された抵抗・容量成分ＲＣ、或いは、インダクタンス成分Ｌに対してネットの計算コストと計算精度が最適な計算方法を選択する。これにより、配線容量及び抵抗抽出モデルによらず、同一のモデルを使用して最適な計算方法を選択することができ、モデルに依存することなくインダクタンスを含めたネットの遅延時間の高精度計算が可能となる。また、計算方法の選択には、配線長も考慮するが、ノード数やファンアウト数等のネット形状の複雑さも考慮するため、例えば特許文献１では配線長が例えば0.01μｍの違いで別々のモデルが選択されてモデルに応じて使用する計算式によって計算される遅延時間が大きく異なってしまうような事態を防止して、高精度の遅延時間の計算を効率的に行うことが可能である。
【００７２】
近年の大規模化したＬＳＩでは、ゲート数又は配線ネット数が1000万を超えているため、ＬＳＩの全てのネットに対して高精度な計算方法を適用すると、遅延時間の計算に膨大な時間がかかり実用的ではない。しかし、開示の遅延時間計算プログラム、装置及び方法を用いることで、計算精度をあまり落とさずに実用的な計算時間で、ＬＳＩの全てのネットに対して遅延時間を計算することが可能になる。
【００７３】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータに、設計データに含まれる回路内のネットの遅延時間を計算させる遅延時間計算プログラムであって、
前記ネットが第１の条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の手順と、
前記第１の手順で前記第１の遅延計算手順が選択されない場合、第２の条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の手順と、
前記第の手順１或いは第２の手順のいずれかで選択された遅延計算手順により前記ネットの遅延時間を計算する第３の手順と
を前記コンピュータに実行させる
ことを特徴とする、遅延時間計算プログラム。
（付記２）
前記第２の条件は、前記第１の条件よりも条件判定に要する時間が長いことを特徴とする、付記１記載の遅延時間計算プログラム。
（付記３）
前記第１の手順に先立ち、入力装置からの入力指示から決まる指定条件に応じて前記第１の遅延計算手順を選択する第４の手順を前記コンピュータに更に実行させ、
前記第１の手順は、前記第４の手順で前記第１の遅延計算手順が選択されない場合、前記回路の論理的な情報から決まる前記第１の条件に応じて前記第１の遅延計算手順を選択し、
前記第２の手順は、前記第４及び第１の手順で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報から決まる前記第２の条件に応じて前記第１の遅延計算手順或いは第２の遅延計算手順の一方を選択することを特徴とする、付記１又は２記載の遅延時間計算プログラム。
（付記４）
前記第４の手順に先立ち、前記ネットの遅延時間の計算時間が設定時間を超える場合に前記第１の遅延計算手順を選択する手順
を前記コンピュータに更に実行させることを特徴とする、付記３記載の遅延時間計算プログラム。
（付記５）
前記第４の手順では、
前記ネットのドライバが指定された種類のドライバである場合、或いは、前記ネットのインダクタンス成分が０でない場合、前記第１の計算を選択し、
前記ネットの配線種類が論理配線である場合、前記第２の遅延計算手順を選択することを特徴とする、付記３又は４記載の遅延時間計算プログラム。
（付記６）
前記第１の手順では、前記ネットのノード数が一定数以上の場合、或いは、前記ネットのファンアウト数が一定数以上の場合、前記第１の遅延計算手順を選択することを特徴とする、付記１乃至５のいずれか１項記載の遅延時間計算プログラム。
（付記７）
前記第２の手順では、
前記ネットの総配線長が一定値以上の場合、前記ネットの総容量値が一定値以上の場合、或いは、前記ネットの総抵抗がある一定値以上の場合、前記第１の遅延計算手順を選択し、
前記ネットの総抵抗が前記ある一定値未満の場合、前記第２の遅延計算手順を選択することを特徴とする、付記６記載の遅延時間計算プログラム。
（付記８）
前記第３の手順で用いた遅延計算手順を識別するためのフラグを、当該遅延計算手順で計算された遅延時間と共に前記記憶部に格納する手順
を前記コンピュータに更に実行させることを特徴とする、付記１乃至７のいずれか１項記載の遅延時間計算プログラム。
（付記９）
前記第１の手順に先立ち、前記ネットをノード数の大きい順にソートして遅延時間の計算対象とする手順
を前記コンピュータに更に実行させることを特徴とする、付記１乃至８のいずれか１項記載の遅延時間計算プログラム。
（付記１０）
設計データに含まれる回路内のネットの遅延時間を計算する遅延時間計算装置であって、
前記ネットが第１の条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の処理と、前記第１の処理で前記第１の遅延計算手順が選択されない場合、第２の条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の処理を行う、選択部と、
前記選択部で選択された前記第１の遅延計算手順或いは第２の遅延計算手順により前記ネットの遅延時間を計算する計算部
を備えたことを特徴とする、遅延時間計算装置。
（付記１１）
前記第２の条件は、前記第１の条件よりも条件判定に要する時間が長いことを特徴とする、付記１０記載の遅延時間計算装置。
（付記１２）
入力装置を更に備え、
前記選択部は、前記第１の処理に先立ち、前記入力装置からの入力指示から決まる指定条件に応じて第１の遅延計算手順を選択する第３の処理を行い、
前記第１の処理は、前記第４の処理で前記第１の遅延計算手順が選択されない場合、前記回路の論理的な情報から決まる前記第１の条件に応じて前記第１の遅延計算手順を選択し、
前記第２の処理は、前記第４及び第１の処理で前記第１の遅延計算手順が選択されない場合、前記回路の物理的な情報から決まる前記第２の条件に応じて前記第１の遅延計算手順或いは第２の遅延計算手順の一方を選択することを特徴とする、付記１０又は１１記載の遅延時間計算装置。
（付記１３）
前記選択部は、前記第４の処理に先立ち、前記ネットの遅延時間の計算時間が設定時間を超えると前記第１の遅延計算手順を選択する処理を行うことを特徴とする、付記１２記載の遅延時間計算装置。
（付記１４）
前記第４の処理は、
前記ネットのドライバが指定された種類のドライバである場合、或いは、前記ネットのインダクタンス成分が０でない場合、前記第１の遅延計算手順を選択し、
前記ネットの配線種類が論理配線である場合、前記第２の遅延計算手順を選択することを特徴とする、付記１２又は１３記載の遅延時間計算装置。
（付記１５）
前記第１の処理は、前記ネットのノード数が一定数以上の場合、或いは、前記ネットのファンアウト数が一定数以上の場合、前記第１の遅延計算手順を選択することを特徴とする、付記１０乃至１４のいずれか１項記載の遅延時間計算装置。
（付記１６）
前記第２の処理は、
前記ネットの総配線長が一定値以上の場合、或いは、前記ネットの総容量値が一定値以上の場合、或いは、前記ネットの総抵抗がある一定値以上の場合、前記第１の遅延計算手順を選択し、
前記ネットの総抵抗が前記ある一定値未満の場合、前記第２の遅延計算手順を選択することを特徴とする、付記１５記載の遅延時間計算装置。
（付記１７）
前記計算部は、前記ネットの遅延時間の計算に用いた遅延計算手順を識別するためのフラグを、当該遅延計算手順で計算された遅延時間と共に前記記憶部に格納することを特徴とする、付記１０乃至１６のいずれか１項記載の遅延時間計算装置。
（付記１８）
前記選択部は、前記第１の処理に先立ち、前記ネットをノード数の大きい順にソートして遅延時間の計算対象とすることを特徴とする、付記１０乃至１７のいずれか１項記載の遅延時間計算装置。
（付記１９）
回路内のネットの遅延時間をコンピュータにより計算する遅延時間計算方法であって、
前記ネットが第１の条件を満たす場合に、前記ネットの遅延時間を計算するための第１の遅延計算手順を選択する第１の手順と、
前記第１の手順で前記第１の遅延計算手順が選択されない場合、第２の条件を前記ネットが満たすか否かに応じて、前記第１の遅延計算手順及び前記ネットの遅延時間を計算するための第２の遅延計算手順のいずれか一方を選択する第２の手順と、
前記第１の手順或いは第２の手順のいずれかで選択された遅延計算手順により前記ネットの遅延時間を計算する第３の手順
を前記コンピュータに実行させることを特徴とする、遅延時間計算方法。
（付記２０）
前記第２の条件は、前記第１の条件よりも条件判定に要する時間が長いことを特徴とする、付記１９記載の遅延時間計算方法。
【００７４】
以上、開示の遅延時間計算プログラム、装置及び方法を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００７５】
１      遅延時間計算装置
１０      テーブル作成部
１１      第１のテーブル作成部
１２      第２のテーブル作成部
１３      ネットディレイ計算部
１５      記憶部
２１      ネットリスト
２２      実装情報
２３      素子ライブラリ
２４      遅延ＤＢ
１０１      ＣＰＵ
１０２      記憶部
１３１      選択部
１３２      簡易計算部
１３３      詳細計算部
【図１】
0005747734.tif 000002
【図２】
0005747734.tif 000003
【図３】
0005747734.tif 000004
【図４】
0005747734.tif 000005
【図５】
0005747734.tif 000006
【図６】
0005747734.tif 000007
【図７】
0005747734.tif 000008
【図８】
0005747734.tif 000009