設計支援プログラム、設計支援装置、および設計支援方法
【課題】RCで鈍る出力電圧を再現し、遅延誤差を抑制すること。
【解決手段】電流テーブル群は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに保持し、設計支援装置がアクセス可能な記憶装置に記憶されている。設計支援装置は、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。設計支援装置は、Vds(出力電圧)<Vgs(入力電圧)−Vth(ゲート閾値電圧)であるVdsの経過時間を補正対象の経過時間に決定する。設計支援装置は、補正対象の経過時間に対象セルの出力側の時定数を加算することにより、該経過時間を補正する。設計支援装置は、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【解決手段】電流テーブル群は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに保持し、設計支援装置がアクセス可能な記憶装置に記憶されている。設計支援装置は、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。設計支援装置は、Vds(出力電圧)<Vgs(入力電圧)−Vth(ゲート閾値電圧)であるVdsの経過時間を補正対象の経過時間に決定する。設計支援装置は、補正対象の経過時間に対象セルの出力側の時定数を加算することにより、該経過時間を補正する。設計支援装置は、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路の設計を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【0002】
従来、アナログ回路の設計においては、SPICEなどのシミュレータを用いてアナログ特性をシミュレーションする技術が知られている。
【0003】
一方、ディジタル回路の設計においてもSPICEなどのシミュレータを用いてシミュレーションすることで正確な遅延時間を得ることができる(たとえば、下記特許文献1参照。)(以下、「従来技術1」と称する。)。しかしながら、従来技術1のように設計対象回路内のすべてのセルについてSPICEなどを用いておこなうには、膨大な時間がかかる問題点があった。
【0004】
そこで、設計で用いるセルごとに遅延時間および出力スルー(セルが出力する出力電圧の立ち上がり(または立ち上がり)に要する時間)をSPICEなどのシミュレータを用いて特定し、ライブラリとして記憶する技術が知られている。そして、設計対象回路内の各セルの遅延時間は、該ライブラリを参照することで算出していた(たとえば、下記特許文献2参照。)(以下、「従来技術2」と称する。)。
【0005】
また、設計対象回路内のパスの遅延時間は、パスを構成するセルの遅延時間を加算することで計算されることが知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2004−501438号公報
【特許文献2】特開平10−198720号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来技術2では、各セルの出力側の負荷抵抗(たとえば、配線抵抗)および負荷容量(配線容量や次段セルの入力容量)を集中定数容量に置き換える。そして、従来技術2では、入力電圧の時間的変化を回路モデルへ与えてSPICEにより出力電圧の時間的変化を算出する。
【0008】
設計対象回路のレイアウトによってセルごとに負荷抵抗や負荷容量の値が異なるため、従来技術1を用いた場合と比較して遅延時間に誤差が発生する問題点があった。さらに、集中定数容量の値のみで出力電圧値を算出しているため、R(負荷抵抗)C(負荷容量)による過渡応答が直線近似されてしまい、従来技術1を用いた場合と比較して遅延時間に誤差が発生する問題点があった。また、上述のように従来技術1を用いると、膨大な時間がかかる問題点があった。
【0009】
特に近年の微細化されたプロセスにおいて従来技術2を用いると、低電圧化、高集積化、および高速化に伴い従来技術2で得られる遅延時間と従来技術1で得られる遅延時間との誤差が顕著に表れるようになる。すなわち、近年では遅延時間の誤差の影響を無視できない問題点があった。
【課題を解決するための手段】
【0010】
本発明の一観点によれば、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出し、抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定し、決定された経過時間に前記対象セルの出力側の時定数を加算し、補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する設計支援プログラム、設計支援装置、および設計支援方法が提供される。
【発明の効果】
【0011】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、RCで鈍る出力電圧を再現でき、遅延誤差を抑制することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】本発明の一例を示す説明図である。
【図2】設計支援装置のハードウェアを示すブロック図である。
【図3】実施の形態1にかかる設計支援装置の機能ブロック図である。
【図4】PTV条件の一例を示す説明図である。
【図5】セルの一例を示す説明図である。
【図6】Vinの一例を示す説明図である。
【図7】トランジスタ特性のテーブルを示す説明図である。
【図8】Vdsの一例を示す説明図である。
【図9】VdsごとのIdsの一例を示す説明図である。
【図10】経過時間ごとのIdsを示す説明図である。
【図11】rDSの算出結果を示す説明図である。
【図12】Vinの他の例を示す説明図である。
【図13】入力スルーの反映例を示す説明図である。
【図14】実施の形態1にかかる設計支援装置300による設計支援処理手順の一例を示すフローチャート(その1)である。
【図15】実施の形態1にかかる設計支援装置300による設計支援処理手順の一例を示すフローチャート(その2)である。
【図16】実施の形態2にかかる設計支援装置の機能ブロック図である。
【図17】電流テーブル群の一例を示す説明図である。
【図18】内部抵抗テーブル群の一例を示す説明図である。
【図19】設計対象回路の回路情報の一例を示す説明図である。
【図20】配線テーブルの一例を示す説明図である。
【図21】セルの入力容量の一例を示す説明図である。
【図22】制約テーブルの一例を示す説明図である。
【図23】閾値テーブルの一例を示す説明図である。
【図24】出力電圧の算出例を示す説明図である。
【図25】補正対象の経過時間の決定例を示す説明図である。
【図26】補正例を示す説明図である。
【図27】補完結果を示す説明図である。
【図28】遅延時間の算出例を示す説明図である。
【図29】出力スルーの算出例を示す説明図である。
【図30】例2における遅延時間の算出を示す説明図である。
【図31】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その1)である。
【図32】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その2)である。
【図33】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その3)である。
【図34】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その4)である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、本発明による設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【0014】
図1は、本発明の一例を示す説明図である。電流テーブル群は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに保持し、設計支援装置がアクセス可能な記憶装置に記憶されている。セルの出力電圧値は、該セルの出力側の負荷抵抗の値や負荷容量の値を考慮せずに算出された値である。
【0015】
まず、設計支援装置は、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。つぎに、設計支援装置は、Vds(出力電圧)<Vgs(入力電圧)−Vth(ゲート閾値電圧)であるVdsの経過時間を補正対象の経過時間に決定する。本実施の形態では、VinはVgsと同一として説明する。
【0016】
そして、設計支援装置は、補正対象の経過時間に対象セルの出力側の時定数を加算することにより、該経過時間を補正する。時定数は対象セルの出力側の負荷抵抗の値および負荷容量の値に基づいて算出される値である。つぎに、設計支援装置は、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【0017】
まず、実施の形態1では、設計対象回路で用いるセルの電流テーブルの作成例を説明する。実施の形態2では、実施の形態1で作成された電流テーブルを用いて設計対象回路の回路情報から選択された対象セルの遅延時間の算出例について説明する。
【0018】
(実施の形態1)
(設計支援装置のハードウェア)
図2は、設計支援装置のハードウェアを示すブロック図である。図2において、設計支援装置は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、を有している。さらに、設計支援装置は、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、を有している。さらに、設計支援装置は、マウス211と、スキャナ212と、プリンタ213と、を有している。また、各部はバス200によってそれぞれ接続されている。
【0019】
ここで、CPU201は、設計支援装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
【0020】
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
【0021】
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。該ディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0022】
I/F209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえば、モデムやLANアダプタなどを採用することができる。
【0023】
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【0024】
スキャナ212は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0025】
(実施の形態1にかかる設計支援装置の機能ブロック図)
図3は、実施の形態1にかかる設計支援装置の機能ブロック図である。設計支援装置300は、取得部301と、変化時間算出部302と、経過時間算出部303と、格納部304と、を有している。図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶された各機能(取得部301〜格納部304)を有する設計支援プログラムをCPU201がロードする。そして、該設計支援プログラムにコーディングされている処理をCPU201が実行することにより、該各機能が実現される。
【0026】
取得部301は、特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値でのセルの出力電流値を記憶する記憶装置から各出力電圧値での出力電流値を取得する。特定電圧値とは、具体的には、たとえば、Vgs(Vin)−Vthである。
【0027】
変化時間算出部302は、セル内のトランジスタの接合容量の値と、セルのゲート閾値電圧の値(Vth)と、取得部301により取得された出力電流値とに基づいて、複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。
【0028】
経過時間算出部303は、変化時間算出部302により算出された変化時間に基づいて、セルへの入力電圧の変化開始からの経過時間を出力電流値ごとに算出する。
【0029】
格納部304は、経過時間算出部303により算出された各出力電流値の経過時間を記憶装置へ格納する。
【0030】
また、取得部301は、特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値でのセルの出力電流値を記憶する記憶装置から各出力電圧値での出力電流値を取得する。特定電圧値とは、具体的には、たとえば、Vgs(Vin)−Vthである。
【0031】
変化時間算出部302は、セル内のトランジスタの接合容量の値と、セルへの入力電圧の値と、取得部301により取得された出力電流値とに基づいて、複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。
【0032】
経過時間算出部303は、変化時間算出部302により算出された変化時間に基づいて、入力電圧の変化開始からの経過時間を出力電流値ごとに算出する。
【0033】
格納部304は、経過時間算出部303により算出された各出力電流値の経過時間を記憶装置へ格納する。
【0034】
以上を踏まえて、インバータの電流テーブルの作成を例に挙げて詳細に説明する。
【0035】
(PTV条件)
図4は、PTV条件の一例を示す説明図である。まず、PTVとは、Process(プロセス)と、Temperature(温度)と、Voltage(電圧)を示している。PTV条件テーブル400では、PTV条件の項目401とプロセスの項目402と温度の項目403と電圧の項目404とを有している。PTV条件の項目401には、TYP条件であるか、FAST条件であるか、SLOW条件であるかが保持されている。
【0036】
各条件については下記である。
・TYP条件:各セルの動作が通常の速度である条件
・FAST条件:各セルの動作が最も速くなる条件
・SLOW条件:各セルの動作が最も遅くなる条件
【0037】
まず、TYP条件では、プロセスの項目402がTYP条件(標準条件)であり、温度の項目403が25℃(常温)であり、かつ電圧の項目404が1.8[V]である。つぎに、FAST条件では、プロセスの項目402がFAST条件(速い条件)であり、温度の項目403が−40[℃](低温)であり、かつ電圧の項目404が2.0Vである。そして、SLOW条件では、プロセスの項目402がSLOW条件(遅い条件)であり、温度の項目403が120[℃](高温)であり、かつ電圧の項目404が1.1[V]である。なお、PTV条件テーブル400は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。なお、PTV条件テーブル400内の数値やPTV条件は一例である。
【0038】
(セルの例)
図5は、セルの一例を示す説明図である。実施の形態1では、インバータのセルを例に挙げて説明する。図5では、セル名がINVERTER1であるインバータのセルをトランジスタ記述で示している。INVERTER1はPMOS(P Channel Metal Oxide Semiconductor)とNMOS(N Channel Metal Oxide Semiconductor)とを有している。IN端子に入力される入力電圧(Vin)とOUT端子から出力される出力電圧(Vds)との時間差が遅延時間である。図5で示すCはINVERTER1内の接合容量(寄生容量)であって、INVERTER1の出力側の負荷容量とは異なる容量である。
【0039】
ここで、実施の形態1と実施の形態2で用いるVdsとVds_nonRCとVds_RCとについて説明する。VdsとVds_nonRCとVds_RCとは、いずれもOUT端子から出力される出力電圧を示している。実施の形態1で用いるVdsは、利用者が設定した出力電圧である。実施の形態2で用いるVds_nonRCは、実施の形態1で作成する電流テーブルから算出する出力電圧である。実施の形態2で用いるVds_RCはVds_nonRCを負荷抵抗および負荷容量に基づいて補正することによって得られる出力電圧である。
【0040】
実施の形態1では、IN端子に立ち上がり変化の入力を与えた場合を例に挙げて説明する。立ち上がり遅延時間と立ち下がり遅延時間には対称性があるため、IN端子に立ち下がり変化の入力を与えた場合の例については説明を省略する。また、実施の形態1では、IN端子に立ち上がり変化の入力を与えた場合における、OUT端子の出力電流(Ids)を算出し、算出した結果をテーブル化する。
【0041】
図6は、Vinの一例を示す説明図である。実施の形態1,2では、Vinの変化開始をt=0としている。実施の形態1では、該変化開始からの経過時間ごとにIdsを求める。また、t=0以前にVin=0.0[V]であると、Vds=Vddとなり、t=0でVinの入力が立ち上がるとPMOSは直ちにカットオフする。よって、ここでは、NMOSのみに着目して説明する。
【0042】
ここで、周知のようにMOSの動作領域である飽和領域と非飽和領域とは下記で分類される。
・飽和領域:Vds≧Vgs−Vth
・非飽和領域(線形領域):Vds<Vgs−Vth
【0043】
そして、MOSの動作領域が飽和領域の場合のMOSの出力電流(Ids)の算出式(1)と、MOSの動作領域が非飽和領域の場合のMOSの出力電流(Ids)の算出式(2)と、を下記に示す。
【0044】
【数1】
【0045】
上記式(1)や上記式(2)はRAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。また、各パラメータは以下の通りである。
・μ[cm^2/(V×s)]:キャリア移動度
・ε0(Epsilon0)[F/cm]:真空誘電率
・εox(Epsilon ox)[F/cm]:比誘電率
・Tox[m]:酸化膜圧
・Cox[F]:ゲート容量
・W[m]:ゲート幅
・L[m]:ゲート長
・C[F]:接合容量(寄生容量)
【0046】
(トランジスタ特性のテーブル)
図7は、トランジスタ特性のテーブルを示す説明図である。トランジスタ特性のテーブル700は、テーブル701とテーブル712とを有している。なお、トランジスタ特性のテーブル700は、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
【0047】
テーブル701は、INVERTER1内のMOSごとの各パラメータが格納されている。テーブル701は、トランジスタの項目702と、μの項目703と、Coxの項目704と、ε0の項目705と、εoxの項目706と、Toxの項目707と、W/Lの項目708と、Wの項目709と、Lの項目710と、Cの項目711と、を有している。
【0048】
トランジスタの項目702にはINVERTER1内のMOSの種類が保持されている。μの項目703にはμが保持され、Coxの項目704にはCoxが保持され、ε0の項目705にはε0が保持され、εoxの項目706にはεoxが保持されている。Toxの項目707にはToxが保持され、Wの項目709にはWが保持され、Lの項目710にはLが保持され、Cの項目711にはCが保持されている。
【0049】
さらに、W/Lの項目708にはWの項目709に保持されているWとLの項目710に保持されているLとの比率が保持されている。なお、たとえば、Coxの項目704に保持されている35.42E−06は、35.42×10^(−6)を示している。「^」は乗数である。
【0050】
テーブル712はトランジスタの項目713とVthの項目714とを有している。トランジスタの項目713にはINVERTER1内のMOSの種類が保持されている。Vthの項目714には、INVERTER1内の各トランジスタのVth(ゲート閾値電圧)がPTV条件ごとに格納されている。
【0051】
そして、具体的には、たとえば、CPU201が、PTV条件テーブル400から特定のPTV条件を選択する。または、たとえば、CPU201が、PTV条件テーブル400からPTV条件を順に選択する。実施の形態1では、TYP条件を例に挙げて説明する。すなわち、Vddが1.8[V]である。
【0052】
(Vds)
図8は、Vdsの一例を示す説明図である。テーブル800はVdsの項目801を有し、Vdsの項目801にはVdsが保持されている。実施の形態1では図8のようにVdsを1.8[V]から0.0[V]まで0.1[V]ステップで変化させ、上記式(1)または上記式(2)を用いてIdsを算出する。Vdsが1.8〜1.5[V]の場合、INVERTER1の動作領域は飽和領域であるため、上記式(1)でIdsが算出される。Vdsが1.4〜0.0[V]の場合、INVERTER1の動作領域は非飽和領域であるため、上記式(2)でIdsが算出される。
【0053】
<Idsの算出>
具体的には、たとえば、CPU201が、上記式(1)を記憶装置から取得し、式(1)内の各パラメータをトランジスタ特性のテーブル700から取得し、上記式(1)に設定する。そして、たとえば、CPU201が、NMOSの動作領域が飽和領域におけるIdsを算出する。すなわち、Vdsが1.8〜1.5[V]の場合のIdsが算出される。飽和領域においてはVdsに関係なくIdsは同一電流値である。なお、算出結果は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0054】
そして、具体的には、たとえば、CPU201が、上記式(2)を記憶装置から取得し、上記式(2)内のパラメータをトランジスタ特性のテーブル700から取得し、上記式(2)に設定する。たとえば、CPU201が、テーブル800からステップ順にVds(1.4〜0.0[V])を取得して、上記式(2)に設定し、非飽和領域におけるIdsをVds(1.4〜0.0[V])ごとに算出する。なお、算出結果は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0055】
<経過時間ごとのIds>
図9は、VdsごとのIdsの一例を示す説明図である。テーブル900は、VdsごとのIdsを示し、Vdsの項目901とIdsの項目902とを有している。Vdsの項目901にはVdsが保持され、Idsの項目902には該VdsのIdsが保持されている。
【0056】
グラフ903では、横軸がVds[V]であり、縦軸がIds[A]である。グラフ903では、Vdsが高ければ電流値が高く、Vdsが低ければ電流値が低い。ここで、たとえば、Vds=Vgsを地点Aとし、Vds=Vgs−Vthを地点Bとし、Vgs/2を地点Cとし、Vds=0を地点Dとする。
【0057】
実施の形態1では、INVERTER1の出力電流の変化が地点Aから地点Bになるまでにかかる時間をtABとし、該変化が地点Bから地点Cになるまでにかかる時間をtBCとする。該変化が地点Cから地点Dになるまでにかかる時間をtCDとする。tABは上記式(1)より下記式(3)を用いることにより算出される。
【0058】
【数2】
【0059】
つぎに、tBCについて説明する。電流の時間積分は電荷量であることから、上記非飽和領域におけるIdsの算出式から下記式(4)が得られる。
【0060】
【数3】
【0061】
上記式(4)から上記式(5)が導かれるため、上記式(5)の左辺を0からtBCまで、右辺をVgs−Vthから1/2×Vgsまで積分すると、下記式(6)が得られる。
【0062】
【数4】
【0063】
また、式(3)と式(6)とはRAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
【0064】
まず、具体的には、たとえば、CPU201が、変化時間算出部302により、上記式(3)を記憶装置から取得する。そして、たとえば、CPUが、取得した式(3)内の各パラメータをトランジスタ特性のテーブル700から取得して、上記式(3)に設定し、tABを算出する。つぎに、具体的には、たとえば、CPU201が、変化時間算出部302により、上記式(6)を記憶装置から取得する。そして、たとえば、CPUが、取得した式(6)内の各パラメータをトランジスタ特性のテーブル700から取得し、上記式(6)に設定し、tBCを算出する。
【0065】
算出結果を下記に示す。
・tAB:3.279535511146584E−12
・tBC:5.17154782518248E−12
【0066】
つぎに、たとえば、CPU201が算出したtABとtBCとに基づいてVdsごとのIdsを経過時間ごとのIdsに変換する。
【0067】
図10は、経過時間ごとのIdsを示す説明図である。ここで、Vinの変化開始からの時間を経過時間とする。ここでは、tABは1.8〜1.5[V]までに出力電流値が変化する変化時間であるため、CPU201が、たとえば、経過時間算出部303により、各Vds(または各Ids)での経過時間を下記のように算出する。
【0068】
・Vdsが1.8[V]時の経過時間[sec]:0
・Vdsが1.7[V]時の経過時間[sec]:tAB/3
・Vdsが1.6[V]時の経過時間[sec]:tAB/3+(該1.7[V]時の経過時間)
・Vdsが1.5[V]時の経過時間[sec]:tAB/3+(該1.6[V]時の経過時間)
【0069】
tBCは1.4[V]〜0.9[V]までに出力電流値が変化する変化時間であるため、CPU201が、たとえば、各Vds(または各Ids)での経過時間を下記のように算出する。
【0070】
・Vdsが1.4[V]時の経過時間[sec]:tBC/6+(該1.5[V]時の経過時間)
・Vdsが1.3[V]時の経過時間[sec]:tBC/6+(該1.4[V]時の経過時間)
・Vdsが1.2[V]時の経過時間[sec]:tBC/6+(該1.3[V]時の経過時間)
・Vdsが1.1[V]時の経過時間[sec]:tBC/6+(該1.2[V]時の経過時間)
・Vdsが1.0[V]時の経過時間[sec]:tBC/6+(該1.1[V]時の経過時間)
・Vdsが0.9[V]時の経過時間[sec]:tBC/6+(該1.0[V]時の経過時間)
【0071】
経過時間ごとのIdsの例はテーブル1000である。テーブル1000は経過時間の項目1001と、Idsの項目1002を有している。テーブル1000では、1.8[V]〜0.9[V]時のIdsごとに経過時間が保持されている。
【0072】
また、分解能(TIMESCALE)を1.0E−12[sec]とすると、各Idsの経過時間の例は電流テーブル1003である。電流テーブル1003は、経過時間の項目1004と、Idsの項目1005と、Vinの項目1006と、を有している。Vinの項目1006については図10では省略している。
【0073】
遅延時間計算時の入力閾値や出力閾値はVdd×50[%]であり、地点Cから地点DについてはVds(Vdd=Vdsとした場合)×50[%]以下である。そこで、電流テーブル1003では、地点Cから地点Dについてはテーブル900からVdsのステップに沿ってTIMESCALEが割り当てられている。これに限らず、地点Cから地点Dまでの動作領域は非飽和領域であるため、たとえば、地点Bから地点Cまでを算出したのと同様に算出式を利用者があらかじめ作成し、tCDを算出してもよい。さらに、CPU201が、格納部304により、電流テーブル1003をRAM203、磁気ディスク205、光ディスク207などの記憶装置に格納する。
【0074】
<rDSの算出>
つぎに、INVERTER1内のNMOSの内部抵抗(rDS)の算出について説明する。具体的には、たとえば、CPU201は、VdsをIdsで割ることにより、rDSを算出する。
【0075】
図11は、rDSの算出結果を示す説明図である。たとえば、CPU201が、Vdsごとに該Vdsを算出したIdsを割ることにより、VdsごとのrDSを算出する。そして、ここでは、Vds=1.8[V]の場合のrDSをINVERTER1のNMOSの内部抵抗の値に決定する。決定されたrDSは、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0076】
<trとtf>
つぎに、trとtfとの影響を考慮した電流テーブルの作成について説明する。ここで、trとは立ち上がり入力電圧(Vin)が立ち上がるまでの時間を示し、tfとは立ち下がり入力電圧(Vin)が立ち下がるまでの時間を示す。
【0077】
図12は、Vinの他の例を示す説明図である。グラフ1200では、変化1と変化2との2つのVinの変化例を示している。変化1は、図6で示したVinと同様に遅延なしで立ち上がったVinである。すなわち、変化1の場合、trは0である。一方、変化2は0.0[V]からVdd[V]までに10E−12[sec]の時間がかかる。すなわち、変化2の場合、trは10E−12[sec]である。該trを電流テーブル1003に反映させると、下記の様になる。
【0078】
図13は、入力スルーの反映例を示す説明図である。ここでは、たとえば、入力スルー依存の遅延時間をVthまでのtrとする。すなわち、10E−12/1.8×0.36(tr/Vdd×Vth)=2.0E−12[sec]が入力スルー依存の遅延時間である。具体的には、たとえば、CPU201が、電流テーブル1003へ2.0E−12の遅延時間を加えることにより電流テーブル1300を作成することができる。
【0079】
電流テーブル1300は、経過時間の項目1301と、Idsの項目1302と、Vinの項目1303と、を有している。経過時間の項目1301は経過時間を保持し、Idsの項目1302はIdsを保持し、Vinの項目1303はVinを保持している。また、Vinの項目1303については、経過時間が10E−12[sec]に1.8[V]となるように値が設定されている。
【0080】
つぎに、たとえば、CPU201が、電流テーブル1003と電流テーブル1300とを出力する。出力形式としては、たとえば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信がある。また、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶することとしてもよい。
【0081】
(実施の形態1にかかる設計支援装置300の設計支援処理手順)
図14および図15は、実施の形態1にかかる設計支援装置300による設計支援処理手順の一例を示すフローチャートである。まず、CPU201が、トランジスタの各パラメータを取得する(ステップS1401)。そして、CPU201が、複数のPTV条件から特定のPTV条件を選択し(ステップS1402)、選択したPTV条件のVthを取得する(ステップS1403)。
【0082】
そして、CPU201が、選択したPTV条件の複数のVdsを取得し(ステップS1404)、飽和領域に関するIdsの算出式(1)を取得する(ステップS1405)。CPU201が、式(1)の各変数に取得した各パラメータを代入し、Idsを複数のVdsのうち特定電圧値以上のVdsごとに算出する(ステップS1406)。上述のように特定電圧値はVgs(Vin)−Vthである。
【0083】
つぎに、CPU201が、非飽和領域に関するIdsの算出式(2)を取得する(ステップS1407)。CPU201が、式(2)の各変数に取得した各パラメータを代入し、Idsを複数のVdsのうち特定電圧値未満のVdsごとに算出する(ステップS1408)。そして、CPU201が、IdsとVdsとに基づいて内部抵抗値を算出し(ステップS1409)、内部抵抗値を出力する(ステップS1410)。
【0084】
つぎに、CPU201が、tABの算出式(3)を取得し(ステップS1411)、式(3)の各変数に取得した各パラメータを代入し、tABを算出する(ステップS1412)。そして、CPU201が、特定電圧値以上のVdsの各出力電流値の経過時間を算出したtABに基づいて算出する(ステップS1413)。
【0085】
そして、CPU201が、tBCの算出式(6)を取得し(ステップS1414)、式(6)の各変数に取得した各パラメータを代入し、tBCを算出する(ステップS1415)。そして、CPU201が、特定電圧値未満のVdsの各出力電流値の経過時間を算出したtBCに基づいて算出する(ステップS1416)。
【0086】
そして、CPU201が、Idsごとに算出した経過時間を格納し(ステップS1417)、一連の処理を終了する。
【0087】
(実施の形態2)
つぎに、実施の形態2では、実施の形態1で作成した電流テーブルを用いて設計対象回路の回路情報内の対象セルの遅延時間を算出する例を説明する。また、実施の形態2では、実施の形態1で説明したハードウェアについては同一であるため、同一符号としてその説明を省略する。
【0088】
(実施の形態2にかかる設計支援装置の機能ブロック図)
図16は、実施の形態2にかかる設計支援装置の機能ブロック図である。設計支援装置1600は、抽出部1601と、決定部1602と、補正部1603と、出力部1604と、特定部1605と、算出部1606と、を有している。図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶された各機能(抽出部1601〜算出部1606)を有する設計支援プログラムをCPU201がロードする。そして、該設計支援プログラムにコーディングされている処理をCPU201が実行することにより、該各機能が実現される。
【0089】
抽出部1601は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。
【0090】
決定部1602は、抽出部1601により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する。なお、特定電圧値とは、Vgs(Vin)−Vthである。
【0091】
補正部1603は、決定部1602により決定された経過時間に対象セルの出力側の時定数を加算する。
【0092】
出力部1604は、補正部1603による補正後の経過時間ごとの出力電圧値と決定部1602により決定されなかった経過時間ごとの出力電圧値とを出力する。
【0093】
特定部1605は、出力部1604により出力された出力電圧値のうち、対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する。
【0094】
算出部1606は、対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、特定部1605により特定された経過時間との時間差を算出する。
【0095】
また、特定部1605は、出力部1604により出力された出力電圧値のうち、対象セルの次段セルの入力電圧の閾値である出力電圧値の経過時間を特定する。
【0096】
算出部1606は、対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、特定部1605により特定された経過時間との時間差を算出する。
【0097】
以上を踏まえて詳細に説明する。
【0098】
(電流テーブル群)
図17は、電流テーブル群の一例を示す説明図である。電流テーブル群1700は、セルごとの電流テーブルを有している。INVERTER1を例に挙げると、電流テーブル群1700には、INVERTER1の電流テーブルやINVETER2の電流テーブルなど、各セルの電流テーブルを有している。INVERTE1の電流テーブル群は、TYP条件のテーブル群と、FAST条件のテーブル群と、SLOW条件のテーブル群を有している。さらに、TYP条件のテーブル群は、立ち上がり入力のテーブルと、立ち下がり入力のテーブルとを有している。
【0099】
さらに、立ち下がり入力のテーブルはtfごとにテーブルを有し、立ち上がり入力のテーブルはtrごとにテーブルを有している。立ち上がり入力のテーブル群には、たとえば、実施の形態1で示した電流テーブル1003や電流テーブル1300を有している。なお、電流テーブル群1700は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
【0100】
(内部抵抗テーブル)
図18は、内部抵抗テーブル群の一例を示す説明図である。内部抵抗テーブル群1800は、セルごとに各セル内のMOSの内部抵抗の値を保持している。たとえば、内部抵抗テーブル1801では、INVERTER1のNMOSの内部抵抗の値とINVERTER1のPMOSの内部抵抗の値とを保持している。
【0101】
実施の形態2では、経過時間ごとの出力電流値を有するテーブル1300と内部抵抗テーブル1801に基づいて設計対象回路の回路情報から選択された対象セルの経過時間ごとの出力電圧値を有するテーブルを算出している。これに限らず、利用者が、経過時間ごとの出力電圧値を有するテーブルをセルごとにあらかじめ作成してもよい。
【0102】
(設計対象回路の回路情報)
図19は、設計対象回路の回路情報の一例を示す説明図である。回路情報1900は、設計対象回路内のセルの接続情報を含む電子データであり、具体的には、たとえば、設計対象回路のレイアウトデータや論理合成後における設計対象回路のネットリストである。回路情報1900では、セルC1〜C7を有している。
【0103】
ここで、インスタンス名とは、設計対象回路内の各セルの固有の名称であり、セル名とは、セルの種類を示すための名称である。セルC1〜C7とはインスタンス名であり、INVERTER1と、INVERTER2と、2AND1(2入力で1出力のAND)と、BUFFER1と、BUFFER2と、FF1とは、セル名である。
【0104】
たとえば、INVERTER1やINVERTER2のようにいずれもインバータであり、論理が同一であっても、それぞれ性能が異なる。たとえば、セルC1とセルC7とはインスタンス名が異なるが、いずれもINVERTER1である。実施の形態2では、セルC1とセルC7で同一セル名であっても、各セルの出力側の配線や該セルの次段セルが異なるので、時定数が異なり、該セルの前段セルが異なるので、入力スルーが異なる。そのため、セルC1とセルC7とでは異なる遅延時間が算出される。
【0105】
CPU201が、たとえば、パスP上のセルC1〜C5までの各セルの遅延時間を算出し、算出した遅延時間を合計することで、パスPの遅延時間を算出することができる。そこで、CPU201が、たとえば、パスPをセルごとに分割してパスP1〜P5として、分割した各パスの遅延時間を算出する。
【0106】
ここで、パスとは、入力端子からマクロ(たとえば、FF(フリップフロップ))までの一連のセルおよびネットの集合、マクロ(たとえば、FF(フリップフロップ))間の一連のセルおよびネットの集合である。または、パスとは、マクロから出力端子までの一連のセルおよびネットの集合である。
【0107】
また、セルC1の出力側の配線がcline1であり、セルC2の出力側の配線がcline2であり、セルC3の出力側の配線がcline3である。セルC4の出力側の配線がcline4であり、セルC5の出力側の配線がcline5である。半導体集積回路において配線はMETALやPolysiliconで形成されるため、図19中cline1で示すように配線は抵抗(配線抵抗)や容量(配線容量)で表される。
【0108】
(配線テーブル)
図20は、配線テーブルの一例を示す説明図である。まず、配線テーブル2000では、回路情報1900内の各セルの出力から次段セルへの入力までの配線の配線抵抗の値や配線容量の値を保持している。配線テーブル2000では、配線の項目2001と、配線抵抗の項目2002と、配線容量の項目2003と、を有している。
【0109】
配線の項目2001では配線名を保持し、配線抵抗の項目2002では配線抵抗の値を保持し、配線容量の項目2003では配線容量の値を保持している。なお、配線テーブル2000は、たとえば、設計対象回路のレイアウトデータから抽出された配線情報に基づいて設計者により作成される。
【0110】
図19の説明に戻って、つぎに、たとえば、セルC1の次段セルはセルC2である。セルC2の入力容量がセルC1の出力側の負荷容量(セルC1の負荷容量)の一部となる。ここで、セルの入力容量とは、たとえば、セル内のMOSのゲート容量である。
【0111】
(セルの入力容量)
図21は、セルの入力容量の一例を示す説明図である。入力容量テーブル2100では各セルの入力容量の値を保持している。入力容量テーブル2100ではセル名の項目2101と入力容量の項目2102とを有している。たとえば、セル名の項目2101に保持されているセル名がINVERTER1の場合、入力容量の項目2100は5[fF]が保持されている。
【0112】
図19の説明に戻って、また、たとえば、セルC7の次段セルはなく、セルC7の次段は出力端子である。この場合、セルC7の出力側の負荷抵抗や負荷容量が不明であるため、実施の形態2では、利用者(設計者または検証者)によりあらかじめ定義された外部負荷抵抗の値や外部負荷容量の値をそれぞれセルC7の負荷抵抗の値やセルC7の負荷容量の値に用いる。
【0113】
また、セルC1の前段セルはなくセルC1の前段は入力端子である。この場合、入力スルーが不明であるため、実施の形態2では、利用者(設計者または検証者)によりあらかじめ定義された外部入力スルーを該セルC1の入力スルーに用いる。
【0114】
(制約テーブル)
図22は、制約テーブルの一例を示す説明図である。制約テーブル2200には、外部入力スルーと外部負荷容量の値と外部負荷抵抗の値とが格納されている。実施の形態2では、上述のようにセルC1の入力スルーには制約テーブル2200内の外部入力スルーの項目2201に保持されている値を用いる。また、上述のように実施の形態2では、セルC7の負荷容量および負荷抵抗にはそれぞれ制約テーブル2200内の外部負荷容量の項目2202に保持されている値と外部負荷抵抗の項目2203に保持されている値とを用いる。
【0115】
(閾値テーブル)
図23は、閾値テーブルの一例を示す説明図である。閾値テーブル2300では、入力電圧の時間的変化と出力電圧の時間的変化とに基づいて遅延時間を算出する際の、入力電圧の閾値(以下、「入力閾値」と称する。)と、出力電圧の閾値(以下、「出力閾値」と称する。)を保持している。閾値テーブル2300は、セル名の項目2301と、入力閾値の項目2302と、出力閾値の項目2303とを有している。
【0116】
セル名の項目2301にはセル名が保持され、入力閾値の項目2302には入力閾値が保持され、出力閾値の項目2303には出力閾値が保持されている。セル名の項目2301がDEFAULTの場合を例に挙げると、入力閾値が50[%]で、出力閾値が50[%]である。この場合、VinがVdd×50[%]の場合の経過時間からVdsがVdd×50[%]の場合の経過時間までの時間差が対象セルの遅延時間となることを示している。
【0117】
つぎに、具体的な処理例を説明する。まず、例1では、遅延時間と入力スルーの算出について説明する。つぎに、例2では、対象セルの次段セルの閾値が対象セルの閾値と異なる場合について説明する。
【0118】
(例1)
<時定数の算出>
まず、具体的には、たとえば、CPU201が、回路情報1900からセルC1を対象セルとして選択する。つぎに、具体的には、たとえば、CPU201が、セルC1の次段セル(セルC2)の入力容量の値と、セルC1の出力側のcline1の配線容量の値とcline1の配線抵抗の値とを取得する。そして、たとえば、CPU201が、セルC1の前段セルがあるか無いかを判断し、該前段セルが無いため、制約テーブル2200内の外部入力スルーの項目2201に保持されている値を取得してセルC1の入力スルーに決定する。
【0119】
取得結果を下記に示す。
・セルC1の次段セル(セルC2)の入力容量の値:5[fF]
・cline1の配線容量の値:5[fF]
・cline1の配線抵抗の値:50[Ω]
・外部入力スルー:10E−12[sec]
【0120】
実施の形態2では、対象セルをCPU201が自動で選択しているため、CPU201が記憶装置にアクセスし、該配線容量の値や該配線抵抗の値や該外部入力スルーを取得している。これに限らず、たとえば、利用者が対象セルを選択して、利用者が該配線容量の値や該配線抵抗の値や該外部入力スルーを設計支援装置1600に入力し、CPU201が、該入力を受け付けてもよい。
【0121】
つぎに、具体的には、たとえば、CPU201が、セルC1のセル名はINVERTER1であるため、抽出部1601により、INVERTER1の電流テーブルから立ち上がり入力または立ち下がり入力の電流テーブルを外部入力スルーに基づいて抽出する。ここでは、立ち上がり入力を例に挙げ、電流テーブル1300が取得されることとする。
【0122】
つぎに、具体的には、たとえば、CPU201が、セルC2の入力容量の値とcline1の配線容量の値とに基づいてセルC1の負荷容量の値を算出する。
・セルC1の負荷容量の値=セルC2の入力容量の値+cline1の配線容量の値
=5.0E−15[F]+5.0E−15[F]
=10.0E−15[F]
【0123】
そして、たとえば、CPU201が、セルC1の負荷容量の値とcline1の配線抵抗の値とを乗算することにより時定数を算出する。なお、算出結果を下記に示す。
・セルC1の時定数=セルC1の負荷容量の値×cline1の配線抵抗の値
=10.0E−15[F]×50[Ω]
=0.5E−12[sec]
【0124】
<出力電圧値の算出>
図24は、出力電圧の算出例を示す説明図である。つぎに、具体的には、たとえば、CPU201が、抽出した電流テーブルと、INVERTER1のNMOSの内部抵抗に基づいて経過時間ごとの出力電圧の値を算出する。テーブル2400が算出結果である。テーブル2400は、経過時間の項目2401と、Vds_nonRCの項目2402と、Vinの項目2403とを有している。なお、テーブル2400は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0125】
つぎに、INVERTER1の動作領域が飽和領域となるVds_nonRCの経過時間は時定数で補正されず、INVERTER1の動作領域が非飽和領域となるVds_nonRCの経過時間は時定数で補正される。実施の形態2では、動作領域が飽和領域の場合には、出力電流が十分流れているため、セルC1の負荷容量と負荷抵抗による影響が小さいため、動作領域が飽和領域であるVds_nonRCの経過時間を補正しない。
【0126】
具体的には、たとえば、CPU201が、決定部1602により、Vds_nonRCごとにVgs(Vin)−Vthを算出する。そして、たとえば、CPU201が、決定部1602により、Vds_nonRCごとにVds_nonRC<Vgs(Vin)−Vthであるか否かを判断する。たとえば、CPU201が、決定部1602により、Vds_nonRC<Vgs(Vin)−Vthであれば、該Vds_nonRCの経過時間を補正対象の経過時間に決定する。
【0127】
図25は、補正対象の経過時間の決定例を示す説明図である。たとえば、経過時間が10E−12[sec]の場合、Vds_nonRCが約1.51[V]であり、Vgs−Vthが1.44[V]である。よって、Vds_nonRC≧Vgs−Vthであるため、経過時間が10E−12[sec]の場合、INVERTER1のNMOSの動作領域は飽和領域である。
【0128】
つぎに、たとえば、経過時間が11E−12[sec]の場合、Vds_nonRCが約1.41[V]であり、Vgs−Vthが1.44[V]である。よって、Vds_nonRC≧Vgs−Vthであるため、経過時間が11E−12[sec]の場合、INVERTER1のNMOSの動作領域は非飽和領域である。よって、経過時間が10E―12は補正対象として決定される。ここでは、11E―12〜19E−12[sec]が補正対象の経過時間として決定される。
【0129】
図26は、補正例を示す説明図である。具体的には、たとえば、CPU201が、補正部1603により、補正対象の経過時間に決定した各経過時間に対して、算出したセルC1の時定数を加算することにより、該補正対象の経過時間を補正する。
【0130】
図26では、たとえば、t0は補正対象でないが、t1とt2とが補正対象である経過時間である。そして、グラフ2604では、t1とt2にそれぞれτが加算されることにより、補正されている。t1とt2との補正結果はそれぞれt1’とt2’とである。そして、たとえば、CPU201が、出力部1604により、補正後の経過時間ごとの出力電圧の値と、補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【0131】
出力形式としては、たとえば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信がある。また、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶することとしてもよい。
【0132】
出力結果としては、テーブル2600が挙げられる。テーブル2600は、経過時間の項目2601と、Vds_RCの項目2602と、Vinの項目2603とを有している。経過時間の項目2601は経過時間を保持し、Vds_RCの項目2602はVds_RCを保持し、Vinの項目2603はVinを保持している。なお、Vds_RCはVds_nonRCから電圧値は変化していないが、経過時間が補正されている。
【0133】
さらに、測定数(経過時間の数)が少ない場合、複数の経過時間の経過時間ごとの出力電圧値の該複数の経過時間を補完してもよい。具体的には、CPU201が、たとえば、一の経過時間(tX)と一の経過時間の次の経過時間(tY)との中間の経過時間(tZ)でのVds_RCを、下記式(7)を用いて算出することにより、補完する。
【0134】
Vds_RC(tZ)={Vds_RC(tX)[V]−Vds_RC(tY)[V]}/{tX[psec]−tY[psec]}×τ[psec]+Vds_RC(tY)[V]
・・・(7)
【0135】
たとえば、tAとtBとが下記の場合を例に挙げて説明する。
・tX=13.5[psec]
・tY=12.5[psec]
・tZ=13[psec]
・Vds(tX)=1.162[V]
・Vds(tY)=1.297[V]
・τ=0.5[psec]
・Vds_RC(13)={1.297[V]−1.162[V]}/{13.5[psec]−12.5[psec]}×0.5[psec]+1.162[V]
=1.229[V]
【0136】
図27は、補完結果を示す説明図である。テーブル2700は、上記式(7)を用いてテーブル2700を補完した補完結果である。テーブル2700は、経過時間の項目2701と、Vds_RCの項目2702と、Vinの項目と、を有している。図27では、Vinの項目を省略して記載している。補完については、一例として、12.5[psec]〜19.5[psec]の間でのみ実施されている。
【0137】
<遅延時間および出力スルーの算出>
つぎに、対象セルの遅延時間の算出について説明する。具体的には、たとえば、CPU201が、閾値テーブル2300から対象セルの入力閾値と対象セルの出力閾値とをセル名に基づいて検索する。閾値テーブル2300内にINVERTER1に対応するセル名が無いため、DEFAULTの閾値が検索される。DEFAULTの入力閾値が50[%]であり、DEFAULTの出力閾値が50[%]である。
【0138】
そして、具体的には、たとえば、CPU201が、特定部1605により、テーブル2700から取得した対象セルの出力閾値と同一であるVds_RCの経過時間を特定する。さらに、たとえば、CPU201が、特定部1605により、テーブル2700から取得した対象セルの入力閾値と同一であるVinの経過時間を特定する。そして、たとえば、CPU201が、算出部1606により、特定したVinの経過時間と特定したVds_RCの経過時間との時間差を遅延時間として算出する。
【0139】
図28は、遅延時間の算出例を示す説明図である。グラフ2800では、経過時間ごとの入力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線(入力電圧折れ線)が示されている。さらに、グラフ2800では、経過時間ごとの出力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線(出力電圧折れ線)が示されている。グラフ2800では、横軸が経過時間であり、縦軸が電圧である。
【0140】
入力閾値が50[%]であり、出力閾値が50[%]である。入力電圧折れ線のうちVdd×50[%]となる経過時間から、出力電圧折れ線のVdd×50[%]となる経過時間までの時間差が対象セルの遅延時間である。また、入力電圧折れ線と出力電圧折れ線は単にプロット間を経過時間順に接続されているが、これに限らず、たとえば、線形近似などの近似がおこなわれてもよい。
【0141】
つぎに、対象セルの出力スルーの算出について説明する。対象セルの出力スルーは対象セルの次段セルの入力スルーとして用いられる。たとえば、対象セルの立ち下がり出力の出力スルーは、次段セルの立ち下がり入力の遅延時間の算出時に用いられ、対象セルの立ち上がり出力の出力スルーは、次段セルの立ち上がり入力の遅延時間の算出時に用いられる。
【0142】
実施の形態2では、立ち下がり出力の場合、出力スルーをVdd×80[%]での経過時間からVdd×20[%]での経過時間までの時間差とする。実施の形態2では、立ち上がり出力の場合、出力スルーをVdd×20[%]での経過時間からVdd×80[%]での経過時間までの時間差とする。
【0143】
具体的には、たとえば、CPU201が、特定部1605により、テーブル2700からVdd×80[%]であるVds_RCの経過時間と、テーブル2700からVdd×20[%]であるVds_RCの経過時間と、を特定する。つぎに、たとえば、CPU201が、算出部1606により、特定した2つの経過時間の時間差を出力スルーとして算出する。
【0144】
図29は、出力スルーの算出例を示す説明図である。グラフ2900では、経過時間ごとの出力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線が示されている。グラフ2900では、横軸が経過時間であり、縦軸が電圧である。
【0145】
折れ線のVdd×80[%]の経過時間からVdd×20[%]の経過時間までの時間差が出力スルーである。そして、たとえば、CPU201が、算出した遅延時間と出力スルーとを出力する。出力形式としては、たとえば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信がある。また、出力形式としては、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶することとしてもよい。
【0146】
(例2)
つぎに、対象セルの出力閾値と該対象セルの次段セルの入力閾値とが異なる場合について説明する。例2では対象セルを回路情報1900内のセルC4とする。
【0147】
具体的には、たとえば、CPU201が、回路情報1900内からセルC4の次段セルを特定する。ここでは、次段セルとしてセルC5が特定される。そして、具体的には、たとえば、CPU201が、閾値テーブル2300から対象セルの入力閾値をセル名に基づいて検索する。さらに、たとえば、CPU201が、閾値テーブル2300から次段セルの入力閾値をセル名に基づいて検索する。
【0148】
セルC4のセル名はBUFFER1であるため、セルC4の入力閾値が40[%]である。セルC5のセル名はBUFFER2であるため、セルC5の入力閾値が50[%]である。
【0149】
そして、たとえば、CPU201が、特定部1605により、対象セルの入力閾値と同一値であるVds_RCの経過時間と、次段セルの入力閾値と同一値であるVinの経過時間と、を特定する。そして、たとえば、CPU201が、算出部1606により、特定した2つの経過時間との時間差を遅延時間として算出する。
【0150】
図30は、例2における遅延時間の算出を示す説明図である。グラフ3000では、例2における遅延時間の算出例を示している。グラフ3000およびグラフ3001は、セルC4の入力と、セルC4の出力(セルC5の入力)と、セルC5の出力を示している。
【0151】
グラフ3001では、セルC4の遅延時間の算出時に、テーブル内のBUFFER1の出力閾値を用いている。グラフ3001ではセルC4の遅延時間の算出とセルC5の遅延時間の算出とで、共有してしまう時間があり、該時間が遅延誤差となる。
【0152】
一方、グラフ3000では、セルC4の遅延時間の算出時に、セルC5の入力閾値をセルC4の出力閾値として用いているため、該遅延誤差が発生しない。すなわち、遅延誤差の発生を防止することができる。
【0153】
(実施の形態2にかかる設計支援装置1600の設計支援処理手順)
図31〜図34は、実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャートである。まず、CPU201が、回路情報内のパスPを構成するセルごとにパスPを分割する(ステップS3101)。そして、CPU201が、i=1とし(ステップS3102)、パスP上の先頭からi番目の分割パスPiがあるか否かを判断する(ステップS3103)。
【0154】
まず、CPU201が、先頭からi番目の分割パスPiがあると判断した場合(ステップS3103:Yes)、分割パスPi上のセルを対象セルに選択する(ステップS3104)。つぎに、CPU201が、対象セルの前段セルがあるか否かに基づいて、対象セルが外部入力セルであるか否かを判断する(ステップS3105)。
【0155】
CPU201が、対象セルが外部入力セルであると判断した場合(ステップS3105:Yes)、対象セルの入力スルーを外部スルー条件に設定する(ステップS3106)。一方、対象セルが外部入力セルでないと判断した場合(ステップS3105:No)、対象セルの入力スルーを前段セルの出力スルーに設定する(ステップS3107)。
【0156】
ステップS3106またはステップS3107のつぎに、CPU201が、対象セルの次段セルがあるか否かに基づいて、対象セルが外部出力セルであるか否かを判断する(ステップS3108)。外部出力セルとは、対象セルの出力が他のセルに接続されず、対象セルの出力が出力端子に接続されて外部に出力されるセルを示している。
【0157】
ステップS3108において、CPU201が、対象セルが外部出力セルであると判断した場合(ステップS3108:Yes)、対象セルが外部出力セルである外部負荷容量の値と該負荷抵抗の値とを取得する(ステップS3109)。CPU201が、対象セルの負荷抵抗値の値=外部負荷抵抗の値とし(ステップS3110)、対象セルの負荷容量の値=外部負荷容量の値とする(ステップS3111)。
【0158】
ステップS3108において、CPU201が、対象セルが外部出力セルでないと判断した場合(ステップS3108:No)、対象セルの配線容量の値と次段セルの入力容量の値と対象セルの配線抵抗の値とを取得する(ステップS3112)。そして、CPU201が、対象セルの配線抵抗の値=対象セルの配線抵抗の値とし(ステップS3113)、対象セルの負荷容量の値=対象セルの配線容量の値+次段セルの入力容量の値とする(ステップS3114)。
【0159】
そして、CPU201が、ステップS3111またはステップS3114のつぎに、τ=対象セルの負荷容量の値×対象セルの負荷抵抗の値とし(ステップS3115)、PTV条件から所定のPTV条件を選択する(ステップS3116)。そして、CPU201が、PTV条件および入力スルーに基づいて電流テーブルと対象セルのオン抵抗値を取得する(ステップS3117)。
【0160】
つぎに、CPU201が、取得した電流テーブル内の各出力電流値に取得したオン抵抗値を乗算し(ステップS3118)、PTV条件に基づいて対象セルのVthを取得する(ステップS3119)。そして、CPU201が、未選択の経過時間があるか否かを判断し(ステップS3120)、未選択の経過時間があると判断した場合(ステップS3120:Yes)、未選択の経過時間から1つの経過時間を選択する(ステップS3121)。
【0161】
つぎに、CPU201が、選択した経過時間の出力電圧値<選択した経過時間の入力電圧値−Vthであるか否かを判断する(ステップS3122)。CPU201が、選択した経過時間の出力電圧値<選択した経過時間の入力電圧値−Vthであると判断した場合(ステップS3122:Yes)、選択した経過時間を補正対象の経過時間に決定し(ステップS3123)、ステップS3120へ戻る。CPU201が、選択した経過時間の出力電圧値<選択した経過時間の入力電圧値−Vthでないと判断した場合(ステップS3122:No)、ステップS3120へ戻る。
【0162】
ステップS3120において、CPU201が、未選択の経過時間がないと判断した場合(ステップS3120:No)、決定した補正対象の経過時間にτを加算することにより該経過時間を補正する(ステップS3124)。つぎに、CPU201が、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する(ステップS3125)。
【0163】
そして、CPU201が、対象セルの次段セルがあるか否かを判断し(ステップS3126)、次段セルがあると判断した場合(ステップS3126:Yes)、対象セルの入力閾値と次段セルの入力閾値とを取得する(ステップS3127)。つぎに、CPU201が、次段セルの入力閾値である出力電圧値の経過時間を特定する(ステップS3128)。
【0164】
一方、ステップS3126において、CPU201が、次段セルがないと判断した場合(ステップS3126:No)、対象セルの入力閾値と対象セルの出力閾値とを取得する(ステップS3129)。そして、CPU201が、対象セルの出力閾値である出力電圧値の経過時間を特定する(ステップS3130)。
【0165】
ステップS3128またはステップS3130のつぎに、CPU201が、対象セルの入力閾値である入力電圧値の経過時間を特定し(ステップS3131)、特定した2つの経過時間の時間差を算出する(ステップS3132)。つぎに、CPU201が、対象セルと算出した時間差を遅延時間として対象セルに関連付けて出力する(ステップS3133)。
【0166】
本フローチャートでは、パスPの遅延時間を算出しているため、対象セルの次段セルがある場合、次段セルの入力閾値を対象セルの出力閾値として遅延時間を算出している。これにより、パスPの遅延誤差を抑制することができる。また、対象セルの遅延時間のみが必要な場合には、対象セルの次段セルがあっても、対象セルの出力閾値を取得して遅延時間を算出してもよい。
【0167】
CPU201が、出力スルーの閾値である出力電圧値の経過時間を特定し(ステップS3134)、対象セルの出力スルーを算出し(ステップS3135)、対象セルと出力スルーとを関連付けて出力する(ステップS3136)。そして、CPU201が、i=i+1とし(ステップS3137)、ステップS3103へ戻る。
【0168】
ステップS3103において、CPU201が、先頭からi番目の分割パスPiがないと判断した場合(ステップS3103:No)、パスP上の各セルの遅延時間を合計することでパスPの遅延時間を算出する(ステップS3138)。そして、CPU201が、パスPと算出した遅延時間とを関連付けて出力する(ステップS3139)。
【0169】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、対象セルの出力側のR(負荷抵抗)C(負荷容量)の時定数をRCの充電放電により出力電圧の変化が遅延する遅延時間とする。そして、対象セルへの入力電圧の変化開始からの経過時間に加算することで、該経過時間を補正する。これにより、設計対象回路内の各セルによって異なるRCによる過渡応答が再現される。すなわち、RCで鈍る出力電圧を再現することができ、遅延誤差を抑制することができる。
【0170】
また、補正後の経過時間ごとの出力電圧値と入力電圧の値に基づいて対象セルの遅延時間を算出することにより、遅延誤差の小さい遅延時間を自動で算出することができる。
【0171】
また、対象セルに次段セルがある場合、次段セルの入力電圧の閾値を対象セルの出力電圧の閾値として遅延時間を算出することにより、遅延誤差の小さい遅延時間を自動で算出することができる。よって、正確なパスの遅延時間を算出することができる。
【0172】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、特定閾値以上である複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。セルへの入力電圧の変化開始時からの経過時間を出力電流値ごとに該変化時間に基づいて算出し、出力電流値ごとの経過時間を記憶装置へ格納する。これにより、経過時間ごとの出力電流値のテーブルを容易に作成することができる。出力電流値のテーブルにより、遅延時間の算出や電力の解析などに流用することができる。
【0173】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、特定閾値未満である複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。セルへの入力電圧の変化開始時からの経過時間を出力電流値ごとに該変化時間に基づいて算出し、出力電流値ごとの経過時間を記憶装置へ格納する。これにより、経過時間ごとの出力電流値のテーブルを容易に作成することができる。出力電流値のテーブルにより、遅延時間の算出や電力の解析などに流用することができる。
【0174】
なお、本実施の形態1および2で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、たとえば、磁気ディスク205、光ディスク207などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【0175】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0176】
(付記1)セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータに、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を抽出する抽出工程と、
前記抽出工程により抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行させることを特徴とする設計支援プログラム。
【0177】
(付記2)前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする付記1に記載の設計支援プログラム。
【0178】
(付記3)前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの次段セルの前記入力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする付記1に記載の設計支援プログラム。
【0179】
(付記4)コンピュータに、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【0180】
(付記5)コンピュータに、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【0181】
(付記6)セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出手段と、
前記抽出手段により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定手段と、
前記決定手段により決定された経過時間に前記対象セルの出力側の時定数を加算する補正手段と、
前記補正手段による補正後の経過時間ごとの出力電圧値と前記決定手段により決定されなかった経過時間ごとの出力電圧値とを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【0182】
(付記7)特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得手段と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得手段により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出手段と、
前記変化時間算出手段により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出手段と、
前記経過時間算出手段により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納手段と、
を備えることを特徴とする設計支援装置。
【0183】
(付記8)特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得手段と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得手段により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出手段と、
前記変化時間算出手段により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出手段と、
前記経過時間算出手段により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納手段と、
を備えることを特徴とする設計支援装置。
【0184】
(付記9)セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータが、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出工程と、
前記抽出工程により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【0185】
(付記10)コンピュータが、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行することを特徴とする設計支援方法。
【0186】
(付記11)コンピュータが、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行することを特徴とする設計支援方法。
【符号の説明】
【0187】
300,1600 設計支援装置
301 取得部
302 変化時間算出部
303 経過時間算出部
304 格納部
900,1000,2400,2600,2700 テーブル
1003,1300 電流テーブル
1601 抽出部
1602 決定部
1603 補正部
1604 出力部
1605 特定部
1606 算出部
【技術分野】
【0001】
本発明は、半導体集積回路の設計を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【0002】
従来、アナログ回路の設計においては、SPICEなどのシミュレータを用いてアナログ特性をシミュレーションする技術が知られている。
【0003】
一方、ディジタル回路の設計においてもSPICEなどのシミュレータを用いてシミュレーションすることで正確な遅延時間を得ることができる(たとえば、下記特許文献1参照。)(以下、「従来技術1」と称する。)。しかしながら、従来技術1のように設計対象回路内のすべてのセルについてSPICEなどを用いておこなうには、膨大な時間がかかる問題点があった。
【0004】
そこで、設計で用いるセルごとに遅延時間および出力スルー(セルが出力する出力電圧の立ち上がり(または立ち上がり)に要する時間)をSPICEなどのシミュレータを用いて特定し、ライブラリとして記憶する技術が知られている。そして、設計対象回路内の各セルの遅延時間は、該ライブラリを参照することで算出していた(たとえば、下記特許文献2参照。)(以下、「従来技術2」と称する。)。
【0005】
また、設計対象回路内のパスの遅延時間は、パスを構成するセルの遅延時間を加算することで計算されることが知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2004−501438号公報
【特許文献2】特開平10−198720号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来技術2では、各セルの出力側の負荷抵抗(たとえば、配線抵抗)および負荷容量(配線容量や次段セルの入力容量)を集中定数容量に置き換える。そして、従来技術2では、入力電圧の時間的変化を回路モデルへ与えてSPICEにより出力電圧の時間的変化を算出する。
【0008】
設計対象回路のレイアウトによってセルごとに負荷抵抗や負荷容量の値が異なるため、従来技術1を用いた場合と比較して遅延時間に誤差が発生する問題点があった。さらに、集中定数容量の値のみで出力電圧値を算出しているため、R(負荷抵抗)C(負荷容量)による過渡応答が直線近似されてしまい、従来技術1を用いた場合と比較して遅延時間に誤差が発生する問題点があった。また、上述のように従来技術1を用いると、膨大な時間がかかる問題点があった。
【0009】
特に近年の微細化されたプロセスにおいて従来技術2を用いると、低電圧化、高集積化、および高速化に伴い従来技術2で得られる遅延時間と従来技術1で得られる遅延時間との誤差が顕著に表れるようになる。すなわち、近年では遅延時間の誤差の影響を無視できない問題点があった。
【課題を解決するための手段】
【0010】
本発明の一観点によれば、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出し、抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定し、決定された経過時間に前記対象セルの出力側の時定数を加算し、補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する設計支援プログラム、設計支援装置、および設計支援方法が提供される。
【発明の効果】
【0011】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、RCで鈍る出力電圧を再現でき、遅延誤差を抑制することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】本発明の一例を示す説明図である。
【図2】設計支援装置のハードウェアを示すブロック図である。
【図3】実施の形態1にかかる設計支援装置の機能ブロック図である。
【図4】PTV条件の一例を示す説明図である。
【図5】セルの一例を示す説明図である。
【図6】Vinの一例を示す説明図である。
【図7】トランジスタ特性のテーブルを示す説明図である。
【図8】Vdsの一例を示す説明図である。
【図9】VdsごとのIdsの一例を示す説明図である。
【図10】経過時間ごとのIdsを示す説明図である。
【図11】rDSの算出結果を示す説明図である。
【図12】Vinの他の例を示す説明図である。
【図13】入力スルーの反映例を示す説明図である。
【図14】実施の形態1にかかる設計支援装置300による設計支援処理手順の一例を示すフローチャート(その1)である。
【図15】実施の形態1にかかる設計支援装置300による設計支援処理手順の一例を示すフローチャート(その2)である。
【図16】実施の形態2にかかる設計支援装置の機能ブロック図である。
【図17】電流テーブル群の一例を示す説明図である。
【図18】内部抵抗テーブル群の一例を示す説明図である。
【図19】設計対象回路の回路情報の一例を示す説明図である。
【図20】配線テーブルの一例を示す説明図である。
【図21】セルの入力容量の一例を示す説明図である。
【図22】制約テーブルの一例を示す説明図である。
【図23】閾値テーブルの一例を示す説明図である。
【図24】出力電圧の算出例を示す説明図である。
【図25】補正対象の経過時間の決定例を示す説明図である。
【図26】補正例を示す説明図である。
【図27】補完結果を示す説明図である。
【図28】遅延時間の算出例を示す説明図である。
【図29】出力スルーの算出例を示す説明図である。
【図30】例2における遅延時間の算出を示す説明図である。
【図31】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その1)である。
【図32】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その2)である。
【図33】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その3)である。
【図34】実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャート(その4)である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、本発明による設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【0014】
図1は、本発明の一例を示す説明図である。電流テーブル群は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに保持し、設計支援装置がアクセス可能な記憶装置に記憶されている。セルの出力電圧値は、該セルの出力側の負荷抵抗の値や負荷容量の値を考慮せずに算出された値である。
【0015】
まず、設計支援装置は、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。つぎに、設計支援装置は、Vds(出力電圧)<Vgs(入力電圧)−Vth(ゲート閾値電圧)であるVdsの経過時間を補正対象の経過時間に決定する。本実施の形態では、VinはVgsと同一として説明する。
【0016】
そして、設計支援装置は、補正対象の経過時間に対象セルの出力側の時定数を加算することにより、該経過時間を補正する。時定数は対象セルの出力側の負荷抵抗の値および負荷容量の値に基づいて算出される値である。つぎに、設計支援装置は、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【0017】
まず、実施の形態1では、設計対象回路で用いるセルの電流テーブルの作成例を説明する。実施の形態2では、実施の形態1で作成された電流テーブルを用いて設計対象回路の回路情報から選択された対象セルの遅延時間の算出例について説明する。
【0018】
(実施の形態1)
(設計支援装置のハードウェア)
図2は、設計支援装置のハードウェアを示すブロック図である。図2において、設計支援装置は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、を有している。さらに、設計支援装置は、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、を有している。さらに、設計支援装置は、マウス211と、スキャナ212と、プリンタ213と、を有している。また、各部はバス200によってそれぞれ接続されている。
【0019】
ここで、CPU201は、設計支援装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
【0020】
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
【0021】
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。該ディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0022】
I/F209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえば、モデムやLANアダプタなどを採用することができる。
【0023】
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【0024】
スキャナ212は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0025】
(実施の形態1にかかる設計支援装置の機能ブロック図)
図3は、実施の形態1にかかる設計支援装置の機能ブロック図である。設計支援装置300は、取得部301と、変化時間算出部302と、経過時間算出部303と、格納部304と、を有している。図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶された各機能(取得部301〜格納部304)を有する設計支援プログラムをCPU201がロードする。そして、該設計支援プログラムにコーディングされている処理をCPU201が実行することにより、該各機能が実現される。
【0026】
取得部301は、特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値でのセルの出力電流値を記憶する記憶装置から各出力電圧値での出力電流値を取得する。特定電圧値とは、具体的には、たとえば、Vgs(Vin)−Vthである。
【0027】
変化時間算出部302は、セル内のトランジスタの接合容量の値と、セルのゲート閾値電圧の値(Vth)と、取得部301により取得された出力電流値とに基づいて、複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。
【0028】
経過時間算出部303は、変化時間算出部302により算出された変化時間に基づいて、セルへの入力電圧の変化開始からの経過時間を出力電流値ごとに算出する。
【0029】
格納部304は、経過時間算出部303により算出された各出力電流値の経過時間を記憶装置へ格納する。
【0030】
また、取得部301は、特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値でのセルの出力電流値を記憶する記憶装置から各出力電圧値での出力電流値を取得する。特定電圧値とは、具体的には、たとえば、Vgs(Vin)−Vthである。
【0031】
変化時間算出部302は、セル内のトランジスタの接合容量の値と、セルへの入力電圧の値と、取得部301により取得された出力電流値とに基づいて、複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。
【0032】
経過時間算出部303は、変化時間算出部302により算出された変化時間に基づいて、入力電圧の変化開始からの経過時間を出力電流値ごとに算出する。
【0033】
格納部304は、経過時間算出部303により算出された各出力電流値の経過時間を記憶装置へ格納する。
【0034】
以上を踏まえて、インバータの電流テーブルの作成を例に挙げて詳細に説明する。
【0035】
(PTV条件)
図4は、PTV条件の一例を示す説明図である。まず、PTVとは、Process(プロセス)と、Temperature(温度)と、Voltage(電圧)を示している。PTV条件テーブル400では、PTV条件の項目401とプロセスの項目402と温度の項目403と電圧の項目404とを有している。PTV条件の項目401には、TYP条件であるか、FAST条件であるか、SLOW条件であるかが保持されている。
【0036】
各条件については下記である。
・TYP条件:各セルの動作が通常の速度である条件
・FAST条件:各セルの動作が最も速くなる条件
・SLOW条件:各セルの動作が最も遅くなる条件
【0037】
まず、TYP条件では、プロセスの項目402がTYP条件(標準条件)であり、温度の項目403が25℃(常温)であり、かつ電圧の項目404が1.8[V]である。つぎに、FAST条件では、プロセスの項目402がFAST条件(速い条件)であり、温度の項目403が−40[℃](低温)であり、かつ電圧の項目404が2.0Vである。そして、SLOW条件では、プロセスの項目402がSLOW条件(遅い条件)であり、温度の項目403が120[℃](高温)であり、かつ電圧の項目404が1.1[V]である。なお、PTV条件テーブル400は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。なお、PTV条件テーブル400内の数値やPTV条件は一例である。
【0038】
(セルの例)
図5は、セルの一例を示す説明図である。実施の形態1では、インバータのセルを例に挙げて説明する。図5では、セル名がINVERTER1であるインバータのセルをトランジスタ記述で示している。INVERTER1はPMOS(P Channel Metal Oxide Semiconductor)とNMOS(N Channel Metal Oxide Semiconductor)とを有している。IN端子に入力される入力電圧(Vin)とOUT端子から出力される出力電圧(Vds)との時間差が遅延時間である。図5で示すCはINVERTER1内の接合容量(寄生容量)であって、INVERTER1の出力側の負荷容量とは異なる容量である。
【0039】
ここで、実施の形態1と実施の形態2で用いるVdsとVds_nonRCとVds_RCとについて説明する。VdsとVds_nonRCとVds_RCとは、いずれもOUT端子から出力される出力電圧を示している。実施の形態1で用いるVdsは、利用者が設定した出力電圧である。実施の形態2で用いるVds_nonRCは、実施の形態1で作成する電流テーブルから算出する出力電圧である。実施の形態2で用いるVds_RCはVds_nonRCを負荷抵抗および負荷容量に基づいて補正することによって得られる出力電圧である。
【0040】
実施の形態1では、IN端子に立ち上がり変化の入力を与えた場合を例に挙げて説明する。立ち上がり遅延時間と立ち下がり遅延時間には対称性があるため、IN端子に立ち下がり変化の入力を与えた場合の例については説明を省略する。また、実施の形態1では、IN端子に立ち上がり変化の入力を与えた場合における、OUT端子の出力電流(Ids)を算出し、算出した結果をテーブル化する。
【0041】
図6は、Vinの一例を示す説明図である。実施の形態1,2では、Vinの変化開始をt=0としている。実施の形態1では、該変化開始からの経過時間ごとにIdsを求める。また、t=0以前にVin=0.0[V]であると、Vds=Vddとなり、t=0でVinの入力が立ち上がるとPMOSは直ちにカットオフする。よって、ここでは、NMOSのみに着目して説明する。
【0042】
ここで、周知のようにMOSの動作領域である飽和領域と非飽和領域とは下記で分類される。
・飽和領域:Vds≧Vgs−Vth
・非飽和領域(線形領域):Vds<Vgs−Vth
【0043】
そして、MOSの動作領域が飽和領域の場合のMOSの出力電流(Ids)の算出式(1)と、MOSの動作領域が非飽和領域の場合のMOSの出力電流(Ids)の算出式(2)と、を下記に示す。
【0044】
【数1】
【0045】
上記式(1)や上記式(2)はRAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。また、各パラメータは以下の通りである。
・μ[cm^2/(V×s)]:キャリア移動度
・ε0(Epsilon0)[F/cm]:真空誘電率
・εox(Epsilon ox)[F/cm]:比誘電率
・Tox[m]:酸化膜圧
・Cox[F]:ゲート容量
・W[m]:ゲート幅
・L[m]:ゲート長
・C[F]:接合容量(寄生容量)
【0046】
(トランジスタ特性のテーブル)
図7は、トランジスタ特性のテーブルを示す説明図である。トランジスタ特性のテーブル700は、テーブル701とテーブル712とを有している。なお、トランジスタ特性のテーブル700は、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
【0047】
テーブル701は、INVERTER1内のMOSごとの各パラメータが格納されている。テーブル701は、トランジスタの項目702と、μの項目703と、Coxの項目704と、ε0の項目705と、εoxの項目706と、Toxの項目707と、W/Lの項目708と、Wの項目709と、Lの項目710と、Cの項目711と、を有している。
【0048】
トランジスタの項目702にはINVERTER1内のMOSの種類が保持されている。μの項目703にはμが保持され、Coxの項目704にはCoxが保持され、ε0の項目705にはε0が保持され、εoxの項目706にはεoxが保持されている。Toxの項目707にはToxが保持され、Wの項目709にはWが保持され、Lの項目710にはLが保持され、Cの項目711にはCが保持されている。
【0049】
さらに、W/Lの項目708にはWの項目709に保持されているWとLの項目710に保持されているLとの比率が保持されている。なお、たとえば、Coxの項目704に保持されている35.42E−06は、35.42×10^(−6)を示している。「^」は乗数である。
【0050】
テーブル712はトランジスタの項目713とVthの項目714とを有している。トランジスタの項目713にはINVERTER1内のMOSの種類が保持されている。Vthの項目714には、INVERTER1内の各トランジスタのVth(ゲート閾値電圧)がPTV条件ごとに格納されている。
【0051】
そして、具体的には、たとえば、CPU201が、PTV条件テーブル400から特定のPTV条件を選択する。または、たとえば、CPU201が、PTV条件テーブル400からPTV条件を順に選択する。実施の形態1では、TYP条件を例に挙げて説明する。すなわち、Vddが1.8[V]である。
【0052】
(Vds)
図8は、Vdsの一例を示す説明図である。テーブル800はVdsの項目801を有し、Vdsの項目801にはVdsが保持されている。実施の形態1では図8のようにVdsを1.8[V]から0.0[V]まで0.1[V]ステップで変化させ、上記式(1)または上記式(2)を用いてIdsを算出する。Vdsが1.8〜1.5[V]の場合、INVERTER1の動作領域は飽和領域であるため、上記式(1)でIdsが算出される。Vdsが1.4〜0.0[V]の場合、INVERTER1の動作領域は非飽和領域であるため、上記式(2)でIdsが算出される。
【0053】
<Idsの算出>
具体的には、たとえば、CPU201が、上記式(1)を記憶装置から取得し、式(1)内の各パラメータをトランジスタ特性のテーブル700から取得し、上記式(1)に設定する。そして、たとえば、CPU201が、NMOSの動作領域が飽和領域におけるIdsを算出する。すなわち、Vdsが1.8〜1.5[V]の場合のIdsが算出される。飽和領域においてはVdsに関係なくIdsは同一電流値である。なお、算出結果は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0054】
そして、具体的には、たとえば、CPU201が、上記式(2)を記憶装置から取得し、上記式(2)内のパラメータをトランジスタ特性のテーブル700から取得し、上記式(2)に設定する。たとえば、CPU201が、テーブル800からステップ順にVds(1.4〜0.0[V])を取得して、上記式(2)に設定し、非飽和領域におけるIdsをVds(1.4〜0.0[V])ごとに算出する。なお、算出結果は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0055】
<経過時間ごとのIds>
図9は、VdsごとのIdsの一例を示す説明図である。テーブル900は、VdsごとのIdsを示し、Vdsの項目901とIdsの項目902とを有している。Vdsの項目901にはVdsが保持され、Idsの項目902には該VdsのIdsが保持されている。
【0056】
グラフ903では、横軸がVds[V]であり、縦軸がIds[A]である。グラフ903では、Vdsが高ければ電流値が高く、Vdsが低ければ電流値が低い。ここで、たとえば、Vds=Vgsを地点Aとし、Vds=Vgs−Vthを地点Bとし、Vgs/2を地点Cとし、Vds=0を地点Dとする。
【0057】
実施の形態1では、INVERTER1の出力電流の変化が地点Aから地点Bになるまでにかかる時間をtABとし、該変化が地点Bから地点Cになるまでにかかる時間をtBCとする。該変化が地点Cから地点Dになるまでにかかる時間をtCDとする。tABは上記式(1)より下記式(3)を用いることにより算出される。
【0058】
【数2】
【0059】
つぎに、tBCについて説明する。電流の時間積分は電荷量であることから、上記非飽和領域におけるIdsの算出式から下記式(4)が得られる。
【0060】
【数3】
【0061】
上記式(4)から上記式(5)が導かれるため、上記式(5)の左辺を0からtBCまで、右辺をVgs−Vthから1/2×Vgsまで積分すると、下記式(6)が得られる。
【0062】
【数4】
【0063】
また、式(3)と式(6)とはRAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
【0064】
まず、具体的には、たとえば、CPU201が、変化時間算出部302により、上記式(3)を記憶装置から取得する。そして、たとえば、CPUが、取得した式(3)内の各パラメータをトランジスタ特性のテーブル700から取得して、上記式(3)に設定し、tABを算出する。つぎに、具体的には、たとえば、CPU201が、変化時間算出部302により、上記式(6)を記憶装置から取得する。そして、たとえば、CPUが、取得した式(6)内の各パラメータをトランジスタ特性のテーブル700から取得し、上記式(6)に設定し、tBCを算出する。
【0065】
算出結果を下記に示す。
・tAB:3.279535511146584E−12
・tBC:5.17154782518248E−12
【0066】
つぎに、たとえば、CPU201が算出したtABとtBCとに基づいてVdsごとのIdsを経過時間ごとのIdsに変換する。
【0067】
図10は、経過時間ごとのIdsを示す説明図である。ここで、Vinの変化開始からの時間を経過時間とする。ここでは、tABは1.8〜1.5[V]までに出力電流値が変化する変化時間であるため、CPU201が、たとえば、経過時間算出部303により、各Vds(または各Ids)での経過時間を下記のように算出する。
【0068】
・Vdsが1.8[V]時の経過時間[sec]:0
・Vdsが1.7[V]時の経過時間[sec]:tAB/3
・Vdsが1.6[V]時の経過時間[sec]:tAB/3+(該1.7[V]時の経過時間)
・Vdsが1.5[V]時の経過時間[sec]:tAB/3+(該1.6[V]時の経過時間)
【0069】
tBCは1.4[V]〜0.9[V]までに出力電流値が変化する変化時間であるため、CPU201が、たとえば、各Vds(または各Ids)での経過時間を下記のように算出する。
【0070】
・Vdsが1.4[V]時の経過時間[sec]:tBC/6+(該1.5[V]時の経過時間)
・Vdsが1.3[V]時の経過時間[sec]:tBC/6+(該1.4[V]時の経過時間)
・Vdsが1.2[V]時の経過時間[sec]:tBC/6+(該1.3[V]時の経過時間)
・Vdsが1.1[V]時の経過時間[sec]:tBC/6+(該1.2[V]時の経過時間)
・Vdsが1.0[V]時の経過時間[sec]:tBC/6+(該1.1[V]時の経過時間)
・Vdsが0.9[V]時の経過時間[sec]:tBC/6+(該1.0[V]時の経過時間)
【0071】
経過時間ごとのIdsの例はテーブル1000である。テーブル1000は経過時間の項目1001と、Idsの項目1002を有している。テーブル1000では、1.8[V]〜0.9[V]時のIdsごとに経過時間が保持されている。
【0072】
また、分解能(TIMESCALE)を1.0E−12[sec]とすると、各Idsの経過時間の例は電流テーブル1003である。電流テーブル1003は、経過時間の項目1004と、Idsの項目1005と、Vinの項目1006と、を有している。Vinの項目1006については図10では省略している。
【0073】
遅延時間計算時の入力閾値や出力閾値はVdd×50[%]であり、地点Cから地点DについてはVds(Vdd=Vdsとした場合)×50[%]以下である。そこで、電流テーブル1003では、地点Cから地点Dについてはテーブル900からVdsのステップに沿ってTIMESCALEが割り当てられている。これに限らず、地点Cから地点Dまでの動作領域は非飽和領域であるため、たとえば、地点Bから地点Cまでを算出したのと同様に算出式を利用者があらかじめ作成し、tCDを算出してもよい。さらに、CPU201が、格納部304により、電流テーブル1003をRAM203、磁気ディスク205、光ディスク207などの記憶装置に格納する。
【0074】
<rDSの算出>
つぎに、INVERTER1内のNMOSの内部抵抗(rDS)の算出について説明する。具体的には、たとえば、CPU201は、VdsをIdsで割ることにより、rDSを算出する。
【0075】
図11は、rDSの算出結果を示す説明図である。たとえば、CPU201が、Vdsごとに該Vdsを算出したIdsを割ることにより、VdsごとのrDSを算出する。そして、ここでは、Vds=1.8[V]の場合のrDSをINVERTER1のNMOSの内部抵抗の値に決定する。決定されたrDSは、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0076】
<trとtf>
つぎに、trとtfとの影響を考慮した電流テーブルの作成について説明する。ここで、trとは立ち上がり入力電圧(Vin)が立ち上がるまでの時間を示し、tfとは立ち下がり入力電圧(Vin)が立ち下がるまでの時間を示す。
【0077】
図12は、Vinの他の例を示す説明図である。グラフ1200では、変化1と変化2との2つのVinの変化例を示している。変化1は、図6で示したVinと同様に遅延なしで立ち上がったVinである。すなわち、変化1の場合、trは0である。一方、変化2は0.0[V]からVdd[V]までに10E−12[sec]の時間がかかる。すなわち、変化2の場合、trは10E−12[sec]である。該trを電流テーブル1003に反映させると、下記の様になる。
【0078】
図13は、入力スルーの反映例を示す説明図である。ここでは、たとえば、入力スルー依存の遅延時間をVthまでのtrとする。すなわち、10E−12/1.8×0.36(tr/Vdd×Vth)=2.0E−12[sec]が入力スルー依存の遅延時間である。具体的には、たとえば、CPU201が、電流テーブル1003へ2.0E−12の遅延時間を加えることにより電流テーブル1300を作成することができる。
【0079】
電流テーブル1300は、経過時間の項目1301と、Idsの項目1302と、Vinの項目1303と、を有している。経過時間の項目1301は経過時間を保持し、Idsの項目1302はIdsを保持し、Vinの項目1303はVinを保持している。また、Vinの項目1303については、経過時間が10E−12[sec]に1.8[V]となるように値が設定されている。
【0080】
つぎに、たとえば、CPU201が、電流テーブル1003と電流テーブル1300とを出力する。出力形式としては、たとえば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信がある。また、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶することとしてもよい。
【0081】
(実施の形態1にかかる設計支援装置300の設計支援処理手順)
図14および図15は、実施の形態1にかかる設計支援装置300による設計支援処理手順の一例を示すフローチャートである。まず、CPU201が、トランジスタの各パラメータを取得する(ステップS1401)。そして、CPU201が、複数のPTV条件から特定のPTV条件を選択し(ステップS1402)、選択したPTV条件のVthを取得する(ステップS1403)。
【0082】
そして、CPU201が、選択したPTV条件の複数のVdsを取得し(ステップS1404)、飽和領域に関するIdsの算出式(1)を取得する(ステップS1405)。CPU201が、式(1)の各変数に取得した各パラメータを代入し、Idsを複数のVdsのうち特定電圧値以上のVdsごとに算出する(ステップS1406)。上述のように特定電圧値はVgs(Vin)−Vthである。
【0083】
つぎに、CPU201が、非飽和領域に関するIdsの算出式(2)を取得する(ステップS1407)。CPU201が、式(2)の各変数に取得した各パラメータを代入し、Idsを複数のVdsのうち特定電圧値未満のVdsごとに算出する(ステップS1408)。そして、CPU201が、IdsとVdsとに基づいて内部抵抗値を算出し(ステップS1409)、内部抵抗値を出力する(ステップS1410)。
【0084】
つぎに、CPU201が、tABの算出式(3)を取得し(ステップS1411)、式(3)の各変数に取得した各パラメータを代入し、tABを算出する(ステップS1412)。そして、CPU201が、特定電圧値以上のVdsの各出力電流値の経過時間を算出したtABに基づいて算出する(ステップS1413)。
【0085】
そして、CPU201が、tBCの算出式(6)を取得し(ステップS1414)、式(6)の各変数に取得した各パラメータを代入し、tBCを算出する(ステップS1415)。そして、CPU201が、特定電圧値未満のVdsの各出力電流値の経過時間を算出したtBCに基づいて算出する(ステップS1416)。
【0086】
そして、CPU201が、Idsごとに算出した経過時間を格納し(ステップS1417)、一連の処理を終了する。
【0087】
(実施の形態2)
つぎに、実施の形態2では、実施の形態1で作成した電流テーブルを用いて設計対象回路の回路情報内の対象セルの遅延時間を算出する例を説明する。また、実施の形態2では、実施の形態1で説明したハードウェアについては同一であるため、同一符号としてその説明を省略する。
【0088】
(実施の形態2にかかる設計支援装置の機能ブロック図)
図16は、実施の形態2にかかる設計支援装置の機能ブロック図である。設計支援装置1600は、抽出部1601と、決定部1602と、補正部1603と、出力部1604と、特定部1605と、算出部1606と、を有している。図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶された各機能(抽出部1601〜算出部1606)を有する設計支援プログラムをCPU201がロードする。そして、該設計支援プログラムにコーディングされている処理をCPU201が実行することにより、該各機能が実現される。
【0089】
抽出部1601は、セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間でのセルの出力電圧値をセルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する各経過時間での出力電圧値を対象セルに基づいて抽出する。
【0090】
決定部1602は、抽出部1601により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する。なお、特定電圧値とは、Vgs(Vin)−Vthである。
【0091】
補正部1603は、決定部1602により決定された経過時間に対象セルの出力側の時定数を加算する。
【0092】
出力部1604は、補正部1603による補正後の経過時間ごとの出力電圧値と決定部1602により決定されなかった経過時間ごとの出力電圧値とを出力する。
【0093】
特定部1605は、出力部1604により出力された出力電圧値のうち、対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する。
【0094】
算出部1606は、対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、特定部1605により特定された経過時間との時間差を算出する。
【0095】
また、特定部1605は、出力部1604により出力された出力電圧値のうち、対象セルの次段セルの入力電圧の閾値である出力電圧値の経過時間を特定する。
【0096】
算出部1606は、対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、特定部1605により特定された経過時間との時間差を算出する。
【0097】
以上を踏まえて詳細に説明する。
【0098】
(電流テーブル群)
図17は、電流テーブル群の一例を示す説明図である。電流テーブル群1700は、セルごとの電流テーブルを有している。INVERTER1を例に挙げると、電流テーブル群1700には、INVERTER1の電流テーブルやINVETER2の電流テーブルなど、各セルの電流テーブルを有している。INVERTE1の電流テーブル群は、TYP条件のテーブル群と、FAST条件のテーブル群と、SLOW条件のテーブル群を有している。さらに、TYP条件のテーブル群は、立ち上がり入力のテーブルと、立ち下がり入力のテーブルとを有している。
【0099】
さらに、立ち下がり入力のテーブルはtfごとにテーブルを有し、立ち上がり入力のテーブルはtrごとにテーブルを有している。立ち上がり入力のテーブル群には、たとえば、実施の形態1で示した電流テーブル1003や電流テーブル1300を有している。なお、電流テーブル群1700は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
【0100】
(内部抵抗テーブル)
図18は、内部抵抗テーブル群の一例を示す説明図である。内部抵抗テーブル群1800は、セルごとに各セル内のMOSの内部抵抗の値を保持している。たとえば、内部抵抗テーブル1801では、INVERTER1のNMOSの内部抵抗の値とINVERTER1のPMOSの内部抵抗の値とを保持している。
【0101】
実施の形態2では、経過時間ごとの出力電流値を有するテーブル1300と内部抵抗テーブル1801に基づいて設計対象回路の回路情報から選択された対象セルの経過時間ごとの出力電圧値を有するテーブルを算出している。これに限らず、利用者が、経過時間ごとの出力電圧値を有するテーブルをセルごとにあらかじめ作成してもよい。
【0102】
(設計対象回路の回路情報)
図19は、設計対象回路の回路情報の一例を示す説明図である。回路情報1900は、設計対象回路内のセルの接続情報を含む電子データであり、具体的には、たとえば、設計対象回路のレイアウトデータや論理合成後における設計対象回路のネットリストである。回路情報1900では、セルC1〜C7を有している。
【0103】
ここで、インスタンス名とは、設計対象回路内の各セルの固有の名称であり、セル名とは、セルの種類を示すための名称である。セルC1〜C7とはインスタンス名であり、INVERTER1と、INVERTER2と、2AND1(2入力で1出力のAND)と、BUFFER1と、BUFFER2と、FF1とは、セル名である。
【0104】
たとえば、INVERTER1やINVERTER2のようにいずれもインバータであり、論理が同一であっても、それぞれ性能が異なる。たとえば、セルC1とセルC7とはインスタンス名が異なるが、いずれもINVERTER1である。実施の形態2では、セルC1とセルC7で同一セル名であっても、各セルの出力側の配線や該セルの次段セルが異なるので、時定数が異なり、該セルの前段セルが異なるので、入力スルーが異なる。そのため、セルC1とセルC7とでは異なる遅延時間が算出される。
【0105】
CPU201が、たとえば、パスP上のセルC1〜C5までの各セルの遅延時間を算出し、算出した遅延時間を合計することで、パスPの遅延時間を算出することができる。そこで、CPU201が、たとえば、パスPをセルごとに分割してパスP1〜P5として、分割した各パスの遅延時間を算出する。
【0106】
ここで、パスとは、入力端子からマクロ(たとえば、FF(フリップフロップ))までの一連のセルおよびネットの集合、マクロ(たとえば、FF(フリップフロップ))間の一連のセルおよびネットの集合である。または、パスとは、マクロから出力端子までの一連のセルおよびネットの集合である。
【0107】
また、セルC1の出力側の配線がcline1であり、セルC2の出力側の配線がcline2であり、セルC3の出力側の配線がcline3である。セルC4の出力側の配線がcline4であり、セルC5の出力側の配線がcline5である。半導体集積回路において配線はMETALやPolysiliconで形成されるため、図19中cline1で示すように配線は抵抗(配線抵抗)や容量(配線容量)で表される。
【0108】
(配線テーブル)
図20は、配線テーブルの一例を示す説明図である。まず、配線テーブル2000では、回路情報1900内の各セルの出力から次段セルへの入力までの配線の配線抵抗の値や配線容量の値を保持している。配線テーブル2000では、配線の項目2001と、配線抵抗の項目2002と、配線容量の項目2003と、を有している。
【0109】
配線の項目2001では配線名を保持し、配線抵抗の項目2002では配線抵抗の値を保持し、配線容量の項目2003では配線容量の値を保持している。なお、配線テーブル2000は、たとえば、設計対象回路のレイアウトデータから抽出された配線情報に基づいて設計者により作成される。
【0110】
図19の説明に戻って、つぎに、たとえば、セルC1の次段セルはセルC2である。セルC2の入力容量がセルC1の出力側の負荷容量(セルC1の負荷容量)の一部となる。ここで、セルの入力容量とは、たとえば、セル内のMOSのゲート容量である。
【0111】
(セルの入力容量)
図21は、セルの入力容量の一例を示す説明図である。入力容量テーブル2100では各セルの入力容量の値を保持している。入力容量テーブル2100ではセル名の項目2101と入力容量の項目2102とを有している。たとえば、セル名の項目2101に保持されているセル名がINVERTER1の場合、入力容量の項目2100は5[fF]が保持されている。
【0112】
図19の説明に戻って、また、たとえば、セルC7の次段セルはなく、セルC7の次段は出力端子である。この場合、セルC7の出力側の負荷抵抗や負荷容量が不明であるため、実施の形態2では、利用者(設計者または検証者)によりあらかじめ定義された外部負荷抵抗の値や外部負荷容量の値をそれぞれセルC7の負荷抵抗の値やセルC7の負荷容量の値に用いる。
【0113】
また、セルC1の前段セルはなくセルC1の前段は入力端子である。この場合、入力スルーが不明であるため、実施の形態2では、利用者(設計者または検証者)によりあらかじめ定義された外部入力スルーを該セルC1の入力スルーに用いる。
【0114】
(制約テーブル)
図22は、制約テーブルの一例を示す説明図である。制約テーブル2200には、外部入力スルーと外部負荷容量の値と外部負荷抵抗の値とが格納されている。実施の形態2では、上述のようにセルC1の入力スルーには制約テーブル2200内の外部入力スルーの項目2201に保持されている値を用いる。また、上述のように実施の形態2では、セルC7の負荷容量および負荷抵抗にはそれぞれ制約テーブル2200内の外部負荷容量の項目2202に保持されている値と外部負荷抵抗の項目2203に保持されている値とを用いる。
【0115】
(閾値テーブル)
図23は、閾値テーブルの一例を示す説明図である。閾値テーブル2300では、入力電圧の時間的変化と出力電圧の時間的変化とに基づいて遅延時間を算出する際の、入力電圧の閾値(以下、「入力閾値」と称する。)と、出力電圧の閾値(以下、「出力閾値」と称する。)を保持している。閾値テーブル2300は、セル名の項目2301と、入力閾値の項目2302と、出力閾値の項目2303とを有している。
【0116】
セル名の項目2301にはセル名が保持され、入力閾値の項目2302には入力閾値が保持され、出力閾値の項目2303には出力閾値が保持されている。セル名の項目2301がDEFAULTの場合を例に挙げると、入力閾値が50[%]で、出力閾値が50[%]である。この場合、VinがVdd×50[%]の場合の経過時間からVdsがVdd×50[%]の場合の経過時間までの時間差が対象セルの遅延時間となることを示している。
【0117】
つぎに、具体的な処理例を説明する。まず、例1では、遅延時間と入力スルーの算出について説明する。つぎに、例2では、対象セルの次段セルの閾値が対象セルの閾値と異なる場合について説明する。
【0118】
(例1)
<時定数の算出>
まず、具体的には、たとえば、CPU201が、回路情報1900からセルC1を対象セルとして選択する。つぎに、具体的には、たとえば、CPU201が、セルC1の次段セル(セルC2)の入力容量の値と、セルC1の出力側のcline1の配線容量の値とcline1の配線抵抗の値とを取得する。そして、たとえば、CPU201が、セルC1の前段セルがあるか無いかを判断し、該前段セルが無いため、制約テーブル2200内の外部入力スルーの項目2201に保持されている値を取得してセルC1の入力スルーに決定する。
【0119】
取得結果を下記に示す。
・セルC1の次段セル(セルC2)の入力容量の値:5[fF]
・cline1の配線容量の値:5[fF]
・cline1の配線抵抗の値:50[Ω]
・外部入力スルー:10E−12[sec]
【0120】
実施の形態2では、対象セルをCPU201が自動で選択しているため、CPU201が記憶装置にアクセスし、該配線容量の値や該配線抵抗の値や該外部入力スルーを取得している。これに限らず、たとえば、利用者が対象セルを選択して、利用者が該配線容量の値や該配線抵抗の値や該外部入力スルーを設計支援装置1600に入力し、CPU201が、該入力を受け付けてもよい。
【0121】
つぎに、具体的には、たとえば、CPU201が、セルC1のセル名はINVERTER1であるため、抽出部1601により、INVERTER1の電流テーブルから立ち上がり入力または立ち下がり入力の電流テーブルを外部入力スルーに基づいて抽出する。ここでは、立ち上がり入力を例に挙げ、電流テーブル1300が取得されることとする。
【0122】
つぎに、具体的には、たとえば、CPU201が、セルC2の入力容量の値とcline1の配線容量の値とに基づいてセルC1の負荷容量の値を算出する。
・セルC1の負荷容量の値=セルC2の入力容量の値+cline1の配線容量の値
=5.0E−15[F]+5.0E−15[F]
=10.0E−15[F]
【0123】
そして、たとえば、CPU201が、セルC1の負荷容量の値とcline1の配線抵抗の値とを乗算することにより時定数を算出する。なお、算出結果を下記に示す。
・セルC1の時定数=セルC1の負荷容量の値×cline1の配線抵抗の値
=10.0E−15[F]×50[Ω]
=0.5E−12[sec]
【0124】
<出力電圧値の算出>
図24は、出力電圧の算出例を示す説明図である。つぎに、具体的には、たとえば、CPU201が、抽出した電流テーブルと、INVERTER1のNMOSの内部抵抗に基づいて経過時間ごとの出力電圧の値を算出する。テーブル2400が算出結果である。テーブル2400は、経過時間の項目2401と、Vds_nonRCの項目2402と、Vinの項目2403とを有している。なお、テーブル2400は、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
【0125】
つぎに、INVERTER1の動作領域が飽和領域となるVds_nonRCの経過時間は時定数で補正されず、INVERTER1の動作領域が非飽和領域となるVds_nonRCの経過時間は時定数で補正される。実施の形態2では、動作領域が飽和領域の場合には、出力電流が十分流れているため、セルC1の負荷容量と負荷抵抗による影響が小さいため、動作領域が飽和領域であるVds_nonRCの経過時間を補正しない。
【0126】
具体的には、たとえば、CPU201が、決定部1602により、Vds_nonRCごとにVgs(Vin)−Vthを算出する。そして、たとえば、CPU201が、決定部1602により、Vds_nonRCごとにVds_nonRC<Vgs(Vin)−Vthであるか否かを判断する。たとえば、CPU201が、決定部1602により、Vds_nonRC<Vgs(Vin)−Vthであれば、該Vds_nonRCの経過時間を補正対象の経過時間に決定する。
【0127】
図25は、補正対象の経過時間の決定例を示す説明図である。たとえば、経過時間が10E−12[sec]の場合、Vds_nonRCが約1.51[V]であり、Vgs−Vthが1.44[V]である。よって、Vds_nonRC≧Vgs−Vthであるため、経過時間が10E−12[sec]の場合、INVERTER1のNMOSの動作領域は飽和領域である。
【0128】
つぎに、たとえば、経過時間が11E−12[sec]の場合、Vds_nonRCが約1.41[V]であり、Vgs−Vthが1.44[V]である。よって、Vds_nonRC≧Vgs−Vthであるため、経過時間が11E−12[sec]の場合、INVERTER1のNMOSの動作領域は非飽和領域である。よって、経過時間が10E―12は補正対象として決定される。ここでは、11E―12〜19E−12[sec]が補正対象の経過時間として決定される。
【0129】
図26は、補正例を示す説明図である。具体的には、たとえば、CPU201が、補正部1603により、補正対象の経過時間に決定した各経過時間に対して、算出したセルC1の時定数を加算することにより、該補正対象の経過時間を補正する。
【0130】
図26では、たとえば、t0は補正対象でないが、t1とt2とが補正対象である経過時間である。そして、グラフ2604では、t1とt2にそれぞれτが加算されることにより、補正されている。t1とt2との補正結果はそれぞれt1’とt2’とである。そして、たとえば、CPU201が、出力部1604により、補正後の経過時間ごとの出力電圧の値と、補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する。
【0131】
出力形式としては、たとえば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信がある。また、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶することとしてもよい。
【0132】
出力結果としては、テーブル2600が挙げられる。テーブル2600は、経過時間の項目2601と、Vds_RCの項目2602と、Vinの項目2603とを有している。経過時間の項目2601は経過時間を保持し、Vds_RCの項目2602はVds_RCを保持し、Vinの項目2603はVinを保持している。なお、Vds_RCはVds_nonRCから電圧値は変化していないが、経過時間が補正されている。
【0133】
さらに、測定数(経過時間の数)が少ない場合、複数の経過時間の経過時間ごとの出力電圧値の該複数の経過時間を補完してもよい。具体的には、CPU201が、たとえば、一の経過時間(tX)と一の経過時間の次の経過時間(tY)との中間の経過時間(tZ)でのVds_RCを、下記式(7)を用いて算出することにより、補完する。
【0134】
Vds_RC(tZ)={Vds_RC(tX)[V]−Vds_RC(tY)[V]}/{tX[psec]−tY[psec]}×τ[psec]+Vds_RC(tY)[V]
・・・(7)
【0135】
たとえば、tAとtBとが下記の場合を例に挙げて説明する。
・tX=13.5[psec]
・tY=12.5[psec]
・tZ=13[psec]
・Vds(tX)=1.162[V]
・Vds(tY)=1.297[V]
・τ=0.5[psec]
・Vds_RC(13)={1.297[V]−1.162[V]}/{13.5[psec]−12.5[psec]}×0.5[psec]+1.162[V]
=1.229[V]
【0136】
図27は、補完結果を示す説明図である。テーブル2700は、上記式(7)を用いてテーブル2700を補完した補完結果である。テーブル2700は、経過時間の項目2701と、Vds_RCの項目2702と、Vinの項目と、を有している。図27では、Vinの項目を省略して記載している。補完については、一例として、12.5[psec]〜19.5[psec]の間でのみ実施されている。
【0137】
<遅延時間および出力スルーの算出>
つぎに、対象セルの遅延時間の算出について説明する。具体的には、たとえば、CPU201が、閾値テーブル2300から対象セルの入力閾値と対象セルの出力閾値とをセル名に基づいて検索する。閾値テーブル2300内にINVERTER1に対応するセル名が無いため、DEFAULTの閾値が検索される。DEFAULTの入力閾値が50[%]であり、DEFAULTの出力閾値が50[%]である。
【0138】
そして、具体的には、たとえば、CPU201が、特定部1605により、テーブル2700から取得した対象セルの出力閾値と同一であるVds_RCの経過時間を特定する。さらに、たとえば、CPU201が、特定部1605により、テーブル2700から取得した対象セルの入力閾値と同一であるVinの経過時間を特定する。そして、たとえば、CPU201が、算出部1606により、特定したVinの経過時間と特定したVds_RCの経過時間との時間差を遅延時間として算出する。
【0139】
図28は、遅延時間の算出例を示す説明図である。グラフ2800では、経過時間ごとの入力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線(入力電圧折れ線)が示されている。さらに、グラフ2800では、経過時間ごとの出力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線(出力電圧折れ線)が示されている。グラフ2800では、横軸が経過時間であり、縦軸が電圧である。
【0140】
入力閾値が50[%]であり、出力閾値が50[%]である。入力電圧折れ線のうちVdd×50[%]となる経過時間から、出力電圧折れ線のVdd×50[%]となる経過時間までの時間差が対象セルの遅延時間である。また、入力電圧折れ線と出力電圧折れ線は単にプロット間を経過時間順に接続されているが、これに限らず、たとえば、線形近似などの近似がおこなわれてもよい。
【0141】
つぎに、対象セルの出力スルーの算出について説明する。対象セルの出力スルーは対象セルの次段セルの入力スルーとして用いられる。たとえば、対象セルの立ち下がり出力の出力スルーは、次段セルの立ち下がり入力の遅延時間の算出時に用いられ、対象セルの立ち上がり出力の出力スルーは、次段セルの立ち上がり入力の遅延時間の算出時に用いられる。
【0142】
実施の形態2では、立ち下がり出力の場合、出力スルーをVdd×80[%]での経過時間からVdd×20[%]での経過時間までの時間差とする。実施の形態2では、立ち上がり出力の場合、出力スルーをVdd×20[%]での経過時間からVdd×80[%]での経過時間までの時間差とする。
【0143】
具体的には、たとえば、CPU201が、特定部1605により、テーブル2700からVdd×80[%]であるVds_RCの経過時間と、テーブル2700からVdd×20[%]であるVds_RCの経過時間と、を特定する。つぎに、たとえば、CPU201が、算出部1606により、特定した2つの経過時間の時間差を出力スルーとして算出する。
【0144】
図29は、出力スルーの算出例を示す説明図である。グラフ2900では、経過時間ごとの出力電圧値がプロットされ、該経過時間順にプロット間が接続された折れ線が示されている。グラフ2900では、横軸が経過時間であり、縦軸が電圧である。
【0145】
折れ線のVdd×80[%]の経過時間からVdd×20[%]の経過時間までの時間差が出力スルーである。そして、たとえば、CPU201が、算出した遅延時間と出力スルーとを出力する。出力形式としては、たとえば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信がある。また、出力形式としては、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶することとしてもよい。
【0146】
(例2)
つぎに、対象セルの出力閾値と該対象セルの次段セルの入力閾値とが異なる場合について説明する。例2では対象セルを回路情報1900内のセルC4とする。
【0147】
具体的には、たとえば、CPU201が、回路情報1900内からセルC4の次段セルを特定する。ここでは、次段セルとしてセルC5が特定される。そして、具体的には、たとえば、CPU201が、閾値テーブル2300から対象セルの入力閾値をセル名に基づいて検索する。さらに、たとえば、CPU201が、閾値テーブル2300から次段セルの入力閾値をセル名に基づいて検索する。
【0148】
セルC4のセル名はBUFFER1であるため、セルC4の入力閾値が40[%]である。セルC5のセル名はBUFFER2であるため、セルC5の入力閾値が50[%]である。
【0149】
そして、たとえば、CPU201が、特定部1605により、対象セルの入力閾値と同一値であるVds_RCの経過時間と、次段セルの入力閾値と同一値であるVinの経過時間と、を特定する。そして、たとえば、CPU201が、算出部1606により、特定した2つの経過時間との時間差を遅延時間として算出する。
【0150】
図30は、例2における遅延時間の算出を示す説明図である。グラフ3000では、例2における遅延時間の算出例を示している。グラフ3000およびグラフ3001は、セルC4の入力と、セルC4の出力(セルC5の入力)と、セルC5の出力を示している。
【0151】
グラフ3001では、セルC4の遅延時間の算出時に、テーブル内のBUFFER1の出力閾値を用いている。グラフ3001ではセルC4の遅延時間の算出とセルC5の遅延時間の算出とで、共有してしまう時間があり、該時間が遅延誤差となる。
【0152】
一方、グラフ3000では、セルC4の遅延時間の算出時に、セルC5の入力閾値をセルC4の出力閾値として用いているため、該遅延誤差が発生しない。すなわち、遅延誤差の発生を防止することができる。
【0153】
(実施の形態2にかかる設計支援装置1600の設計支援処理手順)
図31〜図34は、実施の形態2にかかる設計支援装置1600による設計支援処理手順の一例を示すフローチャートである。まず、CPU201が、回路情報内のパスPを構成するセルごとにパスPを分割する(ステップS3101)。そして、CPU201が、i=1とし(ステップS3102)、パスP上の先頭からi番目の分割パスPiがあるか否かを判断する(ステップS3103)。
【0154】
まず、CPU201が、先頭からi番目の分割パスPiがあると判断した場合(ステップS3103:Yes)、分割パスPi上のセルを対象セルに選択する(ステップS3104)。つぎに、CPU201が、対象セルの前段セルがあるか否かに基づいて、対象セルが外部入力セルであるか否かを判断する(ステップS3105)。
【0155】
CPU201が、対象セルが外部入力セルであると判断した場合(ステップS3105:Yes)、対象セルの入力スルーを外部スルー条件に設定する(ステップS3106)。一方、対象セルが外部入力セルでないと判断した場合(ステップS3105:No)、対象セルの入力スルーを前段セルの出力スルーに設定する(ステップS3107)。
【0156】
ステップS3106またはステップS3107のつぎに、CPU201が、対象セルの次段セルがあるか否かに基づいて、対象セルが外部出力セルであるか否かを判断する(ステップS3108)。外部出力セルとは、対象セルの出力が他のセルに接続されず、対象セルの出力が出力端子に接続されて外部に出力されるセルを示している。
【0157】
ステップS3108において、CPU201が、対象セルが外部出力セルであると判断した場合(ステップS3108:Yes)、対象セルが外部出力セルである外部負荷容量の値と該負荷抵抗の値とを取得する(ステップS3109)。CPU201が、対象セルの負荷抵抗値の値=外部負荷抵抗の値とし(ステップS3110)、対象セルの負荷容量の値=外部負荷容量の値とする(ステップS3111)。
【0158】
ステップS3108において、CPU201が、対象セルが外部出力セルでないと判断した場合(ステップS3108:No)、対象セルの配線容量の値と次段セルの入力容量の値と対象セルの配線抵抗の値とを取得する(ステップS3112)。そして、CPU201が、対象セルの配線抵抗の値=対象セルの配線抵抗の値とし(ステップS3113)、対象セルの負荷容量の値=対象セルの配線容量の値+次段セルの入力容量の値とする(ステップS3114)。
【0159】
そして、CPU201が、ステップS3111またはステップS3114のつぎに、τ=対象セルの負荷容量の値×対象セルの負荷抵抗の値とし(ステップS3115)、PTV条件から所定のPTV条件を選択する(ステップS3116)。そして、CPU201が、PTV条件および入力スルーに基づいて電流テーブルと対象セルのオン抵抗値を取得する(ステップS3117)。
【0160】
つぎに、CPU201が、取得した電流テーブル内の各出力電流値に取得したオン抵抗値を乗算し(ステップS3118)、PTV条件に基づいて対象セルのVthを取得する(ステップS3119)。そして、CPU201が、未選択の経過時間があるか否かを判断し(ステップS3120)、未選択の経過時間があると判断した場合(ステップS3120:Yes)、未選択の経過時間から1つの経過時間を選択する(ステップS3121)。
【0161】
つぎに、CPU201が、選択した経過時間の出力電圧値<選択した経過時間の入力電圧値−Vthであるか否かを判断する(ステップS3122)。CPU201が、選択した経過時間の出力電圧値<選択した経過時間の入力電圧値−Vthであると判断した場合(ステップS3122:Yes)、選択した経過時間を補正対象の経過時間に決定し(ステップS3123)、ステップS3120へ戻る。CPU201が、選択した経過時間の出力電圧値<選択した経過時間の入力電圧値−Vthでないと判断した場合(ステップS3122:No)、ステップS3120へ戻る。
【0162】
ステップS3120において、CPU201が、未選択の経過時間がないと判断した場合(ステップS3120:No)、決定した補正対象の経過時間にτを加算することにより該経過時間を補正する(ステップS3124)。つぎに、CPU201が、補正後の経過時間ごとの出力電圧値と補正対象に決定されなかった経過時間ごとの出力電圧値とを出力する(ステップS3125)。
【0163】
そして、CPU201が、対象セルの次段セルがあるか否かを判断し(ステップS3126)、次段セルがあると判断した場合(ステップS3126:Yes)、対象セルの入力閾値と次段セルの入力閾値とを取得する(ステップS3127)。つぎに、CPU201が、次段セルの入力閾値である出力電圧値の経過時間を特定する(ステップS3128)。
【0164】
一方、ステップS3126において、CPU201が、次段セルがないと判断した場合(ステップS3126:No)、対象セルの入力閾値と対象セルの出力閾値とを取得する(ステップS3129)。そして、CPU201が、対象セルの出力閾値である出力電圧値の経過時間を特定する(ステップS3130)。
【0165】
ステップS3128またはステップS3130のつぎに、CPU201が、対象セルの入力閾値である入力電圧値の経過時間を特定し(ステップS3131)、特定した2つの経過時間の時間差を算出する(ステップS3132)。つぎに、CPU201が、対象セルと算出した時間差を遅延時間として対象セルに関連付けて出力する(ステップS3133)。
【0166】
本フローチャートでは、パスPの遅延時間を算出しているため、対象セルの次段セルがある場合、次段セルの入力閾値を対象セルの出力閾値として遅延時間を算出している。これにより、パスPの遅延誤差を抑制することができる。また、対象セルの遅延時間のみが必要な場合には、対象セルの次段セルがあっても、対象セルの出力閾値を取得して遅延時間を算出してもよい。
【0167】
CPU201が、出力スルーの閾値である出力電圧値の経過時間を特定し(ステップS3134)、対象セルの出力スルーを算出し(ステップS3135)、対象セルと出力スルーとを関連付けて出力する(ステップS3136)。そして、CPU201が、i=i+1とし(ステップS3137)、ステップS3103へ戻る。
【0168】
ステップS3103において、CPU201が、先頭からi番目の分割パスPiがないと判断した場合(ステップS3103:No)、パスP上の各セルの遅延時間を合計することでパスPの遅延時間を算出する(ステップS3138)。そして、CPU201が、パスPと算出した遅延時間とを関連付けて出力する(ステップS3139)。
【0169】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、対象セルの出力側のR(負荷抵抗)C(負荷容量)の時定数をRCの充電放電により出力電圧の変化が遅延する遅延時間とする。そして、対象セルへの入力電圧の変化開始からの経過時間に加算することで、該経過時間を補正する。これにより、設計対象回路内の各セルによって異なるRCによる過渡応答が再現される。すなわち、RCで鈍る出力電圧を再現することができ、遅延誤差を抑制することができる。
【0170】
また、補正後の経過時間ごとの出力電圧値と入力電圧の値に基づいて対象セルの遅延時間を算出することにより、遅延誤差の小さい遅延時間を自動で算出することができる。
【0171】
また、対象セルに次段セルがある場合、次段セルの入力電圧の閾値を対象セルの出力電圧の閾値として遅延時間を算出することにより、遅延誤差の小さい遅延時間を自動で算出することができる。よって、正確なパスの遅延時間を算出することができる。
【0172】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、特定閾値以上である複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。セルへの入力電圧の変化開始時からの経過時間を出力電流値ごとに該変化時間に基づいて算出し、出力電流値ごとの経過時間を記憶装置へ格納する。これにより、経過時間ごとの出力電流値のテーブルを容易に作成することができる。出力電流値のテーブルにより、遅延時間の算出や電力の解析などに流用することができる。
【0173】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、特定閾値未満である複数の出力電圧値のうち最も低い電圧値から、複数の出力電圧値のうち最も高い電圧値までに出力電流値が変化する変化時間を算出する。セルへの入力電圧の変化開始時からの経過時間を出力電流値ごとに該変化時間に基づいて算出し、出力電流値ごとの経過時間を記憶装置へ格納する。これにより、経過時間ごとの出力電流値のテーブルを容易に作成することができる。出力電流値のテーブルにより、遅延時間の算出や電力の解析などに流用することができる。
【0174】
なお、本実施の形態1および2で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、たとえば、磁気ディスク205、光ディスク207などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【0175】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0176】
(付記1)セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータに、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を抽出する抽出工程と、
前記抽出工程により抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行させることを特徴とする設計支援プログラム。
【0177】
(付記2)前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする付記1に記載の設計支援プログラム。
【0178】
(付記3)前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの次段セルの前記入力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする付記1に記載の設計支援プログラム。
【0179】
(付記4)コンピュータに、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【0180】
(付記5)コンピュータに、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【0181】
(付記6)セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出手段と、
前記抽出手段により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定手段と、
前記決定手段により決定された経過時間に前記対象セルの出力側の時定数を加算する補正手段と、
前記補正手段による補正後の経過時間ごとの出力電圧値と前記決定手段により決定されなかった経過時間ごとの出力電圧値とを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【0182】
(付記7)特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得手段と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得手段により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出手段と、
前記変化時間算出手段により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出手段と、
前記経過時間算出手段により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納手段と、
を備えることを特徴とする設計支援装置。
【0183】
(付記8)特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得手段と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得手段により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出手段と、
前記変化時間算出手段により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出手段と、
前記経過時間算出手段により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納手段と、
を備えることを特徴とする設計支援装置。
【0184】
(付記9)セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータが、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出工程と、
前記抽出工程により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【0185】
(付記10)コンピュータが、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行することを特徴とする設計支援方法。
【0186】
(付記11)コンピュータが、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行することを特徴とする設計支援方法。
【符号の説明】
【0187】
300,1600 設計支援装置
301 取得部
302 変化時間算出部
303 経過時間算出部
304 格納部
900,1000,2400,2600,2700 テーブル
1003,1300 電流テーブル
1601 抽出部
1602 決定部
1603 補正部
1604 出力部
1605 特定部
1606 算出部
【特許請求の範囲】
【請求項1】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータに、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を抽出する抽出工程と、
前記抽出工程により抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行させることを特徴とする設計支援プログラム。
【請求項2】
前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする請求項1に記載の設計支援プログラム。
【請求項3】
前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの次段セルの前記入力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする請求項1に記載の設計支援プログラム。
【請求項4】
コンピュータに、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【請求項5】
コンピュータに、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【請求項6】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出手段と、
前記抽出手段により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定手段と、
前記決定手段により決定された経過時間に前記対象セルの出力側の時定数を加算する補正手段と、
前記補正手段による補正後の経過時間ごとの出力電圧値と前記決定手段により決定されなかった経過時間ごとの出力電圧値とを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項7】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータが、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出工程と、
前記抽出工程により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【請求項1】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータに、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を抽出する抽出工程と、
前記抽出工程により抽出された前記対象セルの各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行させることを特徴とする設計支援プログラム。
【請求項2】
前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの出力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする請求項1に記載の設計支援プログラム。
【請求項3】
前記コンピュータに、
前記出力工程により出力された出力電圧値のうち、前記対象セルの次段セルの前記入力電圧の閾値である出力電圧値の経過時間を特定する特定工程と、
前記対象セルへの入力電圧の変化開始から該入力電圧が該入力電圧の閾値となるまでの経過時間と、前記特定工程により特定された経過時間との時間差を算出する算出工程と、
を実行させることを特徴とする請求項1に記載の設計支援プログラム。
【請求項4】
コンピュータに、
特定電圧値以上であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルのゲート閾値電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記セルへの入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【請求項5】
コンピュータに、
特定電圧値未満であるセルの複数の出力電圧値の各出力電圧値での前記セルの出力電流値を記憶する記憶装置から前記各出力電圧値での出力電流値を取得する取得工程と、
前記セル内のトランジスタの接合容量の値と、前記セルへの入力電圧の値と、前記取得工程により取得された出力電流値とに基づいて、前記複数の出力電圧値のうち最も低い電圧値から、前記複数の出力電圧値のうち最も高い電圧値までに前記出力電流値が変化する変化時間を算出する変化時間算出工程と、
前記変化時間算出工程により算出された変化時間に基づいて、前記入力電圧の変化開始時からの経過時間を前記出力電流値ごとに算出する経過時間算出工程と、
前記経過時間算出工程により算出された前記出力電流値ごとの経過時間を前記記憶装置へ格納する格納工程と、
を実行させることを特徴とする設計支援プログラム。
【請求項6】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出手段と、
前記抽出手段により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定手段と、
前記決定手段により決定された経過時間に前記対象セルの出力側の時定数を加算する補正手段と、
前記補正手段による補正後の経過時間ごとの出力電圧値と前記決定手段により決定されなかった経過時間ごとの出力電圧値とを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項7】
セルへ与える入力電圧の変化開始時からの複数の経過時間の各経過時間での前記セルの出力電圧値を前記セルごとに記憶する記憶装置にアクセス可能なコンピュータが、
前記記憶装置から、設計対象回路の回路情報の中から選ばれた対象セルに関する前記各経過時間での出力電圧値を前記対象セルに基づいて抽出する抽出工程と、
前記抽出工程により抽出された各出力電圧値の経過時間から、特定電圧値に基づいて補正対象とする経過時間を決定する決定工程と、
前記決定工程により決定された経過時間に前記対象セルの出力側の時定数を加算する補正工程と、
前記補正工程による補正後の経過時間ごとの出力電圧値と前記決定工程により決定されなかった経過時間ごとの出力電圧値とを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【公開番号】特開2012−3612(P2012−3612A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−139637(P2010−139637)
【出願日】平成22年6月18日(2010.6.18)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願日】平成22年6月18日(2010.6.18)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]