(57)【特許請求の範囲】
【請求項１】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータに、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を抽出する抽出工程と、
前記抽出工程により抽出された前記対象セルの各出力電圧値の経過時間から、前記対象セルの動作領域が非飽和領域となる出力電圧値に対応する経過時間を補正対象として決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行させることを特徴とする設計支援プログラム。
【請求項２】
前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの次段セルの前記入力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする請求項１に記載の設計支援プログラム。
【請求項４】
前記コンピュータに、
前記セルの動作領域が非飽和領域となる出力電圧値以上である前記セルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された各経過時間での前記出力電圧値であって、前記出力電流値と前記セルの内部抵抗に基づく前記出力電圧値を前記セルごとに前記記憶装置へ格納する格納工程と、
を実行させ、
前記抽出工程では、前記格納工程によって前記セルごとに格納された前記各経過時間での前記出力電圧値を含む前記記憶装置から、前記対象セルに関する前記各経過時間での出力電圧値を抽出することを特徴とする請求項１〜３のいずれか一つに記載の設計支援プログラム。
【請求項５】
前記コンピュータに、
前記セルの動作領域が非飽和領域となる出力電圧値未満である前記セルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された各経過時間での前記出力電圧値であって、前記出力電流値と前記セルの内部抵抗に基づく前記出力電圧値を前記セルごとに前記記憶装置へ格納する格納工程と、
を実行させ、
前記抽出工程では、前記格納工程によって前記セルごとに格納された前記各経過時間での前記出力電圧値を含む前記記憶装置から、前記対象セルに関する前記各経過時間での出力電圧値を抽出することを特徴とする請求項１〜４のいずれか一つに記載の設計支援プログラム。
【請求項６】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出手段と、
前記抽出手段により抽出された各出力電圧値の経過時間から、前記対象セルの動作領域が非飽和領域となる出力電圧値に対応する経過時間を補正対象として決定する決定手段と、
前記決定手段により決定された経過時間に前記対象セルの出力側の時定数を加算する補正手段と、
前記補正手段による補正後の経過時間ごとの出力電圧値と前記決定手段により決定されなかった経過時間ごとの出力電圧値とを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項７】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータが、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出工程と、
前記抽出工程により抽出された各出力電圧値の経過時間から、前記対象セルの動作領域が非飽和領域となる出力電圧値に対応する経過時間を補正対象として決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
従来、アナログ回路の設計においては、ＳＰＩＣＥなどのシミュレータを用いてアナログ特性をシミュレーションする技術が知られている。
【０００３】
一方、ディジタル回路の設計においてもＳＰＩＣＥなどのシミュレータを用いてシミュレーションすることで正確な遅延時間を得ることができる（たとえば、下記特許文献１参照。）（以下、「従来技術１」と称する。）。しかしながら、従来技術１のように設計対象回路内のすべてのセルについてＳＰＩＣＥなどを用いておこなうには、膨大な時間がかかる問題点があった。
【０００４】
そこで、設計で用いるセルごとに遅延時間および出力スルー（セルが出力する出力電圧の立ち上がり（または立ち上がり）に要する時間）をＳＰＩＣＥなどのシミュレータを用いて特定し、ライブラリとして記憶する技術が知られている。そして、設計対象回路内の各セルの遅延時間は、該ライブラリを参照することで算出していた（たとえば、下記特許文献２参照。）（以下、「従来技術２」と称する。）。
【０００５】
また、設計対象回路内のパスの遅延時間は、パスを構成するセルの遅延時間を加算することで計算されることが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００４−５０１４３８号公報
【特許文献２】特開平１０−１９８７２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術２では、各セルの出力側の負荷抵抗（たとえば、配線抵抗）および負荷容量（配線容量や次段セルの入力容量）を集中定数容量に置き換える。そして、従来技術２では、入力電圧の時間的変化を回路モデルへ与えてＳＰＩＣＥにより出力電圧の時間的変化を算出する。
【０００８】
設計対象回路のレイアウトによってセルごとに負荷抵抗や負荷容量の値が異なるため、従来技術１を用いた場合と比較して遅延時間に誤差が発生する問題点があった。さらに、集中定数容量の値のみで出力電圧値を算出しているため、Ｒ（負荷抵抗）Ｃ（負荷容量）による過渡応答が直線近似されてしまい、従来技術１を用いた場合と比較して遅延時間に誤差が発生する問題点があった。また、上述のように従来技術１を用いると、膨大な時間がかかる問題点があった。
【０００９】
特に近年の微細化されたプロセスにおいて従来技術２を用いると、低電圧化、高集積化、および高速化に伴い従来技術２で得られる遅延時間と従来技術１で得られる遅延時間との誤差が顕著に表れるようになる。すなわち、近年では遅延時間の誤差の影響を無視できない問題点があった。
【課題を解決するための手段】
【００１０】
本発明の一観点によれば、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出し、抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定し、決定された経過時間に前記対象セルの出力側の時定数を加算し、補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する設計支援プログラム、設計支援装置、および設計支援方法が提供される。
【発明の効果】
【００１１】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、ＲＣで鈍る出力電圧を再現でき、遅延誤差を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の一例を示す説明図である。
【図２】設計支援装置のハードウェアを示すブロック図である。
【図３】実施の形態１にかかる設計支援装置の機能ブロック図である。
【図４】ＰＴＶ条件の一例を示す説明図である。
【図５】セルの一例を示す説明図である。
【図６】Ｖｉｎの一例を示す説明図である。
【図７】トランジスタ特性のテーブルを示す説明図である。
【図８】Ｖｄｓの一例を示す説明図である。
【図９】ＶｄｓごとのＩｄｓの一例を示す説明図である。
【図１０】経過時間ごとのＩｄｓを示す説明図である。
【図１１】ｒＤＳの算出結果を示す説明図である。
【図１２】Ｖｉｎの他の例を示す説明図である。
【図１３】入力スルーの反映例を示す説明図である。
【図１４】実施の形態１にかかる設計支援装置３００による設計支援処理手順の一例を示すフローチャート（その１）である。
【図１５】実施の形態１にかかる設計支援装置３００による設計支援処理手順の一例を示すフローチャート（その２）である。
【図１６】実施の形態２にかかる設計支援装置の機能ブロック図である。
【図１７】電流テーブル群の一例を示す説明図である。
【図１８】内部抵抗テーブル群の一例を示す説明図である。
【図１９】設計対象回路の回路情報の一例を示す説明図である。
【図２０】配線テーブルの一例を示す説明図である。
【図２１】セルの入力容量の一例を示す説明図である。
【図２２】制約テーブルの一例を示す説明図である。
【図２３】閾値テーブルの一例を示す説明図である。
【図２４】出力電圧の算出例を示す説明図である。
【図２５】補正対象の経過時間の決定例を示す説明図である。
【図２６】補正例を示す説明図である。
【図２７】補完結果を示す説明図である。
【図２８】遅延時間の算出例を示す説明図である。
【図２９】出力スルーの算出例を示す説明図である。
【図３０】例２における遅延時間の算出を示す説明図である。
【図３１】実施の形態２にかかる設計支援装置１６００による設計支援処理手順の一例を示すフローチャート（その１）である。
【図３２】実施の形態２にかかる設計支援装置１６００による設計支援処理手順の一例を示すフローチャート（その２）である。
【図３３】実施の形態２にかかる設計支援装置１６００による設計支援処理手順の一例を示すフローチャート（その３）である。
【図３４】実施の形態２にかかる設計支援装置１６００による設計支援処理手順の一例を示すフローチャート（その４）である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明による設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【００１４】
図１は、本発明の一例を示す説明図である。電流テーブル群は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに保持し、設計支援装置がアクセス可能な記憶装置に記憶されている。セルの出力電圧値は、該セルの出力側の負荷抵抗の値や負荷容量の値を考慮せずに算出された値である。
【００１５】
まず、設計支援装置は、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。つぎに、設計支援装置は、Ｖｄｓ（出力電圧）＜Ｖｇｓ（入力電圧）−Ｖｔｈ（ゲート閾値電圧）であるＶｄｓの経過時間を補正対象の経過時間に決定する。本実施の形態では、ＶｉｎはＶｇｓと同一として説明する。
【００１６】
そして、設計支援装置は、補正対象の経過時間に対象セルの出力側の時定数を加算することにより、該経過時間を補正する。時定数は対象セルの出力側の負荷抵抗の値および負荷容量の値に基づいて算出される値である。つぎに、設計支援装置は、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【００１７】
まず、実施の形態１では、設計対象回路で用いるセルの電流テーブルの作成例を説明する。実施の形態２では、実施の形態１で作成された電流テーブルを用いて設計対象回路の回路情報から選択された対象セルの遅延時間の算出例について説明する。
【００１８】
（実施の形態１）
（設計支援装置のハードウェア）
図２は、設計支援装置のハードウェアを示すブロック図である。図２において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を有している。さらに、設計支援装置は、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、を有している。さらに、設計支援装置は、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を有している。また、各部はバス２００によってそれぞれ接続されている。
【００１９】
ここで、ＣＰＵ２０１は、設計支援装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２０】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２１】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。該ディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２２】
Ｉ／Ｆ２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００２３】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００２４】
スキャナ２１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２５】
（実施の形態１にかかる設計支援装置の機能ブロック図）
図３は、実施の形態１にかかる設計支援装置の機能ブロック図である。設計支援装置３００は、取得部３０１と、変化時間算出部３０２と、経過時間算出部３０３と、格納部３０４と、を有している。図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶された各機能（取得部３０１〜格納部３０４）を有する設計支援プログラムをＣＰＵ２０１がロードする。そして、該設計支援プログラムにコーディングされている処理をＣＰＵ２０１が実行することにより、該各機能が実現される。
【００２６】
取得部３０１は、特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値でのセルの出力電流値を記憶する記憶装置から各出力電圧値での出力電流値を取得する。特定電圧値とは、具体的には、たとえば、Ｖｇｓ（Ｖｉｎ）−Ｖｔｈである。
【００２７】
変化時間算出部３０２は、セル内のトランジスタの接合容量の値と、セルのゲート閾値電圧の値（Ｖｔｈ）と、取得部３０１により取得された出力電流値とに基づいて、複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。
【００２８】
経過時間算出部３０３は、変化時間算出部３０２により算出された変化時間に基づいて、セルへの入力電圧の変化開始からの経過時間を出力電流値ごとに算出する。
【００２９】
格納部３０４は、経過時間算出部３０３により算出された各出力電流値の経過時間を記憶装置へ格納する。
【００３０】
また、取得部３０１は、特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値でのセルの出力電流値を記憶する記憶装置から各出力電圧値での出力電流値を取得する。特定電圧値とは、具体的には、たとえば、Ｖｇｓ（Ｖｉｎ）−Ｖｔｈである。
【００３１】
変化時間算出部３０２は、セル内のトランジスタの接合容量の値と、セルへの入力電圧の値と、取得部３０１により取得された出力電流値とに基づいて、複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。
【００３２】
経過時間算出部３０３は、変化時間算出部３０２により算出された変化時間に基づいて、入力電圧の変化開始からの経過時間を出力電流値ごとに算出する。
【００３３】
格納部３０４は、経過時間算出部３０３により算出された各出力電流値の経過時間を記憶装置へ格納する。
【００３４】
以上を踏まえて、インバータの電流テーブルの作成を例に挙げて詳細に説明する。
【００３５】
（ＰＴＶ条件）
図４は、ＰＴＶ条件の一例を示す説明図である。まず、ＰＴＶとは、Ｐｒｏｃｅｓｓ（プロセス）と、Ｔｅｍｐｅｒａｔｕｒｅ（温度）と、Ｖｏｌｔａｇｅ（電圧）を示している。ＰＴＶ条件テーブル４００では、ＰＴＶ条件の項目４０１とプロセスの項目４０２と温度の項目４０３と電圧の項目４０４とを有している。ＰＴＶ条件の項目４０１には、ＴＹＰ条件であるか、ＦＡＳＴ条件であるか、ＳＬＯＷ条件であるかが保持されている。
【００３６】
各条件については下記である。
・ＴＹＰ条件：各セルの動作が通常の速度である条件
・ＦＡＳＴ条件：各セルの動作が最も速くなる条件
・ＳＬＯＷ条件：各セルの動作が最も遅くなる条件
【００３７】
まず、ＴＹＰ条件では、プロセスの項目４０２がＴＹＰ条件（標準条件）であり、温度の項目４０３が２５℃（常温）であり、かつ電圧の項目４０４が１．８［Ｖ］である。つぎに、ＦＡＳＴ条件では、プロセスの項目４０２がＦＡＳＴ条件（速い条件）であり、温度の項目４０３が−４０［℃］（低温）であり、かつ電圧の項目４０４が２．０Ｖである。そして、ＳＬＯＷ条件では、プロセスの項目４０２がＳＬＯＷ条件（遅い条件）であり、温度の項目４０３が１２０［℃］（高温）であり、かつ電圧の項目４０４が１．１［Ｖ］である。なお、ＰＴＶ条件テーブル４００は、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。なお、ＰＴＶ条件テーブル４００内の数値やＰＴＶ条件は一例である。
【００３８】
（セルの例）
図５は、セルの一例を示す説明図である。実施の形態１では、インバータのセルを例に挙げて説明する。図５では、セル名がＩＮＶＥＲＴＥＲ１であるインバータのセルをトランジスタ記述で示している。ＩＮＶＥＲＴＥＲ１はＰＭＯＳ（Ｐ  Ｃｈａｎｎｅｌ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）とＮＭＯＳ（Ｎ  Ｃｈａｎｎｅｌ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）とを有している。ＩＮ端子に入力される入力電圧（Ｖｉｎ）とＯＵＴ端子から出力される出力電圧（Ｖｄｓ）との時間差が遅延時間である。図５で示すＣはＩＮＶＥＲＴＥＲ１内の接合容量（寄生容量）であって、ＩＮＶＥＲＴＥＲ１の出力側の負荷容量とは異なる容量である。
【００３９】
ここで、実施の形態１と実施の形態２で用いるＶｄｓとＶｄｓ＿ｎｏｎＲＣとＶｄｓ＿ＲＣとについて説明する。ＶｄｓとＶｄｓ＿ｎｏｎＲＣとＶｄｓ＿ＲＣとは、いずれもＯＵＴ端子から出力される出力電圧を示している。実施の形態１で用いるＶｄｓは、利用者が設定した出力電圧である。実施の形態２で用いるＶｄｓ＿ｎｏｎＲＣは、実施の形態１で作成する電流テーブルから算出する出力電圧である。実施の形態２で用いるＶｄｓ＿ＲＣはＶｄｓ＿ｎｏｎＲＣを負荷抵抗および負荷容量に基づいて補正することによって得られる出力電圧である。
【００４０】
実施の形態１では、ＩＮ端子に立ち上がり変化の入力を与えた場合を例に挙げて説明する。立ち上がり遅延時間と立ち下がり遅延時間には対称性があるため、ＩＮ端子に立ち下がり変化の入力を与えた場合の例については説明を省略する。また、実施の形態１では、ＩＮ端子に立ち上がり変化の入力を与えた場合における、ＯＵＴ端子の出力電流（Ｉｄｓ）を算出し、算出した結果をテーブル化する。
【００４１】
図６は、Ｖｉｎの一例を示す説明図である。実施の形態１，２では、Ｖｉｎの変化開始をｔ＝０としている。実施の形態１では、該変化開始からの経過時間ごとにＩｄｓを求める。また、ｔ＝０以前にＶｉｎ＝０．０［Ｖ］であると、Ｖｄｓ＝Ｖｄｄとなり、ｔ＝０でＶｉｎの入力が立ち上がるとＰＭＯＳは直ちにカットオフする。よって、ここでは、ＮＭＯＳのみに着目して説明する。
【００４２】
ここで、周知のようにＭＯＳの動作領域である飽和領域と非飽和領域とは下記で分類される。
・飽和領域：Ｖｄｓ≧Ｖｇｓ−Ｖｔｈ
・非飽和領域（線形領域）：Ｖｄｓ＜Ｖｇｓ−Ｖｔｈ
【００４３】
そして、ＭＯＳの動作領域が飽和領域の場合のＭＯＳの出力電流（Ｉｄｓ）の算出式（１）と、ＭＯＳの動作領域が非飽和領域の場合のＭＯＳの出力電流（Ｉｄｓ）の算出式（２）と、を下記に示す。
【００４４】
【数１】
0005531807.tif 000002
【００４５】
上記式（１）や上記式（２）はＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。また、各パラメータは以下の通りである。
・μ［ｃｍ＾２／（Ｖ×ｓ）］：キャリア移動度
・ε０（Ｅｐｓｉｌｏｎ０）［Ｆ／ｃｍ］：真空誘電率
・εｏｘ（Ｅｐｓｉｌｏｎ  ｏｘ）［Ｆ／ｃｍ］：比誘電率
・Ｔｏｘ［ｍ］：酸化膜圧
・Ｃｏｘ［Ｆ］：ゲート容量
・Ｗ［ｍ］：ゲート幅
・Ｌ［ｍ］：ゲート長
・Ｃ［Ｆ］：接合容量（寄生容量）
【００４６】
（トランジスタ特性のテーブル）
図７は、トランジスタ特性のテーブルを示す説明図である。トランジスタ特性のテーブル７００は、テーブル７０１とテーブル７１２とを有している。なお、トランジスタ特性のテーブル７００は、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【００４７】
テーブル７０１は、ＩＮＶＥＲＴＥＲ１内のＭＯＳごとの各パラメータが格納されている。テーブル７０１は、トランジスタの項目７０２と、μの項目７０３と、Ｃｏｘの項目７０４と、ε０の項目７０５と、εｏｘの項目７０６と、Ｔｏｘの項目７０７と、Ｗ／Ｌの項目７０８と、Ｗの項目７０９と、Ｌの項目７１０と、Ｃの項目７１１と、を有している。
【００４８】
トランジスタの項目７０２にはＩＮＶＥＲＴＥＲ１内のＭＯＳの種類が保持されている。μの項目７０３にはμが保持され、Ｃｏｘの項目７０４にはＣｏｘが保持され、ε０の項目７０５にはε０が保持され、εｏｘの項目７０６にはεｏｘが保持されている。Ｔｏｘの項目７０７にはＴｏｘが保持され、Ｗの項目７０９にはＷが保持され、Ｌの項目７１０にはＬが保持され、Ｃの項目７１１にはＣが保持されている。
【００４９】
さらに、Ｗ／Ｌの項目７０８にはＷの項目７０９に保持されているＷとＬの項目７１０に保持されているＬとの比率が保持されている。なお、たとえば、Ｃｏｘの項目７０４に保持されている３５．４２Ｅ−０６は、３５．４２×１０＾（−６）を示している。「＾」は乗数である。
【００５０】
テーブル７１２はトランジスタの項目７１３とＶｔｈの項目７１４とを有している。トランジスタの項目７１３にはＩＮＶＥＲＴＥＲ１内のＭＯＳの種類が保持されている。Ｖｔｈの項目７１４には、ＩＮＶＥＲＴＥＲ１内の各トランジスタのＶｔｈ（ゲート閾値電圧）がＰＴＶ条件ごとに格納されている。
【００５１】
そして、具体的には、たとえば、ＣＰＵ２０１が、ＰＴＶ条件テーブル４００から特定のＰＴＶ条件を選択する。または、たとえば、ＣＰＵ２０１が、ＰＴＶ条件テーブル４００からＰＴＶ条件を順に選択する。実施の形態１では、ＴＹＰ条件を例に挙げて説明する。すなわち、Ｖｄｄが１．８［Ｖ］である。
【００５２】
（Ｖｄｓ）
図８は、Ｖｄｓの一例を示す説明図である。テーブル８００はＶｄｓの項目８０１を有し、Ｖｄｓの項目８０１にはＶｄｓが保持されている。実施の形態１では図８のようにＶｄｓを１．８［Ｖ］から０．０［Ｖ］まで０．１［Ｖ］ステップで変化させ、上記式（１）または上記式（２）を用いてＩｄｓを算出する。Ｖｄｓが１．８〜１．５［Ｖ］の場合、ＩＮＶＥＲＴＥＲ１の動作領域は飽和領域であるため、上記式（１）でＩｄｓが算出される。Ｖｄｓが１．４〜０．０［Ｖ］の場合、ＩＮＶＥＲＴＥＲ１の動作領域は非飽和領域であるため、上記式（２）でＩｄｓが算出される。
【００５３】
＜Ｉｄｓの算出＞
具体的には、たとえば、ＣＰＵ２０１が、上記式（１）を記憶装置から取得し、式（１）内の各パラメータをトランジスタ特性のテーブル７００から取得し、上記式（１）に設定する。そして、たとえば、ＣＰＵ２０１が、ＮＭＯＳの動作領域が飽和領域におけるＩｄｓを算出する。すなわち、Ｖｄｓが１．８〜１．５［Ｖ］の場合のＩｄｓが算出される。飽和領域においてはＶｄｓに関係なくＩｄｓは同一電流値である。なお、算出結果は、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【００５４】
そして、具体的には、たとえば、ＣＰＵ２０１が、上記式（２）を記憶装置から取得し、上記式（２）内のパラメータをトランジスタ特性のテーブル７００から取得し、上記式（２）に設定する。たとえば、ＣＰＵ２０１が、テーブル８００からステップ順にＶｄｓ（１．４〜０．０［Ｖ］）を取得して、上記式（２）に設定し、非飽和領域におけるＩｄｓをＶｄｓ（１．４〜０．０［Ｖ］）ごとに算出する。なお、算出結果は、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【００５５】
＜経過時間ごとのＩｄｓ＞
図９は、ＶｄｓごとのＩｄｓの一例を示す説明図である。テーブル９００は、ＶｄｓごとのＩｄｓを示し、Ｖｄｓの項目９０１とＩｄｓの項目９０２とを有している。Ｖｄｓの項目９０１にはＶｄｓが保持され、Ｉｄｓの項目９０２には該ＶｄｓのＩｄｓが保持されている。
【００５６】
グラフ９０３では、横軸がＶｄｓ［Ｖ］であり、縦軸がＩｄｓ［Ａ］である。グラフ９０３では、Ｖｄｓが高ければ電流値が高く、Ｖｄｓが低ければ電流値が低い。ここで、たとえば、Ｖｄｓ＝Ｖｇｓを地点Ａとし、Ｖｄｓ＝Ｖｇｓ−Ｖｔｈを地点Ｂとし、Ｖｇｓ／２を地点Ｃとし、Ｖｄｓ＝０を地点Ｄとする。
【００５７】
実施の形態１では、ＩＮＶＥＲＴＥＲ１の出力電流の変化が地点Ａから地点Ｂになるまでにかかる時間をｔＡＢとし、該変化が地点Ｂから地点Ｃになるまでにかかる時間をｔＢＣとする。該変化が地点Ｃから地点Ｄになるまでにかかる時間をｔＣＤとする。ｔＡＢは上記式（１）より下記式（３）を用いることにより算出される。
【００５８】
【数２】
0005531807.tif 000003
【００５９】
つぎに、ｔＢＣについて説明する。電流の時間積分は電荷量であることから、上記非飽和領域におけるＩｄｓの算出式から下記式（４）が得られる。
【００６０】
【数３】
0005531807.tif 000004
【００６１】
上記式（４）から上記式（５）が導かれるため、上記式（５）の左辺を０からｔＢＣまで、右辺をＶｇｓ−Ｖｔｈから１／２×Ｖｇｓまで積分すると、下記式（６）が得られる。
【００６２】
【数４】
0005531807.tif 000005
【００６３】
また、式（３）と式（６）とはＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【００６４】
まず、具体的には、たとえば、ＣＰＵ２０１が、変化時間算出部３０２により、上記式（３）を記憶装置から取得する。そして、たとえば、ＣＰＵが、取得した式（３）内の各パラメータをトランジスタ特性のテーブル７００から取得して、上記式（３）に設定し、ｔＡＢを算出する。つぎに、具体的には、たとえば、ＣＰＵ２０１が、変化時間算出部３０２により、上記式（６）を記憶装置から取得する。そして、たとえば、ＣＰＵが、取得した式（６）内の各パラメータをトランジスタ特性のテーブル７００から取得し、上記式（６）に設定し、ｔＢＣを算出する。
【００６５】
算出結果を下記に示す。
・ｔＡＢ：３．２７９５３５５１１１４６５８４Ｅ−１２
・ｔＢＣ：５．１７１５４７８２５１８２４８Ｅ−１２
【００６６】
つぎに、たとえば、ＣＰＵ２０１が算出したｔＡＢとｔＢＣとに基づいてＶｄｓごとのＩｄｓを経過時間ごとのＩｄｓに変換する。
【００６７】
図１０は、経過時間ごとのＩｄｓを示す説明図である。ここで、Ｖｉｎの変化開始からの時間を経過時間とする。ここでは、ｔＡＢは１．８〜１．５［Ｖ］までに出力電流値が変化する変化時間であるため、ＣＰＵ２０１が、たとえば、経過時間算出部３０３により、各Ｖｄｓ（または各Ｉｄｓ）での経過時間を下記のように算出する。
【００６８】
・Ｖｄｓが１．８［Ｖ］時の経過時間［ｓｅｃ］：０
・Ｖｄｓが１．７［Ｖ］時の経過時間［ｓｅｃ］：ｔＡＢ／３
・Ｖｄｓが１．６［Ｖ］時の経過時間［ｓｅｃ］：ｔＡＢ／３＋（該１．７［Ｖ］時の経過時間）
・Ｖｄｓが１．５［Ｖ］時の経過時間［ｓｅｃ］：ｔＡＢ／３＋（該１．６［Ｖ］時の経過時間）
【００６９】
ｔＢＣは１．４［Ｖ］〜０．９［Ｖ］までに出力電流値が変化する変化時間であるため、ＣＰＵ２０１が、たとえば、各Ｖｄｓ（または各Ｉｄｓ）での経過時間を下記のように算出する。
【００７０】
・Ｖｄｓが１．４［Ｖ］時の経過時間［ｓｅｃ］：ｔＢＣ／６＋（該１．５［Ｖ］時の経過時間）
・Ｖｄｓが１．３［Ｖ］時の経過時間［ｓｅｃ］：ｔＢＣ／６＋（該１．４［Ｖ］時の経過時間）
・Ｖｄｓが１．２［Ｖ］時の経過時間［ｓｅｃ］：ｔＢＣ／６＋（該１．３［Ｖ］時の経過時間）
・Ｖｄｓが１．１［Ｖ］時の経過時間［ｓｅｃ］：ｔＢＣ／６＋（該１．２［Ｖ］時の経過時間）
・Ｖｄｓが１．０［Ｖ］時の経過時間［ｓｅｃ］：ｔＢＣ／６＋（該１．１［Ｖ］時の経過時間）
・Ｖｄｓが０．９［Ｖ］時の経過時間［ｓｅｃ］：ｔＢＣ／６＋（該１．０［Ｖ］時の経過時間）
【００７１】
経過時間ごとのＩｄｓの例はテーブル１０００である。テーブル１０００は経過時間の項目１００１と、Ｉｄｓの項目１００２を有している。テーブル１０００では、１．８［Ｖ］〜０．９［Ｖ］時のＩｄｓごとに経過時間が保持されている。
【００７２】
また、分解能（ＴＩＭＥＳＣＡＬＥ）を１．０Ｅ−１２［ｓｅｃ］とすると、各Ｉｄｓの経過時間の例は電流テーブル１００３である。電流テーブル１００３は、経過時間の項目１００４と、Ｉｄｓの項目１００５と、Ｖｉｎの項目１００６と、を有している。Ｖｉｎの項目１００６については図１０では省略している。
【００７３】
遅延時間計算時の入力閾値や出力閾値はＶｄｄ×５０［％］であり、地点Ｃから地点ＤについてはＶｄｓ（Ｖｄｄ＝Ｖｄｓとした場合）×５０［％］以下である。そこで、電流テーブル１００３では、地点Ｃから地点Ｄについてはテーブル９００からＶｄｓのステップに沿ってＴＩＭＥＳＣＡＬＥが割り当てられている。これに限らず、地点Ｃから地点Ｄまでの動作領域は非飽和領域であるため、たとえば、地点Ｂから地点Ｃまでを算出したのと同様に算出式を利用者があらかじめ作成し、ｔＣＤを算出してもよい。さらに、ＣＰＵ２０１が、格納部３０４により、電流テーブル１００３をＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に格納する。
【００７４】
＜ｒＤＳの算出＞
つぎに、ＩＮＶＥＲＴＥＲ１内のＮＭＯＳの内部抵抗（ｒＤＳ）の算出について説明する。具体的には、たとえば、ＣＰＵ２０１は、ＶｄｓをＩｄｓで割ることにより、ｒＤＳを算出する。
【００７５】
図１１は、ｒＤＳの算出結果を示す説明図である。たとえば、ＣＰＵ２０１が、Ｖｄｓごとに該Ｖｄｓを算出したＩｄｓを割ることにより、ＶｄｓごとのｒＤＳを算出する。そして、ここでは、Ｖｄｓ＝１．８［Ｖ］の場合のｒＤＳをＩＮＶＥＲＴＥＲ１のＮＭＯＳの内部抵抗の値に決定する。決定されたｒＤＳは、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【００７６】
＜ｔｒとｔｆ＞
つぎに、ｔｒとｔｆとの影響を考慮した電流テーブルの作成について説明する。ここで、ｔｒとは立ち上がり入力電圧（Ｖｉｎ）が立ち上がるまでの時間を示し、ｔｆとは立ち下がり入力電圧（Ｖｉｎ）が立ち下がるまでの時間を示す。
【００７７】
図１２は、Ｖｉｎの他の例を示す説明図である。グラフ１２００では、変化１と変化２との２つのＶｉｎの変化例を示している。変化１は、図６で示したＶｉｎと同様に遅延なしで立ち上がったＶｉｎである。すなわち、変化１の場合、ｔｒは０である。一方、変化２は０．０［Ｖ］からＶｄｄ［Ｖ］までに１０Ｅ−１２［ｓｅｃ］の時間がかかる。すなわち、変化２の場合、ｔｒは１０Ｅ−１２［ｓｅｃ］である。該ｔｒを電流テーブル１００３に反映させると、下記の様になる。
【００７８】
図１３は、入力スルーの反映例を示す説明図である。ここでは、たとえば、入力スルー依存の遅延時間をＶｔｈまでのｔｒとする。すなわち、１０Ｅ−１２／１．８×０．３６（ｔｒ／Ｖｄｄ×Ｖｔｈ）＝２．０Ｅ−１２［ｓｅｃ］が入力スルー依存の遅延時間である。具体的には、たとえば、ＣＰＵ２０１が、電流テーブル１００３へ２．０Ｅ−１２の遅延時間を加えることにより電流テーブル１３００を作成することができる。
【００７９】
電流テーブル１３００は、経過時間の項目１３０１と、Ｉｄｓの項目１３０２と、Ｖｉｎの項目１３０３と、を有している。経過時間の項目１３０１は経過時間を保持し、Ｉｄｓの項目１３０２はＩｄｓを保持し、Ｖｉｎの項目１３０３はＶｉｎを保持している。また、Ｖｉｎの項目１３０３については、経過時間が１０Ｅ−１２［ｓｅｃ］に１．８［Ｖ］となるように値が設定されている。
【００８０】
つぎに、たとえば、ＣＰＵ２０１が、電流テーブル１００３と電流テーブル１３００とを出力する。出力形式としては、たとえば、ディスプレイ２０８への表示、プリンタ２１３への印刷出力、Ｉ／Ｆ２０９による外部装置への送信がある。また、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶することとしてもよい。
【００８１】
（実施の形態１にかかる設計支援装置３００の設計支援処理手順）
図１４および図１５は、実施の形態１にかかる設計支援装置３００による設計支援処理手順の一例を示すフローチャートである。まず、ＣＰＵ２０１が、トランジスタの各パラメータを取得する（ステップＳ１４０１）。そして、ＣＰＵ２０１が、複数のＰＴＶ条件から特定のＰＴＶ条件を選択し（ステップＳ１４０２）、選択したＰＴＶ条件のＶｔｈを取得する（ステップＳ１４０３）。
【００８２】
そして、ＣＰＵ２０１が、選択したＰＴＶ条件の複数のＶｄｓを取得し（ステップＳ１４０４）、飽和領域に関するＩｄｓの算出式（１）を取得する（ステップＳ１４０５）。ＣＰＵ２０１が、式（１）の各変数に取得した各パラメータを代入し、Ｉｄｓを複数のＶｄｓのうち特定電圧値以上のＶｄｓごとに算出する（ステップＳ１４０６）。上述のように特定電圧値はＶｇｓ（Ｖｉｎ）−Ｖｔｈである。
【００８３】
つぎに、ＣＰＵ２０１が、非飽和領域に関するＩｄｓの算出式（２）を取得する（ステップＳ１４０７）。ＣＰＵ２０１が、式（２）の各変数に取得した各パラメータを代入し、Ｉｄｓを複数のＶｄｓのうち特定電圧値未満のＶｄｓごとに算出する（ステップＳ１４０８）。そして、ＣＰＵ２０１が、ＩｄｓとＶｄｓとに基づいて内部抵抗値を算出し（ステップＳ１４０９）、内部抵抗値を出力する（ステップＳ１４１０）。
【００８４】
つぎに、ＣＰＵ２０１が、ｔＡＢの算出式（３）を取得し（ステップＳ１４１１）、式（３）の各変数に取得した各パラメータを代入し、ｔＡＢを算出する（ステップＳ１４１２）。そして、ＣＰＵ２０１が、特定電圧値以上のＶｄｓの各出力電流値の経過時間を算出したｔＡＢに基づいて算出する（ステップＳ１４１３）。
【００８５】
そして、ＣＰＵ２０１が、ｔＢＣの算出式（６）を取得し（ステップＳ１４１４）、式（６）の各変数に取得した各パラメータを代入し、ｔＢＣを算出する（ステップＳ１４１５）。そして、ＣＰＵ２０１が、特定電圧値未満のＶｄｓの各出力電流値の経過時間を算出したｔＢＣに基づいて算出する（ステップＳ１４１６）。
【００８６】
そして、ＣＰＵ２０１が、Ｉｄｓごとに算出した経過時間を格納し（ステップＳ１４１７）、一連の処理を終了する。
【００８７】
（実施の形態２）
つぎに、実施の形態２では、実施の形態１で作成した電流テーブルを用いて設計対象回路の回路情報内の対象セルの遅延時間を算出する例を説明する。また、実施の形態２では、実施の形態１で説明したハードウェアについては同一であるため、同一符号としてその説明を省略する。
【００８８】
（実施の形態２にかかる設計支援装置の機能ブロック図）
図１６は、実施の形態２にかかる設計支援装置の機能ブロック図である。設計支援装置１６００は、抽出部１６０１と、決定部１６０２と、補正部１６０３と、出力部１６０４と、特定部１６０５と、算出部１６０６と、を有している。図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶された各機能（抽出部１６０１〜算出部１６０６）を有する設計支援プログラムをＣＰＵ２０１がロードする。そして、該設計支援プログラムにコーディングされている処理をＣＰＵ２０１が実行することにより、該各機能が実現される。
【００８９】
抽出部１６０１は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。
【００９０】
決定部１６０２は、抽出部１６０１により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する。なお、特定電圧値とは、Ｖｇｓ（Ｖｉｎ）−Ｖｔｈである。
【００９１】
補正部１６０３は、決定部１６０２により決定された経過時間に対象セルの出力側の時定数を加算する。
【００９２】
出力部１６０４は、補正部１６０３による補正後の経過時間ごとの出力電圧値と決定部１６０２により決定されなかった経過時間ごとの出力電圧値とを出力する。
【００９３】
特定部１６０５は、出力部１６０４により出力された出力電圧値のうち、対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する。
【００９４】
算出部１６０６は、対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、特定部１６０５により特定された経過時間との時間差を算出する。
【００９５】
また、特定部１６０５は、出力部１６０４により出力された出力電圧値のうち、対象セルの次段セルの入力電圧の閾値である出力電圧値の経過時間を特定する。
【００９６】
算出部１６０６は、対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、特定部１６０５により特定された経過時間との時間差を算出する。
【００９７】
以上を踏まえて詳細に説明する。
【００９８】
（電流テーブル群）
図１７は、電流テーブル群の一例を示す説明図である。電流テーブル群１７００は、セルごとの電流テーブルを有している。ＩＮＶＥＲＴＥＲ１を例に挙げると、電流テーブル群１７００には、ＩＮＶＥＲＴＥＲ１の電流テーブルやＩＮＶＥＴＥＲ２の電流テーブルなど、各セルの電流テーブルを有している。ＩＮＶＥＲＴＥ１の電流テーブル群は、ＴＹＰ条件のテーブル群と、ＦＡＳＴ条件のテーブル群と、ＳＬＯＷ条件のテーブル群を有している。さらに、ＴＹＰ条件のテーブル群は、立ち上がり入力のテーブルと、立ち下がり入力のテーブルとを有している。
【００９９】
さらに、立ち下がり入力のテーブルはｔｆごとにテーブルを有し、立ち上がり入力のテーブルはｔｒごとにテーブルを有している。立ち上がり入力のテーブル群には、たとえば、実施の形態１で示した電流テーブル１００３や電流テーブル１３００を有している。なお、電流テーブル群１７００は、たとえば、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【０１００】
（内部抵抗テーブル）
図１８は、内部抵抗テーブル群の一例を示す説明図である。内部抵抗テーブル群１８００は、セルごとに各セル内のＭＯＳの内部抵抗の値を保持している。たとえば、内部抵抗テーブル１８０１では、ＩＮＶＥＲＴＥＲ１のＮＭＯＳの内部抵抗の値とＩＮＶＥＲＴＥＲ１のＰＭＯＳの内部抵抗の値とを保持している。
【０１０１】
実施の形態２では、経過時間ごとの出力電流値を有するテーブル１３００と内部抵抗テーブル１８０１に基づいて設計対象回路の回路情報から選択された対象セルの経過時間ごとの出力電圧値を有するテーブルを算出している。これに限らず、利用者が、経過時間ごとの出力電圧値を有するテーブルをセルごとにあらかじめ作成してもよい。
【０１０２】
（設計対象回路の回路情報）
図１９は、設計対象回路の回路情報の一例を示す説明図である。回路情報１９００は、設計対象回路内のセルの接続情報を含む電子データであり、具体的には、たとえば、設計対象回路のレイアウトデータや論理合成後における設計対象回路のネットリストである。回路情報１９００では、セルＣ１〜Ｃ７を有している。
【０１０３】
ここで、インスタンス名とは、設計対象回路内の各セルの固有の名称であり、セル名とは、セルの種類を示すための名称である。セルＣ１〜Ｃ７とはインスタンス名であり、ＩＮＶＥＲＴＥＲ１と、ＩＮＶＥＲＴＥＲ２と、２ＡＮＤ１（２入力で１出力のＡＮＤ）と、ＢＵＦＦＥＲ１と、ＢＵＦＦＥＲ２と、ＦＦ１とは、セル名である。
【０１０４】
たとえば、ＩＮＶＥＲＴＥＲ１やＩＮＶＥＲＴＥＲ２のようにいずれもインバータであり、論理が同一であっても、それぞれ性能が異なる。たとえば、セルＣ１とセルＣ７とはインスタンス名が異なるが、いずれもＩＮＶＥＲＴＥＲ１である。実施の形態２では、セルＣ１とセルＣ７で同一セル名であっても、各セルの出力側の配線や該セルの次段セルが異なるので、時定数が異なり、該セルの前段セルが異なるので、入力スルーが異なる。そのため、セルＣ１とセルＣ７とでは異なる遅延時間が算出される。
【０１０５】
ＣＰＵ２０１が、たとえば、パスＰ上のセルＣ１〜Ｃ５までの各セルの遅延時間を算出し、算出した遅延時間を合計することで、パスＰの遅延時間を算出することができる。そこで、ＣＰＵ２０１が、たとえば、パスＰをセルごとに分割してパスＰ１〜Ｐ５として、分割した各パスの遅延時間を算出する。
【０１０６】
ここで、パスとは、入力端子からマクロ（たとえば、ＦＦ（フリップフロップ））までの一連のセルおよびネットの集合、マクロ（たとえば、ＦＦ（フリップフロップ））間の一連のセルおよびネットの集合である。または、パスとは、マクロから出力端子までの一連のセルおよびネットの集合である。
【０１０７】
また、セルＣ１の出力側の配線がｃｌｉｎｅ１であり、セルＣ２の出力側の配線がｃｌｉｎｅ２であり、セルＣ３の出力側の配線がｃｌｉｎｅ３である。セルＣ４の出力側の配線がｃｌｉｎｅ４であり、セルＣ５の出力側の配線がｃｌｉｎｅ５である。半導体集積回路において配線はＭＥＴＡＬやＰｏｌｙｓｉｌｉｃｏｎで形成されるため、図１９中ｃｌｉｎｅ１で示すように配線は抵抗（配線抵抗）や容量（配線容量）で表される。
【０１０８】
（配線テーブル）
図２０は、配線テーブルの一例を示す説明図である。まず、配線テーブル２０００では、回路情報１９００内の各セルの出力から次段セルへの入力までの配線の配線抵抗の値や配線容量の値を保持している。配線テーブル２０００では、配線の項目２００１と、配線抵抗の項目２００２と、配線容量の項目２００３と、を有している。
【０１０９】
配線の項目２００１では配線名を保持し、配線抵抗の項目２００２では配線抵抗の値を保持し、配線容量の項目２００３では配線容量の値を保持している。なお、配線テーブル２０００は、たとえば、設計対象回路のレイアウトデータから抽出された配線情報に基づいて設計者により作成される。
【０１１０】
図１９の説明に戻って、つぎに、たとえば、セルＣ１の次段セルはセルＣ２である。セルＣ２の入力容量がセルＣ１の出力側の負荷容量（セルＣ１の負荷容量）の一部となる。ここで、セルの入力容量とは、たとえば、セル内のＭＯＳのゲート容量である。
【０１１１】
（セルの入力容量）
図２１は、セルの入力容量の一例を示す説明図である。入力容量テーブル２１００では各セルの入力容量の値を保持している。入力容量テーブル２１００ではセル名の項目２１０１と入力容量の項目２１０２とを有している。たとえば、セル名の項目２１０１に保持されているセル名がＩＮＶＥＲＴＥＲ１の場合、入力容量の項目２１００は５［ｆＦ］が保持されている。
【０１１２】
図１９の説明に戻って、また、たとえば、セルＣ７の次段セルはなく、セルＣ７の次段は出力端子である。この場合、セルＣ７の出力側の負荷抵抗や負荷容量が不明であるため、実施の形態２では、利用者（設計者または検証者）によりあらかじめ定義された外部負荷抵抗の値や外部負荷容量の値をそれぞれセルＣ７の負荷抵抗の値やセルＣ７の負荷容量の値に用いる。
【０１１３】
また、セルＣ１の前段セルはなくセルＣ１の前段は入力端子である。この場合、入力スルーが不明であるため、実施の形態２では、利用者（設計者または検証者）によりあらかじめ定義された外部入力スルーを該セルＣ１の入力スルーに用いる。
【０１１４】
（制約テーブル）
図２２は、制約テーブルの一例を示す説明図である。制約テーブル２２００には、外部入力スルーと外部負荷容量の値と外部負荷抵抗の値とが格納されている。実施の形態２では、上述のようにセルＣ１の入力スルーには制約テーブル２２００内の外部入力スルーの項目２２０１に保持されている値を用いる。また、上述のように実施の形態２では、セルＣ７の負荷容量および負荷抵抗にはそれぞれ制約テーブル２２００内の外部負荷容量の項目２２０２に保持されている値と外部負荷抵抗の項目２２０３に保持されている値とを用いる。
【０１１５】
（閾値テーブル）
図２３は、閾値テーブルの一例を示す説明図である。閾値テーブル２３００では、入力電圧の時間的変化と出力電圧の時間的変化とに基づいて遅延時間を算出する際の、入力電圧の閾値（以下、「入力閾値」と称する。）と、出力電圧の閾値（以下、「出力閾値」と称する。）を保持している。閾値テーブル２３００は、セル名の項目２３０１と、入力閾値の項目２３０２と、出力閾値の項目２３０３とを有している。
【０１１６】
セル名の項目２３０１にはセル名が保持され、入力閾値の項目２３０２には入力閾値が保持され、出力閾値の項目２３０３には出力閾値が保持されている。セル名の項目２３０１がＤＥＦＡＵＬＴの場合を例に挙げると、入力閾値が５０［％］で、出力閾値が５０［％］である。この場合、ＶｉｎがＶｄｄ×５０［％］の場合の経過時間からＶｄｓがＶｄｄ×５０［％］の場合の経過時間までの時間差が対象セルの遅延時間となることを示している。
【０１１７】
つぎに、具体的な処理例を説明する。まず、例１では、遅延時間と入力スルーの算出について説明する。つぎに、例２では、対象セルの次段セルの閾値が対象セルの閾値と異なる場合について説明する。
【０１１８】
（例１）
＜時定数の算出＞
まず、具体的には、たとえば、ＣＰＵ２０１が、回路情報１９００からセルＣ１を対象セルとして選択する。つぎに、具体的には、たとえば、ＣＰＵ２０１が、セルＣ１の次段セル（セルＣ２）の入力容量の値と、セルＣ１の出力側のｃｌｉｎｅ１の配線容量の値とｃｌｉｎｅ１の配線抵抗の値とを取得する。そして、たとえば、ＣＰＵ２０１が、セルＣ１の前段セルがあるか無いかを判断し、該前段セルが無いため、制約テーブル２２００内の外部入力スルーの項目２２０１に保持されている値を取得してセルＣ１の入力スルーに決定する。
【０１１９】
取得結果を下記に示す。
・セルＣ１の次段セル（セルＣ２）の入力容量の値：５［ｆＦ］
・ｃｌｉｎｅ１の配線容量の値：５［ｆＦ］
・ｃｌｉｎｅ１の配線抵抗の値：５０［Ω］
・外部入力スルー：１０Ｅ−１２［ｓｅｃ］
【０１２０】
実施の形態２では、対象セルをＣＰＵ２０１が自動で選択しているため、ＣＰＵ２０１が記憶装置にアクセスし、該配線容量の値や該配線抵抗の値や該外部入力スルーを取得している。これに限らず、たとえば、利用者が対象セルを選択して、利用者が該配線容量の値や該配線抵抗の値や該外部入力スルーを設計支援装置１６００に入力し、ＣＰＵ２０１が、該入力を受け付けてもよい。
【０１２１】
つぎに、具体的には、たとえば、ＣＰＵ２０１が、セルＣ１のセル名はＩＮＶＥＲＴＥＲ１であるため、抽出部１６０１により、ＩＮＶＥＲＴＥＲ１の電流テーブルから立ち上がり入力または立ち下がり入力の電流テーブルを外部入力スルーに基づいて抽出する。ここでは、立ち上がり入力を例に挙げ、電流テーブル１３００が取得されることとする。
【０１２２】
つぎに、具体的には、たとえば、ＣＰＵ２０１が、セルＣ２の入力容量の値とｃｌｉｎｅ１の配線容量の値とに基づいてセルＣ１の負荷容量の値を算出する。
・セルＣ１の負荷容量の値＝セルＣ２の入力容量の値＋ｃｌｉｎｅ１の配線容量の値
＝５．０Ｅ−１５［Ｆ］＋５．０Ｅ−１５［Ｆ］
＝１０．０Ｅ−１５［Ｆ］
【０１２３】
そして、たとえば、ＣＰＵ２０１が、セルＣ１の負荷容量の値とｃｌｉｎｅ１の配線抵抗の値とを乗算することにより時定数を算出する。なお、算出結果を下記に示す。
・セルＣ１の時定数＝セルＣ１の負荷容量の値×ｃｌｉｎｅ１の配線抵抗の値
＝１０．０Ｅ−１５［Ｆ］×５０［Ω］
＝０．５Ｅ−１２［ｓｅｃ］
【０１２４】
＜出力電圧値の算出＞
図２４は、出力電圧の算出例を示す説明図である。つぎに、具体的には、たとえば、ＣＰＵ２０１が、抽出した電流テーブルと、ＩＮＶＥＲＴＥＲ１のＮＭＯＳの内部抵抗に基づいて経過時間ごとの出力電圧の値を算出する。テーブル２４００が算出結果である。テーブル２４００は、経過時間の項目２４０１と、Ｖｄｓ＿ｎｏｎＲＣの項目２４０２と、Ｖｉｎの項目２４０３とを有している。なお、テーブル２４００は、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【０１２５】
つぎに、ＩＮＶＥＲＴＥＲ１の動作領域が飽和領域となるＶｄｓ＿ｎｏｎＲＣの経過時間は時定数で補正されず、ＩＮＶＥＲＴＥＲ１の動作領域が非飽和領域となるＶｄｓ＿ｎｏｎＲＣの経過時間は時定数で補正される。実施の形態２では、動作領域が飽和領域の場合には、出力電流が十分流れているため、セルＣ１の負荷容量と負荷抵抗による影響が小さいため、動作領域が飽和領域であるＶｄｓ＿ｎｏｎＲＣの経過時間を補正しない。
【０１２６】
具体的には、たとえば、ＣＰＵ２０１が、決定部１６０２により、Ｖｄｓ＿ｎｏｎＲＣごとにＶｇｓ（Ｖｉｎ）−Ｖｔｈを算出する。そして、たとえば、ＣＰＵ２０１が、決定部１６０２により、Ｖｄｓ＿ｎｏｎＲＣごとにＶｄｓ＿ｎｏｎＲＣ＜Ｖｇｓ（Ｖｉｎ）−Ｖｔｈであるか否かを判断する。たとえば、ＣＰＵ２０１が、決定部１６０２により、Ｖｄｓ＿ｎｏｎＲＣ＜Ｖｇｓ（Ｖｉｎ）−Ｖｔｈであれば、該Ｖｄｓ＿ｎｏｎＲＣの経過時間を補正対象の経過時間に決定する。
【０１２７】
図２５は、補正対象の経過時間の決定例を示す説明図である。たとえば、経過時間が１０Ｅ−１２［ｓｅｃ］の場合、Ｖｄｓ＿ｎｏｎＲＣが約１．５１［Ｖ］であり、Ｖｇｓ−Ｖｔｈが１．４４［Ｖ］である。よって、Ｖｄｓ＿ｎｏｎＲＣ≧Ｖｇｓ−Ｖｔｈであるため、経過時間が１０Ｅ−１２［ｓｅｃ］の場合、ＩＮＶＥＲＴＥＲ１のＮＭＯＳの動作領域は飽和領域である。
【０１２８】
つぎに、たとえば、経過時間が１１Ｅ−１２［ｓｅｃ］の場合、Ｖｄｓ＿ｎｏｎＲＣが約１．４１［Ｖ］であり、Ｖｇｓ−Ｖｔｈが１．４４［Ｖ］である。よって、Ｖｄｓ＿ｎｏｎＲＣ≧Ｖｇｓ−Ｖｔｈであるため、経過時間が１１Ｅ−１２［ｓｅｃ］の場合、ＩＮＶＥＲＴＥＲ１のＮＭＯＳの動作領域は非飽和領域である。よって、経過時間が１０Ｅ―１２は補正対象として決定される。ここでは、１１Ｅ―１２〜１９Ｅ−１２［ｓｅｃ］が補正対象の経過時間として決定される。
【０１２９】
図２６は、補正例を示す説明図である。具体的には、たとえば、ＣＰＵ２０１が、補正部１６０３により、補正対象の経過時間に決定した各経過時間に対して、算出したセルＣ１の時定数を加算することにより、該補正対象の経過時間を補正する。
【０１３０】
図２６では、たとえば、ｔ０は補正対象でないが、ｔ１とｔ２とが補正対象である経過時間である。そして、グラフ２６０４では、ｔ１とｔ２にそれぞれτが加算されることにより、補正されている。ｔ１とｔ２との補正結果はそれぞれｔ１’とｔ２’とである。そして、たとえば、ＣＰＵ２０１が、出力部１６０４により、補正後の経過時間ごとの出力電圧の値と、補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【０１３１】
出力形式としては、たとえば、ディスプレイ２０８への表示、プリンタ２１３への印刷出力、Ｉ／Ｆ２０９による外部装置への送信がある。また、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶することとしてもよい。
【０１３２】
出力結果としては、テーブル２６００が挙げられる。テーブル２６００は、経過時間の項目２６０１と、Ｖｄｓ＿ＲＣの項目２６０２と、Ｖｉｎの項目２６０３とを有している。経過時間の項目２６０１は経過時間を保持し、Ｖｄｓ＿ＲＣの項目２６０２はＶｄｓ＿ＲＣを保持し、Ｖｉｎの項目２６０３はＶｉｎを保持している。なお、Ｖｄｓ＿ＲＣはＶｄｓ＿ｎｏｎＲＣから電圧値は変化していないが、経過時間が補正されている。
【０１３３】
さらに、測定数（経過時間の数）が少ない場合、複数の経過時間の経過時間ごとの出力電圧値の該複数の経過時間を補完してもよい。具体的には、ＣＰＵ２０１が、たとえば、一の経過時間（ｔＸ）と一の経過時間の次の経過時間（ｔＹ）との中間の経過時間（ｔＺ）でのＶｄｓ＿ＲＣを、下記式（７）を用いて算出することにより、補完する。
【０１３４】
Ｖｄｓ＿ＲＣ（ｔＺ）＝｛Ｖｄｓ＿ＲＣ（ｔＸ）［Ｖ］−Ｖｄｓ＿ＲＣ（ｔＹ）［Ｖ］｝／｛ｔＸ[ｐｓｅｃ]−ｔＹ[ｐｓｅｃ]｝×τ[ｐｓｅｃ]＋Ｖｄｓ＿ＲＣ（ｔＹ）［Ｖ］
・・・（７）
【０１３５】
たとえば、ｔＡとｔＢとが下記の場合を例に挙げて説明する。
・ｔＸ＝１３．５［ｐｓｅｃ］
・ｔＹ＝１２．５［ｐｓｅｃ］
・ｔＺ＝１３[ｐｓｅｃ]
・Ｖｄｓ（ｔＸ）＝１．１６２［Ｖ］
・Ｖｄｓ（ｔＹ）＝１．２９７［Ｖ］
・τ＝０．５[ｐｓｅｃ]
・Ｖｄｓ＿ＲＣ（１３）＝｛１．２９７［Ｖ］−１．１６２［Ｖ］｝／｛１３．５［ｐｓｅｃ］−１２．５［ｐｓｅｃ］｝×０．５［ｐｓｅｃ］＋１．１６２［Ｖ］
＝１．２２９［Ｖ］
【０１３６】
図２７は、補完結果を示す説明図である。テーブル２７００は、上記式（７）を用いてテーブル２７００を補完した補完結果である。テーブル２７００は、経過時間の項目２７０１と、Ｖｄｓ＿ＲＣの項目２７０２と、Ｖｉｎの項目と、を有している。図２７では、Ｖｉｎの項目を省略して記載している。補完については、一例として、１２．５［ｐｓｅｃ］〜１９．５［ｐｓｅｃ］の間でのみ実施されている。
【０１３７】
＜遅延時間および出力スルーの算出＞
つぎに、対象セルの遅延時間の算出について説明する。具体的には、たとえば、ＣＰＵ２０１が、閾値テーブル２３００から対象セルの入力閾値と対象セルの出力閾値とをセル名に基づいて検索する。閾値テーブル２３００内にＩＮＶＥＲＴＥＲ１に対応するセル名が無いため、ＤＥＦＡＵＬＴの閾値が検索される。ＤＥＦＡＵＬＴの入力閾値が５０［％］であり、ＤＥＦＡＵＬＴの出力閾値が５０［％］である。
【０１３８】
そして、具体的には、たとえば、ＣＰＵ２０１が、特定部１６０５により、テーブル２７００から取得した対象セルの出力閾値と同一であるＶｄｓ＿ＲＣの経過時間を特定する。さらに、たとえば、ＣＰＵ２０１が、特定部１６０５により、テーブル２７００から取得した対象セルの入力閾値と同一であるＶｉｎの経過時間を特定する。そして、たとえば、ＣＰＵ２０１が、算出部１６０６により、特定したＶｉｎの経過時間と特定したＶｄｓ＿ＲＣの経過時間との時間差を遅延時間として算出する。
【０１３９】
図２８は、遅延時間の算出例を示す説明図である。グラフ２８００では、経過時間ごとの入力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線（入力電圧折れ線）が示されている。さらに、グラフ２８００では、経過時間ごとの出力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線（出力電圧折れ線）が示されている。グラフ２８００では、横軸が経過時間であり、縦軸が電圧である。
【０１４０】
入力閾値が５０［％］であり、出力閾値が５０［％］である。入力電圧折れ線のうちＶｄｄ×５０［％］となる経過時間から、出力電圧折れ線のＶｄｄ×５０［％］となる経過時間までの時間差が対象セルの遅延時間である。また、入力電圧折れ線と出力電圧折れ線は単にプロット間を経過時間順に接続されているが、これに限らず、たとえば、線形近似などの近似がおこなわれてもよい。
【０１４１】
つぎに、対象セルの出力スルーの算出について説明する。対象セルの出力スルーは対象セルの次段セルの入力スルーとして用いられる。たとえば、対象セルの立ち下がり出力の出力スルーは、次段セルの立ち下がり入力の遅延時間の算出時に用いられ、対象セルの立ち上がり出力の出力スルーは、次段セルの立ち上がり入力の遅延時間の算出時に用いられる。
【０１４２】
実施の形態２では、立ち下がり出力の場合、出力スルーをＶｄｄ×８０［％］での経過時間からＶｄｄ×２０［％］での経過時間までの時間差とする。実施の形態２では、立ち上がり出力の場合、出力スルーをＶｄｄ×２０［％］での経過時間からＶｄｄ×８０［％］での経過時間までの時間差とする。
【０１４３】
具体的には、たとえば、ＣＰＵ２０１が、特定部１６０５により、テーブル２７００からＶｄｄ×８０［％］であるＶｄｓ＿ＲＣの経過時間と、テーブル２７００からＶｄｄ×２０［％］であるＶｄｓ＿ＲＣの経過時間と、を特定する。つぎに、たとえば、ＣＰＵ２０１が、算出部１６０６により、特定した２つの経過時間の時間差を出力スルーとして算出する。
【０１４４】
図２９は、出力スルーの算出例を示す説明図である。グラフ２９００では、経過時間ごとの出力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線が示されている。グラフ２９００では、横軸が経過時間であり、縦軸が電圧である。
【０１４５】
折れ線のＶｄｄ×８０［％］の経過時間からＶｄｄ×２０［％］の経過時間までの時間差が出力スルーである。そして、たとえば、ＣＰＵ２０１が、算出した遅延時間と出力スルーとを出力する。出力形式としては、たとえば、ディスプレイ２０８への表示、プリンタ２１３への印刷出力、Ｉ／Ｆ２０９による外部装置への送信がある。また、出力形式としては、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶することとしてもよい。
【０１４６】
（例２）
つぎに、対象セルの出力閾値と該対象セルの次段セルの入力閾値とが異なる場合について説明する。例２では対象セルを回路情報１９００内のセルＣ４とする。
【０１４７】
具体的には、たとえば、ＣＰＵ２０１が、回路情報１９００内からセルＣ４の次段セルを特定する。ここでは、次段セルとしてセルＣ５が特定される。そして、具体的には、たとえば、ＣＰＵ２０１が、閾値テーブル２３００から対象セルの入力閾値をセル名に基づいて検索する。さらに、たとえば、ＣＰＵ２０１が、閾値テーブル２３００から次段セルの入力閾値をセル名に基づいて検索する。
【０１４８】
セルＣ４のセル名はＢＵＦＦＥＲ１であるため、セルＣ４の入力閾値が４０［％］である。セルＣ５のセル名はＢＵＦＦＥＲ２であるため、セルＣ５の入力閾値が５０［％］である。
【０１４９】
そして、たとえば、ＣＰＵ２０１が、特定部１６０５により、対象セルの入力閾値と同一値であるＶｄｓ＿ＲＣの経過時間と、次段セルの入力閾値と同一値であるＶｉｎの経過時間と、を特定する。そして、たとえば、ＣＰＵ２０１が、算出部１６０６により、特定した２つの経過時間との時間差を遅延時間として算出する。
【０１５０】
図３０は、例２における遅延時間の算出を示す説明図である。グラフ３０００では、例２における遅延時間の算出例を示している。グラフ３０００およびグラフ３００１は、セルＣ４の入力と、セルＣ４の出力（セルＣ５の入力）と、セルＣ５の出力を示している。
【０１５１】
グラフ３００１では、セルＣ４の遅延時間の算出時に、テーブル内のＢＵＦＦＥＲ１の出力閾値を用いている。グラフ３００１ではセルＣ４の遅延時間の算出とセルＣ５の遅延時間の算出とで、共有してしまう時間があり、該時間が遅延誤差となる。
【０１５２】
一方、グラフ３０００では、セルＣ４の遅延時間の算出時に、セルＣ５の入力閾値をセルＣ４の出力閾値として用いているため、該遅延誤差が発生しない。すなわち、遅延誤差の発生を防止することができる。
【０１５３】
（実施の形態２にかかる設計支援装置１６００の設計支援処理手順）
図３１〜図３４は、実施の形態２にかかる設計支援装置１６００による設計支援処理手順の一例を示すフローチャートである。まず、ＣＰＵ２０１が、回路情報内のパスＰを構成するセルごとにパスＰを分割する（ステップＳ３１０１）。そして、ＣＰＵ２０１が、ｉ＝１とし（ステップＳ３１０２）、パスＰ上の先頭からｉ番目の分割パスＰｉがあるか否かを判断する（ステップＳ３１０３）。
【０１５４】
まず、ＣＰＵ２０１が、先頭からｉ番目の分割パスＰｉがあると判断した場合（ステップＳ３１０３：Ｙｅｓ）、分割パスＰｉ上のセルを対象セルに選択する（ステップＳ３１０４）。つぎに、ＣＰＵ２０１が、対象セルの前段セルがあるか否かに基づいて、対象セルが外部入力セルであるか否かを判断する（ステップＳ３１０５）。
【０１５５】
ＣＰＵ２０１が、対象セルが外部入力セルであると判断した場合（ステップＳ３１０５：Ｙｅｓ）、対象セルの入力スルーを外部スルー条件に設定する（ステップＳ３１０６）。一方、対象セルが外部入力セルでないと判断した場合（ステップＳ３１０５：Ｎｏ）、対象セルの入力スルーを前段セルの出力スルーに設定する（ステップＳ３１０７）。
【０１５６】
ステップＳ３１０６またはステップＳ３１０７のつぎに、ＣＰＵ２０１が、対象セルの次段セルがあるか否かに基づいて、対象セルが外部出力セルであるか否かを判断する（ステップＳ３１０８）。外部出力セルとは、対象セルの出力が他のセルに接続されず、対象セルの出力が出力端子に接続されて外部に出力されるセルを示している。
【０１５７】
ステップＳ３１０８において、ＣＰＵ２０１が、対象セルが外部出力セルであると判断した場合（ステップＳ３１０８：Ｙｅｓ）、対象セルが外部出力セルである外部負荷容量の値と該負荷抵抗の値とを取得する（ステップＳ３１０９）。ＣＰＵ２０１が、対象セルの負荷抵抗値の値＝外部負荷抵抗の値とし（ステップＳ３１１０）、対象セルの負荷容量の値＝外部負荷容量の値とする（ステップＳ３１１１）。
【０１５８】
ステップＳ３１０８において、ＣＰＵ２０１が、対象セルが外部出力セルでないと判断した場合（ステップＳ３１０８：Ｎｏ）、対象セルの配線容量の値と次段セルの入力容量の値と対象セルの配線抵抗の値とを取得する（ステップＳ３１１２）。そして、ＣＰＵ２０１が、対象セルの配線抵抗の値＝対象セルの配線抵抗の値とし（ステップＳ３１１３）、対象セルの負荷容量の値＝対象セルの配線容量の値＋次段セルの入力容量の値とする（ステップＳ３１１４）。
【０１５９】
そして、ＣＰＵ２０１が、ステップＳ３１１１またはステップＳ３１１４のつぎに、τ＝対象セルの負荷容量の値×対象セルの負荷抵抗の値とし（ステップＳ３１１５）、ＰＴＶ条件から所定のＰＴＶ条件を選択する（ステップＳ３１１６）。そして、ＣＰＵ２０１が、ＰＴＶ条件および入力スルーに基づいて電流テーブルと対象セルのオン抵抗値を取得する（ステップＳ３１１７）。
【０１６０】
つぎに、ＣＰＵ２０１が、取得した電流テーブル内の各出力電流値に取得したオン抵抗値を乗算し（ステップＳ３１１８）、ＰＴＶ条件に基づいて対象セルのＶｔｈを取得する（ステップＳ３１１９）。そして、ＣＰＵ２０１が、未選択の経過時間があるか否かを判断し（ステップＳ３１２０）、未選択の経過時間があると判断した場合（ステップＳ３１２０：Ｙｅｓ）、未選択の経過時間から１つの経過時間を選択する（ステップＳ３１２１）。
【０１６１】
つぎに、ＣＰＵ２０１が、選択した経過時間の出力電圧値＜選択した経過時間の入力電圧値−Ｖｔｈであるか否かを判断する（ステップＳ３１２２）。ＣＰＵ２０１が、選択した経過時間の出力電圧値＜選択した経過時間の入力電圧値−Ｖｔｈであると判断した場合（ステップＳ３１２２：Ｙｅｓ）、選択した経過時間を補正対象の経過時間に決定し（ステップＳ３１２３）、ステップＳ３１２０へ戻る。ＣＰＵ２０１が、選択した経過時間の出力電圧値＜選択した経過時間の入力電圧値−Ｖｔｈでないと判断した場合（ステップＳ３１２２：Ｎｏ）、ステップＳ３１２０へ戻る。
【０１６２】
ステップＳ３１２０において、ＣＰＵ２０１が、未選択の経過時間がないと判断した場合（ステップＳ３１２０：Ｎｏ）、決定した補正対象の経過時間にτを加算することにより該経過時間を補正する（ステップＳ３１２４）。つぎに、ＣＰＵ２０１が、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する（ステップＳ３１２５）。
【０１６３】
そして、ＣＰＵ２０１が、対象セルの次段セルがあるか否かを判断し（ステップＳ３１２６）、次段セルがあると判断した場合（ステップＳ３１２６：Ｙｅｓ）、対象セルの入力閾値と次段セルの入力閾値とを取得する（ステップＳ３１２７）。つぎに、ＣＰＵ２０１が、次段セルの入力閾値である出力電圧値の経過時間を特定する（ステップＳ３１２８）。
【０１６４】
一方、ステップＳ３１２６において、ＣＰＵ２０１が、次段セルがないと判断した場合（ステップＳ３１２６：Ｎｏ）、対象セルの入力閾値と対象セルの出力閾値とを取得する（ステップＳ３１２９）。そして、ＣＰＵ２０１が、対象セルの出力閾値である出力電圧値の経過時間を特定する（ステップＳ３１３０）。
【０１６５】
ステップＳ３１２８またはステップＳ３１３０のつぎに、ＣＰＵ２０１が、対象セルの入力閾値である入力電圧値の経過時間を特定し（ステップＳ３１３１）、特定した２つの経過時間の時間差を算出する（ステップＳ３１３２）。つぎに、ＣＰＵ２０１が、対象セルと算出した時間差を遅延時間として対象セルに関連付けて出力する（ステップＳ３１３３）。
【０１６６】
本フローチャートでは、パスＰの遅延時間を算出しているため、対象セルの次段セルがある場合、次段セルの入力閾値を対象セルの出力閾値として遅延時間を算出している。これにより、パスＰの遅延誤差を抑制することができる。また、対象セルの遅延時間のみが必要な場合には、対象セルの次段セルがあっても、対象セルの出力閾値を取得して遅延時間を算出してもよい。
【０１６７】
ＣＰＵ２０１が、出力スルーの閾値である出力電圧値の経過時間を特定し（ステップＳ３１３４）、対象セルの出力スルーを算出し（ステップＳ３１３５）、対象セルと出力スルーとを関連付けて出力する（ステップＳ３１３６）。そして、ＣＰＵ２０１が、ｉ＝ｉ＋１とし（ステップＳ３１３７）、ステップＳ３１０３へ戻る。
【０１６８】
ステップＳ３１０３において、ＣＰＵ２０１が、先頭からｉ番目の分割パスＰｉがないと判断した場合（ステップＳ３１０３：Ｎｏ）、パスＰ上の各セルの遅延時間を合計することでパスＰの遅延時間を算出する（ステップＳ３１３８）。そして、ＣＰＵ２０１が、パスＰと算出した遅延時間とを関連付けて出力する（ステップＳ３１３９）。
【０１６９】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、対象セルの出力側のＲ（負荷抵抗）Ｃ（負荷容量）の時定数をＲＣの充電放電により出力電圧の変化が遅延する遅延時間とする。そして、対象セルへの入力電圧の変化開始からの経過時間に加算することで、該経過時間を補正する。これにより、設計対象回路内の各セルによって異なるＲＣによる過渡応答が再現される。すなわち、ＲＣで鈍る出力電圧を再現することができ、遅延誤差を抑制することができる。
【０１７０】
また、補正後の経過時間ごとの出力電圧値と入力電圧の値に基づいて対象セルの遅延時間を算出することにより、遅延誤差の小さい遅延時間を自動で算出することができる。
【０１７１】
また、対象セルに次段セルがある場合、次段セルの入力電圧の閾値を対象セルの出力電圧の閾値として遅延時間を算出することにより、遅延誤差の小さい遅延時間を自動で算出することができる。よって、正確なパスの遅延時間を算出することができる。
【０１７２】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、特定閾値以上である複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。セルへの入力電圧の変化開始時からの経過時間を出力電流値ごとに該変化時間に基づいて算出し、出力電流値ごとの経過時間を記憶装置へ格納する。これにより、経過時間ごとの出力電流値のテーブルを容易に作成することができる。出力電流値のテーブルにより、遅延時間の算出や電力の解析などに流用することができる。
【０１７３】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、特定閾値未満である複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。セルへの入力電圧の変化開始時からの経過時間を出力電流値ごとに該変化時間に基づいて算出し、出力電流値ごとの経過時間を記憶装置へ格納する。これにより、経過時間ごとの出力電流値のテーブルを容易に作成することができる。出力電流値のテーブルにより、遅延時間の算出や電力の解析などに流用することができる。
【０１７４】
なお、本実施の形態１および２で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、たとえば、磁気ディスク２０５、光ディスク２０７などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１７５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１７６】
（付記１）セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータに、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を抽出する抽出工程と、
前記抽出工程により抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行させることを特徴とする設計支援プログラム。
【０１７７】
（付記２）前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする付記１に記載の設計支援プログラム。
【０１７８】
（付記３）前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの次段セルの前記入力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする付記１に記載の設計支援プログラム。
【０１７９】
（付記４）コンピュータに、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【０１８０】
（付記５）コンピュータに、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【０１８１】
（付記６）セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出手段と、
前記抽出手段により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定手段と、
前記決定手段により決定された経過時間に前記対象セルの出力側の時定数を加算する補正手段と、
前記補正手段による補正後の経過時間ごとの出力電圧値と前記決定手段により決定されなかった経過時間ごとの出力電圧値とを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【０１８２】
（付記７）特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得手段と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得手段により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出手段と、
前記変化時間算出手段により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出手段と、
前記経過時間算出手段により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納手段と、
を備えることを特徴とする設計支援装置。
【０１８３】
（付記８）特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得手段と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得手段により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出手段と、
前記変化時間算出手段により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出手段と、
前記経過時間算出手段により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納手段と、
を備えることを特徴とする設計支援装置。
【０１８４】
（付記９）セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータが、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出工程と、
前記抽出工程により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【０１８５】
（付記１０）コンピュータが、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行することを特徴とする設計支援方法。
【０１８６】
（付記１１）コンピュータが、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行することを特徴とする設計支援方法。
【符号の説明】
【０１８７】
３００，１６００  設計支援装置
３０１  取得部
３０２  変化時間算出部
３０３  経過時間算出部
３０４  格納部
９００，１０００，２４００，２６００，２７００  テーブル
１００３，１３００  電流テーブル
１６０１  抽出部
１６０２  決定部
１６０３  補正部
１６０４  出力部
１６０５  特定部
１６０６  算出部
【図１】
0005531807.tif 000006
【図２】
0005531807.tif 000007
【図３】
0005531807.tif 000008
【図４】
0005531807.tif 000009
【図５】
0005531807.tif 000010
【図６】
0005531807.tif 000011
【図７】
0005531807.tif 000012
【図８】
0005531807.tif 000013
【図９】
0005531807.tif 000014
【図１０】
0005531807.tif 000015
【図１１】
0005531807.tif 000016
【図１２】
0005531807.tif 000017
【図１３】
0005531807.tif 000018
【図１４】
0005531807.tif 000019
【図１５】
0005531807.tif 000020
【図１６】
0005531807.tif 000021
【図１７】
0005531807.tif 000022
【図１８】
0005531807.tif 000023
【図１９】
0005531807.tif 000024
【図２０】
0005531807.tif 000025
【図２１】
0005531807.tif 000026
【図２２】
0005531807.tif 000027
【図２３】
0005531807.tif 000028
【図２４】
0005531807.tif 000029
【図２５】
0005531807.tif 000030
【図２６】
0005531807.tif 000031
【図２７】
0005531807.tif 000032
【図２８】
0005531807.tif 000033
【図２９】
0005531807.tif 000034
【図３０】
0005531807.tif 000035
【図３１】
0005531807.tif 000036
【図３２】
0005531807.tif 000037
【図３３】
0005531807.tif 000038
【図３４】
0005531807.tif 000039