(57)【要約】【課題】要求仕様を満たす又は満たさない場合でも当該要求仕様に近く高い歩留まりを実現できる回路を短時間で自動設計する。【解決手段】要求仕様を満たす可能性のある回路構成の全てにおけるパレートを得て、当該パレートから特定されるパレート曲面上の点で且つ要求仕様と最も距離が近い仮最適解を特定する。さらに、仮最適解に対応する回路構成を特定すると共に、仮最適解を回路パラメータにマッピングした後、当該回路パラメータにより仮最適解に相当する仕様を実現できるか確認し、実現できれば回路構成及び回路パラメータを採用する。実現できなければ、仮最適解を多少ずらした上で、上と同じ処理を実施する。なお、動作環境や製造プロセスのばらつきを考慮した上で最悪性能についてパレートを特定するため、歩留まりを飛躍的に高めることができる。【選択図】図１
2010102681.tif 000002
【特許請求の範囲】
【請求項１】
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
をコンピュータに実行させる回路自動設計プログラム。
【請求項２】
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を１回分の前記シミュレーション結果として採用する採用ステップ
を含む請求項１記載の回路自動設計プログラム。
【請求項３】
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記空間変換の逆空間変換後の前記仮最適解を実現可能か判断するステップ
をさらに前記コンピュータに実行させ、
前記出力ステップが、実現可能と判断された場合に実行される
請求項１又は２記載の回路自動設計プログラム。
【請求項４】
実現不可能と判断された場合には、前記仮最適解の近傍のパレート最適解から、次の候補解を特定し、当該仮最適解の近傍のパレート最適解から前記次の候補解についての回路構成を特定するステップと、
前記次の候補解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記逆空間変換後の前記次の候補解を実現可能か判断するステップと、
実現可能と判断された場合には、前記回路構成及び当該回路構成についての各設計変数の値を出力するステップと、
をさらに前記コンピュータを実行させるための請求項３記載の回路自動設計プログラム。
【請求項５】
前記採用ステップが、
前記特定項目について指定されている乱数発生範囲データに基づき各前記特定項目の値を乱数で生成するステップと、
生成された各前記特定項目の乱数値のセットについて前記回路シミュレーションを実施するステップと、
を含む請求項２記載の回路自動設計プログラム。
【請求項６】
前記採用ステップが、
前記特定項目について指定されているコーナ値設定データに基づき各前記特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、
各前記特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて前記回路シミュレーションを実施するステップと、
を含む請求項２記載の回路自動設計プログラム。
【請求項７】
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
を含み、コンピュータに実行される回路自動設計方法。
【請求項８】
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を１回分の前記シミュレーション結果として採用する採用ステップ
を含む請求項７記載の回路自動設計方法。
【請求項９】
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出する回路構成選択手段と、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成処理手段と、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納する全体パレート生成処理手段と、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出し、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定し、前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングする最適解生成処理手段と、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力手段と、
を有する回路自動設計装置。
【請求項１０】
前記個別パレート生成手段が、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を１回分の前記シミュレーション結果として採用する
請求項９記載の回路自動設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、回路の自動設計技術に関する。
【背景技術】
【０００２】
与えられた特性仕様と設計条件を満足するように、アナログ回路の定数最適化を行う最適化処理手段については、従来から存在していた。具体的には、複数の目的関数を重み付けして加え、１つの目的関数を構成し、当該目的関数の値が最小となるような回路定数の組み合わせをシンプレックス法を用いて探索する方法が知られている。この探索処理においては、回路構成を変更しつつ要求仕様を満たすように回路定数の最適化を実施するが、要求仕様を満たせないと分かると、最初に戻って要求仕様を変更してから同様の処理を繰り返す必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−２６０９７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような探索処理では回路シミュレーションを繰り返し実施する必要があり時間がかかる。もし、要求仕様を満たせないということが分かり、最初に戻って要求仕様を変更するといった場合には、さらに回路シミュレーションを繰り返し実施することになるのでさらに時間がかかる。このように従来技術では、要求仕様の変更を何度も行うことが実質的にできない。
【０００５】
そこで本技術の目的は、要求仕様を満たす又は満たさない場合でも当該要求仕様に近い回路を短時間で自動設計することである。
【課題を解決するための手段】
【０００６】
本回路自動設計方法は、（Ａ）回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、（Ｂ）抽出された各回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、シミュレーション結果から要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、回路構成に対応付けてパレート最適解の各々について設計変数の各々の該当値と要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、（Ｃ）個別回路構成パレートデータ格納部に格納されている、抽出された全ての回路構成についての全てのパレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、（Ｄ）要求仕様の各項目について値の分布をバランスさせる解仕様空間の空間変換が実施された後の解仕様空間において、全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、（Ｅ）全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解から、空間変換後の解仕様空間における、仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から仮最適解についての回路構成を特定するステップと、（Ｆ）仮最適解を、特定された回路構成についての各設計変数の値にマッピングするステップと、（Ｇ）特定された回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップとを含む。
【発明の効果】
【０００７】
要求仕様を満たす又は満たさない場合でも当該要求仕様に近い回路を短時間で自動設計できるようになる。
【図面の簡単な説明】
【０００８】
【図１】本技術の第１の実施の形態における回路自動設計装置の機能ブロック図である。
【図２】回路構成ライブラリ格納部に格納されるデータの一例を示す図である。
【図３】制約条件格納部に格納されるデータの一例を示す図である。
【図４】仕様データ格納部に格納されるデータの一例を示す図である。
【図５】本技術の実施の形態におけるメインの処理フローを示す図である。
【図６】パレートを説明するための模式図である。
【図７】個別パレート生成処理の処理フローを示す図である。
【図８】テストベンチデータ格納部に格納されるデータを模式的に示す図である。
【図９】個別パレートデータ格納部に格納されるデータの一例を示す図である。
【図１０】パレートサンプリング集合を模式的に示す図である。
【図１１】全体パレート生成処理の処理フローを示す図である。
【図１２】全体パレート生成処理を説明するための模式図である。
【図１３】全体パレート生成処理を説明するための模式図である。
【図１４】全体パレート生成処理を説明するための模式図である。
【図１５】全体パレートデータ格納部に格納されるデータの一例を示す図である。
【図１６】最適解生成処理の処理フローを示す図である。
【図１７】仮最適解探索処理の処理フローを示す図である。
【図１８】仮最適解の探索を模式的に示す図である。
【図１９】仮最適解に対応する回路構成を特定する処理を説明するための模式図である。
【図２０】本技術の第２の実施の形態における回路自動設計装置の機能ブロック図である。
【図２１】ＰＶＴコーナ設定データ格納部に格納されるデータの一例を示す図である。
【図２２】ＰＶＴコーナ設定データ格納部に格納されるデータの一例を示す図である。
【図２３】出現分布を説明するための模式図である。
【図２４】ＰＶＴコーナ設定データ格納部に格納されるデータの一例を示す図である。
【図２５】定格値についてパレート曲線を形成する際の問題を説明するための図である。
【図２６】最悪性能についてのパレート曲線について説明するための図である。
【図２７】第２の実施の形態における個別パレート生成処理の処理フローを示す図である。
【図２８】最悪性能値取得処理の第１の例を示す図である。
【図２９】生成されるデータの一例を示す図である。
【図３０】最悪性能値取得処理の第２の例を示す図である。
【図３１】第２の実施の形態における個別パレートデータ格納部に格納されるデータの一例を示す図である。
【図３２】第２の実施の形態における全体パレートデータ格納部に格納されるデータの一例を示す図である。
【図３３】コンピュータの機能ブロック図である。
【発明を実施するための形態】
【０００９】
［実施の形態１］
本技術の第１の実施の形態に係る回路自動設計装置の機能ブロック図を図１に示す。本回路自動設計装置は、設計済みだが回路パラメータは未設定のアナログ回路の回路構成データを格納する回路構成ライブラリ格納部２と、各回路構成についての制約条件を格納する制約条件格納部１と、ユーザによって指定される要求仕様の仕様データを格納する仕様データ格納部３と、制約条件格納部１と回路構成ライブラリ格納部２と仕様データ格納部３とに格納されているデータを用いて要求仕様を満たす可能性のある回路構成を選択する回路構成選択部４と、回路構成選択部４によって選択された回路構成についてのデータを格納する選択回路構成データ格納部５と、パレート生成条件を格納するパレート生成条件格納部６と、例えば回路構成の種別毎にシミュレーション用の周辺回路についてのデータを格納するテストベンチデータ格納部７と、例えばＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）などの回路シミュレータ９と、回路シミュレータ９と連携し且つ制約条件格納部１と選択回路構成データ格納部５と仕様データ格納部３とパレート生成条件格納部６とテストベンチデータ格納部７とに格納されているデータを用いて選択回路構成毎にパレート最適解（以下、パレートと呼ぶ。パレート最適解については以下に述べる。）を生成する個別パレート生成処理部８と、個別パレート生成処理部８の処理結果を格納する個別パレートデータ格納部１０と、個別パレートデータ格納部１０に格納されているデータを用いて選択回路構成全てにおけるパレートを生成する全体パレート生成処理部１１と、全体パレート生成処理部１１による処理結果を格納する全体パレートデータ格納部１２と、テストベンチデータ格納部７と仕様データ格納部３と全体パレートデータ格納部１２と回路構成ライブラリ格納部２とに格納されているデータを用いて最適解となる回路構成及び回路構成の各パラメータの値を特定する処理を実施する最適解生成処理部１３と、最適解生成処理部１３による処理結果を格納する最適解データ格納部１４と、最適解データ格納部１４に格納されたデータをユーザに対して例えば表示装置又は印刷装置などの出力装置を介して出力する出力部１５とを有する。最適解生成処理部１３についても回路シミュレータ９と連携する。また、回路シミュレータ９は、回路自動設計装置とは別装置として実装される場合もある。
【００１０】
回路構成ライブラリ格納部２には、例えば、図２に示すようなデータ構造にて回路構成を保持している。すなわち、各回路構成に当該回路構成の性質や機能を表すタグを付して、図２に示すように階層型のデータ構造を構成し、特定の性質や機能を有する回路構成を検索できるようにしている。図２の例では、第１階層としてＲＦ回路、フィルタ、リニアアンプ、レギュレータといった機能分けが行われており、ＲＦ回路の第２階層としてＬＮＡ（低雑音増幅器：Low Noise Amplifier）、ＶＣＯ（電圧制御発信器：Voltage Controlled Oscillator）、ミキサー、パワーアンプなどが含まれており、リニアアンプの第２階層としてＯＰＡＭＰ（オペアンプ）と、バッファと、ＯＴＡ（Operational Transconductance Amplifier）などが含まれる。図２では、バッファについて２つの異なる回路構成が登録されている様子が模式的に示されている。
【００１１】
また、制約条件格納部１には、例えば図３に示すようなデータが回路構成毎に格納されている。図３に示すように、制約条件には、直接制約条件と、間接制約条件とが含まれている。直接制約条件は、製造条件（プロセス、設計ルール（ゲート長Ｌ及びゲート幅Ｗなど）による制約条件、回路動作原理による制約条件（マッチング条件、サイズ比例条件、パラメータ間の制約条件）、システム要求による制約条件（動作電圧、温度、入力条件）を含む。間接制約条件は、必須性能から回路構成パラメータへの制限となる条件である。図３の例では、面積（Ａｒｅａ）についての条件が規定されている。この他にも、消費電力、ＴＨＤ（Total harmonic distortion）、ＤＣ利得、帯域幅などの制約条件が規定される場合もある。制約条件は、設計者が指定することができる設計変数についての条件である。図３に示すように、ゲート長Ｌが６５ｎｍから２μｍといったようにある程度の幅をもって指定される場合もある。
【００１２】
さらに、図４に仕様データ格納部３に格納されるデータの一例を示す。要求仕様は、回路全体で満足すべき特性を各項目について規定したものであり、図４の例では、消費電流、ＴＨＤ、ＤＣ利得、帯域幅といった項目毎に値が設定されている。項目については他の項目を採用することも可能である。値については設計目的から規定される。なお、本実施の形態では、仕様データ格納部３には、どのような機能や性質の回路（例えばバッファ）が必要なのかについてのデータについても格納されているものとする。
【００１３】
次に図５乃至図１９を用いて、回路自動設計装置の動作について説明する。まず、回路構成選択部４は、仕様データ格納部３に格納されている要求仕様を満たす可能性があり、且つ指定された性質や機能を有する回路構成を、回路構成ライブラリ格納部２から選択する（図５：ステップＳ１）。上でも述べたように、各回路構成の制約条件は、制約条件格納部１に格納されており、要求仕様の各項目の値を明らかに満たさないような制約条件が規定されている回路構成を、要求仕様を満たす可能性なしとして除外する。回路構成選択部４は、選択した回路構成についてのデータを選択回路構成データ格納部５に格納する。
【００１４】
次に、個別パレート生成処理部８は、個別パレート生成処理を実施する（ステップＳ３）。この個別パレート生成処理については図６乃至図１０を用いて説明する。
【００１５】
まず、パレートについて図６を用いて説明しておく。ここでは要求仕様の項目が２つだけであると仮定し、第１の項目を縦軸にコスト１として設定し、より小さい値ほどコストが低いものとし、第２の項目を横軸にコスト２として設定し、より小さい値ほどコストが低いものとする。ここで、特定の回路パラメータ・セットで回路シミュレーションを実施してコスト１及び２の値を特定すると、図６に示すような２次元空間（解空間又は解仕様空間とも呼ぶ）にプロットすることができる。図６の例ではＡ乃至Ｆの６つの点（以下、解と呼ぶ）が得られている。このような状況において、当然ながらコスト１も２も小さい値の方が好ましいので、原点に近いほど良い解である。そして「Ｘ支配Ｙ」とは、Ｙの成分（即ちコスト）は全てＸの成分より劣っていることを示す。図６のような２次元空間では、コスト１も２も小さいＢの方がＥよりも良い解であるから「Ｂ支配Ｅ」であり、同様にＣの方がＦよりも良い解であるから「Ｃ支配Ｆ」である。一方ＡとＢとを比較すると、Ａの方がコスト２は小さいがコスト１はＢの方が小さいので「Ａ支配Ｂ」とは言えない。Ａ乃至Ｄについてはこのように支配関係が成り立たない。このように解空間に他の解に支配されない解、すなわち非劣解をパレート最適解と呼ぶ。そして、パレート最適解を結ぶ曲線（３次元以上の空間であれば曲面）Ａをパレート曲線（又は曲面）と呼ぶ。
【００１６】
このような前提の下、図７に従って個別パレート生成処理について説明する。まず、個別パレート生成処理部８は、選択回路構成データ格納部５に格納されている選択回路構成のうち未処理の回路構成を１つ特定する（ステップＳ１１）。そして、特定された回路構成について、制約条件格納部１に格納されている、当該回路構成についての対応制約条件を満たす設計変数（例えばゲート長Ｌやゲート幅Ｗを含む回路パラメータ）を乱数で生成し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１３）。そして、テストベンチデータ格納部７から、選択回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部５に格納されている選択回路構成のデータと、生成した設計変数と、仕様データ格納部３に格納されている要求仕様の項目（すなわち性能項目）とを回路シミュレータ９に出力し、回路シミュレータ９に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ９から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１５）。
【００１７】
テストベンチデータ格納部７から読み出される周辺回路のデータの一例を図８に示す。図８の例では、中央に選択回路構成となる差動入出力バッファ回路が示されており、電源回路や性能項目の測定に必要な回路等が、電源端子や入出力端子などに接続されるようになっている。このような周辺回路については周知であり、これ以上説明しない。
【００１８】
また、回路シミュレーションの内容についても周知であるから、これ以上説明しない。
【００１９】
その後、ステップＳ１５で得られた性能項目の性能値セットが、解空間においてパレート最適解を構成するかを、これより前に選択された各パレート最適解との支配関係を確認することによって判断し、判断結果によってパレートサンプリング集合を更新する（ステップＳ１７）。すなわち、ステップＳ１５で得られた性能項目の性能値セットで構成される解が、他の解を支配している場合には、当該他の解を、パレート最適解の集合であるパレートサンプリング集合から除去し、ステップＳ１５で得られた解をパレートサンプリング集合に追加し、逆に他の解に支配されている場合には、ステップＳ１５で得られた解を破棄する。
【００２０】
パレートサンプリング集合は、例えば個別パレートデータ格納部１０に図９に示すようなデータとして格納される。図９の例では、回路構成の識別子と、設計変数１乃至３の値と、性能項目１乃至４の値とが登録されるようになっている。変数や項目の数は一例であって、これより多い場合もある。このように、１つのパレート最適解についてのデータが１レコードとして登録される。そして、１つの回路構成についてのレコード群が、パレートサンプリング集合を構成する。また、回路構成のデータについても、個別パレートデータ格納部１０に格納するものとする。
【００２１】
その後、個別パレート生成処理部８は、パレート生成条件格納部６に格納されているパレート生成条件を満たしたか判断する（ステップＳ１９）。パレート生成条件は、多目的最適化処理（複数の目的関数のトレードオフを同時に調べる手法）における実行条件であり、例えば多目的最適化処理に、遺伝多目的最適化アルゴリズムＮＳＧＡ−ＩＩ（Non-dominate sorting genetic algorithm）を利用する場合には、母集団が進化する世代数（generation）及び母集団の個体数（population）等で指定される。なお、多目的最適化自体は周知であり、例えばhttp://mikilab.doshisha.ac.jp/dia/research/report/2006/1006/003/report20061006003.htmlなどに詳細が開示されている。
【００２２】
パレート生成条件を満たしていない場合には、個別パレート生成処理部８は、上で述べたような周知の多目的最適化処理（例えばcrossover処理やmutation処理）により、設計変数を更新し、例えばメインメモリなどの記憶装置に格納する（ステップＳ２１）。そしてステップＳ１５に戻る。
【００２３】
一方、パレート生成条件を満たしている場合には、個別パレート生成処理部８は、全ての選択回路構成について処理したか判断する（ステップＳ２３）。未処理の選択回路構成が存在している場合にはステップＳ１１に戻る。一方、未処理の選択回路構成が存在しない場合には、元の処理に戻る。
【００２４】
このような処理を実施することによって、回路構成毎に、パレート最適解の集合が生成されるようになる。模式的に解空間を２次元空間として表せば、図１０に示すようにパレート曲線を構成する解が複数得られるようになる。
【００２５】
図５の処理の説明に戻って、全体パレート生成処理部１１は、全体パレート生成処理を実施する（ステップＳ５）。この全体パレート生成処理については、図１１乃至図１５を用いて説明する。
【００２６】
なお、全体パレート生成処理は、選択回路構成毎のパレートサンプリング集合を重ね合わせて、選択回路構成全体のパレート最適解の集合を構成する処理である。このため、各選択回路構成に含まれる全ての解について相互の支配関係を確認し、離散的に全体のパレート最適解の集合を生成する方法と、各選択回路構成のパレートサンプリング集合について数式でモデリングして、数式間の支配関係を数理的に解析して選択回路構成全体のパレート最適解を特定する方法とのいずれかを採用可能である。
【００２７】
ここでは前者について説明する。まず、全体パレート生成処理部１１は、全体パレートサンプリング集合ＰＬ＝φと設定する（ステップＳ３１）。ＰＬは、全体パレートデータ格納部１２に格納する。そして、全選択回路構成のパレート最適解のうち未処理のパレート最適解ｐを特定する（ステップＳ３３）。その後、ＰＬにパレート最適解ｐを追加する（ステップＳ３５）。
【００２８】
さらに、全体パレート生成処理部１１は、ＰＬ内のｐとは異なる未処理のパレート最適解ｐ'を特定する（ステップＳ３７）。そして、ｐ'支配ｐが成立したか判断する（ステップＳ３９）。ｐ'支配ｐが成立する場合には、ｐは全選択回路構成においてパレート最適解を構成しないので、ｐをＰＬから除去する（ステップＳ４１）。そしてステップＳ４９に移行する。一方、ｐ'支配ｐが成立しない場合には、ｐ支配ｐ'が成立したか判断する（ステップＳ４３）。ｐ支配ｐ'が成立する場合には、ｐ'は不要なので、ＰＬから除去する（ステップＳ４５）。そしてステップＳ４７に移行する。ｐ支配ｐ'が成立しない場合もステップＳ４７に移行する。
【００２９】
図１２に示すように、ｐが図におけるａであってｐ'が図におけるｂであるとすると、ａ支配ｂであるから、図におけるｂはＰＬから除去される。一方、ｐ'がｃであるとするとａ支配ｃとは言えないので、ｃはＰＬに残される。但し、例えば図１２におけるｄがｐであれば、ｄ支配ｃであるから、ｃはＰＬから除去される。基本的には、ｐがｂで、ｐ'がａであっても同様に取り扱われる。
【００３０】
その後、全体パレート生成処理部１１は、ＰＬ内の全てのパレート最適解について処理したか判断する（ステップＳ４７）。ＰＬ内の全てのパレート最適解について処理したわけではない場合にはステップＳ３７に戻る。一方、ＰＬ内の全てのパレート最適解について処理した場合には、全選択回路構成のパレート最適解を全て処理したか判断する（ステップＳ４９）。全選択回路構成の未処理のパレート最適解が存在する場合にはステップＳ３３に戻る。全て処理した場合には元の処理に戻る。
【００３１】
例えば、図１３に示すように２次元空間を解空間として、回路構成１についてのパレートサンプリング集合と、回路構成２についてのパレートサンプリング集合と、回路構成ｎについてのパレートサンプリング集合とが存在する場合には、図１１に示すような処理を実施して、非劣解のみを残す。そうすると、図１４に示すような回路構成１についての一部のパレート最適解と、回路構成２についての一部のパレート最適解とが、全選択回路構成についてのパレートサンプリング集合を構成するようになる。
【００３２】
また、全体パレートデータ格納部１２には、図１５に示すようなデータが格納される。図９に示したようなレコード群から、全選択回路構成についてのパレート最適解に対応するレコードのみが、図１５にも含まれるようになる。すなわち、回路構成の識別子と、設計変数１乃至３の値と、性能項目１乃至４の値とで１レコードが構成されるようになる。なお、該当する回路構成のデータについても、全体パレートデータ格納部１２に格納するものとする。
【００３３】
図５の処理の説明に戻って、最適解生成処理部１３は、最適解生成処理を実施する（ステップＳ７）。この最適解生成処理については、図１６乃至図１９を用いて説明する。
【００３４】
まず、最適解生成処理部１３は、要求仕様の各項目について値の分布をバランスさせる解空間の空間変換（スケーリング及びシフティング）を実施する（ステップＳ５１）。処理結果は、例えば全体パレートデータ格納部１２に格納される。データフォーマットは、例えば、図１５における回路構成の識別子と性能項目１乃至３の部分と同様である。
【００３５】
例えば、解空間における要求仕様Ｓとパレート最適解Ｐとの距離を、以下のように定義するとする。
【数１】
2010102681.tif 000003
【００３６】
このような場合、例えば消費電流がμＡ程度であり、帯域幅がＧＨｚ程度であるとすると、明らかに消費電流という性能項目は帯域幅という性能項目に対して値が小さくなるので、実質的に無視されることになる。このような事態を避け、全ての性能項目がほぼ平等に取り扱われるように空間変換が必要となる。具体的には、以下のようなアフィン（Affine）変換を実施する。ＰTranは、空間変換後の解ベクトルを表し、Ｐsampは、空間変換前の解ベクトル（性能項目数ｎ個の成分を有する）を表し、ＶShiftは、平行移動させるためのベクトル（性能項目数ｎ個の成分を有する）を表し、ＭscalingはＰsampの各性能項目の値の増減を行わせる対角行列（ｎ行×ｎ列の行列）である。
ＰTran＝ＶShift＋Ｍscaling＊Ｐsamp
【数２】
2010102681.tif 000004
ＶShift_i＝−Ｍscaling_(i,i)×min（ｏｂｊi）
なお、Ｍscaling_(i,j)は、Ｍscalingのｉ行ｊ列成分である。また、ｍａｘ（ｏｂｊi）は、例えば全体パレートデータ格納部１２（場合によっては個別パレートデータ格納部１０）に格納されている全てのパレート最適解におけるｉ番目の性能項目の最大値であり、ｍｉｎ（ｏｂｊi）は、同様に全パレートデータ格納部１２に格納されている全てのパレート最適解におけるｉ番目の性能項目の最小値である。さらに、Ｖshift_i＝は、Ｖshiftのｉ番目の成分を示す。また、ｃi0については、ｉについて指定された定数である。
【００３７】
このような変換を行えば、各性能項目がバランスするように空間変換が実施される。すなわち、各性能項目がほぼ平等に取り扱われることとなる。
【００３８】
なお、距離を算出する場合には、当然ながら要求仕様Ｓについても、同様の空間変換が必要となる。上の式におけるＰsampをＳで置換すれば算出される。空間変換後の要求仕様については、例えばメインメモリなどの記憶装置に格納する。
【００３９】
次に、最適解生成処理部１３は、仮最適解探索処理を実施する（ステップＳ５３）。仮最適解探索処理については図１７を用いて説明する。
【００４０】
まず、最適解生成処理部１３は、全体パレートデータ格納部１２から、要求仕様と距離が近い上位Ｎパレート最適解を抽出する（図１７：ステップＳ７１）。空間変換後であるから、上で述べた式（１）で距離は算出される。そして、最小二乗法などの周知の方法を用いて、抽出Ｎパレート最適解を通過するパレート曲面（２次元空間であればパレート曲線）Ｆ（Ｐ）＝０を算出する（ステップＳ７３）。
【００４１】
そして、最適解生成処理部１３は、仮最適解がパレート曲面Ｆ（Ｐ）＝０上であり且つ仮最適解におけるパレート曲面の接線と直交する直線上にも存在するということを表す連立方程式を解き、仮最適解を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ７５）。
【００４２】
この処理について図１８で概要を説明する。図１８に示すように、ステップＳ７１で抽出されたＮ個のパレート最適解を通過する曲線をパレート曲線Ｆ（Ｐ）とすると、仮最適解Ｐ0は、当該パレート曲線Ｆ（Ｐ）＝０上に存在する。すなわち、Ｆ（Ｐ0）＝０となる。さらに、Ｃｏｌｌｉｎｅａｒｉｔｙ定理によって、要求仕様Ｓ、仮最適解Ｐ0、パレート曲線（一般的には曲面）の瞬時中心点が同一直線上にある。すなわち、仮最適解Ｐ0におけるパレート曲面の接線ｈに直交する直線ｇ上に、仮最適解Ｐ0及び要求仕様Ｓが乗ることになる。
【００４３】
具体的には、以下に示すような式で表される。
【数３】
2010102681.tif 000005
【００４４】
第一式の右辺第一項が、直線ｇを表すベクトルであり、ｔは未知の係数であり、Ｓｐｅｃは要求仕様Ｓに対応する。すなわち、第一式は、直線ｇを、要求仕様Ｓからｔ倍すると、仮最適解Ｐ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を採用する。その後、ステップＳ５７に戻る。
【００５４】
なお、ステップＳ５７乃至Ｓ６１については、パレート最適解について処理する場合には、全体パレートデータ格納部１２に格納されているデータをそのまま用いることができるので、スキップすることができる。
【００５５】
このような処理を実施することによって、従来技術のように、要求仕様を満たせない場合においても、要求仕様を変更して再度同じ処理を実施するような必要はなくなる。すなわち、全体パレートデータ格納部１２に格納されているパレート最適解を何度も生成するような処理を実施することはなく、当該パレート最適解を再活用して、要求仕様の性能項目における要求性能値により近い解（すなわち変更後の仕様）についての回路パラメータを特定することができる。よって、処理時間を短縮することができる。
【００５６】
図５の処理の説明に戻って、出力部１５は、最適解データ格納部１４に格納されている最適解のデータ（回路構成及び回路パラメータ。場合によって逆空間変換後の仮最適解の各性能項目の性能値）を、表示装置や印刷装置などの出力装置に出力する（ステップＳ９）。これによって、ユーザは、採用すべき回路構成及び回路パラメータを得ることができるようになる。なお、仮最適解を出力する場合には、要求仕様との関係がどのようなものであるかを判断することも可能となる。例えば、要求仕様を満たしているのか、満たしていないのかを判断することもできる。出力部１５が、要求仕様を満たしているのか満たしていないのかを判断して出力するようにしても良い。
【００５７】
［実施の形態２］
本技術の第２の実施の形態に係る回路自動設計装置の機能ブロック図を図２０に示す。なお、第１の実施の形態と同じ要素については、同じ参照番号が付されている。本回路自動設計装置は、設計済みだが回路パラメータは未設定のアナログ回路の回路構成データを格納する回路構成ライブラリ格納部２と、各回路構成についての制約条件を格納する制約条件格納部１と、設計者の意図とは別の要因で変動する可能性のあるＰＶＴ（Process, Voltage，Temperature）コーナ設定項目の値を決定するためのデータを保持するＰＶＴコーナ設定データ格納部１６と、ユーザによって指定される要求仕様の仕様データを格納する仕様データ格納部３と、制約条件格納部１と回路構成ライブラリ格納部２と仕様データ格納部３とに格納されているデータを用いて要求仕様を満たす可能性のある回路構成を選択する回路構成選択部４と、回路構成選択部４によって選択された回路構成についてのデータを格納する選択回路構成データ格納部５と、パレート生成条件を格納するパレート生成条件格納部６と、例えば回路構成の種別毎にシミュレーション用の周辺回路についてのデータを格納するテストベンチデータ格納部７と、例えばＳＰＩＣＥなどの回路シミュレータ９と、回路シミュレータ９と連携し且つ制約条件格納部１と選択回路構成データ格納部５と仕様データ格納部３とパレート生成条件格納部６とテストベンチデータ格納部７とＰＶＴコーナ設定データ格納部１６とに格納されているデータを用いて選択回路構成毎にパレート最適解（以下、パレートと呼ぶ。パレート最適解については以下に述べる。）を生成する個別パレート生成処理部８と、個別パレート生成処理部８の処理結果を格納する個別パレートデータ格納部１０と、個別パレートデータ格納部１０に格納されているデータを用いて選択回路構成全てにおけるパレートを生成する全体パレート生成処理部１１と、全体パレート生成処理部１１による処理結果を格納する全体パレートデータ格納部１２と、テストベンチデータ格納部７と仕様データ格納部３と全体パレートデータ格納部１２と回路構成ライブラリ格納部２とに格納されているデータを用いて最適解となる回路構成及び回路構成の各パラメータの値を特定する処理を実施する最適解生成処理部１３と、最適解生成処理部１３による処理結果を格納する最適解データ格納部１４と、最適解データ格納部１４に格納されたデータをユーザに対して例えば表示装置又は印刷装置などの出力装置を介して出力する出力部１５とを有する。最適解生成処理部１３についても回路シミュレータ９と連携する。また、回路シミュレータ９は、回路自動設計装置とは別装置として実装される場合もある。
【００５８】
このようにＰＶＴコーナ設定データ格納部１６を新たに導入して個別パレート生成処理部８で用いる点が第１の実施の形態と異なる点である。
【００５９】
図２１にＰＶＴコーナ設定データ格納部１６に格納されるデータの一例を示す。具体的に図２１の説明をする前に、ＰＶＴコーナ設定項目について述べておく。ＰＶＴコーナ設定項目は、回路シミュレータ９に設定可能な項目であって、設計者の意図とは別に変動する項目である。ＰＶＴコーナ設定項目は、制約条件に規定されている設計変数と重複する項目を含む場合もある。また、制約条件に規定されている設計変数と重複しない項目を含む場合もある。
【００６０】
第１の実施の形態において述べたように制約条件は、設計者が指定することができる設計変数についての条件であり、その値は範囲で指定される場合もある。しかしながら、この範囲の中で特定の値（例えば１μｍ）が適切と判断されてそれに従ってチップを製造しようとしても、実際には１μｍではなく、１．０７μｍとなってしまう場合もあれば９５ｎｍとなってしまう場合もある。同様に、温度の条件として２５℃を前提として製造されても、実際の動作環境は３０℃となってしまう場合もある。動作電圧についても同様に、１．５Ｖが適切な動作電圧として指定されたとしても、実際の動作環境では１．３Ｖしか供給されないかもしれない。このような設計者の意図とは別に変動するような項目について、項目名及び変動範囲を規定するデータ等がＰＶＴコーナ設定データ格納部１６に格納される。
【００６１】
図２１は、以下で述べるコーナシミュレーションを実施する場合に用いられるデータの一例を示している。図２１の例では、各ＰＶＴコーナ設定項目について、最小値（ＭＩＮ）と、代表値（例えば平均値、中央値）（ＴＹＰ）と、最大値（ＭＡＸ）とを登録するようになっている。コーナシミュレーションでは、基本的には各項目の設定値の全組み合わせに対して回路シミュレーションを実施する。従って項目数に対して組み合わせの数が指数関数的に増加して処理負荷が高くなるので、影響が小さい項目や変動幅の小さい項目については例えば代表値のみを設定しておき、組み合わせの数を減らす場合もある。図２１の場合には、項目PolyCDについては代表値のみが設定されている。
【００６２】
また、図２２に、コーナシミュレーションを実施する場合に用いられるデータの他の例を示す。図２２の例では、ＰＶＴコーナ設定項目毎に、当該項目の値の出現範囲データと、組み合わせ情報とが登録されるようになっている。出現範囲データは、そのＰＶＴコーナ設定項目の値の出現分布がどのようなものであるかを示すデータである。例えばＴoxの値の出現分布は、ガウス分布であり、その平均値はμ3であり、分散はσ3である。例えばμ3から±３σ3の範囲で９９％以上のケースをカバーするので、本実施の形態では、図２３に示すように、例えばμ3−３σ3を下限値とし、μ3＋３σ3を上限値とする。また、電圧Ｖについては、例えばフラットな出現分布（すなわち一様）で、中央値ｃを中心に−ａ％から＋ｂ％の範囲で決定される例を示している。温度についても同様である。組み合わせ情報については、図２１でも述べたように、組み合わせの数を減少させるため、項目値の組み合わせるに用いる値のタイプを示す。図２２の例では、Ｌeffの場合には、上限値ｍａｘと下限値ｍｉｎとを組み合わせることを表す組み合わせ情報が登録されている。また、図２２の例でrshncdの場合には、代表値ｔｙｐのみが組み合わせ情報として登録されている。
【００６３】
さらに、図２４に、モンテカルロシミュレーションを実施する場合に用いられるデータの一例を示す。以下でも述べるがモンテカルロシミュレーションを実施する場合には、ＰＶＴコーナ設定項目毎に乱数を複数回発生させてその乱数値の組み合わせにて複数回回路シミュレーションを実施する。図２４の例では、ＰＶＴコーナ設定項目毎に、乱数発生分布データが登録されるようになっている。例えば図２４の例では、Ｌeffに対する乱数値の発生分布はガウス分布であり、その平均値はμ11であり、分散はσ11である。また、図２４の例では、電圧Ｖ及び温度Ｔについては、ｃを中心に、−ａ％から＋ｂ％又はｆを中心に−ｄ％から＋ｅ％まで一様な分布となっている。この乱数発生分布データに従って、該当する項目の乱数値を発生して利用される。
【００６４】
本実施の形態では基本的には個別パレート生成処理部８の処理を以下で述べるような処理に変更するものである。この処理について述べる前に上で述べたようなＰＶＴコーナ設定データ格納部１６を用いる前提について説明する。
【００６５】
パレート曲線自体は図６に示したとおりであるが、製造プロセスのばらつきや、動作環境の変動を考慮せずに、製造プロセスや動作環境についてのパラメータを定格値（nominal value）としてパレート最適解を算出するよりは、以下のような理由から、製造プロセスのばらつきや、動作環境の変動を考慮した上でパレート最適解を算出する方が好ましい。この好ましい理由について図２５を用いて説明する。図２５は、図６と同じように、縦軸でコスト１（小さい方が好ましい性能としてもよい）を表し、横軸はコスト２（小さい方が好ましい性能としてもよい）を表す。そして、図２５では、パレート最適解Ａ乃至Ｄが、定格値を想定して得られたとする。ここで、非劣解Ｃは上で述べたように各種パラメータを定格値として用いた場合に得られる。しかし、パレート最適解Ｃについて製造プロセスや動作環境についてばらつきを考慮すると、範囲Ｃdisp内の×印の点に解が得られるようになる。一方、定格値を用いて算出された１つの解Ｆは、Ｃ支配Ｆの関係にあるので、定格値をベースにした場合にはパレート曲線上に載らない。しかしながら、解Ｆについて製造プロセスや動作環境についてばらつきを考慮しても、範囲Ｃdispより狭く且つ範囲Ｃdispに包含されるような範囲Ｆdisp内の＋印の解しか得られないとする。このような場合に、パレート最適解Ｃは定格値をベースにすればパレート最適解となるが、製造プロセスや動作環境が悪く作用する場合には例えば解Ｃ1となってしまう。一方、解Ｆについては製造プロセスや動作環境が悪くても例えば解Ｆ1が得られる。このような場合、Ｆ1支配Ｃ1という関係が成り立つので、本当にパレート最適解Ｃを採用することが好ましいのかが問題となる。すなわち、定格値をベースにパレート曲線を生成しても、実際に製造されるチップは期待される性能を発揮することができるかもしれないが、歩留まりのことを考えたり、アナログ回路の基本的な非線形性、すなわち性能の振れ易さを考えれば、最悪状態を念頭に設計を行う方が好ましい。
【００６６】
そこで本実施の形態では、図２６に示すように、定格値についての解Ａnominal乃至Ｄnominalを採用するのではなく、各解について製造プロセスや動作環境のばらつきの範囲Ａdisp乃至Ｄdispで最もコストが大きい（すなわち性能が悪い）解Ａ乃至Ｅをベースに支配関係を判断して、パレート最適解Ａ乃至Ｄを特定する。このパレート最適解Ａ乃至Ｄで最悪性能パレート曲線を構成する。
【００６７】
半導体プロセスの微細化に伴って、製造プロセスのばらつきにより、トランジスタの閾値電圧、有効チャネル長等のパラメータは定格値（すなわち期待値）より激しく変動し、その影響を受けてアナログ回路の性能ばらつきが拡大している。また、ＬＳＩ（Large Scale Integrated circuit）の消費電力を削減するために、トランジスタの閾値電圧、チップの電源電圧を限界まで削減しているため、電源電圧、回路動作温度など回路動作環境の変動は、ＬＳＩ、特に飽和領域で動作することの多いアナログ回路性能へ大きく影響している。このような半導体製造プロセスのばらつき、回路動作環境の変動を考慮して、パレート最適解を特定して、それらの影響を可能な限り除去するものである。これによって、チップの歩留まりが飛躍的に向上し（理想的には１００％）、性能についても十分マージンをもって確保できるようになる。
【００６８】
このような前提の下、図２７に従って個別パレート生成処理について説明する。なお、図２７では、図７と同じ処理については、同じステップ番号が付されている。まず、個別パレート生成処理部８は、選択回路構成データ格納部５に格納されている選択回路構成のうち未処理の回路構成を１つ特定する（ステップＳ１１）。そして、特定された回路構成について、制約条件格納部１に格納されている、当該回路構成についての対応制約条件を満たす設計変数（例えばゲート長Ｌやゲート幅Ｗを含む回路パラメータ）を乱数で生成し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１３）。
【００６９】
そして、個別パレート生成処理部８は、最悪性能値取得処理を実施する（ステップＳ１６）。この最悪性能値取得処理については図２８乃至３１を用いて説明する。まず、コーナシミュレーションを実施する場合の処理フローを図２８に示す。
【００７０】
個別パレート生成処理部８は、ＰＶＴコーナ設定データ格納部１６に登録されている各ＰＶＴコーナ設定項目について、ＰＶＴコーナ設定データ格納部１６に格納されている設定条件（図２１の場合にはＭＩＮ、ＴＹＰ及びＭＡＸ、図２２の場合には出現範囲データ及び組み合わせ情報）に基づき採用すべきコーナ値（ＭＩＮ、ＭＡＸ、ＴＹＰのうち指定された値）を特定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１０１）。図２１の場合には、ＭＩＮ、ＴＹＰ、ＭＡＸで数値が指定されているので、これを特定する。図２２の場合には、出現範囲データで分布が規定されていれば、例えば平均値μから±３σの値を特定する。なお、制約条件と同じ項目については、ステップＳ１３又は以下で述べるステップＳ２１で特定された値を平均値μや中央値ｃとして設定して、±３σの値や−ａ％及び＋ｂ％の値を算出する。例えば、制約条件に電圧１Ｖから５Ｖが規定されており、ステップＳ１３又はＳ２１で特定された値が１．５Ｖであれば、１．５ＶをＴＹＰとして特定すると共に、−ａ％（＝−１０％）としてＭＩＮ値「１．３５Ｖ」と＋ｂ％（＝＋１０％）としてＭＡＸ値「１．６５Ｖ」とを算出する。
【００７１】
そして、個別パレート生成処理部８は、各ＰＶＴコーナ設定項目のコーナ値の未処理の組み合わせを１つ特定する（ステップＳ１０３）。さらに、個別パレート生成処理部８は、テストベンチデータ格納部７から、選択された回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部５に格納されている選択回路構成のデータと、制約条件に基づきステップＳ１３又はＳ２１で特定される設計変数の値と、ＰＶＴコーナ設定項目のコーナ値の組み合わせと、仕様データ格納部３に格納されている要求仕様の項目（すなわち性能項目）とを回路シミュレータ９に出力し、回路シミュレータ９に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ９から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１０５）。
【００７２】
そして、個別パレート生成処理部８は、ステップＳ１０１で特定されたコーナ値の全ての組み合わせについて処理したか判断する（ステップＳ１０７）。未処理の組み合わせが存在する場合にはステップＳ１０３に戻る。一方、全ての組み合わせについて処理した場合には、要求仕様で規定されている性能項目の性能値のうち最悪とされる性能値と、当該最悪とされる性能値を生じさせた、制約条件に基づき特定された設計変数の値及びＰＶＴコーナ設定項目のコーナ値の組み合わせを特定し、メインメモリなどの記憶装置に格納する（ステップＳ１０９）。
【００７３】
ここで最悪とされる性能とは、ステップＳ１０５でＰＶＴコーナ設定項目のコーナ値の全ての組み合わせについて算出された性能値のばらつき空間Ωfに属する他の全ての性能Ｐjと比べても悪い性能Ｐwである。より具体的には、最適＝最小と仮定すると（図２６等のグラフにおいて左下の方向が最適な方向）、各ＰＶＴコーナ設定項目のコーナ値のどの組み合わせｊについての性能Ｐj（性能項目はｎ個で、Ｐjはｎ次元ベクトル）の各性能項目ｉの値Ｐjiより、最悪とされる性能Ｐwの各性能項目値Ｐwiの方が大きいということである。
【数４】
2010102681.tif 000006
より具体的には、以下のように表される。
【数５】
2010102681.tif 000007
これは、全ての性能項目値が、性能ばらつき空間Ωfに属する全ての性能Ｐjの中で最大となる性能Ｐwを最悪としている。但し、これは一例であって、他の何らかの評価式で各性能項目を評価してその評価式の値が最も大きくなるような性能を最悪と定義するようにしても良い。
【００７４】
なお、ステップＳ１０９で格納されるデータは、例えば図２９に示すようなデータである。図２９の例では、回路構成のＩＤに対応付けて、設計変数１乃至ｋの値と、ＰＶＴコーナ設定項目１乃至ｐの値（設計変数と一致する項目については制約条件によって特定された値に対する調整値）と、性能項目１乃至ｎの値とが登録されるようになっている。なお、ＰＶＴコーナ設定項目でもある設計変数の場合には、ステップＳ１３又はＳ２１で設定された値を登録しておく。
【００７５】
以上のような処理を実施することにより、１つの制約条件セットを特定した場合における最悪性能を特定することができる。そして元の処理に戻る。
【００７６】
図２８の処理フローは、コーナシミュレーションで最悪性能を特定する処理フロー例であったが、適用可能なアルゴリズムはコーナシミュレーションに限定されない。図３０に、モンテカルロシミュレーションを適用する場合の処理フローを示す。
【００７７】
まず、個別パレート生成処理部８は、ＰＶＴコーナ設定データ格納部１６に登録されている各ＰＶＴコーナ設定項目について、乱数発生範囲を特定する（ステップＳ１１１）。図２４の例で、乱数発生分布データが例えばガウス分布で規定されていれば、平均値μ及び分散σの値を特定する。なお、制約条件と一致するＰＶＴコーナ設定項目については、ステップＳ１３又は以下で述べるステップＳ２１で特定された値を平均値μや中央値ｃとして用い、分散σや範囲を規定するａ及びｂ等をそのまま用いる。例えば、制約条件に電圧１Ｖから５Ｖが規定されており、ステップＳ１３又はＳ２１で特定された値が１．５Ｖであれば、１．５Ｖを中央値として特定すると共に、−ａ％（＝−１０％）として乱数発生下限値「１．３５Ｖ」と＋ｂ％（＝＋１０％）として乱数発生上限値「１．６５Ｖ」とを範囲として算出する。
【００７８】
さらに、個別パレート生成処理部８は、カウンタｎを１に初期化し（ステップＳ１１３）、ステップＳ１１１で特定された各乱数発生範囲に従って、各ＰＶＴコーナ設定項目の値を乱数で発生させ、例えばメインメモリなどの記憶装置に格納する（ステップＳ１１５）。
【００７９】
さらに、個別パレート生成処理部８は、テストベンチデータ格納部７から、選択された回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部５に格納されている選択回路構成のデータと、制約条件に基づきステップＳ１３又はＳ２１で特定される設計変数の値と、ＰＶＴコーナ設定項目の乱数値の組み合わせと、仕様データ格納部３に格納されている要求仕様の項目（すなわち性能項目）とを回路シミュレータ９に出力し、回路シミュレータ９に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ９から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１１７）。
【００８０】
そして、個別パレート生成処理部８は、ｎが予め定められた上限値Ｎを超えたか判断する（ステップＳ１１９）。ｎがＮ以下である場合にはステップＳ１１５に戻る。一方、ｎがＮを超えた場合には、要求仕様で規定されている性能項目の性能値のうち最悪とされる性能値と、当該最悪とされる性能値を生じさせた、制約条件に基づき特定された設計変数の値及びＰＶＴコーナ設定項目の乱数値の組み合わせを特定し、メインメモリなどの記憶装置に格納する（ステップＳ１２１）。ここで格納されるデータについても図２９に示すようなフォーマットのデータである。また最悪とされる性能については、上で述べたとおりである。そして元の処理に戻る。
【００８１】
以上のような処理を実施することにより、モンテカルロシミュレーションであっても、最悪性能を特定することができる。
【００８２】
図２７の処理の説明に戻って、個別パレート生成処理部８は、ステップＳ１６で得られた性能項目の性能値セットが、解空間においてパレート最適解を構成するかを、これより前に選択された各パレート最適解との支配関係を確認することによって判断し、判断結果によってパレートサンプリング集合を更新する（ステップＳ１７）。すなわち、ステップＳ１６で得られた性能項目の性能値セットで構成される解が、他の解を支配している場合には、当該他の解を、パレート最適解の集合であるパレートサンプリング集合から除去し、ステップＳ１６で得られた解をパレートサンプリング集合に追加し、逆に他の解に支配されている場合には、ステップＳ１６で得られた解を破棄する。
【００８３】
パレートサンプリング集合は、例えば個別パレートデータ格納部１０に図３１に示すようなデータとして格納される。図３１の例では、回路構成の識別子と、設計変数１乃至ｋの値と、ＰＶＴコーナ設定項目１乃至ｐの値と、性能項目１乃至ｎの値とが登録されるようになっている。変数、ＰＶＴコーナ設定項目や性能項目の数は一例であって、これより多い場合もある。このように、１つのパレート最適解についてのデータが１レコードとして登録される。そして、１つの回路構成についてのレコード群が、パレートサンプリング集合を構成する。また、回路構成のデータについても、個別パレートデータ格納部１０に格納するものとする。
【００８４】
その後、個別パレート生成処理部８は、パレート生成条件格納部６に格納されているパレート生成条件を満たしたか判断する（ステップＳ１９）。パレート生成条件は、第１の実施の形態について述べたものと同じであり、これ以上述べない。
【００８５】
パレート生成条件を満たしていない場合には、個別パレート生成処理部８は、上で述べたような周知の多目的最適化処理（例えばcrossover処理やmutation処理）により、制約条件を満たすように設計変数を更新し、例えばメインメモリなどの記憶装置に格納する（ステップＳ２１）。そしてステップＳ１６に戻る。
【００８６】
一方、パレート生成条件を満たしている場合には、個別パレート生成処理部８は、全ての選択回路構成について処理したか判断する（ステップＳ２３）。未処理の選択回路構成が存在している場合にはステップＳ１１に戻る。一方、未処理の選択回路構成が存在しない場合には、元の処理に戻る。
【００８７】
このような処理を実施することによって、回路構成毎に、パレート最適解の集合が生成されるようになる。模式的に解空間を２次元空間として表せば、図１０に示すようにパレート曲線を構成する解が複数得られるようになる。
【００８８】
なお、細かく示せば図１０は図２６に示すような関係を表している。図２６のパレート曲線（３次元以上でパレート曲面）、すなわち非劣解Ｐw_paretoは以下のように表される。
【数６】
2010102681.tif 000008
なお、ＰjworstとＰiworstの間の記号の意味は、以下のとおりである。
【数７】
2010102681.tif 000009
【００８９】
このように、解空間Ωpに属する、定格値についての解Ｐi及びＰjについて、解Ｐiの制約条件に従っている最悪性能の解Ｐiworstが、任意の解Ｐjの制約条件に従っている最悪性能の解Ｐjworstに対して非劣解であるという条件で、最悪性能のパレート曲線が形成される。
【００９０】
また、全体パレートデータ格納部１２には、図３２に示すようなデータが格納される。図３１に示したようなレコード群から、全選択回路構成についてのパレート最適解に対応するレコードのみが、図３２にも含まれるようになる。すなわち、回路構成の識別子と、設計変数１乃至ｋの値と、ＰＶＴコーナ設定項目１乃至ｐの値と、性能項目１乃至ｎの値とが登録されるようになっている。なお、該当する回路構成のデータについても、全体パレートデータ格納部１２に格納するものとする。
【００９１】
以上のような処理を実施した後、図５のステップＳ５以降の処理を第１の実施の形態とほぼ同じように実施すれば、多次元の要求仕様に対して、複数回路構成を含む回路構成ライブラリから、プロセスのばらつき及び動作環境の変動を考慮して、製造時に理想的には１００％に近い歩留まりを実現できる最適解を自動的に特定できるようになる。
【００９２】
なお、ステップＳ５９で値を決定する回路パラメータのうちＰＶＴコーナ設定項目と一致する項目については、全体パレートデータ格納部１２に格納されている値で調整したものを採用する。
【００９３】
さらに、図５のステップＳ９で、逆空間変換後の仮最適解の各性能項目の性能値を出力するようにしても良い。
【００９４】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図１及び図２０に示した回路自動設計装置の構成は一例であって、必ずしも実際にプログラム構成と一致しない場合もある。また、データ格納部の構成についても、統合や分割も可能である。例えば、回路構成ライブラリ格納部２と制約条件格納部１とを統合するようにしても良い。
【００９５】
また、処理フローについても処理結果が同じであれば処理順番を入れ替えたり並列実行するようにしても良い。特に回路シミュレータ９については別装置で実装して、個別パレート生成処理部８が、複数の回路シミュレータ９に対して異なる回路構成についてのシミュレーションを実施させるようにしても良い。
【００９６】
さらに、上ではコーナシミュレーションやモンテカルロシミュレーションを実施する例を示しているが、統計解析等の他の手法によって最悪性能を特定できれば、それを採用するようにしても良い。
【００９７】
上で述べた例では、スタンドアロン型の実施の形態を説明したが、クライアント−サーバ型コンピュータシステムによって実現するようにしても良い。さらに、ステップＳ５１について一括して実施することなく、空間変換Ｐtranの算出式のみを生成して保持しておき、距離を計算する都度、空間変換を行うようにしても良い。
【００９８】
なお、上記回路自動設計装置は、コンピュータ装置であって、図３３に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９９】
本技術の実施の形態をまとめると以下のようになる。
【０１００】
本回路自動設計方法は、（Ａ）回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、（Ｂ）抽出された各回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、シミュレーション結果から要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、回路構成に対応付けてパレート最適解の各々について設計変数の各々の該当値と要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、（Ｃ）個別回路構成パレートデータ格納部に格納されている、抽出された全ての回路構成についての全てのパレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、（Ｄ）要求仕様の各項目について値の分布をバランスさせる解仕様空間の空間変換が実施された後の解仕様空間において、全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、（Ｅ）全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解から、空間変換後の解仕様空間における、仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から仮最適解についての回路構成を特定するステップと、（Ｆ）仮最適解を、特定された回路構成についての各設計変数の値にマッピングするステップと、（Ｇ）特定された回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップとを含む。
【０１０１】
このようにすれば、要求仕様を満たす又は満たさない場合においてもより要求仕様に近い仮最適解を特定でき、要求仕様が満たされない場合における処理の繰り返しを行わずに済むので、処理時間を短縮することができる。
【０１０２】
なお、上で述べた個別パレート生成ステップが、回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を１回分のシミュレーション結果として採用する採用ステップを含むようにしてもよい。
【０１０３】
このように、最悪の性能を示した結果を採用してパレート最適解の集合を生成した上で、上で述べた処理を行って回路構成及び設計変数値を特定し、当該回路構成及び設計変数値を用いて実際に製造すれば、最悪ケースであっても要求仕様に合致する又は要求仕様に最も近い回路が得られることが期待される。すなわち製造ばらつきなどの最悪ケースを考慮した上で設計が行えるので、歩留まりの飛躍的な改善が期待される。
【０１０４】
また、本回路自動設計方法は、マッピングによって得られた、回路構成についての各設計変数の値で、回路シミュレーションを実施し、空間変換の逆空間変換後の仮最適解を実現可能か判断するステップをさらに含むようにしても良い。この場合、出力ステップが、実現可能と判断された場合に実行されるようにしてもよい。実際に同様の性能を奏する回路が実現できるかを確認した上で出力するものである。
【０１０５】
また、本回路自動設計方法において、実現不可能と判断された場合には、仮最適解の近傍のパレート最適解から、次の候補解を特定し、当該仮最適解の近傍のパレート最適解から次の候補解についての回路構成を特定するステップと、次の候補解を、特定された回路構成についての各設計変数の値にマッピングするステップと、マッピングによって得られた、回路構成についての各設計変数の値で、回路シミュレーションを実施し、逆空間変換後の次の候補解を実現可能か判断するステップと、実現可能と判断された場合には、回路構成及び当該回路構成についての各設計変数の値を出力するステップとをさらに含むようにしてもよい。このように、実際に同様の性能を奏する回路が実現できない場合には、仮最適解の近傍から次の候補で確かめることによって、次に適切な回路及び回路設計値のセットを特定するものである。
【０１０６】
さらに、上で述べた採用ステップが、上記特定項目について指定されている乱数発生範囲データに基づき各特定項目の値を乱数で生成するステップと、生成された各特定項目の乱数値のセットについて回路シミュレーションを実施するステップとを含む。例えばモンテカルロシミュレーションにて最悪の性能を示す結果を特定するものである。
【０１０７】
また、上で述べた採用ステップが、特定項目について指定されているコーナ値設定データに基づき各特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、各特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて回路シミュレーションを実施するステップとをさらに含むようにしてもよい。例えばコーナシミュレーションにて最悪の性能を表す結果を特定するようにしても良い。
【０１０８】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１０９】
（付記１）
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
をコンピュータに実行させる回路自動設計プログラム。
【０１１０】
（付記２）
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を１回分の前記シミュレーション結果として採用する採用ステップ
を含む付記１記載の回路自動設計プログラム。
【０１１１】
（付記３）
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記空間変換の逆空間変換後の前記仮最適解を実現可能か判断するステップ
をさらに前記コンピュータに実行させ、
前記出力ステップが、実現可能と判断された場合に実行される
付記１又は２記載の回路自動設計プログラム。
【０１１２】
（付記４）
実現不可能と判断された場合には、前記仮最適解の近傍のパレート最適解から、次の候補解を特定し、当該仮最適解の近傍のパレート最適解から前記次の候補解についての回路構成を特定するステップと、
前記次の候補解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記逆空間変換後の前記次の候補解を実現可能か判断するステップと、
実現可能と判断された場合には、前記回路構成及び当該回路構成についての各設計変数の値を出力するステップと、
をさらに前記コンピュータを実行させるための付記３記載の回路自動設計プログラム。
【０１１３】
（付記５）
前記採用ステップが、
前記特定項目について指定されている乱数発生範囲データに基づき各前記特定項目の値を乱数で生成するステップと、
生成された各前記特定項目の乱数値のセットについて前記回路シミュレーションを実施するステップと、
を含む付記２記載の回路自動設計プログラム。
【０１１４】
（付記６）
前記採用ステップが、
前記特定項目について指定されているコーナ値設定データに基づき各前記特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、
各前記特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて前記回路シミュレーションを実施するステップと、
を含む付記２記載の回路自動設計プログラム。
【０１１５】
（付記７）
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
を含み、コンピュータに実行される回路自動設計方法。
【０１１６】
（付記８）
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を１回分の前記シミュレーション結果として採用する採用ステップ
を含む付記７記載の回路自動設計方法。
【０１１７】
（付記９）
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出する回路構成選択手段と、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成処理手段と、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納する全体パレート生成処理手段と、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出し、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定し、前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングする最適解生成処理手段と、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力手段と、
を有する回路自動設計装置。
【０１１８】
（付記１０）
前記個別パレート生成手段が、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を１回分の前記シミュレーション結果として採用する
付記９記載の回路自動設計装置。
【符号の説明】
【０１１９】
１  制約条件格納部    ２  回路構成ライブラリ格納部
３  仕様データ格納部    ４  回路構成選択部
５  選択回路構成データ格納部    ６  パレート生成条件格納部
７  テストベンチデータ格納部    ８  個別パレート生成処理部
９  回路シミュレータ    １０  個別パレートデータ格納部
１１  全体パレート生成処理部    １２  全体パレートデータ格納部
１３  最適解生成処理部    １４  最適解データ格納部
１５  出力部    １６  ＰＶＴコーナ設定データ格納部
【図１】
2010102681.tif 000010
【図２】
2010102681.tif 000011
【図３】
2010102681.tif 000012
【図４】
2010102681.tif 000013
【図５】
2010102681.tif 000014
【図６】
2010102681.tif 000015
【図７】
2010102681.tif 000016
【図８】
2010102681.tif 000017
【図９】
2010102681.tif 000018
【図１０】
2010102681.tif 000019
【図１１】
2010102681.tif 000020
【図１２】
2010102681.tif 000021
【図１３】
2010102681.tif 000022
【図１４】
2010102681.tif 000023
【図１５】
2010102681.tif 000024
【図１６】
2010102681.tif 000025
【図１７】
2010102681.tif 000026
【図１８】
2010102681.tif 000027
【図１９】
2010102681.tif 000028
【図２０】
2010102681.tif 000029
【図２１】
2010102681.tif 000030
【図２２】
2010102681.tif 000031
【図２３】
2010102681.tif 000032
【図２４】
2010102681.tif 000033
【図２５】
2010102681.tif 000034
【図２６】
2010102681.tif 000035
【図２７】
2010102681.tif 000036
【図２８】
2010102681.tif 000037
【図２９】
2010102681.tif 000038
【図３０】
2010102681.tif 000039
【図３１】
2010102681.tif 000040
【図３２】
2010102681.tif 000041
【図３３】
2010102681.tif 000042