説明

シミュレーション方法、シミュレーション装置、プログラム、及び記憶媒体

【課題】 本発明の課題は、設計空間の良不良の境界を特定すると共に、境界点のうち原点に一番近い最確点または最適設計点を特定することを目的とする。
【解決手段】 上記課題は、装置又は回路の動作をシミュレーションするシミュレーション方法であって、コンピュータが、任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行することを特徴とする、シミュレーション方法により達成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設計パラメータの組合せによって時間的に変化が多様な事象の過渡シミュレーションにおいて、事象の変化を決める最適な設計パラメータの組合せを選択することに関する。
【背景技術】
【0002】
多数の設計パラメータを用いて、設計の良し悪しを判定するためのシミュレーションにおいて、例えば、回路設計では、第一のシミュレーションでは解析ステップを粗くして回路の基本動作を確認し、第二のシミュレーションは解析ステップを細かくすることによって、シミュレーション精度を上げたり、評価関数を用いて最適化を行う際には、評価関数による最適値候補を絞り、十分な最適値候補が得られた場合には最適値候補の中から選択した部分集合から初期値を決定し、最適化収束計算を行ってパラメータの最適値を算出することによって、パラメータ値の大域解への収束性を向上させたりする手法等が提案されている(例えば、特許文献1〜2を参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−337842号公報
【特許文献2】特開2007−72591号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
設計において与えられたある要件を満たす設計パラメータを探索するためには、要件に対応して満たす度合い、満たさない度合いを表現する指標を設定できる場合には、設計パラメータを変化させたときの指標の値の変化をもとに与えられた要件を満たす設計パラメータを見つけていた。つまり、指標を使って2つの設計パラメータを比較する場合、どちらがより要件を満たすものに近いかを決められることを前提としており、例えば最急降下法等の手法で要件を満たす設計パラメータを探索していた。
【0005】
しかしながら、設計対象の複雑化や前提条件の変化により、要件を満たす度合いを表現できる従来の指標の精度が十分ではなくなってきた、また従来の指標に代わる新たな指標を見つけることも困難となってきた。SRAM、ロボット、飛行機等を実際に動作させたり、その動作をシミュレーションすることで設計の良し悪しのどちらであるかを判定することは可能であるが、その判定指標で2つ以上の設計パラメータが同じく良もしくは不良と判定された場合には、より良いもしくはより悪い設計パラメータがどれであるかを特定できない。そのため最急降下法等の手法で設計空間を探索できず、設計空間における良し悪しの境界を特定できないと言った問題があった。
【0006】
また、指標が設定できない場合でも設計パラメータの数が少ない、又は、範囲が狭いなどの場合には、とり得る設計パラメータ全てについてシミュレーションしたり、設計空間を適当なメッシュで区切って、メッシュ内を代表する設計パラメータでシミュレーションした結果から要件を満たすメッシュを特定、次にそのメッシュの範囲内で詳細に探索するという従来手法によって設計の良し悪しの領域を特定することが可能であったが、6σのばらつきを許容するような高性能を要求するSRAM、ロボット、飛行機など分野では多数の設計パラメータがあり、且つその範囲が広いため、設計空間が広大になり、シミュレーションの実現が困難となってきた。
【課題を解決するための手段】
【0007】
開示の技術は、装置又は回路の動作をシミュレーションするシミュレーション方法であって、コンピュータが、任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行するように構成される。
【0008】
また、開示のシミュレーション方法は、上記手順をコンピュータに実行させるためのプログラム、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体、及び、該プログラムによって上記手順を実行する回路設計に係るシミュレーション装置によって実現可能である。
【発明の効果】
【0009】
開示の技術において、設計空間の良不良の境界を特定すると共に、境界点のうち原点に一番近い最確点、または最適設計点を特定することができる。
【図面の簡単な説明】
【0010】
【図1】過渡シミュレーションの終了時刻におけるSRAMセルの状態を判定指標とする例を説明するための図である。
【図2】2つの設計パラメータの過渡シミュレーションにおける状態例を示す図である。
【図3】設計空間の例を示す図である。
【図4】シミュレーション装置のハードウェア構成を示すブロック図である。
【図5】シミュレーション装置の機能構成例を示す図である。
【図6】設計空間において良不良の境界を特定するための処理の全体を説明するための図である。
【図7】DCシミュレーション結果を判定指標とする例を示す図である。
【図8】所定時刻の状態を判定指標とする第一の例を示す図である。
【図9】所定時刻の状態を判定指標とする第二の例を示す図である。
【図10】所定時刻の状態を判定指標とする第三の例を示す図である。
【図11】所定時刻の状態を判定指標とする第四の例を示す図である。
【図12】所定時刻の状態を判定指標とする第五の例を示す図である。
【図13】所定時刻の状態を判定指標とする第六の例を示す図である。
【図14】所定時刻の状態を判定指標とする第七の例を示す図である。
【図15】探索用指標に基づく最急降下法を説明するための図である。
【図16】境界点取得部によって実行される探索用指標に基づく最急降下法のフローチャート図である。
【図17】境界点からモンテカルロシミュレーションによって最確点を決定する方法を説明するための図である。
【図18】最確点決定部によって実行される判定指標に基づく最確点を決定する処理のフローチャート図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を図面に基づいて説明する。本実施例では、例えば、SRAM(Static Random Access Memory)の設計において、複数の設計パラメータがあり、その設計空間の各点で実験又はシミュレーションすることによってOK/NG(良又は不良)を判定するシミュレーション方法において、設計空間内のOKとなる領域とNGとなる領域の境界上の複数の設計変数の値の組み合せによる設計パラメータを特定する。
【0012】
まず、SRAMの動作に基づいた過渡シミュレーションの結果を判定指標とする場合について図1を用いて説明する。図1は、過渡シミュレーションの終了時刻におけるSRAMセルの状態を判定指標とする例を説明するための図である。
【0013】
図1(A)に示すSRAMセル1の論理回路データを用いて、0ノードと1ノードとが、書き込み/読み込み開始時刻から書き込み/読み込み終了時刻までの過渡シミュレーションにおいて、終了時刻にSRAMセル1の保持していた情報がそのまま保持されていたか(=OK:良)、或いは書き換わってしまったか(=NG:不良)を判定指標として、SRAMセル1の複数の設計パラメータでシミュレーションを行う。例えば、設計パラメータAと設計パラメータEによるシミュレーションの結果を図1(B)と図1(C)とに夫々示す。
【0014】
図1(B)及び図1(C)において、左側の縦軸にノードの電位を示し、横軸に時間Tを示す。書き込み/読み込み終了時刻tの電位で判定指標に基づいて判定される。図1(B)では、設計パラメータAを用いたシミュレーションの場合、1ノードは書き込み/読み込み開始時刻tで保持していたノードの電位を書き込み/読み込み終了時刻tでも保持しており、判定指標に基づく判定結果はOKとなる例を示している。図1(C)では、設計パラメータEを用いたシミュレーションの場合、1ノードは書き込み/読み込み開始時刻tで保持していたノードの電位を書き込み/読み込み終了時刻tでは書き換えられており、判定指標に基づく判定結果はNGとなる例を示している。
【0015】
設計パラメータAと設計パラメータEとでは、図1(B)と図1(C)とに夫々示すように、OKとNGとで判定結果は明らかとなる。しかしながら、終了時刻にSRAMセル1の保持していた情報がそのまま保持されていたか否かを判定指標とするシミュレーションでは、書き込み/読み込み終了時刻tにおいて、SRAMセル1に対する2つ以上の設計パラメータが同様にOKと判定された場合には、いずれがより良い設計値なのかを判断することができない。
【0016】
図2は、2つの設計パラメータの過渡シミュレーションにおける状態例を示す図である。図2に示されるように、設計パラメータA及び設計パラメータB共に、終了時刻tでOKと判定される状態であるが、設計パラメータAと設計パラメータBとは時間経過に伴って異なる状態を辿るのが分かる。
【0017】
本実施例では、データを保持できるか否かと言った2状態を判定指標とするシミュレーションにおいて、その判定指標とは異なる別の指標を設定して用いることによって、判定指標によってOK(又はNG)と判断された設定パラメータ間の比較を可能とする。判定指標とは異なる別の指標を、以下、探索用指標と言う。
【0018】
例えば、図2において、開始時刻tから終了時刻tまでの過渡シミュレーションにおいて、SRAMセル1の0ノードと1ノードの電位差の最小値を探索用指標とすることによって、設計パラメータAと設計パラメータBとの比較を可能とする。この例では、設計パラメータAの両ノードの電位差を示す探索用指標2aは、設計パラメータBの両ノードの電位差を示す探索用指標2bより大きいため、設計パラメータAの方が設計パラメータBと比べてより良い設計パラメータであると判断できる。一方、設計パラメータBの方が後述される設計空間内のOK領域とNG領域の境界に近づいていると言える。
【0019】
同様に、2以上の設計パラメータが判定指標によってNGとなる場合、探索用指標を用いて比較することによってNGの範囲の中で状態の良い設計パラメータを判定することができる。
【0020】
設計空間におけるOK領域とNG領域の境界について図3で説明する。図3は、設計空間の例を示す図である。図3では、2つの設計変数V1及びV2でなる設計空間3を示すが、実際の設計では、例えば、10〜30数個或はそれ以上の設計変数による多次元の設計空間となる。複数の設計変数V1、V2...の値の組み合せ、つまり、設計空間内の点の位置を示す座標が各設計パラメータとして示される。
【0021】
原点が設計の中心に相当し、例えば6σのばらつきで許容される領域がOK領域であり、エラー又は障害が発生する領域がNG領域となる。このOK領域とNG領域の境界3aにおいて、設計中心に一番近い点MPPを探索する。
【0022】
境界3a上の設計中心に一番近い点Pを探索するシミュレーション装置100は、例えば、図4に示すようなハードウェア構成を有する。図4は、シミュレーション装置のハードウェア構成を示すブロック図である。
【0023】
図4において、シミュレーション装置100は、コンピュータによって制御される装置であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し 、システムバスBに接続される。
【0024】
CPU11は、メモリユニット12に格納されたプログラムに従ってシミュレーション装置100を制御する。メモリユニット12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
【0025】
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、ユーザがシミュレーション装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
【0026】
シミュレーション装置100よって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によってシミュレーション装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本実施例に係る処理を実現するプログラムは、通信ユニット16によってネットワークを介してダウンロードし、記憶装置17にインストールするようにしても良い。また、USB対応のシミュレーション装置100であれば、USB接続可能な外部記憶装置からインストールするようにしても良い。更に、SDカード等のフラッシュメモリ対応のシミュレーション装置100であれば、そのようなメモリカードからインストールするようにしても良い。
【0027】
図5は、シミュレーション装置の機能構成例を示す図である。図5において、シミュレーション装置100は、CPU11がプログラムを実行することにより、探索用指標設定部31と、境界点取得部32と、最確点決定部33と、DCシミュレータ41と、過渡シミュレータ42と、モンテカルロシミュレータ43の各処理部として機能する。設計パラメータ21は初期値としてメモリユニット12又は記憶装置17の記憶領域(以下、単に記憶領域と言う)に予め格納され、最確点29はCPU11によって実行された処理によって記憶領域に出力される。
【0028】
探索用指標設定部31は、判定指標とは異なる探索用指標を設定する処理部である。探索用指標は、判定指標では比較できない場合であっても設定パラメータ間の比較を行えるようにした指標である。設計の良不良を動作シミュレーションによって判定する判定指標に対し、探索用指標は、設計したSRAMセル1の安定性、優劣等に係る状態を検証し、設定パラメータ間の比較によってより良い又はより悪いことを判断するための指標である。
【0029】
境界点取得部32は、探索用指標を用いたパラメータ間の比較によって、図3に示す境界3a上の任意の点(以下、境界点と言う)を取得する処理部である。例えば、DCシミュレータ41又は過渡シミュレータ42を実行して取得した探索用指標に基づいて最急降下法等が用いられる。
【0030】
最確点決定部33は、境界点取得部32によって得られた境界点を中心に、正規分布に従ってサンプル点をばら撒くためのばらつき分布を与えることによって判定指標に基づくシミュレーションを行い、境界3a上又は境界3a近傍にて設計中心に一番近い点MPP'を求め、求めた点MPP'を中心として同様にシミュレーションを行うことを繰り返して、境界3a上又は境界3a近傍にて設計中心に一番近い点として収束した点を記憶領域の最確点29として出力する処理部である。例えば、モンテカルロシミュレータ43に中心点に応じたばらつき分布を与えて実行させる。これは境界点の中心を探索する手法であれば、格子点を発生させる方法などでも良い。また、歩留計算には設計中心に一番近い点が重要であるため、原点に近い点を探索するが、設計最適化の際は、判定指標や探索指標とは別の性能指標を導入し、同様に開始点の周辺で判定指標をみたし性能指標の最もよい点を繰り返し見つけることで、探索を行っても良い。
【0031】
DCシミュレータ41は、SRAMセル1の論理回路データを用いて、SRAMセル1のSNM(Static Noise Margin)の大きさに基づいて安定性評価を行うためのシミュレータである。例えば、SPICEシミュレータを用いて、SRAMセル1の特性を解析し、解析結果から探索用指標の値としてマージンを取得する。
【0032】
過渡シミュレータ42は、SRAMセル1の論理回路データに対して設計パラメータを与えて、SRAMセル1の動作を時間軸に沿って評価するためのシミュレータである。
【0033】
モンテカルロシミュレータ43は、与えられた設計パラメータを中心とする所定の範囲でばらつき分布に基づくサンプル値を用いてシミュレーションを行い、判定指標に基づいて判定結果を出力する。
【0034】
図6は、設計空間において良不良の境界を特定するための処理の全体を説明するための図である。図6において、シミュレーション装置100は、探索用指標設定部31によって、探索用指標を設定する(ステップS10)。例えば、ユーザから探索用指標を取得するための画面を表示ユニット13に表示する。表示した画面によって、DCシミュレータ41か過渡シミュレータ42かを選択させるようにしてもよい。
【0035】
DCシミュレータ41が選択された場合には、SRAMセル1の安定性を示すSNMの大きさを探索用指標として設定する。過渡シミュレータ42を選択した場合には、後述される種々の探索用指標のいずれかを選択可能とすることにより設定する。この場合、探索用指標として、電圧、電流等の探索用項目、最大値、最小値、差分等の探索用基準値、探索用時刻等の複数の設定項目を設ければ良い。これらの設定項目は、SRAMセル1の動作中における優劣を評価するために設定される。
【0036】
シミュレーション装置100は、境界点取得部32によって、探索用指標に基づいて最急降下法で境界点を決定する(ステップS20)。境界点取得部32は、記憶領域に予め格納されている設計パラメータ21を原点とする設計空間3において、原点からの所定範囲で、探索用指標に基づく最急降下法を用いて、最も探索用指標がゼロに近い探索点を決定し、決定した探索点からの所定範囲で、探索用指標に基づく最急降下法を用いて次の探索点を決定することを繰り返して、境界3a上の任意の境界点を取得する。
【0037】
シミュレーション装置100は、最確点決定部33によって、境界点取得部32によって取得した境界点の周りにばらつき分布に基づいてばら撒いた各サンプル点の判定指標から最確点を決定する(ステップS30)。最確点決定部33は、モンテカルロシミュレータ43を実行して最確点を決定し、記憶領域に最確点29として格納する。
【0038】
以下、判定指標について説明する。先ず、DCシミュレータ41によるDCシミュレーション結果を判定指標とする例について図7で説明する。図7は、DCシミュレーション結果を判定指標とする例を示す図である。DCシミュレータ41によってSRAMセル1の2つのノードを切り離し別々にその入出力の電圧特性をシミュレーションすると、例えば、図7に示すようなDCシミュレーション結果が得られる。図7において、2つの正方形7a及び7bがSNMの大きさを示しており、小さい方の対角線の長さを探索用指標として用い、図3に示すOK領域からNG領域へと探索する場合には、所定範囲の設計パラメータ間においてより小さい探索用指標を持つ設定パラメータが探索点となる。
【0039】
例えば、SNMを適応した例として、探索用指標と判定指標とを組み合わせた指標Uを使うことが考えられる。下記に示す擬似コードによる処理では、判定指標は、OKのときに正又はゼロの値を返し、NGのときに負の値を返す。設計空間3において原点から境界3aまでを探索する探索領域で、探索指標がとる値の絶対値の最大値より大きな数値αを使って、
U=探索指標+α (判定指標>=0のとき)
U=探索指標−α (判定指標<0のとき)
とし、擬似コードは、例えば、
If(判定指標>=0){
U=探索指標+α
}else{
U=探索指標−α

のようにする。これにより、Uは判定指標がOKの時は0以上の値、NGの時は0未満の値を返す。また、判定指標がOKの領域だけ、NGの領域だけを見ると、後述されるような探索指標と同じ最急降下方向を求めることができる。OKとNGの境界で値が飛ぶが処理上問題とはならない。
【0040】
次に、過渡シミュレーションを用いた判定指標の例のうち、一又は複数の所定時刻の状態を探索用指標として用いる例について図8から図14で説明する。所定時刻の状態とは、例えば、電圧値、電流値等である。図8から図14中、左側縦軸に設計空間を示し、横軸に時間を示す。判定時刻tでOK(良)又はNG(不良)による判定指標を示す。
【0041】
図8は、所定時刻の状態を判定指標とする第一の例を示す図である。図8において、時刻tは、判定時刻tよりも過去の時刻であり、探索用指標となる状態を得るために設定された時刻である。
【0042】
この第一の例では、判定時刻tで、設計パラメータ1と設計パラメータ4とが判定指標のOKを示し、設計パラメータ2と設計パラメータ3とが判定指標のNGを示す。判定時刻tでは、設計パラメータ1と設計パラメータ4との優劣は判別できない。一方、探索用指標の時刻tでは、設計パラメータ1と設計パラメータ4との状態に差があり、優劣を判定することが可能となる。この場合、設計パラメータ4の方が設計パラメータ1より良い状態であることが判る。同様に、設計パラメータ2と設計パラメータ3との間では、設計パラメータ3の方が設計パラメータ2より悪い状態であることが判る。
【0043】
このように、探索用指標として時刻を指定することで、過渡シミュレータの結果から指定された時刻の状態を取得し、設定パラメータ間で比較することによって同一の判定指標内で優劣を判別することができる。
【0044】
図9は、所定時刻の状態を判定指標とする第二の例を示す図である。図9に示す第二の例では、複数の探索用指標を設定した場合を示す。図9において、時刻t及びtは、判定時刻tよりも過去の時刻であり、時刻tは時刻tよりも更に過去の時刻である。また、探索用指標として、時刻t及びt毎に異なった状態とすることもできる。
【0045】
例えば、時刻tでは電流値を用いて優劣を判断し、時刻tでは電圧値を用いて優劣を判断する。このような2つの探索用指標の使い方として、判定時刻tに近い時刻tで優劣を判断できない場合に時刻tで別の値で判断する。
【0046】
この第二の例では、探索用指標による時刻tでの電流値による、判定指標でOKとなる設計パラメータ1と設計パラメータ4との優劣の判断がつかないが、探索用指標による時刻tでの電圧値では、設計パラメータ1が設計パラメータ4より優良であることが判る。一方、判定指標でNGとなる設計パラメータ2と設計パラメータ3に関しては、最初の探索用指標による時刻tでの電流値によって設計パラメータ3が設計パラメータ2より劣っていると判断できるため、次の探索用指標による時刻tでの比較を省略しても良い。
【0047】
図10は、所定時刻の状態を判定指標とする第三の例を示す図である。図10に示す第三の例では、探索用指標となる時刻を適宜前後にずらして優劣を判断する。図10において、時刻t及びtは、判定時刻tよりも過去の時刻であり、時刻tで判断できない場合に、例えば、更に過去の時刻tへずらして状態を比較する。ずらし方は、過去の時刻とは限らず、時刻を前後させるようにしてもよい。
【0048】
この第三の例では、探索用指標となる時刻tでは、判定指標のOKとなる設計パラメータAと設計パラメータB間の優劣を判別できず、時刻tで設計パラメータBが設計パラメータAより優良であると判断できる。
【0049】
図11は、所定時刻の状態を判定指標とする第四の例を示す図である。図11に示す第四の例では、探索用指標を3以上の時刻に設定して優劣を評価し、多数決をとって2つの設計パラメータの優劣を判断する。図11において、時刻t、時刻t、及び時刻tは判定時刻tよりも過去の時刻であり、時間経過に従って設定される。
【0050】
この第四の例では、探索用指標となる時刻t、時刻t、及び時刻tにおける、設計パラメータAと設計パラメータB間の優劣の判断によって、時刻tで設計パラメータAが優良と判断され、時刻tで設計パラメータBが優良と判断され、時刻tで設計パラメータBが優良と判断される。従って、設計パラメータBが優良と判断される回数が多いため、設計パラメータBが設計パラメータAより優良であると判断できる。
【0051】
図12は、所定時刻の状態を判定指標とする第五の例を示す図である。図12に示す第五の例では、探索用指標の値が単位時間当たり一定以上変化する時刻の早い遅いで2つの設計パラメータの優劣を判断する。図12において、時刻t及び時刻tは判定時刻tよりも過去の時刻であり、各設計パラメータにおいて探索用指標の値が単位時間当たり一定以上変化する時刻を示している。
【0052】
この第五の例では、時刻tで設計パラメータAの探索用指標の値が単位時間当たり一定以上変化し、時刻tで設計パラメータBの探索用指標の値が単位時間当たり一定以上変化している。時刻tが時刻tより早い時刻であることから、設計パラメータAがより早く判定指標のOKの状態へと以降していると判断でき、設計パラメータAが設計パラメータBより優良であると判断できる。
【0053】
図13は、所定時刻の状態を判定指標とする第六の例を示す図である。図13に示す第六の例では、探索用指標の値が単位時間当たり一定以上変化する時刻の早い遅いで2つの設計パラメータの優劣を判断する。図13において、時刻t及び時刻tは判定時刻tよりも過去の時刻であり、各設計パラメータにおいて探索用指標の値が閾値以上変化する時刻を示している。
【0054】
この第六の例では、時刻tで設計パラメータAの探索用指標の値が閾値13a以上変化し、時刻tで設計パラメータBの探索用指標の値が閾値13a以上変化している。時刻tが時刻tより早い時刻であることから、設計パラメータBがより早く判定指標のOKの状態へと変化していると判断でき、設計パラメータBが設計パラメータAより優良であると判断できる。
【0055】
図14は、所定時刻の状態を判定指標とする第七の例を示す図である。図14に示す第七の例では、探索用指標の時刻を複数設定し、3以上の複数の設計パラメータ内で、ある時刻では優劣の判断ができない設計パラメータが存在する場合、他の時刻での優劣の判断を含めて、全ての設計パラメータについて優劣を判断する。図14において、時刻t及び時刻tは判定時刻tよりも過去の時刻であり、時刻tで優劣の判断ができない設計パラメータが存在する場合、更に時刻tよりも過去の時刻tにて優劣の判断を行い、時刻t及び時刻tでの両方の判断結果に基づいて、全ての設計パラメータについて優劣を判断する。
【0056】
この第七の例では、時刻tでは、設計パラメータCより設計パラメータAと設計パラメータBとが優良であるが、設計パラメータAと設計パラメータB間では優劣の判断ができない。例えば、優劣関係を「A=B>C」のように表すことができる。更に、時間を遡った時刻tでは、設計パラメータAが設計パラメータBと設計パラメータCより優良であるが、設計パラメータBと設計パラメータC間では優劣の判断ができない。優劣関係は「A>B=C」のように表すことができる。従って、優劣関係「A>B>C」が成立し、設計パラメータAが最も優良であり、次に設計パラメータB、更に設計パラメータCの順に優良であると判断できる。
【0057】
過渡シミュレーションにおいて判定指標及び探索用指標を用いた例には、上述した探索用指標を時刻とその時刻の状態を用いて比較する手法を含む他、図2に示す過渡シミュレーション中の電位差の最小値を探索用指標とすることも含むことを留意しておく。詳細は図2で説明されているため省略する。
【0058】
次に、境界3a上の任意の境界点を探索するために、境界点取得部32によって行われる探索用指標に基づく最急降下法について説明する。図15は、探索用指標に基づく最急降下法を説明するための図である。
【0059】
図15中、探索点とは、原点を開始点とする設計パラメータであり、設計変数の個数分の参照点における探索用指標の値から定められ、OK領域とNG領域の境界3aの方向へ探索する点である。参照点とは、探索点から次の探索点を定めるために参照される各設計変数軸方向に所定値を加算して得られる点である。探索点同様に、参照点も設計パラメータである。
【0060】
また、探索点及び参照点は、設計変数の値と探索用指標の値とを示す座標で示される。本実施例に係るn次元の設計空間では、設計変数のn個と探索用指標とでn+1個の数値で表される。図15に示す例では、説明を簡潔にするため2個の設計変数による2次元の設計空間が示され、座標は、設計変数v1、設計変数v2、探索用指標の3個の数値を含む。
【0061】
図15において、境界点取得部32は、設計空間3において、原点から開始し、原点を探索点P0とし、探索用指標設定部31によって設定された探索用指標の値を算出する(ステップS0)。探索点P0は(0、0、10)で表される。
【0062】
境界点取得部32は、探索点P0から各設計変数を1増やした参照点P0aと参照点P0bとを求め、参照点P0aと参照点P0bとにおける探索用指標の値を算出する(ステップS1)。参照点P0aは(1、0、8)で表され、参照点P0bは(0、1、9)で表される。
【0063】
境界点取得部32は、探索点P0、参照点P0a、及び参照点P0bから最も探索用指標の値が小さくなる方向を求めて1移動した点を探索点P1とする(ステップS2)。探索点P1は(0.9、0.5、7.7)で表される。
【0064】
そして、探索点P1から各設計変数を1増やした参照点P1aと参照点P1bとを求め、参照点P1aと参照点P1bとにおける探索用指標の値を算出する(ステップS3)。参照点P1aは(1.9、0.5、6.2)で表され、参照点P1bは(0.9、1.5、4.7)で表される。
【0065】
続けて、境界点取得部32は、探索点P1、参照点P1a、及び参照点P1bから最も探索用指標の値が小さくなる方向を求めて1移動した点を探索点P2とする(ステップS4)。探索点P2は(1.4、1.4、4.7)で表される。
【0066】
探索点P2から各設計変数を1増やした参照点P2aと参照点P2bとを求め、参照点P2aと参照点P2bとにおける探索用指標の値を算出する(ステップS5)。
【0067】
更に、境界点取得部32は、探索点P2、参照点P2a、及び参照点P2bから最も探索用指標の値が小さくなる方向を求めて1移動した点を探索点P3とする(ステップS6)。同様に、探索点P3に対して、参照点P3aと参照点P3bと各々の探索用指標の値を算出する(ステップS7)。
【0068】
そして、境界点取得部32は、探索点P3、参照点P3a、及び参照点P3bから最も探索用指標の値が小さくなる方向を求めて1移動した点を探索点P4とする(ステップS8)。同様に、探索点P4に対して、参照点P4aと参照点P4bと各々の探索用指標の値を算出する(ステップS9)。
【0069】
境界点取得部32は、同様の処理を、探索用指標の値がゼロになるまで繰り返すことによって、境界3a上の任意の境界点Pn(4、3、0)に到達する。
【0070】
上述した図15に示す探索用指標に基づく最急降下法では、探索点Piから参照点Pia及び参照点Pibを決めるときに、夫々座標を1だけ大きくする例で説明しているが、参照点Pia及び参照点Pibの探索用指標の値を求めるのはPiにおける最も探索用指標の値が減る方向、つまり勾配の大きな方向を決めることを目的としているため、参照点Pia及び参照点Pibの位置はそれに適したものであれば良い。増減する値を「1」以外の値であっても良く、また、探索点Piから見た方向もプラス方向ではなくマイナス方向であっても良い。
【0071】
また、探索点Piでの勾配から次の探索点Pi+1の方向が決まった後、その方向へ距離1進めて探索点Pi+1としているが、必ずしも距離が「1」であるとは限らない。進む距離が大きすぎると勾配が変わることもあるため、正確さを求める場合には進む距離を小さくする。逆に、設計空間3内の各点での勾配が一定の場合には「1」より大きく進めても誤差を生じないため、大きく進めるように距離を制御する。
【0072】
更に、探索点Piの探索用指標の値が「0」に近いところでは、探索点Piで、参照点Pia及び参照点Pibの探索用指標の値から探索点Piから進む方向とその方向へ単位長進んだときの探索用指標の変化量ΔVを概算し、例えば、(探索点Piの探索用指標の値)/ΔVの計算式を用いて探索点Piから進む距離を求め、その距離だけ進んだところを次の探索点Pi+1とする。
【0073】
図16は、境界点取得部32によって実行される探索用指標に基づく最急降下法のフローチャート図である。図16において、境界点取得部32は、記憶領域から設計パラメータ21(図5)を読み出し、設計パラメータ21を原点とする設計空間3において、原点を最初の探索点Pとする(ステップS41)。
【0074】
そして、境界点取得部32は、探索点Pの探索用指標の値を求める(ステップS42)。探索用指標の値は、関数f(P)で与えられるものとする。探索点Pを設計空間3内の各軸方向へ夫々所定距離だけ移動した参照点Pa、Pb、Pc...を軸の個数分作成する(ステップS43)。
【0075】
境界点取得部32は、作成した参照点Pa、Pb、Pc...の探索用指標の値を求める(ステップS44)。各参照点Pa、Pb、Pc...の探索用指標の値は、探索点Pの場合と同様に、関数f(Pa)、関数f(Pb)、関数f(Pc)...で与えられるものとする。
【0076】
次に、境界点取得部32は、探索点Pから移動する方向及び距離を決め、その点を仮探索点Qとし(ステップS45)、探索用指標の値を関数f(Q)によって求める(ステップS46)。
【0077】
境界点取得部32は、関数f(Q)で求めた探索用指標の値がゼロに十分近いか否かを判断する(ステップS47)。関数f(Q)の値がゼロに十分近いことを示す閾値以下であるか否かが判断される。関数f(Q)の値がゼロに十分近い場合、ステップS50へと進む。
【0078】
一方、関数f(Q)の値がゼロに十分近いことを示す閾値より大きい場合、境界点取得部32は、更に、仮探索点Qが探索点Pに十分近いか否かを判断する(ステップS48)。仮探索点Qと探索点Pの距離が十分近いことを示す閾値以下であるか否かが判断される。仮探索点Qと探索点Pの距離が十分近い場合、ステップS50へと進む。
【0079】
一方、仮探索点Qと探索点Pの距離が十分近いことを示す閾値より大きい場合、境界点取得部32は、仮探索点Qを探索点Pとして(ステップS49)、ステップS42へ戻り、上述同様の処理を実行する。
【0080】
ステップS47にて関数f(Q)の値がゼロに十分近いと判断した場合、又は、ステップS48にて仮探索点Qと探索点Pの距離が十分近いことを示す閾値より小さいと判断した場合、境界点取得部32は、仮探索点Qを境界点MPP'として記憶領域に出力し(ステップS50)、この処理を終了する。
【0081】
次に、最確点を探索するために、最確点決定部33がモンテカルロシミュレータ43を用いて行うモンテカルロシミュレーションについて説明する。図17は、境界点からモンテカルロシミュレーションによって最確点を決定する方法を説明するための図である。
【0082】
図17において、最確点決定部33は、モンテカルロシミュレータ43を実行して、設計空間3において、境界点取得部32によって求められた境界点MPP'の周りにばらつき分布を用いてサンプル点をばら撒き、OK又はNGを判定する(ステップS61)。そして、最確点決定部33は、NGの判定となったサンプル点のうちで一番原点に近いサンプル点へと移動する(ステップS62)。
【0083】
最確点決定部33は、モンテカルロシミュレータ43を実行して、移動したサンプル点を中心にして、その周りにばらつき分布を用いてサンプル点をばら撒き、OK又はNGを判定する(ステップS63)。そして、最確点決定部33は、NGの判定となったサンプル点のうちで一番原点に近いサンプル点へと移動する(ステップS64)。
【0084】
このように、NGの判定となったサンプル点のうちで一番原点に近いサンプル点の原点からの距離が中心のサンプル点の原点からの距離より近くなくなり移動できなくなるまで同様の処理を繰り返すことによって、最確点決定部33は、OK領域とNG領域の境界3a近傍で原点に一番近いサンプル点を最確点MPPとする(ステップS65)。
【0085】
図18は、最確点決定部33によって実行される判定指標に基づく最確点を決定する処理のフローチャート図である。図18において、最確点決定部33は、記憶領域から境界点取得部32が探索用指標で求めた境界点MPP'を読み出して、最初の中心点Pcとする(ステップS71)。
【0086】
そして、最確点決定部33は、モンテカルロシミュレータ43を実行して、中心点Pcの周りにサンプル点をばら撒き(ステップS72)、各サンプル点の判定指標によるOK又はNGを判定する(ステップS73)。モンテカルロシミュレータ43は、例えば、1000点以上のサンプル点(つまり、設計パラメータ)を生成して、各サンプル点の動作シミュレーションの実行後に得られる判定指標に基づく判定を行う。
【0087】
判定指標に基づく判定では、探索用指標とは異なり、中心点Pcを設計パラメータとした場合の製造ばらつきによって不良品が発生すると判断されるサンプル点(設計パラメータ)を得ることができる。
【0088】
最確点決定部33は、モンテカルロシミュレータ43の実行結果を参照して、サンプル点のうち、NG(不良)と判断され、かつ、原点に一番近い点Qを決定する(ステップS74)。
【0089】
そして、最確点決定部33は、中心点Pcと点Qが十分近いか否かを判断する(ステップS75)。中心点Pcと点Qとの距離が十分近いことを示す閾値以下であるか否かが判断される。距離が閾値以下である場合、ステップS78へと進む。
【0090】
一方、中心点Pcと点Qとの距離が十分近いことを示す閾値より大きい場合、最確点決定部33は、更に、原点からの中心点Pcの距離が原点からの点Qの距離以下であるか否かを判断する(ステップS76)。原点からの中心点Pcの距離が原点からの点Qの距離より大である場合、点Qを中心点Pcとして(ステップS77)、ステップS72へと戻り、上記同様の処理を実行する。
【0091】
ステップS75にて中心点Pcと点Qが十分近いと判断した場合、又は、ステップS76にて原点からの中心点Pcの距離が原点からの点Qの距離以下であると判断した場合、最確点決定部33は、中心点Pcを最確点MPPとし記憶領域の最確点29に出力し(ステップS78)、この処理を終了する。
【0092】
上述したように、設計パラメータに対して、製造ばらつきのOK領域とNG領域(良不良)の境界上の任意の境界点を、良不良を判定する判定指標とは別の同一判定領域において動作の安定性の程度等の優劣を判定するための探索用指標を用いることによって特定することができる。
【0093】
また、境界点を中心点として良不良を判定する判定指標によるモンテカルロシミュレーションを行うことによって良不良の境界を特定することができる。更に、境界のうち原点から一番近い最確点や、判定指標を満たし最も性能の良い設計最適点を特定することができる。
【0094】
上記実施例の説明では、探索用指標の値を取得するために、DCシミュレーションや過渡シミュレーションを実行することを説明したが、これらシミュレーションの実行に限定されるものではなく、設定パラメータ間の優劣を判定可能な計算方法であっても良い。
【0095】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0096】
以上の説明に関し、更に以下の項を開示する。
(付記1)
装置や回路等の動作をシミュレーションするシミュレーション方法であって、コンピュータが、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行することを特徴とするシミュレーション方法。
(付記2)
前記特定された境界を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い不良条件を見つけることを、1回以上繰り返す手順を実行することを特徴とする、不良確率に影響の大きい原点に近い境界をより精度良く見つける請求項1記載のシミュレーション方法。
(付記3)
前記探索用指標は、前記良不良の判定時刻より過去の時刻における前記判定指標と相関をもった動作状態を示すことを特徴とする、付記1記載のシミュレーション方法。
(付記4)
前記探索用指標は、前記良不良の判定時刻以前の前記判定指標と相関をもった所定動作状態となった時刻を示すことを特徴とする、付記1記載のシミュレーション方法。
(付記5)
前記探索用指標は、時刻とは無関係の直流特性等をシミュレーション又は計算によって求め使用することを特徴とする付記1記載のシミュレーション方法。
(付記6)
前記探索用指標は、2以上の探索用指標の組み合せであることを特徴とする、付記1記載のシミュレーション方法。
(付記7)
前記判定指標の結果と順序関係を一致させるため、判定指標の結果に従って、例えば元の探索指標に定数を加算、乗算することにより生成した新たな探索指標を用いることを特徴とする、付記1記載のシミュレーション手法。
(付記8)
前記コンピュータが、
前記探索用指標をユーザに設定させる探索用指標設定手順を
更に実行することを特徴とする、付記1乃至7のいずれか一項記載のシミュレーション方法。
(付記9)
装置や回路等の動作をシミュレーションするシミュレーション装置であって、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手段を有することを特徴とするシミュレーション装置。
(付記10)
前記特定された境界を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い不良条件を見つけることを、1回以上繰り返す手段有することを特徴とする、不良確率に影響の大きい原点に近い境界をより精度良く見つける、付記9記載のシミュレーション装置。
(付記11)
コンピュータに装置や回路等の動作をシミュレーションさせるためのコンピュータ実行可能なプログラムであって、該コンピュータに、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行することを特徴とする、コンピュータ実行可能なプログラム。
(付記12)
前記特定された境界を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い不良条件を見つけることを、1回以上繰り返す手順を実行することを特徴とする、不良確率に影響の大きい原点に近い境界をより精度良く見つける、付記11記載のコンピュータ実行可能なプログラム。
(付記13)
コンピュータに装置や回路等の動作をシミュレーションさせるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、該コンピュータに、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行することを特徴とするコンピュータ読み取り可能な記憶媒体。
(付記14)
前記特定された境界を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い不良条件を見つけることを、1回以上繰り返す手順を実行することを特徴とする、不良確率に影響の大きい原点に近い境界をより精度良く見つける、付記13記載のコンピュータ読み取り可能な記憶媒体。
【符号の説明】
【0097】
1 SRAMセル
3 設計空間
3a 境界
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライバ
19 記憶媒体
21 設計パラメータ
29 最確点
31 探索用指標設定部
32 境界点取得部
33 最確点決定部
41 DCシミュレータ
42 過渡シミュレータ
43 モンテカルロシミュレータ
100 シミュレーション装置
B バス

【特許請求の範囲】
【請求項1】
装置又は回路の動作をシミュレーションするシミュレーション方法であって、コンピュータが、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行することを特徴とする、シミュレーション方法。
【請求項2】
前記特定された境界上の点を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い、または性能の良い境界上の設計パラメータを見つけることを、1回以上繰り返す手順を実行することを特徴とする、請求項1記載のシミュレーション方法。
【請求項3】
前記探索用指標は、前記良不良の判定時刻より過去の時刻における前記判定指標と相関をもった動作状態を示すことを特徴とする請求項1記載のシミュレーション方法。
【請求項4】
前記探索用指標は、前記良不良の判定時刻以前の前記判定指標と相関をもった所定動作状態となった時刻を示すことを特徴とする請求項1記載のシミュレーション方法。
【請求項5】
前記探索用指標は、時刻とは無関係の電気特性をシミュレーション又は計算によって求め使用することを特徴とする請求項1記載のシミュレーション方法。
【請求項6】
前記探索用指標は、2以上の探索用指標の組み合せであることを特徴とする請求項1記載のシミュレーション方法。
【請求項7】
装置又は回路の動作をシミュレーションするシミュレーション装置であって、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手段を有することを特徴とするシミュレーション装置。
【請求項8】
前記特定された境界上の点を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い、または性能の良い境界上の設計パラメータを見つけることを、1回以上繰り返す手段有することを特徴とする、請求項7記載のシミュレーション装置。
【請求項9】
コンピュータに装置又は回路の動作をシミュレーションさせるためのコンピュータ実行可能なプログラムであって、該コンピュータに、
コンピュータに装置又は回路の動作をシミュレーションさせるためのコンピュータ実行可能なプログラムであって、該コンピュータに、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行させることを特徴とする、コンピュータ実行可能なプログラム。
【請求項10】
前記特定された境界上の点を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い、または性能の良い境界上の設計パラメータを見つけることを、1回以上繰り返す手順を実行することを特徴とする、請求項9記載のコンピュータ実行可能なプログラム。
【請求項11】
コンピュータに装置又は回路の動作をシミュレーションさせるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、該コンピュータに、
任意の設計パラメータを原点とした設計空間における製品の良不良の境界を、動作の良不良を判別する判定指標とは別の動作状態に基づいて定義した探索用指標に基づいて探索することによって特定する境界特定手順を実行することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【請求項12】
前記特定された境界上の点を開始点とし、その近傍に発生させた多くの設計パラメータ値を判定指標により判定し、より原点に近い、または性能の良い境界上の設計パラメータを見つけることを、1回以上繰り返す手順を実行することを特徴とする、請求項11記載のコンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−192156(P2011−192156A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2010−59337(P2010−59337)
【出願日】平成22年3月16日(2010.3.16)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】