以下に図面を参照して、開示のシミュレーション支援装置、シミュレーション支援方法、およびシミュレーション支援プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかるシミュレーション支援装置101の動作例を示す説明図である。シミュレーション支援装置101は、解析対象のシミュレーションを支援するコンピュータである。例えば、シミュレーション支援装置101は、PC(Personal Computer)である。解析対象は、例えば、プリント回路板(PCB:Printed Circuit Board)である。
PCBの設計において、特に高周波回路においては、製造後に伝送的な問題が発生することが多い。そこで、大抵の場合、PCBの設計前や設計後に、伝送特性のシミュレーション手法を実施する。シミュレーション手法は、例えば、複数のモデルを接続して生成したネットリストに対して、HSPICE等のツールで、時間領域(Time Domain)のシミュレーション手法を実施する。そして、得られた結果を、ベンダーが提供するマージン評価ツールに入力し、最終的な合否判定の結果として出力する。
複数のモデルの入手方法としては、例えば、LSI(Large Scale Integration)/IC(Integrated Circuit)ベンダーの回路シミュレーションモデルを入手する方法がある。また、他の入手方法としては、コネクタなどの機構ベンダーからシミュレーションに用いる入出力特性モデルを入手する方法がある。また、PCB上の信号配線や層構成を加味した配線モデル(RLGCモデル)を汎用的なツールで生成することにより入手する方法がある。ここで、RLGCとは、抵抗、インダクタンス、コンダクタンス、容量のことを示す。また、ビア(via)や引き出し配線などのモデルを生成することにより入手する方法がある。
また、3次元的な構造データを入力して実施する電磁界解析やS−parameterを用いた周波数解析がある。そして、伝送特性を評価するためには、複数のシミュレーション手法でいくつかの要素を個別に解析し、全体的な判断を下すことが考えられる。
しかしながら、異なるシミュレーション手法で得られた各々の値は、異なる指標で出力されるため、足し合わせて最終的な影響度を見積もることができない。例えば、解析対象として、あるインターフェース装置であるとする。あるインターフェース装置の伝送特性の最終的な目的は、あるインターフェース装置の伝送特性の合格基準値に達しているかの評価をし、リスクの度合いを検証したり、レイアウト設計の改善要否の判断を行ったりすることである。従って、解析結果に含まれる要素が一つでも欠けると、シミュレーションの精度が低下し、正確な合否判定が行えない。ここで、具体的に解析したい要素としては、例えば、配線長、配線のインピーダンス、電源から受けるEMI(Electro Magnetic Interference)ノイズ、プリント基板の材料特性、ドライバの出力、イコライザの設定値、配線層構成の3次元的な影響等がある。
上述したように、具体的に解析したい要素が多く、これらを全て網羅して一挙に解析するシミュレーション手法がないため、解析対象の伝送特性を評価するためには、個々の独立したシミュレーション手法による各要素の評価を実施することになる。
そこで、本実施の形態では、2つのシミュレーションの手法を橋渡しするシミュレーション手法から得た相互換算係数に基づき、ある要素が入力不可能な手法から得られた値を補正することについて説明する。
図1を用いて、シミュレーション支援装置101の動作例について説明する。まず、図1では、シミュレーション支援装置101は、第1のシミュレーション手法と、第2のシミュレーション手法とを支援する。以下、第1のシミュレーション手法を、「シミュレーション手法1a」と呼称し、第2のシミュレーション手法を、「シミュレーション手法2」と呼称する。ここで、シミュレーション支援装置101とは異なる装置が、シミュレーション手法1a、2を実施してもよいし、いずれか一方のシミュレーション手法を実施してもよい。または、シミュレーション支援装置101が、シミュレーション手法1a、2を実施してもよい。
そして、シミュレーション手法1aは、解析対象が有する複数の要素のいずれかの要素の入力値が入力可能であり第1の特性の値を出力するシミュレーション手法である。ここで、解析対象が有する要素を、「シミュレーション要素」と呼ぶ。なお、図1や以降の図では、表示を簡潔にするために、単に、「要素」と記載することがある。そして、図1の例では、複数のシミュレーション要素として、シミュレーション要素A〜Dがある。そして、シミュレーション手法1aは、シミュレーション要素A〜Cが入力可能であり、特定のシミュレーション要素として、シミュレーション要素Dは入力不可能であるとする。ここで、シミュレーション要素A〜Dは、例えば、順に、VIA長、配線長、配線のインピーダンス、リファレンス層形状である。
そして、シミュレーション手法1aは、第1の特性の値として、例えば、Eyeパターンの高さおよび幅を出力する。また、シミュレーション支援装置101は、Eyeパターンの高さおよび幅に基づき、第2の特性の値として、例えば、Eyeパターンの面積を算出する。
ここで、Eyeパターン、Eyeパターンの高さ、幅、面積について、図1に示すグラフ111を用いて説明する。グラフ111は、良好なEyeパターンを示すグラフである。グラフ111の横軸は時刻を示し、グラフ111の縦軸は電圧を示す。Eyeパターンとは、信号波形を比較的長い期間サンプリングして取得し、取得した信号波形を重ね合わせて表示したものである。重ね合わせることで得られる画像が、Eye(目)のように見えることからEyeパターンと呼ばれる。グラフ111における網掛けを付与した部分がEye部分である。
以下、Eyeパターンの高さを、「実Eye高さ」と呼称し、Eyeパターンの幅を「実Eye幅」と呼称し、Eyeパターンの面積を「実Eye面積」と称する。Eye部分が開いていれば伝送特性が良くなり、Eye部分が閉じていれば伝送特性が悪くなる。そして、Eye部分が開いているとは、実Eye高さと実Eye幅が一定以上の値となることである。また、Eye部分の形状は、グラフ111における網掛けを付与した部分が示すようにひし形に近似することから、Eye面積は、実Eye高さ×実Eye幅/2で求めることができる。
また、シミュレーション手法2は、シミュレーション要素A〜Dのそれぞれの入力値が入力可能であり第3の特性の出力値を出力するシミュレーションである。ここで、シミュレーション要素Dは、複数のシミュレーション要素のうちのシミュレーション手法1aに入力不可能な特定の要素である。また、第3の特性は、例えば、疑似Eye面積である。疑似Eye面積は、信号の理想状態でのEye面積からノイズの影響を除いた疑似的なEye面積である。疑似Eye面積の具体的な算出方法は、図17で示す。
このように、シミュレーション手法1aは、シミュレーション要素Dが入力不可能である。一方で、シミュレーション手法2は、シミュレーション要素Dが入力可能ではあるが、シミュレーション手法2から得られる疑似Eye面積では、伝送特性を判断することができない。従って、図1では、シミュレーション要素Dの入力値の影響を受けた実Eye高さと実Eye幅とを求めることを目的とする。
シミュレーション支援装置101は、記憶部110にアクセス可能である。記憶部110は、シミュレーション手法1aから得られた実Eye高さと実Eye幅とに基づき得られた実Eye面積を、シミュレーション手法2から得られた疑似Eye面積であって実Eye面積と同一の指標となる疑似Eye面積で除した値を記憶する。この除した値は、シミュレーション手法1aとシミュレーション手法2とで得られた値を相互に換算することができる係数となることから、「相互換算係数a」と呼称する。また、相互換算係数aは、疑似Eye面積に対する実Eye面積の割合を示すことになるが、実Eye面積に対する疑似Eye面積の割合を求めてもよい。また、相互換算係数aには、シミュレーション要素Dがシミュレーション手法2に入力されていないことから、シミュレーション要素Dの影響は含まれない。図1では、シミュレーション要素Dがシミュレーション手法2に入力されていないことを、破線の矢印で模式的に示す。
そして、実Eye面積と同一の指標となる疑似Eye面積について、例えば、シミュレーション支援装置101は、第3のシミュレーション手法を用いることにより、実Eye面積と同一の指標となる疑似Eye面積を得ることができる。ここで、第3のシミュレーション手法は、シミュレーション手法1a、2を橋渡しするシミュレーション手法であり、シミュレーション手法1aと同一のシミュレーション要素が入力可能であり疑似Eye面積を出力するシミュレーション手法である。第3のシミュレーション手法を、「シミュレーション手法1b」と呼称する。シミュレーション支援装置101は、シミュレーション手法1bを実施してもよいし、他の装置が、シミュレーション手法1bを実施してもよい。
具体的には、シミュレーション支援装置101は、シミュレーション手法2から得られた疑似Eye面積との差分が所定値以下となる疑似Eye面積が得られるシミュレーション手法1bの入力値を探索する。そして、シミュレーション支援装置101は、探索した入力値を、シミュレーション手法1aに入力し、実Eye面積を取得する。これにより、取得した実Eye面積と疑似Eye面積は、同一の指標となる。より具体的な相互換算係数の算出例については、図19等に記載する。
そして、シミュレーション支援装置101は、シミュレーション手法2にシミュレーション要素A〜Cの入力値が入力されて得られた疑似Eye面積と、シミュレーション要素Dの入力値がさらに入力されて得られた疑似Eye面積とを取得する。そして、シミュレーション支援装置101は、図1の(1)で示すように、取得した2つの疑似Eye面積の差分と、相互換算係数aとに基づいて、シミュレーション要素Dの入力値の影響度Zを算出する。例えば、シミュレーション支援装置101は、前述の差分に、相互換算係数aを乗じることにより得られた値を、影響度Zとして算出する。また、相互換算係数aが、実Eye面積に対する疑似Eye面積の割合であれば、シミュレーション支援装置101は、前述の差分に、相互換算係数aを除することにより得られた値を、影響度Zとして算出してもよい。ここで、前述の差分は、疑似Eye面積におけるシミュレーション要素Dの影響度を示すため、相互換算係数aを乗じることにより、影響度Zは、実Eye面積におけるシミュレーション要素Dの影響度を示すことになる。
次に、シミュレーション支援装置101は、シミュレーション手法1aにシミュレーション要素A〜Cの入力値が入力されて得られた実Eye高さと実Eye幅とを取得する。ここで入力される入力値は、例えば、解析対象のレイアウト情報が確定した後の精度が高められた値である。そして、シミュレーション支援装置101は、図1の(2)で示すように、取得した実Eye高さと実Eye幅と、影響度Zとに基づいて、シミュレーション要素Dの影響を受けた実Eye高さと実Eye幅とを算出する。例えば、シミュレーション支援装置101は、影響度Zが最も悪くEye部分に影響する状態、すなわち、実Eye高さと実Eye幅とがともに最小となる際の最小Eye高さ、最小Eye幅を算出する。そして、シミュレーション支援装置101は、最小Eye高さ、最小Eye幅から、高さ、幅のそれぞれについてシミュレーション要素Dの影響を受けた影響率をそれぞれ算出し、それぞれの影響率を、取得した実Eye高さと実Eye幅とに乗じる。より具体的な算出方法は、図21で示す。
そして、シミュレーション支援装置101は、シミュレーション要素Dの影響を受けた実Eye高さと実Eye幅とを用いて、合否判定を行う。これにより、シミュレーション支援装置101は、より精度の高い合否判定を行うことができる。次に、シミュレーション支援装置101をシステムに適用した例を、図2を用いて説明する。
図2は、シミュレーション統合システム200の構成例を示す説明図である。シミュレーション統合システム200は、PC201と、シミュレーションサーバ202とを含む。PC201とシミュレーションサーバ202とは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワーク210で接続される。ここで、PC201は、図1に示すシミュレーション支援装置101に相当する。
PC201は、シミュレーション統合システム200のユーザUが操作するコンピュータである。また、PC201は、シミュレーション手法1a、1bを実施する。シミュレーションサーバ202は、シミュレーション手法2を実施するコンピュータである。
次に、PC201のハードウェア構成を、図3を用いて説明し、シミュレーションサーバ202のハードウェア構成を、図4を用いて説明する。
(PC201のハードウェア構成例)
図3は、PC201のハードウェア構成例を示す説明図である。PC201は、CPU(Central Processing Unit)301と、ROM(Read−Only Memory)302と、RAM(Random Access Memory)303と、ディスクドライブ304と、ディスク305と、通信インターフェース306とを含む。さらに、PC201は、ディスプレイ307と、キーボード308と、マウス309と、機器接続インターフェース310とを含む。また、CPU301〜ディスクドライブ304と、通信インターフェース306〜機器接続インターフェース310とは、バス311によってそれぞれ接続される。
CPU301は、PC201の全体の制御を司る演算処理装置である。CPU301は、複数のコアを有するマルチコアプロセッサでもよい。ROM302は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM303は、CPU301のワークエリアとして使用される揮発性メモリである。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ304には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ304が磁気ディスクドライブである場合、ディスク305には、磁気ディスクを採用することができる。また、ディスクドライブ304が光ディスクドライブである場合、ディスク305には、光ディスクを採用することができる。また、ディスクドライブ304がソリッドステートドライブである場合、ディスク305には、半導体ディスクを採用することができる。
通信インターフェース306は、ネットワーク210と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース306は、通信回線を通じてネットワーク210を介して他の装置に接続される。通信インターフェース306には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ307は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ307には、例えば、CRT(Cathode Ray Tube)、TFT(Thin Film Transistor)液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード308は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード308は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス309は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス309は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
機器接続インターフェース310は、PC201と周辺機器とを接続し、接続した周辺機器を制御する制御装置である。例えば、機器接続インターフェース310は、USB(Universal Serial Bus)等を採用することができる。そして、機器接続インターフェース310には、例えば、機器接続インターフェース310がUSBである場合にはUSBフラッシュドライブ321や、メモリカードリーダライタ322を接続することができる。
USBフラッシュドライブ321は、電力を供給しなくてもデータを保持可能な不揮発性の半導体メモリであるフラッシュメモリを内蔵し、フラッシュメモリの制御および機器接続インターフェース310との通信を行うドライブ装置を含めた装置である。メモリカードリーダライタ322は、メモリカード323に対するデータのリードおよびライトを制御する制御装置である。メモリカード323は、カード型の記録媒体である。メモリカード323には、フラッシュメモリが内蔵される。
(シミュレーションサーバ202のハードウェア構成例)
図4は、シミュレーションサーバ202のハードウェア構成例を示す説明図である。シミュレーションサーバ202は、CPU401と、ROM402と、RAM403と、を含む。また、シミュレーションサーバ202は、ディスクドライブ404およびディスク405と、通信インターフェース406と、を含む。また、CPU401〜ディスクドライブ404、通信インターフェース406はバス407によってそれぞれ接続される。
CPU401は、シミュレーションサーバ202の全体の制御を司る演算処理装置である。ROM402は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM403は、CPU401のワークエリアとして使用される揮発性メモリである。
ディスクドライブ404は、CPU401の制御に従ってディスク405に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ404には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク405は、ディスクドライブ404の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ404が磁気ディスクドライブである場合、ディスク405には、磁気ディスクを採用することができる。また、ディスクドライブ404が光ディスクドライブである場合、ディスク405には、光ディスクを採用することができる。また、ディスクドライブ404がソリッドステートドライブである場合、ディスク405には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
通信インターフェース406は、ネットワーク210と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース406は、通信回線を通じてネットワーク210を介して他の装置に接続される。通信インターフェース406には、例えば、モデムやLANアダプタなどを採用することができる。
(シミュレーション統合システム200の機能構成例)
図5は、シミュレーション統合システム200の機能構成例を示す説明図である。PC201は、制御部500を有する。制御部500は、受け付け部501と、掃引パターン生成部502と、シミュレーション手法1b実施部503と、掃引パターン決定部504と、シミュレーション手法1a実施部505と、相互換算係数算出部506とを含む。さらに、制御部500は、影響度算出部507と、影響度補正部508とを含む。制御部500は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したROM302、RAM303、ディスク305などである。また、各部の処理結果は、RAM303や、CPU301のレジスタ、CPU301のキャッシュメモリ等に格納される。
また、シミュレーション支援装置101は、記憶部110にアクセス可能である。記憶部110は、RAM303、ディスク305といった記憶装置である。記憶部110には、相互換算係数aが格納される。
また、シミュレーションサーバ202は、制御部510を有する。制御部510は、シミュレーション手法2実施部511を含む。制御部510は、記憶装置に記憶されたプログラムをCPU401が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図4に示したROM402、RAM403、ディスク405などである。また、各部の処理結果は、RAM403や、CPU401のレジスタ、CPU401のキャッシュメモリ等に格納される。
受け付け部501は、ユーザUの操作によって、いずれかのシミュレーション要素として、シミュレーション手法1aが入力可能なシミュレーション要素の第1の入力値を受け付ける。シミュレーション手法1aが入力可能なシミュレーション要素が複数ある場合、第1の入力値も複数の値となる。
掃引パターン生成部502は、受け付けた第1の入力値に基づいて、シミュレーション手法1aが入力可能なシミュレーション要素の複数の入力値を生成する。例えば、掃引パターン生成部502は、受け付けた第1の入力値からランダムに増減させた複数の値を複数の入力値として生成する。
また、第1の入力値が複数の値の場合、掃引パターン生成部502は、受け付けた第1の入力値のそれぞれに基づいて、複数の入力値を生成する。以下の説明では、シミュレーション手法1aが入力可能なシミュレーション要素が複数あるとし、各シミュレーション要素に対して生成した入力値の組み合わせを、「掃引パターン」と称する。例えば、受け付け部501が、シミュレーション要素A〜Cのそれぞれの第1の入力値を受け付けたとする。この場合、掃引パターン生成部502は、シミュレーション要素A〜Cのそれぞれの第1の入力値からランダムに増減させたそれぞれの値の組み合わせを、掃引パターンとして生成する。そして、掃引パターン生成部502は、このような掃引パターンを複数生成する。
シミュレーション手法1b実施部503は、シミュレーション手法1bを実施する。例えば、シミュレーション手法1b実施部503は、掃引パターン生成部502が生成した複数の掃引パターンの各掃引パターンの各入力値を入力し、各掃引パターンの疑似Eye面積を出力する。
掃引パターン決定部504は、シミュレーション手法2に第1の入力値が入力されて得られた疑似Eye面積と、各掃引パターンの疑似Eye面積との差分に基づいて、生成した複数の掃引パターンから、ある掃引パターンを決定する。ここで、掃引パターンは、入力値の組み合わせであるから、第1の入力値が一つである場合、掃引パターン決定部504は、複数の入力値から、第2の入力値を決定することになる。ここで、ある掃引パターンは、図1で説明した、シミュレーション手法2から得られた疑似Eye面積と同一の指標となる実Eye面積が得られる入力値となる。このように、同一の指標となるように値を合わせ込んでいる(フィッティング:Fitting)ため、ある掃引パターンを、「フィッティング最適値パターン」と呼称する。
また、掃引パターン決定部504は、疑似Eye面積と各掃引パターンの疑似Eye面積との差分と、各掃引パターンの各入力値と受け付けた第1の入力値との差分に基づいて、フィッティング最適値パターンを決定してもよい。例えば、疑似Eye面積と各掃引パターンの疑似Eye面積との差分が同程度となった掃引パターンが2つあるとする。この場合、掃引パターン決定部504は、前述した2つの掃引パターンのうち、掃引パターンの各入力値と受け付けた入力値との差分が小さい掃引パターンを、フィッティング最適値パターンとして決定する。
シミュレーション手法1a実施部505は、シミュレーション手法1aを実施する。例えば、シミュレーション手法1a実施部505は、フィッティング最適値パターンの各入力値を入力してシミュレーション手法1aを実施し、実Eye高さと実Eye幅とを出力する。
相互換算係数算出部506は、相互換算係数aを算出して、記憶部110に格納する。相互換算係数aは、フィッティング最適値パターンをシミュレーション手法1aに入力して得られた実Eye高さと実Eye幅からの実Eye面積を、フィッティング最適値パターンをシミュレーション手法1bに入力して得られた疑似Eye面積で除した値である。
シミュレーション手法2実施部511は、シミュレーション手法2を実施する。例えば、シミュレーション手法2実施部511は、シミュレーション手法2にシミュレーション要素A〜Cの入力値をシミュレーション手法2に入力して、シミュレーション手法2を実施し、疑似Eye面積を出力する。また、シミュレーション手法2実施部511は、前述したシミュレーション要素A〜Cの入力値と、シミュレーション要素Dの入力値とをシミュレーション手法2に入力して、疑似Eye面積を出力する。
影響度算出部507は、前述の2つの疑似Eye面積の差分と、相互換算係数aとに基づいて、シミュレーション要素Dの入力値の影響度Zを算出する。
影響度補正部508は、シミュレーション手法1aにシミュレーション要素A〜Cの入力値が入力されて得られた実Eye高さと実Eye幅とを取得する。そして、影響度補正部508は、取得した実Eye高さと実Eye幅とを、シミュレーション要素Dの影響が考慮されるように補正する。具体的には、影響度補正部508は、取得した実Eye高さと実Eye幅とを、影響度Zとに基づいて、シミュレーション要素Dの影響を受けた実Eye高さと実Eye幅とを算出する。
図6は、シミュレーション手法同士の関係の一例を示す説明図である。図6では、シミュレーション統合システム200が行う処理を、フィッティング工程、係数定義工程、本番シミュレーション工程という3つの工程に分割し、図5で示した機能部がどの工程に属するものかを図示したものである。
フィッティング工程は、フィッティング最適値パターンを決定するまでの工程であり、図6では、掃引パターン生成部502、掃引パターン決定部504、相互換算係数算出部506が含まれる。係数定義工程は、シミュレーション手法1a、1bに入力不可能なシミュレーション要素Dが追加されたため、要素Dの影響度Zを求める工程であり、影響度算出部507が含まれる。本番シミュレーション工程は、解析対象の設計が完了しレイアウト情報も確定した後、最終シミュレーションを実施する工程であり、影響度補正部508が含まれる。
図7は、シミュレーション要素の一例を示す説明図である。シミュレーション要素Aは、VIA長である。シミュレーション要素Bは、配線長である。シミュレーション要素Cは、配線のインピーダンスである。シミュレーション要素Dは、リファレンス層形状である。シミュレーション要素Eは、層構成である。シミュレーション要素Fは、ドライバ出力である。シミュレーション要素Gは、パッケージ内線長である。シミュレーション要素Hは、終端抵抗値である。シミュレーション要素Iは、基材特性値である。
図8は、解析対象とシミュレーション手法との相関の一例を示す説明図である。図8では、解析対象となるシミュレーション要素と、シミュレーション手法1a、2との関係を示す。図8で示す解析対象一覧801は、図7で示したシミュレーション要素を分類したものである。配線規定802として、例えば、インピーダンスや終端抵抗値が含まれる。また、部品情報803として、例えば、ドライバ出力、パッケージ内線長が含まれる。また、基材情報804として、例えば、基材特性値が含まれる。また、レイアウト情報805として、例えば、VIA長、配線長、リファレンス層形状、層構成が含まれる。
そして、シミュレーション手法1aでは、解析対象一覧801から、シミュレーション手法1aで用いる情報を収集して、シミュレーション環境を構築する。そして、図8の左下で示したように、PC201は、シミュレーション要素をシミュレーションツール811に入力してシミュレーション手法1aを実施し、実施結果として実Eye高さ[mV]と、実Eye幅[ps]とを出力する。
また、PC201は、レイアウト情報805からBoardFileを出力し、BoardFileをシミュレーションサーバ202に送信する。BoardFileを受信したシミュレーションサーバ202は、BoardFileをシミュレーションツール812に入力してシミュレーション手法2を実施し、実施結果として疑似Eye面積を出力する。
図9は、掃引パターン生成例を示す説明図である。図9で示す表900は、掃引パターン生成処理を実行する際に、ユーザUによる入力値やPC201による出力値をまとめたものである。PC201は、ユーザUによる入力値やPC201による出力値を、例えば表900で示す形式で記憶する。図9に示す表900は、レコード901−A〜Iを有する。
表900は、シミュレーション要素と、重要度と、各シミュレーション手法の解析対象となる入力要素の関係と、シミュレーション要素の種類と、共通要素フラグと、重みづけと、設定値、積算値と、という項目を含む。
シミュレーション要素項目には、シミュレーション要素を示す記号が格納される。重要度項目には、ユーザUによって入力された重要度を示す値が格納される。図9で示す重要度は、値が小さい程重要であることを示す。各シミュレーション手法の解析対象となるシミュレーション要素項目には、各シミュレーション手法によって解析対象となるシミュレーション要素が格納される。シミュレーション要素項目も、ユーザUによって入力される。入力対象とならないシミュレーション要素には、「−」が格納される。
また、図9では、PC201によって決定された、シミュレーション手法1a、1bの項目には、掃引振り幅が格納される。掃引振り幅は、基準値からどの程度離れた値を設定可能とするかを示す範囲である。さらに、図9で示すシミュレーション手法1bの項目には、掃引振り幅を、矩形の幅で模式的に示す。また、矩形内の縦線は、基準値を示し、星の位置は、ある掃引パターンにおける値を示す。具体的な掃引パターンの決定方法については、図15で説明する。
シミュレーション要素の種類項目には、シミュレーション要素の種類を示す文字列が格納される。より具体的には、シミュレーション要素の種類項目には、シミュレーション要素が解析対象か、非解析対象かを示す文字列が格納される。ここで、解析対象となるシミュレーション要素とは、設計により、値の変更が行える要素である。一方、非解析対象となるシミュレーション要素とは、値を変更することができない要素や、変更する必要がない要素である。共通要素フラグ項目には、シミュレーション要素が、シミュレーション手法1a、1bと、シミュレーション手法2とで共通する要素であるか否かを示す文字列が格納される。具体的には、共通する要素である場合、共通要素フラグ項目には、「共通要素」という文字列が格納される。
重みづけ項目には、PC201が決定した、重みづけを示す値が格納される。具体的には、PC201は、掃引振り幅の大小に逆比例する値を、重みづけの値として決定する。設定値項目には、ある掃引パターンにおける対象のシミュレーション要素の設定値が格納される。ここで、設定値は、掃引振り幅の範囲内からランダムに選ばれた値である。積算値項目には、重みづけに設定値を乗じた値の絶対値が格納される。
図10は、掃引パターンの一例を示す説明図である。図10で示す表1000は、基準値の掃引パターンと、生成した掃引パターンとしてsweep1〜12の掃引パターンとを示す。表1000は、レコード1001−0〜12を有する。レコード1001−0は、基準値の掃引パターンを示す。また、レコード1001−1〜12は、それぞれ、sweep1〜12となる掃引パターンを示す。
例えば、レコード1001−1は、sweep1が、シミュレーション要素A、Iが+10%、シミュレーション要素Eが+5%、シミュレーション要素Gが−10%、シミュレーション要素Hが+40%となることを示す。ここで、シミュレーション要素Eである層構成の+5%とは、例えば、層構成の厚みが+5%となることを示す。同様に、シミュレーション要素Dであるリファレンス層形状が+x%となる場合とは、例えば、リファレンス層形状の大きさが+x%となることを示す。同様に、シミュレーション要素Fであるドライバ出力が+x%となる場合とは、例えば、ドライバ出力値が+x%となることを示す。
次に、シミュレーション手法1a、1b、2の実施結果を、図11〜図13を用いて示す。これらの値は、図15〜図22で示すフローチャートで用いる。
図11は、シミュレーション手法1aの実施結果の一例を示す説明図である。図11に示す表1100は、シミュレーション手法1aの実施結果をまとめたものである。図11に示す表1100は、レコード1101−1〜3を有する。
レコード1101−1は、フィッティング工程初期時におけるシミュレーション手法1aの実施結果となる実Eye幅および実Eye高さを示す。また、レコード1101−2は、シミュレーション手法2の結果を合わせ込んだ後のシミュレーション1aの実施結果となる実Eye幅および実Eye高さを示す。また、レコード1101−3は、本番シミュレーション工程におけるシミュレーション手法1aの実施結果となる実Eye幅および実Eye高さを示す。
図12は、シミュレーション手法1bの実施結果の一例を示す説明図である。図12に示す表1200は、基準値の掃引パターンと、生成した掃引パターンとしてsweep1〜12の掃引パターンとのそれぞれのシミュレーション手法1bの実施結果となる疑似Eye面積をまとめたものである。
ここで、図12では、sweep3、7、10の掃引パターンが太枠で囲まれている。この太枠で囲まれたsweep3、7、10の掃引パターンは、フィッティング工程におけるシミュレーション手法2の実施結果との差が1%未満となった掃引パターンを示す。より詳しい説明は、図18で行う。
図13は、シミュレーション手法2の実施結果の一例を示す説明図である。図13に示す表1300は、シミュレーション手法2の実施結果をまとめたものである。図13に示す表1300は、レコード1301−1、2を有する。
レコード1301−1は、フィッティング工程時における要素B、Cの影響を含んだシミュレーション手法1bの実施結果となる疑似Eye面積を示す。また、レコード1301−2は、要素B、C、Dの影響を含んだシミュレーション手法1bの実施結果となる疑似Eye面積を示す。
図14は、シミュレーション手法2の実施結果との差が1%未満となった掃引パターンの積算値を示す説明図である。図14に示す表1400は、シミュレーション手法2の実施結果との差が1%未満となった掃引パターンsweep3、7、10の各シミュレーション要素の積算値と、各シミュレーション要素の積算値の合計を示す。
ここで、図14では、sweep7と、sweep7の積算値の合計とが太枠で囲まれている。この太枠で囲まれたsweep7は、フィッティング最適値パターンとして決定されるパターンである。より詳しい説明は、図18で行う。
次に、シミュレーション統合システム200が実行するフローチャートを、図15〜図22を用いて説明する。
図15は、掃引パターン生成処理手順の一例を示すフローチャート(その1)である。また、図16は、掃引パターン生成処理手順の一例を示すフローチャート(その2)である。掃引パターン生成処理は、所定の個数の掃引パターンを生成する処理である。所定の個数は、シミュレーション統合システム200でランダムに決められてもよいし、ユーザUによって指定されてもよい。
PC201は、変数となる各シミュレーション要素と、各シミュレーション要素の重要度の入力を受け付ける(ステップS1501)。例えば、PC201は、各シミュレーション要素について、GUI(Graphical User Interface)のテーブル形式で重要度の候補を表示する。そして、PC201は、ユーザUの操作によって入力された重要度を、シミュレーション要素の重要度として受け付ける。
次に、PC201は、各シミュレーション要素がいずれのシミュレーション手法に対する入力要素なのかの入力を受け付ける(ステップS1502)。例えば、PC201は、各シミュレーション要素について、GUIのテーブル形式で、シミュレーション手法1a、1b、2を選択可能なチェックボックスを表示する。そして、PC201は、ユーザUの操作によってチェックされたシミュレーション要素を、シミュレーション手法に対する入力要素として受け付ける。
そして、PC201は、各シミュレーション要素の種類が「解析対象」または「非解析対象」のいずれかなのかの入力を受け付ける(ステップS1503)。例えば、PC201は、各シミュレーション要素の種類について、GUIのテーブル形式で、「解析対象」か「非解析対象」かを選択可能なプルダウンメニューを表示する。そして、PC201は、選択された項目が、シミュレーション要素の種類であるとして受け付ける。
次に、PC201は、各シミュレーション要素について、シミュレーション手法1xとシミュレーション手法2との共通要素か否かを判定する(ステップS1504)。ステップS1504の処理について、図9に示した表900を例として用いると、シミュレーション要素B、Cは、シミュレーション手法1a、1b、2に共通する要素である。従って、PC201は、シミュレーション要素B、Cが共通要素であると判定する。
そして、PC201は、全てのシミュレーション要素のうちの未選択のシミュレーション要素を選択する(ステップS1505)。次に、選択したシミュレーション要素が「共通要素」でなく、かつ、シミュレーション手法1xの入力要素か否かを判断する(ステップS1506)。ここで、シミュレーション手法1xとは、シミュレーション手法1a、1bを示す。
選択したシミュレーション要素が「共通要素」でなく、かつ、シミュレーション手法1xの入力要素である場合(ステップS1506:Yes)、PC201は、選択したシミュレーション要素の種類および重要度に基づいて、選択したシミュレーション要素の掃引振り幅を決定する(ステップS1507)。具体的には、PC201は、選択したシミュレーション要素の重要度が高い程、掃引振り幅を小さくする。ただし、選択したシミュレーション要素の重要度が高くても、選択したシミュレーション要素の種類が「非解析対象」である場合、掃引振り幅を大きくする。
一方、選択したシミュレーション要素が「共通要素」である、または、シミュレーション手法1xの入力要素でない場合(ステップS1506:No)、PC201は、掃引振り幅を決定しない。理由として、選択したシミュレーション要素が「共通要素」である場合、各シミュレーション手法に対して同一の固定値を入力するので掃引を実施しないためである。また、シミュレーション手法1xの入力要素でない場合、すなわち、シミュレーション手法2だけの入力要素となるシミュレーション要素についても、掃引を実施しないためである。
ステップS1507の処理終了後、または、ステップS1506:Noとなる場合、PC201は、全てのシミュレーション要素を選択したか否かを判断する(ステップS1508)。まだ選択していないシミュレーション要素がある場合(ステップS1508:No)、PC201は、ステップS1505の処理に移行する。
一方、全てのシミュレーション要素を選択した場合(ステップS1508:Yes)、PC201は、各シミュレーション要素について、掃引振り幅の大小に逆比例する重みづけの値を決定する(ステップS1601)。ステップS1601の処理について、表900を例として用いると、PC201は、掃引振り幅が最も小さいシミュレーション要素Aの重みづけを、最も大きい値として20と決定する。また、PC201は、掃引振り幅が最も大きいシミュレーション要素F〜Iの重みづけを、最も小さい5と決定する。
次に、PC201は、各シミュレーション要素について、掃引振り幅の範囲内で基準値からxx%増加または減少させたいずれかの値を決定する(ステップS1602)。そして、PC201は、各シミュレーション要素について決定した値を、新たな掃引パターンとして生成する(ステップS1603)。次に、PC201は、所定の個数の掃引パターンを生成したか否かを判断する(ステップS1604)。
所定の個数の掃引パターンを生成していない場合(ステップS1604:No)、PC201は、ステップS1602の処理に移行する。一方、所定の個数の掃引パターンを生成した場合(ステップS1604:Yes)、PC201は、掃引パターン生成処理を終了する。
図17は、シミュレーション手法2によるフィッティング処理手順の一例を示すフローチャートである。シミュレーションサーバ202は、シミュレーション環境のパラメタを設定する(ステップS1701)。次に、シミュレーションサーバ202は、シミュレーション要素B、Cの基準値を入力値として、シミュレーション手法2を実施する(ステップS1702)。そして、シミュレーションサーバ202は、実施結果から、下記(1)式〜(4)式を用いて、疑似Eye面積を算出する(ステップS1703)。
ここで、SIG(SIGnal)は、対象信号の理想状態でのEye面積を示す。理想状態とは、ノイズ影響を受けない状態である。また、Rxは、受信信号を示す。
ここで、FEXT(Far End Cross Talk:遠端クロストーク)は、対象信号に影響するノイズの1つであり、隣接信号から受けるノイズである。
ここで、ISI(InterSymbol Interference:符号間干渉)は、対象信号に影響するノイズの1つであり、同じ信号線上の隣接データ間で発生するノイズである。
例えば、シミュレーションサーバ202は、レコード1301−1で示すように、疑似Eye面積を10.44と算出する。ステップS1703の処理終了後、シミュレーションサーバ202は、算出した疑似Eye面積をPC201に送信し、シミュレーション手法2によるフィッティング処理を終了する。
図18は、シミュレーション手法1a、1bによるフィッティング処理手順の一例を示すフローチャート(その1)である。また、図19は、シミュレーション手法1a、1bによるフィッティング処理手順の一例を示すフローチャート(その2)である。ここで、シミュレーション手法1aとシミュレーション手法1bとは、それぞれ異なるアプリによって実施される。例えば、CPU301が複数のコアを有するならば、PC201は、1つ目のコアに、シミュレーション手法1aを実施するアプリを実行させ、2つ目のコアに、シミュレーション手法1bを実施するアプリを実行させてもよい。
PC201は、シミュレーション手法1aを実施するアプリによって、シミュレーション要素A〜C、E〜Iの基準値を入力値として、シミュレーション手法1aを実施する(ステップS1801)。例えば、PC201は、レコード1101−1で示すように、シミュレーション手法1aを実施して、実施結果となる実Eye高さを30.6218[mV]と、実Eye幅を16.3336[ps]とを得る。
また、PC201は、シミュレーション手法1bを実施するアプリによって、ステップS1801の入力値と同一の値、すなわち、シミュレーション要素A〜C、E〜Iの基準値を入力値として、シミュレーション手法1bを実施する(ステップS1802)。例えば、PC201は、レコード1201−0で示すように、シミュレーション手法1aを実施して、実施結果となる疑似Eye面積16.5442を得る。この値を、ステップS1703の処理で得た値に近づけるため、入力を変化させる。PC201は、生成した掃引パターンのうち、未選択の掃引パターンを選択する(ステップS1803)。そして、PC201は、選択した掃引パターンの各シミュレーション要素の値を入力値として、シミュレーション手法1bを実施する(ステップS1804)。ステップS1804の処理において、掃引対象は、シミュレーション要素A、E、F、G、H、Iとなる。次に、PC201は、全ての掃引パターンに対してシミュレーション手法1bを実施したか否かを判断する(ステップS1805)。
まだシミュレーション手法1bを実施していない掃引パターンがある場合(ステップS1805:No)、PC201は、ステップS1803の処理に移行する。一方、全ての掃引パターンに対してシミュレーション手法1bを実施した場合(ステップS1805:Yes)、PC201は、全ての掃引パターンから、シミュレーション手法2の結果となる疑似Eye面積との差が1%以内となる疑似Eye面積を結果とする掃引パターンを特定する(ステップS1806)。例えば、ステップS1805:Yesとなった状態として、PC201は、レコード1201−1〜12で示すsweep1〜12の疑似Eye面積を得る。そして、sweep1〜12の疑似Eye面積のうち、ステップS1703の処理で得た10.44と1%以内の差となる掃引パターンは、図12の太枠で示したsweep3、7、10となる。
次に、PC201は、特定した掃引パターンのうち、積算値の合計が最小となる掃引パターンを、フィッティング最適値パターンとして決定する(ステップS1807)。例えば、PC201は、図14で示すように、sweep3、7、10のうち、積算値の合計が最小となるsweep7を、フィッティング最適値パターンとして特定する。ここで、積算値の合計は、設定値が基準値に近い程小さい値となる。従って、積算値の合計が最小となる掃引パターンは、基本的には、設定値が基準値に最も近いパターンである。ただし、積算値には重みづけの値も含まれるため、設定値が基準値に最も近いパターンであっても、積算値の合計が最小とはならない場合もある。
ステップS1807の処理終了後、PC201は、シミュレーション手法1bによるフィッティング処理を終了する。ここで、PC201は、sweep7の各シミュレーション要素の設定値と、疑似Eye面積10.411をファイル等に出力する。
一方、PC201は、シミュレーション手法1aを実施するアプリによって、フィッティング最適値パターンの各シミュレーション要素の設定値を取り込む(ステップS1901)。具体的には、PC201は、sweep7の各シミュレーション要素の設定値を取り込む。
次に、PC201は、取り込んだ値を入力値として、シミュレーション手法1aを実施する(ステップS1902)。そして、PC201は、実施結果となる、実Eye高さ[mV]と、実Eye幅[ps]とを取得する(ステップS1903)。例えば、PC201は、レコード1101−2で示すように、実Eye高さとして20.5011[mV]と、実Eye幅として8.7204[ps]とを取得する。
次に、PC201は、1mVを1ステップとして、実Eye高さ[mV]を、EHstepに変換する(ステップS1904)。また、PC201は、1psを1ステップとして、実Eye幅[ps]を、EWstepに変換する(ステップS1905)。ここで、ステップは、mVとpsという単位の異なる物理量を、疑似的に同一の単位としてみなすための単位である。例えば、ステップS1904の処理において、PC201は、実Eye高さとなる20.5011[mV]を、20.5011[ステップ]に変換する。同様に、ステップS1905の処理において、PC201は、実Eye幅となる8.7204[ps]を、8.7204[ステップ]に変換する。
次に、PC201は、実Eye面積=EHstep×EWstep/2を算出する(ステップS1906)。例えば、PC201は、実Eye面積を80.3889と算出する。そして、PC201は、相互換算係数a=実Eye面積/疑似Eye面積を算出する(ステップS1907)。例えば、PC201は、相互換算係数a=80、388/10.411=8.5860と算出する。ここで、実Eye面積と疑似Eye面積とでは計算手法が異なるため、本来であれば入力値が同一であれば実Eye面積と疑似Eye面積とは同一の値となるはずが、上述のように大きく異なる値となることがある。ステップS1907の処理終了後、PC201は、シミュレーション手法1aによるフィッティング処理を終了する。ここで、PC201は、相互換算係数aをファイル等に出力する。
図20は、シミュレーション手法2による差分算出処理手順の一例を示すフローチャートである。シミュレーションサーバ202は、シミュレーション要素B、C、Dの基準値を入力値として、シミュレーション手法2を実施する(ステップS2001)。次に、シミュレーションサーバ202は、実施結果から、上述した(1)式〜(4)式を用いて、シミュレーション要素Dの影響を含む疑似Eye面積を算出する(ステップS2002)。例えば、シミュレーションサーバ202は、レコード1301−2に示したように、シミュレーション要素Dの影響を含む疑似Eye面積を、9.32と算出する。
そして、シミュレーションサーバ202は、シミュレーション要素Dによる差分Y=シミュレーション要素Dの影響を含まない疑似Eye面積−要素Dの影響を含む疑似Eye面積を算出する(ステップS2003)。ここで、シミュレーション要素Dの影響を含まない疑似Eye面積は、ステップS1703の処理で求めた値である。例えば、シミュレーションサーバ202は、差分Yを、10.44−9.32=1.12と算出する。差分Yは、負の値となることもある。
ステップS2003の処理終了後、差分YをPC201に送信し、シミュレーション手法2による差分算出処理を終了する。
図21は、係数定義処理手順の一例を示すフローチャートである。PC201は、影響度Z=差分Y×相互換算係数aを算出する(ステップS2101)。例えば、PC201は、影響度Z=1.12×8.5860=9.6163と算出する。
影響度Zは、面積差分となる。この影響度Zから、Eye高さとEye幅とのそれぞれにどのように影響を与えるかを割り出すことはできない。具体的には、影響度Zが、Eye高さだけに影響する可能性もあるし、Eye幅だけに影響する可能性もあるし、Eye高さとEye幅との両方に影響する可能性もある。そこで、PC201は、最悪ケースとして、Eyeが最小となる最小Eye高さと最小Eye幅を求める。
ステップS2101の処理終了後、PC201は、EHstep(Min)=(実Eye面積−Z)×2/EWstepを算出する(ステップS2102)。ここで、EWstepは、ステップS1905の処理により得られる。例えば、PC201は、EHstep(Min)=(89.3889−9.6163)x2/8.7204=18.2956と算出する。
また、PC201は、EWstep(Min)=(実Eye面積−Z)×2/EHstepを算出する(ステップS2103)。ここで、EHstepは、ステップS1904の処理により得られる。例えば、PC201は、EWstep(Min)=(89.3889−9.6163)x2/20.5011=7.7823と算出する。
そして、PC201は、実Eye面積(Min)=EHstep×EWstep/2を算出する(ステップS2104)。例えば、PC201は、実Eye面積(Min)=18.2956×7.7823/2=71.1909と算出する。次に、mV、psに単位を戻すため、PC201は、1ステップを1mVとして、EHstep(Min)を最小Eye高さ[mV]に変換し(ステップS2105)、1ステップを1psとして、EWstep(Min)を最小Eye幅[ps]に変換する(ステップS2106)。例えば、PC201は、最小Eye高さを18.2956[mV]と変換し、最小Eye幅を7.7823[ps]と変換する。
そして、シミュレーション要素Dが与える影響率を定義するため、PC201は、Eye高さ影響率=(実Eye高さ−最小Eye高さ)/実Eye高さ×100を算出する(ステップS2107)。例えば、PC201は、Eye高さ影響率=(20.5011−18.2956)/20.5011x100=10.76[%]と算出する。また、PC201は、Eye幅影響率=(実Eye幅−最小Eye幅)/実Eye幅×100を設定する(ステップS2108)。例えば、PC201は、(8.7204−7.7823)/8.7204x100=10.76[%]と算出する。Eye高さ影響率と、Eye幅影響率とが、シミュレーション要素Dの影響率となる。ステップS2108の処理終了後、PC201は、係数定義処理を終了する。また、Eye高さ影響率やEye幅影響率の算出方法は、ステップS2107、S2108の処理で示した例に限られない。例えば、ステップS2107の処理内の「最小Eye高さ」に、ステップS2102の右辺の各変数を[mV]に変換した数式を代入してもよい。
図22は、本番シミュレーション処理手順の一例を示すフローチャートである。PC201は、シミュレーション環境のパラメタを設定する(ステップS2201)。次に、PC201は、要素A〜C、E〜Iの見直した値を入力値として、シミュレーション手法1aを実施する(ステップS2202)。そして、PC201は、実施結果となる、実Eye高さ[mV]と、実Eye幅[ps]とを取得する(ステップS2203)。例えば、PC201は、レコード1101−3で示すように、実Eye高さとして26.3303[mV]と、実Eye幅として14.1286[ps]とを取得する。
次に、PC201は、影響率を考慮した実Eye高さ[mV]=取得した実Eye高さ[mV]×(1−Eye高さ影響率/100)を算出する(ステップS2204)。例えば、PC201は、影響率を考慮した実Eye高さ=26.3303×(1−10.76/100)=23.4972[mV]と算出する。また、PC201は、影響率を考慮した実Eye幅[ps]=取得した実Eye幅[ps]×(1−Eye幅影響率/100)を設定する(ステップS2205)。例えば、PC201は、14.1286×(1−10.76/100)=12.6084[ps]と算出する。
そして、PC201は、影響率を考慮した実Eye高さおよび実Eye幅を用いて、合格基準値と比較し、伝送特性の合否判定する(ステップS2206)。例えば、合格基準値がEye高さ15.0[mV]であり、Eye幅8.0[ps]であり、合格基準値を超えれば、伝送特性を合格と判断するとする。そして、影響率を考慮した実Eye高さ、実Eye幅ともに、合格基準値を超えているため、PC201は、伝送特性を合格と判断する。ステップS2206の処理終了後、PC201は、本番シミュレーション処理を終了する。
以上説明したように、PC201は、シミュレーション手法1a、2を橋渡しするシミュレーション手法1bから得た相互換算係数に基づき、シミュレーション要素Dが入力不可能なシミュレーション手法1aから得られた実Eye高さと幅を補正する。これにより、PC201は、補正結果には、要素Dの入力値が考慮されるため、伝送特性の判定精度を向上させることができる。また、シミュレーション統合システム200は、全ての設計要素を包含した伝送特性解析を行うことができるため、より正確なリスク判定や、レイアウト設計変更の効果確認、要否判定が可能になる。これにより、シミュレーション統合システム200は、設計完了前のシミュレーション精度が高まり、改版リスクを下げることができる。また、改版が必要になった場合でも、修正による影響を高い精度で事前確認できるため、再開版のリスクを下げることが可能となる。さらに、完成した基板の伝送評価にて問題が発生した場合、本実施の形態を用いたシミュレーションを活用することで、問題の現象を再現し原因を特定することが可能となる。
また、PC201は、決定したフィッティング最適値パターンから相互換算係数aを算出して、算出した相互換算係数を記憶部110に格納してもよい。相互換算係数は、実Eye面積と、実Eye面積と同一の指標となる疑似Eye面積との関係を示す。PC201は、相互換算係数を用いることにより、あるシミュレーション要素の入力値の影響を受ける疑似Eye面積を求めた際に、あるシミュレーション要素の入力値の影響を受ける実Eye面積を求めることができる。
また、PC201は、各掃引パターンの各入力値と受け付けた第1の入力値との差分に基づいて、フィッティング最適値パターンを決定してもよい。これにより、PC201は、ユーザUによって入力された入力値により近い値を最適値パターンとして決定することができる。
また、本実施の形態では、第1の種別の指標は、Eye高さおよび幅であり、第2の種別の指標は、Eye面積であり、第3の種別の指標は、疑似Eye面積であるとしたが、他の指標でもよい。
また、本実施の形態で示したシミュレーション手法2は、時間領域のシミュレーションであるが、これに限らない。例えば、シミュレーション手法2として、電磁界解析や周波数解析を採用することもできる。電磁界解析や周波数解析であっても、上述した(1)〜(4)式により、疑似Eye面積を求めることができる。さらに、他の解析手法として、上述した解析手法はISI、FEXTというノイズ成分に注目した解析であるが、これ以外にもノイズの種類は多数存在する。例えば、電源の放射ノイズに注目したCNS(Channel Noise Scan)という解析がある。この解析は、主信号としては上述した解析手法と同一であり、注目したノイズがどの程度主信号に影響するかを解析する。従って、この解析でも疑似Eye面積を算出することが可能であるため、シミュレーション手法2として採用することができる。
なお、本実施の形態で説明したシミュレーション支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本シミュレーション支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本シミュレーション支援プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)解析対象が有する複数の要素のいずれかの要素の入力値が入力可能であり第1の種別の指標の値を出力する第1のシミュレーション手法から得られた第1の種別の指標の値に基づく第2の種別の指標の値を、前記複数の要素のうちの前記第1のシミュレーション手法に入力不可能な特定の要素の入力値と前記いずれかの要素の入力値とが入力可能であり第3の種別の指標の値を出力する第2のシミュレーション手法から得られた第3の種別の指標の値であって、前記第2の種別の指標の値と同一の指標となる前記第3の種別の指標の値で除した値を記憶する記憶部と、
前記第2のシミュレーション手法に前記いずれかの要素のいずれかの入力値が入力されて得られた前記第3の種別の指標の値と、前記第2のシミュレーション手法に当該いずれかの入力値と前記特定の要素の入力値とが入力されて得られた前記第3の種別の指標の値との差分と、前記記憶部によって記憶された前記値とに基づいて、前記特定の要素の入力値の影響度を算出し、前記第1のシミュレーション手法に前記いずれかの要素のいずれかの入力値が入力されて得られた前記第1の種別の指標の値と、算出した前記影響度とに基づいて、前記特定の要素の入力値の影響を受けた前記第1の種別の指標の値を算出する制御部と、
を有することを特徴とするシミュレーション支援装置。
(付記2)前記制御部は、
前記いずれかの要素の第1の入力値を受け付け、
受け付けた前記第1の入力値に基づいて、前記いずれかの要素の複数の入力値を生成し、
前記第1のシミュレーション手法と同一の要素が入力可能であり前記第3の種別の指標の値を出力する第3のシミュレーション手法に、前記複数の入力値の各入力値が入力されて得られた前記第3の種別の指標の各値を取得し、
前記第2のシミュレーション手法に前記第1の入力値が入力されて得られた前記第3の種別の指標の値と、取得した前記各値との差分に基づいて、前記複数の入力値から第2の入力値を決定し、
前記第1のシミュレーション手法に決定した前記第2の入力値が入力されて得られた前記第1の種別の指標の値に基づく第2の種別の指標の値を、前記第3のシミュレーション手法に前記第2の入力値が入力されて得られた前記第3の種別の指標の値で除した値を前記記憶部に格納する、
ことを特徴とする付記1に記載のシミュレーション支援装置。
(付記3)前記制御部は、
前記第2のシミュレーション手法に前記第1の入力値が入力されて得られた前記第3の種別の指標の値と前記各値との差分と、前記各入力値と前記第1の入力値との差分とに基づいて、前記複数の入力値から第2の入力値を決定する、
ことを特徴とする付記2に記載のシミュレーション支援装置。
(付記4)前記解析対象は、プリント回路板であり、
前記第1の種別の指標は、前記解析対象を流れる信号の波形によって形成されるEyeパターンの高さおよび幅であり、
前記第2の種別の指標は、前記Eyeパターンの面積であり、
前記第3の種別の指標は、前記信号の理想状態での前記Eyeパターンの面積からノイズの影響を除いた前記Eyeパターンの疑似的な面積である、
ことを特徴とする付記1〜3のいずれか一つに記載のシミュレーション支援装置。
(付記5)前記第1のシミュレーション手法および前記第2のシミュレーション手法は、時間領域のシミュレーションであることを特徴とする付記1〜4のいずれか一つに記載のシミュレーション支援装置。
(付記6)解析対象が有する複数の要素のいずれかの要素の入力値が入力可能であり第1の種別の指標の値を出力する第1のシミュレーション手法から得られた第1の種別の指標の値に基づく第2の種別の指標の値を、前記複数の要素のうちの前記第1のシミュレーション手法に入力不可能な特定の要素の入力値と前記いずれかの要素の入力値とが入力可能であり第3の種別の指標の値を出力する第2のシミュレーション手法から得られた第3の種別の指標の値であって、前記第2の種別の指標の値と同一の指標となる前記第3の種別の指標の値で除した値を記憶する記憶部にアクセス可能なコンピュータが、
前記第2のシミュレーション手法に前記いずれかの要素のいずれかの入力値が入力されて得られた前記第3の種別の指標の値と、前記第2のシミュレーション手法に当該いずれかの入力値と前記特定の要素の入力値とが入力されて得られた前記第3の種別の指標の値との差分と、前記記憶部によって記憶された前記値とに基づいて、前記特定の要素の入力値の影響度を算出し、
前記第1のシミュレーション手法に前記いずれかの要素のいずれかの入力値が入力されて得られた前記第1の種別の指標の値と、算出した前記影響度とに基づいて、前記特定の要素の入力値の影響を受けた前記第1の種別の指標の値を算出する、
処理を実行することを特徴とするシミュレーション支援方法。
(付記7)解析対象が有する複数の要素のいずれかの要素の入力値が入力可能であり第1の種別の指標の値を出力する第1のシミュレーション手法から得られた第1の種別の指標の値に基づく第2の種別の指標の値を、前記複数の要素のうちの前記第1のシミュレーション手法に入力不可能な特定の要素の入力値と前記いずれかの要素の入力値とが入力可能であり第3の種別の指標の値を出力する第2のシミュレーション手法から得られた第3の種別の指標の値であって、前記第2の種別の指標の値と同一の指標となる前記第3の種別の指標の値で除した値を記憶する記憶部にアクセス可能なコンピュータに、
前記第2のシミュレーション手法に前記いずれかの要素のいずれかの入力値が入力されて得られた前記第3の種別の指標の値と、前記第2のシミュレーション手法に当該いずれかの入力値と前記特定の要素の入力値とが入力されて得られた前記第3の種別の指標の値との差分と、前記記憶部によって記憶された前記値とに基づいて、前記特定の要素の入力値の影響度を算出し、
前記第1のシミュレーション手法に前記いずれかの要素のいずれかの入力値が入力されて得られた前記第1の種別の指標の値と、算出した前記影響度とに基づいて、前記特定の要素の入力値の影響を受けた前記第1の種別の指標の値を算出する、
処理を実行することを特徴とするシミュレーション支援方法。