(57)【要約】【課題】論理回路の遅延時間計算において、誤差の小さい遅延時間を計算できる遅延時間計算方法を提供する。【解決手段】トランジスタの動作特性を、固定値の抵抗素子と、時間に対して変化する電源電圧で表す。電源電圧は、固定遅延ｔ０から増加してΔｔ１後にＶ１となる直線と、Δｔ２の間にＶ１からＥになり、その後は一定値Ｅになる直線を組み合わせた波形で表す。入力波形の波形形状の違いを補正パラメータとして取り入れ、Δｔ１、Ｖ１、Δｔ２の値を決定する。【選択図】図６
2006031247.tif 000002
【特許請求の範囲】
【請求項１】
ＭＯＳトランジスタを含んだ論理回路の遅延時間計算方法であって、
前記トランジスタを抵抗値が固定の抵抗素子と、時間に対して変化する電源とでモデル化し、前記電源の形状は、前記論理回路に入力される入力波形の波形形状を決定する入力波形情報に応じて決定されることを特徴とする遅延時間計算方法。
【請求項２】
前記入力波形情報は、所定の２電位間を通過するのに要する時間が前記入力波形と同一である直線波形が、前記入力波形がＬ状態からＨ状態に遷移する場合は電源電圧と、前記入力波形がＨ状態からＬ状態に遷移する場合はグランドと交わる時刻における前記入力波形の電位と、
前記時刻における前記入力波形の電位と、前記入力波形がＬ状態からＨ状態に遷移する場合は前記所定の２電位のうち高い方を、前記入力波形がＨ状態からＬ状態に遷移する場合は前記所定の２電位のうち低い方を通るＥｘｐｏｎｅｎｔｉａｌ波形の時定数であることを特徴とする請求項１に記載の遅延時間計算方法。
【請求項３】
モデル化された前記トランジスタの動作特性を、ゲート電圧の変化で電流が変化する第１の領域と、前記トランジスタの飽和領域に対応し、ゲート電圧一定で電流が漸減する第２の領域と、前記トランジスタの線形領域に対応し、ゲート電圧一定で電流が減少する第３の領域に分けて表現し、
前記トランジスタが第１の領域から第２の領域へ移動し、さらに第２の領域から第３の領域に移動する場合には、前記入力波形情報に基づいて前記電源の形状を決定することを特徴とする請求項１又は２に記載の遅延時間計算方法。
【請求項４】
前記入力波形情報に基づいて、前記第２の領域における前記トランジスタの飽和電流値を算出し、前記飽和電流値を用いて前記電源の形状を決定することを特徴とする請求項３に記載の遅延時間計算方法。
【請求項５】
前記飽和電流値は、前記第２の領域における前記トランジスタに印加されるゲート電圧の平均ゲート電圧に応じて算出されることを特徴とする請求項４に記載の遅延時間計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばトランジスタで構成したマクロセルの遅延時間を計算する遅延時間計算方法に関するものである。
【背景技術】
【０００２】
大規模システムを搭載した半導体集積回路（ＳＯＣ：Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）のタイミング検証を行うには、正確にインスタンス毎の遅延時間を計算する必要がある。正確な遅延時間計算方法としてよく知られているのは、回路シミュレーションによる計算方法、例えばＳＰＩＣＥ等を挙げることができる。回路シミュレーションでは、各素子の動作点解析を行列計算によって求める。この計算を微小経過時間刻みで行って各時間における全ノードの電圧値を得る。この手法では、ある時刻における動作解析をするのに巨大な行列を解く必要が生じるため、素子数が多いと著しく計算量が増加する。さらに、微小刻み時間毎に行列計算を行う必要があるため、大規模ＳＯＣのように著しく素子数の多い半導体集積回路では現実的な時間で解析を行うことは不可能である。この問題を解決するために用いられているのが遅延時間計算装置（Ｄｅｌａｙ  Ｃａｌｃｕｌａｔｏｒ）による遅延時間計算方法である。
【０００３】
遅延時間計算装置では、あらかじめ遅延対象となりえる全てのマクロセル（論理回路）の入力に入力波形生成回路を、出力に出力負荷を付加し、複数種（通常１０〜１００）の入力波形、出力負荷で回路シミュレーション（ＳＰＩＣＥ）を実行する。この際、全ての入力波形はＬ状態からＨ状態（若しくはＨ状態からＬ状態）に遷移するのに要する時間（Ｔｓｌｅｗ値）に置換されて代表される。
【０００４】
ここで得られたシミュレーション結果から、遅延時間をＴｓｌｅｗ値と出力負荷の関数として計算するために必要なパラメータを抽出し、遅延パラメータデータベースに格納する。マクロセルが複数の異なる変化をするパスを持つ場合は、パス毎に実行する。
【０００５】
遅延時間計算装置では、以上のように抽出した遅延パラメータデータベースを用いてＳＯＣについて遅延時間計算を行う。まず、デフォルト値若しくは設計者が与えることによりＴｓｌｅｗ値が確定しているインスタンスについて、遅延パラメータデータベースを用いて遅延時間計算を行う。遅延時間計算を行うには出力負荷の情報が必要であるが、レイアウト抽出装置を用いてレイアウト結果からあらかじめ作成することができる。そうして、当該インスタンスの遅延時間と当該インスタンスから出力される出力波形を決定することができる。出力波形から次段のインスタンスに入力されるＴｓｌｅｗ値を決定することができるので、このＴｓｌｅｗ値を用いて次段のインスタンスの遅延時間と出力波形を決定することができる。この作業を全てのインスタンスについて行うとＳＯＣ内の全ての遅延時間を計算することができる。
【０００６】
例えば、特許文献１には、Ｔｓｌｅｗ値と出力負荷情報のみで遅延時間を計算する遅延時間計算方法に関する発明が開示されている。
【０００７】
【特許文献１】特開２００２−１２３５６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、現実のＳＯＣ中では、構成される回路やＲＣネットワークのトポロジーに依存して、遅延パラメータデータベースを構築したときに使用した入力波形とは異なる様々な入力波形の波形形状が存在する。すなわち、同一のＴｓｌｅｗ値を持つが波形形状が異なる多くの入力波形が存在する。
【０００９】
従来の遅延時間の計算方法では、Ｔｓｌｅｗ値と出力負荷情報のみで遅延時間を計算している。そのため、出力負荷が同一で、同一のＴｓｌｅｗ値を持つ場合には、入力波形の波形形状が異なっていても必ず同一の遅延時間が計算されることになる。
【００１０】
その結果、従来の遅延時間計算方法では、どのようにパラメータを最適化したとしても遅延時間の計算結果に８パーセント程度の誤差を持ってしまう。現在、ＳＯＣは高速化されており、遅延時間計算誤差は高々５パーセント程度に抑えなければならない。その中で本質的に８パーセントの誤差を有することは、設計を困難なものとしている。
【００１１】
そこで本発明の目的は、誤差の小さい遅延時間を計算できる遅延時間計算方法を提供することである。
【課題を解決するための手段】
【００１２】
請求項１に係る遅延時間計算方法は、ＭＯＳトランジスタを含んだ論理回路の遅延時間計算方法であって、前記トランジスタを抵抗値が固定の抵抗素子と、時間に対して変化する電源とでモデル化し、前記電源の形状は、前記論理回路に入力される入力波形の波形形状を決定するパラメータに応じて決定されることを特徴とする。
【発明の効果】
【００１３】
請求項１に係る遅延時間計算方法によれば、トランジスタをモデル化する電源の形状を、入力波形の波形形状を決定するパラメータに応じて決定しているので、誤差の小さい遅延時間計算を行うことができる。
【発明を実施するための最良の形態】
【００１４】
＜実施の形態１＞
本実施の形態に係る遅延時間計算方法は、従来の遅延時間計算方法と同様に、遅延時間をＴｓｌｅｗ値と出力負荷の関数として計算するための遅延パラメータ、入力波形のＴｓｌｅｗ値、及び出力負荷情報を入力としている。さらに、本実施の形態に係る遅延時間計算方法では、入力波形の波形形状を表す入力波形情報を入力としている。そして、遅延時間、及び次段の入力波形、Ｔｓｌｅｗ値を出力している。
【００１５】
図１から図３は、本実施の形態に係る遅延時間計算の処理フローを示す図であり、図１は、例えばインバータ１とインバータ２を配線３で接続した場合の回路接続の構成を示している。図４は、インバータ１の構成を示す図である。図４に示すようにインバータ１は、ＰＭＯＳトランジスタＰ１、ＮＭＯＳトランジスタＮ１により構成される。電源電圧ＶｄｄにＰＭＯＳトランジスタＰ１のソースが接続され、ドレインはＮＭＯＳトランジスタＮ１のドレイン及び出力端子Ｙ１に接続されている。ＮＭＯＳトランジスタＮ１のソースは接地されている。ＰＭＯＳトランジスタＰ１及びＮＭＯＳトランジスタＮ１のゲートは入力端子Ａ１に接続されている。インバータ２の構成は同様であるので説明は省略する。
【００１６】
図２に示すように、図１の回路接続情報に基づいて回路構成情報の作成を行う。回路構成情報は、インバータ１に対応するソースモデル６と、負荷構成素子８により構成されている。ソースモデル６は、電源４と抵抗５で構成され、電源４に抵抗５の一端が接続されている。そして抵抗５の他端は、負荷構成素子８を構成するＲＣ分布定数回路７の一端に接続されている。
【００１７】
負荷構成素子８は、配線３に対応するＲＣ分布定数回路７及びインバータ２の入力ピン容量Ｃｇとで構成される。ＲＣ分布定数回路７の一端はソースモデル６に接続され、他端は入力ピン容量Ｃｇの一端に接続されている。入力ピン容量の他端は接地されている。
【００１８】
次に図３に示すように、回路構成情報と等価な負荷モデル９を作成する。負荷モデル９は、負荷構成素子８におけるＲＣ分布定数回路７の入力側容量を容量Ｃ２と、ＲＣ分布定数回路７の出力側容量を容量Ｃ１及びＲＣ分布定数回路７の抵抗Ｒにより構成されている。抵抗Ｒの一端は入力側容量Ｃ１の一端及びソースモデル６の抵抗５の他端に接続され、入力側負荷容量Ｃ２の他端は接地されている。また、抵抗Ｒの他端は、出力側負荷容量Ｃ１の一端に接続され、出力側負荷容量Ｃ１の他端は接地されている。
【００１９】
本発明では、以上のように構成したソースモデル６の電源４に時間依存性を持たせる（以下、電源４の大きさをＥ（ｔ）とする）。そうして、入力波形を受けたトランジスタの動作を表現するモデル（Ｅ（ｔ）モデルと称する）を構成する。すなわちＥ（ｔ）モデルは、ソースモデル６から負荷モデル９へ流れ込む出力電流ｉ（ｔ）が、インバータ１を構成するトランジスタのドレイン電流Ｉｄｓの電流波形を再現するように、Ｅ（ｔ）の形状を設定するモデルである。そのため、トランジスタのドレイン電流Ｉｄｓの波形を考慮しながらＥ（ｔ）の形状を決定する。
【００２０】
そこで、ドレイン電流Ｉｄｓの電流波形について説明する。以下の説明では、Ｈ状態からＬ状態に遷移する入力波形（入力信号）が、入力端子Ａ１から入力される場合について説明している。また、入力波形の形状は、Ｈ状態（電位Ｖｄｄ）からＬ状態（電位０Ｖ）に直線的に変化する波形形状を想定している。
【００２１】
このとき、インバータ１の出力端子Ｙ１の電位は、インバータ１のＰＭＯＳトランジスタＰ１がＯＦＦ状態からＯＮ状態に遷移して出力負荷が充電し、Ｌ状態からＨ状態に遷移することになる。
【００２２】
図５は、インバータ１の入力端子Ａ１にＨ状態からＬ状態に遷移する入力波形が入力された場合に、ＰＭＯＳトランジスタＰ１を流れるドレイン電流Ｉｄｓの電流波形を説明するための図である。横軸は、ソース−ドレイン間電圧Ｖｄｓ（ドレイン電圧）を表し、縦軸はドレイン電流Ｉｄｓを表している。また破線は、幾つかのゲート−ソース間電圧Ｖｇｓ（ゲート電圧Ｖｇｓ）の大きさに対応するトランジスタのＩｄｓ−Ｖｄｓ曲線を示している。
【００２３】
図５に示すように電流波形には、マクロセルの駆動能力と出力負荷の大きさによって、時間とともに出力電流が上昇する領域１の後に、出力電流が緩やかに減少する領域２が続き、最後に線形に減少する領域３に移動する第１のパターンと、時間とともに出力電流が上昇する領域１に引き続いて速やかに線形に出力電流が減少する領域３に移動する第２のパターンが存在する。
【００２４】
以下、電流波形についてより詳細に説明する。初期状態では、ＰＭＯＳトランジスタＰ１のゲート電圧Ｖｇｓは０Ｖ、そして出力負荷は充電されていないのでドレイン電圧ＶｄｓはＶｄｄである。
【００２５】
まず、出力負荷が大きい場合、つまり出力負荷が充電されるとともに減少するドレイン電圧Ｖｄｓの減少度合いが、ゲート電圧Ｖｇｓの変化度合いに比べて遅い場合について説明する。インバータ１の入力端子Ａ１への入力信号がＨ状態からＬ状態に遷移するにつれて、ゲート電圧Ｖｇｓは上昇し、ＰＭＯＳトランジスタＰ１にドレイン電流Ｉｄｓが流れ始める。
【００２６】
ドレイン電流Ｉｄｓの大きさはゲート電圧Ｖｇｓが大きくなるにつれて、大きくなる。また、ドレイン電圧Ｖｄｓは、出力負荷がドレイン電流Ｉｄｓによって充電されていくとともにＶｄｄから小さくなっていく。出力負荷の大きさが大きいとドレイン電圧Ｖｄｓの減少度合いが小さいため、ゲート電圧ＶｇｓがＶｄｄとなったとき、ＰＭＯＳトランジスタＰ１は飽和領域の状態にある（領域１）。以下、この領域１を「ゲート電圧が変化する飽和領域」若しくは「ゲート電圧の変化で電流が変化する第１の領域」と称する場合がある。
【００２７】
次に、ドレイン電圧Ｖｄｓは出力負荷が充電されるにつれて徐々に小さくなるので、ゲート電圧Ｖｇｓの大きさはＶｄｄで一定のまま、ドレイン電流Ｉｄｓは徐々に減少する（領域２）。以下、この領域を、「ゲート電圧が固定の飽和領域」若しくは「ゲート電圧一定で電流が漸減する第２の領域」と称する場合がある。
【００２８】
そして、出力負荷がさらに充電され、ドレイン電圧Ｖｄｓがある程度小さくなると、ＰＭＯＳトランジスタＰ１は線形領域の状態となり、ドレイン電流Ｉｄｓは線形に減少する。そして出力負荷の充電が完了すると、ドレイン電圧Ｖｄｓは０Ｖとなるためドレイン電流Ｉｄｓ流れなくなる（領域３）。以下この領域３を「線形領域」若しくは「ゲート電圧一定で電流が減少する第３の領域」と称する場合がある。
【００２９】
以上のように、負荷容量が大きい場合には、図５のパターン１に示した電流波形となる。
【００３０】
次に出力負荷が小さい場合、つまり出力負荷が充電されるとともに減少するドレイン電圧Ｖｄｓの減少度合いが、ゲート電圧Ｖｇｓの変化度合いに比べて早い場合について説明する。負荷容量がある程度小さくなると領域２は消失する。例えば、ゲート電圧ＶｇｓがＶｄｄとなったときに、負荷容量がある程度充電されてトランジスタが線形領域の状態になる場合を考える。この場合、ゲート電圧Ｖｇｓが上昇すると共にドレイン電流Ｉｄｓは、図５に示した領域２と領域３の境界点へ向けて上昇し（領域１）、ゲート電圧ＶｇｓがＶｄｄに達すると領域３に従ってドレイン電流Ｉｄｓは速やかに減少する。
【００３１】
さらに負荷容量が小さくなると、ゲート電圧ＶｇｓがＶｄｄとなる前に、領域１から領域３に移動することになる。図５に示したパターン２は、負荷容量が小さくゲート電圧ＶｇｓがＶｄｄとなる前に、領域１から領域３に移動するパターンを示している。
【００３２】
次に以上説明した電流波形を再現するＥ（ｔ）の波形を考察する。まず、パターン１の電流波形について考察する。パターン１のラインにおいて、領域３は線形領域で回路の時定数で決まる電流が流れる領域であるので、Ｅ（ｔ）＝Ｅ（＝Ｖｄｄ）とすることができる。ソースモデル６は、トランジスタの動作を抵抗５とＥ（ｔ）で表しており、領域３ではドレイン電圧Ｖｄｓが減少するにつれて線形に電流が減少しているので、Ｅ（ｔ）＝Ｅとすることで、時間とともに線形に減少する電流波形を再現することができる。
【００３３】
次に、領域１と領域２には異なる波形のＥ（ｔ）を与える。Ｅ（ｔ）は領域１、領域２のそれぞれに対して、時間に関して異なる関数（但し、両方の関数は領域１，２に対応する時間点で連続している）にて表現されるが、この実施例では、図６のように計算の容易性を考慮して２つの領域に異なる傾きの連続する直線を与える。
【００３４】
すなわち領域１は、ドレイン電流Ｉｄｓが急速に上昇する領域に対応しており、ソースモデル６では、このようなドレイン電流Ｉｄｓを表現するために、時間に対して傾きの大きな直線を対応させる。
【００３５】
また領域２は、ゲート電圧Ｖｇｓの大きさがＶｄｄで一定のままドレイン電流Ｉｄｓが漸減していく領域に対応している。ソースモデル６で緩やかに減少するドレイン電流Ｉｄｓを再現するためには、出力負荷が充電されるにつれて抵抗５の一端に印加される電圧が高くなっていくため、時間に対して増加する直線を対応させる必要がある。仮に時間に対して一定の電圧を対応させると、ドレイン電流Ｉｄｓが減少率が大きくなりすぎる。
【００３６】
また、Ｅ（ｔ）が上昇を開始する時間は、ｔ＝０の位置とは必ずしも一致しない。ＰＭＯＳトランジスタＰ１は閾値電圧Ｖｔｈを持っており、入力波形が閾値電圧Ｖｔｈ以上になった時に電流が流れ始める。そのためＥ（ｔ）は、入力波形が閾値電圧Ｖｔｈ以上になる時間から上昇し始めることになる。この時間を固定遅延ｔ０とする。入力波形が０又はＶｄｄに変化し終えたとみなす時間をＴｓｌｅｗ値としたとき、固定遅延ｔ０はＴｓｌｅｗの関数で表現でき、例えばｔ０（Ｔｓｌｅｗ）＝Ｋ１０＋Ｋ２０・Ｔｓｌｅｗα  の式で近似できる。この場合、固定遅延ｔ０を特定する入力スルーレートの関数情報として、遅延ライブラリに記憶される遅延パラメータは、このＫ１０、Ｋ２０、α等である。
【００３７】
本実施の形態では、図６に示すように、Ｅ（ｔ）の波形は固定遅延ｔ０経過後、最初のΔｔ１の時間でＥ（ｔ）はＶ１まで上昇し、その後Δｔ２でＥまで上昇する折れ線として定義し、ｔ０、Δｔ１、Ｖ１、Δｔ２をパラメータとする。
【００３８】
パターン２の場合は、領域２が存在しない。この場合は、Δｔ２＝０、Ｖ１＝Ｅとして、直接領域１から領域３に移動するＥ（ｔ）の波形（図７）を与える。
【００３９】
図６に示したＥ（ｔ）の波形を用いた場合の、出力端電圧波形ｖ２（ｔ）は、波形立ち上がり時次のように記述される。
【００４０】
【数１】
2006031247.tif 000003
【００４１】
とし、
【００４２】
【数２】
2006031247.tif 000004
【００４３】
ｖ２（ｔ）のモデル波形記述は、関数ｆ，ａを定義したとき、
＜ｃａｓｅ１＞ Δｔ１＝０のとき
【００４４】
【数３】
2006031247.tif 000005
【００４５】
＜ｃａｓｅ２＞ Δｔ２＝０のとき
【００４６】
【数４】
2006031247.tif 000006
【００４７】
＜ｃａｓｅ３＞ Δｔ１、Δｔ２≠０のとき
【００４８】
【数５】
2006031247.tif 000007
【００４９】
となる。
【００５０】
以下、Δｔ１、Ｖ１、Δｔ２の決定手順について説明する。図５に示したトランジスタの動作点の移動を見ると、領域１→領域２、領域１→領域３、領域２→領域３の３つの境界が存在する。この時のトランジスタの動作点はいずれもＶｇｓ＝ＶｄｄのＩｄｓ−Ｖｄｓ特性上にある。言い換えれば境界条件を決定するには、Ｖｇｓ＝Ｖｄｄ時のＩｄｓ−Ｖｄｓ特性があればよいということになる。
【００５１】
そのため、Ｖｇｓ＝Ｖｄｄ時のＩｄｓ−Ｖｄｓ曲線を、抵抗５の抵抗値Ｒｓ、電流パラメータＩ０ 、Ｉ１を用いて図８のようにモデル化する。
【００５２】
図８は、Ｖｇｓ＝ＶｄｄのＳＰＩＣＥシミュレーションによる結果と、その結果を電流パラメータを用いて表したモデルを示している。
【００５３】
ソースモデル６では、抵抗５（抵抗値Ｒｓ）で出力負荷の充放電をしている。そのため領域３のＩｄｓ−Ｖｄｓ特性は、Ｉｄｓ＝Ｖｄｓ／Ｒｓで表す必要がある。そして、領域２と領域３の境界点での飽和電流を電流パラメータＩ１で表し、Ｖｄｓ＝Ｖｄｄでの飽和電流を電流パラメータＩ０と表す。
【００５４】
このモデルでは、領域２と領域３の境界点での飽和電流をＩ１としているので、Ｖｄｓ≦Ｒｓ・Ｉ1 の領域を線形領域、Ｖｄｓ＞Ｒｓ・Ｉ1 の領域を飽和領域と見ることになる。またＶｄｓ＝Ｖｄｄ時の飽和電流Ｉ０を別に定義することで、後述するように領域２における飽和電流をＩ０と、Ｉ１を用いて表し、飽和領域でＶｄｓが減少する（ｖ２が上昇する）に従ってドレイン電流Ｉｄｓが漸減する特性を表現する。
【００５５】
Δｔ１、Ｖ１、Δｔ２は、このＲｓ、Ｉ０、Ｉ１をあらかじめ抽出されたパラメータとして記述される。また、図９に示すように、トランジスタのゲート電圧と電流の関係を直線で近似し、この直線とゲート電位軸とが交わる点をＶｔｈ０と定義して遅延パラメータデータベース内に登録しておく。
【００５６】
次にＥ（ｔ）の形状を決める具体的な計算方法について説明する。
【００５７】
＜１．Δｔ1 の決定＞
まず最初にΔｔ１を決定する。Δｔ１の決定するには、初期値としてΔｔ１＝Ｔｓｌｅｗ−ｔ０、Ｖ１＝Ｅ、Δｔ２＝０を与える。これはＥ（ｔ）が図７に示した形状になることを仮定し、時刻ｔ＝Ｔｓｌｅｗ＝ｔ０＋Δｔ１において、トランジスタが飽和領域→線形領域に遷移することを仮定したことになる。
【００５８】
このとき、時刻ｔ＝Ｔｓｌｅｗにおいて、ＰＭＯＳトランジスタＰ１は飽和領域と線形領域の境界点に存在している。前述したように、この条件での電流がＩ１として遅延データベースに登録されている。
【００５９】
ここで、図５における説明では、入力波形の形状は、Ｈ状態（電位Ｖｄｄ）からＬ状態（電位０Ｖ）に直線的に変化する波形形状を想定していた。従って、図８に示した電流パラメータによるモデル化もまた直線的に変化する波形形状を想定している。
【００６０】
しかしながら、実際の入力波形は、図１０に示すように、直線波形からずれたものとなっている。ここで図１０は、実際の入力波形の一例を示す図である。なお、図１０はＬｏｗ状態からＨｉｇｈ状態に遷移する入力波形を示してるが、Ｈｉｇｈ状態からＬｏｗ状態に遷移する場合も同様である。
【００６１】
そこで、実際の入力波形の傾き決定する２点の電位Ｖａ、Ｖｂを選択する。この２点を通る直線波形が電源電位Ｖｄｄ（入力がＬ状態からＨ状態に遷移する場合は接地電位ＧＮＤ）と交わる時刻における実際の入力波形との乖離量の電源電位Ｖｄｄに対する割合（以下ＴｉｎＤｒｏｐとする）を測定し、乖離したポイント（直線波形の時刻Ｔｓｌｅｗに対応する点）と入力波形の傾きを決める電位の高い方（図１０の例ではＶｂ、入力波形がＨ状態からＬ状態に遷移する場合には低い方Ｖａ）を通るＥｘｐｏｎｅｎｔｉａｌ波形（時定数をＴｉｎＴａｕとする）を構成する。この波形は、ＴｉｎＤｒｏｐとＴｉｎＴａｕで唯一に表現できるので、この２つの量を入力波形情報として定義しておく。
【００６２】
図１０に一例を示したように、時刻ｔ＝Ｔｓｌｅｗでゲート電圧Ｖｇｓは、ＴｉｎＤｒｏｐ×Ｅで示される量だけドロップした値となっている。そこで、電流パラメータＩ１と以下の補正係数ｄとの積をとり、電流ｄ・Ｉ１を時刻ｔ＝Ｔｓｌｅｗにおける実際の電流とする。
【００６３】
【数６】
2006031247.tif 000008
【００６４】
Δｔ２＝０の場合のｖ２（ｔ）の式を用いて、Ｅ（ｔ）についてｔ＝Ｔｓｌｅｗで以下の式が成立する。 
【００６５】
【数７】
2006031247.tif 000009
【００６６】
ところが実際には、初期値（Δｔ１＝Ｔｓｌｅｗ−ｔ０、Ｖ１＝Ｅ、Δｔ２＝０）が式（７）を満たす解であるとは限らない。そのため、Ｅ（Ｔｓｌｅｗ）＞Ｅ若しくはＥ（Ｔｓｌｅｗ）＜Ｅとなる場合がある。
【００６７】
まずＥ（Ｔｓｌｅｗ）≧Ｅの場合、ゲート電圧Ｖｇｓが変化する飽和領域（領域１）→線形領域（領域３）に移行する時刻がｔ≦Ｔｓｌｅｗであることを意味している。より詳細に説明すると、Ｅ（Ｔｓｌｅｗ）＞Ｅの場合、式（７）のうち、ｖ２（Ｔｓｌｅｗ）及びｄ・Ｉ１・Ｒｓの項の値が大きいことを意味している。従って式（７）を満たすためには、領域１と領域３の境界での電流値をＩ１から小さくする必要が生じる。図５を参照すると、パターン２と示したような状態にする必要がある。そして、パターン２は、ｔ＜Ｔｓｌｅｗで、ゲート電圧ＶｇｓがＶｄｄとなる前に領域１から領域３に遷移することを意味している。言い換えると、出力負荷の大きさが小さい場合に対応し、図１０を参照すると直線波形と実際の入力波形が乖離するポイントよりもゲート電圧Ｖｇｓの上昇が低い段階で出力負荷の充電が完了することを意味している。そのため、Ｅｘｐｏｎｅｎｔｉａｌ近似を用いる必要はなく、入力波形としてＴｓｌｅｗ値で決まる直線波形用いることができる。
【００６８】
Ｅ（ｔ）モデルでは、領域１と領域３の境界点到達する時間ｔ＝ｔ０＋Δｔ１では、Ｅ（ｔ０＋Δｔ１）＝Ｅとなるので、
【００６９】
【数８】
2006031247.tif 000010
【００７０】
を満たす。
【００７１】
ｖ２（ｔ０＋Δｔ１）は、パターン２を仮定しているので、Δｔ２＝０であるから、式（４）の値を使う。
【００７２】
【数９】
2006031247.tif 000011
【００７３】
ここで、ｉ（ｔ０＋Δｔ１）は飽和領域の電流である。ｉ（ｔ）は次のように考える。
（１）最も簡単なトランジスタモデルによれば、飽和領域のドレイン電流は、ｉ∝（Ｖｇｓ−Ｖｔｈ）2であり、Ｖｇｓを１次式で近似すればｉ∝ｔ2となる。また、（２）固定遅延の考察を考慮すれば、ｔ＝ｔ０でｉ＝０でなければならない。そして（３）１次式近似を使えば、ｔ＝Ｔｓｌｅｗの位置でゲート電圧Ｖｇｓ＝Ｖｄｄとなり、図８のＩｄｓ−Ｖｄｓ特性になる。また、その時の電流値はＶｇｓ＝Ｖｄｄ時の線形領域と飽和領域の境界電流値Ｉ１である。従ってｔ＝Ｔｓｌｅｗでｉ（Ｔｓｌｅｗ）＝Ｉ１となる。この条件を満たす式は、
【００７４】
【数１０】
2006031247.tif 000012
【００７５】
である。ｉ（ｔ０＋Δｔ１）には、この式を用いる。これらの式を式（８）に代入すれば、次の関係式が得られる。
【００７６】
【数１１】
2006031247.tif 000013
【００７７】
さらに、ｖ２（ｔ０＋Δｔ１）に式（９）を代入して変形すると、式（１２）となる。
【００７８】
【数１２】
2006031247.tif 000014
【００７９】
この式はΔｔ1 ＞０で解を１つ持つ。
【００８０】
次に、Ｅ（Ｔｓｌｅｗ）＜Ｅの場合、逆に飽和電流Ｉ１を大きくする必要があり、トランジスタの動作は、ゲート電圧Ｖｇｓが変化する飽和領域（領域１）→ゲート電圧Ｖｇｓが固定（Ｖｇｓ＝Ｅ）の飽和領域（領域２）→線形領域と遷移することを意味する。すなわち図５に示したパターン１の電流波形に対応する。
【００８１】
Ｅ（ｔ）は、領域１→領域２の境界点でＶｇｓ＝Ｅとなり、初期値の設定から、Ｔｓｌｅｗ＝ｔ０＋Δｔ１のときにこの境界点に達している。図６のようにＥ（ｔ）を表すと、Δｔ１の値はｔ０＝Ｔｓｌｅｗ−Δｔ１により求まる。
【００８２】
もう１つ例外として、式（１２）を解いた結果、Δｔ１＝Ｔｓｌｅｗ−ｔ０≦０となる場合がある。この場合は、出力電流を流れる状態にするのに時間がかかり、出力電流が流れ始めたときにはすでにＶｇｓ＝Ｖｄｄであるという状態として理解される。モデルでは、この状態のときは瞬時にＶｇｓ＝ＶｄｄのＩｄｓ−Ｖｄｓ曲線に移動すると考えられる。従って領域１は存在せず、領域２より始まるモデルとなる。つまりΔｔ１＝０である。
【００８３】
以上を整理すると、Δｔ１は、（１）ｃａｓｅ１・・・Ｔｓｌｅｗ−ｔ０≦０のときΔｔ１＝０（２）ｃａｓｅ２・・・Ｅ（Ｔｓｌｅｗ）≧Ｅの場合、ｔ＝ｔ０＋Δｔ１≦Ｔｓｌｅｗから、Δｔ１≦Ｔｓｌｅｗ−ｔ０となり、
【００８４】
【数１３】
2006031247.tif 000015
【００８５】
を満たすΔｔ１（３）ｃａｓｅ３・・・Ｅ（Ｔｓｌｅｗ）＜Ｅのとき、Δｔ１＝Ｔｓｌｅｗ−ｔ０となる。
【００８６】
＜２．Ｖ１の決定＞
Ｖ１の場合にも次の関係式が成立する。
【００８７】
【数１４】
2006031247.tif 000016
【００８８】
この式を用いてＶ１を決定する。
【００８９】
（１）ｃａｓｅ１・・・Δｔ１＝０のときｔ＝ｔ０ですでにＶｇｓ＝Ｖｄｄとなっている場合であるから、ｉ（ｔ０）は図６のＩｄｓ−Ｖｄｓ特性上にある。また固定遅延ｔ０の定義から負荷容量は充電されていないためｖ２（ｔ０）＝０であるから、Ｖｄｓ＝Ｖｄｄとなり、ｉ（ｔ０）＝Ｉ０でなければならないことがわかる。従って Ｖ１＝Ｒｓ・Ｉ０となる。（２）ｃａｓｅ２・・・０＜Δｔ１≦Ｔｓｌｅｗ−ｔ０のとき：この場合は領域１→領域３に移動するパターン２である。従って Ｖ１＝Ｅとなる。（３）ｃａｓｅ３・・・Δｔ１＝Ｔｓｌｅｗ−ｔ０のとき：この条件の場合、パターン１に相当し、Ｔｓｌｅｗの時間に領域１から領域２に遷移していることを意味している。時間Δｔ１の間、出力負荷は充電されているので、ｖ２（ｔ０＋Δｔ１）＞０となっている。また、領域２から領域３の境界点でのドレイン電流Ｉｄｓよりも多くの電流が流れているため、ｖ２（ｔ０＋Δｔ１）はＥ−Ｒｓ・Ｉ１よりは小さくなる。
【００９０】
以上から、ｖ２（ｔ０＋Δｔ１）は、０＜ｖ２（ｔ０＋Δｔ１）＜Ｅ−Ｒｓ・Ｉ１の範囲に存在することがわかる。そのため、トランジスタの動作点は図１１に示す位置となる。図１１は、図８のうち、領域２に対応する部分を抜き出した図である。図１１を参照して、領域２における電流値（飽和電流値）であるｉ（ｔ０＋Δｔ１）は、電流パラメータＩ０、Ｉ１を用いて、
【００９１】
【数１５】
2006031247.tif 000017
【００９２】
となる。
【００９３】
しかし、式（１５）は、Δｔ２で示される領域が「ゲート電圧が固定の飽和領域」に該当し、ゲート電圧ＶｇｓがＶｄｄで固定されている場合に求めた式である。
【００９４】
実際の入力波形は図１０に示したように、波形形状に応じて微増しているため、Ｖｇｓ＝Ｖｄｄとして求めたｉ（ｔ０＋ｔ１）を用いて計算すると誤差を生じる。
【００９５】
これをＶ１、及び後述するΔｔ２の計算に反映させるため、Δｔ２領域の平均ゲート電圧バーＶｇｓを計算する。
【００９６】
【数１６】
2006031247.tif 000018
【００９７】
ここで、Δｔ２＝０のときは、バーＶｇｓ＝Ｅ（１−ＴｉｎＤｒｏｐ）、ＴｉｎＤｒｏｐ＝０のときは、バーＶｇｓ＝Ｅとする。
【００９８】
このバーＶｇｓを用いて、遅延パラメータデータベース内の電流Ｉ０、Ｉ１をそれぞれｘＩ０、ｘＩ１と補正して遅延計算を行う。
【００９９】
ここで、補正係数ｘは以下の式で表される。
【０１００】
【数１７】
2006031247.tif 000019
【０１０１】
Ｉ（ｔ０＋Δｔ１）として、式（１５）でＩ０とＩ１をそれぞれｘＩ０、ｘＩ１としたものを用いて、
【０１０２】
【数１８】
2006031247.tif 000020
【０１０３】
を満たすようにＶ１を求める。
【０１０４】
また、ｖ２（ｔ０＋Δｔ１）は、式（５）を用いて、
【０１０５】
【数１９】
2006031247.tif 000021
【０１０６】
となる。
【０１０７】
式（１８）、（１９）から、Ｖ１は、
【０１０８】
【数２０】
2006031247.tif 000022
【０１０９】
となる。
【０１１０】
＜３．Δｔ２の決定＞
ｃａｓｅ２の場合はパターン２に対応するので、Δｔ２ は０となる。そして、ｃａｓｅ１およびｃａｓｅ３の場合については、領域２→領域３の境界においても 
【０１１１】
【数２１】
2006031247.tif 000023
【０１１２】
が成立する。領域２はＶｇｓ＝Ｖｄｄの飽和領域であり、領域３との境界では、ｉ（ｔ０＋Δｔ１＋Δｔ２）＝ｘ・Ｉ１となる。ｖ２（ｔ０＋Δｔ１＋Δｔ２）の式は、他と同様に前記式（３）（ｃａｓｅ１の場合）や式（５）（ｃａｓｅ３の場合）を使用する。そうして、式（２１）を満たすようにΔｔ２を決定する。
【０１１３】
以上から各場合について、決定式をまとめると、＜ｃａｓｅ１＞ Ｔｓｌｅｗ−ｔ０≦０のとき：Δｔ１＝０、Ｖ１＝ＲｓＩ０、ｖ２（ｔ０＋Δｔ１＋Δｔ２）＋ｘＲｓ・Ｉ１＝Ｅを満たすΔｔ２。＜ｃａｓｅ２＞ ０＜Δｔ１≦Ｔｓｌｅｗ−ｔ０のとき、
【０１１４】
【数２２】
2006031247.tif 000024
【０１１５】
＜ｃａｓｅ３＞ Δｔ1 ＞Ｔｓｌｅｗ−ｔ０となるとき、
【０１１６】
【数２３】
2006031247.tif 000025
【０１１７】
となる。この考え方は、波形の立ち上がり／立ち下がりによらず同じである。
【０１１８】
次にフローチャートを用いて遅延時間計算方法について説明する。図１２は本実施の形態に係る遅延時間計算方法の流れを示すフローチャートである。まずｓｔｅｐ１では、初期条件として、Δｔ１＝Ｔｓｌｅｗ−ｔ０、Ｖ１＝Ｅ、Δｔ２＝０を設定する。
【０１１９】
次にｓｔｅｐ２では、式（７）を用いてＥ（Ｔｓｌｅｗ）を計算する。Ｅ（Ｔｓｌｅｗ）≧Ｅの場合、ｓｔｅｐ３に進み式（１１）を用いてＥ（ｔ０＋Δｔ１）を計算する。そして、Ｅ（ｔ０＋Δｔ１）＝ＥとなるまでΔｔ１を修正しながら計算し、Ｅ（ｔ０＋Δｔ１）＝ＥとなるΔｔ１の値を決定する。Ｅ（Ｔｓｌｅｗ）≧Ｅの場合は、パターン２に対応しており、Ｅ（ｔ）は図７に示した波形となるのでΔｔ１を決定することでＥ（ｔ）の波形を決定することができる。
【０１２０】
Ｅ（Ｔｓｌｅｗ）＜Ｅの場合はｓｔｅｐ４に進み、まず式（１６）に従って平均バーＶｇｓを計算する。次に、平均バーＶｇｓを用いて式（１７）に従って補正係数ｘを計算する。そして電流パラメータＩ０、Ｉ１をｘＩ０、ｘＩ１として電流パラメータの補正を行い、式（１８）に従ってＶ１を計算する。
【０１２１】
次にｓｔｅｐ５に進み、式（２１）が成り立つまで、Δｔ２の値を修正して計算を繰り返す。そうして、式（２１）を満たすΔｔ２を決定する。
【０１２２】
Ｅ（Ｔｓｌｅｗ）＜Ｅは、パターン１に相当しており、Ｖ１、Δｔ１、Δｔ２を決定することで、Ｅ（ｔ）の波形を決定することができる。
【０１２３】
次にｓｔｅｐ６では、以上のｓｔｅｐで求めたＶ１、Δｔ１、Δｔ２を用いてＥ（ｔ）の波形形状を決定する。
【０１２４】
このようにしてＥ（ｔ）の波形形状を決定すると、マクロセルの出力端電位波形（ｖ２（ｔ））を知ることができる。ｓｔｅｐ７では、Ｅ（ｔ）から、出力電位波形ｖ２（ｔ）を計算する。また、配線部分がＲＣネットワークである場合は、セル出力端にｖ２（ｔ）を加えた場合の配線終端の時間応答を解析することで配線終端の電位波形も得ることができる。そしてｓｔｅｐ８では、各ノードの電位波形から、遅延値、次段への入力波形情報を算出する。
【０１２５】
図１３から図１６は、本実施の形態に係る遅延時間計算方法を用いて計算した出力波形（モデル）とＳＰＩＣＥシミュレーションによる出力波形の結果を示す。図１３，１４は出力負荷が小さい（Ｃ＝０．０５ｐＦ）場合を示し、図１５，１６は出力負荷が大きい場合（Ｃ＝２．００ｐＦ）を示している。また、それぞれの出力負荷に対して、波形形状が直線的に変化する場合（図１３，１５）と指数関数的に変化する場合（図１４，１６）について計算した。
【０１２６】
図１３から図１６に示すように、何れの条件であっても、モデルとＳＰＩＣＥは同様の結果を与えている。ここで図１３，１４に示されるように、出力負荷が小さい場合には、出力波形の形状は入力波形の形状にあまり依存せず、略同様な形状を与えている。これは、入力波形がＶｄｄとなる前に出力負荷の充電が完了するため、入力波形を直線で近似するのがよい近似となっているからである。
【０１２７】
そして図１５，１６では、出力負荷が大きいため、入力波形がＶｄｄとなるまでの期間にわたる形状が出力波形に影響し、その結果、出力波形は図１５と図１６で異なる結果を与えている。
【０１２８】
なお、図１５では、モデルの出力波形とＳＰＩＣＥの出力波形が殆ど同じ形状になり、重なっている。
【０１２９】
以上から本実施の形態に係る遅延時間計算方法は、入力波形の波形形状を表す入力波形情報を取り入れることで出力波形を精度よく計算していることがわかる。出力波形が精度よく計算できるので、入力波形と出力波形の時間差を例えば５０％Ｖｄｄで計測することにより、誤差の少ない遅延時間値を得ることができる。
【０１３０】
本発明は、負荷条件に応じてＴｓｌｅｗのみで決まる場合と、Ｔｓｌｅｗのみでは決まらない場合を的確に分類し、後者については、ゲート電位が変化しないとみなされる飽和領域区間の平均ゲート電圧であるバーＶｇｓの相違からパラメータ波形を補正するように構成した。その結果、入力Ｔｓｌｅｗ値が同じであるにも関わらず遅延値が異なる場合についても精度よく遅延計算を行うことができる。
【０１３１】
また、補正係数ｘを算出して、パラメータの補正を行う手法を用いているので、従来の遅延時間計算方法と比べても殆ど計算時間の増大がない。
【０１３２】
本実施の形態に係る遅延時間計算方法は、電圧源Ｅ（ｔ）の波形を決定することでトランジスタの動作を表現する電圧源モデルとなっている。この遅延時間計算方法は、他の遅延時間計算方法、例えば電流源モデルで記述される遅延時間計算方法にも適用することができる。電流源モデルでは、電圧源Ｅ（ｔ）の波形を決定する代わりに、図５に示した電流波形を直接出力するように電流源を設定する。このようなモデルでも、同等の考え方（バーｖｇｓを計算してパラメータ補正を行う）で飽和電流（領域２での電流）をより正確に計算でき、このような飽和電流を用いることでより精度の高い計算を実現することができる。
【図面の簡単な説明】
【０１３３】
【図１】実施の形態１に係る回路接続情報の抽出図である。
【図２】回路構成情報の作成図である。
【図３】負荷モデルの生成図である。
【図４】インバータの構成図である。
【図５】電流波形のパターン図である。
【図６】時間に対する電源の変化を示す特性図である。
【図７】時間に対する電源の変化を示す特性図である。
【図８】Ｅ（ｔ）モデルのＩｄｓ対Ｖｄｓ特性図である。
【図９】ゲート電圧と飽和電流の関係を示す特性図である。
【図１０】実際の入力波形の一例とその近似直線を示す図である。
【図１１】動作点説明図である。
【図１２】本実施の形態に係る遅延時間計算方法を説明するためのフローチャートである。
【図１３】本実施の形態に係る遅延時間計算方法による出力波形とＳＰＩＣＥによる出力波形を示す図である。
【図１４】本実施の形態に係る遅延時間計算方法による出力波形とＳＰＩＣＥによる出力波形を示す図である。
【図１５】本実施の形態に係る遅延時間計算方法による出力波形とＳＰＩＣＥによる出力波形を示す図である。
【図１６】本実施の形態に係る遅延時間計算方法による出力波形とＳＰＩＣＥによる出力波形を示す図である。
【符号の説明】
【０１３４】
１，２  インバータ、７  ＲＣ分布定数回路、Ｃｇ  入力ピン容量。
【図１】
2006031247.tif 000026
【図２】
2006031247.tif 000027
【図３】
2006031247.tif 000028
【図４】
2006031247.tif 000029
【図５】
2006031247.tif 000030
【図６】
2006031247.tif 000031
【図７】
2006031247.tif 000032
【図８】
2006031247.tif 000033
【図９】
2006031247.tif 000034
【図１０】
2006031247.tif 000035
【図１１】
2006031247.tif 000036
【図１２】
2006031247.tif 000037
【図１３】
2006031247.tif 000038
【図１４】
2006031247.tif 000039
【図１５】
2006031247.tif 000040
【図１６】
2006031247.tif 000041