JP5246030B2 - 回路自動設計プログラム、方法及び装置 - Google Patents

回路自動設計プログラム、方法及び装置 Download PDF

Info

Publication number
JP5246030B2
JP5246030B2 JP2009120305A JP2009120305A JP5246030B2 JP 5246030 B2 JP5246030 B2 JP 5246030B2 JP 2009120305 A JP2009120305 A JP 2009120305A JP 2009120305 A JP2009120305 A JP 2009120305A JP 5246030 B2 JP5246030 B2 JP 5246030B2
Authority
JP
Japan
Prior art keywords
pareto
circuit configuration
circuit
solution
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009120305A
Other languages
English (en)
Other versions
JP2010102681A (ja
Inventor
宇 劉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009120305A priority Critical patent/JP5246030B2/ja
Priority to US12/565,951 priority patent/US8527931B2/en
Publication of JP2010102681A publication Critical patent/JP2010102681A/ja
Application granted granted Critical
Publication of JP5246030B2 publication Critical patent/JP5246030B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]

Description

本技術は、回路の自動設計技術に関する。
与えられた特性仕様と設計条件を満足するように、アナログ回路の定数最適化を行う最適化処理手段については、従来から存在していた。具体的には、複数の目的関数を重み付けして加え、1つの目的関数を構成し、当該目的関数の値が最小となるような回路定数の組み合わせをシンプレックス法を用いて探索する方法が知られている。この探索処理においては、回路構成を変更しつつ要求仕様を満たすように回路定数の最適化を実施するが、要求仕様を満たせないと分かると、最初に戻って要求仕様を変更してから同様の処理を繰り返す必要がある。
特開平4−260973号公報
上記のような探索処理では回路シミュレーションを繰り返し実施する必要があり時間がかかる。もし、要求仕様を満たせないということが分かり、最初に戻って要求仕様を変更するといった場合には、さらに回路シミュレーションを繰り返し実施することになるのでさらに時間がかかる。このように従来技術では、要求仕様の変更を何度も行うことが実質的にできない。
そこで本技術の目的は、要求仕様を満たす又は満たさない場合でも当該要求仕様に近い回路を短時間で自動設計することである。
本回路自動設計方法は、(A)回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、(B)抽出された各回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、シミュレーション結果から要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、回路構成に対応付けてパレート最適解の各々について設計変数の各々の該当値と要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、(C)個別回路構成パレートデータ格納部に格納されている、抽出された全ての回路構成についての全てのパレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、(D)要求仕様の各項目について値の分布をバランスさせる解仕様空間の空間変換が実施された後の解仕様空間において、全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、(E)全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解から、空間変換後の解仕様空間における、仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から仮最適解についての回路構成を特定するステップと、(F)仮最適解を、特定された回路構成についての各設計変数の値にマッピングするステップと、(G)特定された回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップとを含む。
要求仕様を満たす又は満たさない場合でも当該要求仕様に近い回路を短時間で自動設計できるようになる。
本技術の第1の実施の形態における回路自動設計装置の機能ブロック図である。 回路構成ライブラリ格納部に格納されるデータの一例を示す図である。 制約条件格納部に格納されるデータの一例を示す図である。 仕様データ格納部に格納されるデータの一例を示す図である。 本技術の実施の形態におけるメインの処理フローを示す図である。 パレートを説明するための模式図である。 個別パレート生成処理の処理フローを示す図である。 テストベンチデータ格納部に格納されるデータを模式的に示す図である。 個別パレートデータ格納部に格納されるデータの一例を示す図である。 パレートサンプリング集合を模式的に示す図である。 全体パレート生成処理の処理フローを示す図である。 全体パレート生成処理を説明するための模式図である。 全体パレート生成処理を説明するための模式図である。 全体パレート生成処理を説明するための模式図である。 全体パレートデータ格納部に格納されるデータの一例を示す図である。 最適解生成処理の処理フローを示す図である。 仮最適解探索処理の処理フローを示す図である。 仮最適解の探索を模式的に示す図である。 仮最適解に対応する回路構成を特定する処理を説明するための模式図である。 本技術の第2の実施の形態における回路自動設計装置の機能ブロック図である。 PVTコーナ設定データ格納部に格納されるデータの一例を示す図である。 PVTコーナ設定データ格納部に格納されるデータの一例を示す図である。 出現分布を説明するための模式図である。 PVTコーナ設定データ格納部に格納されるデータの一例を示す図である。 定格値についてパレート曲線を形成する際の問題を説明するための図である。 最悪性能についてのパレート曲線について説明するための図である。 第2の実施の形態における個別パレート生成処理の処理フローを示す図である。 最悪性能値取得処理の第1の例を示す図である。 生成されるデータの一例を示す図である。 最悪性能値取得処理の第2の例を示す図である。 第2の実施の形態における個別パレートデータ格納部に格納されるデータの一例を示す図である。 第2の実施の形態における全体パレートデータ格納部に格納されるデータの一例を示す図である。 コンピュータの機能ブロック図である。
[実施の形態1]
本技術の第1の実施の形態に係る回路自動設計装置の機能ブロック図を図1に示す。本回路自動設計装置は、設計済みだが回路パラメータは未設定のアナログ回路の回路構成データを格納する回路構成ライブラリ格納部2と、各回路構成についての制約条件を格納する制約条件格納部1と、ユーザによって指定される要求仕様の仕様データを格納する仕様データ格納部3と、制約条件格納部1と回路構成ライブラリ格納部2と仕様データ格納部3とに格納されているデータを用いて要求仕様を満たす可能性のある回路構成を選択する回路構成選択部4と、回路構成選択部4によって選択された回路構成についてのデータを格納する選択回路構成データ格納部5と、パレート生成条件を格納するパレート生成条件格納部6と、例えば回路構成の種別毎にシミュレーション用の周辺回路についてのデータを格納するテストベンチデータ格納部7と、例えばSPICE(Simulation Program with Integrated Circuit Emphasis)などの回路シミュレータ9と、回路シミュレータ9と連携し且つ制約条件格納部1と選択回路構成データ格納部5と仕様データ格納部3とパレート生成条件格納部6とテストベンチデータ格納部7とに格納されているデータを用いて選択回路構成毎にパレート最適解(以下、パレートと呼ぶ。パレート最適解については以下に述べる。)を生成する個別パレート生成処理部8と、個別パレート生成処理部8の処理結果を格納する個別パレートデータ格納部10と、個別パレートデータ格納部10に格納されているデータを用いて選択回路構成全てにおけるパレートを生成する全体パレート生成処理部11と、全体パレート生成処理部11による処理結果を格納する全体パレートデータ格納部12と、テストベンチデータ格納部7と仕様データ格納部3と全体パレートデータ格納部12と回路構成ライブラリ格納部2とに格納されているデータを用いて最適解となる回路構成及び回路構成の各パラメータの値を特定する処理を実施する最適解生成処理部13と、最適解生成処理部13による処理結果を格納する最適解データ格納部14と、最適解データ格納部14に格納されたデータをユーザに対して例えば表示装置又は印刷装置などの出力装置を介して出力する出力部15とを有する。最適解生成処理部13についても回路シミュレータ9と連携する。また、回路シミュレータ9は、回路自動設計装置とは別装置として実装される場合もある。
回路構成ライブラリ格納部2には、例えば、図2に示すようなデータ構造にて回路構成を保持している。すなわち、各回路構成に当該回路構成の性質や機能を表すタグを付して、図2に示すように階層型のデータ構造を構成し、特定の性質や機能を有する回路構成を検索できるようにしている。図2の例では、第1階層としてRF回路、フィルタ、リニアアンプ、レギュレータといった機能分けが行われており、RF回路の第2階層としてLNA(低雑音増幅器:Low Noise Amplifier)、VCO(電圧制御発信器:Voltage Controlled Oscillator)、ミキサー、パワーアンプなどが含まれており、リニアアンプの第2階層としてOPAMP(オペアンプ)と、バッファと、OTA(Operational Transconductance Amplifier)などが含まれる。図2では、バッファについて2つの異なる回路構成が登録されている様子が模式的に示されている。
また、制約条件格納部1には、例えば図3に示すようなデータが回路構成毎に格納されている。図3に示すように、制約条件には、直接制約条件と、間接制約条件とが含まれている。直接制約条件は、製造条件(プロセス、設計ルール(ゲート長L及びゲート幅Wなど)による制約条件、回路動作原理による制約条件(マッチング条件、サイズ比例条件、パラメータ間の制約条件)、システム要求による制約条件(動作電圧、温度、入力条件)を含む。間接制約条件は、必須性能から回路構成パラメータへの制限となる条件である。図3の例では、面積(Area)についての条件が規定されている。この他にも、消費電力、THD(Total harmonic distortion)、DC利得、帯域幅などの制約条件が規定される場合もある。制約条件は、設計者が指定することができる設計変数についての条件である。図3に示すように、ゲート長Lが65nmから2μmといったようにある程度の幅をもって指定される場合もある。
さらに、図4に仕様データ格納部3に格納されるデータの一例を示す。要求仕様は、回路全体で満足すべき特性を各項目について規定したものであり、図4の例では、消費電流、THD、DC利得、帯域幅といった項目毎に値が設定されている。項目については他の項目を採用することも可能である。値については設計目的から規定される。なお、本実施の形態では、仕様データ格納部3には、どのような機能や性質の回路(例えばバッファ)が必要なのかについてのデータについても格納されているものとする。
次に図5乃至図19を用いて、回路自動設計装置の動作について説明する。まず、回路構成選択部4は、仕様データ格納部3に格納されている要求仕様を満たす可能性があり、且つ指定された性質や機能を有する回路構成を、回路構成ライブラリ格納部2から選択する(図5:ステップS1)。上でも述べたように、各回路構成の制約条件は、制約条件格納部1に格納されており、要求仕様の各項目の値を明らかに満たさないような制約条件が規定されている回路構成を、要求仕様を満たす可能性なしとして除外する。回路構成選択部4は、選択した回路構成についてのデータを選択回路構成データ格納部5に格納する。
次に、個別パレート生成処理部8は、個別パレート生成処理を実施する(ステップS3)。この個別パレート生成処理については図6乃至図10を用いて説明する。
まず、パレートについて図6を用いて説明しておく。ここでは要求仕様の項目が2つだけであると仮定し、第1の項目を縦軸にコスト1として設定し、より小さい値ほどコストが低いものとし、第2の項目を横軸にコスト2として設定し、より小さい値ほどコストが低いものとする。ここで、特定の回路パラメータ・セットで回路シミュレーションを実施してコスト1及び2の値を特定すると、図6に示すような2次元空間(解空間又は解仕様空間とも呼ぶ)にプロットすることができる。図6の例ではA乃至Fの6つの点(以下、解と呼ぶ)が得られている。このような状況において、当然ながらコスト1も2も小さい値の方が好ましいので、原点に近いほど良い解である。そして「X支配Y」とは、Yの成分(即ちコスト)は全てXの成分より劣っていることを示す。図6のような2次元空間では、コスト1も2も小さいBの方がEよりも良い解であるから「B支配E」であり、同様にCの方がFよりも良い解であるから「C支配F」である。一方AとBとを比較すると、Aの方がコスト2は小さいがコスト1はBの方が小さいので「A支配B」とは言えない。A乃至Dについてはこのように支配関係が成り立たない。このように解空間に他の解に支配されない解、すなわち非劣解をパレート最適解と呼ぶ。そして、パレート最適解を結ぶ曲線(3次元以上の空間であれば曲面)Aをパレート曲線(又は曲面)と呼ぶ。
このような前提の下、図7に従って個別パレート生成処理について説明する。まず、個別パレート生成処理部8は、選択回路構成データ格納部5に格納されている選択回路構成のうち未処理の回路構成を1つ特定する(ステップS11)。そして、特定された回路構成について、制約条件格納部1に格納されている、当該回路構成についての対応制約条件を満たす設計変数(例えばゲート長Lやゲート幅Wを含む回路パラメータ)を乱数で生成し、例えばメインメモリなどの記憶装置に格納する(ステップS13)。そして、テストベンチデータ格納部7から、選択回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部5に格納されている選択回路構成のデータと、生成した設計変数と、仕様データ格納部3に格納されている要求仕様の項目(すなわち性能項目)とを回路シミュレータ9に出力し、回路シミュレータ9に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ9から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する(ステップS15)。
テストベンチデータ格納部7から読み出される周辺回路のデータの一例を図8に示す。図8の例では、中央に選択回路構成となる差動入出力バッファ回路が示されており、電源回路や性能項目の測定に必要な回路等が、電源端子や入出力端子などに接続されるようになっている。このような周辺回路については周知であり、これ以上説明しない。
また、回路シミュレーションの内容についても周知であるから、これ以上説明しない。
その後、ステップS15で得られた性能項目の性能値セットが、解空間においてパレート最適解を構成するかを、これより前に選択された各パレート最適解との支配関係を確認することによって判断し、判断結果によってパレートサンプリング集合を更新する(ステップS17)。すなわち、ステップS15で得られた性能項目の性能値セットで構成される解が、他の解を支配している場合には、当該他の解を、パレート最適解の集合であるパレートサンプリング集合から除去し、ステップS15で得られた解をパレートサンプリング集合に追加し、逆に他の解に支配されている場合には、ステップS15で得られた解を破棄する。
パレートサンプリング集合は、例えば個別パレートデータ格納部10に図9に示すようなデータとして格納される。図9の例では、回路構成の識別子と、設計変数1乃至3の値と、性能項目1乃至4の値とが登録されるようになっている。変数や項目の数は一例であって、これより多い場合もある。このように、1つのパレート最適解についてのデータが1レコードとして登録される。そして、1つの回路構成についてのレコード群が、パレートサンプリング集合を構成する。また、回路構成のデータについても、個別パレートデータ格納部10に格納するものとする。
その後、個別パレート生成処理部8は、パレート生成条件格納部6に格納されているパレート生成条件を満たしたか判断する(ステップS19)。パレート生成条件は、多目的最適化処理(複数の目的関数のトレードオフを同時に調べる手法)における実行条件であり、例えば多目的最適化処理に、遺伝多目的最適化アルゴリズムNSGA−II(Non-dominate sorting genetic algorithm)を利用する場合には、母集団が進化する世代数(generation)及び母集団の個体数(population)等で指定される。なお、多目的最適化自体は周知であり、例えばhttp://mikilab.doshisha.ac.jp/dia/research/report/2006/1006/003/report20061006003.htmlなどに詳細が開示されている。
パレート生成条件を満たしていない場合には、個別パレート生成処理部8は、上で述べたような周知の多目的最適化処理(例えばcrossover処理やmutation処理)により、設計変数を更新し、例えばメインメモリなどの記憶装置に格納する(ステップS21)。そしてステップS15に戻る。
一方、パレート生成条件を満たしている場合には、個別パレート生成処理部8は、全ての選択回路構成について処理したか判断する(ステップS23)。未処理の選択回路構成が存在している場合にはステップS11に戻る。一方、未処理の選択回路構成が存在しない場合には、元の処理に戻る。
このような処理を実施することによって、回路構成毎に、パレート最適解の集合が生成されるようになる。模式的に解空間を2次元空間として表せば、図10に示すようにパレート曲線を構成する解が複数得られるようになる。
図5の処理の説明に戻って、全体パレート生成処理部11は、全体パレート生成処理を実施する(ステップS5)。この全体パレート生成処理については、図11乃至図15を用いて説明する。
なお、全体パレート生成処理は、選択回路構成毎のパレートサンプリング集合を重ね合わせて、選択回路構成全体のパレート最適解の集合を構成する処理である。このため、各選択回路構成に含まれる全ての解について相互の支配関係を確認し、離散的に全体のパレート最適解の集合を生成する方法と、各選択回路構成のパレートサンプリング集合について数式でモデリングして、数式間の支配関係を数理的に解析して選択回路構成全体のパレート最適解を特定する方法とのいずれかを採用可能である。
ここでは前者について説明する。まず、全体パレート生成処理部11は、全体パレートサンプリング集合PL=φと設定する(ステップS31)。PLは、全体パレートデータ格納部12に格納される。そして、全選択回路構成のパレート最適解のうち未処理のパレート最適解pを特定する(ステップS33)。その後、PLにパレート最適解pを追加する(ステップS35)。
さらに、全体パレート生成処理部11は、PL内の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に移行する。
図12に示すように、pが図におけるaであってp'が図におけるbであるとすると、a支配bであるから、図におけるbはPLから除去される。一方、p'がcであるとするとa支配cとは言えないので、cはPLに残される。但し、例えば図12におけるdがpであれば、d支配cであるから、cはPLから除去される。基本的には、pがbで、p'がaであっても同様に取り扱われる。
その後、全体パレート生成処理部11は、PL内の全てのパレート最適解について処理したか判断する(ステップS47)。PL内の全てのパレート最適解について処理したわけではない場合にはステップS37に戻る。一方、PL内の全てのパレート最適解について処理した場合には、全選択回路構成のパレート最適解を全て処理したか判断する(ステップS49)。全選択回路構成の未処理のパレート最適解が存在する場合にはステップS33に戻る。全て処理した場合には元の処理に戻る。
例えば、図13に示すように2次元空間を解空間として、回路構成1についてのパレートサンプリング集合と、回路構成2についてのパレートサンプリング集合と、回路構成nについてのパレートサンプリング集合とが存在する場合には、図11に示すような処理を実施して、非劣解のみを残す。そうすると、図14に示すような回路構成1についての一部のパレート最適解と、回路構成2についての一部のパレート最適解とが、全選択回路構成についてのパレートサンプリング集合を構成するようになる。
また、全体パレートデータ格納部12には、図15に示すようなデータが格納される。図9に示したようなレコード群から、全選択回路構成についてのパレート最適解に対応するレコードのみが、図15にも含まれるようになる。すなわち、回路構成の識別子と、設計変数1乃至3の値と、性能項目1乃至4の値とで1レコードが構成されるようになる。なお、該当する回路構成のデータについても、全体パレートデータ格納部12に格納するものとする。
図5の処理の説明に戻って、最適解生成処理部13は、最適解生成処理を実施する(ステップS7)。この最適解生成処理については、図16乃至図19を用いて説明する。
まず、最適解生成処理部13は、要求仕様の各項目について値の分布をバランスさせる解空間の空間変換(スケーリング及びシフティング)を実施する(ステップS51)。処理結果は、例えば全体パレートデータ格納部12に格納される。データフォーマットは、例えば、図15における回路構成の識別子と性能項目1乃至3の部分と同様である。
例えば、解空間における要求仕様Sとパレート最適解Pとの距離を、以下のように定義するとする。
Figure 0005246030
このような場合、例えば消費電流がμA程度であり、帯域幅がGHz程度であるとすると、明らかに消費電流という性能項目は帯域幅という性能項目に対して値が小さくなるので、実質的に無視されることになる。このような事態を避け、全ての性能項目がほぼ平等に取り扱われるように空間変換が必要となる。具体的には、以下のようなアフィン(Affine)変換を実施する。PTranは、空間変換後の解ベクトルを表し、Psampは、空間変換前の解ベクトル(性能項目数n個の成分を有する)を表し、VShiftは、平行移動させるためのベクトル(性能項目数n個の成分を有する)を表し、MscalingはPsampの各性能項目の値の増減を行わせる対角行列(n行×n列の行列)である。
Tran=VShift+Mscaling*Psamp
Figure 0005246030
Shift_i=−Mscaling_(i,i)×min(obji
なお、Mscaling_(i,j)は、Mscalingのi行j列成分である。また、max(obji)は、例えば全体パレートデータ格納部12(場合によっては個別パレートデータ格納部10)に格納されている全てのパレート最適解におけるi番目の性能項目の最大値であり、min(obji)は、同様に全パレートデータ格納部12に格納されている全てのパレート最適解におけるi番目の性能項目の最小値である。さらに、Vshift_i=は、Vshiftのi番目の成分を示す。また、ci0については、iについて指定された定数である。
このような変換を行えば、各性能項目がバランスするように空間変換が実施される。すなわち、各性能項目がほぼ平等に取り扱われることとなる。
なお、距離を算出する場合には、当然ながら要求仕様Sについても、同様の空間変換が必要となる。上の式におけるPsampをSで置換すれば算出される。空間変換後の要求仕様については、例えばメインメモリなどの記憶装置に格納する。
次に、最適解生成処理部13は、仮最適解探索処理を実施する(ステップS53)。仮最適解探索処理については図17を用いて説明する。
まず、最適解生成処理部13は、全体パレートデータ格納部12から、要求仕様と距離が近い上位Nパレート最適解を抽出する(図17:ステップS71)。空間変換後であるから、上で述べた式(1)で距離は算出される。そして、最小二乗法などの周知の方法を用いて、抽出Nパレート最適解を通過するパレート曲面(2次元空間であればパレート曲線)F(P)=0を算出する(ステップS73)。
そして、最適解生成処理部13は、仮最適解がパレート曲面F(P)=0上であり且つ仮最適解におけるパレート曲面の接線と直交する直線上にも存在するということを表す連立方程式を解き、仮最適解を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS75)。
この処理について図18で概要を説明する。図18に示すように、ステップS71で抽出されたN個のパレート最適解を通過する曲線をパレート曲線F(P)とすると、仮最適解P0は、当該パレート曲線F(P)=0上に存在する。すなわち、F(P0)=0となる。さらに、Collinearity定理によって、要求仕様S、仮最適解P0、パレート曲線(一般的には曲面)の瞬時中心点が同一直線上にある。すなわち、仮最適解P0におけるパレート曲面の接線hに直交する直線g上に、仮最適解P0及び要求仕様Sが乗ることになる。
具体的には、以下に示すような式で表される。
Figure 0005246030
第一式の右辺第一項が、直線gを表すベクトルであり、tは未知の係数であり、Specは要求仕様Sに対応する。すなわち、第一式は、直線gを、要求仕様Sからt倍すると、仮最適解P0になることを表す。このような連立方程式を解くと、tと仮最適解P0が得られる。そして元の処理に戻る。
なお、仮最適解P0は、全体パレートデータ格納部12に格納されている解とは異なる点である可能性が高い。従って、以下のような確認処理が必要となる。
すなわち、最適解生成処理部13は、全体パレートデータ格納部12から、仮最適解の近傍のパレート最適解を抽出し、当該近傍のパレート最適解の回路構成により、当該仮最適解の回路構成を決定する(ステップS55)。図19に2次元の場合を模式的に示すと、要求仕様Sから仮最適解P0を求めた場合には、その近傍(ここではパレート曲線上の両脇)のパレート最適解P1及びP2を抽出する。そして、全体パレートデータ格納部12に、パレート最適解P1及びP2に対応付けられて格納されている回路構成の識別子を特定する。この際、2つのパレート最適解P1及びP2について同じ回路構成の識別子が得られれば当該回路構成を採用する。一方、異なる回路構成の識別子が得られた場合には、最も近い近傍のパレート最適解の回路構成を採用する。
そして、最適解生成処理部13は、仮最適解の逆空間変換を実施する(ステップS57)。ステップS51で実施した空間変換の逆変換を実施する。具体的には、VShiftの逆ベクトルをPTranから引き、さらに左からMscalingの逆行列を掛ければよい。ステップS61で用いるためである。
そして、最適解生成処理部13は、仮最適解を、特定された回路構成の変数空間にマッピングして、回路パラメータの値を決定し、例えばメインメモリなどの記憶装置に格納する(ステップS59)。
具体的には、要求仕様に近い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}である。
最後の処理についてより詳細に述べると、通常、性能項目の数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号公報などにも用いられており、これ以上の説明は省略する。
その後、最適解生成処理部13は、回路シミュレータ9に対してステップS55で特定された回路構成のデータと、テストベンチデータ格納部7に格納されている、当該回路構成に対応する周辺回路のデータなどと、ステップS59で算出した回路パラメータの値とを出力し、回路シミュレータ9に周知の回路シミュレーションを実施させ、当該回路シミュレータ9から要求仕様の性能項目の性能値を取得する。そして、特定された回路構成及び回路パラメータにより逆空間変換後の仮最適解を実現可能であるか判断する(ステップS61)。すなわち、要求仕様の性能項目毎に、逆空間変換後の仮最適解における性能値より良い値(コストが低い値)がシミュレーションで得られたか判断する。全ての性能項目について、仮最適解における性能値より良い必要がある。なお、逆空間変換後の仮最適解を用いるのは、回路シミュレーションの結果と比較できないからである。比較するだけであれば、回路シミュレーションの結果を空間変換してから比較しても同じである。
実現可能であれば(ステップS63:Yesルート)、最適解生成処理部13は、特定された回路構成(識別子だけの場合もある)と回路パラメータを、最適解データ格納部14に格納する(ステップS67)。要求仕様と比較する場合には、逆空間変換後の仮最適解をも格納する。そして元の処理に戻る。
一方、実現可能でないと判断された場合には(ステップS63:Noルート)、最適解生成処理部13は、ステップS55で特定された仮最適解の近傍のパレート最適解の範囲内において次に最適な次最適解を抽出し、さらに当該次最適解に最も近いパレート最適解の回路構成を、次最適解についての回路構成として設定する(ステップS65)。例えば図19の例では、パレート最適解P1及びP2の間のP3を特定する。但し、パレート最適解P1及びP2の間を全て探索した場合には、パレート最適解P1又はP2を採用する。その後、ステップS57に戻る。
なお、ステップS57乃至S61については、パレート最適解について処理する場合には、全体パレートデータ格納部12に格納されているデータをそのまま用いることができるので、スキップすることができる。
このような処理を実施することによって、従来技術のように、要求仕様を満たせない場合においても、要求仕様を変更して再度同じ処理を実施するような必要はなくなる。すなわち、全体パレートデータ格納部12に格納されているパレート最適解を何度も生成するような処理を実施することはなく、当該パレート最適解を再活用して、要求仕様の性能項目における要求性能値により近い解(すなわち変更後の仕様)についての回路パラメータを特定することができる。よって、処理時間を短縮することができる。
図5の処理の説明に戻って、出力部15は、最適解データ格納部14に格納されている最適解のデータ(回路構成及び回路パラメータ。場合によって逆空間変換後の仮最適解の各性能項目の性能値)を、表示装置や印刷装置などの出力装置に出力する(ステップS9)。これによって、ユーザは、採用すべき回路構成及び回路パラメータを得ることができるようになる。なお、仮最適解を出力する場合には、要求仕様との関係がどのようなものであるかを判断することも可能となる。例えば、要求仕様を満たしているのか、満たしていないのかを判断することもできる。出力部15が、要求仕様を満たしているのか満たしていないのかを判断して出力するようにしても良い。
[実施の形態2]
本技術の第2の実施の形態に係る回路自動設計装置の機能ブロック図を図20に示す。なお、第1の実施の形態と同じ要素については、同じ参照番号が付されている。本回路自動設計装置は、設計済みだが回路パラメータは未設定のアナログ回路の回路構成データを格納する回路構成ライブラリ格納部2と、各回路構成についての制約条件を格納する制約条件格納部1と、設計者の意図とは別の要因で変動する可能性のあるPVT(Process, Voltage,Temperature)コーナ設定項目の値を決定するためのデータを保持するPVTコーナ設定データ格納部16と、ユーザによって指定される要求仕様の仕様データを格納する仕様データ格納部3と、制約条件格納部1と回路構成ライブラリ格納部2と仕様データ格納部3とに格納されているデータを用いて要求仕様を満たす可能性のある回路構成を選択する回路構成選択部4と、回路構成選択部4によって選択された回路構成についてのデータを格納する選択回路構成データ格納部5と、パレート生成条件を格納するパレート生成条件格納部6と、例えば回路構成の種別毎にシミュレーション用の周辺回路についてのデータを格納するテストベンチデータ格納部7と、例えばSPICEなどの回路シミュレータ9と、回路シミュレータ9と連携し且つ制約条件格納部1と選択回路構成データ格納部5と仕様データ格納部3とパレート生成条件格納部6とテストベンチデータ格納部7とPVTコーナ設定データ格納部16とに格納されているデータを用いて選択回路構成毎にパレート最適解(以下、パレートと呼ぶ。パレート最適解については以下に述べる。)を生成する個別パレート生成処理部8と、個別パレート生成処理部8の処理結果を格納する個別パレートデータ格納部10と、個別パレートデータ格納部10に格納されているデータを用いて選択回路構成全てにおけるパレートを生成する全体パレート生成処理部11と、全体パレート生成処理部11による処理結果を格納する全体パレートデータ格納部12と、テストベンチデータ格納部7と仕様データ格納部3と全体パレートデータ格納部12と回路構成ライブラリ格納部2とに格納されているデータを用いて最適解となる回路構成及び回路構成の各パラメータの値を特定する処理を実施する最適解生成処理部13と、最適解生成処理部13による処理結果を格納する最適解データ格納部14と、最適解データ格納部14に格納されたデータをユーザに対して例えば表示装置又は印刷装置などの出力装置を介して出力する出力部15とを有する。最適解生成処理部13についても回路シミュレータ9と連携する。また、回路シミュレータ9は、回路自動設計装置とは別装置として実装される場合もある。
このようにPVTコーナ設定データ格納部16を新たに導入して個別パレート生成処理部8で用いる点が第1の実施の形態と異なる点である。
図21にPVTコーナ設定データ格納部16に格納されるデータの一例を示す。具体的に図21の説明をする前に、PVTコーナ設定項目について述べておく。PVTコーナ設定項目は、回路シミュレータ9に設定可能な項目であって、設計者の意図とは別に変動する項目である。PVTコーナ設定項目は、制約条件に規定されている設計変数と重複する項目を含む場合もある。また、制約条件に規定されている設計変数と重複しない項目を含む場合もある。
第1の実施の形態において述べたように制約条件は、設計者が指定することができる設計変数についての条件であり、その値は範囲で指定される場合もある。しかしながら、この範囲の中で特定の値(例えば1μm)が適切と判断されてそれに従ってチップを製造しようとしても、実際には1μmではなく、1.07μmとなってしまう場合もあれば95nmとなってしまう場合もある。同様に、温度の条件として25℃を前提として製造されても、実際の動作環境は30℃となってしまう場合もある。動作電圧についても同様に、1.5Vが適切な動作電圧として指定されたとしても、実際の動作環境では1.3Vしか供給されないかもしれない。このような設計者の意図とは別に変動するような項目について、項目名及び変動範囲を規定するデータ等がPVTコーナ設定データ格納部16に格納される。
図21は、以下で述べるコーナシミュレーションを実施する場合に用いられるデータの一例を示している。図21の例では、各PVTコーナ設定項目について、最小値(MIN)と、代表値(例えば平均値、中央値)(TYP)と、最大値(MAX)とを登録するようになっている。コーナシミュレーションでは、基本的には各項目の設定値の全組み合わせに対して回路シミュレーションを実施する。従って項目数に対して組み合わせの数が指数関数的に増加して処理負荷が高くなるので、影響が小さい項目や変動幅の小さい項目については例えば代表値のみを設定しておき、組み合わせの数を減らす場合もある。図21の場合には、項目PolyCDについては代表値のみが設定されている。
また、図22に、コーナシミュレーションを実施する場合に用いられるデータの他の例を示す。図22の例では、PVTコーナ設定項目毎に、当該項目の値の出現範囲データと、組み合わせ情報とが登録されるようになっている。出現範囲データは、そのPVTコーナ設定項目の値の出現分布がどのようなものであるかを示すデータである。例えばToxの値の出現分布は、ガウス分布であり、その平均値はμ3であり、分散はσ3である。例えばμ3から±3σ3の範囲で99%以上のケースをカバーするので、本実施の形態では、図23に示すように、例えばμ3−3σ3を下限値とし、μ3+3σ3を上限値とする。また、電圧Vについては、例えばフラットな出現分布(すなわち一様)で、中央値cを中心に−a%から+b%の範囲で決定される例を示している。温度についても同様である。組み合わせ情報については、図21でも述べたように、組み合わせの数を減少させるため、項目値の組み合わせるに用いる値のタイプを示す。図22の例では、Leffの場合には、上限値maxと下限値minとを組み合わせることを表す組み合わせ情報が登録されている。また、図22の例でrshncdの場合には、代表値typのみが組み合わせ情報として登録されている。
さらに、図24に、モンテカルロシミュレーションを実施する場合に用いられるデータの一例を示す。以下でも述べるがモンテカルロシミュレーションを実施する場合には、PVTコーナ設定項目毎に乱数を複数回発生させてその乱数値の組み合わせにて複数回回路シミュレーションを実施する。図24の例では、PVTコーナ設定項目毎に、乱数発生分布データが登録されるようになっている。例えば図24の例では、Leffに対する乱数値の発生分布はガウス分布であり、その平均値はμ11であり、分散はσ11である。また、図24の例では、電圧V及び温度Tについては、cを中心に、−a%から+b%又はfを中心に−d%から+e%まで一様な分布となっている。この乱数発生分布データに従って、該当する項目の乱数値を発生して利用される。
本実施の形態では基本的には個別パレート生成処理部8の処理を以下で述べるような処理に変更するものである。この処理について述べる前に上で述べたようなPVTコーナ設定データ格納部16を用いる前提について説明する。
パレート曲線自体は図6に示したとおりであるが、製造プロセスのばらつきや、動作環境の変動を考慮せずに、製造プロセスや動作環境についてのパラメータを定格値(nominal value)としてパレート最適解を算出するよりは、以下のような理由から、製造プロセスのばらつきや、動作環境の変動を考慮した上でパレート最適解を算出する方が好ましい。この好ましい理由について図25を用いて説明する。図25は、図6と同じように、縦軸でコスト1(小さい方が好ましい性能としてもよい)を表し、横軸はコスト2(小さい方が好ましい性能としてもよい)を表す。そして、図25では、パレート最適解A乃至Dが、定格値を想定して得られたとする。ここで、非劣解Cは上で述べたように各種パラメータを定格値として用いた場合に得られる。しかし、パレート最適解Cについて製造プロセスや動作環境についてばらつきを考慮すると、範囲Cdisp内の×印の点に解が得られるようになる。一方、定格値を用いて算出された1つの解Fは、C支配Fの関係にあるので、定格値をベースにした場合にはパレート曲線上に載らない。しかしながら、解Fについて製造プロセスや動作環境についてばらつきを考慮しても、範囲Cdispより狭く且つ範囲Cdispに包含されるような範囲Fdisp内の+印の解しか得られないとする。このような場合に、パレート最適解Cは定格値をベースにすればパレート最適解となるが、製造プロセスや動作環境が悪く作用する場合には例えば解C1となってしまう。一方、解Fについては製造プロセスや動作環境が悪くても例えば解F1が得られる。このような場合、F1支配C1という関係が成り立つので、本当にパレート最適解Cを採用することが好ましいのかが問題となる。すなわち、定格値をベースにパレート曲線を生成しても、実際に製造されるチップは期待される性能を発揮することができるかもしれないが、歩留まりのことを考えたり、アナログ回路の基本的な非線形性、すなわち性能の振れ易さを考えれば、最悪状態を念頭に設計を行う方が好ましい。
そこで本実施の形態では、図26に示すように、定格値についての解Anominal乃至Dnominalを採用するのではなく、各解について製造プロセスや動作環境のばらつきの範囲Adisp乃至Ddispで最もコストが大きい(すなわち性能が悪い)解A乃至Eをベースに支配関係を判断して、パレート最適解A乃至Dを特定する。このパレート最適解A乃至Dで最悪性能パレート曲線を構成する。
半導体プロセスの微細化に伴って、製造プロセスのばらつきにより、トランジスタの閾値電圧、有効チャネル長等のパラメータは定格値(すなわち期待値)より激しく変動し、その影響を受けてアナログ回路の性能ばらつきが拡大している。また、LSI(Large Scale Integrated circuit)の消費電力を削減するために、トランジスタの閾値電圧、チップの電源電圧を限界まで削減しているため、電源電圧、回路動作温度など回路動作環境の変動は、LSI、特に飽和領域で動作することの多いアナログ回路性能へ大きく影響している。このような半導体製造プロセスのばらつき、回路動作環境の変動を考慮して、パレート最適解を特定して、それらの影響を可能な限り除去するものである。これによって、チップの歩留まりが飛躍的に向上し(理想的には100%)、性能についても十分マージンをもって確保できるようになる。
このような前提の下、図27に従って個別パレート生成処理について説明する。なお、図27では、図7と同じ処理については、同じステップ番号が付されている。まず、個別パレート生成処理部8は、選択回路構成データ格納部5に格納されている選択回路構成のうち未処理の回路構成を1つ特定する(ステップS11)。そして、特定された回路構成について、制約条件格納部1に格納されている、当該回路構成についての対応制約条件を満たす設計変数(例えばゲート長Lやゲート幅Wを含む回路パラメータ)を乱数で生成し、例えばメインメモリなどの記憶装置に格納する(ステップS13)。
そして、個別パレート生成処理部8は、最悪性能値取得処理を実施する(ステップS16)。この最悪性能値取得処理については図28乃至31を用いて説明する。まず、コーナシミュレーションを実施する場合の処理フローを図28に示す。
個別パレート生成処理部8は、PVTコーナ設定データ格納部16に登録されている各PVTコーナ設定項目について、PVTコーナ設定データ格納部16に格納されている設定条件(図21の場合にはMIN、TYP及びMAX、図22の場合には出現範囲データ及び組み合わせ情報)に基づき採用すべきコーナ値(MIN、MAX、TYPのうち指定された値)を特定し、例えばメインメモリなどの記憶装置に格納する(ステップS101)。図21の場合には、MIN、TYP、MAXで数値が指定されているので、これを特定する。図22の場合には、出現範囲データで分布が規定されていれば、例えば平均値μから±3σの値を特定する。なお、制約条件と同じ項目については、ステップS13又は以下で述べるステップS21で特定された値を平均値μや中央値cとして設定して、±3σの値や−a%及び+b%の値を算出する。例えば、制約条件に電圧1Vから5Vが規定されており、ステップS13又はS21で特定された値が1.5Vであれば、1.5VをTYPとして特定すると共に、−a%(=−10%)としてMIN値「1.35V」と+b%(=+10%)としてMAX値「1.65V」とを算出する。
そして、個別パレート生成処理部8は、各PVTコーナ設定項目のコーナ値の未処理の組み合わせを1つ特定する(ステップS103)。さらに、個別パレート生成処理部8は、テストベンチデータ格納部7から、選択された回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部5に格納されている選択回路構成のデータと、制約条件に基づきステップS13又はS21で特定される設計変数の値と、PVTコーナ設定項目のコーナ値の組み合わせと、仕様データ格納部3に格納されている要求仕様の項目(すなわち性能項目)とを回路シミュレータ9に出力し、回路シミュレータ9に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ9から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する(ステップS105)。
そして、個別パレート生成処理部8は、ステップS101で特定されたコーナ値の全ての組み合わせについて処理したか判断する(ステップS107)。未処理の組み合わせが存在する場合にはステップS103に戻る。一方、全ての組み合わせについて処理した場合には、要求仕様で規定されている性能項目の性能値のうち最悪とされる性能値と、当該最悪とされる性能値を生じさせた、制約条件に基づき特定された設計変数の値及びPVTコーナ設定項目のコーナ値の組み合わせを特定し、メインメモリなどの記憶装置に格納する(ステップS109)。
ここで最悪とされる性能とは、ステップS105でPVTコーナ設定項目のコーナ値の全ての組み合わせについて算出された性能値のばらつき空間Ωfに属する他の全ての性能Pjと比べても悪い性能Pwである。より具体的には、最適=最小と仮定すると(図26等のグラフにおいて左下の方向が最適な方向)、各PVTコーナ設定項目のコーナ値のどの組み合わせjについての性能Pj(性能項目はn個で、Pjはn次元ベクトル)の各性能項目iの値Pjiより、最悪とされる性能Pwの各性能項目値Pwiの方が大きいということである。
Figure 0005246030
より具体的には、以下のように表される。
Figure 0005246030
これは、全ての性能項目値が、性能ばらつき空間Ωfに属する全ての性能Pjの中で最大となる性能Pwを最悪としている。但し、これは一例であって、他の何らかの評価式で各性能項目を評価してその評価式の値が最も大きくなるような性能を最悪と定義するようにしても良い。
なお、ステップS109で格納されるデータは、例えば図29に示すようなデータである。図29の例では、回路構成のIDに対応付けて、設計変数1乃至kの値と、PVTコーナ設定項目1乃至pの値(設計変数と一致する項目については制約条件によって特定された値に対する調整値)と、性能項目1乃至nの値とが登録されるようになっている。なお、PVTコーナ設定項目でもある設計変数の場合には、ステップS13又はS21で設定された値を登録しておく。
以上のような処理を実施することにより、1つの制約条件セットを特定した場合における最悪性能を特定することができる。そして元の処理に戻る。
図28の処理フローは、コーナシミュレーションで最悪性能を特定する処理フロー例であったが、適用可能なアルゴリズムはコーナシミュレーションに限定されない。図30に、モンテカルロシミュレーションを適用する場合の処理フローを示す。
まず、個別パレート生成処理部8は、PVTコーナ設定データ格納部16に登録されている各PVTコーナ設定項目について、乱数発生範囲を特定する(ステップS111)。図24の例で、乱数発生分布データが例えばガウス分布で規定されていれば、平均値μ及び分散σの値を特定する。なお、制約条件と一致するPVTコーナ設定項目については、ステップS13又は以下で述べるステップS21で特定された値を平均値μや中央値cとして用い、分散σや範囲を規定するa及びb等をそのまま用いる。例えば、制約条件に電圧1Vから5Vが規定されており、ステップS13又はS21で特定された値が1.5Vであれば、1.5Vを中央値として特定すると共に、−a%(=−10%)として乱数発生下限値「1.35V」と+b%(=+10%)として乱数発生上限値「1.65V」とを範囲として算出する。
さらに、個別パレート生成処理部8は、カウンタnを1に初期化し(ステップS113)、ステップS111で特定された各乱数発生範囲に従って、各PVTコーナ設定項目の値を乱数で発生させ、例えばメインメモリなどの記憶装置に格納する(ステップS115)。
さらに、個別パレート生成処理部8は、テストベンチデータ格納部7から、選択された回路構成のための、回路シミュレーションで必要な周辺回路のデータを読み出し、当該周辺回路のデータと、選択回路構成データ格納部5に格納されている選択回路構成のデータと、制約条件に基づきステップS13又はS21で特定される設計変数の値と、PVTコーナ設定項目の乱数値の組み合わせと、仕様データ格納部3に格納されている要求仕様の項目(すなわち性能項目)とを回路シミュレータ9に出力し、回路シミュレータ9に、要求仕様で規定されている各性能項目を評価させ、回路シミュレータ9から要求仕様で規定されている各性能項目の性能値を取得し、例えばメインメモリなどの記憶装置に格納する(ステップS117)。
そして、個別パレート生成処理部8は、nが予め定められた上限値Nを超えたか判断する(ステップS119)。nがN以下である場合にはステップS115に戻る。一方、nがNを超えた場合には、要求仕様で規定されている性能項目の性能値のうち最悪とされる性能値と、当該最悪とされる性能値を生じさせた、制約条件に基づき特定された設計変数の値及びPVTコーナ設定項目の乱数値の組み合わせを特定し、メインメモリなどの記憶装置に格納する(ステップS121)。ここで格納されるデータについても図29に示すようなフォーマットのデータである。また最悪とされる性能については、上で述べたとおりである。そして元の処理に戻る。
以上のような処理を実施することにより、モンテカルロシミュレーションであっても、最悪性能を特定することができる。
図27の処理の説明に戻って、個別パレート生成処理部8は、ステップS16で得られた性能項目の性能値セットが、解空間においてパレート最適解を構成するかを、これより前に選択された各パレート最適解との支配関係を確認することによって判断し、判断結果によってパレートサンプリング集合を更新する(ステップS17)。すなわち、ステップS16で得られた性能項目の性能値セットで構成される解が、他の解を支配している場合には、当該他の解を、パレート最適解の集合であるパレートサンプリング集合から除去し、ステップS16で得られた解をパレートサンプリング集合に追加し、逆に他の解に支配されている場合には、ステップS16で得られた解を破棄する。
パレートサンプリング集合は、例えば個別パレートデータ格納部10に図31に示すようなデータとして格納される。図31の例では、回路構成の識別子と、設計変数1乃至kの値と、PVTコーナ設定項目1乃至pの値と、性能項目1乃至nの値とが登録されるようになっている。変数、PVTコーナ設定項目や性能項目の数は一例であって、これより多い場合もある。このように、1つのパレート最適解についてのデータが1レコードとして登録される。そして、1つの回路構成についてのレコード群が、パレートサンプリング集合を構成する。また、回路構成のデータについても、個別パレートデータ格納部10に格納するものとする。
その後、個別パレート生成処理部8は、パレート生成条件格納部6に格納されているパレート生成条件を満たしたか判断する(ステップS19)。パレート生成条件は、第1の実施の形態について述べたものと同じであり、これ以上述べない。
パレート生成条件を満たしていない場合には、個別パレート生成処理部8は、上で述べたような周知の多目的最適化処理(例えばcrossover処理やmutation処理)により、制約条件を満たすように設計変数を更新し、例えばメインメモリなどの記憶装置に格納する(ステップS21)。そしてステップS16に戻る。
一方、パレート生成条件を満たしている場合には、個別パレート生成処理部8は、全ての選択回路構成について処理したか判断する(ステップS23)。未処理の選択回路構成が存在している場合にはステップS11に戻る。一方、未処理の選択回路構成が存在しない場合には、元の処理に戻る。
このような処理を実施することによって、回路構成毎に、パレート最適解の集合が生成されるようになる。模式的に解空間を2次元空間として表せば、図10に示すようにパレート曲線を構成する解が複数得られるようになる。
なお、細かく示せば図10は図26に示すような関係を表している。図26のパレート曲線(3次元以上でパレート曲面)、すなわち非劣解Pw_paretoは以下のように表される。
Figure 0005246030
なお、PjworstとPiworstの間の記号の意味は、以下のとおりである。
Figure 0005246030
このように、解空間Ωpに属する、定格値についての解Pi及びPjについて、解Piの制約条件に従っている最悪性能の解Piworstが、任意の解Pjの制約条件に従っている最悪性能の解Pjworstに対して非劣解であるという条件で、最悪性能のパレート曲線が形成される。
また、全体パレートデータ格納部12には、図32に示すようなデータが格納される。図31に示したようなレコード群から、全選択回路構成についてのパレート最適解に対応するレコードのみが、図32にも含まれるようになる。すなわち、回路構成の識別子と、設計変数1乃至kの値と、PVTコーナ設定項目1乃至pの値と、性能項目1乃至nの値とが登録されるようになっている。なお、該当する回路構成のデータについても、全体パレートデータ格納部12に格納するものとする。
以上のような処理を実施した後、図5のステップS5以降の処理を第1の実施の形態とほぼ同じように実施すれば、多次元の要求仕様に対して、複数回路構成を含む回路構成ライブラリから、プロセスのばらつき及び動作環境の変動を考慮して、製造時に理想的には100%に近い歩留まりを実現できる最適解を自動的に特定できるようになる。
なお、ステップS59で値を決定する回路パラメータのうちPVTコーナ設定項目と一致する項目については、全体パレートデータ格納部12に格納されている値で調整したものを採用する。
さらに、図5のステップS9で、逆空間変換後の仮最適解の各性能項目の性能値を出力するようにしても良い。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図1及び図20に示した回路自動設計装置の構成は一例であって、必ずしも実際にプログラム構成と一致しない場合もある。また、データ格納部の構成についても、統合や分割も可能である。例えば、回路構成ライブラリ格納部2と制約条件格納部1とを統合するようにしても良い。
また、処理フローについても処理結果が同じであれば処理順番を入れ替えたり並列実行するようにしても良い。特に回路シミュレータ9については別装置で実装して、個別パレート生成処理部8が、複数の回路シミュレータ9に対して異なる回路構成についてのシミュレーションを実施させるようにしても良い。
さらに、上ではコーナシミュレーションやモンテカルロシミュレーションを実施する例を示しているが、統計解析等の他の手法によって最悪性能を特定できれば、それを採用するようにしても良い。
上で述べた例では、スタンドアロン型の実施の形態を説明したが、クライアント−サーバ型コンピュータシステムによって実現するようにしても良い。さらに、ステップS51について一括して実施することなく、空間変換Ptranの算出式のみを生成して保持しておき、距離を計算する都度、空間変換を行うようにしても良い。
なお、上記回路自動設計装置は、コンピュータ装置であって、図33に示すように、メモリ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及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
本技術の実施の形態をまとめると以下のようになる。
本回路自動設計方法は、(A)回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、(B)抽出された各回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより要求仕様の各項目についてのシミュレーション結果を複数回取得し、シミュレーション結果から要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、回路構成に対応付けてパレート最適解の各々について設計変数の各々の該当値と要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、(C)個別回路構成パレートデータ格納部に格納されている、抽出された全ての回路構成についての全てのパレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する回路構成の識別子と設計変数の各々の該当値と要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、(D)要求仕様の各項目について値の分布をバランスさせる解仕様空間の空間変換が実施された後の解仕様空間において、全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ空間変換後の要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、(E)全体パレートデータ格納部に格納されているパレート最適解に対して空間変換を実施した後のパレート最適解から、空間変換後の解仕様空間における、仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から仮最適解についての回路構成を特定するステップと、(F)仮最適解を、特定された回路構成についての各設計変数の値にマッピングするステップと、(G)特定された回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップとを含む。
このようにすれば、要求仕様を満たす又は満たさない場合においてもより要求仕様に近い仮最適解を特定でき、要求仕様が満たされない場合における処理の繰り返しを行わずに済むので、処理時間を短縮することができる。
なお、上で述べた個別パレート生成ステップが、回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を1回分のシミュレーション結果として採用する採用ステップを含むようにしてもよい。
このように、最悪の性能を示した結果を採用してパレート最適解の集合を生成した上で、上で述べた処理を行って回路構成及び設計変数値を特定し、当該回路構成及び設計変数値を用いて実際に製造すれば、最悪ケースであっても要求仕様に合致する又は要求仕様に最も近い回路が得られることが期待される。すなわち製造ばらつきなどの最悪ケースを考慮した上で設計が行えるので、歩留まりの飛躍的な改善が期待される。
また、本回路自動設計方法は、マッピングによって得られた、回路構成についての各設計変数の値で、回路シミュレーションを実施し、空間変換の逆空間変換後の仮最適解を実現可能か判断するステップをさらに含むようにしても良い。この場合、出力ステップが、実現可能と判断された場合に実行されるようにしてもよい。実際に同様の性能を奏する回路が実現できるかを確認した上で出力するものである。
また、本回路自動設計方法において、実現不可能と判断された場合には、仮最適解の近傍のパレート最適解から、次の候補解を特定し、の候補解についての回路構成を特定するステップと、次の候補解を、特定された回路構成についての各設計変数の値にマッピングするステップと、マッピングによって得られた、回路構成についての各設計変数の値で、回路シミュレーションを実施し、逆空間変換後の次の候補解を実現可能か判断するステップと、実現可能と判断された場合には、回路構成及び当該回路構成についての各設計変数の値を出力するステップとをさらに含むようにしてもよい。このように、実際に同様の性能を奏する回路が実現できない場合には、仮最適解の近傍から次の候補で確かめることによって、次に適切な回路及び回路設計値のセットを特定するものである。
さらに、上で述べた採用ステップが、上記特定項目について指定されている乱数発生範囲データに基づき各特定項目の値を乱数で生成するステップと、生成された各特定項目の乱数値のセットについて回路シミュレーションを実施するステップとを含む場合もある。例えばモンテカルロシミュレーションにて最悪の性能を示す結果を特定するものである。
また、上で述べた採用ステップが、特定項目について指定されているコーナ値設定データに基づき各特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、各特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて回路シミュレーションを実施するステップとをさらに含むようにしてもよい。例えばコーナシミュレーションにて最悪の性能を表す結果を特定するようにしても良い。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
(付記1)
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
をコンピュータに実行させる回路自動設計プログラム。
(付記2)
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を1回分の前記シミュレーション結果として採用する採用ステップ
を含む付記1記載の回路自動設計プログラム。
(付記3)
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記空間変換の逆空間変換後の前記仮最適解を実現可能か判断するステップ
をさらに前記コンピュータに実行させ、
前記出力ステップが、実現可能と判断された場合に実行される
付記1又は2記載の回路自動設計プログラム。
(付記4)
実現不可能と判断された場合には、前記仮最適解の近傍のパレート最適解から、次の候補解を特定し、当該仮最適解の近傍のパレート最適解から前記次の候補解についての回路構成を特定するステップと、
前記次の候補解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
マッピングによって得られた、前記回路構成についての各設計変数の値で、前記回路シミュレーションを実施し、前記逆空間変換後の前記次の候補解を実現可能か判断するステップと、
実現可能と判断された場合には、前記回路構成及び当該回路構成についての各設計変数の値を出力するステップと、
をさらに前記コンピュータを実行させるための付記3記載の回路自動設計プログラム。
(付記5)
前記採用ステップが、
前記特定項目について指定されている乱数発生範囲データに基づき各前記特定項目の値を乱数で生成するステップと、
生成された各前記特定項目の乱数値のセットについて前記回路シミュレーションを実施するステップと、
を含む付記2記載の回路自動設計プログラム。
(付記6)
前記採用ステップが、
前記特定項目について指定されているコーナ値設定データに基づき各前記特定項目の上限値、代表値及び下限値のうち予め選択された値を特定するステップと、
各前記特定項目の上限値、代表値及び下限値のうち予め選択された値の各組み合わせについて前記回路シミュレーションを実施するステップと、
を含む付記2記載の回路自動設計プログラム。
(付記7)
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出するステップと、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成ステップと、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納するステップと、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出するステップと、
前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定するステップと、
前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングするステップと、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力ステップと、
を含み、コンピュータに実行される回路自動設計方法。
(付記8)
前記個別パレート生成ステップが、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を1回分の前記シミュレーション結果として採用する採用ステップ
を含む付記7記載の回路自動設計方法。
(付記9)
回路構成のデータを格納する回路構成データ格納部から、要求仕様を満たす可能性のある回路構成を抽出する回路構成選択手段と、
抽出された各前記回路構成について、当該回路構成の制約条件を満たすように当該回路構成の各設計変数の値を変更させて回路シミュレーションにより前記要求仕様の各項目についてのシミュレーション結果を複数回取得し、前記シミュレーション結果から前記要求仕様の各項目についての解仕様空間における非劣解であるパレート最適解の集合を抽出し、前記回路構成に対応付けて前記パレート最適解の各々について前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを個別回路構成パレートデータ格納部に格納する個別パレート生成処理手段と、
前記個別回路構成パレートデータ格納部に格納されている、抽出された全ての前記回路構成についての全ての前記パレート最適解において非劣解となるパレート最適解を抽出し、当該パレート最適解について該当する前記回路構成の識別子と前記設計変数の各々の該当値と前記要求仕様の各項目の該当値とを全体パレートデータ格納部に格納する全体パレート生成処理手段と、
前記要求仕様の各項目について値の分布をバランスさせる前記解仕様空間の空間変換が実施された後の解仕様空間において、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解によるパレート曲面上の点であって且つ前記空間変換後の前記要求仕様に相当する点から最も距離が短い点を仮最適解として算出し、前記全体パレートデータ格納部に格納されている前記パレート最適解に対して前記空間変換を実施した後のパレート最適解から、前記空間変換後の前記解仕様空間における、前記仮最適解の近傍のパレート最適解を抽出し、当該パレート最適解から前記仮最適解についての回路構成を特定し、前記仮最適解を、特定された前記回路構成についての各設計変数の値にマッピングする最適解生成処理手段と、
特定された前記回路構成と当該回路構成についてマッピングされた各設計変数の値を出力する出力手段と、
を有する回路自動設計装置。
(付記10)
前記個別パレート生成手段が、
前記回路シミュレーションで設定可能な項目のうち特定項目の値を変動させて複数回前記回路シミュレーションを実施し、得られた複数の結果のうち最悪の性能を示した結果を1回分の前記シミュレーション結果として採用する
付記9記載の回路自動設計装置。
1 制約条件格納部 2 回路構成ライブラリ格納部
3 仕様データ格納部 4 回路構成選択部
5 選択回路構成データ格納部 6 パレート生成条件格納部
7 テストベンチデータ格納部 8 個別パレート生成処理部
9 回路シミュレータ 10 個別パレートデータ格納部
11 全体パレート生成処理部 12 全体パレートデータ格納部
13 最適解生成処理部 14 最適解データ格納部
15 出力部 16 PVTコーナ設定データ格納部

Claims (8)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009120305A JP5246030B2 (ja) 2008-09-26 2009-05-18 回路自動設計プログラム、方法及び装置
US12/565,951 US8527931B2 (en) 2008-09-26 2009-09-24 Automatic circuit design apparatus and method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008248755 2008-09-26
JP2008248755 2008-09-26
JP2009120305A JP5246030B2 (ja) 2008-09-26 2009-05-18 回路自動設計プログラム、方法及び装置

Publications (2)

Publication Number Publication Date
JP2010102681A JP2010102681A (ja) 2010-05-06
JP5246030B2 true JP5246030B2 (ja) 2013-07-24

Family

ID=42059043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009120305A Active JP5246030B2 (ja) 2008-09-26 2009-05-18 回路自動設計プログラム、方法及び装置

Country Status (2)

Country Link
US (1) US8527931B2 (ja)
JP (1) JP5246030B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5267398B2 (ja) * 2009-09-25 2013-08-21 富士通株式会社 自動回路設計用パレートデータ生成プログラム、方法及び装置、並びに自動回路設計プログラム、方法及び装置
US7996344B1 (en) * 2010-03-08 2011-08-09 Livermore Software Technology Corporation Multi-objective evolutionary algorithm based engineering design optimization
FR2978265A1 (fr) * 2011-07-20 2013-01-25 Eads Europ Aeronautic Defence Procede automatique base sur des modeles pour la generation d'architectures physiques de systemes et leur optimisation
US8799841B2 (en) * 2012-03-29 2014-08-05 Fujitsu Limited Designing analog circuits
US9798846B2 (en) * 2015-02-10 2017-10-24 Thalia Design Automation Ltd. Dynamic weighting and ranking of circuit designs for analog circuit design optimization
JP2018073117A (ja) * 2016-10-28 2018-05-10 株式会社日立製作所 デバイス設計支援方法およびデバイス設計支援装置
EP3625689A4 (en) 2017-05-17 2021-04-28 Sigopt, Inc. SYSTEMS AND PROCESSES IMPLEMENTING AN INTELLIGENT OPTIMIZATION PLATFORM
US10282237B1 (en) 2017-10-30 2019-05-07 SigOpt, Inc. Systems and methods for implementing an intelligent application program interface for an intelligent optimization platform
US11270217B2 (en) 2017-11-17 2022-03-08 Intel Corporation Systems and methods implementing an intelligent machine learning tuning system providing multiple tuned hyperparameter solutions
US11704567B2 (en) 2018-07-13 2023-07-18 Intel Corporation Systems and methods for an accelerated tuning of hyperparameters of a model using a machine learning-based tuning service
US10528891B1 (en) * 2018-08-23 2020-01-07 SigOpt, Inc. Systems and methods for implementing an intelligent machine learning optimization platform for multiple tuning criteria
JP7117253B2 (ja) * 2019-02-18 2022-08-12 株式会社日立製作所 パラメータ設定支援装置、パラメータ設定支援方法及びプログラム
US11157812B2 (en) 2019-04-15 2021-10-26 Intel Corporation Systems and methods for tuning hyperparameters of a model and advanced curtailment of a training of the model

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04260973A (ja) 1991-02-07 1992-09-16 Mitsubishi Electric Corp 回路定数最適化システム
JPH06139303A (ja) 1992-10-27 1994-05-20 Sony Corp 集積回路シミュレーション方法
JPH06348683A (ja) 1993-04-16 1994-12-22 Sony Corp 集積回路のシミュレーション方法
JP2002110489A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 半導体装置の回路特性のシミュレータ、及び、シミュレート方法
US6606729B2 (en) * 2001-09-27 2003-08-12 International Business Machines Corporation Corner simulation methodology
AU2003274370A1 (en) * 2002-06-07 2003-12-22 Praesagus, Inc. Characterization adn reduction of variation for integrated circuits
JP4153745B2 (ja) 2002-07-30 2008-09-24 株式会社エヌエフ回路設計ブロック インピーダンスパラメータの推定装置
JP3884359B2 (ja) 2002-09-27 2007-02-21 株式会社東芝 多目的設計最適化支援方法及び多目的設計最適化支援プログラム
JP2004145410A (ja) 2002-10-22 2004-05-20 Renesas Technology Corp 回路の設計方法および回路設計支援システム
JP3984201B2 (ja) 2003-08-26 2007-10-03 株式会社東芝 設計支援方法及び設計支援装置
US20050257178A1 (en) 2004-05-14 2005-11-17 Daems Walter Pol M Method and apparatus for designing electronic circuits
US7516423B2 (en) 2004-07-13 2009-04-07 Kimotion Technologies Method and apparatus for designing electronic circuits using optimization
JP4362572B2 (ja) * 2005-04-06 2009-11-11 独立行政法人 宇宙航空研究開発機構 ロバスト最適化問題を解く問題処理方法およびその装置
JP4829674B2 (ja) * 2005-11-04 2011-12-07 住友化学株式会社 成形条件の設定方法、プログラムおよび射出成形機
JP2007148650A (ja) * 2005-11-25 2007-06-14 Toshiba Corp 設備配置計画支援システムと方法、およびプログラム
US7921383B1 (en) * 2006-01-11 2011-04-05 Olambda, Inc Photolithographic process simulation including efficient result computation for multiple process variation values
JP5018487B2 (ja) * 2008-01-14 2012-09-05 富士通株式会社 製造バラつきを考慮した多目的最適化設計支援装置、方法、及びプログラム

Also Published As

Publication number Publication date
US20100083196A1 (en) 2010-04-01
US8527931B2 (en) 2013-09-03
JP2010102681A (ja) 2010-05-06

Similar Documents

Publication Publication Date Title
JP5246030B2 (ja) 回路自動設計プログラム、方法及び装置
JP5267398B2 (ja) 自動回路設計用パレートデータ生成プログラム、方法及び装置、並びに自動回路設計プログラム、方法及び装置
Wang et al. Learning to design circuits
US10102320B2 (en) Predictive multi-user client-server electronic circuit design system utilizing machine learning techniques
De Smedt et al. WATSON: Design space boundary exploration and model generation for analog and RFIC design
Habal et al. Constraint-based layout-driven sizing of analog circuits
Guerra-Gómez et al. Richardson extrapolation-based sensitivity analysis in the multi-objective optimization of analog circuits
Singh et al. A constrained multi-objective surrogate-based optimization algorithm
TW201005566A (en) Method and technique for analogue circuit synthesis
Canelas et al. FUZYE: A Fuzzy ${c} $-Means Analog IC Yield Optimization Using Evolutionary-Based Algorithms
McConaghy et al. Variation-aware structural synthesis of analog circuits via hierarchical building blocks and structural homotopy
Yao et al. An efficient SRAM yield analysis and optimization method with adaptive online surrogate modeling
Guerra et al. Artificial neural networks as an alternative for automatic analog IC placement
US20120310619A1 (en) Fast function extraction
Passos et al. A two-step surrogate modeling strategy for single-objective and multi-objective optimization of radiofrequency circuits
US8578320B2 (en) Automatic design support apparatus and method
Tombak et al. Simulated annealing assisted NSGA-III-based multi-objective analog IC sizing tool
Roca et al. Context-dependent transformation of Pareto-optimal performance fronts of operational amplifiers
CN105447222A (zh) 用于集成电路的工艺变化分析的方法
Severo et al. Automatic synthesis of analog integrated circuits including efficient yield optimization
Afacan et al. An analog circuit synthesis tool based on efficient and reliable yield estimation
WO2023056642A1 (zh) 用于识别电路系统中的目标电路的方法和电子设备
Guo et al. Extrapolation with Range Determination of 2D Spectral Transposed Convolutional Neural Network for Advanced Packaging Problems
Cui et al. Probabilistic model for online 3D printing service evaluation
Li et al. Design optimization of a current mirror amplifier integrated circuit using a computational statistics technique

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Ref document number: 5246030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3