(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-08-10
(54)【発明の名称】物理デバイスの製造および設計の最適化のためのカスケードモデル
(51)【国際特許分類】
G06F 30/20 20200101AFI20220803BHJP
【FI】
G06F30/20
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021567920
(86)(22)【出願日】2020-05-21
(85)【翻訳文提出日】2022-01-12
(86)【国際出願番号】 US2020033930
(87)【国際公開番号】W WO2020247181
(87)【国際公開日】2020-12-10
(32)【優先日】2019-06-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】アドルフ,ブライアン
(72)【発明者】
【氏名】シューベルト,マーティン
(72)【発明者】
【氏名】ルー,ジェシー
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA09
5B146AA21
5B146DC01
5B146DC04
5B146DJ04
5B146DJ11
(57)【要約】
【課題】物理デバイスの製造および設計をシミュレートおよび最適化するための技法を提供する。
【解決手段】この技法は、物理デバイスの製造シミュレーションを、入力として製造仕様を受け取り、製造シミュレーションに応答して物理デバイスの構造設計を出力する製造モデルを用いて実行することを含む。物理デバイスの動作シミュレーションが、物理デバイスのシミュレート環境を伝播する場応答をシミュレートする設計モデルを用いて実行される。製造モデルから出力される構造設計が設計モデルに前方カスケードされ、設計モデルを通じた性能損失誤差の逆伝播からの出力が、製造モデルに逆カスケードされる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
機械によって実行されると、前記機械に、動作を実施させる命令を提供する少なくとも1つの機械アクセス可能記憶媒体であって、前記動作が、
製造モデルを用いて物理デバイスの製造シミュレーションを実行することであって、前記製造モデルは、入力として製造仕様を受け取り、前記製造シミュレーションに応答して前記物理デバイスの構造設計を出力する、物理デバイスの製造シミュレーションを実行することと、
前記物理デバイスのシミュレート環境を伝播する場応答をシミュレートする設計モデルを用いて、前記物理デバイスの動作シミュレーションを実行することと、
前記製造モデルから出力された前記構造設計を前記設計モデルに前方カスケードして、前記動作シミュレーションの前記シミュレート環境を確立することと、
前記設計モデルを通じて性能損失誤差を逆伝播することであって、前記性能損失誤差が、性能損失値を決定するために使用される性能損失関数に基づいて生成される、性能損失誤差を逆伝播することと、
前記性能損失誤差の前記逆伝播からの出力を前記製造モデルに逆カスケードすることと、
1つ以上の第1の勾配を生成するために、前記製造モデルを通じて構造設計誤差を逆伝播することであって、前記構造設計誤差が、前記性能損失誤差の前記逆伝播からの前記出力に基づいて生成される、構造設計誤差を逆伝播することと、
前記1つ以上の第1の勾配に基づいて前記製造仕様を修正することと
を含む、少なくとも1つの機械アクセス可能記憶媒体。
【請求項2】
前記性能損失誤差の前記逆伝播からの前記出力が、前記設計モデルから出力されている1つ以上の第2の勾配を含み、前記第2の勾配が前記性能損失誤差の前記逆伝播に応答して生成され、前記構造設計誤差が前記第2の勾配に基づき、前記製造仕様が、少なくとも前記性能損失値を低減するように修正される、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項3】
前記構造設計誤差が前記設計モデルから出力される前記第2の勾配を含み、前記第2の勾配が、前記性能損失値の、前記物理デバイスの構造変化に対する感受性測度を含む、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項4】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記構造設計を修正し、修正構造設計を出力するために、前記第2の勾配を使用して勾配降下アルゴリズムを実施することと、
前記修正構造設計を目標構造設計と比較する製造損失関数を用いて、前記構造設計誤差を生成することと
を含む、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項5】
前記製造損失関数が、前記物理デバイスを製造するときの歩留まり測度、前記物理デバイスを製造するときのコスト測度、または前記物理デバイスを製造するときの時間測度のうちの1つ以上に関連するペナルティ測度を含む、請求項4に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項6】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記製造モデルの実行、前記設計モデルの実行、前記性能損失誤差の逆伝播、および前記構造設計誤差の逆伝播を反復することと、
勾配降下アルゴリズムを使用して、各反復間で前記製造仕様を修正することと
を含む、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項7】
前記製造仕様を修正することが、前記製造シミュレーションの製造パラメータを最適化する前記物理デバイスの製造ステップを更新することを含み、前記第1の勾配が、製造損失関数から生成される製造損失値に対する前記製造ステップの感受性測度を表す、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項8】
前記構造設計誤差を、製造損失関数からの第1の寄与と、前記設計モデルから出力される前記第2の勾配からの第2の寄与の重み付き組み合わせとして生成することをさらに含む、請求項7に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項9】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記製造モデルの実行、前記設計モデルの実行、前記性能損失誤差の逆伝播、および前記構造設計誤差の逆伝播の選択される反復間で、前記重み付き組み合わせの重みを調整することを含む、請求項8に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項10】
前記シミュレート環境が、N次元空間内の対応する位置にある前記物理デバイスの1つ以上の構造パラメータを各々記述するボクセルのアレイを含み、前記設計モデルを用いて前記動作シミュレーションを実行することが、励起源に応答して前記シミュレート環境を伝播し、前記ボクセルと相互作用する前記場応答をシミュレートすることを含み、前記場応答が、前記構造パラメータの影響を受ける、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項11】
前記製造モデルが、前記物理デバイスの実際の製造プロセスの微分可能な特性を含み、前記設計モデルが、前記物理デバイスの動作の微分可能な特性を含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項12】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記物理デバイスの出力における前記場応答を計算することと、
前記物理デバイスの前記出力における前記場応答に基づいて、シミュレート性能パラメータを生成することと、
前記シミュレート性能パラメータを目標性能パラメータと比較する性能損失関数に基づいて、前記性能損失誤差を生成することと
を含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項13】
前記性能損失誤差を逆伝播することが、損失勾配を逆伝播することを含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項14】
前記製造モデルを用いて前記物理デバイスの前記製造シミュレーションを実行することが、1つ以上の製造プロセスをシミュレートすることを含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項15】
物理デバイスを製造するための製造ステップを最適化するコンピュータ実施方法であって、
製造モデルを用いて前記物理デバイスの製造シミュレーションを実行することであって、前記製造モデルは、入力として製造仕様を受け取り、前記製造シミュレーションに応答して前記物理デバイスの構造設計を出力する、物理デバイスの製造シミュレーションを実行することと、
前記物理デバイスのシミュレート環境を伝播する場応答をシミュレートする設計モデルを用いて、前記物理デバイスの動作シミュレーションを実行することと、
前記製造モデルから出力された前記構造設計を前記設計モデルに前方カスケードして、前記動作シミュレーションの前記シミュレート環境を確立することと、
前記設計モデルを通じて性能損失誤差を逆伝播することであって、前記性能損失誤差が、性能損失値を決定するために使用される性能損失関数に基づいて生成される、性能損失誤差を逆伝播することと、
前記性能損失誤差の前記逆伝播からの出力を前記製造モデルに逆カスケードすることと、
1つ以上の第1の勾配を生成するために、前記製造モデルを通じて構造設計誤差を逆伝播することであって、前記構造設計誤差が、前記性能損失誤差の前記逆伝播からの前記出力に基づいて生成される、構造設計誤差を逆伝播することと、
前記1つ以上の第1の勾配に基づいて前記製造仕様を修正することと
を含む、コンピュータ実施方法。
【請求項16】
前記性能損失誤差の前記逆伝播からの前記出力が、前記設計モデルから出力されている1つ以上の第2の勾配を含み、前記第2の勾配が前記性能損失誤差の前記逆伝播に応答して生成され、前記構造設計誤差が前記第2の勾配に基づき、前記製造仕様が、少なくとも前記性能損失誤差を低減するように修正される、請求項15に記載のコンピュータ実施方法。
【請求項17】
前記構造設計誤差が前記設計モデルから出力される前記第2の勾配を含み、前記第2の勾配が、前記性能損失値の、前記物理デバイスの構造変化に対する感受性測度を含む、請求項16に記載のコンピュータ実施方法。
【請求項18】
前記構造設計を修正し、修正構造設計を生成するために、前記第2の勾配を使用して勾配降下アルゴリズムを実施することと、
前記修正構造設計を目標構造設計と比較する製造損失関数を用いて、前記構造設計誤差を生成することとを含む、請求項16に記載のコンピュータ実施方法。
【請求項19】
前記製造損失関数が、前記物理デバイスを製造するときの歩留まり測度、前記物理デバイスを製造するときのコスト測度、または前記物理デバイスを製造するときの時間測度のうちの1つ以上に関連するペナルティ測度を含む、請求項18に記載のコンピュータ実施方法。
【請求項20】
前記製造モデルの実行、前記設計モデルの実行、前記性能損失誤差の逆伝播、および前記構造設計誤差の逆伝播を反復することと、
勾配降下アルゴリズムを介して、各反復間で前記製造仕様を修正することと
を含む、請求項16に記載のコンピュータ実施方法。
【請求項21】
前記製造仕様を修正することが、前記製造シミュレーションの製造パラメータを最適化する前記物理デバイスの製造ステップを更新することを含み、前記第1の勾配が、製造損失関数から生成される製造損失値に対する前記製造ステップの感受性測度を表す、請求項16に記載のコンピュータ実施方法。
【請求項22】
前記構造設計誤差を、製造損失関数からの第1の寄与と、前記設計モデルから出力される前記第2の勾配からの第2の寄与の重み付き組み合わせとして生成することをさらに含む、請求項21に記載のコンピュータ実施方法。
【請求項23】
前記製造モデルの実行、前記設計モデルの実行、前記性能損失誤差の逆伝播、および前記構造設計誤差の逆伝播の選択される反復間で、前記重み付き組み合わせの重みを調整することを含む、請求項22に記載のコンピュータ実施方法。
【請求項24】
前記製造モデルが、前記物理デバイスの実際の製造プロセスの微分可能な特性を含み、前記設計モデルが、前記物理デバイスの動作の微分可能な特性を含む、請求項15に記載のコンピュータ実施方法。
【請求項25】
前記製造シミュレーションおよび前記動作シミュレーションが、前記構造設計を前記設計モードに選択的に前方カスケードし、前記製造シミュレーションと前記動作シミュレーションの選択的反復の間に前記出力を前記製造モデルに選択的に逆カスケードする反復並列ループにおいて実行される、請求項15に記載のコンピュータ実施方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年6月5日に出願された米国特許出願第16/432,538号の利益を主張し、当該出願の内容は参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、物理デバイスの製造および設計最適化に関し、特に、排他的ではないが、逆設計技法に関する。
【背景技術】
【0003】
電磁デバイス(例えば、光学デバイス、電気デバイスなど)は、電磁放射を作成、操作、伝播、および/または測定するデバイスである。それらの用途は大きく異なり、音響光学変調器、光変調器、光リング共振器、分布ブラッグ反射器、レーザ、レンズ、トランジスタ、導波管、アンテナなどを含むが、これらに限定されない。これらのデバイスを設計するための従来の技法は、所定の設計の少数の設計パラメータが特定の用途に適合するように調整される単純なguess and check方法によって決定されることがある。ただし、実際には、これらのデバイスの設計パラメータは、デバイスのサイズおよび機能に応じて、数百から数十億に及ぶ場合がある。電磁デバイスの機能が向上し、デバイスの特徴サイズを小さくできるように製造公差が改善されるにつれて、最適化されたデバイス設計および製造を通じてこれらの改善を最大限に活用することがますます重要になっている。
【図面の簡単な説明】
【0004】
本発明の非限定的かつ非網羅的な実施形態を以下の図を参照して説明するが、ここで、特に指定されない限り、同様の参照番号は、様々な図全体を通して同様の部分を指す。必要に応じて図面が煩雑にならないように、要素の全ての事例が必ずしも標識されているわけではない。図面は必ずしも縮尺通りではなく、説明されている原理を示すことに重点が置かれている。
【0005】
【
図1】本開示の一実施形態による、設計モデルとカスケードされた製造モデルを含む評価アーキテクチャを示す機能ブロック図である。
【
図2】本開示の一実施形態による、物理デバイスの製造と構造設計の両方を最適化するためのカスケードされた製造モデルおよび設計モデルの動作を示すフローチャートである。
【
図3】本開示の一実施形態による、最適化ランドスケープにおける複数の極小値を示すグラフである。
【
図4】本開示の一実施形態による、物理デバイスの製造および動作をシミュレートおよび最適化するためのコンピューティングシステムの機能ブロック図である。
【
図5A】本開示の一実施形態による、物理デバイスの動作をシミュレートするための実証的なシミュレート環境を示す図である。
【
図5B】本開示の一実施形態による、物理デバイスの動作シミュレーションを示す図である。
【
図5C】本開示の一実施形態による、シミュレート環境を通じた性能損失誤差の随伴シミュレーション(バックプロパゲーション)を示す図である。
【
図6A】は、本開示の一実施形態による、動作シミュレーションおよび随伴シミュレーションの例示的な時間ステップを示すフローチャートである。
【
図6B】は、本開示の一実施形態による、動作シミュレーションとバックプロパゲーションとの関係を示すフローチャートである。
【発明を実施するための形態】
【0006】
カスケードされた製造モデルおよび設計モデルを使用する物理デバイスの製造仕様および/または設計仕様の両方のシミュレーションおよび最適化のためのシステム、装置、および方法の実施形態が本明細書に記載されている。以下の説明では、多くの具体的な詳細は、実施形態の徹底的な理解を提供するために、記載されている。しかしながら、関連技術の当業者は、本明細書に記載された技術が、1つ以上の特定の詳細なしで、または他の方法、構成要素、材料などを用いて実施され得ることを認識するであろう。他の例では、特定の態様を不明瞭にしないために、周知の構造、材料、または操作は、詳細に図示または説明しない。
【0007】
本明細書全体を通して「1つの実施形態」または「一実施形態」というのは、実施形態に関連して説明された特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体にわたる様々な箇所における「1つの実施形態では」または「一実施形態では」という句の出現は、必ずしも全てが同じ実施形態を指しているわけではない。さらに、特定の特徴、構造、または特性は、1つ以上の実施形態において任意の好適な様式で組み合わせることができる。
【0008】
電磁デバイス(例えば、アンテナ、導波管など)、フォトニックデバイス(例えば、レーザ、LED、導波管など)、流体デバイス、または音響デバイスなどの物理デバイスの設計および最適化は、設計者が目標仕様を提供し、次いでそれを満たす設計を決定する逆問題として取り組むことができる。この目標仕様は、損失関数Lの観点から形式化して明示的に記述することができる。ここで、規則L≦0は、目標の性能/製造パラメータが達成されたことを示す。したがって、逆問題は、L≦0を満たす構造設計zまたは製造プロセスfを見つけるから構成される。対照的に、対応する「順問題」は、所与の設計に対して、目標仕様と比較した所与の設計の性能を決定する必要がある問題である。
【0009】
本明細書において、物理デバイスの設計および製造の逆問題に対する方法論が説明される。この方法論は、物理デバイスの微分可能な製造シミュレーションを実行する製造モデルを、微分可能な(かつ、場合によっては可逆的な)動作シミュレーションを実行する設計モデルと直接カスケードすることを含む。言い換えると、設計モデルは、所与の構造設計の動作物理特性をシミュレートすることができる動作シミュレーションを提供する。製造モデルは、構造設計を構築するための製造仕様をシミュレートすることができる製造シミュレーションを提供する。複数のモデル(例えば、製造モデルおよび設計モデル)をカスケードするための本明細書に記載の技法は、一般的な設置誤差に対してロバストな設計を構築するために、設置モデルなどの他のタイプのモデルをカスケードするように拡張することもできる。
【0010】
逆方法を使用して特定の性能パラメータに対して所与の構造設計を最適化するために、構造特性z(例えば、材料特性)に関する性能目的関数(損失関数L)の導関数が空間内の位置の関数として定義される。マクスウェルの電磁気方程式のように、性能パラメータを統制する物理特性が明確に定義されている場合、これは完全に微分可能かつ可逆的に行うことができる。本明細書に記載の実施形態は、構築される物理デバイスを定義/説明する材料特性またはその有無だけでなく、構造設計および材料特性を生成する作製または製造プロセスも考慮して、逆設計方法論をさらに一歩進める。シリコンフォトニックデバイスの例では、これは、材料層の成長(例えば、堆積)、マスキング、エッチングなどの、フォトリソグラフィプロセスの完全に微分可能なモデルを有することを意味する。導波管を製造するための2.5D CNC機械加工プロセスなどの機械加工物理デバイスの例では、これは、ツールパスおよびツール選択に従って材料が除去されるフライス盤プロセスの微分可能なモデルを生成することを意味する。フライス盤プロセスのモデル化は、バックラッシュ、有限制御精度などを表す数式を含むことができる。これらの製造プロセスの微分可能モデルを使用すると、性能パラメータの勾配または導関数が、材料値(すなわち、構造設計)だけでなく、物理デバイスを構築するときに材料値を生成するより基本的な製造プロセス(例えば、フォトリソグラフィ、CNCツールパスなど)にまで遡ってさらにより後方に伝播されることを可能にする。
【0011】
本明細書に記載の実施形態は、製造シミュレーションを実行するための製造モデルを、動作シミュレーション(物理シミュレーションとも呼ばれる)を実行するための設計モデルとカスケードする逆設計および製造技法を企図する。一実施形態では、両方のモデルは微分可能である(かつ、場合によっては可逆的であり、これは、入力がモデルに提供されると出力を得ることができ、出力がある場合は再び入力を得ることができることを意味する)。例えば、摂動が出力において提供される場合、それを逆方向に伝播して、入力の対応する摂動の様子を確認することができる。さらに、設計モデルを製造モデルとカスケードすることにより、設計モデルの出力における摂動は、設計モデルへの入力よりもさらに後方に、むしろ製造仕様の変化または摂動にまで遡って伝播することができる。言い換えれば、本明細書に記載の実施形態は、1つ以上の目標性能パラメータ(例えば、導波管の設計および製造の例における特定の導波管モードにおける出力電力)の列挙に始まり、目標性能パラメータを達成することが可能な物理デバイスを製造するためのフライス盤への制御入力を指定することができる製造仕様に終わる、エンドツーエンドの逆設計を容易にする。
【0012】
図1は、本開示の一実施形態による、製造モデル105を設計モデル110とカスケードする評価アーキテクチャ100を示す機能ブロック図である。評価アーキテクチャ100の例示されている実施形態は、製造モデル105、設計モデル110、製造損失関数115、製造損失値116、性能損失関数120、性能損失値121、製造オプティマイザ125、製造仕様130、変動性要因135、構造設計140、シミュレート性能パラメータ145、目標性能パラメータ150、性能損失誤差155、構造オプティマイザ158、修正構造設計160、目標構造設計165、構造設計誤差171、製造仕様誤差172、および修正製造仕様175を含む。
【0013】
製造モデル105は、物理デバイスを構築するためのステップおよび手順をシミュレートする製造シミュレーションを実行するために、特定の製造仕様130によって構成されたシミュレーション論理を表す。製造モデル105の出力は、物理デバイスの材料構造の記述である構造設計140である。いくつかの実施形態では、構造設計140は、歩留まり、コスト、製造時間などのような1つ以上の製造パラメータをさらに含むか、または項目化することができる。あるいは、これらの製造パラメータは、代わりに構造設計140から導出可能であってもよい。製造モデル105は、2.5D CNCツール、リソグラフィツール(例えば、堆積チャンバ、エッチング浴、フォトリソグラフィツール、マスキングツールなど)、またはその他などの1つ以上の製造ツールを使用してデバイス製造をシミュレートするための独自のまたは市販のCADプログラムを含んでもよい。製造モデル105は、これらの製造手順を微分可能(かつ、場合によっては可逆的)に表す数学モデルである。一実施形態では、製造モデル105は、フォトリソグラフィ製造手順がモデル化されている例では、コンピュータリソグラフィアプローチに基づくことができる。製造モデル105は、出力構造設計140の変動性をもたらす、バックラッシュ、有限制御精度、圧力および温度偏差などのような任意の数の統計的または変動性要因135をさらに特性化することができる。この変動性は、構造設計140のアンサンブル141を介して
図1に表されている。いくつかの実施形態では、製造モデル105は、線幅、最小曲率半径、または他の製造限界を計上するための発見的方法を含む。
【0014】
製造モデル105の微分可能な性質は、製造モデル105を介した構造設計誤差171のバックプロパゲーションを容易にする。構造設計誤差171は、シミュレート構造設計(例えば、構造設計140)と目標構造設計(例えば、目標構造設計165)との間の差(例えば、損失または誤差)を記述する多変数誤差項を表す。一実施形態では、構造設計誤差171は、設計モデル110を介して性能損失誤差155を逆伝播した結果としての、設計モデル110(パスA)から出力される構造勾配を含む。別の実施形態では、構造設計誤差171は、構造設計140の目標構造設計165(パスB)と比較することに基づいて、製造損失関数115によって生成される。この場合も、構造設計誤差171は、製造モデル105を介して逆伝播されている、製造損失関数115から出力された構造勾配を依然として含み得る。構造設計誤差171の多変数性とは対照的に、製造損失値116は、各製造または構造最適化反復の成功を評価するために使用されるスカラー値(例えば、構造設計誤差項の平均二乗差)である。
【0015】
さらに別の実施形態では、パスAおよびBの両方からの構造勾配を加重方式で組み合わせて、パスAおよびBの両方からの重み付き組み合わせ損失誤差として構造設計誤差171を生成することができる。したがって、パスAおよびBは相互に排他的なパスではない。製造損失関数115および設計モデル110から出力された誤差の重み付き組み合わせをとることにより、特定の製造パラメータ(例えば、個々のプロセスステップ、ツール選択、材料選択、コスト、歩留まり、変動性など)に対してペナルティを課して、性能損失値121も低減しながら、製造損失値116を低減することができる。例えば、製造ステップの数、製造コストなどは、構造設計140から導出することができ、一方、歩留まりおよび製造時間は、構造設計140のアンサンブル141から導出することができる(以下でさらに詳細に説明する)。これらの製造パラメータに関連する誤差は、製造モデル105を介して逆伝播されて、製造仕様誤差172が生成される。製造仕様誤差172は、Google Inc.から入手可能なTensorFlowなどのプログラムを使用して計算されるこれらの製造パラメータの様々な勾配を含む。製造オプティマイザ125は、これらの製造勾配に対して最適化アルゴリズム(例えば、勾配降下アルゴリズム)を実行して、製造損失値116および/または性能損失値121を繰り返し低減し、修正製造仕様175を生成する。構造設計誤差171が、設計の構造の変化に対する感受性測度を提供する勾配(例えば、構造勾配)を含み得る一方、製造仕様誤差172は、構造設計を作成するために使用される製造手順の変化に対する感受性測度を提供する勾配(例えば、製造勾配)を含み得る。
【0016】
設計モデル110は、N次元空間(例えば、3D空間)における物理デバイスの構造を記述するだけでなく、その動作の基礎となる物理特性もシミュレートする仮想またはシミュレート環境を確立するための、構造設計140によって構成されるシミュレーション論理を表す。一実施形態では、設計モデル110内で確立されるシミュレート環境は、各々がN次元空間内の所与の位置における材料特性を記述するボクセルのアレイに基づく。物理デバイスの構造は、設計モデル110の仮想試験台にロードされたときに、構造設計140によって定義される。ただし、この仮想試験台はまた、励起源への場応答を計算および伝播するための動作論理も含む。例えば、動作論理は、有限差分時間領域(FDTD)法を実行して、シミュレート環境を通じて場応答を計算および伝播することができる。設計モデル110は、物理デバイスの構造を表し、微分可能かつ可逆的な方法でその動作(例えば、場応答の伝播)をシミュレートする数学モデルである。
【0017】
設計モデル110の出力は、いくつかのシミュレーションステップの後の出力領域(例えば、出力ポート)におけるシミュレート場応答である。この出力場応答の特定の性能パラメータは、関心パラメータとして選択することができ、シミュレート性能パラメータ145と呼ばれる。シミュレート性能パラメータ145は、性能損失関数120によって使用されて、性能損失値121が計算され、これは、スカラー値(例えば、シミュレート性能値145と目標性能値150との間の平均二乗差)であり得る。例えば、導波管の例では、シミュレート性能パラメータ145は、特定の波長帯域および特定の導波管モードにおいて、光パワーを計算するために必要とされる出力におけるシミュレート場応答値であり得る。
【0018】
本出願は、電磁場を伝播する物理デバイスの製造および動作シミュレーションを参照して評価アーキテクチャ100を説明するが、他のタイプの場を伝播する他のタイプの物理デバイスもまたシミュレートされてもよい。例えば、流体波または音波を伝播する物理デバイスもシミュレートすることができる。これは、これらの場/波の伝播を記述する方程式がよく知られているためである。
【0019】
設計モデル110の微分可能な性質は、随伴シミュレーションを介して、シミュレート環境を介した性能損失誤差155のバックプロパゲーションを可能にする。一実施形態では、性能損失誤差155は、規定の性能損失関数120に基づいて計算され、これは、シミュレート性能パラメータ145を目標性能パラメータ150(すなわち、所望の結果)と比較する。性能損失誤差155自体は、シミュレート性能と設計性能との間の損失を表す多変数誤差項である。性能損失誤差155は、その入力において構造設計誤差171を生成するために随伴シミュレーション中に設計モデル110を介して逆伝播される。一実施形態では、性能損失誤差155は、逆伝播される勾配(例えば、損失勾配)を含む。性能損失誤差155のバックプロパゲーションは、物理デバイスの構造材料特性の変化に対する性能損失値121の感受性を表す構造勾配などの追加の性能勾配の計算を容易にする。これらの勾配は、構造設計誤差171(パスA)として出力され、これは、その後、構造設計140を最適化または改良して修正構造設計160(パスD)を生成する反復的勾配降下(例えば、確率的勾配降下)を実施するために、構造オプティマイザ158によって使用することができる。代替的に(または付加的に)、随伴動作シミュレーション中に生成される構造勾配が、構造オプティマイザ158(パスD)によって使用されるだけでなく、直接的に製造モデル105(パスAおよびC)に遡ってカスケードされてもよい。構造オプティマイザ158から出力される修正構造設計160は、設計モデル110によって(パスA、D、およびEに沿って)性能最適化ループ101を反復するために、および/または製造損失関数115によって(パスF、B、およびCに沿って)製造最適化ループ102を反復するために使用され得る。
【0020】
図1に示されるように、製造モデル105は、設計モデル110とカスケードされる。
図1では、製造モデル105および設計モデル110は、製造モデル105から出力される前方シミュレーション結果(例えば、構造設計140)が設計モデル110に入力され得るように、前方カスケードされている。同様に、製造モデル105および設計モデル110は、設計モデル110からの出力が、構造設計誤差171として製造モデル105を介して直接的に(パスAおよびCを介して)、または構造オプティマイザ158および製造損失関数115を介して(パスA、D、E、F、B、次いでCを介して)間接的に逆伝播され得るように、逆カスケードされる。前述のように、製造バックプロパゲーションの結果を使用して、製造損失値116に対する製造ステップの感受性測度を表す製造勾配を計算することができる。しかしながら、設計モデル110と製造モデル105の両方から出力される勾配を組み合わせて(例えば、重み付き組み合わせ)、製造パラメータの変化を性能損失関数121にも関連付ける感受性測度を計算することができることをさらに理解されたい。言い換えれば、製造勾配は、物理デバイスの製造および設計(例えば、構造設計140)を改善するだけでなく、物理デバイスの動作性能(例えば、シミュレート性能パラメータ145)も改善し、したがって、エンドツーエンドの製造、設計、および性能の最適化を提供するために、製造仕様130を修正または最適化するために製造オプティマイザ125によって使用することができる。一実施形態では、製造オプティマイザ125は、勾配降下アルゴリズムを実行して、以前の製造仕様130の改良または最適化を表す、修正製造仕様175を生成する。
【0021】
図2は、本開示の実施形態による、評価アーキテクチャ100の動作のためのプロセス200を示すフローチャートである。プロセスブロックの一部または全部がプロセス200に現れる順序は、限定的なものとみなされるべきではない。むしろ、本開示の利益を有する当業者は、プロセスブロックの一部が、図示されていない様々な順序で、または並列でも実行され得ることを理解するであろう。
【0022】
プロセスブロック205において、製造モデル105を構成するために、初期製造仕様130が得られ、ロードされる。製造仕様130は、光学マスク(例えば、ガーバーなど)、ツールパス記述子(例えば、Gコードなど)、または製造プロセスフローを指定するための他の様々な設計者ファイルタイプに変換される設計者ファイルを含み得る。上記のように、製造仕様130は、フォトリソグラフィステップ、フライス加工ステップ、または様々な製造技術の製造手順を記述することができる。
【0023】
製造仕様130が使用されて製造モデル105をセットアップおよび構成されると、製造シミュレーションがプロセスブロック210において実行され得る。製造シミュレーションは、実世界の物理学および所与の製造ツール/環境の制約に従って、製造プロセスを仮想化する。製造シミュレーションの出力は、物理デバイスの設計反復を表す構造設計140である。一実施形態では、様々な実世界の統計的または変動性要因135が、製造シミュレーション中に計上され得る。これらの変動要因135は、バックラッシュ、有限制御精度(圧力偏差、温度偏差、モータ制御、光学分解能などを含む)などの製造プロセスに関連する統計的偏差を含み得る。したがって、製造シミュレーションの出力は、単に単一の固定構造設計140ではなく、変動性要因135から生じる様々な構造設計をカバーする構造設計140のアンサンブル141であり得る。それに対応して、設計モデル110はまた、構造設計140のアンサンブル141に対して場応答のアンサンブルが生成されるように、変動性(例えば、異なる温度、応力、入力不整合、波長など)を導入することができる。
【0024】
プロセスブロック215において、構造設計140が、動作シミュレーションのためにそのシミュレート環境を構成するために設計モデル110にロードされる。動作シミュレーションは、シミュレート環境を通じて伝播する場応答の物理ベースのシミュレーションである。動作シミュレーションは、動作シミュレーションの各時間ステップについて、N次元空間内の各ボクセルにおける場応答を決定する。これは、場応答が1つ以上の励起源から外側に伝播するためである。次に、下記に説明するように、各時間ステップに対して計算された場応答値を使用して、場勾配(例えば、構造の偏導関数に対する応答場の偏導関数)を計算することができる。さらに、シミュレート性能パラメータ145が、指定の領域(例えば、出力領域)における動作シミュレーションの指定の時間ステップ(例えば、最終時間ステップ)について計算された場応答から抽出される。シミュレート性能パラメータ145は、構造設計140の現在の反復をベンチマークするための関心パラメータを含み得る。そのような関心パラメータは、例えば、特定の導波管モードにおける出力パワーを含み得る。
【0025】
プロセスブロック220において、性能損失関数120は、シミュレート性能パラメータ145を目標性能パラメータ150と比較して、性能損失値121を生成し、随伴動作シミュレーションの性能損失誤差155を計算するために使用される。例えば、性能損失関数120は、シミュレート性能パラメータ145における特定の関心パラメータと目標性能パラメータ150との間の平均二乗差を取って、性能損失値121を生成することができる。一実施形態では、性能損失値121はスカラー値である。性能損失誤差155は、随伴動作シミュレーション中に逆伝播される損失勾配であり得る。構造設計140が改良されたまたは最適な設計に近づくにつれて、シミュレート性能パラメータ145と目標性能パラメータ150との間の誤差は低減され、それによって性能損失値121が低減するはずである。
【0026】
一般に、性能損失誤差155は、場応答に類似するフォーマットにおいて特性化され、したがって、随伴動作シミュレーション中のバックプロパゲーションのために設計モデル110に再導入され得る。プロセスブロック225において、性能損失誤差155は、設計モデル110を通じて、出力領域から物理デバイスのシミュレート環境を通じて入力領域に逆伝播される。随伴動作シミュレーションの結果は、一般的に性能勾配と呼ばれるいくつかの関心値を含み得る。例えば、随伴動作シミュレーションを使用して、損失勾配を逆伝播し、構造勾配(例えば、構造の偏導関数に対する損失誤差の偏導関数)を計算することができる。損失勾配および構造勾配は、タイムフォワードシミュレーションからの場勾配と共に、勾配降下アルゴリズムを介して構造設計140を改良するために使用され得る感受性メトリックを表す。場勾配と損失勾配とが組み合わされて、構造勾配が生成される。構造勾配は、性能損失誤差155の変化を構造設計140の構造パラメータの変化に関連付ける関数である。
【0027】
決定ブロック230において、設計モデル110の随伴シミュレーションから出力される構造勾配が(パスAおよびCに沿って)製造モデル105に直接的に逆カスケードされる場合、プロセス200はプロセスブロック240に続く。一方、構造設計誤差171が、性能損失関数120および製造損失関数115の両方からの誤差の重み付き組み合わせとして生成される場合、プロセス200は、プロセスブロック235に続く。プロセスブロック235において、製造損失関数115は、構造設計140と目標構造設計165との比較に基づいて、構造設計誤差171(パスB)の第1の寄与を生成する。次に、この第1の寄与は、直接的な設計モデル110(パスA)からの第2の寄与と組み合わされて、両方の部分の重み付き組み合わせである総構造設計誤差171が生成される。一実施形態では、スケーラブルな係数を適用する論理(図示せず)を組み合わせると、重み付き組み合わせを生成することができる。バックプロパゲーションソースの重み付き組み合わせを使用すると、構造設計誤差171に製造ペナルティ測度と性能ペナルティ測度の両方を含めることができる。例えば、これらのペナルティは、パワー出力などの性能パラメータに加えて、歩留まり、コスト、製造時間、製造ステップの数、希少または高価な特定の材料、特定の製造ステップなどの製造中心のパラメータを計上し得る。重み付き組み合わせを使用することにより、これらの製造/性能パラメータの相対的な重要性を所望に応じて調整することができる。次に、構造設計誤差171は、製造モデル105(プロセスブロック240)を通じて逆伝播されて、製造仕様誤差172が出力される(プロセスブロック245)。前述のように、製造仕様誤差は、製造勾配を含み、これは、性能損失値121および/または製造損失値116の特定の関心パラメータに対する変化の感受性測度を表す。例えば、製造勾配は、製造損失値116および/または性能損失値121に関する特定の製造ステップの感受性測度(例えば、製造パラメータ)を表すことができる。一実施形態では、製造および性能勾配は、Google Inc.から入手可能なTensorFlowなどのテンソル処理ユニットおよびデータフロープログラミングユーティリティを使用して、随伴動作シミュレーションおよび製造バックプロパゲーション中に計算される。
【0028】
製造勾配が決定されると、製造オプティマイザ125は、勾配降下最適化を実行して、修正製造仕様175を生成することができ、これは、製造仕様130の以前の反復に対していくつかの製造特性またはパラメータを最適化する(プロセスブロック250)。プロセスブロック205~250は、随伴動作シミュレーションおよび製造バックプロパゲーションの現在のラウンドにおいて計算された勾配に基づいて製造仕様130を修正する単一の最適化反復を表す。関心性能値は、性能損失関数120から設計モデル110(性能損失誤差155の形態)および製造モデル105(構造設計誤差171の形態)を通じて製造オプティマイザ125まで逆伝播されるため、各最適化反復は、少なくとも性能損失値121を低減するための更新された製造手順を決定するエンドツーエンドの最適化を表す。
【0029】
決定ブロック255において、前方エンドツーエンドシミュレーションは、対応するエンドツーエンド勾配バックプロパゲーション動作と共に、性能損失値121が収束するか、または閾値内に収束するまで反復し続ける。収束が達成されたと見なされると、プロセス200は決定ブロック260に続く。決定ブロック260において、最適化ランドスケープがさらに調査されるべきか否かが決定される。最適化ランドスケープの調査は、異なる製造パラメータまたは構造パラメータを組み合わせるために使用される組み合わせ重みの適用および傾斜の時系列順序の調整を含む(プロセスブロック265)。プロセス200が実行されて、性能損失値121または製造損失値116の低減をもたらす製造パラメータおよび/または構造パラメータの最適化された値が決定されると、これらの最適化は、損失値をさらに低減することができる他の最小値が存在するにもかかわらず、極小値に収束することができる。
【0030】
図3は、この極小収束問題を説明する最適化曲線300である。様々な製造パラメータおよび/または構造パラメータに適用される重みの結果として、極小値302において性能損失値121をさらに低減することができるさらに良好な構造/製造構成があるにもかかわらず、性能または製造の最適化が極小値301にはまり込む可能性がある。ただし、最適化アルゴリズムは、重み付け係数(例えば、組み合わせ重み)および/またはそれらの重みが傾斜される順序を調整せずに、極小値301から極小値302に到達することができない場合がある。したがって、いくつかの実施形態では、設計モデル110から出力される損失値(例えば、構造勾配)を製造損失関数115からの構造勾配と組み合わせるために適用される重みを調整することができ、および/または、最適化曲線300の他の領域を探索するために、最適化反復間のこれらの重みに対する傾斜の順序を調整することができる(プロセスブロック265)。
【0031】
最適化ランドスケープの探索が完了した場合、または実行されなかった場合、プロセス200はプロセスブロック270に進み、製造オプティマイザ125の最後の反復後に修正製造仕様175が出力される。
【0032】
図2に示されるプロセス200は、製造モデル105と設計モデル110との間の直列エンドツーエンド評価アーキテクチャを説明する。ただし、これらのモデルは、反復ごとに厳密にエンドツーエンドの直列最適化とは対照的に、リンクされているが別個の並列最適化を実施するために、並列に、分離して、または交互に実行することもできる。例えば、設計モデル110は、上述したように、製造モデル105から得られる初期構造設計140に基づいて、性能最適化ループ101の反復を実行することができる。随伴シミュレーションの副産物として設計モデル110によって計算された性能勾配は、初期構造設計の構造パラメータを修正し、修正構造設計160を出力するために構造オプティマイザ158によって使用することができ、修正構造設計はその後、性能最適化ループ101の次の反復のために設計モデル110にシードバックされる。
【0033】
性能最適化ループ101は、修正構造設計160が収束するか、または指定された閾値内に収束するまで、複数の反復について、並列して、分離して、および/または交互に反復され得る。そのような時点で、構造勾配は、最終的に、直接的に(パスAおよびCを介して)、または製造損失関数115を介して間接的に(パスA、D、E、F、およびBを介して)、製造モデル105に逆カスケードされる。間接パスは、修正構造設計160を目標構造設計165と比較して構造設計誤差171を生成する製造損失関数115を含む。クロスポリネーション(例えば、モデル間の勾配または他の出力の交換)の後、製造モデル105は、次に、並列に、および/または性能最適化ループ101から分離して反復される一連の製造最適化ループ102を実行することができる。
【0034】
製造損失関数115は、性能損失関数120と共に、全損失関数124の構成要素と考えることができる。同様に、製造損失値116および性能損失値112は、総損失値123への寄与と見なすことができる。製造モデル105および設計モデル110を使用して、並列または交互の前方シミュレーションおよび/またはバックプロパゲーションを実行して、総損失値123に対するそれらの個々の寄与を最適化することができる。これらの並列最適化ループの入力および/または出力は、モデル間で周期的に(またはオンデマンドで)クロスポリネーション/カスケードすることができる。
【0035】
図4は、本開示の一実施形態による、物理デバイスの製造および動作をシミュレートおよび最適化するためのコンピューティングシステム500の機能ブロック図である。システム500の例示されている実施形態は、コントローラ505、ディスプレイ507、入力デバイス509、通信デバイス511、ネットワーク513、リモートリソース515、バス521、およびバス523を含む。コントローラ105の例示されている実施形態は、プロセッサ531、メモリ533、ローカルストレージ535、製造シミュレータ537、および物理デバイスシミュレータ539を含む。製造シミュレータ537の例示されている実施形態は、製造シミュレーション論理541A、バックプロパゲーション論理547A、最適化論理549A、および計算論理543Aを含む。対応して、物理デバイスシミュレータ539の例示されている実施形態は、動作シミュレーション論理541B、バックプロパゲーション論理547B、最適化論理549B、および計算論理543Bを含む。いくつかの実施形態では、コントローラ505が分散システムであってもよいことは諒解されたい。さらに、システム500は、1つの実証的なシステムアーキテクチャに過ぎず、他のデバイスアーキテクチャが使用されてもよい。
【0036】
コントローラ505は、システム500のユーザに情報を表示するために、バス521および523を介してディスプレイ507に結合されている。入力デバイス509は、情報およびコマンド選択をプロセッサ531に通信するために、バス521を通じてバス523に結合されている。入力デバイス509は、ユーザとコントローラ505との間のインタラクションを容易にするために、マウス、トラックボール、キーボード、スタイラス、または他のコンピュータ周辺機器を含んでもよい。それに応答して、コントローラ505は、ディスプレイ507を通じてインタラクションの検証を提供することができる。
【0037】
通信デバイス511は、ネットワーク513を介して分散システムのリモートリソース515にアクセスするために提供される。通信デバイス511は、イーサネット、トークンリング、インターネット、広域ネットワークなどに結合するために使用されるものなど、複数のネットワーク接続周辺デバイスのいずれかを含んでもよい。通信デバイス511は、ヌルモデム接続、または、プラットフォーム505と外界との間の接続を提供する任意の他のメカニズムをさらに含むことができる。
図5に示すシステム500の構成要素のいずれかまたは全て、および関連するハードウェアが、本開示の様々な実施形態に使用されてもよいことに留意されたい。リモートリソース515は、分散システムの一部であってもよく、シミュレートされている物理デバイスの構造パラメータを最適化するための任意の数のプロセッサ、メモリ、および他のリソースを含んでもよい。
【0038】
コントローラ505は、物理デバイスの製造パラメータおよび/または構造(例えば、物理)パラメータを最適化するために、システム500の動作を調整する。プロセッサ531(例えば、1つ以上の中央処理装置、グラフィックス処理装置、および/またはテンソル処理装置など)、メモリ533(例えば、DRAMおよびSRAMなどの揮発性メモリ、ROMなどの不揮発性メモリ、フラッシュメモリなど)、ローカルストレージ535(例えば、コンピュータディスクドライブなどの磁気メモリ)、ならびにシミュレータ537および539は、バス523を介して互いに結合されている。コントローラ505は、コントローラ505によって実行されるときに、コントローラ505またはシステム500が動作を実行するようにするソフトウェア論理(例えば、メモリ533に含まれる命令)および/またはハードウェア論理(例えば、特定用途向け集積回路、フィールドプログラマブルゲートアレイなど)を含む。動作は、メモリ533、ローカルストレージ535、製造シミュレータ537、物理デバイスシミュレータ539、および、ネットワーク513を介してアクセスされるリモートリソース515のいずれか1つまたはそれらの組み合わせに記憶された命令に基づくことができる。
【0039】
一実施形態では、製造シミュレータ537は、メモリ533またはローカルストレージ535内に記憶され、製造モデル105を実行するためにプロセッサ531によって実行されるソフトウェアアーキテクチャを表す。製造シミュレーション論理541Aは、前方製造シミュレーションを実行するための論理を含み、最適化論理549Aは、製造オプティマイザ125に関連して説明されている機能を実行し、バックプロパゲーション論理547Aは、製造バックプロパゲーションを実行するための論理を含み、計算論理543Aは、製造損失関数115を実行するための論理を含む。対応して、一実施形態において、動作シミュレーション論理541Bは、前方動作シミュレーションを実行するための論理を含み、最適化論理549Bは、構造オプティマイザ158に関連して説明されている機能を実行し、バックプロパゲーション論理547Bは、随伴動作シミュレーションを実行するための論理を含み、一方で、計算論理543Bは、性能損失関数120を実行するための論理を含む。
【0040】
図5A~
図5Cは、一実施形態による、設計モデル110を有する物理デバイスの構造パラメータを最適化するための、シミュレート環境601の初期設定、動作シミュレーション、および随伴シミュレーションをそれぞれ示す。シミュレート環境601および対応する初期設定、動作シミュレーション、随伴シミュレーション、および構造パラメータ最適化は、上記のような物理シミュレータを介して達成することができる。
図6A~
図6Cに示されるように、シミュレート環境は二次元で表されるが、より高い(例えば、三次元空間)およびより低い(例えば、一次元空間)次元もまた、シミュレート環境601および物理デバイスを記述するために使用され得ると理解される。いくつかの実施形態では、
図5A~5Cに示される物理デバイスの構造パラメータを最適化は、とりわけ、場応答(例えば、電気と磁気の両方)をモデル化するためにFDTD法を利用するシミュレーション(例えば、タイムフォワードおよびバックプロパゲーション)を介して達成されてもよい。
【0041】
図5Aは、本開示の一実施形態による、電磁デバイスを記述するシミュレート環境601-Aの例示的なレンダリングを示す。シミュレート環境601-Aは、物理デバイスの構造パラメータを最適化するための初期時間ステップ(例えば、初期設定)におけるシミュレート環境601を表す。シミュレート環境601によって記述される物理デバイスは、シミュレート環境の構造パラメータが設計、修正、または他の方法で変更され得る設計可能領域605を有する光導波管に対応し得る。シミュレート環境601は、励起源615(例えば、ガウスパルス、波、導波管モード応答など)を含む。シミュレート環境601(および物理デバイス)内の電場および磁場は、励起源615に応答して変化する可能性がある(例えば、場応答)。動作シミュレーションが開始される前に、物理デバイスの第一原理シミュレーションの初期構造パラメータ、励起源、性能パラメータ、および他のメトリックの特定の設定(すなわち、初期記述)が入力される。
【0042】
図示のように、シミュレート環境601(およびその後の物理デバイス)は、シミュレート環境の二次元(または三次元)空間の個々の要素を表す複数のボクセル610によって記述される。ボクセルの各々は二次元の正方形として示されているが、ボクセルは三次元空間において立方体または他の形状として表され得ると理解される。複数のボクセル610の特定の形状および次元は、シミュレート環境601に応じて調整され得ると理解される。さらに、シミュレート環境601の他の態様を曖昧にすることを回避するために、複数のボクセル610の一部のみが示されていることに留意されたい。複数のボクセル610の各々は、1つ以上の構造パラメータ、場応答を記述するための場値、および、シミュレート環境601内の特定の位置における励起源を記述するためのソース値に関連付けられる。場応答は、例えば、複数のボクセル610の各々について、特定の時間ステップにおける電場および/または磁場を記述するベクトルに対応し得る。より具体的には、ベクトルは、場応答を決定するためのマクスウェル方程式を離散化するYee格子に対応し得る。いくつかの実施形態では、場応答は、少なくとも部分的に、構造パラメータおよび励起源615に基づく。
【0043】
図5Bは、励起源615がアクティブである(例えば、シミュレート環境601を通って伝播する励起源615に由来する波を生成する)特定の時間ステップにおけるシミュレート環境601-Bの例示的な動作シミュレーションを示す。一実施形態では、物理デバイスは、関心周波数において動作し、かつ特定の導波管モード(例えば、横電磁モード、横電気モードなど)を有する光導波管であり、励起源は、指定された空間、位相、および時間プロファイルを有する光導波管の入力にある。動作シミュレーションは、図示の時間ステップを含む複数の時間ステップにわたって行われる。動作シミュレーションを実行するときに、複数のボクセル610の各々についての場応答(例えば、場値)への変化は、励起源615に応答して更新され、少なくとも部分的に、複数の時間ステップの各々における物理デバイスの構造パラメータに基づく。同様に、いくつかの実施形態では、ソース値は、複数のボクセルの各々について更新される(例えば、シミュレート環境を通って伝播する励起源615からの電磁波に応答して)。動作シミュレーションは増分的であり、場値(およびソース値)は、複数の時間ステップの各々について時間が進むにつれて、各時間ステップにおいて増分的に更新されることが理解される。さらに、いくつかの実施形態では、更新は反復プロセスであり、各場およびソース値の更新は、少なくとも部分的に、各場およびソース値の以前の更新に基づくことに留意されたい。
【0044】
動作シミュレーションを実行するとき、性能損失関数120は、少なくとも部分的に、指定の時間ステップ(例えば、動作シミュレーションの最終時間ステップ)における場応答(シミュレート性能パラメータ145)と所望の場応答(目標性能パラメータ150)との間の比較(例えば、平均二乗差)に基づいて、各出力ポート620および625において計算され得る。性能損失値121は、特定の性能値(例えば、特定の導波管モードにおけるパワー)の観点から記述することができる。構造パラメータは、この特定の性能値に合わせて最適化することができる。
【0045】
図5Cは、本開示の一実施形態による、物理デバイスを記述するシミュレート環境601-C内の逆方向の損失誤差155の例示的なバックプロパゲーションを示す。一実施形態では、随伴性能シミュレーションは、シミュレート環境601-Cのボクセル610を介して逆場応答を刺激するための一種の逆励起源として、出力ポート620および625に性能損失誤差155を注入する。性能損失誤差155の随伴性能シミュレーションは、ボクセル610の構造パラメータの変化が性能損失値121に与える影響を決定する。
【0046】
図6Aは、本開示の一実施形態による、シミュレート環境内におけるタイムフォワードシミュレーション710およびバックプロパゲーション750の例示的な時間ステップを示すフローチャート700である。フローチャート700は、システム(例えば、設計モデル110)が、シミュレート環境の前方動作シミュレーション710およびバックプロパゲーション750を実行するために使用することができる1つの可能な実施態様である。例示されている実施形態では、前方動作シミュレーションは、FDTD法を利用して、励起源に応答する複数の時間ステップにおける場応答(電気的および磁気的の両方)をモデル化する。より具体的には、時間依存マクスウェル方程式(偏微分形式)は、複数の時間ステップにわたって場ベクトル成分(例えば、
図5A~
図5Cのシミュレート環境601の複数のボクセル610の各々の場応答)を解くために離散化される。
【0047】
図6Aに示されるように、フローチャート700は、動作シミュレーション710および随伴シミュレーション750の一部の更新動作を含む。動作シミュレーション710は、複数の時間ステップにわたって(例えば、最初の時間ステップから、指定の時間ステップサイズを有する所定のまたは条件付きの数の時間ステップにわたって、最後の時間ステップまで)行われ、場応答に集合的に対応するシミュレート環境および/または物理デバイスを記述する複数のボクセルの電場および磁場の変化(例えば、初期場値711からの)をモデル化する。より具体的には、更新操作(例えば、712、714、および716)は反復的であり、場応答、構造パラメータ704、および1つ以上の物理的刺激源708に基づく。各更新操作の後には別の更新操作が続き、これは、複数の時間ステップ内の時間的に順方向の連続するステップを表す。例えば、更新動作714は、前の更新動作712、ソース708、および構造パラメータ704から決定された場応答に基づいて、場値713(例えば、
図6B参照)を更新する。同様に、更新動作716は、更新動作714から決定された場応答に基づいて、場値715(例えば、
図6B参照)を更新する。言い換えると、動作シミュレーションの各時間ステップにおいて、場値(したがって場応答)が、物理デバイスの以前の場応答および構造パラメータに基づいて更新される。動作シミュレーション710の最後の時間ステップが実行されると、損失値718が決定され得る(例えば、所定の損失関数720に基づいて)。ブロック752から決定された損失勾配は、構造勾配768を決定するために、逆方向に(最後の時間ステップから増分的に複数の時間ステップを通じて、初期時間ステップに達するまで)逆伝播される随伴または仮想ソース(例えば、出力領域において発生する物理的刺激または励起源)として処理される。
【0048】
図示の実施形態では、FDTD解決(例えば、タイムフォワードシミュレーション710)およびバックプロパゲーション750問題は、「更新」および「損失」演算ならびにそれらの対応する勾配演算のみを使用して、高レベルから図式的に説明される。シミュレート環境(および電磁デバイス)の構造パラメータ、励起源、および初期場状態が提供されるシミュレーションが最初に設定される。前述したように、場状態は、構造パラメータに基づいて励起源に応答して更新される。より具体的には、更新動作はφによって与えられ、ここで、i=1,…nに対して、xi+1=φ(xi,bi,z)である。ここで、nは、タイムフォワードシミュレーションに対する時間ステップの総数(例えば、複数の時間ステップ)に対応し、xiは、時間ステップiにおけるシミュレート環境の場応答(複数のボクセルの各々の電場および磁場に関連付けられた場値)に対応し、biは、時間ステップiにおけるシミュレート環境の励起源(複数のボクセルの各々の電場および磁場に関連付けられたソース値)に対応し、zは、電磁デバイスのトポロジおよび/または材料特性を説明する構造パラメータに対応する。
【0049】
FDTD法を使用すると、更新動作は具体的には、次のように記載される。
【数1】
すなわち、FDTD更新は、場およびソースの項に関して線形である。具体的には、
【数2】
は線形演算子であり、これらは、構造パラメータzに依存し、それぞれ場x
iおよびソースb
iに作用する。ここで、
【数3】
であると想定され、ここで、Nは、タイムフォワードシミュレーションにおけるFDTD場成分の数である。付加的に、損失演算は、L=(x
i,…,x
n)によって与えられ、これは、計算された場を入力として取り、低減および/または最小化することができる単一の実数値スカラー(例えば、損失値)を生成する。
【0050】
電磁デバイスの構造パラメータを修正または他の様態で最適化するという観点から、生成する関連量は、
【数4】
であり、これは、電磁デバイスの構造パラメータの変化に関する損失値の変化を記述するために使用され、
図6Aに例示されている「構造勾配」として示される。
【0051】
図6Bは、本開示の一実施形態による、タイムフォワードシミュレーションのための更新動作とバックプロパゲーションとの間の関係を示すチャート780である。より具体的には、
図6Bは、構造勾配
【数5】
の計算に関与する動作シミュレーションおよび随伴シミュレーションの関係を要約しており、構造勾配は、
【数6】
を含む。動作シミュレーションの更新動作714は、i回目における複数のボクセルの場値713、x
iを、場値715、x
i+1に対応する次の時間ステップ(すなわち、i+1時間ステップ)に更新する。勾配755は、少なくとも部分的に、バックプロパゲーション(例えば、時間的に逆方向の更新動作756)の
【数7】
を計算するために利用され、これは、勾配769と組み合わされて、少なくとも部分的に、構造勾配
【数8】
を計算するために使用され、
【数9】
は、損失値Lに対する各場の寄与である。これは偏導関数であり、したがって、x
i→x
i+1の因果関係は考慮していないことに留意されたい。したがって、x
i→x
i+1の関係を包含する
【数10】
が利用される。損失勾配
【数11】
も、構造勾配
【数12】
の計算に使用することができ、損失値Lに関する場の全導関数に対応する。特定の時間ステップiにおける損失勾配
【数13】
の合計に等しい。最後に、場勾配に対応する
【数14】
が使用され、これは、って与えられる、各時間/更新ステップから
【数15】
への寄与であり、
【数16】
は以下によって与えられる:
【数17】
完全を期すために、合計
【数18】
における初回の完全な形は、以下によって表現される:
【数19】
式(1)のよって説明されているようなφの定義に基づいて、
【数20】
であることに留意されたい。これを式(3)に代入して、バックプロパゲーションのための随伴更新(例えば、更新動作756などの更新動作)に到達することができる。これは、以下のように表現することができる:
【数21】
または数5として表すことができる。
【数22】
随伴更新は、後の時間ステップから前の時間ステップへの損失勾配のバックプロパゲーションであり、
【数23】
に対するバックワード解と呼ばれることがある。構造勾配の合計における第2項
【数24】
は、式(1)によって記述されるφの特定の形態の、
【数25】
として示される。
【0052】
上記で説明したプロセスは、コンピュータソフトウェアおよびハードウェアの観点から説明されている。説明された技法は、機械によって実行されると、説明された動作を機械に実行させる、有形のまたは非一時的な機械(例えば、コンピュータ)可読記憶媒体内で具現化される機械実行可能命令を構成し得る。さらに、プロセスは、特定用途向け集積回路(「ASIC」)など、またはその他のハードウェア内で具体化され得る。
【0053】
有形の機械可読記憶媒体は、機械(例えば、コンピュータ、ネットワークデバイス、個人情報端末、製造ツール、1つ以上のプロセッサのセットを備えるいずれかのデバイスなど)がアクセス可能な非一時的形態の情報を提供(すなわち、記憶)する任意のメカニズムを含む。例えば、機械可読記憶媒体は、記録可能/記録不可能な媒体(例えば、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスなど)を含む。
【0054】
要約中に記載されているものを含む、本発明の図示された実施形態の上記の記載は、網羅的であること、または本発明を開示された正確な形態に限定することを意図していない。本発明の特定の実施形態、およびその実施例は、例示的目的のために本明細書に記載されているが、当業者が認識するように、本発明の範囲内で様々な修正が可能である。
【0055】
これらの修正は、上記の詳細な説明に照らして、本発明に対して行うことができる。以下の特許請求の範囲で使用される用語は、本発明を明細書に開示された特定の実施形態に限定するものと解釈されるべきではない。むしろ、本発明の範囲は、以下の特許請求の範囲によって完全に決定されるべきであり、それらは、特許請求項解釈の確立された原則に従って解釈されるべきである。
【手続補正書】
【提出日】2022-01-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
機械によって実行されると、前記機械に、動作を実施させる命令を提供する少なくとも1つの機械アクセス可能記憶媒体であって、前記動作が、
製造モデルを用いて物理デバイスの製造シミュレーションを実行することであって、前記製造モデルは、入力として製造仕様を受け取り、前記製造シミュレーションに応答して前記物理デバイスの構造設計を出力する、物理デバイスの製造シミュレーションを実行することと、
前記物理デバイスのシミュレート環境を伝播する場応答をシミュレートする設計モデルを用いて、前記物理デバイスの動作シミュレーションを実行することと、
前記製造モデルから出力された前記構造設計を前記設計モデルに前方カスケードして、前記動作シミュレーションの前記シミュレート環境を確立することと、
前記設計モデルを通じて性能損失誤差を逆伝播することであって、前記性能損失誤差が、性能損失値を決定するために使用される性能損失関数に基づいて生成される、性能損失誤差を逆伝播することと、
前記性能損失誤差の前記逆伝播からの出力を前記製造モデルに逆カスケードすることと、
1つ以上の第1の勾配を生成するために、前記製造モデルを通じて構造設計誤差を逆伝播することであって、前記構造設計誤差が、前記性能損失誤差の前記逆伝播からの前記出力に基づいて生成される、構造設計誤差を逆伝播することと、
前記1つ以上の第1の勾配に基づいて前記製造仕様を修正することと
を含む、少なくとも1つの機械アクセス可能記憶媒体。
【請求項2】
前記性能損失誤差の前記逆伝播からの前記出力が、前記設計モデルから出力されている1つ以上の第2の勾配を含み、前記第2の勾配が前記性能損失誤差の前記逆伝播に応答して生成され、前記構造設計誤差が前記第2の勾配に基づき、前記製造仕様が、少なくとも前記性能損失値を低減するように修正される、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項3】
前記構造設計誤差が前記設計モデルから出力される前記第2の勾配を含み、前記第2の勾配が、前記性能損失値の、前記物理デバイスの構造変化に対する感受性測度を含む、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項4】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記構造設計を修正し、修正構造設計を出力するために、前記第2の勾配を使用して勾配降下アルゴリズムを実施することと、
前記修正構造設計を目標構造設計と比較する製造損失関数を用いて、前記構造設計誤差を生成することと
を含む、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項5】
前記製造損失関数が、前記物理デバイスを製造するときの歩留まり測度、前記物理デバイスを製造するときのコスト測度、または前記物理デバイスを製造するときの時間測度のうちの1つ以上に関連するペナルティ測度を含む、請求項4に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項6】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記製造モデルの実行、前記設計モデルの実行、前記性能損失誤差の逆伝播、および前記構造設計誤差の逆伝播を反復することと、
勾配降下アルゴリズムを使用して、各反復間で前記製造仕様を修正することと
を含む、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項7】
前記製造仕様を修正することが、前記製造シミュレーションの製造パラメータを最適化する前記物理デバイスの製造ステップを更新することを含み、前記第1の勾配が、製造損失関数から生成される製造損失値に対する前記製造ステップの感受性測度を表す、請求項2に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項8】
前記構造設計誤差を、製造損失関数からの第1の寄与と、前記設計モデルから出力される前記第2の勾配からの第2の寄与の重み付き組み合わせとして生成することをさらに含む、請求項7に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項9】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記製造モデルの実行、前記設計モデルの実行、前記性能損失誤差の逆伝播、および前記構造設計誤差の逆伝播の選択される反復間で、前記重み付き組み合わせの重みを調整することを含む、請求項8に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項10】
前記シミュレート環境が、N次元空間内の対応する位置にある前記物理デバイスの1つ以上の構造パラメータを各々記述するボクセルのアレイを含み、前記設計モデルを用いて前記動作シミュレーションを実行することが、励起源に応答して前記シミュレート環境を伝播し、前記ボクセルと相互作用する前記場応答をシミュレートすることを含み、前記場応答が、前記構造パラメータの影響を受ける、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項11】
前記製造モデルが、前記物理デバイスの実際の製造プロセスの微分可能な特性を含み、前記設計モデルが、前記物理デバイスの動作の微分可能な特性を含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項12】
前記少なくとも1つの機械アクセス可能記憶媒体が、前記機械によって実行されると、前記機械に、さらなる動作を実施させる命令をさらに提供し、前記さらなる動作が、
前記物理デバイスの出力における前記場応答を計算することと、
前記物理デバイスの前記出力における前記場応答に基づいて、シミュレート性能パラメータを生成することと、
前記シミュレート性能パラメータを目標性能パラメータと比較する性能損失関数に基づいて、前記性能損失誤差を生成することと
を含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項13】
前記性能損失誤差を逆伝播することが、損失勾配を逆伝播することを含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項14】
前記製造モデルを用いて前記物理デバイスの前記製造シミュレーションを実行することが、1つ以上の製造プロセスをシミュレートすることを含む、請求項1に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項15】
物理デバイスを製造するための製造ステップを最適化するコンピュータ実施方法であって、
製造モデルを用いて前記物理デバイスの製造シミュレーションを実行することであって、前記製造モデルは、入力として製造仕様を受け取り、前記製造シミュレーションに応答して前記物理デバイスの構造設計を出力する、物理デバイスの製造シミュレーションを実行することと、
前記物理デバイスのシミュレート環境を伝播する場応答をシミュレートする設計モデルを用いて、前記物理デバイスの動作シミュレーションを実行することと、
前記製造モデルから出力された前記構造設計を前記設計モデルに前方カスケードして、前記動作シミュレーションの前記シミュレート環境を確立することと、
前記設計モデルを通じて性能損失誤差を逆伝播することであって、前記性能損失誤差が、性能損失値を決定するために使用される性能損失関数に基づいて生成される、性能損失誤差を逆伝播することと、
前記性能損失誤差の前記逆伝播からの出力を前記製造モデルに逆カスケードすることと、
1つ以上の第1の勾配を生成するために、前記製造モデルを通じて構造設計誤差を逆伝播することであって、前記構造設計誤差が、前記性能損失誤差の前記逆伝播からの前記出力に基づいて生成される、構造設計誤差を逆伝播することと、
前記1つ以上の第1の勾配に基づいて前記製造仕様を修正することと
を含む、コンピュータ実施方法。
【請求項16】
前記性能損失誤差の前記逆伝播からの前記出力が、前記設計モデルから出力されている1つ以上の第2の勾配を含み、前記第2の勾配が前記性能損失誤差の前記逆伝播に応答して生成され、前記構造設計誤差が前記第2の勾配に基づき、前記製造仕様が、少なくとも前記性能損失誤差を低減するように修正される、請求項15に記載のコンピュータ実施方法。
【請求項17】
前記構造設計誤差が前記設計モデルから出力される前記第2の勾配を含み、前記第2の勾配が、前記性能損失値の、前記物理デバイスの構造変化に対する感受性測度を含む、請求項16に記載のコンピュータ実施方法。
【請求項18】
前記構造設計を修正し、修正構造設計を生成するために、前記第2の勾配を使用して勾配降下アルゴリズムを実施することと、
前記修正構造設計を目標構造設計と比較する製造損失関数を用いて、前記構造設計誤差を生成することとを含む、請求項16に記載のコンピュータ実施方法。
【請求項19】
前記製造損失関数が、前記物理デバイスを製造するときの歩留まり測度、前記物理デバイスを製造するときのコスト測度、または前記物理デバイスを製造するときの時間測度のうちの1つ以上に関連するペナルティ測度を含む、請求項18に記載のコンピュータ実施方法。
【請求項20】
前記製造モデルの実行、前記設計モデルの実行、前記性能損失誤差の逆伝播、および前記構造設計誤差の逆伝播を反復することと、
勾配降下アルゴリズムを介して、各反復間で前記製造仕様を修正することと
を含む、請求項16に記載のコンピュータ実施方法。
【請求項21】
前記製造仕様を修正することが、前記製造シミュレーションの製造パラメータを最適化する前記物理デバイスの製造ステップを更新することを含み、前記第1の勾配が、製造損失関数から生成される製造損失値に対する前記製造ステップの感受性測度を表す、請求項16に記載のコンピュータ実施方法。
【請求項22】
前記構造設計誤差を、製造損失関数からの第1の寄与と、前記設計モデルから出力される前記第2の勾配からの第2の寄与の重み付き組み合わせとして生成することをさらに含む、請求項21に記載のコンピュータ実施方法。
【国際調査報告】