(57)【特許請求の範囲】
【請求項１】
ドライバーセルの第１出力信号を入力するレシーバーセルに電流源モデルを用い、該電流源モデルのパラメーター値と、前記第１出力信号から算出した該レシーバーセルの第２出力信号とを用いて、レシーバー遅延モデルの容量値を算出し、
前記レシーバー遅延モデルを用いて、前記レシーバーセルの遅延を算出する
処理をコンピュータが行う遅延見積方法。
【請求項２】
前記コンピュータが、
前記ドライバーセルに入力される第１入力信号に対して、該ドライバーセルの第１遅延情報を用いて、該ドライバーセルの前記第１出力信号を算出し、
算出された前記第１出力信号を第２入力信号とした、前記レシーバーセルの第２遅延情報を用いて、該レシーバーセルから出力される前記第２出力信号を算出する
処理を行う請求項１記載の遅延見積方法。
【請求項３】
前記コンピュータが、
前記ドライバーセル及び前記レシーバーセルを含むセルのセル種別毎に、該セルの入力信号の入力スルーに対して、異なる負荷毎に該セルから出力された出力信号の遅延及びスルーを対応付けた、前記第１遅延情報及び前記第２遅延情報とを含む遅延ライブラリを作成する
処理を行う請求項２記載の遅延見積方法。
【請求項４】
ドライバーセルの第１出力信号を入力するレシーバーセルに電流源モデルを用い、該電流源モデルのパラメーター値と、前記第１出力信号から算出した該レシーバーセルの第２出力信号とを用いて、レシーバー遅延モデルの容量値を算出し、
前記レシーバー遅延モデルを用いて、前記レシーバーセルの遅延を算出する
処理をコンピュータに実行させる遅延見積プログラム。
【請求項５】
ドライバーセルの第１出力信号を入力するレシーバーセルに電流源モデルを用い、該電流源モデルのパラメーター値と、前記第１出力信号から算出した該レシーバーセルの第２出力信号とを用いて、レシーバー遅延モデルの容量値を算出する遅延モデル作成部と、
前記レシーバー遅延モデルを用いて、前記レシーバーセルの遅延を算出する遅延計算部と
を有する遅延見積装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遅延見積方法、遅延見積プログラム、及び遅延見積装置に関する。
【背景技術】
【０００２】
集積回路の設計では、集積回路の性能や価格は周波数に左右されるため、動作周波数の最適設計や機能検証等に、遅延見積が行われている。
【０００３】
集積回路の設計において、遅延見積を精度良く行うために、遅延ライブラリ中に波形なまりの関数として入力端子容量を持つことにより、入力信号の波形なまりによる入力端子容量の変化を考慮して、遅延時間計算を行う技術等が提案されている。
【０００４】
また、セルキャラクタライズにおいては、入力端子の電圧値が基準電圧に到達するまでの時間に入力端子の電圧値が基準電圧に到達するまでの時間に入力端子に流れ込んだ電流の総和を求めることで、実際の見かけの入力端子容量に近い値を求める技術等が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第９９／２２３１９号パンフレット
【特許文献２】特開２００６−１６３９２８号公報
【特許文献３】特表２００９−５２０２５４号公報
【特許文献４】米国特許第８、２０５、１７７号明細書
【非特許文献】
【０００６】
【非特許文献１】I．Keller  et  al．，A  robust  cell-level  crosstalk  delay  change  analysis，ICCAD  2004
【非特許文献２】A．Goel,S．Vrudhula，Current  source  based  standard  cell  model  for  accurate  signal  integrity  and  timing  analysis，DATE  2008
【発明の概要】
【発明が解決しようとする課題】
【０００７】
集積回路の信号伝搬遅延は、ドライバーセルによる遅延、伝搬パスによる遅延、及びレシーバーセルによる遅延が要因となっている。集積回路の設計時には、ゲート遅延モデルを用いてドライバーセルの遅延を検証し、パス遅延モデルを用いて伝搬パスによる遅延を検証している。
【０００８】
しかしながら、レシーバーセルによる遅延については、既存の技術では、ミラー効果を考慮できないため、精度良く遅延値を得ることができないと言った問題がある。
【０００９】
したがって、１つの側面では、本発明は、集積回路の遅延見積の精度を改善することを目的とする。
【課題を解決するための手段】
【００１０】
一態様によれば、ドライバーセルの第１出力信号を入力するレシーバーセルに電流源モデルを用い、該電流源モデルのパラメーター値と、前記第１出力信号から算出した該レシーバーセルの第２出力信号とを用いて、レシーバー遅延モデルの容量値を算出し、前記レシーバー遅延モデルを用いて、前記レシーバーセルの遅延を算出する処理をコンピュータが行う遅延見積方法が提供される。
【００１１】
また、上記課題を解決するための手段として、遅延見積プログラム、及び遅延見積装置とすることもできる。
【発明の効果】
【００１２】
集積回路の遅延見積の精度を改善することができる。
【図面の簡単な説明】
【００１３】
【図１】信号伝搬遅延を説明するための図である。
【図２】ドライバーとして利用される電流源モデルの例を示す図である。
【図３】レシーバー遅延モデルの例を示す図である。
【図４】手順２を説明するための図である。
【図５】初期予測を説明するための図である。
【図６】遅延見積装置のハードウェア構成を示す図である。
【図７】遅延見積装置の機能構成例を示す図である。
【図８】遅延見積装置による処理の概要を説明するためのフローチャート図である。
【図９】遅延ライブラリのデータ構成例を示す図である。
【図１０】レシーバー用パラメータのデータ構成例を示す図である。
【図１１】遅延見積処理を説明するためのフローチャート図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。先ず、信号伝搬遅延について説明する。
【００１５】
図１は、信号伝搬遅延を説明するための図である。図１（Ａ）にて、スタンダードセルのドライバーセル１ｄｒとレシーバーセル１ｒｃがパス３で接続ている場合、信号伝搬遅延では、レシーバーセル１ｒｃへ入力される電圧２ｒｃが、ドライバーセル１ｄｒへ入力される電圧２ｄｒに対してどれだけ遅延したかが見積られる。図１（Ａ）では、スタンダードセルとしてインバーターの例を示している。
【００１６】
図１（Ｂ）では、検証される信号伝搬遅延を例示している。図１（Ｂ）において、閾値ＴＨＬと閾値ＴＨＵとは、スルー値を得るための下限電圧と上限電圧とを示す。電圧２ｒｃが閾値ＴＨＬから閾値ＴＨＵに到達するまでをスルー（応答速度）とすることが定められる。
【００１７】
閾値ＴＨＧは、電圧２ｄｒに対する電圧２ｒｃの遅延を求めるための電圧値を示す。電圧２ｒｃが上昇して閾値ＴＨＧに達するまでの時間と、電圧２ｄｒが降下して閾値ＴＨＧに達するまでの時間との差が遅延となる。
【００１８】
各閾値は、Ｖｄｄに対する割合で示されても良い。一例として
閾値ＴＨＵ：８０％Ｖｄｄ
閾値ＴＨＧ：５０％Ｖｄｄ
閾値ＴＨＬ：２０％Ｖｄｄ
のように定められる。
【００１９】
ドライバーセル１ｄｒ、パス３、及びレシーバーセル１ｒｃの各々をモデルを用いて信号伝搬遅延の見積りが行われる。
【００２０】
図２に示すような電流源モデル６が、ドライバーセル１ｄｒのゲート遅延モデルとしてよく利用されている。図２は、ドライバーとして利用される電流源モデルの例を示す図である。図２に示す電流源モデル６は、非特許文献１及び非特許文献２の記載に基づく。
【００２１】
電流源モデル６は、容量Ｃｉｎ、容量Ｃｍ、電流Ｉｄｃ、及び容量Ｃｏを素子として含む。容量Ｃｉｎ及び容量ＣｍはＶｉｎ側の容量を示す。容量Ｃｍは、ミラー容量を表わす。電流Ｉｄｃは直流電流を示し、そして容量ＣｏはＶｏｕｔ側の容量を示す。電流源モデル６のパラメータとなる。電流源モデル６を用いて、ドライバーセル１ｄｒの出力電圧を予測する。
【００２２】
パス３に対しては、既存のモデルを適用すれば良いため、その説明を省略する。レシーバーセル１ｒｃの遅延モデルについて、先ず、既存技術についてその概略を図３で説明する。以下の説明において、ドライバーセル１ｄｒの遅延を「ドライバー遅延」と言い、レシーバーセル１ｒｃの遅延を「レシーバー遅延」と言いう場合がある。
【００２３】
図３は、レシーバー遅延モデルの例を示す図である。図３（Ａ）に示すレシーバー遅延モデル４ａは、レシーバーセル１ｒｃを１つのコンデンサーの容量Ｃｒｃｖで表した例を示している。モデリングが容易であり、計算も速いが、近年の微細化された製造プロセスでは、十分な精度を得られない場合がある。
【００２４】
レシーバーセル１ｒｃの容量は、動作条件、入力電圧の立上り及び立下りなどに応じて２以上の容量で表すことで、精度を改善することが考えられる。図３（Ｂ）に示すレシーバー遅延モデル４ｂは、特許文献４に基づいて、レシーバーセル１ｒｃを２個のコンデンサーの容量ｃ１及び容量ｃ２でモデリングした例を示している。
【００２５】
レシーバー遅延モデル４ｂの２個の容量ｃ１及び容量ｃ２は、閾値ＴＨＧ（５０％Ｖｄｄ）での遅延４ｄ及びスルー４ｓ（図１（Ｂ））に合わせるようにフィッティングし、種々の容量ｃ１及び容量ｃ２のライブラリを作成する。例えば、容量ｃ１は、遅延４ｄにフィッティングされ、容量ｃ２は、スルー４ｓにフィッティングされる。
【００２６】
レシーバー遅延モデル４ｂによる遅延見積りでは、レシーバーセル１ｒｃの電圧によって、容量値を切り替える。
【００２７】
レシーバーセル１ｒｃへの入力スルーによって、異なる容量の組み合せを示すライブラリが作成され、遅延見積り時に、スルー値が設計者によって設定されることで、遅延見積り処理で参照するライブラリを特定すればよい。
【００２８】
しかしながら、特許文献４を参照しても、容量ｃ１及び容量ｃ２のフィッティング方法について明示的な記載がない。また、遅延見積りする際に２個以上のコンデンサーの容量をライブラリから呼び出す方法等の容量ｃ１及び容量ｃ２を利用する方法についても、明示的な記載がない。
【００２９】
動作条件、入力電圧の立上り及び立下りなどに応じて容量の個数を多くすることで、レシーバーセル１ｒｃの遅延見積りの精度を、図３（Ａ）のレシーバー遅延モデル４ａより、改善できると考えられる。
【００３０】
しかしながら、一方で、ライブラリの種類が多くなり、設計者の負担増となる。即ち、設計者が、切り替える電圧、スルー値、負荷容量などで細分化した科目毎のライブラリを用意することになる。
【００３１】
容量をフィッティングするため、その工数が膨大になる。特に、設計者等の利用者が容量ライブラリを作成するため、利用者に余計な負担を掛ける。また、ライブラリが膨大になるため、遅延予測する際に、検索するコストも増える。
【００３２】
また、レシーバーセル１ｒｃの入力スルーは、常にゲート種類（駆動能力）、ドライバーのファンアウト数、パス長さなどの要因で変動する。従って、ランタイムで入力slewの変化に対応しないと、遅延見積り精度が悪くなる。
【００３３】
更に、図３（Ｂ）のレシーバー遅延モデル４ｂを利用したとしても、ミラー容量が考慮されないため、必ずしも十分な精度を得られるとは限らない。
【００３４】
ドライバーセル１ｄｒとレシーバーセル１ｒｃのセルは、同様のスタンダードセルである。発明者は、ドライバーセル１ｄｒのゲート遅延モデルとして利用する電流源モデル６をレシーバーセル１ｒｃにも利用することで、レシーバー遅延モデルの容量値を得られることに着目した。
【００３５】
本実施例では、ドライバーセル１ｄｒでは電流源モデル６を用いて出力電圧を予測するが、更に、電流源モデル６をレシーバーセル１ｒｃにも用いて、ミラー容量を含めたレシーバーセル１ｒｃの容量を求めるために利用する。
【００３６】
本実施例におけるレシーバー遅延モデルの生成方法を説明する。まず、手順１〜手順３で、ドライバーセル１ｄｒの入力からレシーバーセル１ｒｃの出力電圧まで初期予測を行う。
【００３７】
手順１：レシーバーセル１ｒｃを１個のコンデンサーの容量Ｃｔでモデリングする。即ち、単位ゲートの入力容量値Ｕｃを決め、Ｎ入力ゲートであれば、入力容量値Ｎ×Ｕｃとする。
【００３８】
手順２：異なる複数の入力スルーの各々に対して、負荷毎に、各セルの出力波形の遅延４ｄとスルー４ｓとを対応付けた遅延ライブラリ５１（図４）を作成する。セルの駆動能力、入力容量値、パス長等を用いて、遅延４ｄとスルー４ｓとが求められる。
【００３９】
図４は、手順２を説明するための図である。図４において、セルライブラリ５０にあるセル種別の異なる複数のセル１に対して遅延プロファイル５を作成する。セル種別毎の遅延プロファイル５が作成される。遅延見積の対象となるドライバーセル１ｄｒ、レシーバーセル１ｒｃに対して設計されたセル種別を優先して選択し、ドライバーセル１ｄｒの遅延プロファイル５ｄｒ、レシーバーセル１ｒｃの遅延プロファイル５ｒｃを作成するようにしても良い。
【００４０】
異なる複数の入力スルー７の各々に対する負荷毎のＳＰＩＣＥ（Simulation  Program  with  Integrated  Circuit  Emphasis）シミュレーション値又は実測値からセル１の出力電圧の遅延４ｄ及びスルー４ｓを取得する。遅延４ｄ及びスルー４ｓの取得には、負荷ＣＬを負荷１、負荷２、・・・負荷ｎ等に変化させ、負荷ＣＬに対してファンアウト数等に基づいて出力させた出力電圧を用いる。
【００４１】
ドライバーセル１ｄｒの遅延プロファイル５ｄｒ、及び及びレシーバーセル１ｒｃの遅延プロファイル５ｒｃが作成される。そして、遅延プロファイル５ｄｒ及び５ｒｃを含む遅延セルライブラリ５１が記憶部１３０に作成される。
【００４２】
新たな遅延プロファイル５が作成される毎に、遅延セルライブラリ５１に蓄積すればよい。遅延セルライブラリ５１に既に、遅延プロファイル５ｄｒ又は５ｒｃが存在する場合には、それらの作成を省略する。
【００４３】
遅延セルライブラリ５１では、セル１の遅延プロファイル５には、異なる入力slew_1、入力slew_2、・・・入力slew_mの各々に対して、負荷１、負荷２、・・・負荷ｎの夫々について、遅延４ｄ及びスルー４ｓの値が設定されている。他のセルの遅延プロファイル５についても同様である。遅延セルライブラリ５１は、遅延プロファイル５ｄｒ及び遅延プロファイル５ｒｃを含む。
【００４４】
一例として、入力slew_1に関して、負荷１の場合、“delay_11”及び“slew_11”が設定され、負荷２の場合、“delay_12”及び“slew_12”が設定され、・・・負荷ｎの場合、“delay_1n”及び“slew_1n”が設定されている。入力slew_2、・・・入力slew_mについても同様である。
【００４５】
手順３：ドライバーセル１ｄｒの入力からレシーバーセル１ｒｃの出力電圧まで初期予測を行う。電流源モデル６をドライバーセル１ｄｒのゲート遅延モデルとして利用し、初期予測を行う。以下の説明において、入力電圧及び出力電圧は夫々入力信号及び出力信号と言う場合がある。
【００４６】
図５は、初期予測を説明するための図である。図５では、ドライバーセル１ｄｒの入力信号Ｖｄｉｎ、レシーバーセル１ｒｃの入力信号及び出力信号がＶｒｉｎ及びＶｒｏｕｔで示されている。本実施例では、初期的に電圧遷移を直線で表す。
【００４７】
先ず、（ｔｄｅｌａｙ、ＴＨＧ）を通り、傾きｋ
ｋ  ＝  （ＴＨＵ−ＴＨＬ）／ｓｌｅｗ
を用いて、信号の立上り及び立下りを直線で表す。ｔｄｅｌａｙ及びｓｌｅｗは、その時刻に、遅延プロファイルから得られた遅延４ｄ及びスルー４ｓの値を示す。ＴＨＧは、図１に示すように遅延を求める基準となる電圧閾値を示す。また、図１より、ＴＨＵ及びＴＨＬは、スルー４ｓを算出する際に基準とする上限及び下限の電圧閾値である。
【００４８】
レシーバーセル１ｒｃの入力信号Ｖｒｉｎ及び出力信号Ｖｒｏｕｔは、一例として、
Ｖｒｉｎ    ＝  ｆ１（Ｖｄｉｎ）
Ｖｒｏｕｔ  ＝  ｆ２（Ｖｒｉｎ）
により、時間毎に求められる。
【００４９】
次に、手順４及び手順５にて、レシーバーセル１ｒｃに電流源モデル６を用いて、レシーバ遅延モデルの容量Ｃｔを求める。容量Ｃｔは、ある時間ｔにおける容量を示す。
【００５０】
手順４：レシーバーセル１ｒｃの電流源モデル６のパラメーターＣｍ、及びＣｉｎを読み込む。
【００５１】
手順５：レシーバー遅延モデルの容量Ｃｔを、手順３で求めた入力電圧Ｖｒｉｎ及び出力電圧Ｖｒｏｕｔで計算する。
【００５２】
Ｃｔ  ＝  Ｃｉｎ（Ｖｉｎ、Ｖｏｕｔ）
＋  （Ａｖ＋１）×Ｃｍ（Ｖｒｉｎ、Ｖｒｏｕｔ）
容量Ｃｍにより、ミラー効果による入力容量への影響を予測し、従来の容量Ｃｉｎに加味して、容量Ｃｔをライタイムで計算できる。入力電圧Ｖｒｉｎ及び出力電圧Ｖｒｏｕｔは、レシーバーセル１ｒｃのランタイムの入力電圧Ｖｒｉｎ及び出力電圧Ｖｒｏｕｔｗ示す。容量Ｃｉｎ及び容量Ｃｍはレシーバーセル１ｒｃの電流源モデル６のパラメーターである。Ａｖは、出力電圧と入力電圧のゲインの比（Ｖｒｏｕｔ’／Ｖｒｉｎ’）である。
【００５３】
上述した手順１〜手順５を行う遅延見積装置１００のハードウェア構成について図６で説明する。図６は、遅延見積装置のハードウェア構成を示す図である。図６において、遅延見積装置１００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ（Central  Processing  Unit）１１と、主記憶装置１２と、補助記憶装置１３と、入力装置１４と、表示装置１５と、通信Ｉ／Ｆ（インターフェース）１７と、ドライブ装置１８とを有し、バスＢに接続される。
【００５４】
ＣＰＵ１１は、主記憶装置１２に格納されたプログラムに従って遅延見積装置１００を制御するプロセッサに相当する。主記憶装置１２には、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を記憶又は一時保存する。
【００５５】
補助記憶装置１３には、ＨＤＤ（Hard  Disk  Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３に格納されているプログラムの一部が主記憶装置１２にロードされ、ＣＰＵ１１に実行されることによって、各種処理が実現される。記憶部１３０は、主記憶装置１２及び／又は補助記憶装置１３に相当する。
【００５６】
入力装置１４は、マウス、キーボード等を有し、設計者等の利用者が遅延見積装置１００による処理に必要な各種情報を入力するために用いられる。表示装置１５は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。入力装置１４と表示装置１５とは、一体化したタッチパネル等によるユーザインタフェースであってもよい。通信Ｉ／Ｆ１７は、有線又は無線などのネットワークを通じて通信を行う。通信Ｉ／Ｆ１７による通信は無線又は有線に限定されるものではない。  
遅延見積装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact  Disc  Read-Only  Memory）等の記憶媒体１９によって遅延見積装置１００に提供される。
【００５７】
ドライブ装置１８は、ドライブ装置１８にセットされた記憶媒体１９（例えば、ＣＤ−ＲＯＭ等）と遅延見積装置１００とのインターフェースを行う。
【００５８】
また、記憶媒体１９に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体１９に格納されたプログラムは、ドライブ装置１８を介して遅延見積装置１００にインストールされる。インストールされたプログラムは、遅延見積装置１００により実行可能となる。
【００５９】
尚、プログラムを格納する記憶媒体１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００６０】
図７は、遅延見積装置の機能構成例を示す図である。図７において、遅延見積装置１００は、ライブラリ作成部４１と、遅延見積部４３とを有する。記憶部１３０には、セルライブラリ５０、遅延ライブラリ５１、入力信号５２、レシーバー用パラメータ５３、レシーバー遅延モデル５４、レシーバー遅延５５、遅延見積結果５６等が記憶される。
【００６１】
ライブラリ作成部４１は、セルライブラリ５０を参照して、遅延見積対象となるドライバーセル１ｄｒの遅延プロファイル５ｄｒと、レシーバーセル１ｒｃの遅延プロファイル５ｒｃとを夫々作成する。
【００６２】
遅延プロファイル５ｄｒと遅延プロファイル５ｒｃとを含む遅延ライブラリ５１が記憶部１３０に記憶される。遅延プロファイル５ｄｒ及び５ｃｒの各々は、異なる複数の入力スルー７の各々に対して、負荷毎に、出力波形の遅延４ｄとスルー４ｓとが対応付けられている。
【００６３】
遅延見積部４３は、ＬＳＩの遅延を見積もる遅延見積ツールに相当し、入力信号５２と、遅延ライブラリ５１とを用いて、サンプリングしたドライバーセル１ｄｒの入力信号Ｖｄｉｎからレシーバーセル１ｒｃの出力信号Ｖｒｏｕｔまでの遅延を見積もる。遅延見積部４３は、ドライバー出力信号算出部４５と、レシーバー出力信号算出部４６と、レシーバー遅延モデル作成部４７と、レシーバー遅延計算部４８と、セル間遅延計算部４９とを有する。
【００６４】
ドライバー出力信号算出部４５と、レシーバー出力信号算出部４６と、レシーバー遅延モデル作成部４７と、レシーバー遅延計算部４８とが、レシーバーセル１ｒｃの遅延を見積もるレシーバー遅延見積部４４に相当する。
【００６５】
ドライバー出力信号算出部４５は、入力信号Ｖｄｉｎと、ドライバーセル１ｄｒの遅延プロファイル５ｄｒとを用いて、ドライバーセル１ｄｒの出力信号Ｖｄｏｕｔを算出する。
【００６６】
ドライバー出力信号算出部４５は、ドライバーセル１ｄｒの出力信号Ｖｄｏｕｔを取得する取得部に相当する。遅延プロファイル５ｄｒを入力信号５２のスルーで参照することで、ドライバーセル１ｄｒの負荷に対応する遅延４ｄ及びスルー４ｓを取得できる。
【００６７】
取得した遅延４ｄと閾値ＴＨＧとで定まる点を通り、取得したスルー４ｓと閾値ＴＨＵと閾値ＴＨＬとの差とから得た傾きを有する直線を求め、求めた直線を用いることで、ドライバーセル１ｄｒの出力信号Ｖｄｏｕｔを表わすことができる。上述した関数ｆ１の処理に相当する。
【００６８】
レシーバー出力信号算出部４６は、ドライバー出力信号算出部４５が求めた出力信号Ｖｄｏｕｔを入力信号Ｖｒｉｎとし、レシーバーセル１ｒｃの遅延プロファイル５ｒｃとを用いて、レシーバーセル１ｒｃの出力信号Ｖｒｏｕｔを算出する。
【００６９】
レシーバー出力信号算出部４６は、レシーバーセル１ｒｃの出力信号Ｖｒｏｕｔを取得する取得部に相当する。遅延プロファイル５ｒｃを入力信号Ｖｒｉｎのスルーで参照することで、レシーバーセル１ｒｃの負荷に対応する遅延４ｄ及びスルー４ｓを取得できる。
【００７０】
取得した遅延４ｄと閾値ＴＨＧとで定まる点を通り、取得したスルー４ｓと閾値ＴＨＵと閾値ＴＨＬとの差とから得た傾きを有する直線を求め、求めた直線を用いることで、レシーバーセル１ｒｃの出力信号Ｖｒｏｕｔを表わすことができる。上述した関数ｆ２の処理に相当する。
【００７１】
レシーバー遅延モデル作成部４７は、電流源モデル６のレシーバー用パラメータ５３と、ドライバー出力信号算出部４５が取得した出力信号Ｖｄｏｕｔ（即ち、Ｖｒｉｎ）と、レシーバー出力信号算出部４６が取得した出力信号Ｖｒｏｕｔとを用いて、手順５の式によりレシーバー用パラメータ５３の容量Ｃｔを求めることで、レシーバー遅延モデル５４を作成する。
【００７２】
レシーバー遅延計算部４８は、レシーバー遅延モデル５４を用いて、レシーバーセル１ｒｃの遅延を計算する。得られた遅延を示すレシーバー遅延５５が記憶部１３０に出力される。
【００７３】
セル間遅延計算部４９は、ドライバー遅延及びパス３の遅延（パス遅延）を計算した結果と、レシーバー遅延５５とを用いて、ドライバーセル１ｄｒ及びレシーバーセル１ｒｃを含めた遅延を見積もる。見積られた遅延は、遅延見積結果５６で示され、記憶部１３０に記憶される。
【００７４】
ドライバーセル１ｄｒの出力信号Ｖｄｏｕｔは、レシーバーセル１ｒｃの入力信号Ｖｒｉｎに相当する。入力信号Ｖｄｉｎと出力信号Ｖｄｏｕｔとに基づいて得られた遅延は、即ち、入力信号Ｖｄｉｎから出力信号Ｖｒｏｕｔまでの遅延を表わす。
【００７５】
セルライブラリ５０は、セル毎に、論理機能、電気的特性などを記憶したデータベースである。
【００７６】
遅延ライブラリ５１は、入力電圧のスルーと負荷毎に、遅延４ｄ及びスルー４ｓを対応付けたテーブルである。遅延ライブラリ５１は、ドライバーセル１ｄｒの遅延プロファイル５ｄｒ及びレシーバーセル１ｒｃの遅延プロファイル５ｒｃを含む。
【００７７】
入力信号５２は、予め用意したドライバーセル１ｄｒへの入力信号、又は、前段から伝搬される信号を表わすデータである。
【００７８】
レシーバー用パラメータ５３は、レシーバー遅延モデル作成部４７がレシーバーセル１ｒｃを電流源モデル６でモデル化する際の電流源モデル６に与えるパラメータの値を示す。レシーバー遅延モデル５４は、レシーバー遅延モデル作成部４７が算出したレシーバーセル１ｒｃの容量Ｃｔを示す。
【００７９】
容量Ｃｔは、ランタイムにおいて、時刻ｔにおけるレシーバーセル１ｒｃの容量値を示す。従って、動作条件、レシーバーセル１ｒｃの入力信号Ｖｒｉｎの立上り及び立下りの夫々に対応して変動する容量Ｃｔが示される。
【００８０】
レシーバー遅延５５は、レシーバー遅延計算部４８によって得られた、入力信号Ｖｄｉｎに対するレシーバーセル１ｒｃの遅延値を示す。
【００８１】
図８は、遅延見積装置による処理の概要を説明するためのフローチャート図である。図８において、ライブラリ作成部４１は、セルライブラリ５０から、遅延を見積もるドライバーセル１ｄｒとレシーバーセル１ｒｃとをセルライブラリ５０から取得し、夫々の遅延プロファイル５ｄｒ及び５ｒｃを作成して遅延ライブラリ５１を作成する（ステップＳ１１０）。ステップＳ１１０における、ライブラリ作成部４１によるライブラリ作成処理は、図４に説明した通りである。
【００８２】
遅延見積部４３は、ドライバーセル１ｄｒの入力信号５２から遅延を見積もる（ステップＳ１３０）。遅延見積部４３は、レシーバーセル１ｒｃの遅延を見積もり、ドライバーセル１ｒｃ及びパス３の遅延を算出し、算出した遅延にレシーバーセル１ｒｃの遅延を加算して、セル間の遅延を見積もる。
【００８３】
セル間の遅延は、遅延見積結果５６で示され記憶部１３０に記憶される。遅延見積結果５６は、表示装置１５に表示されてもよい。ステップＳ１３０における、遅延見積部４３による遅延見積処理は、図５の説明に加えて、図１１で更に詳述される。
【００８４】
図９は、遅延ライブラリのデータ構成例を示す図である。図９において、遅延ライブラリ５１は、遅延プロファイル５ｄｒ及び５ｒｃ等を有する。遅延プロファイル５ｄｒ及び５ｒｃの各々は、異なる入力スルー７に対して、負荷１、２、・・・ｎ毎の遅延４ｄ及びスルー４ｓが対応付けられたテーブルである。
【００８５】
遅延プロファイル５ｄｒは、ドライバーセル１ｄｒの入力信号Ｖｄｉｎの異なるスルー（入力スルー７）に対して、負荷ＣＬとなり得る負荷１、２、・・・ｎの各々の場合の出力信号Ｖｄｏｕｔの遅延３ｄ及びスルー４ｓが示されたテーブルである。
【００８６】
この例では、入力スルー７の値が入力d_slew_1の場合、負荷１では、出力信号Ｖｄｏｕｔの、遅延４ｄは「d_delay_11」であり、スルー４ｓは「d_slew_11」であることを示す。負荷２では、遅延４ｄは「d_delay_21」であり、スルー４ｓは「d_slew_21」であることを示す。入力d_slew_1に対する他の負荷についても同様に示される。また、異なる他の入力スルー７と、負荷１、２、・・・ｎについて同様に示される。
【００８７】
遅延プロファイル５ｒｃは、レシーバーセル１ｒｃの入力信号Ｖｒｉｎの異なるスルー（入力スルー７）に対して、負荷ＣＬとなり得る負荷１、２、・・・ｎの各々の場合の出力信号Ｖｒｏｕｔの遅延３ｄ及びスルー４ｓが示されたテーブルである。
【００８８】
この例では、入力スルー７の値が入力r_slew_1の場合、負荷１では、出力信号Ｖｄｏｕｔの、遅延４ｄは「d_delay_11」であり、スルー４ｓは「d_slew_11」であることを示す。負荷２では、遅延４ｄは「d_delay_21」であり、スルー４ｓは「d_slew_21」であることを示す。入力r_slew_1に対する他の負荷についても同様に示される。また、異なる他の入力スルー７の値と、負荷１、２、・・・ｎについて同様に示される。
【００８９】
図１０は、レシーバー用パラメータのデータ構成例を示す図である。図１０において、レシーバー用パラメータ５３は、異なる入力信号に対する出力信号毎に、レシーバーセル１ｒｃの電流源モデル６のパラメータ値を示したテーブルである。
【００９０】
レシーバー用パラメータ５３では、レシーバーセル１ｒｃの異なる入力信号Ｖｒｉｎの値「Vrin_1」に対して、出力信号Ｖｒｏｕｔの値が「Vrout_1」の場合、容量Ｃｍの値は「Cm_11」であり、容量Ｃｉｎの値は「Cin_11」であることが示されている。
【００９１】
また、レシーバーセル１ｒｃの異なる入力信号Ｖｒｉｎの値「Vrin_2」に対して、出力信号Ｖｒｏｕｔの値が「Vrout_2」の場合、容量Ｃｍの値は「Cm_21」であり、容量Ｃｉｎの値は「Cin_21」であることが示されている。入力信号Ｖｒｉｎに対する他の出力信号についても同様に示される。また、異なる他の入力信号Ｖｒｉｎの値と、出力信号Ｖｒｏｕｔの値「Vrout_1」、値「Vrout_2」、・・・値「Vrout_n」の各々についても同様である。
【００９２】
図１１は、遅延見積処理を説明するためのフローチャート図である。図１１において、遅延見積部４３のトライバー出力信号算出部４５は、記憶部１３０の遅延ライブラリ５１からドライバーセル１ｄｒの遅延プロファイル５ｄｒを読み込む（ステップＳ１５１）。
【００９３】
そして、トライバー出力信号算出部４５は、入力信号５２から時系列に入力信号Ｖｄｉｎを読み込んで、遅延プロファイル５ｄｒを参照して、入力信号Ｖｄｉｎに対するドライバーセル１ｄｒの出力信号Ｖｄｏｕｔ＿ｐを計算する（ステップＳ１５２）。
【００９４】
出力信号Ｖｄｏｕｔ＿ｐは、図５の入力信号Ｖｒｉｎに相当する。トライバー出力信号算出部４５は、遅延プロファイル５ｄｒから遅延４ｄ及びスルー４ｓの値を取得し、関数ｆ１により、レシーバーセル１ｒｃへの入力信号Ｖｒｉｎ（即ち、ドライバーセル１ｄｒの出力信号Ｖｄｏｕｔ）を算出する。
【００９５】
次に、レシーバー出力信号算出部４６は、記憶部１３０の遅延ライブラリ５１からレシーバーセル１ｒｃの遅延プロファイル５ｒｃを読み込む（ステップＳ１５３）。
【００９６】
そして、レシーバー出力信号算出部４６は、遅延プロファイル５ｒｃを参照して、トライバー出力信号算出部４５が算出した、ドライバーセル１ｄｒの出力信号Ｖｄｏｕｔ＿ｐからレシーバーセル１ｒｃの出力信号Ｖｒｏｕｔを計算する（ステップＳ１５４）。
【００９７】
レシーバー出力信号算出部４６は、遅延プロファイル５ｒｃから遅延４ｄ及びスルー４ｓの値を取得し、関数ｆ２により、レシーバーセル１ｒｃの出力信号Ｖｒｏｕｔを算出する。
【００９８】
次に、レシーバー遅延モデル作成部４７は、記憶部１３０からレシーバー用パラメータ５３を読み込んで、レシーバーセル１ｒｃの電流源モデル６を作成する（ステップＳ１５５）。レシーバー遅延モデル作成部４７は、レシーバー用パラメータ５３から、容量Ｃｍ及び容量Ｃｉｎの値を取得して、レシーバーセル１ｒｃの電流源モデル６を作成する。即ち、レシーバーセル１ｒｃの電流源モデル６は、読み込んだ入力信号Ｖｄｉｎ毎に作成される。
【００９９】
そして、レシーバー遅延モデル作成部４７は、作成した電流源モデル６を用いて、容量値を計算し、レシーバー遅延モデル５４を構築する（ステップＳ１５６）。読み込んだ入力信号Ｖｄｉｎ毎にレシーバー遅延モデル５４が構築される。
【０１００】
次に、レシーバー遅延計算部４８は、ドライバーセル１ｄｒのパラメータ値が与えられた電流源モデル６を用いて、入力信号Ｖｄｉｎからドライバーセル１ｄｒの出力信号Ｖｄｏｕｔを算出する（ステップＳ１５７）。
【０１０１】
そして、ステップＳ１５２においてドライバーセル１ｄｒの遅延プロファイル５ｄｒを参照して求めた出力信号Ｖｏｕｔ＿ｐと、ステップＳ１５７で算出された出力信号Ｖｄｏｕｔとの差が、閾値範囲以内に収束したか否かを判断する（ステップＳ１５７ａ）。
【０１０２】
閾値範囲以内に収束していない場合（ステップＳ１５７ａのＮｏ）、レシーバー遅延計算部４８は、Ｖｄｏｕｔ＿ｐにＶｄｏｕｔの値を設定する（ステップＳ１５７ｂ）。その後、遅延見積処理は、ステップＳ１５３から上述した同様の処理を繰り返す。
【０１０３】
一方、閾値範囲以内に収束した場合（ステップＳ１５７ｂのＹｅｓ）、レシーバー遅延計算部４８は、構築されたレシーバー遅延モデル５４を用いて、出力信号Ｖｄｏｕｔからの遅延を計算する（ステップＳ１５８）。レシーバーセル１ｒｃの遅延が算出され、レシーバー遅延５５が記憶部１３０に記憶される。
【０１０４】
そして、セル間遅延計算部４９は、セル間遅延を求める（ステップＳ１５９）。セル間遅延計算部４９は、既存技術によりドライバーセル遅延及びパス遅延を計算し、それらの計算結果と、レシーバー遅延５５との合計値を、入力信号Ｖｄｉｎに対するセル間遅延として、遅延見積結果５６を記憶部１３０に出力する。遅延見積結果５６では、時間系列にセル間の遅延が示される。
【０１０５】
その後、遅延見積処理は、全ての入力信号Ｖｄｉｎを終了したか否かを判断する（ステップＳ１６０）。入力信号５２に未処理の入力信号Ｖｄｉｎが残っている場合（ステップＳ１６０のＮｏ）、遅延見積処理は、ステップＳ１５２から上述した同様の処理を繰り返す。一方、全ての入力信号Ｖｄｉｎを終了した場合（ステップＳ１６０のＹｅｓ）、遅延見積処理は、終了する。
【０１０６】
図１１において、上述したステップＳ１５７ａ及びＳ１５７ｂは、省略可能である。発明者が本実施例における遅延見積の精度を検証した際には、収束判定による繰り返しは不要であったからである。
【０１０７】
発明者による、ＳＰＩＣＥシミュレーションと、本実施例とを比較した検証結果を以下に示す。遅延見積誤差は、
ＳＰＩＣＥシミュレーションでは、
平均１．６％、最大６．６％
であったのに対して、本実施例では、
平均０．９％、最大２．６％
であった。このように、遅延見積誤差を顕著に改善できた。また、レシーバ遅延モデル５４の作成時間は、１００μｓ以下（＜１００μｓ）であった。
【０１０８】
上述したように、本実施例では、集積回路の遅延見積の精度を改善することができる。特に、レシーバーセルの遅延を、ランタイムで、動作条件、入力電圧の立上り及び立下りなどに応じて精度良く見積ることができる。
【０１０９】
また、ランタイムで、遅延ライブラリ５１が作成されるため、利用者の遅延見積に係る作業負担を削減できる。
【０１１０】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【０１１１】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
ドライバーセルの第１出力信号を入力するレシーバーセルに電流源モデルを用い、該電流源モデルのパラメーター値と、前記第１出力信号から予測した該レシーバーセルの第２出力信号とを用いて、レシーバー遅延モデルの容量値を算出し、
前記レシーバー遅延モデルを用いて、前記レシーバーセルの遅延を算出する
処理をコンピュータが行う遅延見積方法。
（付記２）
前記コンピュータが、
前記ドライバーセルに入力される第１入力信号に対して、該ドライバーセルの第１遅延情報を用いて、該ドライバーセルの前記第１出力信号を算出し、
算出された前記第１出力信号を第２入力信号とした、前記レシーバーセルの第２遅延情報を用いて、該レシーバーセルから出力される前記第２出力信号を算出する
処理を行う付記１記載の遅延見積方法。
（付記３）
前記コンピュータが、
前記ドライバーセル及び前記レシーバーセルを含むセルのセル種別毎に、該セルの入力信号の入力スルーに対して、異なる負荷毎に該セルから出力された出力信号の遅延及びスルーを対応付けた、前記第１遅延情報及び前記第２遅延情報とを含む遅延ライブラリを作成する
処理を行う付記２記載の遅延見積方法。
（付記４）
前記コンピュータが、
前記第１遅延情報を参照して、前記第１入力信号の入力スルー及び前記ドライバーセルの負荷に対応する前記遅延及び前記スルーを取得し、
前記遅延と該遅延を求める電圧閾値とで定まる点を通り、前記スルーの値と該スルーを算出する上限電圧閾値と下限電圧閾値との差とから得た傾きを有する直線を求め、
求めた直線を用いて前記ドライバーセルの前記第１出力信号を算出することを特徴とする付記３記載の遅延見積方法。
（付記５）
前記コンピュータが、
前記第２遅延情報を参照して、前記第２入力信号の入力スルー及び前記レシーバーセルの負荷に対応する前記遅延及び前記スルーを取得し、
前記遅延と該遅延を求める電圧閾値とで定まる点を通り、前記スルーの値と該スルーを算出する上限電圧閾値と下限電圧閾値との差とから得た傾きを有する直線を求め、
求めた直線を用いて前記レシーバーセルの前記第２出力信号を算出することを特徴とする付記３又は４記載の遅延見積方法。
（付記６）
前記電流源モデルのパラメーター値は、ミラー容量値を含むことを特徴とする付記１乃至５のいずれか一項記載の遅延見積方法。
（付記７）
ドライバーセルの第１出力信号を入力するレシーバーセルに電流源モデルを用い、該電流源モデルのパラメーター値と、前記第１出力信号から予測した該レシーバーセルの第２出力信号とを用いて、レシーバー遅延モデルの容量値を算出し、
前記レシーバー遅延モデルを用いて、前記レシーバーセルの遅延を算出する
処理をコンピュータに実行させる遅延見積プログラム。
（付記８）
ドライバーセルの第１出力信号を入力するレシーバーセルに電流源モデルを用い、該電流源モデルのパラメーター値と、前記第１出力信号から予測した該レシーバーセルの第２出力信号とを用いて、レシーバー遅延モデルの容量値を算出する遅延モデル作成部と、
前記レシーバー遅延モデルを用いて、前記レシーバーセルの遅延を算出する遅延計算部と
を有する遅延見積装置。
【符号の説明】
【０１１２】
１ｄｒ        ドライバーセル
１ｒｃ        レシーバーセル
２ｄｒ、２ｒｃ      電圧
３            パス
４ａ          レシーバー遅延モデル
４ｂ          レシーバー遅延モデル
４ｄ          遅延
４ｓ          スルー
５ｄｒ        遅延プロファイル（ドライバーセル用）
５ｒｃ        遅延プロファイル（レシーバーセル用）
６            電流源モデル
１１          ＣＰＵ
１２          主記憶装置
１３          補助記憶装置
１４          入力装置
１５          表示装置
１７          通信Ｉ／Ｆ
１８          ドライブ装置
４１          ライブラリ作成部
４３          遅延見積部
４４          レシーバー遅延見積部
４５          ドライバー出力信号算出部
４６          レシーバー出力信号算出部
４７          レシーバー遅延モデル作成部
４８          レシーバー遅延計算部
４９          セル間遅延計算部
５０          セルライブラリ
５１          遅延ライブラリ
５２          入力信号
５３          レシーバー用パラメータ
５４          レシーバー遅延モデル
５５          レシーバー遅延
５６          遅延見積結果
１００        遅延見積装置
１３０        記憶部
【図１】
0006620658.tif 000002
【図２】
0006620658.tif 000003
【図３】
0006620658.tif 000004
【図４】
0006620658.tif 000005
【図５】
0006620658.tif 000006
【図６】
0006620658.tif 000007
【図７】
0006620658.tif 000008
【図８】
0006620658.tif 000009
【図９】
0006620658.tif 000010
【図１０】
0006620658.tif 000011
【図１１】
0006620658.tif 000012