(57)【要約】【課題】歩留り率と性能との関係をより適切に評価できるようにする。【解決手段】本方法は、所定の設計変数について１又は複数の設計変数値セットを生成し、各設計変数値セットについて製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、それらの組み合わせ毎に、回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、各設計変数値セットについてパラメータ値セット毎に、それらの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された組み合わせの数の比により歩留り率を算出する。【選択図】図２
2011180866.tif 000002
【特許請求の範囲】
【請求項１】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を、コンピュータに実行させるための最適化支援プログラム。
【請求項２】
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、少なくとも上位所定数の設計曲面を抽出する抽出ステップと、
前記上位所定数の設計曲面から、他のいずれにも支配されない点の集合を特定し、当該点の集合のデータをパレートデータ格納部に格納するステップと、
をさらに前記コンピュータに実行させ、
第１の設計曲面に属する全ての点が第２の設計曲面に属するいずれかの点に支配される場合に、前記第２の設計曲面が前記第１の設計曲面を支配することとなり、
第１の点の全ての性能項目値が第２の点の性能項目値より優れている又は同一であり、前記第１の点の歩留り率が前記第２の点の歩留り率以上であり、且つ少なくとも前記第１及び第２の点のいずれかの前記性能項目値又は前記歩留り率が一致しない場合に、前記第１の点が前記第２の点を支配することとなる
請求項１記載の最適化支援プログラム。
【請求項３】
前記抽出ステップが、
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、他のいずれの設計曲面からも支配されない設計曲面群である非支配設計曲面群を、先行して特定された非支配設計曲面群が存在する場合には当該非支配設計曲面群を除外した上で少なくとも前記上位所定数の設計曲面が抽出されるまで抽出するステップ
を含む請求項２記載の最適化支援プログラム。
【請求項４】
前記抽出ステップが、
抽出された前記非支配設計曲面群のうち、包含される前記設計曲面の累計数が前記上位所定数に達する際の前記非支配設計曲面群に含まれる前記設計曲面を、当該設計曲面に含まれ且つ他のいずれにも支配されない点の数の降順でソートし、前記上位所定数に達するまでの前記設計曲面を特定するステップ
をさらに含む請求項３記載の最適化支援プログラム。
【請求項５】
前記他のいずれにも支配されない点の数を計数する際に、前記歩留り率が所定値以上の点の数を計数する
請求項４記載の最適化支援プログラム。
【請求項６】
前記上位所定数の設計曲面を前記性能歩留り空間データ格納部に格納し、次の世代の前記上位所定数の設計曲面を抽出する際に用いる
請求項２乃至５のいずれか１つ記載の最適化支援プログラム。
【請求項７】
前記パレートデータ格納部に座標値が格納されている点のうち、要求仕様に含まれる指定歩留り率に該当する点を抽出して、第２パレートデータ格納部に格納するステップと、
前記要求仕様に含まれる各性能項目について値の分布をバランスさせる、性能項目空間の空間変換が実施された後の性能項目空間において、前記第２パレートデータ格納部に格納されている前記点の座標値に対して前記空間変換を実施した後の点によるパレート曲面上の点のうち、前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記第２パレートデータ格納部に座標値が格納されている前記点に対して前記空間変換を実施した後の点から、前記空間変換後の前記性能項目空間における、前記仮最適解の近傍の前記点を抽出し、当該点から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての前記所定の設計変数の値にマッピングするステップと、
をさらに、前記コンピュータに実行させるための請求項２記載の最適化支援プログラム。
【請求項８】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を含み、コンピュータに実行される最適化支援方法。
【請求項９】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出し、設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納し、前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するシミュレータ制御部と、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納する空間写像処理部と、
を有する最適化支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、回路の自動設計支援技術に関する。
【背景技術】
【０００２】
アナログ回路の高速化に伴い、微細な素子を用いることが多くなってきているが、微細な素子は、その性能のばらつきが大きいことが問題である。このようなばらつきは、歩留りにも影響を与えることになるため、製造プロセスを改善するだけではなく、適切な設計を行うことで、歩留りを高くすることが望まれている。但し、一般的には、歩留りと性能とは二律背反性があるので、歩留りと性能とを適切に評価しつつ回路設計を行うことが好ましい。
【０００３】
一方、回路の自動設計を行う際の手法には、多目的最適化と単目的最適化とが存在している。多目的最適化は、解空間において他の解に支配（dominate）されない解（非劣解）の集合（すなわち解空間におけるパレート（Pareto）曲線又は曲面）を求める手法である。パレート曲線又は曲面については、後に詳細に述べる。一方、単目的最適化では、所定の評価関数の値が最小になる点を設計空間において探索する手法である。単目的最適化では、要求仕様を実現するような解が得られない場合、要求仕様を変更した上で、再度最適化処理を実施する必要があり、効率が悪い。また、単目的最適化では、初期値が不適切な場合には、設計空間における探索をより多く行うことになる。これに対して、多目的最適化は、一般的には非劣解集合を求めるため処理量が多くなるが、一度非劣解集合を生成してしまえば、その後の処理量は少なくて済むという利点がある。
【０００４】
なお、アナログ回路の設計について多目的最適化を適用した例は既に存在している。また、歩留りを考慮している従来技術も存在しており、当該従来技術では、ＰＶＴ（Process, Voltage, Temperature）変動の、性能への影響を固定することで、図１に示すように固定の歩留り率を想定して、その際のパレート曲線を生成するものである。図１は、周波数帯域とゲインという性能についての性能空間において、歩留り２０％、５０％及び８０％の場合のパレート曲線を例示したものであり、歩留り率固定でパレート曲線を独立に算出している。このような手法では、歩留り率を個別に設定してパレート曲線を生成するので、処理効率が悪い。また、歩留り率毎にパレート曲線が生成されるので、設計毎に歩留り率と性能との関係を特定できるわけではない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１１８７１９号公報
【特許文献２】特開２００９−１６９５５８号公報
【特許文献３】特開２００５−７０８４９号公報
【非特許文献】
【０００６】
【非特許文献１】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
【非特許文献２】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
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本技術の目的は、歩留り率と性能との関係をより適切に評価できるようにする、アナログ回路の自動設計支援技術を提供することである。
【課題を解決するための手段】
【０００８】
本自動設計支援方法は、（Ａ）回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、（Ｂ）設定に従って、所定の設計変数について複数の設計変数値セットを生成し、複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、（Ｃ）データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、データ格納部に格納するステップと、（Ｄ）データ格納部に格納されている複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する設計変数値セット及び歩留り率を性能歩留り空間データ格納部に格納するステップとを含む。
【発明の効果】
【０００９】
アナログ回路の自動設計支援技術において、歩留り率と性能との関係をより適切に評価できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、従来技術の処理結果を説明するための図である。
【図２】図２は、本技術の実施の形態に係るパレートデータ生成装置の機能ブロック図である。
【図３】図３は、回路構成ライブラリ格納部に格納されるデータを模式的に示す図である。
【図４】図４は、パレートデータ生成装置のメインの処理フローを示す図である。
【図５Ａ】図５Ａは、ＰＶＴパラメータ格納部に格納されるデータの一例を示す図である。
【図５Ｂ】図５Ｂは、設計変数データ格納部に格納されるデータの一例を示す図である。
【図６】図６は、シミュレーション結果データ格納部に格納されるデータの一例を示す図である。
【図７】図７は、周辺回路データの一例を示す図である。
【図８】図８は、シミュレーション結果データ格納部に格納されるデータの一例を示す図である。
【図９】図９は、ＹＰ空間写像処理の処理フローを示す図である。
【図１０】図１０は、歩留り率の計算について説明するための図である。
【図１１】図１１は、ＹＰ空間データ格納部に格納されるデータの一例を示す図である。
【図１２】図１２は、性能空間におけるシミュレーション結果をプロットした状態を示す図である。
【図１３】図１３は、ＹＰ空間の一例を示す図である。
【図１４Ａ】図１４Ａは、ランキング処理の処理フローを示す図である。
【図１４Ｂ】図１４Ｂは、支配関係を説明するための模式図である。
【図１５】図１５は、ランキング処理の処理フローを示す図である。
【図１６】図１６は、ランキング結果格納部に格納されるデータの一例を示す図である。
【図１７】図１７は、パレートデータ生成装置のメインの処理フローを示す図である。
【図１８】図１８は、ソーティング処理の処理フローを示す図である。
【図１９】図１９は、ＹＥパレート・フロント生成処理の処理フローを示す図である。
【図２０】図２０は、性能空間の支配関係及びパレートを説明するための図である。
【図２１】図２１は、ソーティング結果データ格納部に格納されるデータの一例を示す図である。
【図２２】図２２は、モンテカルロ（Monte-Carlo）シミュレーションの例を示す図である。
【図２３】図２３は、ＹＰ空間における設計曲線の一例を示す図である。
【図２４】図２４は、ランキング処理を説明するための図である。
【図２５】図２５は、ソーティング処理を説明するため図である。
【図２６】図２６は、パレートデータ格納部に格納されるデータの一例を示す図である。
【図２７】図２７は、パレートデータ格納部に格納されるデータの一例を示す図である。
【図２８】図２８は、ＹＰ空間におけるＹＥパレート・フロントの一例を示す図である。
【図２９】図２９は、自動最適回路設計装置の機能ブロック図である。
【図３０】図３０は、要求仕様データ格納部に格納されるデータの一例を示す図である。
【図３１】図３１は、最適解生成処理の処理フローを示す図である。
【図３２】図３２は、歩留り率を指定した際に得られるパレート曲線の一例を示す図である。
【図３３】図３３は、仮最適解探索処理の処理フローを示す図である。
【図３４】図３４は、仮最適解の探索を模式的に示す図である。
【図３５】図３５は、仮最適解に対応する回路構成を特定する処理を説明するための模式図である。
【図３６】図３６は、コンピュータの機能ブロック図である。
【図３７】図３７は、自動設計支援方法の処理フローを示す図である。
【図３８】図３８は、自動設計支援装置の機能ブロック図である。
【発明を実施するための形態】
【００１１】
図２に、本技術の実施の形態に係る自動回路設計支援装置におけるパレートデータ生成装置の機能ブロック図を示す。なお、本実施の形態では、自動回路設計支援装置は、以下で述べるパレートデータを生成するパレートデータ生成装置と、パレートデータを用いて要求仕様に対して設計変数の最適値を算出する処理を行う自動最適回路設計装置とを含む。なお、これらの装置は一体であっても良い。
【００１２】
パレートデータ生成装置は、入力部１と、ＰＶＴパラメータ格納部３と、設計変数データ格納部５と、設定データ格納部７と、仕様データ格納部９と、回路構成ライブラリ格納部１１と、テストベンチデータ格納部１３と、シミュレータ制御部１５と、シミュレーション結果格納部１７と、ＹＰ（Yield-Embedded Performance）空間写像処理部１９と、ＹＰ空間データ格納部２１と、ランキング処理部２３と、ランキングデータ格納部２５と、ソーティング処理部２７と、ソーティング結果データ格納部２９と、パレート生成部３１と、パレートデータ格納部３３とを有する。なお、パレートデータ生成装置は、回路シミュレータ２００を含む場合もあれば、回路シミュレータ２００を有する装置とは別装置である場合もある。
【００１３】
入力部１は、例えばユーザから受け付けたデータを、ＰＶＴパラメータ格納部３と、設計変数データ格納部５と、設定データ格納部７と、仕様データ格納部９とに格納する。シミュレータ制御部１５は、ＰＶＴパラメータ格納部３と設計変数データ格納部５と設定データ格納部７と仕様データ格納部９と回路構成ライブラリ格納部１１とテストベンチデータ格納部１３とソーティング結果データ格納部２９とに格納されているデータを用い、パレート生成部３１及び回路シミュレータ２００と協働して処理を実施する。シミュレータ制御部１５は、中間的な処理結果及び最終的な処理結果であるシミュレーション結果データをシミュレーション結果データ格納部１７に格納する。ＹＰ空間写像処理部１９は、シミュレーション結果データ格納部１７に格納されているデータを用いて処理を行い、処理結果をＹＰ空間データ格納部２１に格納する。ランキング処理部２３は、ＹＰ空間データ格納部２１とソーティング結果データ格納部２９とに格納されているデータを用いて処理を行い、処理結果をランキングデータ格納部２５に格納する。ソーティング処理部２７は、ランキングデータ格納部２５とＹＰ空間データ格納部２１とに格納されているデータを用いて処理を行い、処理結果をソーティング結果データ格納部２９に格納する。パレート生成部３１は、ソーティング結果データ格納部２９に格納されているデータを用いて処理を行い、処理結果をパレートデータ格納部３３に格納する。
【００１４】
なお、複雑になるので図示していないが、設定データ格納部７に格納されたデータについては、シミュレータ制御部１５だけではなく、ランキング処理部２３やソーティング処理部２７などにも用いられる。
【００１５】
回路構成ライブラリ格納部１１には、例えば、図３に示すようなデータ構造にて回路構成を保持している。すなわち、各回路構成に当該回路構成の性質や機能を表すタグを付して、図３に示すように階層型のデータ構造を構成し、特定の性質や機能を有する回路構成を検索できるようにしている。図３の例では、第１階層としてＲＦ回路、フィルタ、リニアアンプ、レギュレータといった機能分けが行われており、ＲＦ回路の第２階層としてＬＮＡ（低雑音増幅器：Low Noise Amplifier）、ＶＣＯ（電圧制御発信器：Voltage Controlled Oscillator）、ミキサー、パワーアンプなどが含まれており、リニアアンプの第２階層としてＯＰＡＭＰ（オペアンプ）と、バッファと、ＯＴＡ（Operational Transconductance Amplifier）などが含まれる。図３では、バッファについて２つの異なる回路構成が登録されている様子が模式的に示されている。例えば、第２階層レベルの回路を、「機能」として把握する。
【００１６】
次に、図４乃至図８を用いて、パレートデータ生成装置の動作について説明する。まず、パレートデータ生成装置のユーザは、性能項目（例えば、消費電流、ＴＨＤ（Total Harmonic Distortion）、ＤＣ利得、帯域幅など）のデータを含む要求仕様のデータと、パレートデータを生成すべき回路構成を指定するデータ（例えば回路構成の識別情報）と、各回路構成について設計者が値を指定可能な設計変数及びその変動範囲と、設計者の意図とは別に製造や環境に応じて変動するＰＶＴパラメータ及びその分布と、他の設定データ（１度の繰り返し処理において生成する設計の数（個体数とも呼ぶ）、１つの設計に対するモンテカルロシミュレーション回数、繰り返し回数（世代数とも呼ぶ）の上限値、歩留り率の閾値Ｙth、抽出すべき設計の数Ｎなど）との入力を入力部１に対して行う。入力部１は、ユーザからの入力データを受け付け、要求仕様についての入力データを仕様データ格納部９に格納し、ＰＶＴパラメータについての入力データをＰＶＴパラメータ格納部３に格納し、設計変数についての入力データを設計変数データ格納部５に格納し、設定データについての入力データを設定データ格納部７に格納する（ステップＳ１）。なお、この段階において、回路構成ライブラリ格納部１１に対して、処理に係る回路構成のデータを入力するようにしても良い。また、入力部１が、他のコンピュータなどに用意されている入力データを取得して、ＰＶＴパラメータ格納部３などに格納するようにしても良い。
【００１７】
例えば、ＰＶＴパラメータ格納部３には、図５Ａに示すようなデータが格納される。図５Ａの例では、各ＰＶＴパラメータについて、分布データが登録されるようになっている。分布データは、例えば乱数を発生させるために用いられ、例えばガウス分布などの分布のタイプと、具体的な分布を規定するためのデータ（例えば平均値μ及び分散σ）が指定される。なお、分布のタイプが一様の場合には、上限値Ｕ及び下限値Ｌとが指定される場合もある。また、ＰＶＴパラメータに関しては、ダイ（die）内の変動、ダイ間の変動について定義するようにしてもよい。
【００１８】
例えば、設計変数データ格納部５には、図５Ｂに示すようなデータが格納される。図５Ｂの例では、各設計変数について、下限値ＬＬi及び上限値ＵＵiとが登録されるようになっている。その他、中央値及びその変動割合が指定される場合もある。
【００１９】
次に、シミュレータ制御部１５は、シミュレーションの繰り返し回数のカウンタｎを１にセットする（ステップＳ３）。そして、シミュレータ制御部１５は、設計変数データ格納部５及び設定データ格納部７とに格納されているデータに従って、各設計変数の値を、指定範囲内で指定セット分（すなわち個体数分）決定し、シミュレーション結果データ格納部１７に格納する（ステップＳ５）。以下では、設計変数値の１セット分を「設計」と呼ぶことにする。すなわち、ステップＳ５では、指定個体数分の設計を特定する。なお、ステップＳ５では、例えば乱数により各値を決定する。
【００２０】
例えば、シミュレーション結果データ格納部１７には、図６に示すようなデータが格納される。図６の例では、各設計に付与される設計ＩＤと、回路構成と設計変数値セットとＰＶＴパラメータ値セットとの組み合わせ毎に付与される設計インスタンスＩＤと、使用される回路構成のＩＤと、各設計変数の値と、各ＰＶＴパラメータの値とが格納されるようになっている。ステップＳ５では、各設計変数の値が生成されて、図６に示すようなデータ構造で格納される。
【００２１】
次に、シミュレータ制御部１５は、ステップＳ５で生成した各設計変数値セットについて、ＰＶＴパラメータ格納部３に格納されている各ＰＶＴパラメータの値を、同じくＰＶＴパラメータ格納部３に格納されている指定分布に従って所定セット生成し、シミュレーション結果データ格納部１７に格納する（ステップＳ７）。図６に示すように、１つの設計ＩＤ（すなわち１つの設計変数値セットと１つの回路構成との組み合わせ）に対して複数のＰＶＴパラメータ値セットが登録されるようになる。
【００２２】
その後、シミュレータ制御部１５は、シミュレーション結果データ格納部１７に格納されている、設計変数値セットとＰＶＴパラメータ値セットと回路構成との組み合わせ毎（すなわち設計インスタンス毎）に、当該設計インスタンスのデータを回路シミュレータ２００に出力し、回路シミュレーションを実施させる（ステップＳ９）。この際、シミュレータ制御部１５は、該当する回路構成のデータについては回路構成ライブラリ格納部１１から読み出して、回路シミュレータ２００に出力する。また、シミュレータ制御部１５は、該当する回路構成に必要な周辺回路のデータであるテストベンチデータをテストベンチデータ格納部１３から読み出し、回路シミュレータ２００に出力する。さらに、シミュレータ制御部１５は、仕様データ格納部９に格納されている性能項目について性能項目値を算出するように回路シミュレータ２００に指示する。
【００２３】
テストベンチデータ格納部１３から読み出される周辺回路のデータの一例を図７に示す。図７の例では、中央に処理に係る回路構成となる差動入出力バッファ回路が示されており、電源回路や性能項目の測定に必要な回路等が、電源端子や入出力端子などに接続されるようになっている。このような周辺回路については既知であり、これ以上説明しない。
【００２４】
さらに、シミュレータ制御部１５は、回路シミュレータ２００からシミュレーション結果として、各性能項目の値を、設計インスタンス毎に取得し、シミュレーション結果データ格納部１７に格納する。例えば、図８に示すようなデータが、シミュレーション結果データ格納部１７に格納される。図８の例では、図６に示したデータ構造に加えて、各設計インスタンスについて、各性能項目の値を登録するようになっている。
【００２５】
その後、ＹＰ空間写像処理部１９は、シミュレーション結果データ格納部１７に格納されているデータに対して、ＹＰ空間写像処理を実施する（ステップＳ１１）。このＹＰ空間写像処理については、図９乃至図１３を用いて説明する。
【００２６】
ＹＰ空間写像処理部１９は、シミュレーション結果データ格納部１７に登録されている未処理の設計を１つ特定する（ステップＳ２１）。また、ＹＰ空間写像処理部１９は、特定された設計について未処理の設計インスタンスを１つ特定する（ステップＳ２３）。その後、ＹＰ空間写像処理部１９は、特定された設計インスタンスの全ての性能項目に対して同一又は優れた値を有する設計インスタンスの数を計数し、例えばメインメモリなどの記憶装置に格納する（ステップＳ２５）。
【００２７】
ステップＳ２５については図１０を用いて説明する。図１０は、２つの性能項目について検討する際の例を示しており、原点に近いほど性能が高い値（優れた値とも呼ぶ）であるものとする。この際、設計インスタンスはその性能項目値により丸印の位置にプロットされ、ステップＳ２３で特定された設計インスタンスを黒丸で示す。なお、ハッチング付きの楕円は、設計インスタンスの分布領域を仮想的に示したものである。このような場合、全ての性能項目について同一又は優れた値を有する設計インスタンスは、黒丸の点を右上の頂点とする矩形の範囲に含まれる設計インスタンスである。なお、性能項目が３つ以上であっても条件は同様で、全ての性能項目について同一又は優れた値を有する設計インスタンスの数を計数する。なお、着目している設計インスタンスも計数に含める。
【００２８】
このような計数を行うのは、本実施の形態では、着目している設計インスタンスの性能以上の性能を有する設計インスタンスの出現確率を歩留り率と規定しているためである。着目している設計インスタンスの性能以上の性能を有するという条件が、着目している設計インスタンスについての全ての性能項目値に対して同一又は優れた値を有するという条件である。
【００２９】
そして、ＹＰ空間写像処理部１９は、計数値／設計インスタンスの総数（すなわちＰＶＴパラメータ値セットの総数。１設計に対するシミュレーション回数。）により歩留り率を算出し、設計インスタンスのデータに対応付けて当該歩留り率をＹＰ空間データ格納部２１に格納する（ステップＳ２７）。
【００３０】
例えば、図１１に示すようなデータが、ＹＰ空間データ格納部２１に格納される。図１１の例では、図８に示した設計インスタンスのデータに対応付けて、ステップＳ２７で算出された歩留り率が登録されるようになっている。
【００３１】
その後、ＹＰ空間写像処理部１９は、全ての設計インスタンスについて処理したか判断する（ステップＳ２９）。未処理の設計インスタンスが存在する場合には、ステップＳ２３に戻る。一方、全ての設計インスタンスについて処理した場合には、ＹＰ空間写像処理部１９は、全ての設計について処理したか判断する（ステップＳ３１）。未処理の設計が存在している場合にはステップＳ２１に戻る。全ての設計について処理した場合には、元の処理に戻る。
【００３２】
本実施の形態では、図１０に示したようなＮ次元性能空間（例えばＮは性能項目の数）に対して歩留り率の１次元を加えて、Ｎ＋１次元のＹＰ空間を導入する。具体的に、例えば図１２に示すように、三角印で示される設計インスタンスを含む設計Ａ、菱形印で示される設計インスタンスを含む設計Ｂ及び丸印で示される設計インスタンスを含む設計Ｃが存在する場合には、３次元のＹＰ空間において、図１３に示すような曲面によって設計Ａ乃至Ｃが表される。このような曲面を、設計曲面とも呼ぶ。但し、各曲面は、その設計に含まれる設計インスタンスに対応する点の集合である。各点は、各性能項目の値ｐi（１≦ｉ≦Ｎ。Ｎは評価すべき性能項目の数。）と歩留り率Ｙとで座標値が特定される。すなわち、（ｐ1，ｐ2，ｐ3，．．．ｐN，Ｙ）という座標値で表される。また、ＹＰ空間の点をＹＰ点と呼ぶことにする。
【００３３】
図４の説明に戻って、次に、ランキング処理部２３は、ソーティング結果データ格納部２９に格納されている前世代の上位所定数の設計（エリート設計とも呼ぶ）とＹＰ空間データ格納部２１に登録されており且つ今回生成された設計を含む設計のランキング処理を実施し、処理結果をランキングデータ格納部２５に格納する（ステップＳ１３）。本ランキング処理については図１４Ａ乃至図１６を用いて説明する。なお、本ランキング処理の後に、端子Ａを介して図１７の処理に移行する。
【００３４】
ランキング処理において、ランキング処理部２３は、ソーティング結果データ格納部２９に格納されている前世代のエリート設計と今回生成した設計とを含む設計群を集合ＹＰに追加する（図１４Ａ：ステップＳ４１）。集合ＹＰは、ステップＳ４１より前に初期的に空φにしておく。また、最初の処理の場合には前世代のエリート設計は存在しないので、今回生成した設計のみが集合ＹＰに追加される。
【００３５】
また、ランキング処理部２３は、ランクのカウンタＲａｎｋを０に設定して初期化する（ステップＳ４３）。また、ランキング処理部２３は、一時的に該当する設計を保存しておく集合Ｆrankを空φに設定する（ステップＳ４５）。
【００３６】
そして、ランキング処理部２３は、集合ＹＰのうち未処理の設計を１つ特定する（ステップＳ４７）。そして、ランキング処理部２３は、特定された設計と他の間の支配関係を確認する（ステップＳ４９）。
【００３７】
本実施の形態では、ＹＰ空間におけるＹＰ点（設計インスタンスに相当）の間の支配関係を以下のように定義する。
【００３８】
前提として、設計１の性能Ｐ1が設計２の性能Ｐ2を支配するとは、以下のように定義される。
【００３９】
【数１】
2011180866.tif 000003
【００４０】
なお、ｐ1iは、性能Ｐ1に含まれるｉ番目の性能項目の値を表し、ｐ2iは、性能Ｐ2に含まれるｉ番目の性能項目の値を表す。（１）式は、設計１の全ての性能項目の値が設計２の対応する性能項目の値と同じ又は優れており、且つ設計１のいずれかの性能項目の値が設計２の対応する性能項目の値より優れている場合に、性能Ｐ1が性能Ｐ2を支配するという。
【００４１】
まず、性能についての支配関係については図１４Ｂを用いて説明しておく。ここでは性能項目が２つだけであると仮定し、第１の性能項目を縦軸にコスト１として設定し、より小さい値ほどコストが低いものとする。また、第２の性能項目を横軸にコスト２として設定し、より小さい値ほどコストが低いものとする。ここで、回路シミュレーションを実施してコスト１及び２の値を特定すると、図１４Ｂに示すような２次元空間（解空間又は解仕様空間とも呼ぶ）にプロットすることができる。図１４Ｂの例ではＡ乃至Ｆの６つの点（解と呼ぶ）が得られている。このような状況において、当然ながらコスト１も２も小さい値の方が好ましいので、原点に近いほど良い解である。そして本実施の形態において「Ｘ支配Ｙ」とは、Ｙの成分（即ちコスト）は全てＸの成分と同一又は劣っており、Ｙの成分の少なくとも１つはＸの成分より劣っていることを示す。図１４Ｂのような２次元空間では、コスト１も２も小さいＢの方がＥよりも良い解であるから「Ｂ支配Ｅ」であり、同様にＣの方がＦよりも良い解であるから「Ｃ支配Ｆ」である。一方ＡとＢとを比較すると、Ａの方がコスト２は小さいがコスト１はＢの方が小さいので「Ａ支配Ｂ」とは言えない。Ａ乃至Ｄについてはこのように支配関係が成り立たない。このように性能空間において他の解に支配されない解、すなわち非劣解をパレートと呼ぶ。そして、パレートを結ぶ曲線（３次元以上の空間であれば曲面）Ａをパレート曲線（又は曲面）と呼ぶ。
【００４２】
そして、ＹＰ空間における点ＹＰｍが点ＹＰｎを支配するとは、以下のように定義される。
【００４３】
【数２】
2011180866.tif 000004
【００４４】
ここで、Ｐmiは、点ＹＰｍのｉ番目の性能項目値を表しており、Ｐniは、点ＹＰｎのｉ番目の性能項目値を表す。また、Ｙmは、点ＹＰｍの歩留り率を表しており、Ｙnは、点ＹＰｎの歩留り率を表している。（２）式では、点ＹＰｍの全ての性能項目値が点ＹＰｎの対応する性能項目値と同一又は優れており且つ点ＹＰｍの歩留り率が点ＹＰｎの歩留り率以上であり、さらに点ＹＰｍのいずれかの性能項目値が点ＹＰｎの対応する性能項目値より優れているか又は点ＹＰｍの歩留り率が点ＹＰｎの歩留り率より高い場合に、点ＹＰｍが点ＹＰｎを支配するという。
【００４５】
さらに、設計Ａが設計Ｂを支配するとは、以下のように定義される。
【００４６】
【数３】
2011180866.tif 000005
【００４７】
ここで、ＹＰDesignBは、設計Ｂの設計インスタンスに相当する点による曲面（例えば図１３の曲面Ｂ）を表し、ＹＰDesignAは、設計Ａの設計インスタンスに相当する点による曲面（例えば図１３の曲面Ａ）を表す。そして、（３）式は、設計Ｂについての曲面に属する全ての点ＹＰｎを支配する、設計Ａについての曲面に属する点ＹＰｍが存在する場合に、設計Ａは設計Ｂを支配するという。
【００４８】
図１２及び図１３の例では、設計Ａは設計Ｂを支配するが、設計ＡもＢも設計Ｃを支配するとは言えない。
【００４９】
なお、このＹＰ空間の特性から、設計Ａの歩留り率最大値が設計Ｂの歩留り率最大値より大きく、設計Ｂの最小歩留り率における性能が設計Ａの最小歩留り率における性能に支配される場合には、設計Ａが設計Ｂを支配しているといえる。
【００５０】
このような定義に従って、ステップＳ４９で設計間との支配関係を確認する。
【００５１】
ステップＳ４７で特定された設計が他のいずれかの設計に支配されると判断された場合には（ステップＳ５１：Ｙｅｓルート）、端子Ｂを介して図１５の処理に移行する。一方、ステップＳ４７で特定された設計が他のいずれの設計にも支配されない場合には（ステップＳ５１：Ｎｏルート）、ランキング処理部２３は、ステップＳ４７で特定された設計をＦrankに追加する（ステップＳ５３）。そして、端子Ｂを介して図１５の処理に移行する。
【００５２】
図１５の処理の説明に移行して、ランキング処理部２３は、集合ＹＰの全ての設計を処理したか判断する（ステップＳ５５）。未処理の設計が存在する場合には端子Ｃを介してステップＳ４７に戻る。一方、全ての設計について処理した場合には、ランキング処理部２３は、集合Ｆrankに含まれる設計にRankの値を設定して、ランキングデータ格納部２５に格納する（ステップＳ５７）。
【００５３】
ランキングデータ格納部２５には、例えば図１６に示すようなデータが格納される。図１６の例では、ランク毎に、当該ランクに属する設計のＩＤが登録されるようになっている。なお、図１１のようなデータに、特定されたランク（Ｒａｎｋ）の値を追加登録するようにしても良い。
【００５４】
そして、ランキング処理部２３は、集合ＹＰから集合Ｆrankに含まれる設計を除去する（ステップＳ５９）。その後、ランキング処理部２３は、集合ＹＰが空φとなったか判断する（ステップＳ６１）。集合ＹＰが空でない場合には、ランキング処理部２３は、Ｒａｎｋの値を１インクリメントさせて、端子Ｄを介してステップＳ４５に戻る。なお、次のステップＳ４７では、集合ＹＰに属する全ての設計を未処理として設定し、処理を行う。一方、集合ＹＰが空となれば、元の処理に戻る。
【００５５】
なお、ステップＳ１３の処理は、上位所定数のエリート設計を抽出するための処理であるので、ランクの値を付与した設計の数が、当該所定数を超えた時点で、集合ＹＰが空でなくても処理を終了するようにしても良い。
【００５６】
図４の処理は端子Ａを介して図１７の処理の説明に移行する。次に、ソーティング処理部２７は、同一ランクについて設計のソーティング処理を実施する（ステップＳ７１）。このソーティング処理については、図１８乃至図２５を用いて説明する。
【００５７】
まず、ソーティング処理部２７は、カウンタｉを０に初期化する（ステップＳ９１）。そして、ソーティング処理部２７は、ランキングデータ格納部２５に格納されているデータから、ｉ番目のランクに属する設計を特定し、ｉ番目のランクに属する設計が複数存在するか判断する（ステップＳ９３）。もし、ｉ番目のランクに１つの設計しか含まれない場合には、ｉ番目のランクに属する設計をソーティングしなくとも済むので、ステップＳ９９に移行する。
【００５８】
一方、ｉ番目のランクに属する設計が複数存在する場合には、ソーティング処理部２７は、ｉ番目のランクに属する各設計について、ｉ番目のランクのＹＥ（Ｙｉｅｌｄ−Ｅｍｂｅｄｄｅｄ）パレート・フロントとなるＹＰ点の数を計数し、計数結果を例えばメインメモリなどの記憶装置に格納する（ステップＳ９５）。
【００５９】
ＹＥパレート・フロントは、ＹＰ空間におけるパレート曲線（又は曲面）であり、本ステップでは同一ランクの全ての設計の設計インスタンスに相当するＹＰ点について、例えば図１９に示すような処理を実施する。
【００６０】
なお、ＹＥパレート・フロント生成は、各設計の全てのＹＰ点について相互の支配関係を確認し、離散的に全体のＹＥパレート・フロントを生成する方法と、各設計のＹＰ点について数式でモデリングして、数式間の支配関係を数理的に解析して全設計のＹＥパレート・フロントを特定する方法とのいずれかを採用可能である。
【００６１】
ここでは前者について説明する。まず、ソーティング処理部２７は、ＹＥパレート・フロント集合ＰＬ＝φと設定する（ステップＳ１１１）。ＰＬは、例えばソーティング結果データ格納部２９に格納される。そして、ソーティング処理部２７は、ＹＰ空間データ格納部２１に登録されている処理対象のＹＰ点（ステップＳ９５では現在のランクに属する設計の全ＹＰ点）のうち未処理のＹＰ点ｐを特定する（ステップＳ１１３）。なお、ステップＳ９５の場合には、設定データ格納部７に格納されている閾値Ｙthに従って、Ｙthよりも歩留り率が高いＹＰ点だけを特定するものとする。一般的なＹＥパレート・フロントを求める場合には、このような制限は不要であるが、本実施の形態では歩留り率があまり低いＹＰ点は採用される可能性が低いので、このような制限を採用して処理の効率化を図る。その後、ソーティング処理部２７は、ＰＬにＹＰ点ｐを追加する（ステップＳ１１５）。
【００６２】
さらに、ソーティング処理部２７は、ＰＬ内の、ｐとは異なる未処理のＹＰ点ｐ'を特定する（ステップＳ１１７）。そして、ソーティング処理部２７は、ｐ'支配ｐが成立したか判断する（ステップＳ１１９）。ｐ'支配ｐが成立する場合には、ｐはＹＥパレート・フロントを構成しないので、ソーティング処理部２７は、ｐをＰＬから除去する（ステップＳ１２１）。そしてステップＳ１２９に移行する。一方、ｐ'支配ｐが成立しない場合には、ソーティング処理部２７は、ｐ支配ｐ'が成立したか判断する（ステップＳ１２３）。ｐ支配ｐ'が成立する場合には、ｐ'は不要なので、ソーティング処理部２７はＰＬからｐ'を除去する（ステップＳ１２５）。そしてステップＳ１２７に移行する。ｐ支配ｐ'が成立しない場合もステップＳ１２７に移行する。
【００６３】
図２０に示すように、ｐが図におけるａであってｐ'が図におけるｂであるとすると、ａ支配ｂであるから、図におけるｂはＰＬから除去される。一方、ｐ'がｃであるとするとａ支配ｃとは言えないので、ｃはＰＬに残される。但し、例えば図２０におけるｄがｐであれば、ｄ支配ｃであるから、ｃはＰＬから除去される。基本的には、ｐがｂで、ｐ'がａであっても同様に取り扱われる。
【００６４】
その後、ソーティング処理部２７は、ＰＬ内の全てのＹＰ点について処理したか判断する（ステップＳ１２７）。ＰＬ内の全てのＹＰ点について処理したわけではない場合にはステップＳ１１７に戻る。一方、ＰＬ内の全てのＹＰ点について処理した場合には、ソーティング処理部２７は、処理対象のＹＰ点を全て処理したか判断する（ステップＳ１２９）。処理対象のＹＰ点に未処理のＹＰ点が存在する場合にはステップＳ１１３に戻る。全て処理した場合には元の処理に戻る。
【００６５】
このような処理を実施することによって、現ランクにおけるＹＥパレート・フロントに含まれるＹＰ点が得られる。ステップＳ９５では、ＹＥパレート・フロントに含まれるＹＰ点が、いずれの設計についてのＹＰ点であるかを特定し、ＹＰ点の数を各設計についてカウントする。
【００６６】
図１８の処理の説明に戻って、ソーティング処理部２７は、ステップＳ９５における計数値で設計を降順にソートし、同一ランク内における設計の順序付けを行って、順序付け結果をソーティング結果データ格納部２９に格納する（ステップＳ９７）。
【００６７】
例えば、図２１に示すようなデータが、ソーティング結果データ格納部２９に格納される。図２１の例は、図１６に示したランキング結果に対してソーティング結果を反映させたものを示している。図２１の例では、ランク毎に設計の順位付けがなされており、ランク０の順位１は設計Ｄ１であり、ランク０の順位２は設計Ｄ２である。また、ランク１の順位１は設計Ｄ３であり、ランク２の順位２は設計Ｄ４である。ランク２には設計Ｄ５のみが含まれるので、ソーティングは行われないが、順位１として設計Ｄ５が登録されている。
【００６８】
その後、ソーティング処理部２７は、カウンタｉの値がランク最大値以上であるか否かに基づき、全てのランクについて処理したかを判断する（ステップＳ９９）。未処理のランクが存在する場合には、ソーティング処理部２７は、ｉを１インクリメントして（ステップＳ１０１）、ステップＳ９３に戻る。
【００６９】
一方、未処理のランクが存在しない場合には、ソーティング処理部２７は、上位所定数の設計のデータをＹＰ空間処理部２１から抽出して、ソーティング結果データ格納部２９に格納する（ステップＳ１０３）。ソーティング結果データ格納部２９には、上位所定数の設計のデータとして、図１１に示したものと同様のデータフォーマットのデータが格納される。そして、元の処理に戻る。
【００７０】
ここでステップＳ１３及びＳ７１の処理について、図２２乃至図２５を用いて模式的に説明する。
【００７１】
まず、図２２は、設計Ｄ１についてＰＶＴパラメータの値を変更してｎ回回路シミュレーションを実施し、１つの性能項目（Performance）の値の低い順（すなわち優れている順）に並べた場面を模式的に示している。例えば、ｍ番目の設計インスタンスの場合、性能はｐｍであり、歩留り率ＹD1pmは、ｍ／ｎとなる。
【００７２】
設計Ｄ１乃至Ｄ４の各々について全ての設計インスタンスについて歩留り率を算出して、性能値及び歩留り率で張られるＹＰ空間にプロットすると、図２３のようになる。図２３の例では、性能を表す横軸については左に行くほど性能が高いことを表している。また、図２３の例では、設計Ｄ１を表す曲線と設計Ｄ２を表す曲線とが交差しており、設計Ｄ３を表す曲線と設計Ｄ４を表す曲線とが交差している。
【００７３】
そして、ステップＳ１３のランキング処理を実施すると、図２３からも明らかなように、設計Ｄ１は設計Ｄ３及びＤ４を支配する。一方、設計Ｄ２も設計Ｄ３及び設計Ｄ４を支配する。しかしながら、設計Ｄ１は設計Ｄ２を支配するとは言えず、同様に設計Ｄ２は設計Ｄ１を支配するとは言えない。従って、図２４に示すように、設計Ｄ１及びＤ２はランク０（Ｒａｎｋ０）に属する。同様に、設計Ｄ３は設計Ｄ４を支配するとは言えず、設計Ｄ４も設計Ｄ３を支配するとは言えない。従って、設計Ｄ３及びＤ４はランク１（Ｒａｎｋ１）に属する。
【００７４】
次に、ステップＳ７１のソーティング処理では、ＹＥパレート・フロントに含まれるＹＰ点の数で同一ランク内の設計の順位付けを行う。図２５では、ＹＥパレート・フロント（Pareto Front）を太線で示している。ランク１の場合、ランク１のＹＥパレート・フロントには、設計Ｄ３のＹＰ点が５点（＝ＮＦD3。黒丸で表す）採用されており、設計Ｄ４のＹＰ点が２点（＝ＮＦD4。星印で表す）採用されている。本実施の形態では、歩留り率が閾値Ｙth以上のＹＰ点でのみ比較を行っており、このような場合にはランク１では設計Ｄ３が設計Ｄ４よりも優先されることが分かる。
【００７５】
なお、ソーティング処理についても、上位所定数のエリート設計を抽出するための処理であるから、例えばあるランクまでの累積設計数がちょうど上位所定数に達するような場合には、ステップＳ７１を実施せずにスキップしても良い。さらに、あるランクまでの累積設計数がちょうど上位所定数でなくとも、上位所定数を超えていれば、そのランクまでの全ての設計をエリート設計として抽出しても良い場合にも、ステップＳ７１を実施せずにスキップするようにしても良い。
【００７６】
さらに、ちょうど上位所定数のエリート設計を抽出する必要がある場合にも、全てのランクについてソーティング処理を実施するのではなく、上位所定数番目の設計が含まれるランクのみソーティング処理を実施して、上記所定数のエリート設計を特定するようにしても良い。
【００７７】
図１７の処理の説明に戻って、ステップＳ７１を実施すると、ソーティング結果データ格納部２９には上位所定数の設計のデータが格納されているので、パレート生成部３１は、上位所定数の設計に含まれるＹＰ点の支配関係を確認し、全体のＹＥパレート・フロントを生成し、当該ＹＥパレート・フロントに含まれるＹＰ点のデータをパレートデータ格納部３３に格納する（ステップＳ７５）。具体的な処理は、基本的には図１９に示した処理と同じである。そして、パレートデータ格納部３３には、例えば図２６に示すようなデータが格納される。図２６の例では、各行がＹＥパレート・フロントに含まれるＹＰ点のデータであり、設計ＩＤと、設計インスタンスＩＤと、回路構成のＩＤと、各設計変数の値と、各ＰＶＴパラメータの値と、各性能項目の値と、歩留り率とが格納されるようになっている。図２６は、回路構成を１つ指定して上で述べた処理を実施した場合の例を示している。なお、同じような機能を有する複数の回路構成を指定して上で述べたような処理を実施させるようにしても良い。その場合には、図２７に示すように、回路構成のＩＤの列に、複数の回路構成ＩＤが登録される可能性がある。
【００７８】
ステップＳ７５で生成された全体のＹＥパレート・フロントの一例を図２８に示す。図２８では、遅延と電流値と歩留り率とで張られるＹＰ空間において、ＹＥパレート・フロントに含まれるＹＰ点が丸印で示されている。なお、図２８においては、左に行くほど遅延が少なく、左下に行くほど電流が少なく、上に行くほど歩留りが高いものとする。
【００７９】
パレート生成部３１は、処理が終了すると、処理終了をシミュレータ制御部１５に通知する。シミュレータ制御部１５は、世代ｎが最大値に達したか又は他の終了条件を満たしたか判断する（ステップＳ７７）。例えばパレートデータ格納部３３のデータを参照して、十分な性能を確保できているということが確認できていれば処理終了と判断するような場合もある。世代ｎが最大値に達している場合又は他の終了条件を満たしている場合には、処理を終了する。
【００８０】
一方、処理終了でなければ、シミュレータ制御部１５は、ｎを１インクリメントし（ステップＳ７９）、ソーティング結果データ格納部２９に格納されているエリート設計のデータを基に、次世代の設計変数値を所定のアルゴリズムによって指定セット分生成し、シミュレーション結果データ格納部１７に格納する（ステップＳ８１）。そして端子Ｅを介して図４のステップＳ７に戻る。
【００８１】
例えば多目的最適化処理手法として、遺伝多目的最適化アルゴリズムＮＳＧＡ−ＩＩ（Non-dominate sorting genetic algorithm）を利用することができる。そして、ステップＳ８１では、例えばcrossover処理やmutation処理により、次世代の設計変数値の指定セット分（すなわち指定個体数分）生成する。なお、遺伝多目的最適化アルゴリズムはよく知られており、ここでは詳しく述べない。
【００８２】
以上のように、歩留り率と性能項目値とで張られるＹＰ空間においてＹＥパレート・フロントを生成することができ、歩留り率と性能項目値との関係を適切に表現することができるようなる。これによって、ユーザは、目的とする機能や他の制約条件において、歩留り率と性能項目値とのトレードオフを適切に把握できるようになる。
【００８３】
また、ステップＳ８１が適切に機能して、より多くの世代についてＹＥパレート・フロントを生成するようにすれば、性能が高くて歩留りの高い設計変数値セットが得られるようになる。
【００８４】
なお、図２６乃至図２８のデータについては、ユーザに表示装置又は印刷装置などの出力装置を介して提示するようにしても良い。
【００８５】
次に、本実施の形態に係る自動設計支援装置の自動最適回路設計装置について図２９を用いて説明する。なお、パレートデータ生成装置で示したものと同じものについては、同じ参照符号が付されている。
【００８６】
自動最適回路設計装置は、入力部５１と、要求仕様データ格納部５３と、回路構成ライブラリ格納部１１と、パレートデータ格納部３３と、テストベンチデータ格納部１３と、最適解生成処理部５５と、最適解データ格納部５７と、出力部５９とを有する。入力部５１は、設計者からの入力を受け付け、要求仕様データ格納部５３に格納する。最適解生成処理部５５は、要求仕様データ格納部５３と回路構成ライブラリ格納部１１とパレートデータ格納部３３とテストベンチデータ格納部１３とに格納されているデータを用い、回路シミュレータ２００と連携して処理を行い、中間的な処理結果を含む処理結果を最適解データ格納部５７に格納する。
【００８７】
設計者は、今回設計しようとする回路の機能を指定すると共に、要求仕様データを入力部５１を介して入力し、入力部５１は、ユーザからの入力を受け付け、要求仕様データ格納部５３に格納する。例えば、図３０に示すようなデータを要求仕様データ格納部５３に格納する。要求仕様は、回路全体で満足すべき特性を各性能項目について規定したものであり、図３０の例では、消費電流、ＴＨＤ、ＤＣ利得、帯域幅といった項目毎に値が設定されている。性能項目については他の性能項目を採用することも可能である。値については設計目的から規定される。なお、本実施の形態では、要求仕様データ格納部５３には、どのような機能や性質の回路（例えばバッファ）が必要なのかについてのデータについても格納されるものとする。また、本実施の形態では、歩留り率も要求仕様データに含まれる。図３０に示すように、歩留り率について特定の値が指定され、要求仕様データ格納部５３に格納される。
【００８８】
次に、図３１乃至図３５を用いて、自動最適回路設計装置の動作について説明する。まず、入力部５１は、例えばユーザに対して、これから回路設計を行う回路の機能を含む要求仕様の入力を促し、ユーザから当該回路の機能を含む要求仕様のデータを受け取って、要求仕様データ格納部５３に格納する（図３１：ステップＳ２０１）。要求仕様は、上で述べたような性能項目についての要求に加えて、歩留り率の要求も含む。また、パレートデータ格納部３３に格納されているデータの基となる要求仕様の範囲内で指定を行うものとする。
【００８９】
次に、最適解生成処理部５５は、要求仕様データ格納部５３に格納されている要求仕様に含まれる歩留り率に従って、パレートデータ格納部３３に格納されているＹＥパレート・フロントからパレート曲面を生成し、当該パレート曲面のデータを例えば最適解データ格納部５７に格納する（ステップＳ２０３）。例えば歩留り率５０％が指定されている場合には、図２６に示したデータ構造において歩留り率の列において５０％が登録されている行のデータを抽出する。なお、５０％とみなされる範囲（例えば４６％から５４％など）の歩留り率が登録されている行のデータを抽出するようにしてもよい。
【００９０】
模式的には、図２８に示したＹＰ空間において、遅延と電流値とで張られる平面に平行な平面であって歩留り率が指定歩留り率（例えば５０％）である平面でＹＥパレート・フロントを切断した断面が、ステップＳ２０３で求められるパレート曲線となる。この例を図３２に示す。図３２に示すように、横軸は遅延を表し、縦軸は電流値を表し、横軸は左、縦軸は下に向かうほど値が優れているものとする。図３２の例では、歩留り率５０％の場合のパレート曲線に属する解が三角印で、歩留り率８０％の場合のパレート曲線に属する解が丸印で示されている。このように、遅延が大きく、電流値が大きいほど歩留り率が高くなる。
【００９１】
なお、ステップＳ２０３で最適解データ格納部５７に格納されるデータのフォーマットは、図２６と同様である。
【００９２】
そして、最適解生成処理部５５は、要求仕様データ格納部５３に格納されている要求仕様の各性能項目について値の分布をバランスさせる解空間の空間変換（スケーリング及びシフティング）を実施する（ステップＳ２０５）。ユーザから指示された要求仕様の各性能項目について行うので、当該性能項目はパレートデータ格納部３３に格納されている性能項目の一部であり、ステップＳ２０５を実施する毎に本ステップを実施する。本ステップでは、パレートデータ格納部３３から抽出されて最適解データ格納部５７に格納されるデータに対して処理を実施し、処理結果を例えば最適解データ格納部５７に格納する。データフォーマットは、例えば図２６に示したものと同様である。
【００９３】
例えば、性能空間（解空間とも呼ぶ）における要求仕様Ｓとパレート最適解Ｐとの距離を、以下のように定義するものとする。
【００９４】
【数４】
2011180866.tif 000006
【００９５】
このような場合、例えば消費電流がμＡ程度であり、帯域幅がＧＨｚ程度であるとすると、明らかに消費電流という性能項目は帯域幅という性能項目に対して値が小さくなるので、実質的に無視されることになる。このような事態を避け、全ての性能項目がほぼ平等に取り扱われるように空間変換が必要となる。具体的には、以下のようなアフィン（Affine）変換を実施する。ＰTranは、空間変換後の解ベクトルを表し、Ｐsampは、空間変換前の解ベクトル（性能項目数ｎ個の成分を有する）を表し、ＶShiftは、平行移動させるためのベクトル（性能項目数ｎ個の成分を有する）を表し、ＭscalingはＰsampの各性能項目の値の増減を行わせる対角行列（ｎ行×ｎ列の行列）である。
【００９６】
ＰTran＝ＶShift＋Ｍscaling＊Ｐsamp
【００９７】
【数５】
2011180866.tif 000007
【００９８】
ＶShift_i＝−Ｍscaling_(i,i)×min（ｏｂｊi）
【００９９】
なお、Ｍscaling_(i,j)は、Ｍscalingのｉ行ｊ列成分である。また、ｍａｘ（ｏｂｊi）は、ステップＳ２０３で抽出された全てのパレート最適解（すなわちパレート曲面上の点）におけるｉ番目の性能項目の最大値であり、ｍｉｎ（ｏｂｊi）は、同様にステップＳ２０３で抽出された全てのパレート最適解におけるｉ番目の性能項目の最小値である。さらに、Ｖshift_i＝は、Ｖshiftのｉ番目の成分を示す。また、ｃi0については、ｉについて指定された定数である。
【０１００】
このような変換を行えば、各性能項目がバランスするように空間変換が実施される。すなわち、各性能項目がほぼ平等に取り扱われることとなる。
【０１０１】
なお、距離を算出する場合には、当然ながら要求仕様Ｓについても、同様の空間変換が必要となる。上の式におけるＰsampをＳで置換すれば算出される。空間変換後の要求仕様については、例えばメインメモリなどの記憶装置に格納する。
【０１０２】
次に、最適解生成処理部５５は、仮最適解探索処理を実施する（ステップＳ２０７）。仮最適解探索処理については図３３を用いて説明する。
【０１０３】
まず、最適解生成処理部５５は、ステップＳ２０３で抽出されているパレート最適解から、要求仕様と距離が近い上位Ｎパレート最適解を抽出する（図３３：ステップＳ２３１）。空間変換後であるから、上で述べた式（４）で距離は算出される。そして、最小二乗法などの周知の方法を用いて、抽出Ｎパレート最適解を通過するパレート曲面（２次元空間であればパレート曲線）Ｆ（Ｐ）＝０を算出する（ステップＳ２３３）。
【０１０４】
そして、最適解生成処理部５５は、仮最適解がパレート曲面Ｆ（Ｐ）＝０上であり且つ仮最適解におけるパレート曲面の接線と直交する直線上にも存在するということを表す連立方程式を解き、仮最適解を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ２３５）。
【０１０５】
この処理について図３４で概要を説明する。図３４に示すように、ステップＳ２０３で抽出されたｘ個のパレート最適解を通過する曲線をパレート曲線Ｆ（Ｐ）とすると、仮最適解Ｐ0は、当該パレート曲線Ｆ（Ｐ）＝０上に存在する。すなわち、Ｆ（Ｐ0）＝０となる。さらに、Ｃｏｌｌｉｎｅａｒｉｔｙ定理によって、要求仕様Ｓ、仮最適解Ｐ0、パレート曲線（一般的には曲面）の瞬時中心点が同一直線上にある。すなわち、仮最適解Ｐ0におけるパレート曲面の接線ｈに直交する直線ｇ上に、仮最適解Ｐ0及び要求仕様Ｓが乗ることになる。
【０１０６】
具体的には、以下に示すような式で表される。
【０１０７】
【数６】
2011180866.tif 000008
【０１０８】
第一式の右辺第一項が、直線ｇを表すベクトルであり、ｔは未知の係数であり、Ｓｐｅｃは要求仕様Ｓに対応する。すなわち、第一式は、直線ｇを、要求仕様Ｓからｔ倍すると、仮最適解Ｐ0になることを表す。このような連立方程式を解くと、ｔと仮最適解Ｐ0が得られる。そして元の処理に戻る。
【０１０９】
なお、仮最適解Ｐ0は、ステップＳ２０３において抽出されたパレート最適解とは異なる点である可能性が高い。従って、以下のような確認処理を実施する。
【０１１０】
すなわち、最適解生成処理部５５は、ステップＳ２０３において抽出されたパレート最適解から、仮最適解の近傍のパレート最適解を抽出し、当該近傍のパレート最適解の回路構成により、当該仮最適解の回路構成を決定する（ステップＳ２０９）。図３５に２次元の場合を模式的に示すと、要求仕様Ｓから仮最適解Ｐ0を求めた場合には、その近傍（ここではパレート曲線上の両脇）のパレート最適解Ｐ1及びＰ2を抽出する。そして、ステップＳ２０３で抽出されたデータにおいて、パレート最適解Ｐ1及びＰ2に対応付けられて格納されている回路構成の識別子を特定する。この際、２つのパレート最適解Ｐ1及びＰ2について同じ回路構成の識別子が得られれば当該回路構成を採用する。一方、異なる回路構成の識別子が得られた場合には、最も近い近傍のパレート最適解の回路構成を採用する。
【０１１１】
そして、最適解生成処理部５５は、仮最適解の逆空間変換を実施する（ステップＳ２１１）。ステップＳ２０５で実施した空間変換の逆変換を実施する。具体的には、ＶShiftの逆ベクトルをＰTranから引き、さらに左からＭscalingの逆行列を掛ければよい。ステップＳ２１５で用いるためである。
【０１１２】
そして、最適解生成処理部５５は、仮最適解を、特定された回路構成の変数空間にマッピングして、回路パラメータの値を決定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ２１３）。
【０１１３】
具体的には、要求仕様に近いＮ個のパレート最適解を選び、これらパレート最適解により、性能（空間変換後の性能値）と回路パラメータの関係式ｆを算出する。すなわち、ｐk＝ｆk（x1, x2, ...xn）を算出する。ここで、ｐkは、パレート最適解の性能項目ｋについての性能値を表し、ｘnはパレート最適解のｎ番目の回路パラメータの値を表す。例えば、最小二乗法で、taylor多項式の係数をフィッティングすれば、ｆが算出される。それで、この数式Ｐ＝Ｆ（Ｘ）により、仮最適解Ｐ0を実現できる回路パラメータＸ＝｛x1, x2, ...xn｝を求める。なお、Ｐ＝｛ｐ1, ...ｐk｝、Ｆ＝｛ｆ1, ...ｆk｝である。
【０１１４】
最後の処理についてより詳細に述べると、通常、性能項目の数ｋは回路パラメータの数ｎより少ないので、単に仮最適解Ｐ0を連立方程式Ｆ＝｛ｆ1, ｆ2,...ｆk｝に代入しても、x1, x2, ...xnを解くことができない。そのため、最適アルゴリズム（例えば、既存技術のNelder-Mead法（R.Fletcher, Practical Methods of Optimization, John Wiley&Sons, 1991を参照のこと。））を用いて、仮最適解を実現できる近似のx1, x2, ...xnを解くことができる。このような処理については、例えば特開２００４−６１３７２号公報などにも用いられており、これ以上の説明は省略する。
【０１１５】
その後、最適解生成処理部５５は、回路シミュレータ２００に対してステップＳ２０９で特定された回路構成のデータと、テストベンチデータ格納部１３に格納されている、当該回路構成に対応する周辺回路のデータなどと、ステップＳ２１３で算出した回路パラメータの値とを出力し、回路シミュレータ２００に周知の回路シミュレーションを実施させ、当該回路シミュレータ２００から要求仕様の性能項目の性能値を取得する（ステップＳ２１５）。そして、最適解生成処理部５５は、特定された回路構成及び回路パラメータにより逆空間変換後の仮最適解を実現可能であるか判断する（ステップＳ２１７）。すなわち、要求仕様の性能項目毎に、逆空間変換後の仮最適解における性能値より良い値（コストが低い値）がシミュレーションで得られたか判断する。全ての性能項目について、仮最適解における性能値より良い必要がある。なお、逆空間変換後の仮最適解を用いるのは、回路シミュレーションの結果と比較できないからである。比較するだけであれば、回路シミュレーションの結果を空間変換してから比較しても同じである。
【０１１６】
実現可能であれば（ステップＳ２１７：Ｙｅｓルート）、最適解生成処理部５５は、特定された回路構成及び設計変数値（ＰＶＴパラメータ値も追加される場合もある）と回路パラメータとを、最適解データ格納部５７に格納する（ステップＳ２２１）。要求仕様と比較する場合には、逆空間変換後の仮最適解をも格納する。そして、出力部５９は、最適解データ格納部５７に格納されている最適解のデータ（回路構成、設計変数値セット（ＰＶＴパラメータ値も追加される場合もある。場合によって逆空間変換後の仮最適解の各性能項目の性能値）を、表示装置や印刷装置などの出力装置に出力する。これによって、ユーザは、採用すべき回路構成、プロセス制約条件及び設計変数値セット（ＰＶＴパラメータ値も追加される場合もある。）を得ることができるようになる。なお、仮最適解を出力する場合には、要求仕様との関係がどのようなものであるかを判断することも可能となる。例えば、要求仕様を満たしているのか、満たしていないのかを判断することもできる。出力部５９が、要求仕様を満たしているのか満たしていないのかを判断して出力するようにしても良い。
【０１１７】
一方、実現可能でないと判断された場合には（ステップＳ２１７：Ｎｏルート）、最適解生成処理部５５は、ステップＳ２０７で特定された仮最適解の近傍のパレート最適解の範囲内において次に最適な次最適解を抽出し、さらに当該次最適解に最も近いパレート最適解の回路構成を、次最適解についての回路構成として設定する（ステップＳ２１９）。例えば図３５の例では、パレート最適解Ｐ1及びＰ2の間のＰ3を特定する。但し、パレート最適解Ｐ1及びＰ2の間を全て探索した場合には、パレート最適解Ｐ1又はＰ2を採用する。その後、ステップＳ２１１に戻る。
【０１１８】
なお、ステップＳ２１１乃至Ｓ２１５については、パレート最適解について処理する場合には、ステップＳ２０３で抽出されたデータをそのまま用いることができるので、スキップすることができる。
【０１１９】
このような処理を実施することによって、自動最適回路設計装置では、ステップＳ２１５で最も時間のかかる回路シミュレーションを実施するだけであるから、最適回路設計にかかる時間を大幅に削減できるようになる。また、ステップＳ２１７で実現不可能と判断された場合においても、既に算出済みのパレート最適解を再活用して、要求仕様の性能項目における要求性能値により近い解（すなわち変更後の仕様）についての回路パラメータを特定することができる。よって、処理時間を短縮することができる。また、歩留り率の要件を満たした解が得られるので、実際の製造においても意図した結果が得られることが期待される。
【０１２０】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。上で述べた機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と対応しない場合もある。さらに、処理フローについても処理結果が変わらない限りステップの順番を入れ替えたり、並列に実行するようにしても良い。
【０１２１】
また、生成すべきＰＶＴパラメータ値セットの数ｎは、固定であっても良いが、動的に変化させるようにしても良い。例えば、ｐsを個体数（設計変数値セットの数）、ｒsを前世代のランクの数、ＮmをＰＶＴパラメータ値セットの所定の最大値とすると、次の世代においては以下のような式で決定するようにしてもよい。
【０１２２】
【数７】
2011180866.tif 000009
【０１２３】
なお、上記自動回路設計支援装置は、コンピュータ装置であって、図３６に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１２４】
以上述べた本実施の形態をまとめると以下のとおりである。
【０１２５】
本自動設計支援方法は、（Ａ）回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップ（図３７：ステップＳ１００１）と、（Ｂ）設定に従って、所定の設計変数について１又は複数の設計変数値セットを生成し、各設計変数値セットについて製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップ（図３７：ステップＳ１００３）と、（Ｃ）データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、データ格納部に格納するステップ（図３７：ステップＳ１００５）と、（Ｄ）データ格納部に格納されている各設計変数値セットについて、当該設計変数値セットについて生成されたパラメータ値セット毎に、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する設計変数値セット及び歩留り率を性能歩留り空間データ格納部に格納するステップ（図３７：ステップＳ１００７）とを含む。
【０１２６】
このようにすれば、性能と歩留り率とを適切に評価できるようになる。
【０１２７】
本自動設計支援方法は、（Ｅ）性能歩留り空間データ格納部に格納されている、設計変数値セット毎の上記点の座標値により特定される設計曲面について支配関係を確認し、少なくとも上位所定数の設計曲面を抽出する抽出ステップと、（Ｆ）上位所定数の設計曲面から、他のいずれにも支配されない点の集合を特定し、当該点の集合のデータをパレートデータ格納部に格納するステップとをさらに含むようにしても良い。
【０１２８】
なお、第１の設計曲面に属する全ての点が第２の設計曲面に属するいずれかの点に支配される場合に、第２の設計曲面が第１の設計曲面を支配することとなる場合もある。また、第１の点の全ての性能項目値が第２の点の性能項目値より優れている又は同一であり、第１の点の歩留り率が第２の点の歩留り率以上であり、且つ少なくとも第１及び第２の点のいずれかの性能項目値又は歩留り率が一致しない場合に、第１の点が第２の点を支配することとなる場合もある。
【０１２９】
上位所定数の設計曲面を抽出することによって、次の世代の設計変数値セットを適切に生成することができるようになる。すなわち、より高い性能を可能とする設計変数値セットを生成できるようになる。また、上記点の集合のデータを生成することによって、要求仕様に最も適合する設計変数値セットなどを短時間で特定することができるようになる。
【０１３０】
なお、上で述べた抽出ステップが、性能歩留り空間データ格納部に格納されている、設計変数値セット毎の上記点の座標値により特定される設計曲面について支配関係を確認し、他のいずれの設計曲面からも支配されない設計曲面群である非支配設計曲面群を、先行して特定された非支配設計曲面群が存在する場合には当該非支配設計曲面群を除外した上で少なくとも上位所定数の設計曲面が抽出されるまで抽出するステップを含むようにしてもよい。このように、非支配設計曲面群を抽出することで、上位所定数の設計曲面の抽出が容易になる。
【０１３１】
また、上で述べた抽出ステップが、さらに、抽出された非支配設計曲面群のうち、包含される設計曲面の累計数が上位所定数に達する際の非支配設計曲面群に含まれる設計曲面を、当該設計曲面に含まれ且つ他のいずれにも支配されない点の数の降順でソートし、上位所定数に達するまでの設計曲面を特定するステップをさらに含むようにしてもよい。このようにすれば、上位所定数の設計曲面を適切に抽出することができるようになる。
【０１３２】
なお、上で述べた他のいずれにも支配されない点の数を計数する際に、歩留り率が所定値以上の点の数を計数するようにしてもよい。このようにすれば、有意な歩留り率の範囲において評価した上で、適切な設計曲面を抽出することができるようになる。
【０１３３】
また、上位所定数の設計曲面を性能歩留り空間データ格納部に格納し、次の世代の上位所定数の設計曲面を抽出する際に用いるようにしてもよい。上位所定数の設計曲面については、次世代の設計変数値セットを生成するだけではなく、次世代の上位所定数の設計曲面を抽出するのに用いることによって、より適切な設計曲面を次世代に伝えることができるようになる。
【０１３４】
また、本最適化支援方法は、（Ｇ）パレートデータ格納部に座標値が格納されている点のうち、要求仕様に含まれる指定歩留り率に該当する点を抽出して、第２パレートデータ格納部に格納するステップと、（Ｈ）要求仕様に含まれる各性能項目について値の分布をバランスさせる、性能項目空間の空間変換が実施された後の性能項目空間において、第２パレートデータ格納部に格納されている上記点の座標値に対して空間変換を実施した後の点によるパレート曲面上の点のうち、空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、（Ｉ）第２パレートデータ格納部に座標値が格納されている上記点に対して空間変換を実施した後の点から、空間変換後の性能項目空間における、仮最適解の近傍の点を抽出し、当該点から仮最適解についての回路構成を特定するステップと、（Ｊ）仮最適解を、特定された回路構成についての所定の設計変数の値にマッピングするステップとをさらに含むようにしても良い。
【０１３５】
パレートデータ格納部にデータが用意されていれば、このような処理を行うことで、要求仕様に沿った設計変数の最適値を高速に得ることができるようになる。
【０１３６】
本最適化支援装置（図３８）は、（Ａ）回路構成のデータを格納する回路構成データ格納部（図３８：１５０１）から、特定の機能を有する回路構成を抽出し、設定に従って、所定の設計変数について１又は複数の設計変数値セットを生成し、各設計変数値セットについて製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部（図３８：１５０５）に格納し、データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、データ格納部に格納するシミュレータ制御部（図３８：１５０３）と、（Ｂ）データ格納部に格納されている各設計変数値セットについて、当該設計変数値セットについて生成されたパラメータ値セット毎に、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成されたパラメータ値セットの数に対する、特定された上記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する設計変数値セット及び歩留り率を性能歩留り空間データ格納部（図３８：１５０９）に格納する空間写像処理部（図３８：１５０７）とを有する。
【０１３７】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１３８】
（付記１）
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を、コンピュータに実行させるための最適化支援プログラム。
【０１３９】
（付記２）
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、少なくとも上位所定数の設計曲面を抽出する抽出ステップと、
前記上位所定数の設計曲面から、他のいずれにも支配されない点の集合を特定し、当該点の集合のデータをパレートデータ格納部に格納するステップと、
をさらに前記コンピュータに実行させ、
第１の設計曲面に属する全ての点が第２の設計曲面に属するいずれかの点に支配される場合に、前記第２の設計曲面が前記第１の設計曲面を支配することとなり、
第１の点の全ての性能項目値が第２の点の性能項目値より優れている又は同一であり、前記第１の点の歩留り率が前記第２の点の歩留り率以上であり、且つ少なくとも前記第１及び第２の点のいずれかの前記性能項目値又は前記歩留り率が一致しない場合に、前記第１の点が前記第２の点を支配することとなる
付記１記載の最適化支援プログラム。
【０１４０】
（付記３）
前記抽出ステップが、
前記性能歩留り空間データ格納部に格納されている、前記設計変数値セット毎の前記点の座標値により特定される設計曲面について支配関係を確認し、他のいずれの設計曲面からも支配されない設計曲面群である非支配設計曲面群を、先行して特定された非支配設計曲面群が存在する場合には当該非支配設計曲面群を除外した上で少なくとも前記上位所定数の設計曲面が抽出されるまで抽出するステップ
を含む付記２記載の最適化支援プログラム。
【０１４１】
（付記４）
前記抽出ステップが、
抽出された前記非支配設計曲面群のうち、包含される前記設計曲面の累計数が前記上位所定数に達する際の前記非支配設計曲面群に含まれる前記設計曲面を、当該設計曲面に含まれ且つ他のいずれにも支配されない点の数の降順でソートし、前記上位所定数に達するまでの前記設計曲面を特定するステップ
をさらに含む付記３記載の最適化支援プログラム。
【０１４２】
（付記５）
前記他のいずれにも支配されない点の数を計数する際に、前記歩留り率が所定値以上の点の数を計数する
付記４記載の最適化支援プログラム。
【０１４３】
（付記６）
前記上位所定数の設計曲面を前記性能歩留り空間データ格納部に格納し、次の世代の前記上位所定数の設計曲面を抽出する際に用いる
付記２乃至５のいずれか１つ記載の最適化支援プログラム。
【０１４４】
（付記７）
前記パレートデータ格納部に座標値が格納されている点のうち、要求仕様に含まれる指定歩留り率に該当する点を抽出して、第２パレートデータ格納部に格納するステップと、
前記要求仕様に含まれる各性能項目について値の分布をバランスさせる、性能項目空間の空間変換が実施された後の性能項目空間において、前記第２パレートデータ格納部に格納されている前記点の座標値に対して前記空間変換を実施した後の点によるパレート曲面上の点のうち、前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記第２パレートデータ格納部に座標値が格納されている前記点に対して前記空間変換を実施した後の点から、前記空間変換後の前記性能項目空間における、前記仮最適解の近傍の前記点を抽出し、当該点から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての前記所定の設計変数の値にマッピングするステップと、
をさらに、前記コンピュータに実行させるための付記２記載の最適化支援プログラム。
【０１４５】
（付記８）
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納するステップと、
前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納するステップと、
を含み、コンピュータに実行される最適化支援方法。
【０１４６】
（付記９）
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出し、設定に従って、所定の設計変数について複数の設計変数値セットを生成し、前記複数の設計変数値セットの各々について製造又は環境による変動が想定されるパラメータの複数のパラメータ値セットを生成し、データ格納部に格納し、前記データ格納部に格納されている設計変数値セットとパラメータ値セットとの組み合わせ毎に、抽出された前記回路構成について回路シミュレーションを実施させ、当該回路シミュレーション結果として所定の性能項目の性能項目値セットを取得し、前記データ格納部に格納するシミュレータ制御部と、
前記データ格納部に格納されている前記複数の設計変数値セットの各々について、さらに当該設計変数値セットについて生成された前記複数のパラメータ値セットの各々について、当該設計変数値セットと当該パラメータ値セットとの組み合わせについての性能項目値より優れている又は同一である性能項目値を全ての前記所定の性能項目について有する、当該設計変数値セットとパラメータ値セットとの組み合わせを特定し、当該設計変数値セットについて生成された前記パラメータ値セットの数に対する、特定された前記組み合わせの数の比により歩留り率を算出し、性能歩留り空間の点の座標値として、該当する前記設計変数値セット及び前記歩留り率を性能歩留り空間データ格納部に格納する空間写像処理部と、
を有する最適化支援装置。
【符号の説明】
【０１４７】
１  入力部    ３  ＰＶＴパラメータ格納部
５  設計変数データ格納部    ７  設定データ格納部
９  仕様データ格納部    １１  回路構成ライブラリ格納部
１３  テストベンチデータ格納部    １５  シミュレータ制御部
１７  シミュレーション結果データ格納部    １９  ＹＰ空間写像処理部
２１  ＹＰ空間データ格納部    ２３  ランキング処理部
２５  ランキングデータ格納部    ２７  ソーティング処理部
２９  ソーティング結果データ格納部    ３１  パレート生成部
３３  パレートデータ格納部
５１  入力部    ５３  要求仕様データ格納部
５５  最適解生成処理部    ５７  最適解データ格納部
５９  出力部
【図１】
2011180866.tif 000010
【図２】
2011180866.tif 000011
【図３】
2011180866.tif 000012
【図４】
2011180866.tif 000013
【図５Ａ】
2011180866.tif 000014
【図５Ｂ】
2011180866.tif 000015
【図６】
2011180866.tif 000016
【図７】
2011180866.tif 000017
【図８】
2011180866.tif 000018
【図９】
2011180866.tif 000019
【図１０】
2011180866.tif 000020
【図１１】
2011180866.tif 000021
【図１２】
2011180866.tif 000022
【図１３】
2011180866.tif 000023
【図１４Ａ】
2011180866.tif 000024
【図１４Ｂ】
2011180866.tif 000025
【図１５】
2011180866.tif 000026
【図１６】
2011180866.tif 000027
【図１７】
2011180866.tif 000028
【図１８】
2011180866.tif 000029
【図１９】
2011180866.tif 000030
【図２０】
2011180866.tif 000031
【図２１】
2011180866.tif 000032
【図２２】
2011180866.tif 000033
【図２３】
2011180866.tif 000034
【図２４】
2011180866.tif 000035
【図２５】
2011180866.tif 000036
【図２６】
2011180866.tif 000037
【図２７】
2011180866.tif 000038
【図２８】
2011180866.tif 000039
【図２９】
2011180866.tif 000040
【図３０】
2011180866.tif 000041
【図３１】
2011180866.tif 000042
【図３２】
2011180866.tif 000043
【図３３】
2011180866.tif 000044
【図３４】
2011180866.tif 000045
【図３５】
2011180866.tif 000046
【図３６】
2011180866.tif 000047
【図３７】
2011180866.tif 000048
【図３８】
2011180866.tif 000049