(57)【特許請求の範囲】
【請求項１】
時間毎の入力電圧と出力電圧とを記憶した学習データを用いて、論理セルの電流源モデルに時間毎の入力電圧を与えることにより得られた出力電圧が、学習データの前記時間毎の入力電圧に対応する出力電圧に近似されるように、該電流源モデルの１以上のパラメータの値を補正する補正モデルを生成し、
時間毎に入力される入力電圧に対して、前記補正モデルによって補正されたパラメータ値を前記電流源モデルに適用することで、前記論理セルの遅延を算出する
処理をコンピュータが行う半導体集積回路の遅延見積方法。
【請求項２】
前記コンピュータは、
少なくともミラー容量の値を補正する前記補正モデルを生成する
ことを特徴とする請求項１記載の半導体集積回路の遅延見積方法。
【請求項３】
前記学習データは、更に、時間毎のミラー容量の電圧値を記録し、
前記コンピュータは、
前記電流源モデルのミラー容量の電圧値と、前記学習データのミラー容量の電圧値との差を算出し、当該算出した差に基づきミラー容量の値を補正する前記補正モデルを生成する
ことを特徴とする請求項２記載の半導体集積回路の遅延見積方法。
【請求項４】
時間毎の入力電圧と出力電圧とを記憶した学習データを用いて、論理セルの電流源モデルに時間毎の入力電圧を与えることにより得られた出力電圧が、学習データの前記時間毎の入力電圧に対応する出力電圧に近似されるように、該電流源モデルの１以上のパラメータの値を補正する補正モデルを生成し、
時間毎に入力される入力電圧に対して、前記補正モデルによって補正されたパラメータ値を前記電流源モデルに適用することで、前記論理セルの遅延を算出する
処理をコンピュータに実行させる半導体集積回路の遅延見積プログラム。
【請求項５】
時間毎の入力電圧と出力電圧とを記憶した学習データを用いて、論理セルの電流源モデルに時間毎の入力電圧を与えることにより得られた出力電圧が、学習データの前記時間毎の入力電圧に対応する出力電圧に近似されるように、該電流源モデルの１以上のパラメータの値を補正する補正モデルを生成する補正モデル生成部、
時間毎に入力される入力電圧に対して、前記補正モデルによって補正されたパラメータ値を前記電流源モデルに適用することで、前記論理セルの遅延を算出する遅延算出部と
を有することを特徴とする回路設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の遅延見積方法、プログラム、及び回路設計装置に関する。
【背景技術】
【０００２】
従来より、シミュレーションを用いて半導体集積回路を設計することが行われている。半導体集積回路の設計に係るシミュレーションでは、遅延見積の精度を改善するために、種々の提案がなされている。
【０００３】
例えば、ルックアップ・テーブルを用いて、ＤＣ（Direct Current）成分と複数の寄生キャパシタンスとを含む、少なくとも１つの電流源モデルを解析的に合成し、電流源モデルを用いて論理ステージをシミュレートしてドライバをモデル化する技術等が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００９−５２０２５４号公報
【特許文献２】特開２００９−２５２１４０号公報
【非特許文献】
【０００５】
【非特許文献１】I.Keller他, "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", EDAA 2008
【発明の概要】
【発明が解決しようとする課題】
【０００６】
半導体集積回路の遅延は、主に、配線遅延とセル遅延によるものと考えられる。従来の半導体集積回路では、セル間の配線遅延が回路精度に影響する主要な要因であったため、セル内の遅延（セル遅延）を無視することができた。
【０００７】
しかしながら、近年の半導体集積回路は大規模化してセル間が緻密に配置されて配線長が短くなっている。そのため、配線遅延による回路精度への影響は小さくなっている。また、配線長が長い場合、リピータを挿入して配線遅延を小さくしている。
【０００８】
このような状況から、従来無視してきたセル遅延が回路精度を左右すると考えるようになり、セル遅延を無視することができなくなっている。また、セル遅延は、セル毎に異なっている。
【０００９】
ＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）によるシミュレーションが、任意の入力波形に対して遅延を精度良く見積もれることで知られている。しかしながら、処理負荷が非常に重く、大量のセルが含まれる場合、見積り時間が長時間に及び、大規模なデジタル回路の遅延見積には適していない。
【００１０】
また、上述した従来技術による電流源モデルでは、セル毎に異なる遅延が考慮されないため、大規模化した半導体集積回路の遅延を精度良く見積ることが困難である。
【００１１】
したがって、１つの側面では、本発明は、半導体集積回路のセル遅延を精度良く見積ることを目的とする。
【課題を解決するための手段】
【００１２】
一態様によれば、時間毎の入力電圧と出力電圧とを記憶した学習データを用いて、論理セルの電流源モデルに時間毎の入力電圧を与えることにより得られた出力電圧が、学習データの前記時間毎の入力電圧に対応する出力電圧に近似されるように、該電流源モデルの１以上のパラメータの値を補正する補正モデルを生成し、時間毎に入力される入力電圧に対して、前記補正モデルによって補正されたパラメータ値を前記電流源モデルに適用することで、前記論理セルの遅延を算出する処理をコンピュータが行う半導体集積回路の遅延見積方法が提供される。
【００１３】
また、上記課題を解決するための手段として、上記方法を行う回路設計装置、コンピュータに上記処理を実行させるためのプログラム、及び、そのプログラムを記憶した記憶媒体とすることもできる。
【発明の効果】
【００１４】
半導体集積回路のセル遅延を精度良く見積ることができる。
【図面の簡単な説明】
【００１５】
【図１】セル遅延を説明するための図である。
【図２】電流源モデルの例を示す図である。
【図３】回路設計装置のハードウェア構成を示す図である。
【図４】回路設計装置の機能構成例を示す図である。
【図５】学習データのデータ例を示す図である。
【図６】モデルが生成されるまでの処理の流れを説明するための図である。
【図７】遅延見積部における処理の流れを説明するための図である。
【図８】モデル生成処理を説明するためのフローチャート図である。
【図９】パラメータの誤差例を示す図である。
【図１０】補正値の例を示す図である。
【図１１】入力電圧に対する出力電圧の比較結果を示す図である。
【図１２】誤差の比較例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて説明する。先ず、セル遅延について図１で説明する。図１は、セル遅延を説明するための図である。図１において、任意の入力波形１ａをセル２へ入力することで出力される実際応答１ｃを得る。セル２は、予めインバータ等のスタンダードセルである。スタンダードセル２から出力された実際応答１ｃと、理想応答１ｂとを比較することにより、このスタンダードセル２の遅延３を得る。
【００１７】
１つのＬＳＩに配置されたスタンダードセル２の全てに対して遅延３を取得することで、ＬＳＩ全体の遅延を見積もる。以下、スタンダードセル２の遅延を見積もることをセル遅延見積と言う。
【００１８】
セル遅延見積の手法には、主に、
（１）線形遅延モデル
（２）ＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）シミュレーションモデル
（３）電流源モデル
等が存在する。
【００１９】
上記（１）の線形遅延モデルでは、１ゲート当たりの処理速度は凡そマイクロ秒（μｓ）単位（μｓ／ｇａｔｅ）であり、比較的高速にセル遅延見積を行える。しかしながら、トランジスタの精密な動作などが考慮されておらず、高速に見積れるものの誤差が大きい。
【００２０】
上記（２）のＳＰＩＣＥシミュレーションモデルでは、トランジスタの動作を細かく解析するため、見積り精度が高い。しかしながら、数百のパラメータを要するため、計算処理に時間を要する。１ゲート当たりの処理速度は凡そ秒単位（ｓ／ｇａｔｅ）であり、上記（１）に比べて、１００万倍程の処理時間を要する。数１０万ゲートを実装している近年のチップ全体に対して遅延見積を行う場合は、上記（２）は適していないと考えられている。
【００２１】
上記（３）の電流源モデルでは、１ゲート当たりの処理速度は凡そマイクロ秒（μｓ）単位（ｍｓ／ｇａｔｅ）であり、上記（１）よりは処理時間が掛るものの、上記（２）の及び１／１０００程の処理時間で遅延見積を行える。上記（３）の電流源モデルは、非特許文献１及び２を参照すると、図１のように示される。
【００２２】
図２は、電流源モデルの例を示す図である。図１に示す電流源モデル６ａは、容量Ｃｍ（ミラー容量）、電流Ｉｄｃ、及び容量Ｃｏを素子として含む。容量ＣｍはＶｉｎ側の容量を示し、電流Ｉｄｃは直流電流を示し、そして容量ＣｏはＶｏｕｔ側の容量を示す。電流源モデル６ａのパラメータとなる。電流源モデル６ａは、
【００２３】
【数１】
0006604069.tif 000002
のように表される。
【００２４】
電流源モデル６ａを用いた遅延見積では、１セル内の、ゲート数が少ない簡単な構成であれば精度がよいが、ゲート数が多くなりゲート構成が複雑になると精度が悪化する。一例として、２並列インバーターのゲート構成の場合、遅延見積の誤差は１．３％であったのに対して、２６並列インバーターのゲート構成の場合、遅延見積の誤差は８．６％であった。
【００２５】
本実施例では、複雑なゲート構成に対して、図２及び数１で表される電流源モデル６ａのパラメータ値を補正することで、精度良く遅延を見積もる半導体集積回路の遅延見積プログラム、方法、及び回路設計装置を提供する。
【００２６】
デジタルセルは、以下の点において動作範囲が限られている。
（ａ）０＜−＞１遷移である
例えば、０ＶからＶＤＤ＋αへの遷移、ＶＤＤ＋αから０Ｖへの遷移である。αは、オーバーシュート応答である。
（ｂ）負荷も任意ではない
基本的にセルライブラリにあるセルの入力が前段の出力である。つまり、セル間の接続は制限されている。
（ｃ）データ遷移時間が限られている
ある設計において、０ＶからＶＤＤまでの遷移時間は０．５ｐｓ〜６０ｐｓの範囲である。
【００２７】
発明者は、上述した動作範囲に関する制限（ａ）〜（ｃ）より、電流源モデル６ａのパラメータＣｍの値を補正することで、精度良く遅延を見積もれることに着目した。以下、精度良く遅延見積を行う回路設計について説明する。
【００２８】
図３は、回路設計装置のハードウェア構成を示す図である。図３において、回路設計装置１００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ（Central Processing Unit）１１と、主記憶装置１２と、補助記憶装置１３と、入力装置１４と、表示装置１５と、通信Ｉ／Ｆ（インターフェース）１７と、ドライブ装置１８とを有し、バスＢに接続される。
【００２９】
ＣＰＵ１１は、主記憶装置１２に格納されたプログラムに従って回路設計装置１００を制御する。主記憶装置１２には、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を記憶又は一時保存する。
【００３０】
補助記憶装置１３には、ＨＤＤ（Hard Disk Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３に格納されているプログラムの一部が主記憶装置１２にロードされ、ＣＰＵ１１に実行されることによって、各種処理が実現される。主記憶装置１２及び補助記憶装置１３が、記憶部１３０に相当する。
【００３１】
入力装置１４は、マウス、キーボード等を有し、ユーザが回路設計装置１００による処理に必要な各種情報を入力するために用いられる。表示装置１５は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。入力装置１４と表示装置１５とは、一体化したタッチパネル等によるユーザインタフェースであってもよい。通信Ｉ／Ｆ１７は、有線又は無線などのネットワークを通じて通信を行う。通信Ｉ／Ｆ１７による通信は無線又は有線に限定されるものではない。
【００３２】
回路設計装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の記憶媒体１９によって回路設計装置１００に提供される。
【００３３】
ドライブ装置１８は、ドライブ装置１８にセットされた記憶媒体１９（例えば、ＣＤ−ＲＯＭ等）と回路設計装置１００とのインターフェースを行う。
【００３４】
また、記憶媒体１９に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体１９に格納されたプログラムは、ドライブ装置１８を介して回路設計装置１００にインストールされる。インストールされたプログラムは、回路設計装置１００により実行可能となる。
【００３５】
尚、プログラムを格納する記憶媒体１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００３６】
図４は、回路設計装置の機能構成例を示す図である。図４において、回路設計装置１００は、主に、シミュレーション部４０と、モデル生成部４３と、遅延見積部４７とを有する。記憶部１３０には、ＰＤＫ（Process Design Kit）５１、セルライブラリ５２、パラメータデータ５３、学習データ５４、電流源モデル６ａ、補正モデル６ｂ、セル入力電圧値５６、見積遅延値５７等が記憶される。
【００３７】
シミュレーション部４０は、ＰＤＫ５１及びセルライブラリ５２を用いて、モデル生成に係るデータを生成する処理部であり、電流源モデル同定データ生成部４１と、学習データ生成部４２とを有する。
【００３８】
電流源モデル同定データ生成部４１は、電流源モデル６ａの生成に係るパラメータデータ５３を生成する。パラメータデータ５３は、容量Ｃｍ、及び容量Ｃｏの値であり、非特許文献１、２に基づき同定される。
【００３９】
学習データ生成部４２は、電流源モデル６ａのパラメータＣｍを補正する補正モデル６ｂの生成に係る学習データ５４を生成する。
【００４０】
例えば、電流Ｉｄｃは、セル２の電圧Ｖｉｎ及び電圧Ｖｏｕｔに一定電流量のＤＣ（Direct Current）電流源を接続したモデルによって得られる。容量Ｃｍは、セル２の電圧ＶｉｎにＤＣ電流源を接続し、電圧Ｖｏｕｔに所定時間内で電圧最小値から電圧最大値まで上昇するランプ電圧源を接続したモデルによって得られる。容量Ｃｏは、容量Ｃｍ及び容量Ｃｏの合算値から求めた容量Ｃｍを減算することにより得られる。容量Ｃｍ及び容量Ｃｏは、セル２の電圧Ｖｉｎに所定時間内で電圧最小値から電圧最大値まで上昇するランプ電圧源を接続し、電圧ＶｏｕｔにＤＣ電流源を接続したモデルによって得られる。
【００４１】
モデル生成部４３は、電流源モデル６ａ及び補正モデル６ｂを作成し、記憶部１３０に保存する処理部であり、電流源モデル生成部４４と、補正モデル生成部４５と、モデル保存部４６とを有する。
【００４２】
電流源モデル生成部４４は、電流源モデル同定データ生成部４１によって得られたパラメータデータ５３を用いて電流源モデル６ａを生成する。補正モデル生成部４５は、電流源モデル６ａを用いて得られる容量Ｃｍと、学習データ５３から得られる容量Ｃｍとの差に基づいて補正モデル６ｂを生成する。学習データ５３の代わりに実機で得られた実際のデータを用いてもよい。
【００４３】
電流源モデル６ａのパラメータは、
・Idc=f_idc(vin, vout):従来手法で同定されたIdc値
・Co=f_co(vin, vout):従来手法で同定されたCo値
・Cm_past=f_cmpast(vin, vout):従来手法で同定されたCm値
・f_Δcm(vin, vout, vin'):本実施例の手法で同定されたCmの補正値、vin':入力電圧vinの微分値
・Cm=Cm_past+ΔCm:補正されたCm値
である。
【００４４】
電流源モデル６ａの出力計算は、
【００４５】
【数２】
0006604069.tif 000003
と表される微分方程式を数値積分で解くことにより得られる。数値積分は、解の精度、解くスピード、安定性などによって、種々の既存アルゴリズムが知られている。一例として、Forward Eulerの場合、出力計算は、
【００４６】
【数３】
0006604069.tif 000004
のように表される。
【００４７】
モデル保存部４６は、電流源モデル生成部４４によって生成された電流源モデル６ａと、補正モデル生成部４５で得られた補正モデル６ｂとを記憶部１３０に保存する。
【００４８】
遅延見積部４７は、電流源モデル６ａと補正モデル６ｂとを用いて、セル遅延を見積もる処理部であり、モデル読出部４８と、遅延見積計算部４９とを有する。
【００４９】
モデル読出部４８は、記憶部１３０から電流源モデル６ａと、補正モデル６ｂとを読み出す。遅延見積計算部４９は、配線遅延の算出に加えて、モデル読出部４８によって読み出された電流源モデル６ａと、補正モデル６ｂとを用いて、予め記憶部１３０に用意されたセル入力電圧値５６を電流源モデル６ａと、補正モデル６ｂとに与えることにより、セル遅延を算出する。算出したセル遅延の値を含む見積遅延値５７が記憶部１３０に記憶される。
【００５０】
ＰＤＫ５１は、回路設計において標準的な設計データセットである。セルライブラリ５２は、スタンダードセル２を含む複数の機能ブロックの各々の論理機能、電気的特性、レイアウトに係るデータを有する。
【００５１】
パラメータデータ５３は、電流源モデル同定データ生成部４１によって得られた電流源モデル６ａのパラメータ値を示す。学習データ５４は、ＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）により回路動作をシミュレーションすることにより得られたデータであり、時間毎に、電圧Ｖｉｎと電圧Ｖｏｕｔとを示す。
【００５２】
電流源モデル６ａは、電流源モデル生成部４４によって生成されたセル２のモデルである。電流源モデル６ｂは、補正モデル生成部４５によって生成された電流源モデル６ａの容量Ｃｍを補正するモデルである。
【００５３】
セル入力電圧値５６は、遅延見積計算部４９がセル遅延を算出するために、セル２に入力する電圧値である。見積遅延値５７は、遅延見積計算部４９によって得られたセル遅延値を含むＬＳＩの遅延の予測値を示す。
【００５４】
図５は、学習データのデータ例を示す図である。図５において、学習データ５４は、時系列にシミュレーションの時間毎に電圧Ｖｉｎ、電圧Ｖｏｕｔ、電流源の素子毎の電圧等を記録したテーブルである。電流源の素子毎の電圧には、Ｃｍの電圧値を少なくとも含むものとする。
【００５５】
図５の例において、時刻ｔ０のときの、入力電圧は「Ｖｉｎ_ｔ０」であり、出力電圧は「Ｖｏｕｔ_ｔ０」であり、Ｃｍの電圧値は「Ｃｍ_ｔ０」であることを示している。次の時刻ｔ１では、入力電圧は「Ｖｉｎ_ｔ１」であり、出力電圧は「Ｖｏｕｔ_ｔ１」であり、Ｃｍの電圧値は「Ｃｍ_ｔ１」であることを示している。そして、時刻ｔｎでは、入力電圧は「Ｖｉｎ_ｔｎ」であり、出力電圧は「Ｖｏｕｔ_ｔｎ」であり、Ｃｍの電圧値は「Ｃｍ_ｔｎ」であることを示している。
【００５６】
次に、電流源モデル６ａ及び補正モデル６ｂが生成されるまでの処理の流れについて説明する。図６は、モデルが生成されるまでの処理の流れを説明するための図である。図６において、シミュレーション部４０では、電流源モデル同定データ生成部４１と、学習データ生成部４２とが、それぞれの処理を行う。
【００５７】
電流源モデル同定データ生成部４１は、ＰＤＫ５１とセルライブラリ５２とを参照して、電流源モデル６ａに関して同定したパラメータを生成する。パラメータデータ５３が、記憶部１３０に記憶される。
【００５８】
モデル生成部４３では、パラメータデータ５３を用いて、電流源モデル生成部４４が電流源モデル６ａを生成する。電流源モデル６ａは、補正モデル生成部４５によって利用可能となる。
【００５９】
一方、シミュレーション部４０において、学習データ生成部４２は、ＰＤＫ５１とセルライブラリ５２とを用いたＳＰＩＣＥによりシミュレーションを行い、その結果を示す学習データ５４を出力する。
【００６０】
図７は、遅延見積部における処理の流れを説明するための図である。図７において、遅延見積部４７では、モデル読出部４８が、記憶部１３０から電流源モデル６ａ及び補正モデル６ｂを読み出して、遅延見積計算部４９に入力する。
【００６１】
遅延見積計算部４９は、時刻毎のセル入力電圧値５６を与えて、補正モデル６ｂで時刻毎に容量Ｃｍを補正して電流源モデル６ａに適応する。電流源モデル６ａは、与えられたセル入力電圧値５６に対して出力電圧を出力する。遅延見積計算部４９は、セル遅延等を算出して見積遅延値５７を出力する。
【００６２】
モデル生成部４３によるモデル生成処理について説明する。図８は、モデル生成処理を説明するためのフローチャート図である。図８において、モデル生成部４３の電流源モデル生成部４４は、電流源モデル６ａを生成する（ステップＳ１）。
【００６３】
次に、補正モデル生成部４５は、電流源モデル生成部４４によって生成された電流源モデル６ａの容量Ｃｍと、学習データ５４から得られる容量Ｃｍとを比較してパラメータである容量Ｃｍの誤差を求める（ステップＳ２）。補正モデル生成部４５は、学習データ５４の時間毎の入力電圧及び出力電圧と、入力電圧の微分値とを用いて、容量Ｃｍの誤差を求める。補正モデル生成部４５は、時間毎の容量Ｃｍの誤差から補正モデル６ｂを生成する（ステップＳ３）。
【００６４】
補正モデル６ｂが生成されると、モデル保存部４６は、電流源モデル６ａと補正モデル６ｂとを記憶部１３０に記憶する（ステップＳ４）。その後、モデル生成部４３によるモデル生成処理は終了する。
【００６５】
補正モデル生成部５４による補正モデル生成処理について説明する。図９は、パラメータの誤差例を示す図である。図９では、学習データ５４と電流源モデル６ａとにおける容量Ｃｍの電圧値の例を示している。
【００６６】
ある時刻ｔｐを参照すると、学習データ５４のＣｍ_学習８ｐに対して、電流源モデル６ａでは、Ｃｍ_モデル９ｐを示している。Ｃｍ_学習８ｐとＣｍ_モデル９ｐとは、差ΔＣｍを示し、Ｃｍ_モデル９ｐがより高い電圧値を示している。
【００６７】
補正モデル生成部４５は、時刻毎の差ΔＣｍを補正することで、Ｃｍ_モデル９ｐの値をＣｍ_学習８ｐの値へと近似する補正モデルを生成すればよい。
【００６８】
Ｃｍ_学習８ｐとＣｍ_モデル９ｐとの関係は、
【００６９】
【数４】
0006604069.tif 000005
で表される。この数４では、時刻ｔ０から時刻ｔ１に経過した場合で示している。この場合において、
Δｔ＝ｔ１−ｔ０
で示され、Δ５は、学習データ５４におけるタイムステップ値に相当する。また、
Δｖｏ＝vout_t1−vout_t0
Δｖｉｎ＝vin_t1−vin_t0
で示される。更に、
Ｉｄc_ｔは、既知の技術で同定された時刻ｔ１における電流源の電流値であり、
Ｃloadは、与えられた負荷容量を示し、
Ｃmpo_モデルは、既知の技術で同定された容量Ｃｍと容量Ｃｏの合計値（Ｃｍ＋Ｃｏ）を示す。上記は、任意の時刻ｔｉから時刻ｔｉ＋１においても同様である。
【００７０】
差ΔＣｍは、
【００７１】
【数５】
0006604069.tif 000006
で表され、関数ｆに近似され、入力電圧ｖｉｎ、出力電圧ｖｉｎ、及び入力電圧の微分値を与えることにより得られる。関数ｆは、補正モデル６ｂに相当する。補正モデル６ｂは、容量Ｃｍの補正に限定されない。ここでは一例として容量Ｃｍの場合で説明したにすぎない。
【００７２】
図１０は、補正値の例を示す図である。図１０において、Ｖｉｎ及びＶｏｕｔの値に対する、Ｃｍ_学習８ｐとＣｍ_モデル９ｐとの実際の差ΔＣｍと、数５の補正モデル６ｂで計算されたＣｍ補正値を示している。
【００７３】
図１０のグラフの作成では、機械学習のＣＡＲＴ（Classification And Regression Tree）アルゴリズムを用いている。補正モデルの特徴ｖｉｎ、ｖｉｎ、Ｃｍ補正値の値の組み合せによるテーブル構造の場合では検索時間が補正特徴の指数関数で増加する。例えば、時間複雑度は、Ｏ（Ｎ＾Ｍ）の場合には、Ｏ（Ｍ・ｌｏｇ２（Ｎ））の時間を要する。ここで、Ｍは補正モデルの特徴の数（ｖｉｎ、ｖｉｎ、Ｃｍ補正値）、Ｎはサンプルデータ数である。
【００７４】
一方、補正モデルの特徴をトリー構造とすることで、検索時間を補正特徴と線形にすることができる。図１０のグラフは、このような手法により得られた結果を示している。図１０から分かるように、Ｃｍ補正値は、実際の差ΔＣｍと非常に類似している。
【００７５】
図１１は、入力電圧に対する出力電圧の比較結果を示す図である。図１１において、遅延見積計算部４９が電流源モデル６ａ及び補正モデル６ｂを用いて得られた補正有りｖｏｕｔ７ｅを、パラメータの補正をしなかった場合の補正無しｖｏｕｔ７ｃと、ＳＰＩＣＥ等による学習時の学習ｖｏｕｔ７ｄとで比較した結果を示している。
【００７６】
学習ｖｏｕｔ７ｄは、学習ｖｉｎ７ｂに対して得られた結果であり、補正有りｖｏｕｔ７ｅ及び補正無しｖｏｕｔ７ｃは、学習ｖｉｎ７ｂと略同一の入力電圧ｖｉｎ７ａに対して得られた電圧値である。
【００７７】
パラメータを補正しなかった場合では、補正無しｖｏｕｔ７ｃは学習ｖｏｕｔ７ｄとあまり一致していないことが分かる。一方、本実施例における補正有りｖｏｕｔ７ｅは、学習ｖｏｕｔ７ｄと略一致しているといえる。
【００７８】
図１２は、誤差の比較例を示す図である。図１２では、見積誤差を正規分布と仮定して最尤化された誤差分布を示している。縦軸に確立密度、横軸に遅延相対誤差を示している。遅延相対誤差が０の場合に誤差が無かったことを示し、０から離れる程誤差が大きいことを示す。
【００７９】
この例では、発明者は、２０ｎｍライブラリの２６並列インバータを用い、Ｒａｉｓｅ／Ｆａｌｌを１０−３０ｐｓとし、Ｃｌｏａｄを０−２０ｆとして比較を行った。
【００８０】
非特許文献１、２に基づく従来技術１２ｂでは、μ＝０．０４４で誤差のピークとなり、分布の幅はσ＝０．０２３であった。
【００８１】
一方、本実施例１２ａでは、μ＝０．００５５で誤差のピークとなり、分布の幅はσ＝０．０１４であった。本実施例１２ａと、従来技術１２ｂの遅延相対誤差の結果は、本実施例１２ａにおいて顕著に優位であることが分かる。
【００８２】
上述したように、本実施例では、電流源モデル６ａでセル遅延を見積もる際にパラメータを補正する補正モデル６ｂを用いることで、セル遅延の見積精度を改善することができる。
【００８３】
本実施例では、補正モデル６ａと容量Ｃｍを補正するモデルとしたが、電流源モデル６ａの容量Ｃｍ以外の要素の電圧を入力電圧に対して夫々補正する計算式を含むようにしてもよい。
【００８４】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【００８５】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
時間毎の入力電圧と出力電圧とを記憶した学習データを用いて、セルの電流源モデルに入力電圧を与えることにより得られた出力電圧と学習データの出力電圧に近似されるように、該電流源モデルの１以上のパラメータの値を補正する補正モデルを生成し、
時間毎に入力される入力電圧に対して、前記補正モデルによって補正されたパラメータ値を前記電流源モデルに適用することで、セルの遅延を算出する
処理をコンピュータが行う半導体集積回路の遅延見積方法。
（付記２）
前記コンピュータは、
少なくともミラー容量の値を補正する前記補正モデルを生成する
ことを特徴とする付記１記載の半導体集積回路の遅延見積方法。
（付記３）
前記学習データは、更に、時間毎のミラー容量の電圧値を記録し、
前記コンピュータは、
前記電流源モデルのミラー容量の電圧値と、前記学習データのミラー容量の電圧値との差を算出する前記補正モデルを生成する
ことを特徴とする付記２記載の半導体集積回路の遅延見積方法。
（付記４）
前記コンピュータは、
プロセスデザインキットとセルライブラリとを用いて、前記電流源モデルのパラメータを同定し、また、半導体集積回路のセル毎の動作をシミュレーションする
処理を行うことを特徴とする付記１乃至３のいずれか一項記載の半導体集積回路の遅延見積方法。
（付記５）
時間毎の入力電圧と出力電圧とを記憶した学習データを用いて、セルの電流源モデルに入力電圧を与えることにより得られた出力電圧と学習データの出力電圧に近似されるように、該電流源モデルの１以上のパラメータの値を補正する補正モデルを生成し、
時間毎に入力される入力電圧に対して、前記補正モデルによって補正されたパラメータ値を前記電流源モデルに適用することで、セルの遅延を算出する
処理をコンピュータに実行させる半導体集積回路の遅延見積プログラム。
（付記６）
時間毎の入力電圧と出力電圧とを記憶した学習データを用いて、セルの電流源モデルに入力電圧を与えることにより得られた出力電圧と学習データの出力電圧に近似されるように、該電流源モデルの１以上のパラメータの値を補正する補正モデルを生成する補正モデル生成部、
時間毎に入力される入力電圧に対して、前記補正モデルによって補正されたパラメータ値を前記電流源モデルに適用することで、セルの遅延を算出する遅延算出部と
を有することを特徴とする回路設計装置。
【符号の説明】
【００８６】
１ａ          入力波形
１ｂ          理想応答
１ｃ          実際応答
２            セル
１１          ＣＰＵ、                        １２          主記憶装置
１３          補助記憶装置、                  １４          入力装置
１５          表示装置、                      １７          通信Ｉ／Ｆ
１８          ドライブ装置、                  １９          記憶媒体
４０          シミュレーション部
４１          電流源モデル同定データ生成部、  ４２          学習データ生成部
４３          モデル生成部、                  ４４          電流源モデル生成部
４５          補正モデル生成部、              ４６          モデル保存部
４７          遅延見積部
４８          モデル読出部、                  ４９          遅延見積計算部
５１          ＰＤＫ、                        ５２          セルライブラリ
５３          パラメータ、                    ５４          学習データ
６ａ          電流源モデル、                  ６ｂ          補正モデル
５６          セル入力電圧値、                ５７          見積遅延値
１００        回路設計装置
１３０        記憶部
Ｂ            バス
【図１】
0006604069.tif 000007
【図２】
0006604069.tif 000008
【図３】
0006604069.tif 000009
【図４】
0006604069.tif 000010
【図５】
0006604069.tif 000011
【図６】
0006604069.tif 000012
【図７】
0006604069.tif 000013
【図８】
0006604069.tif 000014
【図９】
0006604069.tif 000015
【図１０】
0006604069.tif 000016
【図１１】
0006604069.tif 000017
【図１２】
0006604069.tif 000018