説明

自動設計支援プログラム、方法及び装置

【課題】歩留り率と性能との関係をより適切に評価できるようにする。
【解決手段】本方法は、所定の設計変数について1又は複数の設計変数値セットを生成し、各設計変数値セットについて製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、それらの組み合わせ毎に、回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、各設計変数値セットについてパラメータ値セット毎に、それらの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された組み合わせの数の比により歩留り率を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、回路の自動設計支援技術に関する。
【背景技術】
【0002】
アナログ回路の高速化に伴い、微細な素子を用いることが多くなってきているが、微細な素子は、その性能のばらつきが大きいことが問題である。このようなばらつきは、歩留りにも影響を与えることになるため、製造プロセスを改善するだけではなく、適切な設計を行うことで、歩留りを高くすることが望まれている。但し、一般的には、歩留りと性能とは二律背反性があるので、歩留りと性能とを適切に評価しつつ回路設計を行うことが好ましい。
【0003】
一方、回路の自動設計を行う際の手法には、多目的最適化と単目的最適化とが存在している。多目的最適化は、解空間において他の解に支配(dominate)されない解(非劣解)の集合(すなわち解空間におけるパレート(Pareto)曲線又は曲面)を求める手法である。パレート曲線又は曲面については、後に詳細に述べる。一方、単目的最適化では、所定の評価関数の値が最小になる点を設計空間において探索する手法である。単目的最適化では、要求仕様を実現するような解が得られない場合、要求仕様を変更した上で、再度最適化処理を実施する必要があり、効率が悪い。また、単目的最適化では、初期値が不適切な場合には、設計空間における探索をより多く行うことになる。これに対して、多目的最適化は、一般的には非劣解集合を求めるため処理量が多くなるが、一度非劣解集合を生成してしまえば、その後の処理量は少なくて済むという利点がある。
【0004】
なお、アナログ回路の設計について多目的最適化を適用した例は既に存在している。また、歩留りを考慮している従来技術も存在しており、当該従来技術では、PVT(Process, Voltage, Temperature)変動の、性能への影響を固定することで、図1に示すように固定の歩留り率を想定して、その際のパレート曲線を生成するものである。図1は、周波数帯域とゲインという性能についての性能空間において、歩留り20%、50%及び80%の場合のパレート曲線を例示したものであり、歩留り率固定でパレート曲線を独立に算出している。このような手法では、歩留り率を個別に設定してパレート曲線を生成するので、処理効率が悪い。また、歩留り率毎にパレート曲線が生成されるので、設計毎に歩留り率と性能との関係を特定できるわけではない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−118719号公報
【特許文献2】特開2009−169558号公報
【特許文献3】特開2005−70849号公報
【非特許文献】
【0006】
【非特許文献1】TIWARY SAURABH K et al,"Generation of Yield-Aware Pareto Surfaces for Hierarchical Circuit Design Space Exploration", In DAC 2006Proceedings of the 43rd annual Design Automation Conference,July 24-28, 2006
【非特許文献2】YU GUO et al,"Yield-Aware Analog Integrated Circuit Optimization Using Geostatistics Motivated Performance Modeling", In ICCAD 2007Proceedings of the 2007 IEEE/ACM International Conference on Computer-Aided Design,November 5-8, 2007
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本技術の目的は、歩留り率と性能との関係をより適切に評価できるようにする、アナログ回路の自動設計支援技術を提供することである。
【課題を解決するための手段】
【0008】
本自動設計支援方法は、(A)回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、(B)設定に従って、所定の設計変数について複数の設計変数値セットを生成し、複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、(C)データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、データ格納部に格納するステップと、(D)データ格納部に格納されている複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する設計変数値セット及び歩留り率を性能歩留り空間データ格納部に格納するステップとを含む。
【発明の効果】
【0009】
アナログ回路の自動設計支援技術において、歩留り率と性能との関係をより適切に評価できるようになる。
【図面の簡単な説明】
【0010】
【図1】図1は、従来技術の処理結果を説明するための図である。
【図2】図2は、本技術の実施の形態に係るパレートデータ生成装置の機能ブロック図である。
【図3】図3は、回路構成ライブラリ格納部に格納されるデータを模式的に示す図である。
【図4】図4は、パレートデータ生成装置のメインの処理フローを示す図である。
【図5A】図5Aは、PVTパラメータ格納部に格納されるデータの一例を示す図である。
【図5B】図5Bは、設計変数データ格納部に格納されるデータの一例を示す図である。
【図6】図6は、シミュレーション結果データ格納部に格納されるデータの一例を示す図である。
【図7】図7は、周辺回路データの一例を示す図である。
【図8】図8は、シミュレーション結果データ格納部に格納されるデータの一例を示す図である。
【図9】図9は、YP空間写像処理の処理フローを示す図である。
【図10】図10は、歩留り率の計算について説明するための図である。
【図11】図11は、YP空間データ格納部に格納されるデータの一例を示す図である。
【図12】図12は、性能空間におけるシミュレーション結果をプロットした状態を示す図である。
【図13】図13は、YP空間の一例を示す図である。
【図14A】図14Aは、ランキング処理の処理フローを示す図である。
【図14B】図14Bは、支配関係を説明するための模式図である。
【図15】図15は、ランキング処理の処理フローを示す図である。
【図16】図16は、ランキング結果格納部に格納されるデータの一例を示す図である。
【図17】図17は、パレートデータ生成装置のメインの処理フローを示す図である。
【図18】図18は、ソーティング処理の処理フローを示す図である。
【図19】図19は、YEパレート・フロント生成処理の処理フローを示す図である。
【図20】図20は、性能空間の支配関係及びパレートを説明するための図である。
【図21】図21は、ソーティング結果データ格納部に格納されるデータの一例を示す図である。
【図22】図22は、モンテカルロ(Monte-Carlo)シミュレーションの例を示す図である。
【図23】図23は、YP空間における設計曲線の一例を示す図である。
【図24】図24は、ランキング処理を説明するための図である。
【図25】図25は、ソーティング処理を説明するため図である。
【図26】図26は、パレートデータ格納部に格納されるデータの一例を示す図である。
【図27】図27は、パレートデータ格納部に格納されるデータの一例を示す図である。
【図28】図28は、YP空間におけるYEパレート・フロントの一例を示す図である。
【図29】図29は、自動最適回路設計装置の機能ブロック図である。
【図30】図30は、要求仕様データ格納部に格納されるデータの一例を示す図である。
【図31】図31は、最適解生成処理の処理フローを示す図である。
【図32】図32は、歩留り率を指定した際に得られるパレート曲線の一例を示す図である。
【図33】図33は、仮最適解探索処理の処理フローを示す図である。
【図34】図34は、仮最適解の探索を模式的に示す図である。
【図35】図35は、仮最適解に対応する回路構成を特定する処理を説明するための模式図である。
【図36】図36は、コンピュータの機能ブロック図である。
【図37】図37は、自動設計支援方法の処理フローを示す図である。
【図38】図38は、自動設計支援装置の機能ブロック図である。
【発明を実施するための形態】
【0011】
図2に、本技術の実施の形態に係る自動回路設計支援装置におけるパレートデータ生成装置の機能ブロック図を示す。なお、本実施の形態では、自動回路設計支援装置は、以下で述べるパレートデータを生成するパレートデータ生成装置と、パレートデータを用いて要求仕様に対して設計変数の最適値を算出する処理を行う自動最適回路設計装置とを含む。なお、これらの装置は一体であっても良い。
【0012】
パレートデータ生成装置は、入力部1と、PVTパラメータ格納部3と、設計変数データ格納部5と、設定データ格納部7と、仕様データ格納部9と、回路構成ライブラリ格納部11と、テストベンチデータ格納部13と、シミュレータ制御部15と、シミュレーション結果格納部17と、YP(Yield-Embedded Performance)空間写像処理部19と、YP空間データ格納部21と、ランキング処理部23と、ランキングデータ格納部25と、ソーティング処理部27と、ソーティング結果データ格納部29と、パレート生成部31と、パレートデータ格納部33とを有する。なお、パレートデータ生成装置は、回路シミュレータ200を含む場合もあれば、回路シミュレータ200を有する装置とは別装置である場合もある。
【0013】
入力部1は、例えばユーザから受け付けたデータを、PVTパラメータ格納部3と、設計変数データ格納部5と、設定データ格納部7と、仕様データ格納部9とに格納する。シミュレータ制御部15は、PVTパラメータ格納部3と設計変数データ格納部5と設定データ格納部7と仕様データ格納部9と回路構成ライブラリ格納部11とテストベンチデータ格納部13とソーティング結果データ格納部29とに格納されているデータを用い、パレート生成部31及び回路シミュレータ200と協働して処理を実施する。シミュレータ制御部15は、中間的な処理結果及び最終的な処理結果であるシミュレーション結果データをシミュレーション結果データ格納部17に格納する。YP空間写像処理部19は、シミュレーション結果データ格納部17に格納されているデータを用いて処理を行い、処理結果をYP空間データ格納部21に格納する。ランキング処理部23は、YP空間データ格納部21とソーティング結果データ格納部29とに格納されているデータを用いて処理を行い、処理結果をランキングデータ格納部25に格納する。ソーティング処理部27は、ランキングデータ格納部25とYP空間データ格納部21とに格納されているデータを用いて処理を行い、処理結果をソーティング結果データ格納部29に格納する。パレート生成部31は、ソーティング結果データ格納部29に格納されているデータを用いて処理を行い、処理結果をパレートデータ格納部33に格納する。
【0014】
なお、複雑になるので図示していないが、設定データ格納部7に格納されたデータについては、シミュレータ制御部15だけではなく、ランキング処理部23やソーティング処理部27などにも用いられる。
【0015】
回路構成ライブラリ格納部11には、例えば、図3に示すようなデータ構造にて回路構成を保持している。すなわち、各回路構成に当該回路構成の性質や機能を表すタグを付して、図3に示すように階層型のデータ構造を構成し、特定の性質や機能を有する回路構成を検索できるようにしている。図3の例では、第1階層としてRF回路、フィルタ、リニアアンプ、レギュレータといった機能分けが行われており、RF回路の第2階層としてLNA(低雑音増幅器:Low Noise Amplifier)、VCO(電圧制御発信器:Voltage Controlled Oscillator)、ミキサー、パワーアンプなどが含まれており、リニアアンプの第2階層としてOPAMP(オペアンプ)と、バッファと、OTA(Operational Transconductance Amplifier)などが含まれる。図3では、バッファについて2つの異なる回路構成が登録されている様子が模式的に示されている。例えば、第2階層レベルの回路を、「機能」として把握する。
【0016】
次に、図4乃至図8を用いて、パレートデータ生成装置の動作について説明する。まず、パレートデータ生成装置のユーザは、性能項目(例えば、消費電流、THD(Total Harmonic Distortion)、DC利得、帯域幅など)のデータを含む要求仕様のデータと、パレートデータを生成すべき回路構成を指定するデータ(例えば回路構成の識別情報)と、各回路構成について設計者が値を指定可能な設計変数及びその変動範囲と、設計者の意図とは別に製造や環境に応じて変動するPVTパラメータ及びその分布と、他の設定データ(1度の繰り返し処理において生成する設計の数(個体数とも呼ぶ)、1つの設計に対するモンテカルロシミュレーション回数、繰り返し回数(世代数とも呼ぶ)の上限値、歩留り率の閾値Yth、抽出すべき設計の数Nなど)との入力を入力部1に対して行う。入力部1は、ユーザからの入力データを受け付け、要求仕様についての入力データを仕様データ格納部9に格納し、PVTパラメータについての入力データをPVTパラメータ格納部3に格納し、設計変数についての入力データを設計変数データ格納部5に格納し、設定データについての入力データを設定データ格納部7に格納する(ステップS1)。なお、この段階において、回路構成ライブラリ格納部11に対して、処理に係る回路構成のデータを入力するようにしても良い。また、入力部1が、他のコンピュータなどに用意されている入力データを取得して、PVTパラメータ格納部3などに格納するようにしても良い。
【0017】
例えば、PVTパラメータ格納部3には、図5Aに示すようなデータが格納される。図5Aの例では、各PVTパラメータについて、分布データが登録されるようになっている。分布データは、例えば乱数を発生させるために用いられ、例えばガウス分布などの分布のタイプと、具体的な分布を規定するためのデータ(例えば平均値μ及び分散σ)が指定される。なお、分布のタイプが一様の場合には、上限値U及び下限値Lとが指定される場合もある。また、PVTパラメータに関しては、ダイ(die)内の変動、ダイ間の変動について定義するようにしてもよい。
【0018】
例えば、設計変数データ格納部5には、図5Bに示すようなデータが格納される。図5Bの例では、各設計変数について、下限値LLi及び上限値UUiとが登録されるようになっている。その他、中央値及びその変動割合が指定される場合もある。
【0019】
次に、シミュレータ制御部15は、シミュレーションの繰り返し回数のカウンタnを1にセットする(ステップS3)。そして、シミュレータ制御部15は、設計変数データ格納部5及び設定データ格納部7とに格納されているデータに従って、各設計変数の値を、指定範囲内で指定セット分(すなわち個体数分)決定し、シミュレーション結果データ格納部17に格納する(ステップS5)。以下では、設計変数値の1セット分を「設計」と呼ぶことにする。すなわち、ステップS5では、指定個体数分の設計を特定する。なお、ステップS5では、例えば乱数により各値を決定する。
【0020】
例えば、シミュレーション結果データ格納部17には、図6に示すようなデータが格納される。図6の例では、各設計に付与される設計IDと、回路構成と設計変数値セットとPVTパラメータ値セットとの組み合わせ毎に付与される設計インスタンスIDと、使用される回路構成のIDと、各設計変数の値と、各PVTパラメータの値とが格納されるようになっている。ステップS5では、各設計変数の値が生成されて、図6に示すようなデータ構造で格納される。
【0021】
次に、シミュレータ制御部15は、ステップS5で生成した各設計変数値セットについて、PVTパラメータ格納部3に格納されている各PVTパラメータの値を、同じくPVTパラメータ格納部3に格納されている指定分布に従って所定セット生成し、シミュレーション結果データ格納部17に格納する(ステップS7)。図6に示すように、1つの設計ID(すなわち1つの設計変数値セットと1つの回路構成との組み合わせ)に対して複数のPVTパラメータ値セットが登録されるようになる。
【0022】
その後、シミュレータ制御部15は、シミュレーション結果データ格納部17に格納されている、設計変数値セットとPVTパラメータ値セットと回路構成との組み合わせ毎(すなわち設計インスタンス毎)に、当該設計インスタンスのデータを回路シミュレータ200に出力し、回路シミュレーションを実施させる(ステップS9)。この際、シミュレータ制御部15は、該当する回路構成のデータについては回路構成ライブラリ格納部11から読み出して、回路シミュレータ200に出力する。また、シミュレータ制御部15は、該当する回路構成に必要な周辺回路のデータであるテストベンチデータをテストベンチデータ格納部13から読み出し、回路シミュレータ200に出力する。さらに、シミュレータ制御部15は、仕様データ格納部9に格納されている性能項目について性能項目値を算出するように回路シミュレータ200に指示する。
【0023】
テストベンチデータ格納部13から読み出される周辺回路のデータの一例を図7に示す。図7の例では、中央に処理に係る回路構成となる差動入出力バッファ回路が示されており、電源回路や性能項目の測定に必要な回路等が、電源端子や入出力端子などに接続されるようになっている。このような周辺回路については既知であり、これ以上説明しない。
【0024】
さらに、シミュレータ制御部15は、回路シミュレータ200からシミュレーション結果として、各性能項目の値を、設計インスタンス毎に取得し、シミュレーション結果データ格納部17に格納する。例えば、図8に示すようなデータが、シミュレーション結果データ格納部17に格納される。図8の例では、図6に示したデータ構造に加えて、各設計インスタンスについて、各性能項目の値を登録するようになっている。
【0025】
その後、YP空間写像処理部19は、シミュレーション結果データ格納部17に格納されているデータに対して、YP空間写像処理を実施する(ステップS11)。このYP空間写像処理については、図9乃至図13を用いて説明する。
【0026】
YP空間写像処理部19は、シミュレーション結果データ格納部17に登録されている未処理の設計を1つ特定する(ステップS21)。また、YP空間写像処理部19は、特定された設計について未処理の設計インスタンスを1つ特定する(ステップS23)。その後、YP空間写像処理部19は、特定された設計インスタンスの全ての性能項目に対して同一又は優れた値を有する設計インスタンスの数を計数し、例えばメインメモリなどの記憶装置に格納する(ステップS25)。
【0027】
ステップS25については図10を用いて説明する。図10は、2つの性能項目について検討する際の例を示しており、原点に近いほど性能が高い値(優れた値とも呼ぶ)であるものとする。この際、設計インスタンスはその性能項目値により丸印の位置にプロットされ、ステップS23で特定された設計インスタンスを黒丸で示す。なお、ハッチング付きの楕円は、設計インスタンスの分布領域を仮想的に示したものである。このような場合、全ての性能項目について同一又は優れた値を有する設計インスタンスは、黒丸の点を右上の頂点とする矩形の範囲に含まれる設計インスタンスである。なお、性能項目が3つ以上であっても条件は同様で、全ての性能項目について同一又は優れた値を有する設計インスタンスの数を計数する。なお、着目している設計インスタンスも計数に含める。
【0028】
このような計数を行うのは、本実施の形態では、着目している設計インスタンスの性能以上の性能を有する設計インスタンスの出現確率を歩留り率と規定しているためである。着目している設計インスタンスの性能以上の性能を有するという条件が、着目している設計インスタンスについての全ての性能項目値に対して同一又は優れた値を有するという条件である。
【0029】
そして、YP空間写像処理部19は、計数値/設計インスタンスの総数(すなわちPVTパラメータ値セットの総数。1設計に対するシミュレーション回数。)により歩留り率を算出し、設計インスタンスのデータに対応付けて当該歩留り率をYP空間データ格納部21に格納する(ステップS27)。
【0030】
例えば、図11に示すようなデータが、YP空間データ格納部21に格納される。図11の例では、図8に示した設計インスタンスのデータに対応付けて、ステップS27で算出された歩留り率が登録されるようになっている。
【0031】
その後、YP空間写像処理部19は、全ての設計インスタンスについて処理したか判断する(ステップS29)。未処理の設計インスタンスが存在する場合には、ステップS23に戻る。一方、全ての設計インスタンスについて処理した場合には、YP空間写像処理部19は、全ての設計について処理したか判断する(ステップS31)。未処理の設計が存在している場合にはステップS21に戻る。全ての設計について処理した場合には、元の処理に戻る。
【0032】
本実施の形態では、図10に示したようなN次元性能空間(例えばNは性能項目の数)に対して歩留り率の1次元を加えて、N+1次元のYP空間を導入する。具体的に、例えば図12に示すように、三角印で示される設計インスタンスを含む設計A、菱形印で示される設計インスタンスを含む設計B及び丸印で示される設計インスタンスを含む設計Cが存在する場合には、3次元のYP空間において、図13に示すような曲面によって設計A乃至Cが表される。このような曲面を、設計曲面とも呼ぶ。但し、各曲面は、その設計に含まれる設計インスタンスに対応する点の集合である。各点は、各性能項目の値pi(1≦i≦N。Nは評価すべき性能項目の数。)と歩留り率Yとで座標値が特定される。すなわち、(p1,p2,p3,...pN,Y)という座標値で表される。また、YP空間の点をYP点と呼ぶことにする。
【0033】
図4の説明に戻って、次に、ランキング処理部23は、ソーティング結果データ格納部29に格納されている前世代の上位所定数の設計(エリート設計とも呼ぶ)とYP空間データ格納部21に登録されており且つ今回生成された設計を含む設計のランキング処理を実施し、処理結果をランキングデータ格納部25に格納する(ステップS13)。本ランキング処理については図14A乃至図16を用いて説明する。なお、本ランキング処理の後に、端子Aを介して図17の処理に移行する。
【0034】
ランキング処理において、ランキング処理部23は、ソーティング結果データ格納部29に格納されている前世代のエリート設計と今回生成した設計とを含む設計群を集合YPに追加する(図14A:ステップS41)。集合YPは、ステップS41より前に初期的に空φにしておく。また、最初の処理の場合には前世代のエリート設計は存在しないので、今回生成した設計のみが集合YPに追加される。
【0035】
また、ランキング処理部23は、ランクのカウンタRankを0に設定して初期化する(ステップS43)。また、ランキング処理部23は、一時的に該当する設計を保存しておく集合Frankを空φに設定する(ステップS45)。
【0036】
そして、ランキング処理部23は、集合YPのうち未処理の設計を1つ特定する(ステップS47)。そして、ランキング処理部23は、特定された設計と他の間の支配関係を確認する(ステップS49)。
【0037】
本実施の形態では、YP空間におけるYP点(設計インスタンスに相当)の間の支配関係を以下のように定義する。
【0038】
前提として、設計1の性能P1が設計2の性能P2を支配するとは、以下のように定義される。
【0039】
【数1】

【0040】
なお、p1iは、性能P1に含まれるi番目の性能項目の値を表し、p2iは、性能P2に含まれるi番目の性能項目の値を表す。(1)式は、設計1の全ての性能項目の値が設計2の対応する性能項目の値と同じ又は優れており、且つ設計1のいずれかの性能項目の値が設計2の対応する性能項目の値より優れている場合に、性能P1が性能P2を支配するという。
【0041】
まず、性能についての支配関係については図14Bを用いて説明しておく。ここでは性能項目が2つだけであると仮定し、第1の性能項目を縦軸にコスト1として設定し、より小さい値ほどコストが低いものとする。また、第2の性能項目を横軸にコスト2として設定し、より小さい値ほどコストが低いものとする。ここで、回路シミュレーションを実施してコスト1及び2の値を特定すると、図14Bに示すような2次元空間(解空間又は解仕様空間とも呼ぶ)にプロットすることができる。図14Bの例ではA乃至Fの6つの点(解と呼ぶ)が得られている。このような状況において、当然ながらコスト1も2も小さい値の方が好ましいので、原点に近いほど良い解である。そして本実施の形態において「X支配Y」とは、Yの成分(即ちコスト)は全てXの成分と同一又は劣っており、Yの成分の少なくとも1つはXの成分より劣っていることを示す。図14Bのような2次元空間では、コスト1も2も小さいBの方がEよりも良い解であるから「B支配E」であり、同様にCの方がFよりも良い解であるから「C支配F」である。一方AとBとを比較すると、Aの方がコスト2は小さいがコスト1はBの方が小さいので「A支配B」とは言えない。A乃至Dについてはこのように支配関係が成り立たない。このように性能空間において他の解に支配されない解、すなわち非劣解をパレートと呼ぶ。そして、パレートを結ぶ曲線(3次元以上の空間であれば曲面)Aをパレート曲線(又は曲面)と呼ぶ。
【0042】
そして、YP空間における点YPmが点YPnを支配するとは、以下のように定義される。
【0043】
【数2】

【0044】
ここで、Pmiは、点YPmのi番目の性能項目値を表しており、Pniは、点YPnのi番目の性能項目値を表す。また、Ymは、点YPmの歩留り率を表しており、Ynは、点YPnの歩留り率を表している。(2)式では、点YPmの全ての性能項目値が点YPnの対応する性能項目値と同一又は優れており且つ点YPmの歩留り率が点YPnの歩留り率以上であり、さらに点YPmのいずれかの性能項目値が点YPnの対応する性能項目値より優れているか又は点YPmの歩留り率が点YPnの歩留り率より高い場合に、点YPmが点YPnを支配するという。
【0045】
さらに、設計Aが設計Bを支配するとは、以下のように定義される。
【0046】
【数3】

【0047】
ここで、YPDesignBは、設計Bの設計インスタンスに相当する点による曲面(例えば図13の曲面B)を表し、YPDesignAは、設計Aの設計インスタンスに相当する点による曲面(例えば図13の曲面A)を表す。そして、(3)式は、設計Bについての曲面に属する全ての点YPnを支配する、設計Aについての曲面に属する点YPmが存在する場合に、設計Aは設計Bを支配するという。
【0048】
図12及び図13の例では、設計Aは設計Bを支配するが、設計AもBも設計Cを支配するとは言えない。
【0049】
なお、このYP空間の特性から、設計Aの歩留り率最大値が設計Bの歩留り率最大値より大きく、設計Bの最小歩留り率における性能が設計Aの最小歩留り率における性能に支配される場合には、設計Aが設計Bを支配しているといえる。
【0050】
このような定義に従って、ステップS49で設計間との支配関係を確認する。
【0051】
ステップS47で特定された設計が他のいずれかの設計に支配されると判断された場合には(ステップS51:Yesルート)、端子Bを介して図15の処理に移行する。一方、ステップS47で特定された設計が他のいずれの設計にも支配されない場合には(ステップS51:Noルート)、ランキング処理部23は、ステップS47で特定された設計をFrankに追加する(ステップS53)。そして、端子Bを介して図15の処理に移行する。
【0052】
図15の処理の説明に移行して、ランキング処理部23は、集合YPの全ての設計を処理したか判断する(ステップS55)。未処理の設計が存在する場合には端子Cを介してステップS47に戻る。一方、全ての設計について処理した場合には、ランキング処理部23は、集合Frankに含まれる設計にRankの値を設定して、ランキングデータ格納部25に格納する(ステップS57)。
【0053】
ランキングデータ格納部25には、例えば図16に示すようなデータが格納される。図16の例では、ランク毎に、当該ランクに属する設計のIDが登録されるようになっている。なお、図11のようなデータに、特定されたランク(Rank)の値を追加登録するようにしても良い。
【0054】
そして、ランキング処理部23は、集合YPから集合Frankに含まれる設計を除去する(ステップS59)。その後、ランキング処理部23は、集合YPが空φとなったか判断する(ステップS61)。集合YPが空でない場合には、ランキング処理部23は、Rankの値を1インクリメントさせて、端子Dを介してステップS45に戻る。なお、次のステップS47では、集合YPに属する全ての設計を未処理として設定し、処理を行う。一方、集合YPが空となれば、元の処理に戻る。
【0055】
なお、ステップS13の処理は、上位所定数のエリート設計を抽出するための処理であるので、ランクの値を付与した設計の数が、当該所定数を超えた時点で、集合YPが空でなくても処理を終了するようにしても良い。
【0056】
図4の処理は端子Aを介して図17の処理の説明に移行する。次に、ソーティング処理部27は、同一ランクについて設計のソーティング処理を実施する(ステップS71)。このソーティング処理については、図18乃至図25を用いて説明する。
【0057】
まず、ソーティング処理部27は、カウンタiを0に初期化する(ステップS91)。そして、ソーティング処理部27は、ランキングデータ格納部25に格納されているデータから、i番目のランクに属する設計を特定し、i番目のランクに属する設計が複数存在するか判断する(ステップS93)。もし、i番目のランクに1つの設計しか含まれない場合には、i番目のランクに属する設計をソーティングしなくとも済むので、ステップS99に移行する。
【0058】
一方、i番目のランクに属する設計が複数存在する場合には、ソーティング処理部27は、i番目のランクに属する各設計について、i番目のランクのYE(Yield−Embedded)パレート・フロントとなるYP点の数を計数し、計数結果を例えばメインメモリなどの記憶装置に格納する(ステップS95)。
【0059】
YEパレート・フロントは、YP空間におけるパレート曲線(又は曲面)であり、本ステップでは同一ランクの全ての設計の設計インスタンスに相当するYP点について、例えば図19に示すような処理を実施する。
【0060】
なお、YEパレート・フロント生成は、各設計の全てのYP点について相互の支配関係を確認し、離散的に全体のYEパレート・フロントを生成する方法と、各設計のYP点について数式でモデリングして、数式間の支配関係を数理的に解析して全設計のYEパレート・フロントを特定する方法とのいずれかを採用可能である。
【0061】
ここでは前者について説明する。まず、ソーティング処理部27は、YEパレート・フロント集合PL=φと設定する(ステップS111)。PLは、例えばソーティング結果データ格納部29に格納される。そして、ソーティング処理部27は、YP空間データ格納部21に登録されている処理対象のYP点(ステップS95では現在のランクに属する設計の全YP点)のうち未処理のYP点pを特定する(ステップS113)。なお、ステップS95の場合には、設定データ格納部7に格納されている閾値Ythに従って、Ythよりも歩留り率が高いYP点だけを特定するものとする。一般的なYEパレート・フロントを求める場合には、このような制限は不要であるが、本実施の形態では歩留り率があまり低いYP点は採用される可能性が低いので、このような制限を採用して処理の効率化を図る。その後、ソーティング処理部27は、PLにYP点pを追加する(ステップS115)。
【0062】
さらに、ソーティング処理部27は、PL内の、pとは異なる未処理のYP点p'を特定する(ステップS117)。そして、ソーティング処理部27は、p'支配pが成立したか判断する(ステップS119)。p'支配pが成立する場合には、pはYEパレート・フロントを構成しないので、ソーティング処理部27は、pをPLから除去する(ステップS121)。そしてステップS129に移行する。一方、p'支配pが成立しない場合には、ソーティング処理部27は、p支配p'が成立したか判断する(ステップS123)。p支配p'が成立する場合には、p'は不要なので、ソーティング処理部27はPLからp'を除去する(ステップS125)。そしてステップS127に移行する。p支配p'が成立しない場合もステップS127に移行する。
【0063】
図20に示すように、pが図におけるaであってp'が図におけるbであるとすると、a支配bであるから、図におけるbはPLから除去される。一方、p'がcであるとするとa支配cとは言えないので、cはPLに残される。但し、例えば図20におけるdがpであれば、d支配cであるから、cはPLから除去される。基本的には、pがbで、p'がaであっても同様に取り扱われる。
【0064】
その後、ソーティング処理部27は、PL内の全てのYP点について処理したか判断する(ステップS127)。PL内の全てのYP点について処理したわけではない場合にはステップS117に戻る。一方、PL内の全てのYP点について処理した場合には、ソーティング処理部27は、処理対象のYP点を全て処理したか判断する(ステップS129)。処理対象のYP点に未処理のYP点が存在する場合にはステップS113に戻る。全て処理した場合には元の処理に戻る。
【0065】
このような処理を実施することによって、現ランクにおけるYEパレート・フロントに含まれるYP点が得られる。ステップS95では、YEパレート・フロントに含まれるYP点が、いずれの設計についてのYP点であるかを特定し、YP点の数を各設計についてカウントする。
【0066】
図18の処理の説明に戻って、ソーティング処理部27は、ステップS95における計数値で設計を降順にソートし、同一ランク内における設計の順序付けを行って、順序付け結果をソーティング結果データ格納部29に格納する(ステップS97)。
【0067】
例えば、図21に示すようなデータが、ソーティング結果データ格納部29に格納される。図21の例は、図16に示したランキング結果に対してソーティング結果を反映させたものを示している。図21の例では、ランク毎に設計の順位付けがなされており、ランク0の順位1は設計D1であり、ランク0の順位2は設計D2である。また、ランク1の順位1は設計D3であり、ランク2の順位2は設計D4である。ランク2には設計D5のみが含まれるので、ソーティングは行われないが、順位1として設計D5が登録されている。
【0068】
その後、ソーティング処理部27は、カウンタiの値がランク最大値以上であるか否かに基づき、全てのランクについて処理したかを判断する(ステップS99)。未処理のランクが存在する場合には、ソーティング処理部27は、iを1インクリメントして(ステップS101)、ステップS93に戻る。
【0069】
一方、未処理のランクが存在しない場合には、ソーティング処理部27は、上位所定数の設計のデータをYP空間処理部21から抽出して、ソーティング結果データ格納部29に格納する(ステップS103)。ソーティング結果データ格納部29には、上位所定数の設計のデータとして、図11に示したものと同様のデータフォーマットのデータが格納される。そして、元の処理に戻る。
【0070】
ここでステップS13及びS71の処理について、図22乃至図25を用いて模式的に説明する。
【0071】
まず、図22は、設計D1についてPVTパラメータの値を変更してn回回路シミュレーションを実施し、1つの性能項目(Performance)の値の低い順(すなわち優れている順)に並べた場面を模式的に示している。例えば、m番目の設計インスタンスの場合、性能はpmであり、歩留り率YD1pmは、m/nとなる。
【0072】
設計D1乃至D4の各々について全ての設計インスタンスについて歩留り率を算出して、性能値及び歩留り率で張られるYP空間にプロットすると、図23のようになる。図23の例では、性能を表す横軸については左に行くほど性能が高いことを表している。また、図23の例では、設計D1を表す曲線と設計D2を表す曲線とが交差しており、設計D3を表す曲線と設計D4を表す曲線とが交差している。
【0073】
そして、ステップS13のランキング処理を実施すると、図23からも明らかなように、設計D1は設計D3及びD4を支配する。一方、設計D2も設計D3及び設計D4を支配する。しかしながら、設計D1は設計D2を支配するとは言えず、同様に設計D2は設計D1を支配するとは言えない。従って、図24に示すように、設計D1及びD2はランク0(Rank0)に属する。同様に、設計D3は設計D4を支配するとは言えず、設計D4も設計D3を支配するとは言えない。従って、設計D3及びD4はランク1(Rank1)に属する。
【0074】
次に、ステップS71のソーティング処理では、YEパレート・フロントに含まれるYP点の数で同一ランク内の設計の順位付けを行う。図25では、YEパレート・フロント(Pareto Front)を太線で示している。ランク1の場合、ランク1のYEパレート・フロントには、設計D3のYP点が5点(=NFD3。黒丸で表す)採用されており、設計D4のYP点が2点(=NFD4。星印で表す)採用されている。本実施の形態では、歩留り率が閾値Yth以上のYP点でのみ比較を行っており、このような場合にはランク1では設計D3が設計D4よりも優先されることが分かる。
【0075】
なお、ソーティング処理についても、上位所定数のエリート設計を抽出するための処理であるから、例えばあるランクまでの累積設計数がちょうど上位所定数に達するような場合には、ステップS71を実施せずにスキップしても良い。さらに、あるランクまでの累積設計数がちょうど上位所定数でなくとも、上位所定数を超えていれば、そのランクまでの全ての設計をエリート設計として抽出しても良い場合にも、ステップS71を実施せずにスキップするようにしても良い。
【0076】
さらに、ちょうど上位所定数のエリート設計を抽出する必要がある場合にも、全てのランクについてソーティング処理を実施するのではなく、上位所定数番目の設計が含まれるランクのみソーティング処理を実施して、上記所定数のエリート設計を特定するようにしても良い。
【0077】
図17の処理の説明に戻って、ステップS71を実施すると、ソーティング結果データ格納部29には上位所定数の設計のデータが格納されているので、パレート生成部31は、上位所定数の設計に含まれるYP点の支配関係を確認し、全体のYEパレート・フロントを生成し、当該YEパレート・フロントに含まれるYP点のデータをパレートデータ格納部33に格納する(ステップS75)。具体的な処理は、基本的には図19に示した処理と同じである。そして、パレートデータ格納部33には、例えば図26に示すようなデータが格納される。図26の例では、各行がYEパレート・フロントに含まれるYP点のデータであり、設計IDと、設計インスタンスIDと、回路構成のIDと、各設計変数の値と、各PVTパラメータの値と、各性能項目の値と、歩留り率とが格納されるようになっている。図26は、回路構成を1つ指定して上で述べた処理を実施した場合の例を示している。なお、同じような機能を有する複数の回路構成を指定して上で述べたような処理を実施させるようにしても良い。その場合には、図27に示すように、回路構成のIDの列に、複数の回路構成IDが登録される可能性がある。
【0078】
ステップS75で生成された全体のYEパレート・フロントの一例を図28に示す。図28では、遅延と電流値と歩留り率とで張られるYP空間において、YEパレート・フロントに含まれるYP点が丸印で示されている。なお、図28においては、左に行くほど遅延が少なく、左下に行くほど電流が少なく、上に行くほど歩留りが高いものとする。
【0079】
パレート生成部31は、処理が終了すると、処理終了をシミュレータ制御部15に通知する。シミュレータ制御部15は、世代nが最大値に達したか又は他の終了条件を満たしたか判断する(ステップS77)。例えばパレートデータ格納部33のデータを参照して、十分な性能を確保できているということが確認できていれば処理終了と判断するような場合もある。世代nが最大値に達している場合又は他の終了条件を満たしている場合には、処理を終了する。
【0080】
一方、処理終了でなければ、シミュレータ制御部15は、nを1インクリメントし(ステップS79)、ソーティング結果データ格納部29に格納されているエリート設計のデータを基に、次世代の設計変数値を所定のアルゴリズムによって指定セット分生成し、シミュレーション結果データ格納部17に格納する(ステップS81)。そして端子Eを介して図4のステップS7に戻る。
【0081】
例えば多目的最適化処理手法として、遺伝多目的最適化アルゴリズムNSGA−II(Non-dominate sorting genetic algorithm)を利用することができる。そして、ステップS81では、例えばcrossover処理やmutation処理により、次世代の設計変数値の指定セット分(すなわち指定個体数分)生成する。なお、遺伝多目的最適化アルゴリズムはよく知られており、ここでは詳しく述べない。
【0082】
以上のように、歩留り率と性能項目値とで張られるYP空間においてYEパレート・フロントを生成することができ、歩留り率と性能項目値との関係を適切に表現することができるようなる。これによって、ユーザは、目的とする機能や他の制約条件において、歩留り率と性能項目値とのトレードオフを適切に把握できるようになる。
【0083】
また、ステップS81が適切に機能して、より多くの世代についてYEパレート・フロントを生成するようにすれば、性能が高くて歩留りの高い設計変数値セットが得られるようになる。
【0084】
なお、図26乃至図28のデータについては、ユーザに表示装置又は印刷装置などの出力装置を介して提示するようにしても良い。
【0085】
次に、本実施の形態に係る自動設計支援装置の自動最適回路設計装置について図29を用いて説明する。なお、パレートデータ生成装置で示したものと同じものについては、同じ参照符号が付されている。
【0086】
自動最適回路設計装置は、入力部51と、要求仕様データ格納部53と、回路構成ライブラリ格納部11と、パレートデータ格納部33と、テストベンチデータ格納部13と、最適解生成処理部55と、最適解データ格納部57と、出力部59とを有する。入力部51は、設計者からの入力を受け付け、要求仕様データ格納部53に格納する。最適解生成処理部55は、要求仕様データ格納部53と回路構成ライブラリ格納部11とパレートデータ格納部33とテストベンチデータ格納部13とに格納されているデータを用い、回路シミュレータ200と連携して処理を行い、中間的な処理結果を含む処理結果を最適解データ格納部57に格納する。
【0087】
設計者は、今回設計しようとする回路の機能を指定すると共に、要求仕様データを入力部51を介して入力し、入力部51は、ユーザからの入力を受け付け、要求仕様データ格納部53に格納する。例えば、図30に示すようなデータを要求仕様データ格納部53に格納する。要求仕様は、回路全体で満足すべき特性を各性能項目について規定したものであり、図30の例では、消費電流、THD、DC利得、帯域幅といった項目毎に値が設定されている。性能項目については他の性能項目を採用することも可能である。値については設計目的から規定される。なお、本実施の形態では、要求仕様データ格納部53には、どのような機能や性質の回路(例えばバッファ)が必要なのかについてのデータについても格納されるものとする。また、本実施の形態では、歩留り率も要求仕様データに含まれる。図30に示すように、歩留り率について特定の値が指定され、要求仕様データ格納部53に格納される。
【0088】
次に、図31乃至図35を用いて、自動最適回路設計装置の動作について説明する。まず、入力部51は、例えばユーザに対して、これから回路設計を行う回路の機能を含む要求仕様の入力を促し、ユーザから当該回路の機能を含む要求仕様のデータを受け取って、要求仕様データ格納部53に格納する(図31:ステップS201)。要求仕様は、上で述べたような性能項目についての要求に加えて、歩留り率の要求も含む。また、パレートデータ格納部33に格納されているデータの基となる要求仕様の範囲内で指定を行うものとする。
【0089】
次に、最適解生成処理部55は、要求仕様データ格納部53に格納されている要求仕様に含まれる歩留り率に従って、パレートデータ格納部33に格納されているYEパレート・フロントからパレート曲面を生成し、当該パレート曲面のデータを例えば最適解データ格納部57に格納する(ステップS203)。例えば歩留り率50%が指定されている場合には、図26に示したデータ構造において歩留り率の列において50%が登録されている行のデータを抽出する。なお、50%とみなされる範囲(例えば46%から54%など)の歩留り率が登録されている行のデータを抽出するようにしてもよい。
【0090】
模式的には、図28に示したYP空間において、遅延と電流値とで張られる平面に平行な平面であって歩留り率が指定歩留り率(例えば50%)である平面でYEパレート・フロントを切断した断面が、ステップS203で求められるパレート曲線となる。この例を図32に示す。図32に示すように、横軸は遅延を表し、縦軸は電流値を表し、横軸は左、縦軸は下に向かうほど値が優れているものとする。図32の例では、歩留り率50%の場合のパレート曲線に属する解が三角印で、歩留り率80%の場合のパレート曲線に属する解が丸印で示されている。このように、遅延が大きく、電流値が大きいほど歩留り率が高くなる。
【0091】
なお、ステップS203で最適解データ格納部57に格納されるデータのフォーマットは、図26と同様である。
【0092】
そして、最適解生成処理部55は、要求仕様データ格納部53に格納されている要求仕様の各性能項目について値の分布をバランスさせる解空間の空間変換(スケーリング及びシフティング)を実施する(ステップS205)。ユーザから指示された要求仕様の各性能項目について行うので、当該性能項目はパレートデータ格納部33に格納されている性能項目の一部であり、ステップS205を実施する毎に本ステップを実施する。本ステップでは、パレートデータ格納部33から抽出されて最適解データ格納部57に格納されるデータに対して処理を実施し、処理結果を例えば最適解データ格納部57に格納する。データフォーマットは、例えば図26に示したものと同様である。
【0093】
例えば、性能空間(解空間とも呼ぶ)における要求仕様Sとパレート最適解Pとの距離を、以下のように定義するものとする。
【0094】
【数4】

【0095】
このような場合、例えば消費電流がμA程度であり、帯域幅がGHz程度であるとすると、明らかに消費電流という性能項目は帯域幅という性能項目に対して値が小さくなるので、実質的に無視されることになる。このような事態を避け、全ての性能項目がほぼ平等に取り扱われるように空間変換が必要となる。具体的には、以下のようなアフィン(Affine)変換を実施する。PTranは、空間変換後の解ベクトルを表し、Psampは、空間変換前の解ベクトル(性能項目数n個の成分を有する)を表し、VShiftは、平行移動させるためのベクトル(性能項目数n個の成分を有する)を表し、MscalingはPsampの各性能項目の値の増減を行わせる対角行列(n行×n列の行列)である。
【0096】
Tran=VShift+Mscaling*Psamp
【0097】
【数5】

【0098】
Shift_i=−Mscaling_(i,i)×min(obji
【0099】
なお、Mscaling_(i,j)は、Mscalingのi行j列成分である。また、max(obji)は、ステップS203で抽出された全てのパレート最適解(すなわちパレート曲面上の点)におけるi番目の性能項目の最大値であり、min(obji)は、同様にステップS203で抽出された全てのパレート最適解におけるi番目の性能項目の最小値である。さらに、Vshift_i=は、Vshiftのi番目の成分を示す。また、ci0については、iについて指定された定数である。
【0100】
このような変換を行えば、各性能項目がバランスするように空間変換が実施される。すなわち、各性能項目がほぼ平等に取り扱われることとなる。
【0101】
なお、距離を算出する場合には、当然ながら要求仕様Sについても、同様の空間変換が必要となる。上の式におけるPsampをSで置換すれば算出される。空間変換後の要求仕様については、例えばメインメモリなどの記憶装置に格納する。
【0102】
次に、最適解生成処理部55は、仮最適解探索処理を実施する(ステップS207)。仮最適解探索処理については図33を用いて説明する。
【0103】
まず、最適解生成処理部55は、ステップS203で抽出されているパレート最適解から、要求仕様と距離が近い上位Nパレート最適解を抽出する(図33:ステップS231)。空間変換後であるから、上で述べた式(4)で距離は算出される。そして、最小二乗法などの周知の方法を用いて、抽出Nパレート最適解を通過するパレート曲面(2次元空間であればパレート曲線)F(P)=0を算出する(ステップS233)。
【0104】
そして、最適解生成処理部55は、仮最適解がパレート曲面F(P)=0上であり且つ仮最適解におけるパレート曲面の接線と直交する直線上にも存在するということを表す連立方程式を解き、仮最適解を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS235)。
【0105】
この処理について図34で概要を説明する。図34に示すように、ステップS203で抽出されたx個のパレート最適解を通過する曲線をパレート曲線F(P)とすると、仮最適解P0は、当該パレート曲線F(P)=0上に存在する。すなわち、F(P0)=0となる。さらに、Collinearity定理によって、要求仕様S、仮最適解P0、パレート曲線(一般的には曲面)の瞬時中心点が同一直線上にある。すなわち、仮最適解P0におけるパレート曲面の接線hに直交する直線g上に、仮最適解P0及び要求仕様Sが乗ることになる。
【0106】
具体的には、以下に示すような式で表される。
【0107】
【数6】

【0108】
第一式の右辺第一項が、直線gを表すベクトルであり、tは未知の係数であり、Specは要求仕様Sに対応する。すなわち、第一式は、直線gを、要求仕様Sからt倍すると、仮最適解P0になることを表す。このような連立方程式を解くと、tと仮最適解P0が得られる。そして元の処理に戻る。
【0109】
なお、仮最適解P0は、ステップS203において抽出されたパレート最適解とは異なる点である可能性が高い。従って、以下のような確認処理を実施する。
【0110】
すなわち、最適解生成処理部55は、ステップS203において抽出されたパレート最適解から、仮最適解の近傍のパレート最適解を抽出し、当該近傍のパレート最適解の回路構成により、当該仮最適解の回路構成を決定する(ステップS209)。図35に2次元の場合を模式的に示すと、要求仕様Sから仮最適解P0を求めた場合には、その近傍(ここではパレート曲線上の両脇)のパレート最適解P1及びP2を抽出する。そして、ステップS203で抽出されたデータにおいて、パレート最適解P1及びP2に対応付けられて格納されている回路構成の識別子を特定する。この際、2つのパレート最適解P1及びP2について同じ回路構成の識別子が得られれば当該回路構成を採用する。一方、異なる回路構成の識別子が得られた場合には、最も近い近傍のパレート最適解の回路構成を採用する。
【0111】
そして、最適解生成処理部55は、仮最適解の逆空間変換を実施する(ステップS211)。ステップS205で実施した空間変換の逆変換を実施する。具体的には、VShiftの逆ベクトルをPTranから引き、さらに左からMscalingの逆行列を掛ければよい。ステップS215で用いるためである。
【0112】
そして、最適解生成処理部55は、仮最適解を、特定された回路構成の変数空間にマッピングして、回路パラメータの値を決定し、例えばメインメモリなどの記憶装置に格納する(ステップS213)。
【0113】
具体的には、要求仕様に近いN個のパレート最適解を選び、これらパレート最適解により、性能(空間変換後の性能値)と回路パラメータの関係式fを算出する。すなわち、pk=fk(x1, x2, ...xn)を算出する。ここで、pkは、パレート最適解の性能項目kについての性能値を表し、xnはパレート最適解のn番目の回路パラメータの値を表す。例えば、最小二乗法で、taylor多項式の係数をフィッティングすれば、fが算出される。それで、この数式P=F(X)により、仮最適解P0を実現できる回路パラメータX={x1, x2, ...xn}を求める。なお、P={p1, ...pk}、F={f1, ...fk}である。
【0114】
最後の処理についてより詳細に述べると、通常、性能項目の数kは回路パラメータの数nより少ないので、単に仮最適解P0を連立方程式F={f1, f2,...fk}に代入しても、x1, x2, ...xnを解くことができない。そのため、最適アルゴリズム(例えば、既存技術のNelder-Mead法(R.Fletcher, Practical Methods of Optimization, John Wiley&Sons, 1991を参照のこと。))を用いて、仮最適解を実現できる近似のx1, x2, ...xnを解くことができる。このような処理については、例えば特開2004−61372号公報などにも用いられており、これ以上の説明は省略する。
【0115】
その後、最適解生成処理部55は、回路シミュレータ200に対してステップS209で特定された回路構成のデータと、テストベンチデータ格納部13に格納されている、当該回路構成に対応する周辺回路のデータなどと、ステップS213で算出した回路パラメータの値とを出力し、回路シミュレータ200に周知の回路シミュレーションを実施させ、当該回路シミュレータ200から要求仕様の性能項目の性能値を取得する(ステップS215)。そして、最適解生成処理部55は、特定された回路構成及び回路パラメータにより逆空間変換後の仮最適解を実現可能であるか判断する(ステップS217)。すなわち、要求仕様の性能項目毎に、逆空間変換後の仮最適解における性能値より良い値(コストが低い値)がシミュレーションで得られたか判断する。全ての性能項目について、仮最適解における性能値より良い必要がある。なお、逆空間変換後の仮最適解を用いるのは、回路シミュレーションの結果と比較できないからである。比較するだけであれば、回路シミュレーションの結果を空間変換してから比較しても同じである。
【0116】
実現可能であれば(ステップS217:Yesルート)、最適解生成処理部55は、特定された回路構成及び設計変数値(PVTパラメータ値も追加される場合もある)と回路パラメータとを、最適解データ格納部57に格納する(ステップS221)。要求仕様と比較する場合には、逆空間変換後の仮最適解をも格納する。そして、出力部59は、最適解データ格納部57に格納されている最適解のデータ(回路構成、設計変数値セット(PVTパラメータ値も追加される場合もある。場合によって逆空間変換後の仮最適解の各性能項目の性能値)を、表示装置や印刷装置などの出力装置に出力する。これによって、ユーザは、採用すべき回路構成、プロセス制約条件及び設計変数値セット(PVTパラメータ値も追加される場合もある。)を得ることができるようになる。なお、仮最適解を出力する場合には、要求仕様との関係がどのようなものであるかを判断することも可能となる。例えば、要求仕様を満たしているのか、満たしていないのかを判断することもできる。出力部59が、要求仕様を満たしているのか満たしていないのかを判断して出力するようにしても良い。
【0117】
一方、実現可能でないと判断された場合には(ステップS217:Noルート)、最適解生成処理部55は、ステップS207で特定された仮最適解の近傍のパレート最適解の範囲内において次に最適な次最適解を抽出し、さらに当該次最適解に最も近いパレート最適解の回路構成を、次最適解についての回路構成として設定する(ステップS219)。例えば図35の例では、パレート最適解P1及びP2の間のP3を特定する。但し、パレート最適解P1及びP2の間を全て探索した場合には、パレート最適解P1又はP2を採用する。その後、ステップS211に戻る。
【0118】
なお、ステップS211乃至S215については、パレート最適解について処理する場合には、ステップS203で抽出されたデータをそのまま用いることができるので、スキップすることができる。
【0119】
このような処理を実施することによって、自動最適回路設計装置では、ステップS215で最も時間のかかる回路シミュレーションを実施するだけであるから、最適回路設計にかかる時間を大幅に削減できるようになる。また、ステップS217で実現不可能と判断された場合においても、既に算出済みのパレート最適解を再活用して、要求仕様の性能項目における要求性能値により近い解(すなわち変更後の仕様)についての回路パラメータを特定することができる。よって、処理時間を短縮することができる。また、歩留り率の要件を満たした解が得られるので、実際の製造においても意図した結果が得られることが期待される。
【0120】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。上で述べた機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と対応しない場合もある。さらに、処理フローについても処理結果が変わらない限りステップの順番を入れ替えたり、並列に実行するようにしても良い。
【0121】
また、生成すべきPVTパラメータ値セットの数nは、固定であっても良いが、動的に変化させるようにしても良い。例えば、psを個体数(設計変数値セットの数)、rsを前世代のランクの数、NmをPVTパラメータ値セットの所定の最大値とすると、次の世代においては以下のような式で決定するようにしてもよい。
【0122】
【数7】

【0123】
なお、上記自動回路設計支援装置は、コンピュータ装置であって、図36に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0124】
以上述べた本実施の形態をまとめると以下のとおりである。
【0125】
本自動設計支援方法は、(A)回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップ(図37:ステップS1001)と、(B)設定に従って、所定の設計変数について1又は複数の設計変数値セットを生成し、各設計変数値セットについて製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップ(図37:ステップS1003)と、(C)データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、データ格納部に格納するステップ(図37:ステップS1005)と、(D)データ格納部に格納されている各設計変数値セットについて、当該設計変数値セットについて生成されたパラメータ値セット毎に、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する設計変数値セット及び歩留り率を性能歩留り空間データ格納部に格納するステップ(図37:ステップS1007)とを含む。
【0126】
このようにすれば、性能と歩留り率とを適切に評価できるようになる。
【0127】
本自動設計支援方法は、(E)性能歩留り空間データ格納部に格納されている、設計変数値セット毎の上記点の座標値により特定される設計曲面について支配関係を確認し、少なくとも上位所定数の設計曲面を抽出する抽出ステップと、(F)上位所定数の設計曲面から、他のいずれにも支配されない点の集合を特定し、当該点の集合のデータをパレートデータ格納部に格納するステップとをさらに含むようにしても良い。
【0128】
なお、第1の設計曲面に属する全ての点が第2の設計曲面に属するいずれかの点に支配される場合に、第2の設計曲面が第1の設計曲面を支配することとなる場合もある。また、第1の点の全ての性能項目値が第2の点の性能項目値より優れている又は同一であり、第1の点の歩留り率が第2の点の歩留り率以上であり、且つ少なくとも第1及び第2の点のいずれかの性能項目値又は歩留り率が一致しない場合に、第1の点が第2の点を支配することとなる場合もある。
【0129】
上位所定数の設計曲面を抽出することによって、次の世代の設計変数値セットを適切に生成することができるようになる。すなわち、より高い性能を可能とする設計変数値セットを生成できるようになる。また、上記点の集合のデータを生成することによって、要求仕様に最も適合する設計変数値セットなどを短時間で特定することができるようになる。
【0130】
なお、上で述べた抽出ステップが、性能歩留り空間データ格納部に格納されている、設計変数値セット毎の上記点の座標値により特定される設計曲面について支配関係を確認し、他のいずれの設計曲面からも支配されない設計曲面群である非支配設計曲面群を、先行して特定された非支配設計曲面群が存在する場合には当該非支配設計曲面群を除外した上で少なくとも上位所定数の設計曲面が抽出されるまで抽出するステップを含むようにしてもよい。このように、非支配設計曲面群を抽出することで、上位所定数の設計曲面の抽出が容易になる。
【0131】
また、上で述べた抽出ステップが、さらに、抽出された非支配設計曲面群のうち、包含される設計曲面の累計数が上位所定数に達する際の非支配設計曲面群に含まれる設計曲面を、当該設計曲面に含まれ且つ他のいずれにも支配されない点の数の降順でソートし、上位所定数に達するまでの設計曲面を特定するステップをさらに含むようにしてもよい。このようにすれば、上位所定数の設計曲面を適切に抽出することができるようになる。
【0132】
なお、上で述べた他のいずれにも支配されない点の数を計数する際に、歩留り率が所定値以上の点の数を計数するようにしてもよい。このようにすれば、有意な歩留り率の範囲において評価した上で、適切な設計曲面を抽出することができるようになる。
【0133】
また、上位所定数の設計曲面を性能歩留り空間データ格納部に格納し、次の世代の上位所定数の設計曲面を抽出する際に用いるようにしてもよい。上位所定数の設計曲面については、次世代の設計変数値セットを生成するだけではなく、次世代の上位所定数の設計曲面を抽出するのに用いることによって、より適切な設計曲面を次世代に伝えることができるようになる。
【0134】
また、本最適化支援方法は、(G)パレートデータ格納部に座標値が格納されている点のうち、要求仕様に含まれる指定歩留り率に該当する点を抽出して、第2パレートデータ格納部に格納するステップと、(H)要求仕様に含まれる各性能項目について値の分布をバランスさせる、性能項目空間の空間変換が実施された後の性能項目空間において、第2パレートデータ格納部に格納されている上記点の座標値に対して空間変換を実施した後の点によるパレート曲面上の点のうち、空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、(I)第2パレートデータ格納部に座標値が格納されている上記点に対して空間変換を実施した後の点から、空間変換後の性能項目空間における、仮最適解の近傍の点を抽出し、当該点から仮最適解についての回路構成を特定するステップと、(J)仮最適解を、特定された回路構成についての所定の設計変数の値にマッピングするステップとをさらに含むようにしても良い。
【0135】
パレートデータ格納部にデータが用意されていれば、このような処理を行うことで、要求仕様に沿った設計変数の最適値を高速に得ることができるようになる。
【0136】
本最適化支援装置(図38)は、(A)回路構成のデータを格納する回路構成データ格納部(図38:1501)から、特定の機能を有する回路構成を抽出し、設定に従って、所定の設計変数について1又は複数の設計変数値セットを生成し、各設計変数値セットについて製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部(図38:1505)に格納し、データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、データ格納部に格納するシミュレータ制御部(図38:1503)と、(B)データ格納部に格納されている各設計変数値セットについて、当該設計変数値セットについて生成されたパラメータ値セット毎に、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された上記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する設計変数値セット及び歩留り率を性能歩留り空間データ格納部(図38:1509)に格納する空間写像処理部(図38:1507)とを有する。
【0137】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【0138】
(付記1)
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を、コンピュータに実行させるための最適化支援プログラム。
【0139】
(付記2)
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、少なくとも上位所定数の設計曲面を抽出する抽出ステップと、
前記上位所定数の設計曲面から、他のいずれにも支配されない点の集合を特定し、当該点の集合のデータをパレートデータ格納部に格納するステップと、
をさらに前記コンピュータに実行させ、
第1の設計曲面に属する全ての点が第2の設計曲面に属するいずれかの点に支配される場合に、前記第2の設計曲面が前記第1の設計曲面を支配することとなり、
第1の点の全ての性能項目値が第2の点の性能項目値より優れている又は同一であり、前記第1の点の歩留り率が前記第2の点の歩留り率以上であり、且つ少なくとも前記第1及び第2の点のいずれかの前記性能項目値又は前記歩留り率が一致しない場合に、前記第1の点が前記第2の点を支配することとなる
付記1記載の最適化支援プログラム。
【0140】
(付記3)
前記抽出ステップが、
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、他のいずれの設計曲面からも支配されない設計曲面群である非支配設計曲面群を、先行して特定された非支配設計曲面群が存在する場合には当該非支配設計曲面群を除外した上で少なくとも前記上位所定数の設計曲面が抽出されるまで抽出するステップ
を含む付記2記載の最適化支援プログラム。
【0141】
(付記4)
前記抽出ステップが、
抽出された前記非支配設計曲面群のうち、包含される前記設計曲面の累計数が前記上位所定数に達する際の前記非支配設計曲面群に含まれる前記設計曲面を、当該設計曲面に含まれ且つ他のいずれにも支配されない点の数の降順でソートし、前記上位所定数に達するまでの前記設計曲面を特定するステップ
をさらに含む付記3記載の最適化支援プログラム。
【0142】
(付記5)
前記他のいずれにも支配されない点の数を計数する際に、前記歩留り率が所定値以上の点の数を計数する
付記4記載の最適化支援プログラム。
【0143】
(付記6)
前記上位所定数の設計曲面を前記性能歩留り空間データ格納部に格納し、次の世代の前記上位所定数の設計曲面を抽出する際に用いる
付記2乃至5のいずれか1つ記載の最適化支援プログラム。
【0144】
(付記7)
前記パレートデータ格納部に座標値が格納されている点のうち、要求仕様に含まれる指定歩留り率に該当する点を抽出して、第2パレートデータ格納部に格納するステップと、
前記要求仕様に含まれる各性能項目について値の分布をバランスさせる、性能項目空間の空間変換が実施された後の性能項目空間において、前記第2パレートデータ格納部に格納されている前記点の座標値に対して前記空間変換を実施した後の点によるパレート曲面上の点のうち、前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記第2パレートデータ格納部に座標値が格納されている前記点に対して前記空間変換を実施した後の点から、前記空間変換後の前記性能項目空間における、前記仮最適解の近傍の前記点を抽出し、当該点から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての前記所定の設計変数の値にマッピングするステップと、
をさらに、前記コンピュータに実行させるための付記2記載の最適化支援プログラム。
【0145】
(付記8)
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を含み、コンピュータに実行される最適化支援方法。
【0146】
(付記9)
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出し、設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納し、前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するシミュレータ制御部と、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納する空間写像処理部と、
を有する最適化支援装置。
【符号の説明】
【0147】
1 入力部 3 PVTパラメータ格納部
5 設計変数データ格納部 7 設定データ格納部
9 仕様データ格納部 11 回路構成ライブラリ格納部
13 テストベンチデータ格納部 15 シミュレータ制御部
17 シミュレーション結果データ格納部 19 YP空間写像処理部
21 YP空間データ格納部 23 ランキング処理部
25 ランキングデータ格納部 27 ソーティング処理部
29 ソーティング結果データ格納部 31 パレート生成部
33 パレートデータ格納部
51 入力部 53 要求仕様データ格納部
55 最適解生成処理部 57 最適解データ格納部
59 出力部

【特許請求の範囲】
【請求項1】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を、コンピュータに実行させるための最適化支援プログラム。
【請求項2】
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、少なくとも上位所定数の設計曲面を抽出する抽出ステップと、
前記上位所定数の設計曲面から、他のいずれにも支配されない点の集合を特定し、当該点の集合のデータをパレートデータ格納部に格納するステップと、
をさらに前記コンピュータに実行させ、
第1の設計曲面に属する全ての点が第2の設計曲面に属するいずれかの点に支配される場合に、前記第2の設計曲面が前記第1の設計曲面を支配することとなり、
第1の点の全ての性能項目値が第2の点の性能項目値より優れている又は同一であり、前記第1の点の歩留り率が前記第2の点の歩留り率以上であり、且つ少なくとも前記第1及び第2の点のいずれかの前記性能項目値又は前記歩留り率が一致しない場合に、前記第1の点が前記第2の点を支配することとなる
請求項1記載の最適化支援プログラム。
【請求項3】
前記抽出ステップが、
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、他のいずれの設計曲面からも支配されない設計曲面群である非支配設計曲面群を、先行して特定された非支配設計曲面群が存在する場合には当該非支配設計曲面群を除外した上で少なくとも前記上位所定数の設計曲面が抽出されるまで抽出するステップ
を含む請求項2記載の最適化支援プログラム。
【請求項4】
前記抽出ステップが、
抽出された前記非支配設計曲面群のうち、包含される前記設計曲面の累計数が前記上位所定数に達する際の前記非支配設計曲面群に含まれる前記設計曲面を、当該設計曲面に含まれ且つ他のいずれにも支配されない点の数の降順でソートし、前記上位所定数に達するまでの前記設計曲面を特定するステップ
をさらに含む請求項3記載の最適化支援プログラム。
【請求項5】
前記他のいずれにも支配されない点の数を計数する際に、前記歩留り率が所定値以上の点の数を計数する
請求項4記載の最適化支援プログラム。
【請求項6】
前記上位所定数の設計曲面を前記性能歩留り空間データ格納部に格納し、次の世代の前記上位所定数の設計曲面を抽出する際に用いる
請求項2乃至5のいずれか1つ記載の最適化支援プログラム。
【請求項7】
前記パレートデータ格納部に座標値が格納されている点のうち、要求仕様に含まれる指定歩留り率に該当する点を抽出して、第2パレートデータ格納部に格納するステップと、
前記要求仕様に含まれる各性能項目について値の分布をバランスさせる、性能項目空間の空間変換が実施された後の性能項目空間において、前記第2パレートデータ格納部に格納されている前記点の座標値に対して前記空間変換を実施した後の点によるパレート曲面上の点のうち、前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記第2パレートデータ格納部に座標値が格納されている前記点に対して前記空間変換を実施した後の点から、前記空間変換後の前記性能項目空間における、前記仮最適解の近傍の前記点を抽出し、当該点から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての前記所定の設計変数の値にマッピングするステップと、
をさらに、前記コンピュータに実行させるための請求項2記載の最適化支援プログラム。
【請求項8】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を含み、コンピュータに実行される最適化支援方法。
【請求項9】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出し、設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納し、前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するシミュレータ制御部と、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納する空間写像処理部と、
を有する最適化支援装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
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

【図14A】
image rotate

【図14B】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate


【公開番号】特開2011−180866(P2011−180866A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−45007(P2010−45007)
【出願日】平成22年3月2日(2010.3.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】