(57)【特許請求の範囲】
【請求項１】
それぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを、演算部を有するコンピュータによって予測する方法であって、
前記コンピュータが、回路シミュレーションを行ない、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の所定の周波数における振幅を得るシミュレーションステップと、
前記コンピュータが、前記複数のバッファを複数のグループに分割し、各グループ間の動作タイミングにディレイを与える際の前記各グループに含まれるバッファの数と、前記ディレイとを含むディレイ情報を取得する取得ステップと、
前記コンピュータが、前記シミュレーションステップで得た電流の振幅をバッファ総数で割ったものを各バッファが出力する電流の振幅と仮定し、前記取得ステップで取得されたディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅の、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の振幅に対する比である振幅低減量を算出する第１の振幅低減量算出ステップと、
前記コンピュータが、前記シミュレーションステップで得た電流の振幅と前記第１の振幅低減量算出ステップで算出された振幅低減量とを周波数毎に乗算することにより、前記取得ステップで取得されたディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅を算出する第１の電流算出ステップとを備える、電流予測方法。
【請求項２】
前記コンピュータが、前記シミュレーションステップで得た電流の振幅をバッファ総数で割ったものを各バッファが出力する電流の振幅と仮定し、前記ディレイ情報とは異なる別のディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅の、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の振幅に対する比である振幅低減量を算出する第２の振幅低減量算出ステップと、
前記コンピュータが、前記シミュレーションステップで得た電流の振幅と前記第２の振幅低減量算出ステップで算出された振幅低減量とを周波数毎に乗算することにより、前記別のディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅を算出する第２の電流算出ステップとをさらに備える、請求項１に記載の電流予測方法。
【請求項３】
前記コンピュータが、前記第１の電流算出ステップおよび前記第２の電流算出ステップで算出された電流の振幅と予め定められた許容値とを比較し、前記算出された電流の振幅が前記許容値以下である場合に、前記第１の電流算出ステップおよび前記第２の電流算出ステップが電流の振幅を算出した際のディレイ情報を記録するステップをさらに備える、請求項２に記載の電流予測方法。
【請求項４】
前記取得ステップは、前記各グループに含まれる前記バッファの数が等しいディレイ情報を取得するステップを含む、請求項１に記載の電流予測方法。
【請求項５】
前記取得ステップは、前記各グループ間に与える前記ディレイが等しいディレイ情報を取得するステップを含む、請求項１に記載の電流予測方法。
【請求項６】
演算部を有するコンピュータにおける、それぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを予測する方法であって、
前記コンピュータが、回路シミュレーションを行ない、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の時間応答を得るステップと、
前記コンピュータが、前記複数のバッファを複数のグループに分割し、各グループ間の動作タイミングにディレイを与える際の前記各グループに含まれるバッファの数と、前記ディレイとを含むディレイ情報を取得するステップと、
前記コンピュータが、前記電流の時間応答を得るステップで得た電流の時間応答をバッファ総数で割ったものを各バッファが出力する電流の時間応答と仮定し、前記ディレイ情報を取得するステップで取得されたディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の時間応答を算出するステップとを備える、電流予測方法。
【請求項７】
演算部を有するコンピュータにそれぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを予測させるためのプログラムであって、
前記演算部が、回路シミュレーションを行ない、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の所定の周波数における振幅を得るシミュレーションステップと、
前記演算部が、前記複数のバッファを複数のグループに分割し、各グループ間の動作タイミングにディレイを与える際の前記各グループに含まれるバッファの数と、前記ディレイとを含むディレイ情報を取得する取得ステップと、
前記演算部が、前記シミュレーションステップで得た電流の振幅をバッファ総数で割ったものを各バッファが出力する電流の振幅と仮定し、前記取得ステップで取得されたディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅の、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の振幅に対する比である振幅低減量を算出する振幅低減量算出ステップと、
前記演算部が、前記シミュレーションステップで得た電流の振幅と前記振幅低減量算出ステップで算出された前記振幅低減量とを周波数毎に乗算することにより、前記取得ステップで取得されたディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅を算出する電流算出ステップとを備える、プログラム。
【請求項８】
請求項７記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項９】
それぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを予測する装置であって、
回路シミュレーションを行ない、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の所定の周波数における振幅を得るシミュレーション手段と、
前記シミュレーション手段で得た振幅を記憶する記憶手段と、
前記複数のバッファを設定された複数のグループに分割し、各グループ間の動作タイミングに設定されたディレイを与える際の前記各グループに含まれるバッファの数と、前記ディレイとを含むディレイ情報を取得する取得手段と、
前記記憶手段に記憶された振幅をバッファ総数で割ったものを各バッファが出力する電流の振幅と仮定し、前記取得ステップで取得されたディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅の、前記複数のバッファが同時に動作した場合に前記回路に流れる電流の振幅に対する比である振幅低減量を算出する振幅低減量算出手段と、
前記記憶手段に記憶された振幅と前記振幅低減量算出ステップで算出された前記振幅低減量とを周波数毎に乗算することにより、前記取得ステップで取得されたディレイ情報に応じて前記複数のバッファが動作する際に前記回路に流れる電流の振幅を算出する電流算出手段とを備える、電流予測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路において、複数のバッファが同時にスイッチングすることにより発生する電流の予測に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integrated cuicuit）等の半導体集積回路においては、半導体加工プロセスの微細化により電源電圧が低下し、同時に内部のゲート数は更に増している。こうした状況下において多くのバッファが同時にスイッチングした場合、貫通電流が電源・グランド上を流れることで発生する電源・グランドの電位の変動が大きなものになる。即ち同時スイッチングにより発生する電源電流が回路の他の部分の信号品質を劣化させるノイズとなるだけでなく、電源・グランド電位の変動により、回路が正常に動作しないなどのおそれがある。
【０００３】
そのため、設計段階において同時スイッチングを予測し、問題が発生する危険を回避することが求められている。特許文献１では、半導体装置の電源配線を回路モデル化し、同時スイッチングノイズを評価する方法が提案されている。
【０００４】
一方、同時スイッチングノイズに関する対策として、特許文献２のように各バッファのスイッチタイミングを意図的にずらすことにより瞬間的に発生する電流のピークを低減する方法が提案されている。スイッチタイミングをずらすことで、各バッファから発生する電流同士の間に位相差が生じることを利用し、スイッチタイミングのずらし方を調整することにより、バッファから発生する電流同士を干渉させ、タイミングの時間差に応じた周波数成分の振幅を低減させる効果が得られる。
【特許文献１】特開２００４−５４５２２号公報
【特許文献２】特開２００５−３３８４２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のようなスイッチタイミングの時間差によるノイズ電流量の低減効果は、特許文献１に示すような技術を用いて解析することが可能であるが、タイミングの時間差が複数パターン存在する場合は、全てのパターンに対して回路シミュレーションを実行するために、膨大な時間を必要とする。
【０００６】
本発明は上記のような問題を解決するためになされたものであって、その課題は、スイッチタイミングをずらして各バッファを動作させた際に回路に流れる電流を、簡易的かつ短時間で予測する電流予測方法を提供することである。
【課題を解決するための手段】
【０００７】
１つの局面に係る本発明は、それぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを予測する方法であって、回路シミュレーションを行ない、複数のバッファが同時に動作した場合に回路に流れる電流の周波数成分を得るシミュレーションステップと、複数のバッファを複数のグループに分割し、各グループ間の動作タイミングにディレイを与える際の各グループに含まれるバッファの数と、ディレイとを含むディレイ情報を取得する取得ステップと、シミュレーションステップで得た電流の周波数成分をバッファ総数で割ったものを各バッファが出力する電流の周波数成分と仮定し、取得ステップで取得されたディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分の、複数のバッファが同時に動作した場合に回路に流れる電流の周波数成分に対する比である振幅低減量を算出する第１の振幅低減量算出ステップと、シミュレーションステップで得た電流の周波数成分と第１の振幅低減量算出ステップで算出された振幅低減量とを周波数毎に乗算することにより、取得ステップで取得されたディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分を算出する第２の電流算出ステップとを備える。
【０００８】
好ましくは、シミュレーションステップで得た電流の周波数成分をバッファ総数で割ったものを各バッファが出力する電流の周波数成分と仮定し、ディレイ情報とは異なる別のディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分の、複数のバッファが同時に動作した場合に回路に流れる電流の周波数成分に対する比である振幅低減量を算出する第２の振幅低減量算出ステップと、シミュレーションステップで得た電流の周波数成分と第２の振幅低減量算出ステップで算出された振幅低減量とを周波数毎に乗算することにより、別のディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分を算出する第２の電流算出ステップとをさらに備える。
【０００９】
さらに好ましくは、第１の電流算出ステップおよび第２の電流算出ステップで算出された電流の周波数成分と予め定められた許容値とを比較し、算出された電流の周波数成分が許容値以下である場合に、第１の電流算出ステップおよび第２の電流算出ステップが電流の周波数成分を算出した際のディレイ情報を記録するステップをさらに備える。
【００１０】
好ましくは、取得ステップは、各グループに含まれるバッファの数が等しいディレイ情報を取得する。
【００１１】
好ましくは、取得ステップは、各グループ間に与えるディレイが等しいディレイ情報を取得する。
【００１２】
他の局面に係る本発明は、それぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを予測する方法であって、回路シミュレーションを行ない、複数のバッファが同時に動作した場合に回路に流れる電流の時間応答を得るステップと、複数のバッファを複数のグループに分割し、各グループ間の動作タイミングにディレイを与える際の各グループに含まれるバッファの数と、ディレイとを含むディレイ情報を取得するステップと、電流の時間応答を得るステップで得た電流の時間応答をバッファ総数で割ったものを各バッファが出力する電流の時間応答と仮定し、ディレイ情報を取得するステップで取得されたディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の時間応答を算出するステップとを備える。
【００１３】
他の局面に係る本発明は、演算部を有するコンピュータにそれぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを予測させるためのプログラムであって、演算部が、回路シミュレーションを行ない、複数のバッファが同時に動作した場合に回路に流れる電流の周波数成分を得るシミュレーションステップと、演算部が、複数のバッファを複数のグループに分割し、各グループ間の動作タイミングにディレイを与える際の各グループに含まれるバッファの数と、ディレイとを含むディレイ情報を取得する取得ステップと、演算部が、シミュレーションステップで得た電流の周波数成分をバッファ総数で割ったものを各バッファが出力する電流の周波数成分と仮定し、取得ステップで取得されたディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分の、複数のバッファが同時に動作した場合に回路に流れる電流の周波数成分に対する比である振幅低減量を算出する振幅低減量算出ステップと、演算部が、シミュレーションステップで得た電流の周波数成分と振幅低減量算出ステップで算出された振幅低減量とを周波数毎に乗算することにより、取得ステップで取得されたディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分を算出する電流算出ステップとを備える。
【００１４】
他の局面に係る本発明は、上記プログラムを格納したコンピュータ読み取り可能な記録媒体を提供する。
【００１５】
他の局面に係る本発明は、それぞれ等しい電流を出力する複数のバッファが動作する回路における電流の大きさを予測する装置であって、回路シミュレーションを行ない、複数のバッファが同時に動作した場合に回路に流れる電流の周波数成分を得るシミュレーション手段と、シミュレーション手段で得た周波数成分を記憶する記憶手段と、複数のバッファを設定された複数のグループに分割し、各グループ間の動作タイミングに設定されたディレイを与える際の各グループに含まれるバッファの数と、ディレイとを含むディレイ情報を取得する取得手段と、記憶手段に記憶された周波数成分をバッファ総数で割ったものを各バッファが出力する電流の周波数成分と仮定し、取得ステップで取得されたディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分の、複数のバッファが同時に動作した場合に回路に流れる電流の周波数成分に対する比である振幅低減量を算出する振幅低減量算出手段と、記憶手段に記憶された周波数成分と振幅低減量算出ステップで算出された振幅低減量とを周波数毎に乗算することにより、取得ステップで取得されたディレイ情報に応じて複数のバッファが動作する際に回路に流れる電流の周波数成分を算出する電流算出手段とを備える。
【発明の効果】
【００１６】
本発明によれば、スイッチタイミングをずらして各バッファを動作させた際に回路に流れる電流を、簡易的かつ短時間で予測することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しつつ本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについては詳細な説明は繰り返さない。
【００１８】
（１．本発明のシステム構成）
図１は、本発明に係るシミュレーション装置１００の構成をブロック図形式で表す図である。図１を参照して、シミュレーション装置１００の構成について説明する。
【００１９】
シミュレーション装置１００は、コンピュータ本体１０２と、コンピュータ本体１０２とバス１０５を介して接続される、フレキシブルディスク（Flexible Disk、以下「ＦＤ」と呼ぶ）１１６に情報を読み書きするためのＦＤドライブ１０６と、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）１１８等の光ディスク上の情報を読み込むための光ディスクドライブ１０８と、外部とデータの授受を行なうための通信インターフェイス１２８と、表示装置としてのモニタ１０４と、入力装置としてのキーボード１１０およびマウス１１２とを備える。
【００２０】
コンピュータ本体１０２は、バス１０５に接続されたＣＰＵ（Central Processing Unit）１２０と、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）を含むメモリ１２２と、直接アクセスメモリ装置、たとえば、ハードディスク１２４を含む。
【００２１】
ハードディスク１２４は、回路解析を実行するプログラム１６０と、電流予測を実行するプログラム１６１と、設計対象となる集積回路の回路情報２４０と、バッファ群のスイッチングのタイミングを示すディレイ情報２５０と、ディレイ情報への変化の与え方を示す変化情報２６０と、電流許容値２７０と、回路解析の結果を格納するための解析結果２８０と、ディレイ情報に対応する電流値を予測した評価結果２９０とを含む。
【００２２】
ここで、回路情報２４０については、通信インターフェイス１２８を介して、外部のデータベースから供給されてもよい。なお、半導体内部のネットリストおよび基板の寄生容量の情報等公知の技術によって得られるものを回路情報２４０として用いることができる。ディレイ情報２５０については、通信インターフェイス１２８を介して、外部のデータベースから供給されてもよいし、ユーザによるキーボード１１０あるいはマウス１１２の操作に応じて、ＣＰＵ１２０によって生成されてもよい。
【００２３】
また、本発明に係るシミュレーションを行なうプログラムは、ＦＤ１１６、またはＣＤ−ＲＯＭ１１８等の記憶媒体によって供給されてもよいし、他のコンピュータにより通信回線を経由して供給されてもよい。また、回路解析は、通信インターフェイス１２８を介して、外部のコンピュータに実行させ、その結果をハードディスク１２４に格納させてもよい。
【００２４】
演算処理装置として機能するＣＰＵ１２０は、メモリ１２２をワーキングメモリとして、上述した各プログラムに対応した処理を実行する。
【００２５】
なお、ＣＤ−ＲＯＭ１１８は、コンピュータ本体に対してインストールされるプログラム等の情報を記録可能な媒体であれば、他の媒体、たとえば、ＤＶＤ（Digital Versatile Disc）−ＲＯＭやメモリーカードなどでもよく、その場合は、コンピュータ本体１０２には、これらの媒体を読み取ることが可能なドライブ装置が設けられる。また、バス１０５には、カセット形式の磁気テープを着脱自在に装着してアクセスする磁気テープ装置が接続されていてもよい。
【００２６】
発明に係るシミュレーションを行なうプログラムは、上述の通り、ＣＰＵ１２０により実行されるソフトウェアである。一般的に、こうしたソフトウェアは、ＣＤ−ＲＯＭ１１８、ＦＤ１１６等の記憶媒体に格納されて流通し、光ディスクドライブ１０８またはＦＤドライブ１０６等により記憶媒体から読み取られてハードディスク１２４に一旦格納される。または、シミュレーション装置１００がネットワークに接続されている場合には、ネットワーク上のサーバから一旦ハードディスク１２４にコピーされる。そうしてさらにハードディスク１２４からメモリ１２２中のＲＡＭに読み出されてＣＰＵ１２０により実行される。なお、ネットワーク接続されている場合には、ハードディスク１２４に格納することなくＲＡＭに直接ロードして実行するようにしてもよい。
【００２７】
図１に示したコンピュータのハードウェア自体およびその動作原理は一般的なものである。したがって、本発明の機能を実現するに当り本質的な部分は、ＦＤ１１６、ＣＤ−ＲＯＭ１１８、ハードディスク１２４等の記憶媒体に記憶されたソフトウェアである。
【００２８】
図２に沿って、ＣＰＵ１２０の機能的構成を説明する。図２は、ＣＰＵ１２０の機能的構成を示すブロック図である。
【００２９】
回路シミュレーション部２１０は、回路情報２４０を入力とし、複数のバッファが同時に動作する時に回路に流れる電流を、ＳＰＩＣＥ等の回路シミュレータにより算出する。回路シミュレーション部２１０は、その解析結果２８０をハードディスク１２４に記録する。
【００３０】
ディレイ情報更新部２２０は、ハードディスク１２４からディレイ情報２５０を読み出し、読み出したディレイ情報２５０を変化情報２６０に基づいて変化させる。そして、変化後のディレイ情報２５０をハードディスク１２４に記憶する。
【００３１】
ノイズ低減効果評価部２３０は、電流算出部２３２と電流評価部２３４とを含む。電流算出部２３２は、解析結果２８０およびディレイ情報２５０に基づき、各バッファのスイッチタイミングにディレイが与えられている場合に回路に流れる電流の周波数成分を算出する。
【００３２】
電流評価部２３４は、電流算出部２３２で算出された電流の周波数成分を電流許容値２７０と比較し、比較結果に基づき評価結果２９０を出力する。
【００３３】
（２．電流予測方法）
ここからは、図３に沿って、本発明の電流予測方法について説明する。図３は、電流予測の際にＣＰＵ１２０の行なう処理を示すフローチャートである。
【００３４】
ＣＰＵ１２０は、回路情報２４０を取得する（ステップＳ３０１）。例えば、回路情報２４０がハードディスク１２４等の記憶媒体に記憶されている場合、この処理は、記憶媒体から回路情報２４０を読み出すことで行なわれる。あるいは、外部のデータベースから、通信インターフェースを介して取得してもよい。
【００３５】
次に、ＣＰＵ１２０は、回路情報２４０を入力とし、ＳＰＩＣＥ等のシミュレータにより回路シミュレーションを行ないディレイがない場合に回路に流れる電流の周波数成分を求める（ステップＳ３０２）。ここで、求める周波数成分は１つであってもよいし、複数の周波数における周波数成分を求めてもよい。周波数成分を求めた後、ＣＰＵ１２０は、シミュレーション結果をハードディスク１２４等に記録する（ステップＳ３０３）。
【００３６】
次に、ＣＰＵ１２０は、ユーザが行なうキーボード１１０あるいはマウス１２０の操作に応じてディレイ情報２５０を決定する（Ｓ３０４）。
【００３７】
ここで、ディレイ情報について、図４および図５を用いて説明する。図４は、本発明によるシミュレーションの対象となる回路の一部の一例を示す図である。図４に示すように、回路は、動作タイミング信号発生装置４１０が発生する動作タイミング信号に応じて電流を出力するバッファ４２０を複数有する。バッファ４２０は、複数のグループに分割されており、遅延装置４３０によって、各グループの動作タイミングに、前グループの動作タイミングからのディレイが与えられる。また、これらのバッファは、等しい駆動電圧を与え、等しい入力信号を与えた時には、等しい電流を出力するものとする。
【００３８】
図４中では、２個のバッファを含むグループ１と、３個のバッファを含むグループ２と、１個のバッファを含むグループ３が示されている。グループ１とグループ２の間にはディレイｄ２が与えられている。グループ２とグループ３の間にはディレイｄ３が与えられている。
【００３９】
ディレイ情報２５０は、図５の表に示すように、各グループに含まれるバッファ数と、前グループからの動作タイミングのディレイとを含む。ＣＰＵ１２０は、ユーザの入力に応じて、ディレイ情報２５０を決定する。あるいは、ＣＰＵ１２０は、予めハードディスク１２４等に記録されたファイルを読み込み、ディレイ情報２５０を決定する。
【００４０】
グループの総数、各グループに含まれるバッファ数、各グループ間のディレイはそれぞれ自由に設定できてもよい。ただし、各グループに含まれるバッファの数の和、すなわち、バッファの総数を一定に保つように定めるものとする。また、各グループに含まれるバッファ数は等しく定めるものとしてもよい。各グループ間のディレイについても等しく定めるものとしてもよい。
【００４１】
ステップＳ３０４でディレイ情報が決定された後、ＣＰＵ１２０は、決定されたディレイ情報を取得する（ステップＳ３０５）。なお、図３のフローチャートでは、回路シミュレーションの後にディレイ情報の決定および取得が行なわれるとしているが、処理の順序はこれに限られない。例えば、ＣＰＵ１２０は、ディレイ情報の決定および取得のあとに回路シミュレーションを行なってもよい。
【００４２】
取得されたディレイ情報に基づきＣＰＵ１２０は、振幅低減量の算出を行う（ステップＳ３０６）。振幅低減量の算出は次のように行なわれる。
【００４３】
まず、取得されたディレイ情報より、周波数fの振動において、グループｎに含まれるバッファが出力する電流の位相と、基準となるグループ１に含まれるバッファが出力する電流の位相との間の位相差ｐｎを、次の式（１）に基づき算出する。ここで、ｄｉ（i
＝２，３，…，ｎ）は、グループｉとグループｉ−１の電流出力タイミングの差である。なお、ｄ１＝０とする。
【００４４】
【数１】
0004836199.tif 000002
【００４５】
次に、取得したディレイ情報に応じて前記複数のバッファが動作する場合に回路に流れる電流の周波数ｆにおける周波数成分の、ディレイがない時に回路に流れる電流の周波数ｆにおける周波数成分に対する比である振幅低減量Ｌを、各グループのバッファ数と位相差とから、次の式（２）で計算する。ここで、Ｍは総グループ数である。
【００４６】
【数２】
0004836199.tif 000003
【００４７】
最後に、ＣＰＵ１２０は、Ｓ３０６で算出された振幅低減量と、Ｓ３０２で算出されハードディスク１２４に記憶されているディレイがない時に回路に流れる電流の周波数成分を周波数ごとに乗算することにより、ディレイ情報に従ってバッファが動作する場合に回路に流れる電流の周波数成分を算出する。
【００４８】
このように、本発明の電流予測方法では、ディレイがないときの電流とディレイ情報とから、ディレイ情報に従ってバッファが動作する場合に回路に流れる電流の周波数成分を求めることができる。つまり、ディレイがある回路に対して回路シミュレーションを行なうことなく、簡易な方法で、ディレイがある回路に流れる電流の振幅を求めることができる。
【００４９】
（３．ディレイ情報探索方法）
この電流シミュレーション方法を用いると、電流量が望ましい範囲となるディレイの与え方を探索することができる。この探索方法を、図６を用いて説明する。図６は、望ましいディレイを探索する際にＣＰＵ１２０が行なう処理を示すフローチャートである。
【００５０】
まず、ＣＰＵ１２０は、最初に与えるディレイ情報である初期ディレイ情報、ディレイ情報を変化させる際の変化量を示す変化情報、どのようなディレイ情報について、対応する電流を算出するかを表す探索範囲、および電流許容値Ｐを決定する（ステップＳ６０１）。
【００５１】
次に、ＣＰＵ１２０は、ディレイ情報を取得し（ステップＳ６０２）、取得したディレイ情報に従ってバッファが動作する時に回路に流れる電流の振幅Ｉｄを算出する（ステップＳ６０３）。ステップＳ６０２で行なわれる処理はステップＳ３０１で行なわれる処理と同様である。また、ステップＳ６０３で行なわれる処理は、ステップＳ３０２からステップＳ３０７までに行なわれる処理を含むものである。
【００５２】
次に、ＣＰＵ１２０は、算出された電流の振幅Ｉｄを電流許容値Ｐと比較し、ＩｄがＰ以下である時は（Ｓ６０４でＹｅｓ）、十分なノイズ低減効果が得られたとして、ＩｄおよびＩｄに対応するディレイ情報を、ハードディスク等の記録媒体に適合データとして記録する（ステップＳ６０５）。ＩｄがＰより大きい時は（ステップＳ６０４でＮｏ）、ＩｄあるいはＩｄに対応するディレイ情報の記録は行なわない。ここで、複数の周波数についてＩｄを求めている場合、電流許容値を各周波数について独立に定め、各周波数についてＩｄがＰ以下である時、適合データを記録するようにしてもよい。あるいは、各周波数に共通の電流許容値を定め、ＩｄとＰを比較し、適合データを記録するようにしてもよい。ディレイがない時に回路に流れる電流の複数の周波数にわたるスペクトルを求めている場合、ディレイがある時に回路に流れる電流スペクトルのピークが許容値以下である時に、適合データを記録することもできる。
【００５３】
さらに、ＣＰＵ１２０は、探索範囲中のディレイ全てについて対応するＩｄを求めたかを判定する（ステップＳ６０６）。まだ、対応するＩｄを求めていないディレイがあると判定した場合には、ＣＰＵ１２０は、変化量に基づいて新たなディレイ情報を決定し（ステップＳ６０７）、ステップＳ６０２からの処理を再び繰り返す。
【００５４】
全てのディレイについてＩｄを求めたと判定した場合（ステップＳ６０６でＹｅｓ）、ＣＰＵ１２０は、探索を終了し、記録された適合データの一覧をモニタ１０４に出力する（ステップＳ６０８）。
【００５５】
以上のような処理をおこない前記適合データの一覧を参照することにより、電流量が望ましい範囲となるディレイ情報を短時間で知ることができ、回路の最適な設計をおこなう判断材料として活用することができる。
【００５６】
より具体的に、ディレイ時間を変化させていき、適合データを探索する方法を図７に沿って説明する。図７は、ディレイ情報を変化させて望ましいディレイを探索する際にＣＰＵ１２０が行なう処理を示すフローチャートである。
【００５７】
まず、ＣＰＵ１２０は、ディレイの最小値ｄｍｉｎ、ディレイの最大値ｄｍａｘ、ディレイの刻み幅ｄｓｔｅｐ、ならびに電流許容値Ｐを決定する（ステップＳ７０１）。
【００５８】
次に、ＣＰＵ１２０は、全てのディレイの値をｄｍｉｎとするディレイ情報を生成し（ステップＳ７０２）、生成されたディレイ情報を取得する（ステップＳ７０３）。さらに、取得されたディレイ情報に対応するディレイがある場合に回路に流れる電流の振幅Ｉｄを算出する（ステップＳ７０４）。これらのステップで行なわれる処理は、図３で示した各ステップで行なわれる処理と同様である。
【００５９】
次に、ＣＰＵ１２０は、算出された電流の振幅Ｉｄを電流許容値Ｐと比較し、ＩｄがＰ以下である時は（ステップＳ７０５でＹｅｓ）、十分なノイズ低減効果が得られたとして、Ｉｄと対応するディレイ情報とを含む適合データをハードディスク等の記録媒体に記録する（ステップＳ７０６）。ＩｄがＰより大きい時は（ステップＳ７０５でＮｏ）、Ｉｄおよび対応するディレイ情報の記録は行なわない。
【００６０】
さらに、ＣＰＵ１２０は、ｄとｄｍａｘを比較する（ステップＳ７０７）。ｄ≦ｄｍａｘと判定した場合（ステップＳ７０７でＹｅｓ）、ＣＰＵ１２０は、ｄにｄｓｔｅｐを加えたものを新たなディレイ情報とし（ステップＳ７０８）、Ｓ７０３からの処理を再び繰り返す。
【００６１】
ｄ＞ｄｍａｘと判定した場合（ステップＳ７０７でＮｏ）、ＣＰＵ１２０は、探索を終了し、記録された適合データの一覧をモニタ１０４に出力する（ステップＳ７０９）。
【００６２】
また、グループ数および各グループに含まれるバッファ数を変化させていき、適合データを探索することもできる。この方法を図８に沿って説明する。図８は、グループ数および各グループに含まれるバッファ数を変化させて望ましいディレイを探索する際にＣＰＵ１２０が行なう処理を示すフローチャートである。
【００６３】
まず、ＣＰＵ１２０は、バッファ数の変化のさせ方を配列に格納したバッファ数テーブルおよび電流許容値Ｐを決定する（ステップＳ８０１）。
【００６４】
ここで、図９を参照して、バッファ数テーブルについて説明する。図９は、バッファ数テーブルの例を示す図である。図９に示すバッファ数テーブルは、バッファの総数が６０であり、各グループのバッファ数を全て等しく１、２、４、６、１０、１２、１５、２０、３０とする場合に対応している。図９中のｋｉはグループｉに含まれるバッファの数を表し、Ｋは、ｋｉの情報に対応するラベルである。
【００６５】
このようなバッファ数テーブルはユーザによる入力に応じＣＰＵ１２０によって生成されてもよい。また事前に用意したファイルなどにより与えられてもよい。なお、ここでは、各グループのバッファが等しくなるような例を挙げたが、各グループのバッファ数が異なるようなバッファ数テーブルを作成しても構わない。
【００６６】
次に、ＣＰＵ１２０は、ラベルＫ＝１に対応したディレイ情報を生成する（ステップＳ８０２）。図９で示した例の場合、ＣＰＵ１２０は、バッファ群を１個のバッファからなるグループ６０個に分割し、各グループ間に与えるディレイを定める。次に、ＣＰＵ１２０は、生成されたディレイ情報を取得する（ステップＳ８０３）。さらに、取得されたディレイ情報に対応するディレイがある場合の電流の振幅Ｉｄを算出する（ステップＳ８０４）。ステップＳ８０２で行なわれる処理はステップＳ３０１で行なわれる処理と同様である。また、ステップＳ８０３で行なわれる処理は、ステップＳ３０２からステップＳ３０７までに行なわれる処理を含む。
【００６７】
次に、ＣＰＵ１２０は、算出された電流の振幅Ｉｄを電流許容値Ｐと比較し、ＩｄがＰ以下である時は（Ｓ８０５でＹｅｓ）、十分なノイズ低減効果が得られたとして、Ｉｄと対応するディレイ情報とを含む適合データをハードディスク等の記録媒体に記録する（ステップＳ８０６）。ＩｄがＰより大きい時は（ステップＳ８０５でＮｏ）、Ｉｄおよび対応するディレイ情報の記録は行なわない。
【００６８】
さらに、ＣＰＵ１２０は、テーブル内の全パターンに対してＩｄの算出を終了したか判定する（ステップＳ８０７）。例えば、図９のバッファテーブルが与えられている場合、Ｋ＝９に対応するＩｄを算出したならば、ＣＰＵ１２０は、全パターンに対してＩｄの算出を終了したと判断する。まだ、対応するＩｄの算出を終了していないパターンがあると判断した場合（ステップＳ８０７でＮｏ）、ＣＰＵ１２０は、ラベルＫ＋１に対応する新たなディレイ情報を生成し（ステップＳ８０８）、ステップＳ８０３からの処理を再び繰り返す。
【００６９】
テーブル内の全パターンに対してＩｄの算出を終了したと判断した場合（ステップＳ８０７でＹｅｓ）、ＣＰＵ１２０は、探索を終了し、記録された適合データの一覧をモニタ１０４に出力する（ステップＳ８０９）。
【００７０】
（４．過渡波形の算出）
これまでは本発明による電流の周波数成分の算出方法について説明したが、本発明は、過渡波形の算出についても適用できる。このことを、図１０を用いて説明する。図１０は、過渡波形の算出を行なう際に、ＣＰＵ１２０が行なう処理を示すフローチャートである。
【００７１】
ＣＰＵ１２０は、回路情報２４０を取得し（ステップＳ１００１）、回路シミュレーションにより、ディレイがない場合の全バッファから発生する電流の総和の過渡波形ｆ（ｔ）を求める（ステップＳ１００２）。過渡波形ｆ（ｔ）を求めた後、ＣＰＵ１２０は、シミュレーション結果をハードディスク１２４等に記録する（ステップＳ１００３）。
【００７２】
次に、ＣＰＵ１２０は、ユーザのキーボード１１０あるいはマウス１２０の操作に応じてディレイ情報２５０を決定する（ステップＳ１００４）。ディレイ情報の決定の後、ＣＰＵ１２０は、Ｓ３０４で決定された、あるいは予め与えられているディレイ情報を取得する（ステップＳ３０５）。なお、図１０のフローチャートでは、回路シミュレーションの後にディレイ情報の決定および取得が行なわれるとしているが、処理の順序はこれに限られない。
【００７３】
取得されたディレイ情報に基づきＣＰＵ１２０は、ディレイを考慮した場合の各グループｎから発生する電流波形過渡応答波形ｆｎ（ｔ）の算出を行う（ステップＳ１００６）。ｆｎ（ｔ）は、次の式（３）にしたがって算出される。
【００７４】
【数３】
0004836199.tif 000004
【００７５】
最後に、ＣＰＵ１２０は、ステップＳ１００６で算出されたｆｎ（ｔ）を全グループについて加算することにより、ディレイ情報を考慮した電流の過渡波形ｆｄ（ｔ）を算出する。すなわち、ｆｄ（ｔ）は、次の式（４）にしたがって算出される。
【００７６】
【数４】
0004836199.tif 000005
【００７７】
このように、本発明の電流予測方法では、ディレイがないときの電流波形とディレイ情報とから、ディレイがあるときの電流波形を求めることができる。つまり、ディレイがある回路に対して回路シミュレーションを行なうことなく、ディレイがあるときの電流波形を求めることができる。
【００７８】
以上に説明したように、本発明では、ディレイ情報によって変化する電流のスペクトルを短時間で見積もることができる。このことにより、複数のバッファが動作する回路の同時スイッチングを避けるため、バッファの動作タイミングを意図的にずらす場合に、バッファから発生する所定の周波数における電流量がより少なくなるディレイ情報を短時間で知ることができ、短時間で高品質の回路設計が可能となる。
【００７９】
実施例では全バッファを動作させた場合の電流からディレイを与えた時の電流を予測する方法について述べたが、１部のバッファの動作電流からディレイを与えた時の電流を予測することも同様に可能である事は明らかである。
【産業上の利用可能性】
【００８０】
半導体設計への適用が期待される。
【図面の簡単な説明】
【００８１】
【図１】本発明に係るシミュレーション装置１００の構成をブロック図形式で示す図である。
【図２】ＣＰＵ１２０の機能的構成を示すブロック図である。
【図３】電流予測の際にＣＰＵ１２０の行なう処理を示すフローチャートである。
【図４】本発明によるシミュレーションの対象となる回路の一部を示す図である。
【図５】ディレイ情報の例を示す図である。
【図６】望ましいディレイを探索する際にＣＰＵ１２０が行なう処理を示すフローチャートである。
【図７】ディレイ情報を変化させて望ましいディレイを探索する際にＣＰＵ１２０が行なう処理を示すフローチャートである。
【図８】グループ数および各グループに含まれるバッファ数を変化させて望ましいディレイを探索する際にＣＰＵ１２０が行なう処理を示すフローチャートである。
【図９】バッファ数テーブルの例を示す図である。
【図１０】過渡波形の算出を行なう際に、ＣＰＵ１２０が行なう処理を示すフローチャートである。
【符号の説明】
【００８２】
１００  シミュレーション装置、１０２  コンピュータ本体、１０４  モニタ、１０５  バス、１０６  ＦＤドライブ、１０８  光ディスクドライブ、１１０  キーボード、１１２  マウス、１１６  ＦＤ、１１８  ＣＤ−ＲＯＭ、１２０  ＣＰＵ、１２２  メモリ、１２４  ハードディスク、１２８  通信インターフェイス、１６０  回路解析を実行するプログラム、１６１  電流予測を実行するプログラム、２１０  回路シミュレーション部、２２０  ディレイ情報更新部、２３０  ノイズ低減効果評価部、２３２  電流算出部、２３４  電流評価部、２４０  回路情報、２５０  ディレイ情報、２６０  変化情報、２７０  電流許容値、２８０  解析結果、２９０  予測結果、４１０  動作タイミング信号発生装置、４２０  バッファ、４３０  遅延装置。
【図１】
0004836199.tif 000006
【図２】
0004836199.tif 000007
【図３】
0004836199.tif 000008
【図４】
0004836199.tif 000009
【図５】
0004836199.tif 000010
【図６】
0004836199.tif 000011
【図７】
0004836199.tif 000012
【図８】
0004836199.tif 000013
【図９】
0004836199.tif 000014
【図１０】
0004836199.tif 000015