以下に添付図面を参照して、このシミュレーションプログラム、該プログラムを記録した記録媒体、シミュレーション装置、およびシミュレーション方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
まず、シミュレーション装置の実施の形態1について説明する。シミュレーション装置は、実行間隔が固定あるいは可変の第1の解析処理と、実行間隔が第1の解析処理の実行間隔以上でかつ可変の第2の解析処理とを連携したシミュレーションを実行する。一例として、空間内の電磁界解析(第1の解析処理)と空間内に配置される回路の回路解析(第2の解析処理)とを連携した融合シミュレーションの実行に適用することができる。
なお、本実施の形態では、第2の解析処理の実行間隔が第1の解析処理の実行間隔以上として説明するが、シミュレーション全体の解析時間において、常にこの関係が保たれているとは限らない。すなわち、一時的に第1の解析処理の実行間隔よりも第2の解析処理の実行間隔のほうが小さくなることもある。
電磁界解析は、解析対象となる空間内の電磁波の過渡的な挙動を解析するシミュレーションである。電磁界解析には、例えば、陽的積分手法の一種であるFDTD(Finite Difference Time Domain)法を用いることができる。
また、回路解析は、解析対象となる回路の電圧・電流の過渡的な挙動を解析するシミュレーションである。回路解析には、例えば、陰的積分手法を用いた回路シミュレータを使用することができる。回路シミュレータには、例えば、SPICE(Simulation Program with Integrated Circuit Emphasis)がある。
ここで、電磁界解析と回路解析とを連携した融合シミュレーションの概要について説明する。図1は、融合シミュレーションの概要を示す説明図(その1)である。図1において、空間内の電磁界解析と、その空間内に配置される回路の回路解析とを連携した融合シミュレーションの概要が示されている。なお、以降において、「時刻」とは、シミュレーションにおける時刻を表わす変数であり、現実の時刻とは異なる。
電磁波解析では、空間を区切って格子状の複数のセルに分割し、FDTD法を用いた過渡的な解析をおこなう。ここでは、各セルの辺における電界Eと、その周囲の磁界Hとの過渡的な変化を解析する。電磁界解析の実行間隔「Δt」は解析の安定性を保つために、空間の離散化サイズに依存するある最大値以下である必要がある。各時刻で間隔を変えることも可能であるが、通常は解析時刻数をできるだけ少なくするため、最大値に近い固定値が用いられるので、以降において「Δt」は固定値として説明する。ここで、「Δt/2」間隔で進行する時刻をtH,tEとする。
具体的には、時刻tHで磁界Hを計算し、時刻tEで電界Eを計算することにより、過渡的な電磁波解析をおこなう。ただし、電界Eを計算するときには、回路が存在している領域の電界値En+1が引き渡されるのを待ち、電界値En+1が引き渡されたら、引き渡された値を反映させて空間内の電界Eを求める。
回路解析では、電流源法を用いた回路部110の等価回路111に基づいて、例えば、SPICEを使用した解析をおこなう。具体的には、電流源112から回路部110の両極にかかる電圧Vn+1を求める。このとき、回路部110の電流源値In+1/2が引き渡されるのを待ち、回路部110の電流源値In+1/2が引き渡されたら、渡された値によって回路部110の電流源値を更新して回路解析を続行する。
なお、等価回路111は、電流源112と、電流源112と並列に接続されたコンデンサCとからなる。また、回路解析の解析時刻を「T」とし、実行間隔を「ΔT」とする。この実行間隔ΔTは状況に応じて変化させることができる。
上述した、回路解析に引き渡される電流源値In+1/2は、電磁波解析により計算された磁界Hn+1/2から求める。また、電磁界解析に引き渡される回路が存在している領域の電界値En+1は、回路解析により計算された電圧Vn+1から求める。
ここで、電磁波解析と回路解析との間の電流源値In+1/2および電界値En+1の引き渡し手順について説明する。なお、各記号の右肩の数値は、k×Δtで表わされる時刻の「k」の値を示したものである。例えば、Hnは、時刻「n×Δt」における磁界Hを表わしている。
まず、電磁界解析において、解析時刻「tH=(n+1/2)×Δt」における磁界Hn+1/2を計算する(nは自然数)。具体的には、例えば、磁界Hn+1/2は、下記式(1)を用いて求めることができる。ただし、μは透磁率である。
Hn+1/2=Hn-1/2−(Δt/μ)rotEn …(1)
このあと、電磁界解析によって求められた磁界Hn+1/2を用いて電流源値In+1/2を算出し、その電流源値In+1/2を回路解析へ引き渡す。具体的には、例えば、電流源値In+1/2は、下記式(2)を用いて求めることができる。
In+1/2=ΣHn+1/2 …(2)
また、回路解析において、引き渡された電流源値In+1/2を用いて、電圧Vn+1を算出する。具体的には、例えば、電圧Vn+1は、下記式(3)を用いて求めることができる。ただし、Zは、回路のインピーダンス行列である。
Vn+1=Z-1×In+1/2 …(3)
このあと、回路解析によって求められた電圧Vn+1を用いて、回路が存在する領域の電界値En+1を算出し、電磁波解析に引き渡す。具体的には、例えば、電界値En+1は、下記式(4)を用いて求めることができる。ただし、dは、回路が存在する部分のセルの一辺の長さである。
En+1=Vn+1/d …(4)
また、電磁波解析において、引き渡された電界値En+1を用いて、解析時刻「tE(tE=(n+1)Δt)における電界値を計算する。具体的には、例えば、電界値は、下記式(5)を用いて求めることができる。ただし、εは、誘電率である。
En+1=En+(Δt/ε)rotHn+1/2 …(5)
そして、電磁波解析では、回路が存在する領域には引き渡された電界値En+1を設定し、その他の領域には上記式(5)を用いて求められた電界値を設定することで、所定の空間内の電界を求める。
一般に、電磁波解析から回路解析への電流源値In+1/2の引き渡し時刻と、回路解析の解析時刻Tとは、ある程度の範囲内で一致させないと解析が不安定となってしまうことが知られている。そこで、従来では、回路解析の解析時刻Tを電磁界解析の時刻tHに合わせることがおこなわれている。ところが、以下に説明する問題が発生してしまう。
FDTD法を安定に解くための実行間隔は、空間を離散化するサイズに依存する。つまり、離散化する格子サイズが小さくなるにつれ、実行間隔を短くする必要がある。このため、LSIが搭載されたプリント基板などに上記の融合シミュレーションを適用する場合には、電磁界解析の実行間隔が回路解析の実行間隔よりも短くなってしまう。
具体的には、プリント基板に対してFDTD法の空間離散化をおこなうと、最小の格子サイズが、数マイクロメートル(10-6[m])になる。これから、実行間隔を求めると、数十フェムト秒(10-15[秒])になる。したがって、回路解析の解析時刻Tを電磁界解析の時刻tHに合わせると、回路解析の実行間隔も数十フェムト秒(10-15[秒])になる。
一方、通常のLSIの動作速度では、回路解析に必要な実行間隔は数十ピコ秒(10-12[秒])程度で十分な解析精度が得られる。このため、単純に、電流源値In+1/2の引き渡し時刻と、回路解析の解析時刻Tとを合わせただけでは、本来解析する必要のない時刻での解析処理が発生してしまう。
特に、解析対象の回路規模が大きい場合、回路解析として本来不要である解析時刻における解析処理が、融合シミュレーション全体のボトルネックとなってしまっていた。ここで、従来の問題点を具体的に説明する。
図2は、従来の問題点を示す説明図である。図2において、電磁界解析と回路解析との間での電流源値Iおよび電圧Vの引き渡しタイミングが示されている。図2中、上段に電磁界解析を示し、下段に回路解析を示している。ここで、時刻tHは、磁界Hを計算し、その磁界Hから電流源値Iに変換して回路解析に引き渡す時刻である。時刻tEは、電界値Eを計算し、回路解析から引き渡される電圧Vを設定する時刻である。
図2では、電流源値Iの引き渡し時刻tHと回路解析の解析時刻Tとを合わせるとともに、その解析結果である電圧Vの引き渡し時刻と時刻tEとを合わせている。ところが、電磁界解析の実行間隔に合わせて回路解析の実行間隔を小さくした結果、本来解析する必要のない時刻(図2中白抜き丸)での解析処理が発生してしまっている。
そこで、実施の形態1では、電磁界解析と回路解析とを連携した融合シミュレーションにおいて、回路解析の実行間隔を適切に制御することにより、本来不要である時刻(図2中白抜き丸)における解析処理を削減し、LSIが搭載されたプリント基板などの電気的特性を解析する融合シミュレーションの高速化を図る。
(シミュレーション装置のハードウェア構成)
つぎに、シミュレーション装置のハードウェア構成について説明する。図3は、シミュレーション装置のハードウェア構成を示す説明図である。図3において、シミュレーション装置300は、コンピュータ本体310と、入力装置320と、出力装置330と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク340に接続可能である。
コンピュータ本体310は、CPU,メモリ,インターフェースを有する。CPUは、シミュレーション装置300の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク311,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク311はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク311およびフラッシュメモリはコンピュータ本体310に対し着脱自在である。インターフェースは、入力装置320からの入力、出力装置330への出力、ネットワーク340に対する送受信の制御をおこなう。
また、入力装置320としては、キーボード321、マウス322、スキャナ323などがある。キーボード321は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス322は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ323は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体310内のメモリに格納される。なお、スキャナ323にOCR機能を持たせてもよい。
また、出力装置330としては、ディスプレイ331、スピーカ332、プリンタ333などがある。ディスプレイ331は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ332は、効果音や読み上げ音などの音声を出力する。また、プリンタ333は、画像データや文書データを印刷する。
(シミュレーション装置の機能的構成)
つぎに、実施の形態1にかかるシミュレーション装置300の機能的構成について説明する。図4は、実施の形態1にかかるシミュレーション装置の機能的構成を示すブロック図である。図4において、シミュレーション装置300は、判定部401と、実行制御部402と、予測値算出部403と、第1の実行部404と、第2の実行部405と、出力部406と、を備えている。
これら各機能401〜406は、シミュレーション装置300の記憶部に記憶された当該機能401〜406に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能401〜406からの出力データは上記記憶部に保持される。また、図4中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
シミュレーション装置300は、実行間隔が固定あるいは可変の第1の解析処理と、実行間隔が第1の解析処理の実行間隔以上でかつ可変の第2の解析処理とを連携したシミュレーションを実行する機能を有する。ここでは、空間内の電磁界解析と空間内に配置される回路の回路解析とを連携した融合シミュレーションを例に挙げて説明する。
まず、判定部401は、現在の解析時刻における第1の解析処理の解析結果と、第2の解析処理の一実行間隔前の解析時刻における第1の解析処理の解析結果とに基づいて、現在の解析時刻における第2の解析処理の実行の要否を判定する機能を有する。
現在の解析時刻とは、固定あるいは可変間隔で実行される第1の解析処理の解析時刻のうち、現在注目している時刻である。また、第2の解析処理の一実行間隔前の解析時刻とは、現在の解析時刻より以前の時刻であって、実際に第2の解析処理が実行された時刻である。
ここで、第1の解析処理は、固定あるいは可変の実行間隔で必ず実行される。一方、第2の解析処理は、実行間隔が可変で、かつ、判定部401による判定結果に応じて、実行される場合もあれば、実行されない場合もある。なお、第2の解析処理が実行される場合、その解析時刻は、第1の解析処理の解析結果の引き渡し時刻と同時刻(または、所定値内)とする。
より具体的には、例えば、回路解析(第2の解析処理)の解析時刻は、電磁界解析(第1の解析処理)によって磁界が算出された時刻であって、その磁界を用いて求められた電流源値が回路解析に引き渡される時刻である。
なお、現在の解析時刻における第1の解析処理の解析結果、および第2の解析処理の一実行間隔前の解析時刻における第1の解析処理の解析結果は、例えば、ROMやRAMなどの記憶部から取得することとしてもよく、また、図示しない外部装置から取得することとしてもよい。
また、判定部401は、第1の解析処理と第2の解析処理とを連携したシミュレーションの開始直後は、現在の解析時刻における第2の解析処理の実行は必要であると判定することとしてもよい。なぜなら、第2の解析処理が未実行である、すなわち、第1の解析処理の過去の解析結果が存在していないからである。
また、第1および第2の解析処理の実行に必要となる入力データは、図示しない外部装置から取得することとしてもよく、また、ユーザの操作入力、図示しないデータベースやライブラリからの抽出によって取得することとしてもよい。入力データとしては、例えば、電磁界解析の実行に必要となる構造データや回路解析の実行に必要となるネットリストなどがある。
ネットリストは、例えば、解析対象となる回路の回路情報(回路図)や回路素子間の接続関係を表わす接続情報を含む電子データである。また、構造データは、例えば、空間を格子状に区切って複数のセルにした際の各セルの寸法、セル座標、セル名、セル内に存在する物質および各セルが属するネットリストに関する情報などを含む電子データである。
図5は、実施の形態1の概要を示す説明図である。図5において、第1の解析処理は、FDTD法を用いた空間内の電磁界解析である。また、第2の解析処理は、その空間内に配置される解析対象回路の回路解析である。図5中、時刻ti-2,ti-1,ti,ti+1は第1の解析処理の解析時刻を示し、Tj-1,Tjは第2の解析処理の解析時刻を示している。
第1の解析処理は、固定あるいは可変の実行間隔(Δt)で必ず実行される。ここで、現在の解析時刻をtiとする。この場合、判定部401は、現在の解析時刻tiにおける第1の解析処理の解析結果Iiと、第2の解析処理の一実行間隔前の解析時刻Tj-1(解析時刻ti-2)における第1の解析処理の解析結果Ii―2とに基づいて、現在の解析時刻tiにおける第2の解析処理の実行の要否を判定することとなる。
実行制御部402は、判定部401によって判定された判定結果に基づいて、現在の解析時刻における第2の解析処理の実行を制御する機能を有する。具体的には、例えば、実行制御部402は、判定部401によって第2の解析処理の実行が必要と判定された場合、現在の解析時刻における第1の解析処理の解析結果を用いて、現在の解析時刻における第2解析処理を実行させる。
より詳細に説明すると、第2の解析処理の実行が必要と判定された場合、第2の実行部405による現在の解析時刻における第2解析処理の実行を制御する。ここで、第2の実行部404は、可変の実行間隔で第2の解析処理を実行する機能を有する。第2の実行部404は、実行制御部402によって制御された結果、現在の解析時刻における第1の解析処理の解析結果を用いて、現在の解析時刻における第2解析処理を実行する。
予測値算出部403は、第2の解析処理の一実行間隔前の解析時刻における第1の解析処理の解析結果を用いて、現在の解析時刻における第1の解析処理の解析結果の予測値を算出する機能を有する。第1の解析処理の解析結果の予測値とは、過去の解析結果から現在の解析結果を予測した値である。
具体的には、例えば、一般的な数値積分のアルゴリズムを用いて、第2の解析処理の一実行間隔前の解析時刻における第1の解析処理の解析結果を1次近似することにより、予測値を算出することができる。また、第2の解析処理の一実行間隔前の解析時刻における第1の解析処理の解析結果を、そのまま予測値とすることとしてもよい(0次近似)。
図5を例に挙げると、予測値算出部403は、第2の解析処理の一実行間隔前の解析時刻Tj-1における第1の解析処理の解析結果Ii―2を用いて、現在の解析時刻tiにおける第1の解析処理の解析結果Iiの予測値を算出することとなる。
より具体的には、例えば、予測値は、下記式(6)を用いて求めることができる。ただし、Ip n+1/2は、現在の解析時刻tにおける第1の解析処理の解析結果の予測値である。Tは、第2の解析処理の一実行間隔前の解析時刻である。ITは、第2の解析処理の一実行間隔前の解析時刻Tにおける第1の解析処理の解析結果である。
なお、第2の解析処理の一実行間隔前の解析時刻T、および第2の解析処理の一実行間隔前の解析時刻Tにおける第1の解析処理の解析結果ITに関するデータ群は、例えば、ROMやRAMなどの記憶部に保持されている。そして、予測値算出部403は、記憶部に保持されているデータ群を読み出して、予測値を算出する。
判定部401は、予測値算出部403によって算出された予測値と、現在の解析時刻における第1の解析処理の解析結果とを用いて、現在の解析時刻における第2の解析処理の実行の要否を判定する機能を有する。具体的には、例えば、判定部401は、予測値と、現在の解析時刻における第1の解析処理の解析結果との誤差が、予め設定された閾値以下であった場合に、第2の解析処理の実行が不要であると判定することとしてもよい。
より具体的には、例えば、判定部401は、下記式(7)を用いて、現在の解析時刻における第2の解析処理の実行の要否を判定することができる。ただし、In+1/2は、現在の解析時刻における第1の解析処理の解析結果である。αは、予測値Ip n+1/2と第1の解析処理の解析結果In+1/2との誤差に関する閾値である。
この場合、判定部401は、予測値Ip n+1/2と第1の解析処理の解析結果In+1/2との誤差が閾値α以下であった場合に、第2の解析処理の実行が不要であると判定する。なお、上記閾値αは、例えば、図3に示したキーボード321やマウス322などの入力装置320をユーザが操作することで、任意に設定可能である。なお、閾値αは、例えば、ROMやRAMなどの記憶部に保持される。
さらに、判定部401は、現在の解析時刻と、第2の解析処理の解析予定時刻とを用いて、現在の解析時刻における第2の解析処理の実行の要否を判定することとしてもよい。第2の解析処理の解析予定時刻は、予め決定された第2の解析処理の解析時刻である。この解析予定時刻になると第2の解析処理が必ず実行される。
より具体的には、例えば、判定部401は、下記式(8)を用いて、現在の解析時刻における第2の解析処理の実行の要否を判定することができる。ただし、Tnextは、第2の解析処理の解析予定時刻である。
この場合、判定部401は、予測値Ip n+1/2と第1の解析処理の解析結果In+1/2との誤差が閾値α以下でかつ、現在の解析時刻tが第2の解析処理の解析予定時刻Tnextでない場合に、第2の解析処理の実行が不要であると判定する。
なお、解析予定時刻Tnextは、例えば、下記式(9)を用いて表わすことができる。ただし、mは自然数である。
Tnext=T+m×Δt (9)
これは、解析予定時刻Tnextを、第2の解析処理の一実行間隔前の解析時刻Tと、第1の解析処理の実行間隔Δtのm倍分との加算値によって表わしたものである。自然数mは、例えば、図3に示したキーボード321やマウス322などの入力装置320をユーザが操作することで、任意に設定可能である。この場合、第2の解析処理が実行されると、その都度、上記式(9)に従って、次回の解析予定時刻Tnextが自動的に決定される。
また、予測値算出部403は、判定部401によって第2の解析処理の実行が不要と判定された場合、第2の解析処理の一実行間隔前の解析時刻における第2の解析処理の解析結果を用いて、現在の解析時刻における第2の解析処理の解析結果の予測値を算出する機能を有する。
具体的には、例えば、一般的な数値積分のアルゴリズムを用いて、第2の解析処理の一実行間隔前の解析時刻における第2の解析処理の解析結果を1次近似することにより、予測値を算出することができる。図5を例に挙げると、第2の解析処理の一実行間隔前の解析時刻Tj-1における第2の解析処理の解析結果を用いて、現在の解析時刻tiにおける第2の解析処理の解析結果の予測値を算出することとなる。
より具体的には、例えば、予測値は、下記式(10)を用いて求めることができる。ただし、Vp n+1は、現在の解析時刻tにおける第2の解析処理の解析結果の予測値である。VTは、第2の解析処理の一実行間隔前の解析結果である。
なお、第2の解析処理の一実行間隔前の解析結果VTに関するデータは、例えば、ROMやRAMなどの記憶部に保持されている。そして、予測値算出部403は、記憶部に保持されているデータを読み出して、予測値を算出する。
また、実行制御部402は、予測値算出部403によって算出された予測値を用いて、第1の解析処理の一実行間隔後の解析時刻における第1の解析処理を実行させる機能を有する。図5を例に挙げると、予測値を用いて、第1の解析処理の一実行間隔後の解析時刻ti+1における第1の解析処理を実行させることとなる。
より詳細に説明すると、実行制御部402は、第1の実行部404による第1の解析処理の一実行間隔後の解析時刻ti+1における第1の解析処理の実行を制御する。ここで、第1の実行部404は、固定の実行間隔で第1の解析処理を実行する機能を有する。第1の実行部404は、実行制御部402によって制御された結果、予測値算出部403によって算出された予測値を用いて、解析時刻ti+1における第1の解析処理を実行する。
つまり、第2の解析処理の一実行間隔前の解析時刻Tj-1における第2の解析処理の解析結果と、現在の解析時刻tiにおける第2の解析処理の解析結果とのズレ(誤差)が小さいときには、予測値算出部403によって算出された予測値を用いて、解析時刻ti+1における第1の解析処理を実行する。これにより、本来不要である解析時刻における第2の解析処理を効果的に削減し、シミュレーションの高速化を図ることができる。
出力部406は、第1および第2の解析処理の解析結果を出力する機能を有する。具体的には、出力部406は、実行制御部402によって制御された結果、第1の実行部404および第2の実行部405による解析結果を出力する。
より具体的には、例えば、回路の信号線の波形、電源層のノイズなどに関する解析結果が出力される。なお、出力部406による出力形式は、ディスプレイ331での画面表示、プリンタ333での印刷出力、メモリへのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。
なお、上述した第1および第2の解析処理を連携したシミュレーションを、複数のCPUを利用した分散並列処理によって実行することとしてもよい。このとき、各処理にかかる処理負荷などを考慮して、例えば、処理負荷が大きい電磁界解析には、複数のCPU、あるいは、高性能のCPUを割り当てることとしてもよい。
これにより、第1および第2の解析処理を連携したシミュレーションの高速化を図ることができる。特に、多くのLSIが搭載された大規模回路の電磁界解析と回路解析とを連携したシミュレーションに有効である。
(融合シミュレーションの処理手順)
つぎに、実施の形態1にかかるシミュレーション装置300において実行されるシミュレーションの処理手順について説明する。図6は、電磁界解析処理手順の一例を示すフローチャート(その1)である。図7は、実行制御処理手順の一例を示すフローチャートである。図8は、回路解析処理手順の一例を示すフローチャート(その1)である。なお、電磁界解析の解析時刻を「t」、回路解析の解析時刻を「T」とする。
図6のフローチャートにおいて、まず、解析対象となる空間の構造データが入力されたか否かを判断する(ステップS601)。ここで、構造データが入力されるのを待って(ステップS601:No)、入力された場合(ステップS601:Yes)、解析時刻tをt=0とする(ステップS602)。
このあと、t=t+Δt/2とし(ステップS603)、第1の実行部404により、上記式(1)から求めた解析時刻tにおける磁界Hを上記式(2)に代入して、解析時刻tにおける電流源値Iを算出する(ステップS604)。そして、算出された電流源値Iを実行制御部402に送信する(ステップS605)。つぎに、t=t+Δt/2とし(ステップS606)、第1の実行部404により、上記式(5)を用いて解析時刻tにおける電界値Eを算出する(ステップS607)。
このあと、第1の実行部404により、実行制御部402から電界値Eを受信するのを待って(ステップS608:No)、受信した場合(ステップS608:Yes)、回路が存在する領域にステップS608において受信された電界値Eを設定するとともに、その他の領域にステップS607において算出された電界値Eを設定する(ステップS609)。
そして、解析時刻tが終了時刻か否かを判断し(ステップS610)、終了時刻でない場合(ステップS610:No)、ステップS603に戻って一連の処理を繰り返す。一方、終了時刻であった場合(ステップS610:Yes)、出力部406により、電磁界解析による解析結果を出力して(ステップS611)、本フローチャートによる一連の処理を終了する。
図7は、実行制御処理手順の一例を示すフローチャートである。まず、実行制御部402により、判定部401および予測値算出部403による処理に必要となるデータ群を受信したか否かを判断する(ステップS701)。なお、データ群とは、例えば、回路解析の一実行間隔前の解析時刻における電磁界解析および回路解析の解析結果や回路解析の次回の解析予定時刻などを含む情報である。
ここで、データ群を受信するのを待って(ステップS701:No)、受信した場合(ステップS701:Yes)、予測値算出部403により、上記式(6)を用いて、電磁界解析から得られる解析時刻tにおける電流源値Iの予測値を算出する(ステップS702)。
このあと、実行制御部402により、第1の実行部404から電流源値Iを受信したか否かを判断する(ステップS703)。ここで、電流源値Iを受信するのを待って(ステップS703:No)、受信した場合(ステップS703:Yes)、判定部401により、上記式(8)を用いて、回路解析の実行の要否を判定する(ステップS704)。
このとき、回路解析の実行が不要の場合(ステップS704:No)、予測値算出部403により、ステップS701において受信されたデータ群に含まれる回路解析の一実行間隔前の解析時刻における電圧Vを上記式(10)に代入して、回路解析から得られる解析時刻tにおける電圧Vの予測値を算出する(ステップS705)。
このあと、実行制御部402により、算出された電圧Vを第1の実行部404に送信して(ステップS706)、ステップS701に戻る。また、ステップS704において、回路解析の実行が必要の場合(ステップS704:Yes)、実行制御部402により、ステップS703において受信された電流源値Iを第2の実行部405に送信して(ステップS707)、ステップS701に戻る。
図8は、回路解析処理手順の一例を示すフローチャート(その1)である。まず、解析対象となる空間内に配置された回路のネットリストが入力されたか否かを判断する(ステップS801)。ここで、ネットリストが入力されるのを待って(ステップS801:No)、入力された場合(ステップS801:Yes)、解析時刻TをT=0とする(ステップS802)。
つぎに、回路解析の解析予定時刻Tnextを決定し(ステップS803)、第2の実行部405により、判定部401および予測値算出部403による処理に必要となるデータ群を実行制御部402に送信する(ステップS804)。そして、実行制御部402から電流源値Iを受信するのを待って(ステップS805:No)、受信した場合(ステップS805:Yes)、T=tとする(ステップS806)。
このあと、第2の実行部405により、ステップS805において受信された電流源値Iを上記式(3)に代入して、解析時刻Tにおける電圧Vを算出して(ステップS807)、算出された電圧Vを実行制御部402に送信する(ステップS808)。
そして、解析時刻Tが終了時刻か否かを判断し(ステップS809)、終了時刻でない場合(ステップS809:No)、ステップS803に戻って一連の処理を繰り返す。一方、終了時刻であった場合(ステップS809:Yes)、出力部406により、回路解析による解析結果を出力して(ステップS810)、本フローチャートによる一連の処理を終了する。
ここでは、図6〜図8に示した電磁界解析処理、実行制御処理および回路解析処理を1台のシミュレーション装置300において実行することとしたが、複数台のシミュレーション装置300を利用することとしてもよい。例えば、電磁界解析処理、実行制御処理および回路解析処理を、それぞれ異なるシミュレーション装置300において実行することとしてもよい。
以上説明した実施の形態1によれば、過去の第1の解析処理の解析結果から予測される現在の第1の解析処理の解析結果と、実際に計算された現在の第1の解析処理の解析結果とのズレから、第2の解析処理の実行の要否を判定することにより、本来不要である解析時刻における第2の解析処理を削減することができる。
この結果、第1の解析処理の解析時刻に合わせて、必ずしも第2の解析処理を実行する必要がなくなり、第2の解析処理の解析点数を効果的に削減することができる。また、第2の解析処理を実行しない場合には、過去の第2の解析処理の解析結果から予測される現在の第2の解析処理の解析結果を用いて第1の解析処理を実行することにより、解析精度を一定に保つことができる。
このように、効率的かつ効果的に解析点数を削減することにより、第1の解析処理と第2の解析処理とを連携した融合シミュレーションの高速化を図ることができる。特に、回路規模が大きい解析対象回路に対する、FDTD法を用いた電磁界解析と回路解析とを連携した融合シミュレーションにおいて、本来不要である解析時刻における回路解析を削減し、シミュレーションにかかる解析時間を大幅に短縮することができる。
(実施の形態2)
つぎに、上述したシミュレーション装置の実施の形態2について説明する。一般に、SPICEなどの回路シミュレータでは、一定の解析精度を維持しながら実行間隔を可変にするために、解析時刻を戻して再計算(以下、「リトライ」)をおこなうことがある。具体的には、ある解析時刻における解析が終了したあと、つぎの解析時刻での解析結果の予測値を計算する。
そして、つぎの解析時刻で実際に解析をおこなった結果、その解析結果と予測値との差が大きいときには、実行間隔を小さくして、再度、予測値および実際の計算をおこなう処理のことである。これにより、解析精度を一定に維持しながら解析結果が大きく変化する場合には実行間隔を小さくし、解析結果の変化が緩やかな場合には実行間隔を大きくすることができる。
このリトライを実施の形態1で説明した電磁界解析と回路解析とを連携した融合シミュレーションに適用する場合、回路解析のリトライに合わせて電磁界解析の解析時刻を過去に戻す必要がある。さらに、FDTD法を用いた電磁界解析の解析時刻を戻すために、戻す時刻の計算に必要なデータを保持しておく必要がある。
ところが、FDTD法を用いた電磁界解析の計算に必要となるデータ量は非常に大きい。このため、電磁界解析の解析点数が回路解析に比べて多くなる状況(例えば、1000倍)では、電磁界解析の計算に必要となるデータを保持する記憶容量を確保することが困難となり、実際上、シミュレーションの実行が不可能である。
一方で、リトライをおこなうことができない場合には、解析精度が不十分であってもそのまま解析を継続するしかないので、解析精度の低下を招くという問題があった。また、解析精度を一定に保つために回路解析の時間間隔を小さくすると、回路解析にかかる解析時間が増大化し、結果的にシミュレーションにかかる解析時間の長期化を招いてしまう。
そこで、実施の形態2では、電磁界解析と回路解析とを連携した融合シミュレーションにおいて、回路解析のリトライ処理への対応を可能にすることにより、回路解析の解析点数を効果的に削減し、高速かつ高精度なシミュレーションを実現する。
図9は、実施の形態2の概要を示す説明図である。図9中、時刻ti-8〜tiは電磁界解析の解析時刻を示し、Tj-1,Tjは回路解析の解析時刻を示している。tiは、現在の解析時刻である。ここでは、現在の解析時刻ti(解析時刻Tj)における回路解析の解析結果と、現在の解析時刻tiにおける回路解析の解析結果の予測値との解析誤差が予め設定された許容値を超えている場合、リトライをおこなう。
具体的には、解析時刻を、現在の解析時刻tiから再解析時刻Rt1に戻してリトライをおこなう。すなわち、融合シミュレーションを、再解析時刻Rt1における電磁界解析の磁界の計算から再開する。また、再解析時刻Rt1における回路解析の解析結果と、解析時刻Tjにおける回路解析の解析結果の予測値との解析誤差が未だ許容値を超えているとする。
この場合、解析時刻をさらに遡って、再解析時刻Rt1から再解析時刻Rt2に戻してリトライをおこなうこととなる。このように、リトライをおこなう際の再解析時刻候補(Rt1,Rt2)を予め決めておくことにより、過去の解析時刻における第1の解析処理の計算に必要となるデータをすべて保持する場合に比べて、リトライのために保持するデータ量を削減することができる。
なお、回路解析の一実行間隔前の解析時刻Tj-1(解析時刻ti-8)における電磁界解析の計算に必要となるデータを保持しておけば、すべての再解析時刻候補におけるリトライが失敗した場合であっても、解析時刻ti-8からのリトライをおこなうことができる。
(シミュレーション装置の機能的構成)
つぎに、実施の形態2にかかるシミュレーション装置1000の機能的構成について説明する。図10は、実施の形態2にかかるシミュレーション装置の機能的構成を示すブロック図である。
図10において、シミュレーション装置1000は、判定部401と、実行制御部402と、予測値算出部403と、第1の実行部404と、第2の実行部405と、出力部406と、決定部1001と、誤差算出部1002と、保持部1003と、を備えている。なお、実施の形態1において説明した箇所と同一箇所については、同一符号を付して説明を省略する。
これら各機能401〜406,1001〜1003は、シミュレーション装置300の記憶部に記憶された当該機能401〜406,1001〜1003に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能401〜406,1001〜1003からの出力データは上記記憶部に保持される。また、図10中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、決定部1001は、第1の解析処理を再実行する再解析時刻候補を決定する機能を有する。具体的には、例えば、第2の解析処理の一実行間隔前の解析時刻と、該解析時刻に対する次回の解析予定時刻とを用いて再解析時刻を算出し、その算出結果を再解析時刻候補に決定することとしてもよい。このとき、例えば、一般的な回路シミュレータの算定アルゴリズムを用いて、再解析時刻を算出することができる。
図9を例に挙げると、第2の解析処理が実行された現在の解析時刻Tj(解析時刻ti)が、第2の解析処理の一実行間隔前の解析時刻Tj-1に対する次回の解析予定時刻Tnextであったとする。この場合、例えば、解析時刻Tj-1と解析予定時刻Tnextとの中間の解析時刻ti-4を再解析時刻候補tR1とする。さらに、解析時刻Tj-1と再解析時刻候補tR1との中間の解析時刻ti-6を再解析時刻候補tR2とする。
なお、決定部1001による決定処理は、例えば、第2の解析処理が実行され、第2の解析処理の解析時刻が確定するごとに実行されることとしてもよい。上述した例では、第2の解析処理の解析時刻Tj-1が確定すると、解析時刻Tj-1に対する次回の解析予定時刻Tnextを用いて、再解析時刻候補tR1,tR2を決定することとなる。
誤差算出部1002は、実行制御部402によって第2の解析処理の実行が制御された結果、現在の解析時刻における第2の解析処理の解析結果を用いて、当該第2の解析処理の解析誤差を算出する機能を有する。この解析誤差は、例えば、予測値算出部403によって算出された現在の解析時刻における第2の解析処理の解析結果の予測値と、現在の解析時刻における第2の解析処理の解析結果とを用いて算出する。
具体的には、例えば、第2の解析処理の解析誤差は、下記式(11)を用いて求めることができる。ただし、現在の解析時刻tにおける第2の解析処理の解析結果をVtとし、第2の解析処理の解析誤差をβとする。
β=|Vt−Vp n+1| (11)
また、判定部401は、誤差算出部1002によって算出された算出結果に基づいて、第1の解析処理の再実行の要否を判定する機能を有する。具体的には、例えば、誤差算出部1002によって算出された第2の解析処理の解析誤差が、予め設定された許容値以上であった場合に、第1の解析処理の再実行が必要であると判定する。
つまり、第2の解析処理の解析誤差が大きい場合に、第1の解析処理の再実行が必要であると判定する。なお、上記許容値は、例えば、図3に示したキーボード321やマウス322などの入力装置320をユーザが操作することで、任意に設定可能である。
実行制御部402は、判定部401によって判定された判定結果に基づいて、決定部1001によって決定された再解析時刻候補における第1の解析処理の再実行を制御する機能を有する。具体的には、例えば、実行制御部402は、第1の解析処理の再実行が必要であると判定された場合、解析時刻を再解析時刻候補に戻し、その再解析時刻候補における第1の解析処理を再実行させる。
より詳細に説明すると、実行制御部402は、第1の実行部404による再解析時刻候補における第1の解析処理の実行を制御する。この結果、第1の実行部404は、実行制御部402によって制御された結果、再解析時刻候補における第1の解析処理を実行する。なお、再解析時刻候補における第1の解析処理が再実行された場合、その解析結果を用いて、判定部401による判定処理に移行してもよく、また、第2の実行部405による第2の解析処理に移行してもよい。
なお、実行制御部402は、決定部1001によって決定された再実行時刻候補(例えば、Rt1,Rt2)が複数存在する場合には、現在の解析時刻tiの直近の再実行時刻候補Rt1における第1の解析処理を実行させることとしてもよい。さらに、リトライがおこなわれた結果、再度、第1の解析処理の再実行が必要であると判定された場合(リトライ失敗)、現在の再実行時刻候補Rt1の直近の再実行時刻候補Rt2における第1の解析処理を実行させることとしてもよい。
また、実行制御部402は、判定部401によって第2の解析処理の再実行が不要であると判定された場合、現在の解析時刻における第2の解析処理の解析結果を用いて、第1の解析処理を実行させることとなる。
保持部1003は、決定部1001によって決定された再解析時刻候補における第1の解析処理の実行に必要となる実行データを保持する機能を有する。具体的には、例えば、保持部1003は、HD,光ディスク311,フラッシュメモリなどの記憶部に実行データを保持することとしてもよい。
図9を例に挙げると、保持部1003は、まず、決定部1001によって決定された再解析時刻候補tR2(解析時刻ti-6)に達すると、第1の解析処理の実行に必要となる実行データを保持する。さらに、決定部1001によって決定された再解析時刻候補tR1(解析時刻ti-4)に達すると、第1の解析処理の実行に必要となる実行データを保持する。
ここで、実行データとは、例えば、上記式(1)で示した磁界Hn+1/2の計算に用いるHn-1/2およびEnである。そして、第1の実行部404は、実行制御部402によって制御された結果、これらHn-1/2およびEnを上記式(1)に代入することにより、再解析時刻候補における磁界Hn+1/2を算出することとなる。
このように、決定部1001によって決定された再解析時刻候補における第1の解析処理の再実行に必要となる実行データのみを保持することにより、リトライ処理のために確保する使用メモリ量を削減することができる。
なお、保持部1003は、第2の解析処理の一実行間隔前の解析時刻における第1の解析処理の実行に必要となる実行データを保持することとしてもよい。これにより、すべての再解析時刻候補Rt1,Rt2におけるリトライが失敗した場合であっても、解析時刻ti-8からのリトライをおこなうことができる。
第2の解析処理の一実行間隔前の解析時刻における第1の解析処理の実行に必要となる実行データの保持は、つぎのような仕組みで実現することができる。例えば、第1の解析処理の実行時に、その実行に必要となる実行データを保持する。このあと、判定部401によって第2の解析処理の実行が不要と判定された場合は、上記実行データを破棄する。
一方、判定部401によって第2の解析処理の実行が不要と判定された場合には、つぎに第2の解析処理が実行され、かつ、第1の解析処理の再実行が不要であると判定されたときに、上記実行データを破棄する。これにより、リトライ処理のために確保する使用メモリ量を抑えることができる。
(融合シミュレーションの処理手順)
つぎに、実施の形態2にかかるシミュレーション装置1000における融合シミュレーションの処理手順について説明する。図11−1、図11−2は、電磁界解析処理手順の一例を示すフローチャート(その2)である。図12は、回路解析処理手順の一例を示すフローチャート(その2)である。なお、実行制御処理手順については、図7に示した処理手順と同様のため説明を省略する。
図11−1のフローチャートにおいて、まず、解析対象となる空間の構造データが入力されたか否かを判断する(ステップS1101)。ここで、構造データが入力されるのを待って(ステップS1101:No)、入力された場合(ステップS1101:Yes)、解析時刻tをt=0とする(ステップS1102)。
このあと、t=t+Δt/2とし(ステップS1103)、決定部1001によって決定された再解析時刻候補Rtを特定する情報を受信したか否かを判断する(ステップS1104)。ここで、再解析時刻候補Rtを特定する情報を受信するのを待って(ステップS1104:No)、受信した場合(ステップS1104:Yes)、t=Rtであるか否かを判断する(ステップS1105)。
このとき、t=Rtであった場合(ステップS1105:Yes)、保持部1003により、再解析時刻候補Rtにおける電流源値Iを算出するために必要となる実行データを保持する(ステップS1106)。
そして、第1の実行部404により、上記式(1)から求めた解析時刻tにおける磁界Hを上記式(2)に代入して、解析時刻tにおける電流源値Iを算出し(ステップS1107)、図11−2のフローチャートに示すステップS1108に移行する。また、ステップS1105において、t=Rtでなかった場合(ステップS1105:No)、ステップS1107に移行する。
図11−2のフローチャートにおいて、第1の実行部404により、図11−1に示したステップS1107において算出された電流源値Iを実行制御部402に送信する(ステップS1108)。このあと、実行制御部402から電磁界解析のリトライの指示を表わすリトライシグナルを受信したか否かを判断する(ステップS1109)。
ここで、リトライシグナルを受信した場合(ステップS1109:Yes)、t=Rtとし(ステップS1110)、第1の実行部404により、ステップS1106において保持された実行データを用いて上記式(1)から求めた解析時刻tにおける磁界Hを上記式(2)に代入して、解析時刻tにおける電流源値Iを算出し(ステップS1111)、ステップS1108に戻る。
また、ステップS1109において、リトライシグナルを所定時間内に受信しなかった場合、または、リトライの不指示を表わすノンリトライシグナルを受信した場合(ステップS1109:No)、t=t+Δt/2とし(ステップS1112)、第1の実行部404により、上記式(5)を用いて解析時刻tにおける電界値Eを算出する(ステップS1113)。
このあと、実行制御部402から電界値Eを受信するのを待って(ステップS1114:No)、受信した場合(ステップS1114:Yes)、回路が存在する領域にステップS1114において受信された電界値Eを設定するとともに、その他の領域にステップS1113において算出された電界値Eを設定する(ステップS1115)。
そして、解析時刻tが終了時刻か否かを判断し(ステップS1116)、終了時刻でない場合(ステップS1116:No)、ステップS1103に戻って一連の処理を繰り返す。一方、終了時刻であった場合(ステップS1116:Yes)、出力部406により、電磁界解析による解析結果を出力して(ステップS1117)、本フローチャートによる一連の処理を終了する。
図12は、回路解析処理手順の一例を示すフローチャート(その2)である。まず、解析対象となる空間内に配置された回路のネットリストが入力されたか否かを判断する(ステップS1201)。ここで、ネットリストが入力されるのを待って(ステップS1201:No)、入力された場合(ステップS1201:Yes)、解析時刻TをT=0とする(ステップS1202)。
つぎに、決定部1001により、回路解析の解析予定時刻Tnextおよび再解析時刻候補Rtを決定する(ステップS1203)。このあと、判定部401および予測値算出部403による処理に必要となるデータ群と再解析時刻候補Rtを特定する情報とを実行制御部402に送信する(ステップS1204)。
そして、第2の実行部405により、実行制御部402から電流源値Iを受信するのを待って(ステップS1205:No)、受信した場合(ステップS1205:Yes)、T=tとする(ステップS1206)。
このあと、第2の実行部405により、ステップS1205において受信された電流源値Iを上記式(3)に代入して、解析時刻Tにおける電圧Vを算出し(ステップS1207)、判定部401により、回路解析の解析誤差が許容値以上か否かを判定する(ステップS1208)。
ここで、回路解析の解析誤差が許容値以上であった場合(ステップS1208:Yes)、T=Rtとし(ステップS1209)、実行制御部402により、電磁界解析のリトライの指示を表わすリトライシグナルを第1の実行部404に送信して(ステップS1210)、ステップS1203に戻る。
また、回路解析の解析誤差が許容値未満であった場合(ステップS1208:No)、ステップS1207において算出された電圧Vを実行制御部402に送信する(ステップS1211)。そして、解析時刻Tが終了時刻か否かを判断し(ステップS1212)、終了時刻でない場合(ステップS1212:No)、ステップS1203に戻って一連の処理を繰り返す。
一方、終了時刻であった場合(ステップS1212:Yes)、出力部406により、回路解析による解析結果を出力して(ステップS1213)、本フローチャートによる一連の処理を終了する。なお、ステップS1208において、回路解析の解析誤差が許容値未満であった場合(ステップS1208:No)、実行制御部402により、リトライの不指示を表わすノンリトライシグナルを第1の実行部404に送信することとしてもよい。
以上説明した実施の形態2によれば、第2の解析処理の解析誤差が大きい場合に、再解析時刻候補からのリトライを実行可能とすることにより、解析精度の向上を図ることができる。このとき、再解析時刻候補からのリトライに必要となる実行データのみを保持することにより、リトライ処理のために確保する使用メモリ量を削減することができる。
このように、リトライ処理への対応を可能にするとともに、効率的かつ効果的に解析点数を削減することにより、第1の解析処理と第2の解析処理とを連携した融合シミュレーションの高精度化および高速化を図ることができる。特に、FDTD法を用いた電磁界解析の計算に必要となる実行データ量は膨大なものとなるため、再解析時刻候補からのリトライに必要となる実行データのみを保持することにより、リトライ処理のために確保する使用メモリ量を大幅に削減することができる。
(実施の形態3)
つぎに、シミュレーション装置300の実施の形態3について説明する。実施の形態3では、第1の解析処理として、FDTD法を用いた電磁界解析の替わりに、LIM(Latency Insertion Method)法を用いた回路解析を適用する。なお、実施の形態1および2において説明した箇所と同一箇所については、図示および説明を省略する。
まず、LIM法を用いた回路解析の概要について説明する。LIM法は、陽的積分手法の一種であり、プリント基板の配線や配線層を、抵抗、容量、インダクタンスなどの線形素子でモデル化した回路の回路解析に有効な手法である。
図13は、LIMユニットの一例を示す説明図である。図13において、LIM法を用いた回路解析に適用可能なLIMユニット1300が示されている。具体的には、LIMユニット1300は、抵抗Rと、容量C1,C2と、インダクタンスLとから構成されている。LIM法は、LIMユニット1300と同様の構成の複数のLIMユニットからなる回路の回路解析に適用可能である。
図14は、LIM法を用いた回路解析の概要を示す説明図である。図14に示すように、LIM法を用いた回路解析では、半ステップ(1ステップをΔtとする)ずれた時刻「n−1,n−1/2,n,…」で、LIMユニット1300の電圧(V1,V2)と電流(I12)とを交互に求めることとなる。
具体的には、例えば、下記式(12)〜(14)を用いて、電流I12、電圧V1,V2を求めることができる。
このLIM法を用いた回路解析では、インダクタンスや容量が存在しない回路、すなわち、非線形素子を含む回路には適用できないため、一般的な回路解析をおこなう場合には、SPICEなどの回路シミュレータを使用した回路解析との融合シミュレーションが有効である。
なお、LIM法を融合シミュレーションに適用する場合も、FDTD法の場合と同様に、データの受け渡し時刻をある程度の範囲内で合わせる必要がある。また、LIM法を用いた回路解析の実行間隔の最大値は容量とインダクタンスとの積によって決まる。このため、容量とインダクタンスとのいずれかが小さいときには、実行間隔を小さくしなければならない。
図15は、融合シミュレーションの概要を示す説明図(その2)である。図15において、LIM法を用いた回路解析と、回路シミュレータを使用した回路解析とを連携した融合シミュレーションの概要が示されている。これらLIM法を用いた回路解析と、回路シミュレータを使用した回路解析との間では、電流I12 n+1/2および電圧V1 n+1が引き渡される。
具体的には、LIM法を用いた回路解析では、回路シミュレータから引き渡された電圧V1 n+1を用いて電流I12 n+1/2を計算し、その電流I12 n+1/2を回路シミュレータに引き渡す。一方、回路シミュレータでは、LIM法を用いた回路解析から引き渡された電流I12 n+1/2を用いて電圧V1 n+1を計算し、その電圧V1 n+1をLIM法を用いた回路解析に引き渡す。
これら電流I12 n+1/2および電圧V1 n+1は、FDTD法を用いた電磁界解析と回路解析とを連携した融合シミュレーションにおける電流源値In+1/2および電圧Vn+1に相当する。このため、実施の形態1および2で説明したシミュレーション装置300,1000を利用して、上記融合シミュレーションを実行することにより、FDTD法を用いた電磁界解析と回路解析とを連携した融合シミュレーションを実行する場合と同様の効果を得ることができる。
具体的には、例えば、判定部401は、LIM法を用いた回路解析から引き渡される電流I12 n+1/2を上記式(7)または(8)に代入することにより、回路シミュレータを使用した回路解析の実行の要否を判定することができる。なお、電流I12 n+1/2の予測値は、例えば、上記式(6)を用いて求めることができる。
さらに、実行制御部402は、回路シミュレータを使用した回路解析の実行が不要であると判定された場合には、予測値算出部403によって算出された予測値(例えば、上記式(10))を用いて、LIM法を用いた回路解析の一ステップ後の解析時刻におけるLIM法を用いた回路解析を実行させることができる。なお、LIM法を用いた回路解析に必要となる入力データは、例えば、抵抗、容量およびインダクタンスの接続関係を表わすネットリストとなる。
以上説明したように、実施の形態3によれば、回路シミュレータを使用した回路解析の解析点数を効果的に削減することができ、LIM法を用いた回路解析と回路シミュレータを使用した回路解析とを連携した融合シミュレーションの高速化および高精度化を図ることができる。特に、LIM法を用いた回路解析の計算量は少なく、実行間隔が短くなるため、それに合わせて増大化する回路シミュレータを使用した回路解析の解析点数を大幅に削減することができる。
(実施の形態4)
つぎに、上述したシミュレーション装置の実施の形態4について説明する。実施の形態1〜3は、現在の解析時刻において、第2の解析処理を実行する必要がない場合に、第2の解析処理の一実行間隔前の解析時刻における第2の解析処理の解析結果を用いて、現在の解析時刻における第2の解析処理の解析結果の予測値を求めるものである。
このとき、現在の解析時刻における第2の解析処理の解析結果の予測値には、現在の解析時刻における第1の解析処理の解析結果が反映されていない。一方で、第1の解析処理にFDTD法やLIM法などの陽的積分手法を用いた電磁界解析を適用すると、わずかな誤差(第2の解析処理の解析結果の変化量)の集積によって第1の解析処理の解析結果の波形が発振するという傾向がある。
ところが、上述したように、実施の形態1〜3では、第2の解析処理の解析結果の予測値には第1の解析処理の解析結果が反映されていないため、上記誤差が大きくなってしまう。これでは、第1の解析処理の解析結果の波形が頻繁に発振し、第2の解析処理の実行が必要であると判定される回数が増加するため、本来不要である解析時刻における第2の解析処理の実行の削減効果が低下してしまう。
そこで、実施の形態4では、現在の解析時刻における第2の解析処理の解析結果の予測値に、現在の解析時刻における第1の解析処理の解析結果を反映することで、第2の解析処理の解析結果の予測値を精度よく求め、上記誤差の集積による第1の解析処理の解析結果の波形の発振を抑制する。
具体的には、シミュレーション装置300,1000の予測値算出部403により、判定部401によって第2の解析処理の実行が不要と判定された場合、現在の解析時刻における第1の解析処理の第1の解析結果を用いて、現在の解析時刻における第2の解析処理の解析結果の予測値を算出する。
この場合、実行制御部402は、予測値算出部403によって算出された予測値を用いて、第1の解析処理の一実行間隔後の解析時刻における第1の解析処理を実行させることとなる。以下、実施の形態4の概要について説明する。なお、実施の形態1〜3において説明した箇所と同一箇所については、同一符号を付して説明を省略する。
(実施の形態4の概要)
図16は、実施の形態4の概要を示す説明図である。図16において、第1の解析処理は、FDTD法を用いた空間内の電磁界解析である。また、第2の解析処理は、その空間内に配置される解析対象回路の回路解析である。図16中、時刻tは第1の解析処理の解析時刻を示し、時刻Tは第2の解析処理の解析時刻を示している。
ここで、現在の解析時刻をtiとする。この場合、判定部401は、現在の解析時刻tiにおける第1の解析処理の解析結果Iiと、第2の解析処理の一実行間隔前の解析時刻Tj-1(解析時刻ti-4)における第1の解析処理の解析結果Ii―4とに基づいて、現在の解析時刻tiにおける第2の解析処理の実行の要否を判定する。
具体的には、まず、予測値算出部403により、第2の解析処理の一実行間隔前の解析時刻Tj-1における第1の解析処理の解析結果Ii―4を用いて、現在の解析時刻tiにおける第1の解析処理の解析結果Iiの予測値を算出する。
より具体的には、例えば、上記式(6)を用いて、現在の解析時刻tiにおける第1の解析処理の解析結果Iiの予測値を求めることができる。ただし、Ip n+1/2は現在の解析時刻tiにおける第1の解析処理の解析結果Iiの予測値に相当し、ITは第2の解析処理の一実行間隔前の解析時刻Tj-1における第1の解析処理の解析結果Ii―4に相当する。
このあと、判定部401により、予測値算出部403によって算出された現在の解析時刻tiにおける解析結果Iiの予測値と、現在の解析時刻tiにおける第1の解析処理の解析結果Iiと、第2の解析処理の解析予定時刻Tnextとを用いて、現在の解析時刻tiにおける第2の解析処理の実行の要否を判定する。
具体的には、例えば、上記式(8)を用いて、現在の解析時刻tiにおける第2の解析処理の実行の要否を判定することができる。ただし、In+1/2は、現在の解析時刻tiにおける第1の解析処理の解析結果Iiに相当する。
ここで、判定部401によって第2の解析処理の実行が必要と判定された場合、実行制御部402は、第2の実行部405を制御して、現在の解析時刻tiにおける第1の解析処理の解析結果Iiを用いて、現在の解析時刻ti(解析時刻Tj)における第2の解析処理を実行する。
この場合、実行制御部402は、第1の実行部404を制御して、第2の実行部405によって実行された現在の解析時刻tiにおける第2の解析処理の解析結果Vjを用いて、第1の解析処理の一実行間隔後の解析時刻ti+1における第1の解析処理を実行する。
一方、判定部401によって第2の解析処理の実行が不要と判定された場合、予測値算出部403は、現在の解析時刻tiにおける第1の解析処理の解析結果Iiを用いて、現在の解析時刻tiにおける第2の解析処理の解析結果Vjの予測値を算出する。
この場合、実行制御部402は、第1の実行部404を制御して、予測値算出部403によって算出された現在の解析時刻tiにおける第2の解析処理の解析結果Vjの予測値を用いて、第1の解析処理の一実行間隔後の解析時刻ti+1における第1の解析処理を実行する。
このように、実施の形態4では、現在の解析時刻tiにおける第2の解析処理の解析結果Vjの予測値に、現在の解析時刻tiにおける第1の解析処理の解析結果Iiを反映することで、第2の解析処理の解析結果Vjの予測値を精度よく求める。
以下、予測値算出部403による第2の解析処理の解析結果Vjの予測値を算出する算出処理を具体的に説明する。まず、回路解析(第2の解析処理)の回路部について説明する。図17は、回路部の一例を示す説明図である。図17において、回路部1700は、等価回路1701と、電流源1702と、コンデンサCと、からなる。なお、電磁界解析(第1の解析処理)と回路解析(第2の解析処理)とは、電流源1702とコンデンサCとを介して連携する。
以下において、現在の解析時刻tにおける電磁界解析の解析結果をIf(t)、現在の解析時刻tにおける回路解析の解析結果をV(t)、回路解析の一実行間隔前の解析時刻Tにおける等価回路1701に流れる電流をIX(T)、現在の解析時刻tにおけるコンデンサCに流れる電流をIC(t)とする。また、回路解析の次回の解析予定時刻をTnextとする。
まず、予測値算出部403は、現在の解析時刻tにおける等価回路1701に流れるIX(t)を、回路解析の一実行間隔前の解析時刻Tにおける等価回路1701に流れる電流IX(T)と、回路解析の次回の解析予定時刻Tnextにおける等価回路1701に流れる電流IX(Tnext)と、から補間して求める。
具体的には、例えば、下記式(15)を用いて、現在の解析時刻tにおける等価回路1701に流れる電流IX(t)を求めることができる。なお、電流IX(Tnext)は、回路解析の一実行間隔前の解析時刻Tにおける電流IX(T)を用いて予測することができる(上記式(6)参照)。また、電流IX(T)は、ROMやRAMなどの記憶部に保持されている。
このあと、予測値算出部403は、現在の解析時刻tにおける等価回路1701に流れる電流IX(t)と、現在の解析時刻tにおける電磁界解析の解析結果If(t)とを用いて、現在の解析時刻tにおけるコンデンサCに流れる電流IC(t)を算出する。具体的には、例えば、下記式(16)を用いて、電流IC(t)を求めることができる。
最後に、予測値算出部403は、回路解析の一実行間隔前の解析時刻Tにおける回路解析の解析結果V(T)と、現在の解析時刻tにおけるコンデンサCに流れる電流IC(t)とを用いて、現在の解析時刻tにおける回路解析の解析結果V(t)の予測値を算出する。具体的には、例えば、下記式(17)を用いて、V(t)の予測値を求めることができる。なお、V(T)は、ROMやRAMなどの記憶部に保持されている。
このように、現在の解析時刻tにおける回路解析の解析結果V(t)の予測値に、現在の解析時刻tにおける電磁界解析の解析結果If(t)を反映させることにより、回路解析の解析結果V(t)の予測値を精度よく求めることができる。
以上説明した実施の形態4によれば、現在の解析時刻における電磁界解析の解析結果を用いて、現在の解析時刻における回路解析の解析結果の予測値を求めることができる。これにより、実施の形態1〜3と比べて、現在の解析時刻における回路解析の解析結果の予測値を高精度に求めることができ、電磁界解析の解析結果の波形の発振を適切に抑制することができる。
具体的には、電磁界解析に引き渡される電圧値の誤差が小さくなるため、電磁界解析の解析結果の波形が発振する時刻を遅らせることができる。この結果、シミュレーション時間内での発振を抑制することが可能となり、本来不要である解析時刻における回路解析の実行を効果的に削減し、シミュレーションの高速化を図ることができる。
なお、実施の形態4では、上記式(15)〜(17)を用いた計算が毎回実行されることとなるが、本来不要である解析時刻における回路解析の実行を削減することができるため、この計算負荷は無視できる程度に小さいものとなる。また、ここでは第1の解析処理としてFDTD法を用いた電磁界解析を例に挙げて説明したが、LIM法を用いた回路解析にも同様に適用することができる。
なお、本実施の形態で説明したシミュレーション方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明したシミュレーション装置300,1000は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述したシミュレーション装置300,1000の機能401〜406,1001〜1003をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、シミュレーション装置300,1000を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)実行間隔が固定あるいは可変の第1の解析処理と、実行間隔が前記第1の解析処理の実行間隔以上でかつ可変の第2の解析処理とを連携したシミュレーションをコンピュータに実行させるシミュレーションプログラムであって、
前記コンピュータを、
現在の解析時刻における前記第1の解析処理の第1の解析結果と、前記第2の解析処理の一実行間隔前の解析時刻における前記第1の解析処理の第2の解析結果とに基づいて、前記現在の解析時刻における前記第2の解析処理の実行の要否を判定する判定手段、
前記判定手段によって判定された判定結果に基づいて、前記現在の解析時刻における前記第2の解析処理の実行を制御する実行制御手段、
として機能させることを特徴とするシミュレーションプログラム。
(付記2)前記コンピュータを、
前記第2の解析処理の一実行間隔前の解析時刻における前記第1の解析処理の前記第2の解析結果を用いて、前記現在の解析時刻における前記第1の解析処理の前記第1の解析結果の予測値を算出する予測値算出手段として機能させ、
前記判定手段は、
前記予測値算出手段によって算出された予測値と、前記現在の解析時刻における前記第1の解析処理の前記第1の解析結果とを用いて、前記現在の解析時刻における前記第2の解析処理の実行の要否を判定することを特徴とする付記1に記載のシミュレーションプログラム。
(付記3)前記判定手段は、
前記現在の解析時刻と、前記第2の解析処理の解析予定時刻とを用いて、前記現在の解析時刻における前記第2の解析処理の実行の要否を判定することを特徴とする付記1または2に記載のシミュレーションプログラム。
(付記4)前記実行制御手段は、
前記判定手段によって前記第2の解析処理の実行が必要と判定された場合、前記現在の解析時刻における前記第1の解析処理の前記第1の解析結果を用いて、前記現在の解析時刻における前記第2解析処理を実行させることを特徴とする付記1〜3のいずれか一つに記載のシミュレーションプログラム。
(付記5)前記予測値算出手段は、
前記判定手段によって前記第2の解析処理の実行が不要と判定された場合、前記第2の解析処理の一実行間隔前の解析時刻における前記第2の解析処理の第3の解析結果を用いて、前記現在の解析時刻における前記第2の解析処理の解析結果の予測値を算出し、
前記実行制御手段は、
前記予測値算出手段によって算出された予測値を用いて、前記第1の解析処理の一実行間隔後の解析時刻における前記第1の解析処理を実行させることを特徴とする付記1〜4のいずれか一つに記載のシミュレーションプログラム。
(付記6)前記予測値算出手段は、
前記判定手段によって前記第2の解析処理の実行が不要と判定された場合、前記現在の解析時刻における前記第1の解析処理の前記第1の解析結果を用いて、前記現在の解析時刻における前記第2の解析処理の解析結果の予測値を算出し、
前記実行制御手段は、
前記予測値算出手段によって算出された予測値を用いて、前記第1の解析処理の一実行間隔後の解析時刻における前記第1の解析処理を実行させることを特徴とする付記1〜4のいずれか一つに記載のシミュレーションプログラム。
(付記7)前記コンピュータを、
前記第1の解析処理を再実行する再解析時刻候補を決定する決定手段、
前記実行制御手段によって前記第2の解析処理の実行が制御された結果、前記現在の解析時刻における前記第2の解析処理の第4の解析結果を用いて、当該第2の解析処理の解析誤差を算出する誤差算出手段として機能させ、
前記判定手段は、
前記誤差算出手段によって算出された算出結果に基づいて、前記第1の解析処理の再実行の要否を判定し、
前記実行制御手段は、
前記判定手段によって判定された判定結果に基づいて、前記決定手段によって決定された再解析時刻候補における前記第1の解析処理の再実行を制御することを特徴とする付記1〜6のいずれか一つに記載のシミュレーションプログラム。
(付記8)前記決定手段は、
前記第2の解析処理の一実行間隔前の解析時刻と、前記第2の解析処理の解析予定時刻とを用いて前記再解析時刻候補を決定することを特徴とする付記7に記載のシミュレーションプログラム。
(付記9)前記コンピュータを、
前記決定手段によって決定された再解析時刻候補における前記第1の解析処理の実行に必要となる実行データを保持する保持手段として機能させ、
前記実行制御手段は、
前記保持手段によって保持された実行データを用いて前記再解析時刻候補における前記第1の解析処理を実行させることを特徴とする付記7または8に記載のシミュレーションプログラム。
(付記10)前記コンピュータを、
前記第1および第2の解析処理の解析結果を出力する出力手段として機能させることを特徴とする付記1〜9のいずれか一つに記載のシミュレーションプログラム。
(付記11)前記第1の解析処理は、陽的積分手法を用いた空間内の電磁界解析であり、
前記第2の解析処理は、前記空間内に配置される解析対象回路の回路解析であることを特徴とする付記1〜10のいずれか一つに記載のシミュレーションプログラム。
(付記12)前記第1の解析処理は、陽的積分手法を用いた解析対象回路の第1の回路解析であり、
前記第2の解析処理は、陰的積分手法を用いた前記解析対象回路の第2の回路解析であることを特徴とする付記1〜10のいずれか一つに記載のシミュレーションプログラム。
(付記13)付記1〜12のいずれか一つに記載のシミュレーションプログラムを記録したコンピュータに読み取り可能な記録媒体。
(付記14)実行間隔が固定あるいは可変の第1の解析処理と、実行間隔が前記第1の解析処理の実行間隔以上でかつ可変の第2の解析処理とを連携したシミュレーションを実行するシミュレーション装置であって、
現在の解析時刻における前記第1の解析処理の第1の解析結果と、前記第2の解析処理の一実行間隔前の解析時刻における前記第1の解析処理の第2の解析結果とに基づいて、前記現在の解析時刻における前記第2の解析処理の実行の要否を判定する判定手段と、
前記判定手段によって判定された判定結果に基づいて、前記現在の解析時刻における前記第2の解析処理の実行を制御する実行制御手段と、
を備えることを特徴とするシミュレーション装置。
(付記15)実行間隔が固定あるいは可変の第1の解析処理と、実行間隔が前記第1の解析処理の実行間隔以上でかつ可変の第2の解析処理とを連携したシミュレーションを実行するシミュレーション方法であって、
現在の解析時刻における前記第1の解析処理の第1の解析結果と、前記第2の解析処理の一実行間隔前の解析時刻における前記第1の解析処理の第2の解析結果とに基づいて、前記現在の解析時刻における前記第2の解析処理の実行の要否を判定する判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記現在の解析時刻における前記第2の解析処理の実行を制御する実行制御工程と、
を含んだことを特徴とするシミュレーション方法。