説明

自動回路設計用パレートデータ生成プログラム、方法及び装置、並びに自動回路設計プログラム、方法及び装置

【課題】設計者における最適化処理時間を削減しつつ、要求仕様を満たす又は満たさない場合でも当該要求仕様に近い回路を自動設計する。
【解決手段】特定の機能を有する回路構成とプロセス制約条件との組み合わせにて、要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、さらに回路構成及びプロセス制約条件との全ての組み合わせについてのパレート最適解と、各プロセス制約条件についてのパレート最適解とをさらに抽出する。このようなデータを設計者に頒布することによって、パレート最適解を生成する時間を節約することができるようになり、設計者は、このようなデータを用いて希望する機能を有する最適な回路を設計することができるようになる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、回路の自動設計技術に関する。
【背景技術】
【0002】
アナログ・デジタル混載設計の増加や、アナログ設計者の不足により、過去に設計されたアナログ回路をIP(Intellectual Property)データとして活用する必要性が高まっている。IPデータを再利用する際には、回路の仕様に応じて指定されたプロセスでの最適化を行うか、又は最適なプロセスを選択する必要があり、プロセスを考慮した最適化技術が求められている。
【0003】
現在、回路の自動設計及び最適化のための様々な技術が存在しているが、設計者が、回路シミュレーションを何度も繰り返し実施する必要があり、回路構成の決定やその回路構成のパラメータの決定に、数日かかる場合もある。当然、このような自動設計及び最適化技術を用いずに、人手で設計及び最適化を行えば、相当長時間かかるだけではなく、設計者のスキルによって、品質や設計期間にばらつきが生じるという問題もある。さらに、プロセス微細化によって最適化作業の期間が増大する傾向にある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平4−260973号公報
【特許文献2】米国特許公開公報第2005/0257178号公報
【特許文献3】特開2005−55960号公報
【特許文献4】WO2006/039165号公報
【特許文献5】米国特許第6968517号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上のように、設計者における自動設計及び最適化のための処理時間を飛躍的に短縮するような技術は存在していない。
【0006】
従って、本技術の目的は、設計者における自動設計及び最適化のための処理時間を短縮するための新規な技術を提供することである。
【課題を解決するための手段】
【0007】
第1の態様に係る自動回路設計用パレートデータ生成方法は、(A)回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、(B)回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されているプロセス制約条件と抽出された回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、シミュレーション結果から要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、プロセス制約条件の識別子と回路構成の識別子との組み合わせに対応付けてパレート最適解の各々について設計変数の各々の該当値と要求仕様の各項目の該当値とを個別パレートデータ格納部に格納する個別パレート生成ステップと、(C)プロセス制約条件の各々について、個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全てのパレート最適解において非劣解となるパレート最適解を抽出し、プロセス制約条件の各々について、当該パレート最適解について該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とをプロセス別パレートデータ格納部に格納するステップと、(D)個別パレートデータ格納部に格納されている、抽出された全ての回路構成についての全てのパレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する回路構成の識別子とプロセス制約条件の識別子との組み合わせと設計変数の各々の該当値と要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップとを含む。
【0008】
第2の態様に係る自動回路設計方法は、(A)製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全てのプロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付けるステップと、(B)回路設計の要求仕様についての入力を受け付けるステップと、(C)上記指定が第1の最適化である場合には、各プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部から特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、上記指定が第2の最適化である場合には、プロセス制約条件と回路構成との組み合わせについてのパレート最適解に該当する回路構成の識別子とプロセス制約条件の識別子との組み合わせと設計変数の各々の該当値と要求仕様の各項目の該当値とを格納する全体パレートデータ格納部からデータをパレート最適解データとして読み出すステップと、(D)要求仕様の各項目について値の分布をバランスさせる、要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出されたパレート最適解データに含まれるパレート最適解に対して空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、(E)読み出されたパレート最適解データに含まれるパレート最適解に対して空間変換を実施した後のパレート最適解から、空間変換後の解仕様空間における、仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から仮最適解についての回路構成を特定するステップと、(F)仮最適解を、特定された回路構成についての各設計変数の値にマッピングするステップと、(G)特定された回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップとを含む。
【発明の効果】
【0009】
設計者における自動設計及び最適化のための処理時間を短縮できるようになる。
【図面の簡単な説明】
【0010】
【図1】本技術の実施の形態における全体構成の概念図である。
【図2】本技術の第1の実施の形態における新アナログIPデータ生成装置の機能ブロック図である。
【図3】回路構成ライブラリ格納部に格納されるデータの一例を示す図である。
【図4】制約条件格納部に格納されるデータの一例を示す図である。
【図5】仕様データ格納部に格納されるデータの一例を示す図である。
【図6】プロセス制約条件格納部に格納されるデータの一例を示す図である。
【図7】プロセス制約条件格納部に格納されるデータの他の例を示す図である。
【図8】本技術の実施の形態における新IPデータ生成処理の処理フローを示す図である。
【図9】パレートを説明するための模式図である。
【図10】個別パレート生成処理の処理フローを示す図である。
【図11】テストベンチデータ格納部に格納されるデータを模式的に示す図である。
【図12】個別パレートデータ格納部に格納されるデータの一例を示す図である。
【図13】パレートサンプリング集合を模式的に示す図である。
【図14】個別パレート生成処理において生成されるパレートサンプリング集合を模式的に示す図である。
【図15】プロセス別パレート生成処理の処理フローを示す図である。
【図16】特定プロセスパレート生成処理の処理フローを示す図である。
【図17】プロセス別パレート生成処理を説明するための模式図である。
【図18】プロセス別パレート生成処理を説明するための模式図である。
【図19】プロセス別パレートデータ格納部に格納されるデータの一例を示す図である。
【図20】プロセス別パレート生成処理を説明するための模式図である。
【図21】全体パレート生成処理の処理フローを示す図である。
【図22】全体パレート生成処理を説明するための模式図である。
【図23】全体パレート生成処理を説明するための模式図である。
【図24】全体パレートデータ格納部に格納されるデータの一例を示す図である。
【図25】自動最適回路設計装置の機能ブロック図である。
【図26】回路設計処理の処理フローを示す図である。
【図27】最適解生成処理の処理フローを示す図である。
【図28】仮最適解探索処理の処理フローを示す図である。
【図29】仮最適解の探索を模式的に示す図である。
【図30】仮最適解に対応する回路構成を特定する処理を説明するための模式図である。
【図31】本技術の第2の実施の形態における新アナログIPデータ生成装置の機能ブロック図である。
【図32】PVTコーナ設定データ格納部に格納されるデータの一例を示す図である。
【図33】PVTコーナ設定データ格納部に格納されるデータの一例を示す図である。
【図34】出現分布を説明するための模式図である。
【図35】PVTコーナ設定データ格納部に格納されるデータの一例を示す図である。
【図36】定格値についてパレート曲線を形成する際の問題を説明するための図である。
【図37】最悪性能についてのパレート曲線について説明するための図である。
【図38】第2の実施の形態における個別パレート生成処理の処理フローを示す図である。
【図39】最悪性能値取得処理の第1の例を示す図である。
【図40】生成されるデータの一例を示す図である。
【図41】最悪性能値取得処理の第2の例を示す図である。
【図42】第2の実施の形態における個別パレートデータ格納部に格納されるデータの一例を示す図である。
【図43】コンピュータの機能ブロック図である。
【図44】実施の形態における新アナログIPデータ生成処理の処理フローを示す図である。
【図45】実施の形態における回路設計処理の処理フローを示す図である。
【図46】実施の形態における回路設計処理の処理フローを示す図である。
【図47】実施の形態における新アナログIPデータ生成装置の機能ブロック図である。
【図48】実施の形態における自動最適回路設計装置の機能ブロック図である。
【発明を実施するための形態】
【0011】
まず、本技術の実施の形態における概要を、図1を用いて説明する。従来から、過去の設計資産(以下、IPデータと呼ぶ)を活用して、アナログ回路の設計時間を短縮することが行われてきた。本実施の形態では、さらに設計時間を短縮するために、新たなアナログIPデータ300を以下に述べるように定義して、当該新アナログIPデータ300の生成を行う新アナログIPデータ生成装置100を導入する。この新アナログIPデータ生成装置100により生成された新アナログIPデータ300は、当該新アナログIPデータ300を用いて最適な回路構成についてのデータを生成する自動最適回路設計装置200(又はこの自動最適回路設計装置200を実現するためのプログラム)と共に、実際に回路設計を行うユーザに提供される。ユーザは、自動最適回路設計装置200に指示して、新アナログIPデータ300を処理させることによって、要求仕様に近い回路構成についてのデータを短時間に取得することができるようになる。
【0012】
[実施の形態1]
第1の実施の形態に係る新アナログIPデータ生成装置100の機能ブロック図を図2に示す。本アナログIPデータ生成装置100は、(A)設計済みだが回路パラメータは未設定のアナログ回路の回路構成データを格納する回路構成ライブラリ格納部2と、(B)各回路構成についての制約条件(プロセスについての制約条件を除く)を格納する制約条件格納部1と、(C)新アナログIPデータ300についての要求仕様の仕様データを格納する仕様データ格納部3と、(D)回路設計時に採用される可能性のある複数のプロセス制約条件を格納するプロセス制約条件格納部13と、(E)制約条件格納部1と回路構成ライブラリ格納部2と仕様データ格納部3とに格納されているデータを用いて要求仕様を満たす可能性のある回路構成を選択する回路構成選択部4と、(F)回路構成選択部4によって選択された回路構成についてのデータを格納する選択回路構成データ格納部5と、(G)パレート生成条件を格納するパレート生成条件格納部6と、(H)例えば回路構成の種別毎にシミュレーション用の周辺回路についてのデータを格納するテストベンチデータ格納部7と、(I)例えばSPICE(Simulation Program with Integrated Circuit Emphasis)などの回路シミュレータ9と、(J)回路シミュレータ9と連携し且つ制約条件格納部1と選択回路構成データ格納部5と仕様データ格納部3とパレート生成条件格納部6とテストベンチデータ格納部7とプロセス制約条件格納部13とに格納されているデータを用いて選択回路構成毎にパレート最適解(以下、パレートと呼ぶ。パレート最適解については以下に述べる。)を生成する個別パレート生成処理部8と、(K)個別パレート生成処理部8の処理結果を格納する個別パレートデータ格納部10と、(L)個別パレートデータ格納部10に格納されているデータを用いて全選択回路構成及び全プロセス制約条件についてのパレートを生成する全体パレート生成処理部11と、(M)全体パレート生成処理部11による処理結果を格納する全体パレートデータ格納部12と、(N)個別パレートデータ格納部10に格納されているデータを用いて各プロセス制約条件についてのパレートを生成するプロセス別パレート生成処理部14と、(O)プロセス別パレート生成処理部14により生成されたデータを格納するプロセス別パレートデータ格納部15とを有する。
【0013】
なお、回路シミュレータ9は、新アナログIPデータ生成装置100とは別装置として実装される場合もある。
【0014】
回路構成ライブラリ格納部2には、例えば、図3に示すようなデータ構造にて回路構成を保持している。すなわち、各回路構成に当該回路構成の性質や機能を表すタグを付して、図3に示すように階層型のデータ構造を構成し、特定の性質や機能を有する回路構成を検索できるようにしている。図3の例では、第1階層としてRF回路、フィルタ、リニアアンプ、レギュレータといった機能分けが行われており、RF回路の第2階層としてLNA(低雑音増幅器:Low Noise Amplifier)、VCO(電圧制御発信器:Voltage Controlled Oscillator)、ミキサー、パワーアンプなどが含まれており、リニアアンプの第2階層としてOPAMP(オペアンプ)と、バッファと、OTA(Operational Transconductance Amplifier)などが含まれる。図3では、バッファについて2つの異なる回路構成が登録されている様子が模式的に示されている。例えば、第2階層レベルの回路を、以下では「機能」として把握する。
【0015】
また、制約条件格納部1には、例えば図4に示すようなデータが回路構成毎に格納されている。図4に示すように、制約条件には、直接制約条件と、間接制約条件とが含まれている。直接制約条件は、回路動作原理による制約条件(マッチング条件、サイズ比例条件、パラメータ間の制約条件)、システム要求による制約条件(動作電圧、温度、入力条件)を含む。プロセスなどの製造条件については、本実施の形態では制約条件とは別に定義されるので、制約条件格納部1に格納される制約条件には含まれない。間接制約条件は、必須性能から回路構成パラメータへの制限となる条件である。図4の例では、面積(Area)についての条件が規定されている。この他にも、消費電力、THD(Total harmonic distortion)、DC利得、帯域幅などの制約条件が規定される場合もある。制約条件は、設計者が指定することができる設計変数についての条件である。図4に示すように、値の幅が指定される場合もある。
【0016】
さらに、図5に仕様データ格納部3に格納されるデータの一例を示す。要求仕様は、回路全体で満足すべき特性を各項目について規定したものであり、図5の例では、消費電流、THD、DC利得、帯域幅といった項目毎に値が設定されている。項目については他の項目を採用することも可能である。値については、新アナログIPデータ300の特性として規定される。なお、本実施の形態では、仕様データ格納部3には、新アナログIPデータ300をどのような機能について生成するかについての指定データについても格納されているものとする。
【0017】
また、図6にプロセス制約条件格納部13に格納されるデータの一例を示す。プロセス制約条件は、設計された回路を含む半導体チップを製造する際の制約条件であって、例えば図6に示すように、使用可能なテクノロジの世代(例えば最短配線長45nmや90nmなど)が含まれる。なお、各々さらに詳しい条件、例えばゲート長L及びゲート幅Wなどを含むようにしても良い。また、図7に示すように、テクノロジの世代は同一(例えば45nm)でも、性能の違い(低リーク又は高リーク)によってプロセス制約条件を区別するようにしても良い。図7の例では、ゲート長L及びゲート幅Wについてはプロセス制約条件AとBとで同じとなっているが、図6のように異なるテクノロジ世代についてのプロセス制約条件を混在させるようにしてもよい。さらに、コスト別にプロセス制約条件を規定するようにしても良い。設計を行うユーザは、製造コストを考慮して最適化を行うことを欲する場合があるためである。なお、本実施の形態では、プロセス制約条件は、全回路構成について共通である。
【0018】
次に図8乃至図24を用いて、新アナログIPデータ生成装置100の動作について説明する。まず、回路構成選択部4は、仕様データ格納部3に格納されている指定機能データから、未処理の回路機能を1つ特定する(図8:ステップS1)。そして、回路選択部4は、特定された回路機能(例えば「バッファ」)を有する回路構成のうち、仕様データ格納部3に格納されている要求仕様を満たす可能性がある回路構成を、回路構成ライブラリ格納部2から選択する(ステップS3)。上でも述べたように、各回路構成の制約条件は、制約条件格納部1に格納されており、要求仕様の各項目の値を明らかに満たさないような制約条件が規定されている回路構成を、要求仕様を満たす可能性なしとして除外する。回路構成選択部4は、選択した回路構成についてのデータを選択回路構成データ格納部5に格納する。
【0019】
次に、個別パレート生成処理部8は、個別パレート生成処理を実施する(ステップS5)。この個別パレート生成処理については図9乃至図14を用いて説明する。
【0020】
まず、パレートについて図9を用いて説明しておく。ここでは要求仕様の項目が2つだけであると仮定し、第1の項目を縦軸にコスト1として設定し、より小さい値ほどコストが低いものとし、第2の項目を横軸にコスト2として設定し、より小さい値ほどコストが低いものとする。ここで、特定の回路パラメータ・セットで回路シミュレーションを実施してコスト1及び2の値を特定すると、図9に示すような2次元空間(解空間又は解仕様空間とも呼ぶ)にプロットすることができる。図9の例ではA乃至Fの6つの点(以下、解と呼ぶ)が得られている。このような状況において、当然ながらコスト1も2も小さい値の方が好ましいので、原点に近いほど良い解である。そして「X支配Y」とは、Yの成分(即ちコスト)は全てXの成分より劣っていることを示す。図9のような2次元空間では、コスト1も2も小さいBの方がEよりも良い解であるから「B支配E」であり、同様にCの方がFよりも良い解であるから「C支配F」である。一方AとBとを比較すると、Aの方がコスト2は小さいがコスト1はBの方が小さいので「A支配B」とは言えない。A乃至Dについてはこのように支配関係が成り立たない。このように解空間に他の解に支配されない解、すなわち非劣解をパレート最適解と呼ぶ。そして、パレート最適解を結ぶ曲線(3次元以上の空間であれば曲面)Aをパレート曲線(又は曲面)と呼ぶ。
【0021】
このような前提の下、図10に従って個別パレート生成処理について説明する。まず、個別パレート生成処理部8は、選択回路構成データ格納部5に格納されている、選択された回路構成のうち未処理の回路構成を1つ特定する(ステップS11)。さらに、個別パレート生成処理部8は、プロセス制約条件格納部13に格納されている複数のプロセス制約条件のうち、未処理のプロセス制約条件を1つ特定する(ステップS13)。
【0022】
そして、個別パレート生成処理部8は、特定された回路構成について、制約条件格納部1に格納されている、当該回路構成についての対応制約条件を満たす設計変数と、特定されたプロセス制約条件を満たす設計変数(例えばゲート長Lやゲート幅Wを含む回路パラメータ)を乱数で生成し、例えばメインメモリなどの記憶装置に格納する(ステップS15)。
【0023】
その後、個別パレート生成処理部8は、テストベンチデータ格納部7から、特定された回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部5に格納されている、処理に係る回路構成のデータと、ステップS15で生成した設計変数と、仕様データ格納部3に格納されている要求仕様の項目(すなわち性能項目)とを回路シミュレータ9に出力し、回路シミュレータ9に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ9から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する(ステップS17)。
【0024】
テストベンチデータ格納部7から読み出される周辺回路のデータの一例を図11に示す。図11の例では、中央に処理に係る回路構成となる差動入出力バッファ回路が示されており、電源回路や性能項目の測定に必要な回路等が、電源端子や入出力端子などに接続されるようになっている。このような周辺回路については周知であり、これ以上説明しない。
【0025】
また、回路シミュレーションの内容についても周知であるから、これ以上説明しない。
【0026】
その後、個別パレート生成処理部8は、ステップS17で得られた性能項目の性能値セットが、解空間においてパレート最適解を構成するかを、これより前に選択された各パレート最適解との支配関係を確認することによって判断し、判断結果によってパレートサンプリング集合を更新する(ステップS19)。すなわち、ステップS17で得られた性能項目の性能値セットで構成される解が、他の解を支配している場合には、当該他の解を、パレート最適解の集合であるパレートサンプリング集合から除去し、ステップS17で得られた解をパレートサンプリング集合に追加し、逆に他の解に支配されている場合には、ステップS17で得られた解を破棄する。
【0027】
パレートサンプリング集合は、例えば個別パレートデータ格納部10に図12に示すようなデータとして格納される。図12の例では、回路構成の識別子と、適用したプロセス制約条件の識別子と、設計変数1乃至3の値と、性能項目1乃至4の値とが登録されるようになっている。変数や項目の数は一例であって、これより多い場合もある。このように、1つのパレート最適解についてのデータが1レコードとして登録される。そして、1つの回路構成と1つのプロセス制約条件との組み合わせについてのレコード群が、パレートサンプリング集合を構成する。
【0028】
その後、個別パレート生成処理部8は、パレート生成条件格納部6に格納されているパレート生成条件を満たしたか判断する(ステップS21)。パレート生成条件は、多目的最適化処理(複数の目的関数のトレードオフを同時に調べる手法)における実行条件であり、例えば多目的最適化処理に、遺伝多目的最適化アルゴリズムNSGA−II(Non-dominate sorting genetic algorithm)を利用する場合には、母集団が進化する世代数(generation)及び母集団の個体数(population)等で指定される。なお、多目的最適化自体は周知であり、例えばhttp://mikilab.doshisha.ac.jp/dia/research/report/2006/1006/003/report20061006003.htmlなどに詳細が開示されている。
【0029】
パレート生成条件を満たしていない場合には、個別パレート生成処理部8は、上で述べたような周知の多目的最適化処理(例えばcrossover処理やmutation処理)により、設計変数を更新し、例えばメインメモリなどの記憶装置に格納する(ステップS23)。そしてステップS17に戻る。
【0030】
一方、パレート生成条件を満たしている場合には、個別パレート生成処理部8は、プロセス制約条件格納部13に格納されている全てのプロセス制約条件について処理したか判断する(ステップS25)。未処理のプロセス制約条件が存在する場合にはステップS13に戻る。一方、未処理のプロセス制約条件が存在しない場合には、個別パレート生成処理部8は、全ての選択回路構成について処理したか判断する(ステップS27)。未処理の選択回路構成が存在している場合にはステップS11に戻る。一方、未処理の選択回路構成が存在しない場合には、元の処理に戻る。
【0031】
このような処理を実施することによって、回路構成とプロセス制約条件の組み合わせ毎に、パレート最適解の集合が生成されるようになる。模式的に解空間を2次元空間として表せば、回路構成とプロセス制約条件の1つの組み合わせについて、図13に示すようなパレート曲線を構成する解が複数得られるようになる。また、図10の処理を実施すれば、1つの回路構成につきプロセス制約条件の数だけパレート曲線が生成される。従って、2つの回路構成があって、2つのプロセス制約条件A及びB(簡単にプロセスA及びBとも記す)が存在する場合には、図14に示すように、4つのパレート曲線が生成されることになる。図14では、黒丸の2つの集合が第1及び第2の回路構成についてのプロセスAのパレート曲線を表しており、ハッチング付きの丸の2つの集合が第1及び第2の回路構成についてのプロセスBのパレート曲線を表している。
【0032】
図5の処理の説明に戻って、プロセス別パレート生成処理部14は、プロセス別パレート生成処理を実施する(ステップS7)。このプロセス別パレート生成処理については、図15乃至図20を用いて説明する。
【0033】
なお、プロセス別パレート生成処理は、プロセス制約条件毎のパレートサンプリング集合を重ね合わせて、各プロセス制約条件についてパレート最適解の集合を構成する処理である。このため、同一プロセス制約条件について算出された、全ての選択回路構成についての全てのパレート最適解について相互の支配関係を確認し、離散的にプロセス制約条件毎のパレート最適解の集合を生成する方法と、同一プロセス制約条件について算出された、各選択回路構成のパレートサンプリング集合について数式でモデリングして、数式間の支配関係を数理的に解析して各プロセス制約条件のパレート最適解を特定する方法とのいずれかを採用可能である。
【0034】
ここでは前者について説明する。まず、プロセス別パレート生成処理部14は、個別パレートデータ格納部10(又はプロセス制約条件格納部13)に登録されているプロセス制約条件のうち、未処理のプロセス制約条件を1つ特定する(図15:ステップS28)。そして、プロセス別パレート生成処理部13は、特定プロセスパレート生成処理を実施する(ステップS29)。この特定プロセスパレート生成処理については、図16乃至図20を用いて説明する。
【0035】
最初に、プロセス別パレート生成処理部14は、特定プロセスパレートサンプリング集合PL2=φと設定する(図16:ステップS31)。PL2は、例えばプロセス別パレートデータ格納部15に格納する。そして、プロセス別パレート生成処理部14は、特定されたプロセス制約条件について算出された、全選択回路構成のパレート最適解のうち、未処理のパレート最適解pを特定する(ステップS33)。その後、プロセス別パレート生成処理部14は、PL2にパレート最適解pを追加する(ステップS35)。
【0036】
さらに、プロセス別パレート生成処理部14は、PL2内のpとは異なる未処理のパレート最適解p'を特定する(ステップS37)。そして、p'支配pが成立したか判断する(ステップS39)。p'支配pが成立する場合には、pは全選択回路構成においてパレート最適解を構成しないので、pをPLから除去する(ステップS41)。そしてステップS49に移行する。一方、p'支配pが成立しない場合には、p支配p'が成立したか判断する(ステップS43)。p支配p'が成立する場合には、p'は不要なので、PLから除去する(ステップS45)。そしてステップS47に移行する。p支配p'が成立しない場合もステップS47に移行する。
【0037】
図17に示すように、pが図におけるaであってp'が図におけるbであるとすると、a支配bであるから、図におけるbはPL2から除去される。一方、p'がcであるとするとa支配cとは言えないので、cはPL2に残される。但し、例えば図17におけるdがpであれば、d支配cであるから、cはPL2から除去される。基本的には、pがbで、p'がaであっても同様に取り扱われる。
【0038】
その後、プロセス別パレート生成処理部14は、PL2内の全てのパレート最適解について処理したか判断する(ステップS47)。PL2内の全てのパレート最適解について処理したわけではない場合にはステップS37に戻る。一方、PL2内の全てのパレート最適解について処理した場合には、プロセス別パレート生成処理部14は、特定されたプロセス制約条件について算出された、全選択回路構成のパレート最適解を全て処理したか判断する(ステップS49)。未処理のパレート最適解が存在する場合にはステップS33に戻る。全て処理した場合には元の処理に戻る。
【0039】
例えば、図14に示したプロセスBについて図16を実施して非劣解のみを残すと、図18に示すようなパレートサンプリング集合が得られる。プロセスBの場合には、図18に示すような2次元空間の解空間において左下により近い曲線の方が選択される。
【0040】
また、プロセス別パレートデータ格納部15には、図19に示すようなデータが格納される。図12に示したようなレコード群から、図16の処理フローで特定されたパレート最適解に対応するレコードのみが、図19にも含まれるようになる。すなわち、回路構成の識別子と、プロセス制約条件の識別子と、設計変数1乃至3の値と、性能項目1乃至4の値とで1レコードが構成されるようになる。なお、図19では、プロセス制約条件のプロセスAについてのレコードのみを示しているが、他のプロセスについてのレコードも分けて格納される。
【0041】
図15の処理の説明に戻って、プロセス別パレート生成処理部14は、個別パレートデータ格納部10に登録されている全てのプロセス制約条件について処理したか判断する(ステップS30)。未処理のプロセス制約条件が存在する場合には、ステップS28に戻る。一方、全てのプロセス制約条件について処理した場合には元の処理に戻る。
【0042】
このような処理を実施することによって、図14に示したプロセスA及びプロセスBのパレートサンプリング集合について図15の処理を実施すると、図20に示すような2つのパレートサンプリング集合が得られる。各パレートサンプリング集合に含まれるパレート最適解は、いずれかの選択回路構成についてのパレート最適解である。
【0043】
図8の処理の説明に戻って、全体パレート生成処理部11は、全体パレート生成処理を実施する(ステップS9)。この全体パレート生成処理については、図21乃至図24を用いて説明する。
【0044】
なお、全体パレート生成処理は、選択回路構成及びプロセス制約条件の組み合わせ毎のパレートサンプリング集合を重ね合わせて、選択回路構成及びプロセス制約条件全体のパレート最適解の集合を構成する処理である。このため、選択回路構成及びプロセス制約条件の各組み合わせに含まれる全てのパレート最適解について相互の支配関係を確認し、離散的に全体のパレート最適解の集合を生成する方法と、選択回路構成及びプロセス制約条件の各組み合わせのパレートサンプリング集合について数式でモデリングして、数式間の支配関係を数理的に解析して選択回路構成及びプロセス制約条件全体のパレート最適解を特定する方法とのいずれかを採用可能である。
【0045】
ここでは前者について説明する。まず、全体パレート生成処理部11は、全体パレートサンプリング集合PL1=φと設定する(ステップS231)。PL1は、全体パレートデータ格納部12に格納する。そして、全選択回路構成のパレート最適解のうち未処理のパレート最適解pを特定する(ステップS233)。その後、PL1にパレート最適解pを追加する(ステップS235)。
【0046】
さらに、全体パレート生成処理部11は、PL1内のpとは異なる未処理のパレート最適解p'を特定する(ステップS237)。そして、p'支配pが成立したか判断する(ステップS239)。p'支配pが成立する場合には、pは全選択回路構成においてパレート最適解を構成しないので、pをPL1から除去する(ステップS241)。そしてステップS249に移行する。一方、p'支配pが成立しない場合には、p支配p'が成立したか判断する(ステップS243)。p支配p'が成立する場合には、p'は不要なので、PL1から除去する(ステップS245)。そしてステップS247に移行する。p支配p'が成立しない場合もステップS247に移行する。ステップS237乃至S245の処理は、図17を用いて説明したものと同様である。
【0047】
その後、全体パレート生成処理部11は、PL1内の全てのパレート最適解について処理したか判断する(ステップS247)。PL1内の全てのパレート最適解について処理したわけではない場合にはステップS237に戻る。一方、PL1内の全てのパレート最適解について処理した場合には、全選択回路構成のパレート最適解を全て処理したか判断する(ステップS249)。全選択回路構成の未処理のパレート最適解が存在する場合にはステップS233に戻る。全て処理した場合には元の処理に戻る。
【0048】
例えば、図22に示すように2次元空間を解空間として、回路構成1及びプロセスAについてのパレートサンプリング集合と、回路構成2及びプロセスBについてのパレートサンプリング集合と、回路構成n及びプロセスAについてのパレートサンプリング集合とが存在する場合には、図21に示すような処理を実施して、非劣解のみを残す。そうすると、図23に示すような回路構成1及びプロセスAについての一部のパレート最適解と、回路構成2及びプロセスBについての一部のパレート最適解とが、全選択回路構成についてのパレートサンプリング集合を構成するようになる。
【0049】
また、全体パレートデータ格納部12には、図24に示すようなデータが格納される。図12に示したようなレコード群から、全選択回路構成及び全てのプロセス制約条件についてのパレート最適解に対応するレコードのみが、図24にも含まれるようになる。すなわち、回路構成の識別子と、プロセス制約条件の識別子と、設計変数1乃至3の値と、性能項目1乃至4の値とで1レコードが構成されるようになる。
【0050】
図8の処理の説明に戻って、例えば回路構成選択部4は、仕様データ格納部3に格納されている指定機能データにおいて指定されている全ての回路機能について処理したか判断する(ステップS10)。未処理の回路機能が存在していればステップS1に戻る。一方、全ての回路機能について処理している場合には、処理を終了する。
【0051】
以上のような処理を実施すれば、全てにおいて最適なパレートサンプリング集合が得られると共に、特定のプロセス制約条件を選択した場合に最適なパレートサンプリング集合も得られるようになる。
【0052】
このようなプロセス別パレートデータ格納部15及び全体パレートデータ格納部12に格納されているデータが、新アナログIPデータ300に含まれる従来にはないデータである。新アナログIPデータ300は、その他に、回路構成ライブラリ格納部2及びテストベンチデータ格納部7に格納されるデータを含む。
【0053】
上で述べた処理は、比較的計算量が多く時間がかかるが、新アナログIPデータ300の生成は、実際に回路設計を行うユーザが回路設計時に実施するわけではなく、他の者が事前に用意するものである。従って、新アナログIPデータ300の生成のための計算時間については、実際に回路設計を行うユーザが考慮する必要はない。
【0054】
次に、図25を用いて、図1に示した自動最適回路設計装置200について説明する。自動最適回路設計装置200は、(A)プロセス別パレートデータ格納部15及び全体パレートデータ格納部12を生成する際に用いた各プロセス制約条件を格納するプロセス制約条件格納部24と、(B)プロセス制約条件格納部24に格納されているデータを実際に回路設計を行うユーザに提示すると共に入力及び指示を受け取る入力部21と、(C)入力部21がユーザから受け取った、設計すべき回路の仕様データを格納する仕様データ格納部22と、(D)プロセス別パレートデータ格納部15及び全体パレートデータ格納部12に格納されていたデータを格納するパレートデータ格納部25と、(E)パレートデータ格納部25に格納されているデータに含まれる回路構成の識別子に対応する回路構成のデータを格納する回路構成ライブラリ格納部23と、(F)テストベンチデータ格納部7に格納されていたデータと同じデータを格納するテストベンチデータ格納部26と、(G)入力部21からの指示に従って、仕様データ格納部22と回路構成ライブラリ格納部23とパレートデータ格納部25とテストベンチデータ格納部26とに格納されているデータを用いて処理を実施する最適解生成処理部27と、(H)周知の回路シミュレーションを実施する回路シミュレータ29と、(I)最適解生成処理部27の処理結果を格納する最適解データ格納部28と、(J)最適解データ格納部28に格納されたデータをユーザに対して例えば表示装置又は印刷装置などの出力装置を介して出力する出力部30とを有する。なお、回路シミュレータ29は、回路自動設計装置とは別装置として実装される場合もある。
【0055】
プロセス制約条件格納部24には、プロセス制約条件格納部13と完全に一致するデータが格納されるわけではなく、実際に回路設計を行うユーザに、どのプロセスを選択すればよいのか判断するための条件を提示するためのデータが格納される。従って、詳細なプロセス制約条件を含まず、その特徴となる部分のみを含むようにすればよい。
【0056】
次に、自動最適回路設計装置200の動作について図26乃至図30を用いて説明する。まず、入力部21は、例えばユーザに対して、これから回路設計を行う回路の機能を含む要求仕様の入力を促し、ユーザから当該回路の機能を含む要求仕様のデータを受け取って、仕様データ格納部22に格納する(図26:ステップS301)。なお、パレートデータ格納部25に格納されているデータの基となる要求仕様の範囲内で指定を行うものとする。
【0057】
次に、入力部21は、ユーザから指定された機能を有する回路を、全プロセス制約条件の中から最適化するのか(すなわち全体最適を選択するのか)、いずれかのプロセス制約条件を選択して当該プロセス制約条件の下最適化するのかについて選択を促し、ユーザから選択結果を受け付け(ステップS303)、最適解生成処理部27に出力する。
【0058】
そうすると、最適解生成処理部27は、入力部21から全体最適が指示されたか判断する(ステップS305)。最適解生成処理部27は、全体最適が指示された場合には、仕様データ格納部22に格納されている指定回路機能について、パレートデータ格納部25に格納されている、全体パレート生成処理の処理結果(図24)を処理対象に設定する(ステップS307)。そして、最適解生成処理部27は、設定に従って、最適解生成処理を実施する(ステップS311)。
【0059】
一方、全体最適ではなく、特定のプロセス制約条件が選択された場合には、最適解生成処理部27は、仕様データ格納部22に格納されている指定回路機能について、パレートデータ格納部25に格納されている、選択プロセス制約条件についてのプロセス別パレート生成処理の結果(図19)を処理対象に設定する(ステップS309)。そして、最適解生成処理部27は、設定に従って、最適解生成処理を実施する(ステップS311)。
【0060】
最適解生成処理については、図27乃至図30を用いて説明する。
【0061】
まず、最適解生成処理部27は、仕様データ格納部22に格納されている要求仕様の各項目について値の分布をバランスさせる解空間の空間変換(スケーリング及びシフティング)を実施する(ステップS51)。ユーザから指示された要求仕様の各項目について行うので、当該項目はパレートデータ格納部25に格納されている性能項目の一部であり、ステップS311を実施する毎に本ステップを実施する必要がある。処理結果は、例えば最適解データ格納部28に格納される。データフォーマットは、例えば、図19や図24における回路構成の識別子と、プロセス制約条件の識別子と、性能項目1乃至4の部分と同様である。
【0062】
例えば、解空間における要求仕様Sとパレート最適解Pとの距離を、以下のように定義するとする。
【0063】
【数1】

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

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

【0076】
第一式の右辺第一項が、直線gを表すベクトルであり、tは未知の係数であり、Specは要求仕様Sに対応する。すなわち、第一式は、直線gを、要求仕様Sからt倍すると、仮最適解P0になることを表す。このような連立方程式を解くと、tと仮最適解P0が得られる。そして元の処理に戻る。
【0077】
なお、仮最適解P0は、ステップS307又はS309で設定された解とは異なる点である可能性が高い。従って、以下のような確認処理が必要となる。
【0078】
すなわち、最適解生成処理部27は、ステップS307又はS309において設定されたパレート最適解から、仮最適解の近傍のパレート最適解を抽出し、当該近傍のパレート最適解の回路構成により、当該仮最適解の回路構成を決定する(ステップS55)。図30に2次元の場合を模式的に示すと、要求仕様Sから仮最適解P0を求めた場合には、その近傍(ここではパレート曲線上の両脇)のパレート最適解P1及びP2を抽出する。そして、ステップS307又はS309で設定されたデータにおいて、パレート最適解P1及びP2に対応付けられて格納されている回路構成の識別子を特定する。この際、2つのパレート最適解P1及びP2について同じ回路構成の識別子が得られれば当該回路構成を採用する。一方、異なる回路構成の識別子が得られた場合には、最も近い近傍のパレート最適解の回路構成を採用する。
【0079】
そして、最適解生成処理部27は、仮最適解の逆空間変換を実施する(ステップS57)。ステップS51で実施した空間変換の逆変換を実施する。具体的には、VShiftの逆ベクトルをPTranから引き、さらに左からMscalingの逆行列を掛ければよい。ステップS61で用いるためである。
【0080】
そして、最適解生成処理部27は、仮最適解を、特定された回路構成の変数空間にマッピングして、回路パラメータの値を決定し、例えばメインメモリなどの記憶装置に格納する(ステップS59)。
【0081】
具体的には、要求仕様に近い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}である。
【0082】
最後の処理についてより詳細に述べると、通常、性能項目の数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号公報などにも用いられており、これ以上の説明は省略する。
【0083】
その後、最適解生成処理部27は、回路シミュレータ29に対してステップS55で特定された回路構成のデータと、テストベンチデータ格納部26に格納されている、当該回路構成に対応する周辺回路のデータなどと、ステップS59で算出した回路パラメータの値とを出力し、回路シミュレータ29に周知の回路シミュレーションを実施させ、当該回路シミュレータ29から要求仕様の性能項目の性能値を取得する。そして、特定された回路構成及び回路パラメータにより逆空間変換後の仮最適解を実現可能であるか判断する(ステップS61)。すなわち、要求仕様の性能項目毎に、逆空間変換後の仮最適解における性能値より良い値(コストが低い値)がシミュレーションで得られたか判断する。全ての性能項目について、仮最適解における性能値より良い必要がある。なお、逆空間変換後の仮最適解を用いるのは、回路シミュレーションの結果と比較できないからである。比較するだけであれば、回路シミュレーションの結果を空間変換してから比較しても同じである。
【0084】
実現可能であれば(ステップS63:Yesルート)、最適解生成処理部27は、特定された回路構成及びプロセス制約条件(識別子だけの場合もある)と回路パラメータとを、最適解データ格納部28に格納する(ステップS67)。要求仕様と比較する場合には、逆空間変換後の仮最適解をも格納する。そして元の処理に戻る。
【0085】
一方、実現可能でないと判断された場合には(ステップS63:Noルート)、最適解生成処理部27は、ステップS55で特定された仮最適解の近傍のパレート最適解の範囲内において次に最適な次最適解を抽出し、さらに当該次最適解に最も近いパレート最適解の回路構成を、次最適解についての回路構成として設定する(ステップS65)。例えば図30の例では、パレート最適解P1及びP2の間のP3を特定する。但し、パレート最適解P1及びP2の間を全て探索した場合には、パレート最適解P1又はP2を採用する。その後、ステップS57に戻る。
【0086】
なお、ステップS57乃至S61については、パレート最適解について処理する場合には、ステップS307又はS309で設定されたデータをそのまま用いることができるので、スキップすることができる。
【0087】
このような処理を実施することによって、自動最適回路設計装置200では、ステップS61で最も時間のかかる回路シミュレーションを実施するだけであるから、最適回路設計にかかる時間を大幅に削減できるようになる。また、ステップS63で実現不可能と判断された場合においても、既に算出済みのパレート最適解を再活用して、要求仕様の性能項目における要求性能値により近い解(すなわち変更後の仕様)についての回路パラメータを特定することができる。よって、処理時間を短縮することができる。
【0088】
図26の処理の説明に戻って、出力部30は、最適解データ格納部28に格納されている最適解のデータ(回路構成、プロセス制約条件及び回路パラメータ。場合によって逆空間変換後の仮最適解の各性能項目の性能値)を、表示装置や印刷装置などの出力装置に出力する(ステップS313)。これによって、ユーザは、採用すべき回路構成、プロセス制約条件及び回路パラメータを得ることができるようになる。なお、仮最適解を出力する場合には、要求仕様との関係がどのようなものであるかを判断することも可能となる。例えば、要求仕様を満たしているのか、満たしていないのかを判断することもできる。出力部30が、要求仕様を満たしているのか満たしていないのかを判断して出力するようにしても良い。
【0089】
[実施の形態2]
第2の実施の形態に係る新アナログIPデータ生成装置100の機能ブロック図を図31に示す。本アナログIPデータ生成装置100は、(A)設計済みだが回路パラメータは未設定のアナログ回路の回路構成データを格納する回路構成ライブラリ格納部2と、(B)各回路構成についての制約条件(プロセスについての制約条件を除く)を格納する制約条件格納部1と、(C)新アナログIPデータ300についての要求仕様の仕様データを格納する仕様データ格納部3と、(D)回路設計時に採用される可能性のある複数のプロセス制約条件を格納するプロセス制約条件格納部13と、(E)制約条件格納部1と回路構成ライブラリ格納部2と仕様データ格納部3とに格納されているデータを用いて要求仕様を満たす可能性のある回路構成を選択する回路構成選択部4と、(F)回路構成選択部4によって選択された回路構成についてのデータを格納する選択回路構成データ格納部5と、(G)パレート生成条件を格納するパレート生成条件格納部6と、(H)例えば回路構成の種別毎にシミュレーション用の周辺回路についてのデータを格納するテストベンチデータ格納部7と、(I)例えばSPICE(Simulation Program with Integrated Circuit Emphasis)などの回路シミュレータ9と、(J)設計者の意図とは別の要因で変動する可能性のあるPVT(Process, Voltage,Temperature)コーナ設定項目の値を決定するためのデータを保持するPVTコーナ設定データ格納部16と、(K)回路シミュレータ9と連携し且つ制約条件格納部1と選択回路構成データ格納部5と仕様データ格納部3とパレート生成条件格納部6とテストベンチデータ格納部7とプロセス制約条件格納部13とPVTコーナ設定データ格納部16とに格納されているデータを用いて選択回路構成毎にパレート最適解を生成する個別パレート生成処理部8と、(L)個別パレート生成処理部8の処理結果を格納する個別パレートデータ格納部10と、(M)個別パレートデータ格納部10に格納されているデータを用いて全選択回路構成及び全プロセス制約条件についてのパレートを生成する全体パレート生成処理部11と、(N)全体パレート生成処理部11による処理結果を格納する全体パレートデータ格納部12と、(O)個別パレートデータ格納部10に格納されているデータを用いて各プロセス制約条件についてのパレートを生成するプロセス別パレート生成処理部14と、(P)プロセス別パレート生成処理部14により生成されたデータを格納するプロセス別パレートデータ格納部15とを有する。
【0090】
回路シミュレータ9は、新アナログIPデータ生成装置100とは別装置として実装される場合もある。
【0091】
このようにPVTコーナ設定データ格納部16を新たに導入して個別パレート生成処理部8で用いる点が第1の実施の形態と異なる点である。
【0092】
図32にPVTコーナ設定データ格納部16に格納されるデータの一例を示す。具体的に図32の説明をする前に、PVTコーナ設定項目について述べておく。PVTコーナ設定項目は、回路シミュレータ9に設定可能な項目であって、設計者の意図とは別に変動する項目である。PVTコーナ設定項目は、制約条件に規定されている設計変数と重複する項目を含む場合もある。また、制約条件に規定されている設計変数と重複しない項目を含む場合もある。
【0093】
第1の実施の形態において述べたように制約条件及びプロセス制約条件は、設計者が指定することができる設計変数についての条件であり、その値は範囲で指定される場合もある。しかしながら、この範囲の中で特定の値(例えば1μm)が適切と判断されてそれに従ってチップを製造しようとしても、実際には1μmではなく、1.07μmとなってしまう場合もあれば95nmとなってしまう場合もある。同様に、温度の条件として25℃を前提として製造されても、実際の動作環境は30℃となってしまう場合もある。動作電圧についても同様に、1.5Vが適切な動作電圧として指定されたとしても、実際の動作環境では1.3Vしか供給されないかもしれない。このような設計者の意図とは別に変動するような項目について、項目名及び変動範囲を規定するデータ等がPVTコーナ設定データ格納部16に格納される。
【0094】
図32は、以下で述べるコーナシミュレーションを実施する場合に用いられるデータの一例を示している。図32の例では、各PVTコーナ設定項目について、最小値(MIN)と、代表値(例えば平均値、中央値)(TYP)と、最大値(MAX)とを登録するようになっている。コーナシミュレーションでは、基本的には各項目の設定値の全組み合わせに対して回路シミュレーションを実施する。従って項目数に対して組み合わせの数が指数関数的に増加して処理負荷が高くなるので、影響が小さい項目や変動幅の小さい項目については例えば代表値のみを設定しておき、組み合わせの数を減らす場合もある。図32の場合には、項目PolyCDについては代表値のみが設定されている。
【0095】
また、図33に、コーナシミュレーションを実施する場合に用いられるデータの他の例を示す。図33の例では、PVTコーナ設定項目毎に、当該項目の値の出現範囲データと、組み合わせ情報とが登録されるようになっている。出現範囲データは、そのPVTコーナ設定項目の値の出現分布がどのようなものであるかを示すデータである。例えばToxの値の出現分布は、ガウス分布であり、その平均値はμ3であり、分散はσ3である。例えばμ3から±3σ3の範囲で99%以上のケースをカバーするので、本実施の形態では、図34に示すように、例えばμ3−3σ3を下限値とし、μ3+3σ3を上限値とする。また、電圧Vについては、例えばフラットな出現分布(すなわち一様)で、中央値cを中心に−a%から+b%の範囲で決定される例を示している。温度についても同様である。組み合わせ情報については、図32でも述べたように、組み合わせの数を減少させるため、項目値の組み合わせるに用いる値のタイプを示す。図33の例では、Leffの場合には、上限値maxと下限値minとを組み合わせることを表す組み合わせ情報が登録されている。また、図33の例でrshncdの場合には、代表値typのみが組み合わせ情報として登録されている。
【0096】
さらに、図35に、モンテカルロシミュレーションを実施する場合に用いられるデータの一例を示す。以下でも述べるがモンテカルロシミュレーションを実施する場合には、PVTコーナ設定項目毎に乱数を複数回発生させてその乱数値の組み合わせにて複数回回路シミュレーションを実施する。図35の例では、PVTコーナ設定項目毎に、乱数発生分布データが登録されるようになっている。例えば図35の例では、Leffに対する乱数値の発生分布はガウス分布であり、その平均値はμ11であり、分散はσ11である。また、図35の例では、電圧V及び温度Tについては、cを中心に、−a%から+b%又はfを中心に−d%から+e%まで一様な分布となっている。この乱数発生分布データに従って、該当する項目の乱数値を発生して利用される。
【0097】
本実施の形態では基本的には個別パレート生成処理部8の処理を以下で述べるような処理に変更するものである。この処理について述べる前に上で述べたようなPVTコーナ設定データ格納部16を用いる前提について説明する。
【0098】
パレート曲線自体は図9に示したとおりであるが、製造プロセスのばらつきや、動作環境の変動を考慮せずに、製造プロセスや動作環境についてのパラメータを定格値(nominal value)としてパレート最適解を算出するよりは、以下のような理由から、製造プロセスのばらつきや、動作環境の変動を考慮した上でパレート最適解を算出する方が好ましい。この好ましい理由について図36を用いて説明する。図36は、図9と同じように、縦軸でコスト1(小さい方が好ましい性能としてもよい)を表し、横軸はコスト2(小さい方が好ましい性能としてもよい)を表す。そして、図36では、パレート最適解A乃至Dが、定格値を想定して得られたとする。ここで、非劣解Cは上で述べたように各種パラメータを定格値として用いた場合に得られる。しかし、パレート最適解Cについて製造プロセスや動作環境についてばらつきを考慮すると、範囲Cdisp内の×印の点に解が得られるようになる。一方、定格値を用いて算出された1つの解Fは、C支配Fの関係にあるので、定格値をベースにした場合にはパレート曲線上に載らない。しかしながら、解Fについて製造プロセスや動作環境についてばらつきを考慮しても、範囲Cdispより狭く且つ範囲Cdispに包含されるような範囲Fdisp内の+印の解しか得られないとする。このような場合に、パレート最適解Cは定格値をベースにすればパレート最適解となるが、製造プロセスや動作環境が悪く作用する場合には例えば解C1となってしまう。一方、解Fについては製造プロセスや動作環境が悪くても例えば解F1が得られる。このような場合、F1支配C1という関係が成り立つので、本当にパレート最適解Cを採用することが好ましいのかが問題となる。すなわち、定格値をベースにパレート曲線を生成しても、実際に製造されるチップは期待される性能を発揮することができるかもしれないが、歩留まりのことを考えたり、アナログ回路の基本的な非線形性、すなわち性能の振れ易さを考えれば、最悪状態を念頭に設計を行う方が好ましい。
【0099】
そこで本実施の形態では、図37に示すように、定格値についての解Anominal乃至Dnominalを採用するのではなく、各解について製造プロセスや動作環境のばらつきの範囲Adisp乃至Ddispで最もコストが大きい(すなわち性能が悪い)解A乃至Dをベースに支配関係を判断して、パレート最適解A乃至Dを特定する。このパレート最適解A乃至Dで最悪性能パレート曲線を構成する。
【0100】
半導体プロセスの微細化に伴って、製造プロセスのばらつきにより、トランジスタの閾値電圧、有効チャネル長等のパラメータは定格値(すなわち期待値)より激しく変動し、その影響を受けてアナログ回路の性能ばらつきが拡大している。また、LSI(Large Scale Integrated circuit)の消費電力を削減するために、トランジスタの閾値電圧、チップの電源電圧を限界まで削減しているため、電源電圧、回路動作温度など回路動作環境の変動は、LSI、特に飽和領域で動作することの多いアナログ回路性能へ大きく影響している。このような半導体製造プロセスのばらつき、回路動作環境の変動を考慮して、パレート最適解を特定して、それらの影響を可能な限り除去するものである。これによって、チップの歩留まりが飛躍的に向上し(理想的には100%)、性能についても十分マージンをもって確保できるようになる。
【0101】
このような前提の下、図38に従って個別パレート生成処理について説明する。まず、個別パレート生成処理部8は、選択回路構成データ格納部5に格納されている選択回路構成のうち未処理の回路構成を1つ特定する(ステップS411)。さらに、個別パレート生成処理部8は、プロセス制約条件格納部13に格納されている複数のプロセス制約条件のうち、未処理のプロセス制約条件を1つ特定する(ステップS413)。
【0102】
そして、個別パレート生成処理部8は、特定された回路構成について、制約条件格納部1に格納されている、当該回路構成についての対応制約条件を満たす設計変数と、特定されたプロセス制約条件を満たす設計変数(例えばゲート長Lやゲート幅Wを含む回路パラメータ)を乱数で生成し、例えばメインメモリなどの記憶装置に格納する(ステップS415)。
【0103】
そして、個別パレート生成処理部8は、最悪性能値取得処理を実施する(ステップS417)。この最悪性能値取得処理については図39乃至42を用いて説明する。まず、コーナシミュレーションを実施する場合の処理フローを図39に示す。
【0104】
個別パレート生成処理部8は、PVTコーナ設定データ格納部16に登録されている各PVTコーナ設定項目について、PVTコーナ設定データ格納部16に格納されている設定条件(図32の場合にはMIN、TYP及びMAX、図33の場合には出現範囲データ及び組み合わせ情報)に基づき採用すべきコーナ値(MIN、MAX、TYPのうち指定された値)を特定し、例えばメインメモリなどの記憶装置に格納する(ステップS101)。図32の場合には、MIN、TYP、MAXで数値が指定されているので、これを特定する。図33の場合には、出現範囲データで分布が規定されていれば、例えば平均値μから±3σの値を特定する。なお、制約条件と同じ項目については、ステップS413又は以下で述べるステップS423で特定された値を平均値μや中央値cとして設定して、±3σの値や−a%及び+b%の値を算出する。例えば、制約条件に電圧1Vから5Vが規定されており、ステップS413又はS423で特定された値が1.5Vであれば、1.5VをTYPとして特定すると共に、−a%(=−10%)としてMIN値「1.35V」と+b%(=+10%)としてMAX値「1.65V」とを算出する。
【0105】
そして、個別パレート生成処理部8は、各PVTコーナ設定項目のコーナ値の未処理の組み合わせを1つ特定する(ステップS103)。さらに、個別パレート生成処理部8は、テストベンチデータ格納部7から、選択された回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部5に格納されている選択回路構成のデータと、制約条件に基づきステップS413又はS423で特定される設計変数の値と、PVTコーナ設定項目のコーナ値の組み合わせと、仕様データ格納部3に格納されている要求仕様の項目(すなわち性能項目)とを回路シミュレータ9に出力し、回路シミュレータ9に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ9から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する(ステップS105)。
【0106】
そして、個別パレート生成処理部8は、ステップS101で特定されたコーナ値の全ての組み合わせについて処理したか判断する(ステップS107)。未処理の組み合わせが存在する場合にはステップS103に戻る。一方、全ての組み合わせについて処理した場合には、要求仕様で規定されている性能項目の性能値のうち最悪とされる性能値と、当該最悪とされる性能値を生じさせた、制約条件に基づき特定された設計変数の値及びPVTコーナ設定項目のコーナ値の組み合わせを特定し、メインメモリなどの記憶装置に格納する(ステップS109)。
【0107】
ここで最悪とされる性能とは、ステップS105でPVTコーナ設定項目のコーナ値の全ての組み合わせについて算出された性能値のばらつき空間Ωfに属する他の全ての性能Pjと比べても悪い性能Pwである。より具体的には、最適=最小と仮定すると(図37等のグラフにおいて左下の方向が最適な方向)、各PVTコーナ設定項目のコーナ値のどの組み合わせjについての性能Pj(性能項目はn個で、Pjはn次元ベクトル)の各性能項目iの値Pjiより、最悪とされる性能Pwの各性能項目値Pwiの方が大きいということである。
【0108】
【数4】

【0109】
より具体的には、以下のように表される。
【数5】

【0110】
これは、全ての性能項目値が、性能ばらつき空間Ωfに属する全ての性能Pjの中で最大となる性能Pwを最悪としている。但し、これは一例であって、他の何らかの評価式で各性能項目を評価してその評価式の値が最も大きくなるような性能を最悪と定義するようにしても良い。
【0111】
なお、ステップS109で格納されるデータは、例えば図40に示すようなデータである。図40の例では、回路構成の識別子及びプロセス制約条件の識別子の組み合わせに対応付けて、設計変数1乃至kの値と、PVTコーナ設定項目1乃至pの値(設計変数と一致する項目については制約条件によって特定された値に対する調整値)と、性能項目1乃至nの値とが登録されるようになっている。なお、PVTコーナ設定項目でもある設計変数の場合には、ステップS413又はS423で設定された値を登録しておく。
【0112】
以上のような処理を実施することにより、1つの制約条件セットを特定した場合における最悪性能を特定することができる。そして元の処理に戻る。
【0113】
図39の処理フローは、コーナシミュレーションで最悪性能を特定する処理フロー例であったが、適用可能なアルゴリズムはコーナシミュレーションに限定されない。図41に、モンテカルロシミュレーションを適用する場合の処理フローを示す。
【0114】
まず、個別パレート生成処理部8は、PVTコーナ設定データ格納部16に登録されている各PVTコーナ設定項目について、乱数発生範囲を特定する(ステップS111)。図35の例で、乱数発生分布データが例えばガウス分布で規定されていれば、平均値μ及び分散σの値を特定する。なお、制約条件と一致するPVTコーナ設定項目については、ステップS413又は以下で述べるステップS423で特定された値を平均値μや中央値cとして用い、分散σや範囲を規定するa及びb等をそのまま用いる。例えば、制約条件に電圧1Vから5Vが規定されており、ステップS413又はS423で特定された値が1.5Vであれば、1.5Vを中央値として特定すると共に、−a%(=−10%)として乱数発生下限値「1.35V」と+b%(=+10%)として乱数発生上限値「1.65V」とを範囲として算出する。
【0115】
さらに、個別パレート生成処理部8は、カウンタnを1に初期化し(ステップS113)、ステップS111で特定された各乱数発生範囲に従って、各PVTコーナ設定項目の値を乱数で発生させ、例えばメインメモリなどの記憶装置に格納する(ステップS115)。
【0116】
さらに、個別パレート生成処理部8は、テストベンチデータ格納部7から、選択された回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部5に格納されている選択回路構成のデータと、制約条件に基づきステップS413又はS423で特定される設計変数の値と、PVTコーナ設定項目の乱数値の組み合わせと、仕様データ格納部3に格納されている要求仕様の項目(すなわち性能項目)とを回路シミュレータ9に出力し、回路シミュレータ9に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ9から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する(ステップS117)。
【0117】
そして、個別パレート生成処理部8は、nが予め定められた上限値Nを超えたか判断する(ステップS119)。nがN以下である場合にはステップS115に戻る。一方、nがNを超えた場合には、要求仕様で規定されている性能項目の性能値のうち最悪とされる性能値と、当該最悪とされる性能値を生じさせた、制約条件に基づき特定された設計変数の値及びPVTコーナ設定項目の乱数値の組み合わせを特定し、メインメモリなどの記憶装置に格納する(ステップS121)。ここで格納されるデータについても図40に示すようなフォーマットのデータである。また最悪とされる性能については、上で述べたとおりである。そして元の処理に戻る。
【0118】
以上のような処理を実施することにより、モンテカルロシミュレーションであっても、最悪性能を特定することができる。
【0119】
図38の処理の説明に戻って、個別パレート生成処理部8は、ステップS417で得られた性能項目の性能値セットが、解空間においてパレート最適解を構成するかを、これより前に選択された各パレート最適解との支配関係を確認することによって判断し、判断結果によってパレートサンプリング集合を更新する(ステップS419)。すなわち、ステップS417で得られた性能項目の性能値セットで構成される解が、他の解を支配している場合には、当該他の解を、パレート最適解の集合であるパレートサンプリング集合から除去し、ステップS417で得られた解をパレートサンプリング集合に追加し、逆に他の解に支配されている場合には、ステップS417で得られた解を破棄する。
【0120】
パレートサンプリング集合は、例えば個別パレートデータ格納部10に図42に示すようなデータとして格納される。図42の例では、回路構成の識別子と、プロセス制約条件の識別子と、設計変数1乃至kの値と、PVTコーナ設定項目1乃至pの値と、性能項目1乃至nの値とが登録されるようになっている。変数、PVTコーナ設定項目や性能項目の数は一例であって、これより多い場合もある。このように、1つのパレート最適解についてのデータが1レコードとして登録される。そして、1つの回路構成についてのレコード群が、パレートサンプリング集合を構成する。
【0121】
その後、個別パレート生成処理部8は、パレート生成条件格納部6に格納されているパレート生成条件を満たしたか判断する(ステップS421)。パレート生成条件は、第1の実施の形態について述べたものと同じであり、これ以上述べない。
【0122】
パレート生成条件を満たしていない場合には、個別パレート生成処理部8は、上で述べたような周知の多目的最適化処理(例えばcrossover処理やmutation処理)により、制約条件を満たすように設計変数を更新し、例えばメインメモリなどの記憶装置に格納する(ステップS423)。そしてステップS417に戻る。
【0123】
一方、パレート生成条件を満たしている場合には、個別パレート生成処理部8は、全てのプロセス制約条件について処理したか判断する(ステップS425)。未処理のプロセス制約条件が存在する場合にはステップS413に戻る。一方、全てのプロセス制約条件について処理した場合には、個別パレート生成処理部8は、全ての選択回路構成について処理したか判断する(ステップS427)。未処理の選択回路構成が存在している場合にはステップS411に戻る。一方、未処理の選択回路構成が存在しない場合には、元の処理に戻る。
【0124】
このような処理を実施することによって、回路構成毎に、パレート最適解の集合が生成されるようになる。模式的に解空間を2次元空間として表せば、図13に示すようにパレート曲線を構成する解が複数得られるようになる。
【0125】
なお、細かく示せば図37に示すような関係を表している。図37のパレート曲線(3次元以上でパレート曲面)、すなわち非劣解Pw_paretoは以下のように表される。
【0126】
【数6】

【0127】
なお、PjworstとPiworstの間の記号の意味は、以下のとおりである。
【0128】
【数7】

【0129】
このように、解空間Ωpに属する、定格値についての解Pi及びPjについて、解Piの制約条件に従っている最悪性能の解Piworstが、任意の解Pjの制約条件に従っている最悪性能の解Pjworstに対して非劣解であるという条件で、最悪性能のパレート曲線が形成される。
【0130】
以上のような処理を実施した後、図8のステップS7以降の処理を第1の実施の形態とほぼ同じように実施すれば、プロセスのばらつき及び動作環境の変動を考慮して、製造時に理想的には100%に近い歩留まりを実現できるパレートサンプリング集合を生成することができるようになる。従って、回路設計を行うユーザは、製造時に理想的には100%に近い歩留まりを実現できる最適解を自動的に特定できるようになる。
【0131】
なお、ステップS59で値を決定する回路パラメータのうちPVTコーナ設定項目と一致する項目については、ステップS307又はS309で設定されたデータに含まれる当該項目の値で調整したものを採用する。
【0132】
さらに、図26のステップS313で、逆空間変換後の仮最適解の各性能項目の性能値を出力するようにしても良い。
【0133】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図2、図25及び図31に示した装置の構成は一例であって、必ずしも実際にプログラム構成と一致しない場合もある。また、データ格納部の構成についても、統合や分割も可能である。例えば、回路構成ライブラリ格納部2と制約条件格納部1とを統合するようにしても良い。
【0134】
また、処理フローについても処理結果が同じであれば処理順番を入れ替えたり並列実行するようにしても良い。特に回路シミュレータ9については別装置で実装して、個別パレート生成処理部8が、複数の回路シミュレータ9に対して異なる回路構成についてのシミュレーションを実施させるようにしても良い。
【0135】
さらに、上ではコーナシミュレーションやモンテカルロシミュレーションを実施する例を示しているが、統計解析等の他の手法によって最悪性能を特定できれば、それを採用するようにしても良い。
【0136】
上で述べた例では、スタンドアロン型の実施の形態を説明したが、クライアント−サーバ型コンピュータシステムによって実現するようにしても良い。さらに、ステップS51について一括して実施することなく、空間変換Ptranの算出式のみを生成して保持しておき、距離を計算する都度、空間変換を行うようにしても良い。
【0137】
なお、上記回路自動設計装置は、コンピュータ装置であって、図43に示すように、メモリ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及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0138】
本技術の実施の形態をまとめると以下のようになる。
【0139】
本技術の第1の態様に係る自動回路設計用パレートデータ生成方法(図44)は、(A1)回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、(B1)回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されているプロセス制約条件と抽出された回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、シミュレーション結果から要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、プロセス制約条件の識別子と回路構成の識別子との組み合わせに対応付けてパレート最適解の各々について設計変数の各々の該当値と要求仕様の各項目の該当値とを個別パレートデータ格納部に格納する個別パレート生成ステップと、(C1)プロセス制約条件の各々について、個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全てのパレート最適解において非劣解となるパレート最適解を抽出し、プロセス制約条件の各々について、当該パレート最適解について該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とをプロセス別パレートデータ格納部に格納するステップと、(D1)個別パレートデータ格納部に格納されている、抽出された全ての回路構成についての全てのパレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する回路構成の識別子とプロセス制約条件の識別子との組み合わせと設計変数の各々の該当値と要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップとを含む。
【0140】
このような前処理を実施して得られ且つ個別パレートデータ格納部及び全体パレートデータ格納部に格納されているデータを回路構成データと共に実際に回路設計を行うユーザに頒布することによって、当該ユーザにおいては、上記処理を行わない分だけ短時間で自動回路設計を行うことができるようになる。
【0141】
なお、上で述べた個別パレート生成ステップが、回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を1回分のシミュレーション結果として採用する採用ステップを含むようにしてもよい。
【0142】
このように、最悪の性能を示した結果を採用してパレート最適解の集合を生成した上で、上で述べた処理を行って回路構成及び設計変数値を特定し、当該回路構成及び設計変数値を用いて実際に製造すれば、最悪ケースであっても要求仕様に合致する又は要求仕様に最も近い回路が得られることが期待される。すなわち製造ばらつきなどの最悪ケースを考慮した上で設計が行えるので、歩留まりの飛躍的な改善が期待される。
【0143】
さらに、上で述べた採用ステップが、上記特定項目について指定されている乱数発生範囲データに基づき各特定項目の値を乱数で生成するステップと、生成された各特定項目の乱数値のセットについて回路シミュレーションを実施するステップとを含む。例えばモンテカルロシミュレーションにて最悪の性能を示す結果を特定するものである。
【0144】
また、上で述べた採用ステップが、特定項目について指定されているコーナ値設定データに基づき各特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、各特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて回路シミュレーションを実施するステップとをさらに含むようにしてもよい。例えばコーナシミュレーションにて最悪の性能を表す結果を特定するようにしても良い。
【0145】
本技術の第2の態様に係る自動回路設計方法(図45及び図46)は、(A2)製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全てのプロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付けるステップと、(B2)回路設計の要求仕様についての入力を受け付けるステップと、(C2)上記指定が第1の最適化である場合には、各プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部から特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、上記指定が第2の最適化である場合には、プロセス制約条件と回路構成との組み合わせについてのパレート最適解に該当する回路構成の識別子とプロセス制約条件の識別子との組み合わせと設計変数の各々の該当値と要求仕様の各項目の該当値とを格納する全体パレートデータ格納部からデータをパレート最適解データとして読み出すステップと、(D2)要求仕様の各項目について値の分布をバランスさせる、要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出されたパレート最適解データに含まれるパレート最適解に対して空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、(E2)読み出されたパレート最適解データに含まれるパレート最適解に対して空間変換を実施した後のパレート最適解から、空間変換後の解仕様空間における、仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から仮最適解についての回路構成を特定するステップと、(F2)仮最適解を、特定された回路構成についての各設計変数の値にマッピングするステップと、(G2)特定された回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップとを含む。
【0146】
本方法用のデータを格納するプロセス別パレートデータ格納部及び全体パレートデータ格納部(これらは1台のストレージデバイスの一部の領域の場合もある)が用意されれば、データを生成する時間が節約されるので、自動回路設計に必要な時間は短縮される。
【0147】
また、本回路自動設計方法は、マッピングによって得られた、回路構成についての各設計変数の値で、回路シミュレーションを実施し、空間変換の逆空間変換後の仮最適解を実現可能か判断するステップをさらに含むようにしても良い。この場合、出力ステップが、実現可能と判断された場合に実行されるようにしてもよい。実際に同様の性能を奏する回路が実現できるかを確認した上で出力するものである。
【0148】
また、本回路自動設計方法において、実現不可能と判断された場合には、仮最適解の近傍のパレート最適解から、次の候補解を特定し、当該仮最適解の近傍のパレート最適解から次の候補解についての回路構成を特定するステップと、次の候補解を、特定された回路構成についての各設計変数の値にマッピングするステップと、マッピングによって得られた、回路構成についての各設計変数の値で、回路シミュレーションを実施し、逆空間変換後の次の候補解を実現可能か判断するステップと、実現可能と判断された場合には、回路構成及び当該回路構成についての各設計変数の値を出力するステップとをさらに含むようにしてもよい。このように、実際に同様の性能を奏する回路が実現できない場合には、仮最適解の近傍から次の候補で確かめることによって、次に適切な回路及び回路設計値のセットを特定するものである。
【0149】
さらに、本技術の第3の態様に係る自動回路設計用パレートデータ生成装置(図47)は、(A)回路構成のデータを格納する回路構成データ格納部(図47:1002)から、特定の機能を有する回路構成を抽出する回路選択部(図47:1001)と、(B)回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部(図47:1003)に格納されているプロセス制約条件と抽出された回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、シミュレーション結果から要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、プロセス制約条件の識別子と回路構成の識別子との組み合わせに対応付けてパレート最適解の各々について設計変数の各々の該当値と要求仕様の各項目の該当値とを個別パレートデータ格納部(図47:1005)に格納する個別パレート生成部(図47:1004)と、(C)プロセス制約条件の各々について、個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全てのパレート最適解において非劣解となるパレート最適解を抽出し、プロセス制約条件の各々について、当該パレート最適解について該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とをプロセス別パレートデータ格納部(図47:1007)に格納するプロセス別パレート生成処理部(図47:1006)と、(D)個別パレートデータ格納部に格納されている、抽出された全ての回路構成についての全てのパレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する回路構成の識別子とプロセス制約条件の識別子との組み合わせと設計変数の各々の該当値と要求仕様の各項目の該当値とを全体パレートデータ格納部(図47:1009)に格納する全体パレートデータ生成処理部(図47:1008)を有する。
【0150】
また、本技術の第4の態様に係る自動回路設計装置(図48)は、(A)製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部(図48:1201)に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全てのプロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付け、回路設計の要求仕様についての入力を受け付ける入力部(図48:1202)と、(B)(1)上記指定が第1の最適化である場合には、各プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部(図48:1203)から特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、上記指定が第2の最適化である場合には、プロセス制約条件と回路構成との組み合わせについてのパレート最適解に該当する回路構成の識別子とプロセス制約条件の識別子との組み合わせと設計変数の各々の該当値と要求仕様の各項目の該当値とを格納する全体パレートデータ格納部(図48:1204)からデータをパレート最適解データとして読み出し、(2)要求仕様の各項目について値の分布をバランスさせる、要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出されたパレート最適解データに含まれるパレート最適解に対して空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出し、(3)読み出されたパレート最適解データに含まれるパレート最適解に対して空間変換を実施した後のパレート最適解から、空間変換後の解仕様空間における、仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定し、(4)仮最適解を、特定された回路構成についての各設計変数の値にマッピングする最適解生成処理部(図48:1205)と、(C)特定された回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力部(図48:1206)とを有する。
【0151】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【0152】
(付記1)
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
前記回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている前記プロセス制約条件と抽出された前記回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記プロセス制約条件の識別子と前記回路構成の識別子との組み合わせに対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別パレートデータ格納部に格納する個別パレート生成ステップと、
前記プロセス制約条件の各々について、前記個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、前記プロセス制約条件の各々について、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とをプロセス別パレートデータ格納部に格納するステップと、
前記個別パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
を、コンピュータに実行させるための自動回路設計用パレートデータ生成プログラム。
【0153】
(付記2)
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を1回分の前記シミュレーション結果として採用する採用ステップ
を含む付記1記載の自動回路設計用パレートデータ生成プログラム。
【0154】
(付記3)
前記採用ステップが、
前記特定項目について指定されている乱数発生範囲データに基づき各前記特定項目の値を乱数で生成するステップと、
生成された各前記特定項目の乱数値のセットについて前記回路シミュレーションを実施するステップと、
を含む付記2記載の自動回路設計用パレートデータ生成プログラム。
【0155】
(付記4)
前記採用ステップが、
前記特定項目について指定されているコーナ値設定データに基づき各前記特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、
各前記特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて前記回路シミュレーションを実施するステップと、
を含む付記2記載の自動回路設計用パレートデータ生成プログラム。
【0156】
(付記5)
製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全ての前記プロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付けるステップと、
回路設計の要求仕様についての入力を受け付けるステップと、
前記指定が前記第1の最適化である場合には、各前記プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部から前記特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、前記指定が前記第2の最適化である場合には、前記プロセス制約条件と前記回路構成との組み合わせについてのパレート最適解に該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを格納する全体パレートデータ格納部からデータを前記パレート最適解データとして読み出すステップと、
前記要求仕様の各項目について値の分布をバランスさせる、前記要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出された前記パレート最適解データに含まれるパレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
読み出された前記パレート最適解データに含まれる前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
を、コンピュータに実行させる自動回路設計プログラム。
【0157】
(付記6)
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記空間変換の逆空間変換後の前記仮最適解を実現可能か判断するステップ
をさらに前記コンピュータに実行させ、
前記出力ステップが、実現可能と判断された場合に実行される
付記5記載の自動回路設計プログラム。
【0158】
(付記7)
実現不可能と判断された場合には、前記仮最適解の近傍のパレート最適解から、次の候補解を特定し、当該仮最適解の近傍のパレート最適解から前記次の候補解についての回路構成を特定するステップと、
前記次の候補解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記逆空間変換後の前記次の候補解を実現可能か判断するステップと、
実現可能と判断された場合には、前記回路構成及び当該回路構成についての各設計変数の値を出力するステップと、
をさらに前記コンピュータを実行させるための付記6記載の自動回路設計プログラム。
【0159】
(付記8)
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
前記回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている前記プロセス制約条件と抽出された前記回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記プロセス制約条件の識別子と前記回路構成の識別子との組み合わせに対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別パレートデータ格納部に格納する個別パレート生成ステップと、
前記プロセス制約条件の各々について、前記個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、前記プロセス制約条件の各々について、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とをプロセス別パレートデータ格納部に格納するステップと、
前記個別パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
を含み、コンピュータに実行される自動回路設計用パレートデータ生成方法。
【0160】
(付記9)
製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全ての前記プロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付けるステップと、
回路設計の要求仕様についての入力を受け付けるステップと、
前記指定が前記第1の最適化である場合には、各前記プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部から前記特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、前記指定が前記第2の最適化である場合には、前記プロセス制約条件と前記回路構成との組み合わせについてのパレート最適解に該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを格納する全体パレートデータ格納部からデータを前記パレート最適解データとして読み出すステップと、
前記要求仕様の各項目について値の分布をバランスさせる、前記要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出された前記パレート最適解データに含まれるパレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
読み出された前記パレート最適解データに含まれる前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
を含み、コンピュータに実行される自動回路設計方法。
【0161】
(付記10)
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出する回路選択部と、
前記回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている前記プロセス制約条件と抽出された前記回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記プロセス制約条件の識別子と前記回路構成の識別子との組み合わせに対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別パレートデータ格納部に格納する個別パレート生成部と、
前記プロセス制約条件の各々について、前記個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、前記プロセス制約条件の各々について、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とをプロセス別パレートデータ格納部に格納するプロセス別パレート生成処理部と、
前記個別パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納する全体パレートデータ生成処理部と、
を有する自動回路設計用パレートデータ生成装置。
【0162】
(付記11)
製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全ての前記プロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付け、回路設計の要求仕様についての入力を受け付ける入力部と、
前記指定が前記第1の最適化である場合には、各前記プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部から前記特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、前記指定が前記第2の最適化である場合には、前記プロセス制約条件と前記回路構成との組み合わせについてのパレート最適解に該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを格納する全体パレートデータ格納部からデータを前記パレート最適解データとして読み出し、前記要求仕様の各項目について値の分布をバランスさせる、前記要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出された前記パレート最適解データに含まれるパレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出し、読み出された前記パレート最適解データに含まれる前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定し、前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングする最適解生成処理部と、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力部と、
を有する自動回路設計装置。
【符号の説明】
【0163】
1 制約条件格納部 2 回路構成ライブラリ格納部
3 仕様データ格納部 4 回路構成選択部
5 選択回路構成データ格納部 6 パレート生成条件格納部
7 テストベンチデータ格納部 8 個別パレート生成処理部
9 回路シミュレータ 10 個別パレートデータ格納部
11 全体パレート生成処理部 12 全体パレートデータ格納部
13 プロセス制約条件格納部 14 プロセス別パレート生成処理部
15 プロセス別パレートデータ格納部 16 PVTコーナ設定データ格納部
21 入力部 22 仕様データ格納部
23 回路構成ライブラリ格納部 24 プロセス制約条件格納部
25 パレートデータ格納部 26 テストベンチデータ格納部
27 最適解生成処理部 28 最適解データ格納部
29 回路シミュレータ 30 出力部

【特許請求の範囲】
【請求項1】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出するステップと、
前記回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている前記プロセス制約条件と抽出された前記回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記プロセス制約条件の識別子と前記回路構成の識別子との組み合わせに対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別パレートデータ格納部に格納する個別パレート生成ステップと、
前記プロセス制約条件の各々について、前記個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、前記プロセス制約条件の各々について、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とをプロセス別パレートデータ格納部に格納するステップと、
前記個別パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
を、コンピュータに実行させるための自動回路設計用パレートデータ生成プログラム。
【請求項2】
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を1回分の前記シミュレーション結果として採用する採用ステップ
を含む請求項1記載の自動回路設計用パレートデータ生成プログラム。
【請求項3】
前記採用ステップが、
前記特定項目について指定されている乱数発生範囲データに基づき各前記特定項目の値を乱数で生成するステップと、
生成された各前記特定項目の乱数値のセットについて前記回路シミュレーションを実施するステップと、
を含む請求項2記載の自動回路設計用パレートデータ生成プログラム。
【請求項4】
前記採用ステップが、
前記特定項目について指定されているコーナ値設定データに基づき各前記特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、
各前記特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて前記回路シミュレーションを実施するステップと、
を含む請求項2記載の自動回路設計用パレートデータ生成プログラム。
【請求項5】
製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全ての前記プロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付けるステップと、
回路設計の要求仕様についての入力を受け付けるステップと、
前記指定が前記第1の最適化である場合には、各前記プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部から前記特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、前記指定が前記第2の最適化である場合には、前記プロセス制約条件と前記回路構成との組み合わせについてのパレート最適解に該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを格納する全体パレートデータ格納部からデータを前記パレート最適解データとして読み出すステップと、
前記要求仕様の各項目について値の分布をバランスさせる、前記要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出された前記パレート最適解データに含まれるパレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
読み出された前記パレート最適解データに含まれる前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
を、コンピュータに実行させる自動回路設計プログラム。
【請求項6】
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記空間変換の逆空間変換後の前記仮最適解を実現可能か判断するステップ
をさらに前記コンピュータに実行させ、
前記出力ステップが、実現可能と判断された場合に実行される
請求項5記載の自動回路設計プログラム。
【請求項7】
実現不可能と判断された場合には、前記仮最適解の近傍のパレート最適解から、次の候補解を特定し、当該仮最適解の近傍のパレート最適解から前記次の候補解についての回路構成を特定するステップと、
前記次の候補解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記逆空間変換後の前記次の候補解を実現可能か判断するステップと、
実現可能と判断された場合には、前記回路構成及び当該回路構成についての各設計変数の値を出力するステップと、
をさらに前記コンピュータを実行させるための請求項6記載の自動回路設計プログラム。
【請求項8】
回路構成のデータを格納する回路構成データ格納部から、特定の機能を有する回路構成を抽出する回路選択部と、
前記回路構成について共通して用いられる可能性のある製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている前記プロセス制約条件と抽出された前記回路構成との各組み合わせについて、当該プロセス制約条件及び当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記プロセス制約条件の識別子と前記回路構成の識別子との組み合わせに対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別パレートデータ格納部に格納する個別パレート生成部と、
前記プロセス制約条件の各々について、前記個別パレートデータ格納部に当該プロセス制約条件に対応付けて格納されている、全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、前記プロセス制約条件の各々について、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とをプロセス別パレートデータ格納部に格納するプロセス別パレート生成処理部と、
前記個別パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納する全体パレートデータ生成処理部と、
を有する自動回路設計用パレートデータ生成装置。
【請求項9】
製造プロセスについての制約条件である複数のプロセス制約条件を格納するプロセス制約条件格納部に格納されている特定のプロセス制約条件についての最適化である第1の最適化と全ての前記プロセス制約条件の中での最適化である第2の最適化とのいずれかの指定を受け付け、回路設計の要求仕様についての入力を受け付ける入力部と、
前記指定が前記第1の最適化である場合には、各前記プロセス制約条件についてパレート最適解に該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを格納するプロセス別パレートデータ格納部から前記特定のプロセス制約条件についてのデータをパレート最適解データとして読み出し、前記指定が前記第2の最適化である場合には、前記プロセス制約条件と前記回路構成との組み合わせについてのパレート最適解に該当する前記回路構成の識別子と前記プロセス制約条件の識別子との組み合わせと前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを格納する全体パレートデータ格納部からデータを前記パレート最適解データとして読み出し、前記要求仕様の各項目について値の分布をバランスさせる、前記要求仕様の各項目についての解仕様空間の空間変換が実施された後の解仕様空間において、読み出された前記パレート最適解データに含まれるパレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出し、読み出された前記パレート最適解データに含まれる前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定し、前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングする最適解生成処理部と、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力部と、
を有する自動回路設計装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図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

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate


【公開番号】特開2011−70336(P2011−70336A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−219920(P2009−219920)
【出願日】平成21年9月25日(2009.9.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】