(57)【要約】【課題】電源ノイズの解析精度を向上する。【解決手段】プロセッサ２が、解析対象回路のＩ／Ｏ回路１１をＩＢＩＳで表現したＩＢＩＳモデル情報１０ａを含む、解析対象回路の回路情報１０を取得する。また、プロセッサ２は、ＩＢＩＳモデル情報１０ａに含まれる、複数の電源電圧値に対応したＩ／Ｏ回路１１の駆動電流Ｉｄｒの時間変化を示す駆動電流情報１２を取得する。そして、プロセッサ２は、回路情報１０ａに基づく電源ノイズ解析時の各時間における駆動電流Ｉｄｒの値を、各時間における電源電圧値と駆動電流情報１２とに基づき決定し、決定した値を用いて電源ノイズ解析を行う。【選択図】図１
2017010267.tif 000002
【特許請求の範囲】
【請求項１】
解析対象回路の入出力部をＩＢＩＳで表現したモデル情報を含む、前記解析対象回路の回路情報を取得し、
前記モデル情報に含まれる、複数の電源電圧値に対応した前記入出力部の駆動電流の時間変化を示す駆動電流情報を取得し、
前記回路情報に基づく電源ノイズ解析時の各時間における前記駆動電流の値を、前記各時間における電源電圧値と前記駆動電流情報とに基づき決定し、決定した前記値を用いて前記電源ノイズ解析を行う、
処理をコンピュータに実行させるプログラム。
【請求項２】
前記入出力部をネットリストで表現した情報を用いて、前記複数の電源電圧値に対応した前記駆動電流の前記時間変化を算出して前記駆動電流情報を生成し、前記駆動電流情報を前記モデル情報に追加する、ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記駆動電流情報の生成の際、第１の刻み幅の時間で前記駆動電流の前記時間変化を算出し、
前記第１の刻み幅の時間における前記時間変化が第１の値以上のときには、前記第１の刻み幅よりも小さい第２の刻み幅の時間で、前記時間変化を算出する、
ことを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記電源ノイズ解析の際、第３の刻み幅の時間における前記電源電圧値の変化が第２の値以上のときには、前記第３の刻み幅よりも小さい第４の刻み幅の時間で、前記電源ノイズ解析を行い、
前記駆動電流情報に前記第４の刻み幅の時間に対応する駆動電流値がないときには補間処理を行い、前記第４の刻み幅の時間に対応する前記駆動電流値を生成する、
ことを特徴とする請求項１乃至３の何れか一項に記載のプログラム。
【請求項５】
プロセッサが、回路の入出力部をネットリストで表現した第１のモデル情報を取得し、
前記プロセッサが、前記第１のモデル情報に基づき、前記入出力部に供給される電源電圧を変化させたときの、前記入出力部の駆動電流の時間変化を示す駆動電流情報を生成し、
前記プロセッサが、前記駆動電流情報を、前記入出力部をＩＢＩＳで表現した第２のモデル情報に追加する、
ことを特徴とする回路モデル作成方法。
【請求項６】
解析対象回路の入出力部をＩＢＩＳで表現したモデル情報を含む、前記解析対象回路の回路情報を取得する回路情報取得部と、
前記モデル情報に含まれる、複数の電源電圧値に対応した前記入出力部の駆動電流の時間変化を示す駆動電流情報を取得する駆動電流情報取得部と、
前記回路情報に基づく電源ノイズ解析時の各時間における前記駆動電流の値を、前記各時間における電源電圧値と前記駆動電流情報とに基づき決定し、決定した前記値を用いて前記電源ノイズ解析を行う電源ノイズ解析部と、
を有することを特徴とするシミュレーション装置。
【請求項７】
プロセッサが、解析対象回路の入出力部をＩＢＩＳで表現したモデル情報を含む、前記解析対象回路の回路情報を取得し、
前記プロセッサが、前記モデル情報に含まれる、複数の電源電圧値に対応した前記入出力部の駆動電流の時間変化を示す駆動電流情報を取得し、
前記プロセッサが、前記回路情報に基づく電源ノイズ解析時の各時間における前記駆動電流の値を、前記各時間における電源電圧値と前記駆動電流情報とに基づき決定し、決定した前記値を用いて前記電源ノイズ解析を行う、
ことを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、回路モデル作成方法、シミュレーション装置及びシミュレーション方法に関する。
【背景技術】
【０００２】
近年、ＰＣＢ（Printed Circuit Board）に搭載される複数のＬＳＩ（Large Scale Integrated circuit）間のインタフェース信号の高速化や低電圧化によって、各種のマージン量が低下してきている。これによって、ＳＳＯ（Simultaneous Switching Output）ノイズなどの電源ノイズが発生してＬＳＩ間の伝送信号に混入すると、伝送信号の波形品質劣化による論理レベルの反転や、遅延変動によるタイミングマージン不足を引き起こす可能性が高まっている。したがって、電源ノイズの影響を設計段階で解析し、適切な対策を施すことが望ましい。
【０００３】
ところで、設計段階の解析の際、ＬＳＩのＩ／Ｏ（Input / Output）回路をトランジスタレベルのネットリストを用いて正確にモデル化することが考えられるが、ネットリストは製造プロセスなどに関する詳細情報を含む。そのため、チップベンダからセットメーカへの提供が難しい。
【０００４】
そこで、このような詳細情報をブラックボックス化し、電流−電圧特性に基づきＩ／Ｏ回路をモデル化した、ＩＢＩＳ（I/O Buffer Information Specification）モデルが知られている。ＩＢＩＳのバージョン５．０からは、外部電圧に基づくＩ／Ｏ回路内の駆動電流のモデル（コンポジットカレント（Ｃｏｍｐｏｓｉｔｅ  ｃｕｒｒｅｎｔ））やファイナルバッファ（Ｉ／Ｏ回路の出力端子に接続されるバッファ）の駆動電流を補正するためのモデルが含まれるようになっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１３５０３３号公報
【特許文献２】特開２０１１−２８６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＩＢＩＳのコンポジットカレントで表現されるＩ／Ｏ回路の駆動電流値は、一定電圧下で取得した値であるため、ＳＳＯノイズなどの電源ノイズを考慮した値にはなっていない。したがって、電源ノイズが大きくなり電源電圧の変動量が大きくなるほど、モデル化された駆動電流と、実際の駆動電流（またはネットリストを用いて算出される駆動電流）との誤差が大きくなる。電源ノイズは、駆動電流の影響を受けるため、駆動電流の誤差が大きくなると、電源ノイズ量の見積もり精度が悪化する。
【０００７】
以上のように、従来のＩＢＩＳを用いた解析手法では、電源ノイズの解析精度がよくないという問題がある。
【課題を解決するための手段】
【０００８】
発明の一観点によれば、解析対象回路の入出力部をＩＢＩＳで表現したモデル情報を含む、前記解析対象回路の回路情報を取得し、前記モデル情報に含まれる、複数の電源電圧値に対応した前記入出力部の駆動電流の時間変化を示す駆動電流情報を取得し、前記回路情報に基づく電源ノイズ解析時の各時間における前記駆動電流の値を、前記各時間における電源電圧値と前記駆動電流情報とに基づき決定し、決定した前記値を用いて前記電源ノイズ解析を行う、処理をコンピュータに実行させるプログラムが提供される。
【０００９】
また、発明の一観点によれば、プロセッサが、回路の入出力部をネットリストで表現した第１のモデル情報を取得し、前記プロセッサが、前記第１のモデル情報に基づき、前記入出力部に供給される電源電圧を変化させたときの、前記入出力部の駆動電流の時間変化を示す駆動電流情報を生成し、前記プロセッサが、前記駆動電流情報を、前記入出力部をＩＢＩＳで表現した第２のモデル情報に追加する、回路モデル作成方法が提供される。
【００１０】
また、発明の一観点によれば、解析対象回路の入出力部をＩＢＩＳで表現したモデル情報を含む、前記解析対象回路の回路情報を取得する回路情報取得部と、前記モデル情報に含まれる、複数の電源電圧値に対応した前記入出力部の駆動電流の時間変化を示す駆動電流情報を取得する駆動電流情報取得部と、前記回路情報に基づく電源ノイズ解析時の各時間における前記駆動電流の値を、前記各時間における電源電圧値と前記駆動電流情報とに基づき決定し、決定した前記値を用いて前記電源ノイズ解析を行う電源ノイズ解析部と、を有するシミュレーション装置が提供される。
【００１１】
また、発明の一観点によれば、プロセッサが、解析対象回路の入出力部をＩＢＩＳで表現したモデル情報を含む、前記解析対象回路の回路情報を取得し、前記プロセッサが、前記モデル情報に含まれる、複数の電源電圧値に対応した前記入出力部の駆動電流の時間変化を示す駆動電流情報を取得し、前記プロセッサが、前記回路情報に基づく電源ノイズ解析時の各時間における前記駆動電流の値を、前記各時間における電源電圧値と前記駆動電流情報とに基づき決定し、決定した前記値を用いて前記電源ノイズ解析を行う、シミュレーション方法が提供される。
【発明の効果】
【００１２】
開示のプログラム、回路モデル作成方法、シミュレーション装置及びシミュレーション方法によれば、電源ノイズの解析精度を向上できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態のシミュレーション方法及びシミュレーション装置の一例を示す図である。
【図２】第１の実施の形態のシミュレーション装置の一例の機能ブロック図である。
【図３】第２の実施の形態のシミュレーション装置の一例を示す図である。
【図４】ＬＳＩのＩ／Ｏ回路の一例を示す図である。
【図５】ＩＢＩＳモデルの一例を示す図である。
【図６】ＩＢＩＳ５．０によるＩ−Ｔテーブルの一例を示す図である。
【図７】回路モデルの作成方法の一例の流れを示すフローチャートである。
【図８】回路モデル情報で表される回路モデルの一例を示す図である。
【図９】入力信号の立ち上がり時の駆動電流のＩ−Ｔ特性の計算例を示す図である。
【図１０】複数の電源電圧値に対応した駆動電流情報が追加されたＩＢＩＳモデルの一例を示す図である。
【図１１】駆動電流情報を表すＶＤＥシフト量のＩ−Ｔテーブル例である。
【図１２】駆動電流情報を表すＶＤＥごとのＩ−Ｔテーブル例である。
【図１３】式（１）から得られる電流値のイメージ図である。
【図１４】電源電圧ＶＤＥの基準電圧からのシフト量ごとの駆動電流のＩ−Ｔ特性を多項式化してテーブル化した例を示す図である。
【図１５】３種類の駆動電流のＩ−Ｔ特性を含むＩ−Ｔテーブルの一例を示す図である。
【図１６】シミュレーション方法の一例の流れを示すフローチャートである。
【図１７】解析対象回路の一例を示す図である。
【図１８】駆動電流値の決定例を示す図である。
【図１９】時間の刻み幅を小さくする処理の一例を示す図である。
【図２０】駆動電流値の補間処理の一例を示す図である。
【図２１】（Ａ）は、ＳＳＯノイズ発生時の電源電圧波形の一例を示す図であり、（Ｂ）は、ＳＳＯノイズ発生時の駆動電流波形の一例を示す図である。
【図２２】（Ａ）は、ＳＳＯノイズ増大時の電源電圧波形の一例を示す図であり、（Ｂ）は、ＳＳＯノイズ増大時の駆動電流波形の一例を示す図である。
【図２３】（Ａ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ発生時の電源電圧波形の一例を示す図であり、（Ｂ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ発生時の駆動電流波形の一例を示す図である。
【図２４】（Ａ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ増大時の電源電圧波形の一例を示す図であり、（Ｂ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ増大時の駆動電流波形の一例を示す図である。
【図２５】モニタに表示される表示画面の例を示す図である。
【発明を実施するための形態】
【００１４】
（第１の実施の形態）
以下、発明を実施するための形態を、図面を参照しつつ説明する。
図１は、第１の実施の形態のシミュレーション方法及びシミュレーション装置の一例を示す図である。
【００１５】
また、図２は、第１の実施の形態のシミュレーション装置の一例の機能ブロック図である。
シミュレーション装置１は、たとえば、コンピュータであり、プロセッサ２と記憶部３を有している。
【００１６】
プロセッサ２は、記憶部３に記憶されているデータ及びプログラムに基づき、図２に示すような、回路情報取得部２ａ、駆動電流情報取得部２ｂ、電源ノイズ解析部２ｃの機能を実現する。なお、図２では図示を省略しているが、プロセッサ２は、後述するＩＢＩＳモデル情報１０ａを作成する機能を有していてもよい。
【００１７】
記憶部３は、プロセッサ２が実行するプログラムや、解析対象回路の回路情報１０などの各種データを記憶する。
回路情報１０は、解析対象回路の入出力部をＩＢＩＳで表現しているＩＢＩＳモデル情報１０ａを含む。ＩＢＩＳモデル情報１０ａは、たとえば、ＩＢＩＳのバージョン５．０（以下ＩＢＩＳ５．０と略す）でモデル化されたＬＳＩの入出力部（Ｉ／Ｏ回路）の情報を含む（図５参照）。また、本実施の形態のシミュレーション方法及びシミュレーション装置１では、ＩＢＩＳモデル情報１０ａには、複数の電源電圧値に対応したＩ／Ｏ回路１１の駆動電流Ｉｄｒの時間変化を示す駆動電流情報１２が含まれている。
【００１８】
図１に示す駆動電流情報１２の一例では、Ｉ／Ｏ回路１１のバッファ１１ａに印加される電源電圧ＶＤＥが複数の値をとるときの、Ｉ／Ｏ回路１１の駆動電流Ｉｄｒの値の時間変化が示されている。
【００１９】
なお、図１の駆動電流情報１２の例では、Ｉ／Ｏ回路１１への入力信号の論理レベルが、Ｌ（Low）レベルから、Ｈ（High）レベルに立ち上がるときの駆動電流Ｉｄｒの時間変化が示されている。図示が省略されているが、入力信号の論理レベルが、ＨレベルからＬレベルに立ち下がるときの駆動電流Ｉｄｒの時間変化についても同様に駆動電流情報１２に含まれている。
【００２０】
なお、駆動電流の時間変化は、電源電圧ＶＤＥの値ごとではなく、基準となる電源電圧ＶＤＥの値からのシフト量ごとに与えられてもよいし、数式で表されていてもよい。これらの例については後述する。
【００２１】
以下、上記のようなシミュレーション装置１を用いたシミュレーション方法の一例を、図１、図２を用いて説明する。
回路情報取得部２ａは、ＩＢＩＳモデル情報１０ａを含む解析対象回路の回路情報１０を、たとえば、記憶部３から取得する（ステップＳ１）。
【００２２】
駆動電流情報取得部２ｂは、ＩＢＩＳモデル情報１０ａに含まれる駆動電流情報１２を取得する（ステップＳ２）。
そして電源ノイズ解析部２ｃは、回路情報１０に基づき電源ノイズ解析を行う（ステップＳ３）。電源ノイズ解析部２ｃは、電源ノイズ解析時の各時間における駆動電流Ｉｄｒの値を、各時間における電源電圧ＶＤＥの値と、駆動電流情報１２とに基づき決定し、決定した値を用いて電源ノイズ解析を行う。
【００２３】
図１の囲みの下側には、電源ノイズ解析時における駆動電流値の決定例が示されている。
なお、図１では、解析時間の刻み幅と駆動電流情報１２における時間の刻み幅が、両方とも１０ｐｓで等しい場合を示している。ただし、駆動電流情報１２における時間は、バッファ１１ａの入力信号の立ち上がりタイミングを０［ｐｓ］としたものであり、図１の例では、解析時間とは２０ｐｓずれている。
【００２４】
図１において、駆動電流Ｉｄｒを示す複数の波形は、駆動電流情報１２に示されている各電源電圧の一部の値に対応した駆動電流Ｉｄｒの時間変化の様子を示している。
入力信号の立ち上がりタイミングより前の駆動電流Ｉｄｒの情報は、駆動電流情報１２には含まれていない。そのため、この時間では、たとえば、ＤＣ（Direct Current）動作点解析などで得られた値、または、駆動電流情報１２の時間＝０［ｐｓ］のときの駆動電流値（図１の例では０［ｍＡ］）が用いられる。
【００２５】
入力信号の立ち上がりタイミング後では、電源電圧ＶＤＥの値と駆動電流情報１２とに基づき駆動電流Ｉｄｒの値が決定される。
たとえば、解析時間が３０［ｐｓ］（駆動電流情報１２での時間は１０［ｐｓ］）での駆動電流Ｉｄｒの値は、１つ前の解析時間である２０［ｐｓ］での電源電圧ＶＤＥに基づき決まる。２０［ｐｓ］での電源電圧ＶＤＥは、１．５０［Ｖ］であり、その電源電圧値に対応した、駆動電流情報１２の時間１０［ｐｓ］での駆動電流Ｉｄｒの値は、３［ｍＡ］となる。
【００２６】
また、解析時間が４０［ｐｓ］（駆動電流情報１２での時間は２０［ｐｓ］）での駆動電流Ｉｄｒの値は、１つ前の解析時間である３０［ｐｓ］での電源電圧ＶＤＥに基づき決まる。３０［ｐｓ］での電源電圧ＶＤＥは、１．５０［Ｖ］であり、その電源電圧値に対応した、駆動電流情報１２の時間２０［ｐｓ］での駆動電流Ｉｄｒの値は、１０［ｍＡ］となる。
【００２７】
解析時間が５０［ｐｓ］（駆動電流情報１２での時間は３０［ｐｓ］）での駆動電流Ｉｄｒの値は、１つ前の解析時間である４０［ｐｓ］での電源電圧ＶＤＥに基づき決まる。４０［ｐｓ］での電源電圧ＶＤＥは、１．４６［Ｖ］に下がっている。この電源電圧値に対応した、駆動電流情報１２の時間３０［ｐｓ］での駆動電流Ｉｄｒの値は、１４［ｍＡ］となる。
【００２８】
以降の解析時間６０，７０［ｐｓ］でも同様の処理が行われ、駆動電流Ｉｄｒの値が決定されていく。
なお、電源ノイズ解析部２ｃが、駆動電流Ｉｄｒの値を決定する際には、１つ前の解析時間での電源電圧ＶＤＥの値ではなく、１つ前の解析時間と現在の解析時間との間の時間における電源電圧ＶＤＥの平均値に基づき決定するようにしてもよい。また、電源ノイズ解析部２ｃは、電源電圧ＶＤＥの値が、駆動電流情報１２に挙げられている値と一致しない場合には、最も近い値のものを選択する。
【００２９】
このようなシミュレーション方法では、ＩＢＩＳモデル情報１０ａに含めた複数の電源電圧ＶＤＥの値に対応した駆動電流Ｉｄｒの時間変化を示す駆動電流情報１２から、電源ノイズ解析の各時間の電源電圧ＶＤＥに対応する駆動電流Ｉｄｒの値が特定される。これにより、駆動電流の電源電圧依存が解析結果に反映され、電源ノイズの解析精度が向上する。
【００３０】
（第２の実施の形態）
以下、第２の実施の形態のシミュレーション方法及びシミュレーション装置の一例を示す。
【００３１】
図３は、第２の実施の形態のシミュレーション装置の一例を示す図である。
シミュレーション装置は、たとえば、コンピュータ２０であり、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３２】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００３３】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００３４】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。なお、ＨＤＤ２３に代えて、ＳＳＤ（Solid State Drive）などの種々の記憶装置を用いてもよい。
【００３５】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令にしたがって、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３６】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３７】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３８】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３９】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４０】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、図１に示した第１の実施の形態のシミュレーション装置１も、図３に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００４１】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４２】
（シミュレーション方法の一例）
以下では、ＩＢＩＳ５．０のモデル（以下単にＩＢＩＳモデルと呼ぶ）を適用したシミュレーション方法について説明する。
【００４３】
図４は、ＬＳＩのＩ／Ｏ回路の一例を示す図である。
図４では、Ｉ／Ｏ回路３０の出力端子３１に接続されるバッファであるファイナルバッファ３２と、ファイナルバッファ３２よりも前段部分にあるバッファ部であるプレバッファ３３が示されている。さらに、２つのダイオード３４ａ，３４ｂが示されている。ダイオード３４ａのカソードは電源電圧ＶＤＥを供給する電源に接続されており、アノードは出力端子３１及びダイオード３４ｂのカソードに接続されている。ダイオード３４ｂのアノードは接地されている。なお、プレバッファ３３は複数存在する場合もある。
【００４４】
Ｉ／Ｏ回路３０への入力信号は、プレバッファ３３を介してファイナルバッファ３２に伝搬し、出力端子３１から出力される。また、ファイナルバッファ３２とプレバッファ３３には、電源電圧ＶＤＥが供給される。
【００４５】
ＩＢＩＳモデルは、Ｉ／Ｏ回路３０のファイナルバッファ３２などをモデル化したものである。
図５は、ＩＢＩＳモデルの一例を示す図である。
【００４６】
ＩＢＩＳモデル４０は、複数の要素４１ａ，４１ｂ，４２，４３ａ，４３ｂ，４４ａ，４４ｂ，４５，４６，４７，４８を有する。
図４に示したファイナルバッファ３２は、要素４１ａ，４１ｂ，４２を用いてモデル化されている。
【００４７】
要素４１ａは、“Ｐｕｌｌ  ｕｐ”と呼ばれる。要素４１ａは、図４に示したＩ／Ｏ回路３０内の出力端子３１に接続されるファイナルバッファ３２に含まれる、電源に接続される図示しないトランジスタ（以下Ｈ側のトランジスタという）の電流電圧特性をテーブル化したデータである。さらに、要素４１ａは、ファイナルバッファ３２から出力される信号の立ち上がり特性のデータを含む。
【００４８】
要素４１ｂは、“Ｐｕｌｌ  ｄｏｗｎ”と呼ばれる。要素４１ｂは、図４に示したファイナルバッファ３２に含まれる、接地された図示しないトランジスタ（以下Ｌ側のトランジスタという）の電流電圧特性をテーブル化したデータである。さらに、要素４１ｂは、ファイナルバッファ３２から出力される信号の立ち下がり特性のデータを含む。
【００４９】
要素４３ａ，４３ｂは、“Ｐｗｒ  ｃｌａｍｐ”及び“Ｇｎｄ  ｃｌａｍｐ”と呼ばれる。要素４３ａ，４３ｂは、図４に示したダイオード３４ａ，３４ｂの電流電圧特性をテーブル化したデータである。
【００５０】
要素４４ａは、“ＩＳＳＯ  ＰＵ”と呼ばれる。要素４４ａは、ファイナルバッファ３２に含まれるＨ側のトランジスタにおける実効電流についての電流電圧特性をテーブル化したデータである。
【００５１】
要素４４ｂは、“ＩＳＳＯ  ＰＤ”と呼ばれる。要素４４ｂは、ファイナルバッファ３２に含まれるＬ側のトランジスタにおける実効電流についての電流電圧特性をテーブル化したデータである。
【００５２】
要素４５は、“Ｃｏｍｐｏｓｉｔｅ  ｃｕｒｒｅｎｔ”と呼ばれる。要素４５は、Ｉ／Ｏ回路３０全体の駆動電流の電流−時間特性をテーブル化したデータである。
要素４６〜４８は、それぞれ、“Ｐｗｒ  Ｐｉｎ”、“Ｇｎｄ  Ｐｉｎ”、“Ｓｉｇ  Ｐｉｎ”と呼ばれ、電源端子、グランド端子、出力端子を意味する。
【００５３】
ＩＢＩＳ５．０で規定されている、電流−時間特性（以下Ｉ−Ｔ特性と表記する）をテーブル化したデータの例（Ｉ−Ｔテーブル）を以下に示す。
図６は、ＩＢＩＳ５．０によるＩ−Ｔテーブルの一例を示す図である。
【００５４】
図６のＩ−Ｔテーブル５０の例では、電源電圧ＶＤＥが一定電圧のもとで、１０［ｐｓ］ごとの駆動電流のＩ−Ｔ特性がテーブル化されている。なお、図６は、Ｉ／Ｏ回路３０の入力信号の立ち上がり時の駆動電流の様子を示すものであるが、入力信号の立ち下り時の駆動電流の値についても同様にテーブル化される。また、ＩＢＩＳ５．０の駆動電流のＩ−Ｔ特性は、立ち上がり時間などがそれぞれ異なる“ｔｙｐ”、“ｍｉｎ”、“ｍａｘ”の３種類あるが、図６では１つを図示するにとどめている。
【００５５】
図６に示したような駆動電流の値は、電源電圧ＶＤＥが一定電圧下で取得した値であるため、ＳＳＯなどの電源ノイズを考慮した値となっていない。したがって、電源ノイズが大きくなり電源電圧の変動量が大きくなるほど、ＩＢＩＳで与えられる駆動電流と、実際の駆動電流（またはネットリストを用いて算出される駆動電流）との誤差が大きくなる。また、電源ノイズ量自体も、駆動電流の影響を受けるため、駆動電流の誤差が大きくなると、電源ノイズ量の見積もり精度が悪化する。
【００５６】
そこで、本実施の形態のシミュレーション方法では、複数の電源電圧値に対応したＩ／Ｏ回路３０の駆動電流のＩ−Ｔ特性を用いる。
複数の電源電圧値に対応したＩ／Ｏ回路３０の駆動電流のＩ−Ｔ特性の情報（駆動電流情報）は、たとえば、以下の方法で作成され、ＩＢＩＳモデルに追加される。以下この方法を回路モデル作成方法と呼ぶ。
【００５７】
（回路モデルの作成方法）
図７は、回路モデルの作成方法の一例の流れを示すフローチャートである。
以下に示す各ステップの処理は、電源ノイズ解析を行うコンピュータ２０によって行われるものとして説明するが、他のコンピュータが実行するものであってもよい。
【００５８】
コンピュータ２０において、プロセッサ２１は、ＨＤＤ２３に格納されたプログラムを読み出してＲＡＭ２２上に展開して、たとえば、図７に示すような各ステップの処理を実行する。
【００５９】
まず、プロセッサ２１は、たとえば、ＨＤＤ２３に格納された回路モデル情報を取得する（ステップＳ１０）。
図８は、回路モデル情報で表される回路モデルの一例を示す図である。
【００６０】
回路モデル５１は、トランジスタレベルのネットリストでモデル化されているＩ／Ｏ回路５２と、Ｉ／Ｏ回路５２に入力信号を供給する入力信号源５３、Ｉ／Ｏ回路５２に電源電圧ＶＤＥを供給する電圧源５４、負荷抵抗５５を有する。また、電圧源５４は、電源電圧ＶＤＥの値を変える機能をもつ。
【００６１】
次に、プロセッサ２１は、電源電圧ＶＤＥの上限（Ｍａｘ）と下限（Ｍｉｎ）を取得する（ステップＳ１１）。
ステップＳ１１の処理では、プロセッサ２１は、たとえば、ユーザにより入力される、もしくは予め設定されている電源電圧ＶＤＥの上限と下限を取得する。たとえば、１．５［Ｖ］を基準電圧とした場合には、Ｍａｘ＝２．０［Ｖ］、Ｍｉｎ＝１．０Ｖなどとする。
【００６２】
そして、プロセッサ２１は、まず変数ｉ＝０とし（ステップＳ１２）、図８に示したような回路モデル５１を用いて、ＶＤＥ＝Ｍａｘ−ΔＶ×ｉのときの駆動電流ＩｄｒのＩ−Ｔ特性を計算する（ステップＳ１３）。ΔＶは、電圧源５４が電源電圧ＶＤＥを変化させるときの刻み幅である。たとえば、ΔＶ＝０．０２Ｖなどとする。
【００６３】
なお、プロセッサ２１が、回路モデル５１を用いて、駆動電流のＩ−Ｔ特性を計算するときの入力信号、負荷抵抗５５、電源電圧ＶＤＥの値は、ＩＢＩＳモデルを用いて波形を取得する際（後述の電源ノイズ解析時）と同じものとする。たとえば、電源電圧ＶＤＥは、ＳＳＯノイズにより変動し得る範囲の値が用いられる。
【００６４】
次に、プロセッサ２１は、ｉ＝ｉ＋１とし（ステップＳ１４）、その後、ＶＤＥ＝Ｍｉｎとなったか否かを判定する（ステップＳ１５）。ＶＤＥ＝Ｍｉｎではないときには、ステップＳ１３からの処理が繰り返される。
【００６５】
以上の処理により、複数の電源電圧ＶＤＥの値に対応した駆動電流のＩ−Ｔ特性が得られる。
図９は、入力信号の立ち上がり時の駆動電流のＩ−Ｔ特性の計算例を示す図である。
【００６６】
駆動電流Ｉｄｒの波形６０は、電源電圧ＶＤＥが１．５ＶのときのＩ−Ｔ特性を示しており、駆動電流Ｉｄｒの波形６１は、電源電圧ＶＤＥが１．４ＶのときのＩ−Ｔ特性を示している。
【００６７】
電源電圧ＶＤＥが小さくなると、駆動電流Ｉｄｒも小さくなっている。
入力信号の立ち下り時においても同様に駆動電流ＩｄｒのＩ−Ｔ特性が計算される。
ステップＳ１５の処理で、ＶＤＥ＝Ｍｉｎと判定したとき、プロセッサ２１は、時間ｔ＝０とし（ステップＳ１６）、その後、ｔ＝ｔ＋Δｔとする（ステップＳ１７）。Δｔは、プロセッサ２１が駆動電流ＩｄｒのＩ−Ｔ特性を計算したときの時間の刻み幅である。Δｔは、たとえば、１０ｐｓなどである。
【００６８】
そして、プロセッサ２１は、時間ｔと時間ｔ＋Δｔとの間における駆動電流Ｉｄｒの変化が、１％以上か否かを判定する（ステップＳ１８）。変化が１％以上の場合、プロセッサ２１は、時間ｔから時間ｔ＋Δｔの間で、Δｔよりも小さいΔｔｓの刻み幅で駆動電流を取得する（ステップＳ１９）。プロセッサ２１は、図８に示したような回路モデル５１を用いて、Δｔｓの刻み幅での駆動電流Ｉｄｒを計算してもよいし、時間ｔと時間ｔ＋Δｔでの駆動電流Ｉｄｒの値から線形補間などの補間方法によってΔｔｓの刻み幅での駆動電流Ｉｄｒを計算してもよい。
【００６９】
なお、１％という値は一例であり、この値に限定されるものではない。
ステップＳ１９の処理後、またはステップＳ１８の処理で、時間ｔと時間ｔ＋Δｔとの間における駆動電流Ｉｄｒの変化が、１％以上ではないと判定したとき、プロセッサ２１は、ｔ＞駆動電流Ｉｄｒの取得時間か否かを判定する（ステップＳ２０）。
【００７０】
ｔ＞駆動電流Ｉｄｒの取得時間であると判定したとき、プロセッサ２１は、計算した駆動電流ＩｄｒのＩ−Ｔ特性を駆動電流情報として、ＩＢＩＳモデルに追加し（ステップＳ２１）、回路モデルの作成方法を終了する。ｔ＞駆動電流の取得時間ではないとき、ステップＳ１７からの処理が繰り返される。
【００７１】
図１０は、複数の電源電圧値に対応した駆動電流情報が追加されたＩＢＩＳモデルの一例を示す図である。図５に示したＩＢＩＳモデル４０と同じ要素については同一符号が付されている。
【００７２】
図１０のＩＢＩＳモデル４０ａでは、上記の処理により作成された駆動電流情報が、“Ｃｏｍｐｏｓｉｔｅ  ｃｕｒｒｅｎｔ”に追加され、要素４５ａが更新されている。これによって、要素４５ａは、複数電源電圧値に対応したものとなる。
【００７３】
駆動電流情報は、テーブル化されたデータ、または数式で表される。以下、作成された駆動電流情報の例をあげる。
（駆動電流情報の例）
図１１は、駆動電流情報を表すＶＤＥシフト量のＩ−Ｔテーブル例である。
【００７４】
Ｉ−Ｔテーブル７０には、電源電圧ＶＤＥの基準電圧（たとえば、１．５Ｖ）からのシフト量ごとに、駆動電流ＩｄｒのＩ−Ｔ特性が示されている。シフト量の最大値と最小値は、前述したＭａｘからｍｉｎまでの電源電圧ＶＤＥの値に基づき決められ、図１１の例では、１．００［Ｖ］と、−１．００［Ｖ］となっている。前述した図１１の例では、シフト量は、０．０２［Ｖ］刻み、時間は１０［ｐｓ］刻みとなっている。また、図１１の例では、入力信号の立ち上がり時での駆動電流ＩｄｒのＩ−Ｔ特性が示されているが、入力信号の立ち下がり時での駆動電流ＩｄｒのＩ−Ｔ特性についても同様のテーブルデータが作成される。
【００７５】
図１２は、駆動電流情報を表すＶＤＥごとのＩ−Ｔテーブル例である。
Ｉ−Ｔテーブル７１には、前述したＭａｘからｍｉｎまでの電源電圧ＶＤＥの値に対応した、駆動電流ＩｄｒのＩ−Ｔ特性が示されている。図１２の例では、Ｍａｘ＝１．００［Ｖ］、Ｍｉｎ＝１．００［Ｖ］である。また、電源電圧ＶＤＥの刻み幅（ΔＶ）は、０．０２［Ｖ］であり、時間は１０［ｐｓ］刻みとなっている。図１２の例でも、入力信号の立ち上がり時での駆動電流ＩｄｒのＩ−Ｔ特性が示されているが、入力信号の立ち下がり時での駆動電流ＩｄｒのＩ−Ｔ特性についても同様のテーブルデータが作成される。
【００７６】
また、駆動電流情報は数式でも表すことができる。
たとえば、Ａを駆動電流Ｉｄｒ、ｘを時間ｔ、ｙを電源電圧ＶＤＥとすると、
Ａ＝ａ0＋ａ1ｘ＋ａ2ｙ＋ａ3ｘ2＋ａ4ｘｙ＋ａ5ｙ2＋…          （１）
という多項式で駆動電流情報を表すこともできる。係数ａ0，ａ1，ａ2，…は、図７に示した処理で取得した駆動電流ＩｄｒのＩ−Ｔ特性から得られる。
【００７７】
図１３は、式（１）から得られる電流値のイメージ図である。
図１３には、時間ｔ［ｐｓ］、電源電圧ＶＤＥ［Ｖ］、駆動電流Ｉｄｒ［ｍＡ］の３つの軸で表される、複数の電源電圧ＶＤＥの値に応じた、駆動電流ＩｄｒのＩ−Ｔ特性が示されている。図１３の例でも、入力信号の立ち上がり時での駆動電流ＩｄｒのＩ−Ｔ特性が示されているが、入力信号の立ち下がり時での駆動電流ＩｄｒのＩ−Ｔ特性についても同様の多項式で表すことができる。
【００７８】
数式を用いた駆動電流情報の例として、以下のようなものも適用可能である。
図１４は、電源電圧ＶＤＥの基準電圧からのシフト量ごとの駆動電流のＩ−Ｔ特性を多項式化してテーブル化した例を示す図である。
【００７９】
テーブル７２の例では、電源電圧ＶＤＥの基準電圧からのシフト量が、１．００から−１．００まで、０．０２刻みで示されており、各シフト量に対応した駆動電流のＩ−Ｔ特性が多項式で示されている。Ａは駆動電流Ｉｄｒを示し、ｘは時間ｔを示している。係数ａ0，ａ1，ａ2，…、係数ｂ0，ｂ1，ｂ2，…、係数ｃ0，ｃ1，ｃ2，…、係数ｄ0，ｄ1，ｄ2，…、係数ｅ0，ｅ1，ｅ2，…、係数ｆ0，ｆ1，ｆ2，…、などは、図７に示した処理で取得した駆動電流ＩｄｒのＩ−Ｔ特性から得られる。
【００８０】
なお、図１４のテーブル７２の例では、シフト量ごと駆動電流のＩ−Ｔ特性が多項式で表されているが、複数の電源電圧値の各値に対応した駆動電流のＩ−Ｔ特性が、多項式で表されるようにしてもよい。
【００８１】
また、図１４の例でも、入力信号の立ち上がり時での駆動電流ＩｄｒのＩ−Ｔ特性が示されているが、入力信号の立ち下がり時での駆動電流ＩｄｒのＩ−Ｔ特性についても同様の多項式で表すことができる。
【００８２】
ところで、ＩＢＩＳ５．０の駆動電流ＩｄｒのＩ−Ｔ特性は、前述したように“Ｔｙｐ”、“Ｍｉｎ”、“Ｍａｘ”の３条件で求められる。これに合わせて駆動電流情報を以下に示すようなＩ−Ｔテーブルで表してもよい。
【００８３】
図１５は、３種類の駆動電流のＩ−Ｔ特性を含むＩ−Ｔテーブルの一例を示す図である。
図１５のＩ−Ｔテーブル７３の例では、“Ｔｙｐ”、“Ｍｉｎ”、“Ｍａｘ”の３条件のそれぞれに対して、電源電圧ＶＤＥの基準電圧からの複数のシフト量に対応した、駆動電流ＩｄｒのＩ−Ｔ特性が示されている。
【００８４】
なお、３条件のそれぞれに対して、シフト量ごとではなく、図１２に示したように複数の電源電圧値の値ごと、駆動電流ＩｄｒのＩ−Ｔ特性が算出されるようにしてもよい。
また、前述した多項式を用いてＩ−Ｔ特性を表現する場合についても、上記の３つの条件のそれぞれに対して多項式を求めるようにしてもよい。
【００８５】
以上のように、ネットリストを用いて駆動電流情報を生成することで、複数の電源電圧値に対応した駆動電流のＩ−Ｔ特性を精度よく求められる。
また、駆動電流Ｉｄｒの時間変化が大きい箇所は、より細かい刻み幅の時間での時間変化が得られるため、Ｉ−Ｔ特性がより精度のよいものとなる。
【００８６】
次に、上記のように作成された回路モデル（ＩＢＩＳモデル）を用いて電源ノイズ解析を行うシミュレーション方法を説明する。
（シミュレーション方法）
コンピュータ２０において、プロセッサ２１は、ＨＤＤ２３に格納されたプログラムを読み出してＲＡＭ２２上に展開して、たとえば、図１６に示すような各ステップの処理を実行する。
【００８７】
図１６は、シミュレーション方法の一例の流れを示すフローチャートである。
まず、プロセッサ２１は、たとえば、ＨＤＤ２３に格納された解析対象回路の回路情報を取得するとともに、回路情報に含まれるＩＢＩＳモデルから、前述の駆動電流情報を取得する（ステップＳ３０）。
【００８８】
図１７は、解析対象回路の一例を示す図である。
解析対象回路８０は、たとえば、ＳｏＣのＩ／Ｏ回路８１と、ＤＲＡＭ（Dynamic Random Access Memory）８２を有している。Ｉ／Ｏ回路８１と、ＤＲＡＭ８２とは、パッケージ伝送路８３、プリント回路基板伝送路８４を介して接続されている。また、Ｉ／Ｏ回路８１には、パッケージインダクタ８５、パッケージ抵抗８６、プリント回路基板インダクタ８７及びプリント回路基板抵抗８８を介して電源電圧ＶＤＥが接続されている。なお、図１７中で、“ＰＫＧ”はパッケージを示し、“ＰＣＢ”は、プリント回路基板を示している。
【００８９】
次に、プロセッサ２１は、解析時間ｔをｔ＝０として（ステップＳ３１）、ＤＣ解析を開始する（ステップＳ３２）。ＤＣ解析では、以下の処理で決定される駆動電流Ｉｄｒの値に基づき、Ｉ／Ｏ回路８１に供給される電源電圧ＶＤＥの時間変動（電源ノイズ）などが解析される。
【００９０】
そして、プロセッサ２１は、ｔ＝０におけるＩ／Ｏ回路８１の駆動電流値を設定する（ステップＳ３３）。ｔ＝０におけるＩ／Ｏ回路８１の駆動電流値としては、ＤＣ動作点解析などで得られた値、または、駆動電流情報における時間＝０［ｐｓ］のときの値が用いられる。
【００９１】
その後、プロセッサ２１は、ｔ＝ｔ＋Δｔとする（ステップＳ３４）。Δｔは、解析時間の刻み幅を示している。たとえば、１０ｐｓなどと設定されている。
そして、プロセッサ２１は、電源電圧ＶＤＥと駆動電流情報に基づき、その時間の駆動電流値を決定する（ステップＳ３５）。入力信号の論理レベルの変化前は、たとえば、駆動電流情報における時間＝０［ｐｓ］のときの値が用いられる。
【００９２】
その後、プロセッサ２１は、入力信号の論理レベルが変化したか否かを判定する（ステップＳ３６）。入力信号の論理レベルが変化していないと判定したときには、ステップＳ３４からの処理が繰り返される。入力信号の論理レベルが変化したと判定したときには、プロセッサ２１は、ｔ０＝０とし（ステップＳ３７）、その後、ｔ０＝ｔ０＋Δｔ０とする（ステップＳ３８）。ｔ０は、駆動電流情報における時間であり、Δｔ０の初期値は、たとえば、駆動時間情報における時間の刻み幅である。
【００９３】
そして、プロセッサ２１は、時間ｔ０とｔ０＋Δｔ０間での電源電圧ＶＤＥを検出し、電圧変化が１％以上か否かを判定する（ステップＳ３９）。変化が１％以上と判定したとき、プロセッサ２１は、時間の刻み幅であるΔｔ０を、小さくする（ステップＳ４０）。たとえば、プロセッサ２１は、元のΔｔ０が１０ｐｓであるときには、Δｔ０をその半分の５ｐｓなどとする。その後、ステップＳ３８からの処理が繰り返される。なお、１％という値は一例であり、この値に限定されるものではない。
【００９４】
時間ｔ０とｔ０＋Δｔ０間での電圧変化が１％以上ではないと判定したとき、プロセッサ２１は、Δｔ０をそれ以上小さくしない。そして、プロセッサ２１は、解析時間が終了したか否かを判定する（ステップＳ４１）。プロセッサ２１は、解析時間が終了したと判定したときには、シミュレーションを終了する。
【００９５】
プロセッサ２１は、解析時間が終了していないと判定したときは、上記のようにして設定したΔｔ０の刻み幅の時間に対応する時間の駆動電流Ｉｄｒの値が、駆動電流情報にあるか否かを判定する（ステップＳ４２）。この処理は、駆動電流情報が、図１１、図１２に示したようなＩ−Ｔテーブル７０，７１で表されている場合に行われる。駆動電流情報が多項式で表されている場合には、ステップＳ３５の処理に戻る。
【００９６】
対応する時間の駆動電流Ｉｄｒの値が駆動電流情報にないと判定したときには、プロセッサ２１は、電源電圧ＶＤＥと駆動電流情報に基づき駆動電流Ｉｄｒの値を補間し（ステップＳ４３）、その後、ステップＳ３６からの処理を繰り返す。対応する時間の駆動電流Ｉｄｒの値が駆動電流情報にあると判定したときには、プロセッサ２１は、ステップＳ３５からの処理を繰り返す。
【００９７】
上記の処理により、たとえば、以下のように駆動電流Ｉｄｒの値が決定する。
図１８は、駆動電流値の決定例を示す図である。
図１８では、駆動電流情報として、図１１に示したＩ−Ｔテーブル７０を用いた場合の駆動電流値の決定例が示されている。なお、図１８では、解析時間の刻み幅とＩ−Ｔテーブル７０における時間の刻み幅が、両方とも１０ｐｓで等しい場合を示している。ただし、Ｉ−Ｔテーブル７０の時間は、Ｉ／Ｏ回路８１の入力信号の立ち上がりタイミングを０［ｐｓ］としたものであり、図１８の例では、解析時間とは２０ｐｓずれている。
【００９８】
駆動電流Ｉｄｒを示す複数の波形は、Ｉ−Ｔテーブル７０に示されている各シフト量の一部に対応した駆動電流Ｉｄｒの時間変化の様子を示している。
入力信号の立ち上がりタイミングより前の駆動電流Ｉｄｒの情報は、Ｉ−Ｔテーブル７０には含まれていない。そのため、この時間では、たとえば、ＤＣ動作点解析などで得られた値、または、駆動電流情報１２の時間＝０［ｐｓ］のときの駆動電流値（図１の例では０［ｍＡ］）が用いられる。
【００９９】
入力信号の立ち上がりタイミング後では、シフト量とＩ−Ｔテーブル７０とに基づき駆動電流Ｉｄｒの値が決定される。
たとえば、解析時間が３０［ｐｓ］（Ｉ−Ｔテーブル７０での時間は１０［ｐｓ］）での駆動電流Ｉｄｒの値は、１つ前の解析時間である２０［ｐｓ］でのシフト量に基づき決まる。２０［ｐｓ］での１．５０［Ｖ］からのシフト量は、０．００［Ｖ］であり、そのシフト量に対応した、駆動電流情報１２の時間１０［ｐｓ］での駆動電流Ｉｄｒの値は、３［ｍＡ］となる。
【０１００】
また、解析時間が４０［ｐｓ］（Ｉ−Ｔテーブル７０での時間は２０［ｐｓ］）での駆動電流Ｉｄｒの値は、１つ前の解析時間である３０［ｐｓ］でのシフト量に基づき決まる。３０［ｐｓ］でのシフト量は、０［Ｖ］であり、その電源電圧値に対応した、Ｉ−Ｔテーブル７０の時間２０［ｐｓ］での駆動電流Ｉｄｒの値は、１０［ｍＡ］となる。
【０１０１】
解析時間が５０［ｐｓ］（Ｉ−Ｔテーブル７０での時間は３０［ｐｓ］）での駆動電流Ｉｄｒの値は、１つ前の解析時間である４０［ｐｓ］でのシフト量に基づき決まる。４０［ｐｓ］でのシフト量は、−０．０４［Ｖ］である。このシフト量に対応した、Ｉ−Ｔテーブル７０の時間３０［ｐｓ］での駆動電流Ｉｄｒの値は、１４［ｍＡ］となる。
【０１０２】
以降の解析時間６０，７０［ｐｓ］でも同様の処理が行われ、駆動電流Ｉｄｒの値が決定されていく。
なお、プロセッサ２１が、駆動電流Ｉｄｒの値を決定する際には、１つ前の解析時間でのシフト量ではなく、１つ前の解析時間と現在の解析時間との間の時間におけるシフト量の平均値に基づき決定するようにしてもよい。また、プロセッサ２１は、シフト量が、Ｉ−Ｔテーブル７０に挙げられている値と一致しない場合には、最も近い値のものを選択する。
【０１０３】
次に、図１６に示したステップＳ３９，Ｓ４０で示した時間の刻み幅（Δｔ０）を小さくする処理の一例を以下に示す。
図１９は、時間の刻み幅を小さくする処理の一例を示す図である。
【０１０４】
図１９は、電源電圧ＶＤＥの時間変化を示している。電源電圧ＶＤＥの基準値は１．５［Ｖ］としている。Ｉ−Ｔテーブル７０での時間０［ｐｓ］でのシフト量は０［Ｖ］、時間１０［ｐｓ］でのシフト量は、−０．０４［Ｖ］となっている。このため、０［ｐｓ］から１０［ｐｓ］の間では、基準値の１％以上の電圧変化がある。したがって、プロセッサ２１は、Δｔ０を小さくする。
【０１０５】
図１９では、まず、Δｔ０を、Ｉ−Ｔテーブル７０での時間の刻み幅の半分（５［ｐｓ］）にする例が示されている。５［ｐｓ］でのシフト量は、−０．０２［Ｖ］となっている。このため、０［ｐｓ］から５［ｐｓ］の間では、まだ基準値の１％以上の電圧変化がある。したがって、プロセッサ２１は、さらにΔｔ０を小さくする。
【０１０６】
図１９では、さらにΔｔ０を半分の２．５［ｐｓ］にする例が示されている。２．５［ｐｓ］でのシフト量は、−０．０１［Ｖ］となっている。このため、０［ｐｓ］から２．５［ｐｓ］の間での電圧変化は、基準値の１％より小さい。したがって、プロセッサ２１は、Δｔ０を２．５［ｐｓ］に確定する。
【０１０７】
次に、図１６に示したステップＳ４３の一例を説明する。
図２０は、駆動電流値の補間処理の一例を示す図である。
横軸は時間［ｐｓ］、縦軸は駆動電流Ｉｄｒ［ｍＡ］を示している。図２０では、Ｉ−Ｔテーブル７０で表現されている、シフト量が０．０３［Ｖ］のときの駆動電流ＩｄｒのＩ−Ｔ特性の一部が示されている。図２０の例では、Ｉ−Ｔテーブル７０には、１０［ｐｓ］と２０［ｐｓ］での駆動電流Ｉｄｒの値があり、１５［ｐｓ］での値がない場合の補間処理の例が示されている。
【０１０８】
補間処理は、たとえば、線形補間によって行われる。図２０に示されているように、１０［ｐｓ］での駆動電流の値が３．５［ｍＡ］、２０［ｐｓ］での駆動電流の値が１２［ｍＡ］のとき、線形補間によって、１５［ｐｓ］での駆動電流の値は、７．７５［ｍＡ］と、求められる。なお、補間処理の方法は、線形補間に限られず、多項式補間など、他の補間方法も用いられる。
【０１０９】
（ネットリストを用いた解析結果に対する誤差例）
本実施の形態のシミュレーション方法による効果を説明する前に、電源電圧ＶＤＥが一定電圧のもとで取得された駆動電流のＩ−Ｔ特性を用いたＩＢＩＳ５．０による解析結果と、トランジスタレベルのネットリストを用いたときの解析結果との比較例を示す。
【０１１０】
図２１（Ａ）は、ＳＳＯノイズ発生時の電源電圧波形の一例を示す図であり、図２１（Ｂ）は、ＳＳＯノイズ発生時の駆動電流波形の一例を示す図である。
図２１（Ａ）において、横軸は時間であり、縦軸は電源電圧ＶＤＥである。また、図２１（Ｂ）において、横軸は時間であり、縦軸は駆動電流Ｉｄｒである。
【０１１１】
また、図２１（Ａ）において、波形９０は、ネットリストを用いた解析で得られる電源電圧波形を示している。波形９０ａは、電源電圧ＶＤＥが一定電圧のもとで取得された駆動電流ＩｄｒのＩ−Ｔ特性の情報を含むＩＢＩＳ５．０を用いた解析で得られる電源電圧波形を示している。また、図２１（Ｂ）において、波形９１は、ネットリストを用いた解析で得られる駆動電流Ｉｄｒの波形を示している。波形９１ａは、電源電圧ＶＤＥが一定電圧のもとで取得された駆動電流Ｉｄｒ（コンポジットカレント）の波形を示している。
【０１１２】
波形９０，９０ａに示すようにＳＳＯノイズが発生すると、波形９０と波形９０ａとの間に誤差が生じている。このような誤差は、図２１（Ｂ）に示すように、波形９１と波形９１ａとの間に生じる誤差に起因する。
【０１１３】
図２２（Ａ）は、ＳＳＯノイズ増大時の電源電圧波形の一例を示す図であり、図２２（Ｂ）は、ＳＳＯノイズ増大時の駆動電流波形の一例を示す図である。
図２２（Ａ）において、横軸は時間であり、縦軸は電源電圧ＶＤＥである。また、図２２（Ｂ）において、横軸は時間であり、縦軸は駆動電流Ｉｄｒである。
【０１１４】
また、図２２（Ａ）において、波形９２は、ネットリストを用いた解析で得られる電源電圧波形を示している。波形９２ａは、電源電圧ＶＤＥが一定電圧のもとで取得された駆動電流ＩｄｒのＩ−Ｔ特性の情報を含むＩＢＩＳ５．０を用いた解析で得られる電源電圧波形を示している。また、図２２（Ｂ）において、波形９３は、ネットリストを用いた解析で得られる駆動電流Ｉｄｒの波形を示している。波形９３ａは、電源電圧ＶＤＥが一定電圧のもとで取得された駆動電流の波形を示している。
【０１１５】
図２２（Ａ），（Ｂ）では、図２１（Ａ），（Ｂ）よりもＳＳＯノイズが増大したときの様子が示されている。プロセッサ２１は、たとえば、図１７に示したパッケージインダクタ８５の値を大きくすることで、ノイズ量を増大させることができる。
【０１１６】
ＳＳＯノイズが増大すると、図２２（Ｂ）に示すように、波形９３と波形９３ａとの間の誤差も増大する。これによって、図２２（Ａ）に示すように、波形９２と波形９２ａとの間の誤差も増大する。
【０１１７】
次に、複数の電源電圧ＶＤＥの値に対応した駆動電流のＩ−Ｔ特性を用いた本実施の形態のシミュレーション方法による解析結果と、トランジスタレベルのネットリストを用いたときの解析結果との比較例を示す。
【０１１８】
図２３（Ａ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ発生時の電源電圧波形の一例を示す図である。また、図２３（Ｂ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ発生時の駆動電流波形の一例を示す図である。
【０１１９】
図２３（Ａ）において、横軸は時間であり、縦軸は電源電圧ＶＤＥである。また、図２３（Ｂ）において、横軸は時間であり、縦軸は駆動電流Ｉｄｒである。
図２３（Ａ）において、波形９４は、ネットリストを用いた解析で得られる電源電圧波形を示している。波形９４ａは、たとえば、図１１に示したようなＩ−Ｔテーブル７０で表される駆動電流のＩ−Ｔ特性を用いた第２の実施の形態のシミュレーション方法で得られる電源電圧波形を示している。
【０１２０】
また、図２３（Ｂ）において、波形９５は、ネットリストを用いた解析で得られる駆動電流波形を示している。波形９５ａは、たとえば、図１１に示したようなＩ−Ｔテーブル７０から電源電圧のシフト量に応じて選択された駆動電流Ｉｄｒの値による波形を示している。
【０１２１】
図２３（Ｂ）に示すように、ＳＳＯノイズにより電源電圧ＶＤＥが変動しても波形９５と波形９５ａとの間の誤差は少なく、ほぼ一致している。これによって、図２３（Ａ）に示すように、波形９４と波形９４ａとの間の誤差も少なく、ほぼ一致している。
【０１２２】
図２４（Ａ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ増大時の電源電圧波形の一例を示す図である。また、図２３（Ｂ）は、第２の実施の形態のシミュレーション方法適用時の、ＳＳＯノイズ増大時の駆動電流波形の一例を示す図である。
【０１２３】
図２４（Ａ）において、横軸は時間であり、縦軸は電源電圧ＶＤＥである。また、図２４（Ｂ）において、横軸は時間であり、縦軸は駆動電流Ｉｄｒである。
図２４（Ａ）において、波形９６は、ネットリストを用いた解析で得られる電源電圧波形を示している。波形９６ａは、たとえば、図１１に示したようなＩ−Ｔテーブル７０で表される駆動電流ＩｄｒのＩ−Ｔ特性を用いた第２の実施の形態のシミュレーション方法で得られる電源電圧波形を示している。
【０１２４】
また、図２４（Ｂ）において、波形９７は、ネットリストを用いた解析で得られる駆動電流波形を示している。波形９７ａは、たとえば、図１１に示したようなＩ−Ｔテーブル７０から電源電圧ＶＤＥのシフト量に応じて選択された駆動電流Ｉｄｒの値による波形を示している。
【０１２５】
図２４（Ｂ）に示すように、大きなＳＳＯノイズが生じても波形９７と波形９７ａとの間の誤差は少なく、ほぼ一致している。これによって、図２４（Ａ）に示すように、波形９７と波形９７ａとの間の誤差も少なく、ほぼ一致している。
【０１２６】
このように、本実施の形態のシミュレーション方法では、電源ノイズ解析時の各時間におけるＩ／Ｏ回路８１の駆動電流Ｉｄｒの値が、各時間における電源電圧ＶＤＥの値と、Ｉ−Ｔテーブル７０などのような駆動電流情報とに基づき決定される。
【０１２７】
これによって、駆動電流は、電源電圧の変動を反映した値となり、ＳＳＯノイズなどの電源ノイズが発生したときの実際の駆動電流（またはネットリストを用いて算出される駆動電流）との誤差を、一定電圧化で取得した駆動電流を用いた場合よりも小さくできる。そのため、駆動電流の影響を受ける電源ノイズ量を精度よく見積もれるようになり、電源ノイズの解析精度が向上する。
【０１２８】
また、図１６に示したように、プロセッサ２１は、解析をある刻み幅の時間で行っている際に、その刻み幅での電源電圧値の変化が所定値以上のときには、その刻み幅を小さくする。そして、プロセッサ２１は、その刻み幅の時間に対応する駆動電流値が駆動電流情報にないときには、補間処理を行い、小さくした刻み幅の時間に対応する駆動電流値を生成している。このような処理により、より詳細な精度のよい解析が可能となる。
【０１２９】
なお、プロセッサ２１は、本実施の形態のシミュレーション方法の実行途中に、たとえば、以下のような画面をモニタ２４ａに表示させてもよい。
（表示例）
図２５は、モニタに表示される表示画面の例を示す図である。
【０１３０】
画面１００には、図１１に示したＩ−Ｔテーブル７０と、図１８に示した電源電圧ＶＤＥの変化に応じて駆動電流の値が決定されていく様子が示されている。ユーザは、このような画面１００を参照して、駆動電流の決定の様子を確認することができる。また、画面１００には、図２３（Ａ）の波形９４や、図２４（Ａ）の波形９６といった電源電圧波形を表示してもよい。
【０１３１】
以上、実施の形態に基づき、本発明のシミュレーション方法、回路モデル作成方法、シミュレーション装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０１３２】
１  シミュレーション装置（コンピュータ）
２  プロセッサ
３  記憶部
１０  回路情報
１０ａ  ＩＢＩＳモデル情報
１１  Ｉ／Ｏ回路
１１ａ  バッファ
１２  駆動電流情報
Ｉｄｒ  駆動電流
【図１】
2017010267.tif 000003
【図２】
2017010267.tif 000004
【図３】
2017010267.tif 000005
【図４】
2017010267.tif 000006
【図５】
2017010267.tif 000007
【図６】
2017010267.tif 000008
【図７】
2017010267.tif 000009
【図８】
2017010267.tif 000010
【図９】
2017010267.tif 000011
【図１０】
2017010267.tif 000012
【図１１】
2017010267.tif 000013
【図１２】
2017010267.tif 000014
【図１３】
2017010267.tif 000015
【図１４】
2017010267.tif 000016
【図１５】
2017010267.tif 000017
【図１６】
2017010267.tif 000018
【図１７】
2017010267.tif 000019
【図１８】
2017010267.tif 000020
【図１９】
2017010267.tif 000021
【図２０】
2017010267.tif 000022
【図２１】
2017010267.tif 000023
【図２２】
2017010267.tif 000024
【図２３】
2017010267.tif 000025
【図２４】
2017010267.tif 000026
【図２５】
2017010267.tif 000027