IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エックス デベロップメント エルエルシーの特許一覧

特表2024-540191設計ルール準拠のための機械学習ベースのレイアウトナッジング
<>
  • 特表-設計ルール準拠のための機械学習ベースのレイアウトナッジング 図1
  • 特表-設計ルール準拠のための機械学習ベースのレイアウトナッジング 図2
  • 特表-設計ルール準拠のための機械学習ベースのレイアウトナッジング 図3
  • 特表-設計ルール準拠のための機械学習ベースのレイアウトナッジング 図4
  • 特表-設計ルール準拠のための機械学習ベースのレイアウトナッジング 図5
  • 特表-設計ルール準拠のための機械学習ベースのレイアウトナッジング 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】設計ルール準拠のための機械学習ベースのレイアウトナッジング
(51)【国際特許分類】
   G06F 30/392 20200101AFI20241024BHJP
   G06F 30/27 20200101ALI20241024BHJP
   G06F 115/12 20200101ALN20241024BHJP
【FI】
G06F30/392
G06F30/27
G06F115:12
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024525707
(86)(22)【出願日】2022-08-30
(85)【翻訳文提出日】2024-06-28
(86)【国際出願番号】 US2022042019
(87)【国際公開番号】W WO2023075923
(87)【国際公開日】2023-05-04
(31)【優先権主張番号】17/516,476
(32)【優先日】2021-11-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】アプテ,ラジ
(72)【発明者】
【氏名】ベフロージ,サイラス
(72)【発明者】
【氏名】ヒール,キャスリン
(72)【発明者】
【氏名】ルイス,オーウェン
(72)【発明者】
【氏名】パン,ジーガン
(72)【発明者】
【氏名】ルイック,ディノ
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146DC03
5B146GC12
(57)【要約】
【課題】 機能的に一貫性のある製造可能な集積回路レイアウトを生成することである。
【解決手段】 集積回路レイアウトを生成するためのシステム及び方法の実施形態が、本明細書に記載される。集積回路レイアウトを生成するためのコンピュータ実装方法は、集積回路の第1のレイアウトを受信することと、第1のレイアウトを複数の異なるパッチにセグメント化することであって、複数のパッチの各パッチは、第1のレイアウトの離散部分を記述する、第1のレイアウトをセグメント化することと、複数のパッチのうちの非準拠パッチを識別することであって、非準拠パッチは、集積回路の製造を管理する設計ルールに違反している、非準拠パッチを識別することと、機械学習モデルを使用して非準拠パッチの変換を生成することと、変換と第1のレイアウトとを使用して第2のレイアウトを生成することであって、第2のレイアウトは、設計ルールに準拠する、第2のレイアウトを生成することと、を含む。
【選択図】 図2
【特許請求の範囲】
【請求項1】
集積回路レイアウトを生成するためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
集積回路のための第1のレイアウトを受信することと、
前記第1のレイアウトを複数の異なるパッチにセグメント化することであって、前記複数のパッチの各パッチは、前記第1のレイアウトの離散部分を記述する、前記第1のレイアウトをセグメント化することと、
前記複数のパッチのうちの非準拠パッチを識別することであって、前記非準拠パッチは、前記集積回路の製造を管理する設計ルールに違反している、前記非準拠パッチを識別することと、
機械学習モデルを使用して前記非準拠パッチの変換を生成することと、
前記変換及び前記第1のレイアウトを使用して第2のレイアウトを生成することであって、前記第2のレイアウトは、前記設計ルールに準拠する、前記第2のレイアウトを生成することと、を含む、コンピュータ実装方法。
【請求項2】
前記非準拠パッチは、第1のパッチであり、前記変換は、第1の変換であり、前記設計ルールは、第1の設計ルールであり、前記コンピュータ実装方法は、
前記複数のパッチのうちの第2のパッチを識別することであって、前記第2のパッチは、前記集積回路の前記製造を管理する第2の設計ルールに違反しており、前記第2のパッチは、前記第1のパッチとは異なる、前記第2のパッチを識別することと、
前記機械学習モデルを使用して前記第2のパッチの第2の変換を生成することと、
前記第1の変換及び前記第2の変換を使用してグローバル変換を生成することと、を更に含み、
前記第2のレイアウトを生成することは、前記グローバル変換を使用して前記第1のレイアウトを修正することを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記グローバル変換を生成することは、
前記第1の変換及び前記第2の変換を、前記集積回路の機能を保存するように構成されたルールベースモデルに入力することと、
前記ルールベースのモデルによって、前記第1の変換、前記第2の変換、又は前記第1の変換と前記第2の変換の両方を前記グローバル変換に含めることを選択することと、
前記ルールベースのモデルを使用して前記グローバル変換を生成することと、を含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記非準拠パッチは、複数のポリゴンを定義し、前記変換は、前記第1のレイアウトに対する前記複数のポリゴンのうちのポリゴンの修正を記述する、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記変換は、前記ポリゴンのエッジの変位、前記エッジにおけるギャップの導入、又は前記エッジにおける頂点の導入を記述する、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記機械学習モデルは、畳み込みネットワークモデルであり、前記変換を生成することは、
前記非準拠パッチの画像を、前記画像からの前記変換を予測するように訓練された前記畳み込みネットワークモデルに入力することと、
前記畳み込みネットワークモデルを使用して前記変換を予測することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記機械学習モデルを訓練することを更に含み、前記訓練することは、
設計ペアの訓練セットにアクセスすることであって、各設計ペアは、準拠パッチと、非準拠パッチと、前記非準拠パッチを生成する前記準拠パッチの摂動を記述する摂動ベクトルと、を含む、前記設計ペアの前記訓練セットにアクセスすることと、
前記非準拠パッチの非準拠画像を前記機械学習モデルに入力することと、
前記機械学習モデルを使用して逆変換を予測することと、
前記逆変換及び前記摂動ベクトルを使用して訓練信号を生成することと、
前記訓練信号を使用して前記機械学習モデルの1つ以上の学習されたパラメータを修正することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
集積回路製造プロセスのための設計ルールのセットに関連付けられた第2のレイアウトファイルを受信することと、
前記第2のレイアウトファイルを使用して複数の準拠パッチを定義することであって、前記複数の準拠パッチの各準拠パッチは、前記設計ルールのセットに準拠する、前記複数の準拠パッチを定義することと、
前記複数の準拠パッチのうちの1つの準拠パッチを使用して摂動パッチを生成することと、
前記摂動パッチが前記設計ルールのセットのうちの1つ以上の設計ルールに違反していると判定することと、
前記準拠パッチと前記摂動パッチとをリンクする前記摂動ベクトルを定義することと、
前記準拠パッチ、前記摂動パッチ、及び前記摂動ベクトルを使用して、前記設計ペアのセットのうちの設計ペアを生成することと、を更に含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記非準拠パッチは、前記集積回路の物理領域を記述する、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記非準拠パッチは、前記第1のレイアウトによって記述され、前記集積回路によって実装される論理機能の物理的実装形態を記述する、請求項1に記載のコンピュータ実装方法。
【請求項11】
前記変換は、前記変換によって影響を受ける前記集積回路の層、前記層における前記変換のロケーション、及び前記変換の範囲を記述する、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記変換は、前記非準拠パッチのポリゴンのエッジでアドレス指定される、請求項11に記載のコンピュータ実装方法。
【請求項13】
前記第1のレイアウト及び第2のレイアウトは、機能的に一貫性がある、請求項1に記載のコンピュータ実装方法。
【請求項14】
前記第2のレイアウトを対話型設計環境の一部としてディスプレイに出力することを更に含む、請求項1に記載のコンピュータ実装方法。
【請求項15】
前記非準拠パッチを識別することは、設計ルールチェックエンジンを使用して前記設計ルールに対して前記複数のパッチをチェックすることを含む、請求項1に記載のコンピュータ実装方法。
【請求項16】
機械によって実行されると、前記機械に、動作を実施させる命令を提供する少なくとも1つの機械アクセス可能記憶媒体であって、前記動作が、
集積回路のための第1のレイアウトを受信することと、
前記第1のレイアウトを複数の異なるパッチにセグメント化することであって、前記複数のパッチの各パッチは、前記第1のレイアウトの離散部分を記述する、前記第1のレイアウトをセグメント化することと、
前記複数のパッチのうちの非準拠パッチを識別することであって、前記非準拠パッチは、前記集積回路の製造を管理する設計ルールに違反している、前記非準拠パッチを識別することと、
機械学習モデルを使用して前記非準拠パッチの変換を生成することと、
前記変換及び前記第1のレイアウトを使用して第2のレイアウトを生成することであって、前記第2のレイアウトは、前記設計ルールに準拠する、前記第2のレイアウトを生成することと、を含む、少なくとも1つの機械アクセス可能記憶媒体。
【請求項17】
前記非準拠パッチは、第1のパッチであり、前記変換は、第1の変換であり、前記設計ルールは、第1の設計ルールであり、前記命令は、前記機械によって実行されると、前記機械に、
前記複数のパッチのうちの第2のパッチを識別することであって、前記第2のパッチは、前記集積回路の前記製造を管理する第2の設計ルールに違反しており、前記第2のパッチは、前記第1のパッチとは異なる、前記第2のパッチを識別することと、
前記機械学習モデルを使用して前記第2のパッチの第2の変換を生成することと、
前記第1の変換及び前記第2の変換を使用してグローバル変換を生成することと、を含む動作を更に実施させ、
前記第2のレイアウトを生成することは、前記グローバル変換を使用して前記第1のレイアウトを修正することを含む、請求項16に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項18】
前記グローバル変換を生成することは、
前記第1の変換及び前記第2の変換を、前記集積回路の機能を保存するように構成されたルールベースモデルに入力することと、
前記ルールベースのモデルによって、前記第1の変換、前記第2の変換、又は前記第1の変換と前記第2の変換の両方を前記グローバル変換に含めることを選択することと、
前記グローバル変換を前記ルールベースモデルの出力として生成することと、を含む、請求項17に記載の少なくとも1つの機械アクセス可能な記憶媒体。
【請求項19】
前記非準拠パッチは、複数のポリゴンを定義し、前記変換は、前記複数のポリゴンのうちのポリゴンのエッジの変位、前記エッジにおけるギャップの導入、又は前記エッジにおける頂点の導入を記述する、請求項16に記載の少なくとも1つの機械アクセス可能記憶媒体。
【請求項20】
前記変換を生成することは、
前記非準拠パッチの画像を、前記画像から前記変換を予測するように訓練された畳み込みネットワークモデルに入力することと、
前記畳み込みネットワークモデルを使用して前記変換を予測することと、を含む、請求項16に記載の少なくとも1つの機械アクセス可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年11月1日に出願された米国特許出願第17/516,476号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
(発明の分野)
本開示は、概して、集積回路設計に関し、限定はしないが、特に、ベンダプロセスノード設計ルールに準拠して、機能的に一貫性のある製造可能な集積回路レイアウトを生成するための技術に関する。
【背景技術】
【0003】
現代の集積回路レイアウトは、複数の物理層又は材料層を含んでいる。各層は、レイアウトにおいてバイナリマスクとして表されている。マスクは、フォトレジスト材料がウェハ製造中に露光される位置を示す。このようにして、マスクは、半導体集積回路内の材料の有無を記述している。集積回路の製造は、典型的には、複数の堆積及び除去ステップを含み、その各々は、1つ以上のバイナリマスクによって記述することができる。全体的なレイアウトは、半導体層に堆積された導電性材料、半導体材料、及び絶縁材料の位置を記述し、ナノメートルのオーダーで正確であり得る。したがって、製造エラーは、集積回路の機能を損なう可能性があり、製造プロセスの歩留まりに影響を及ぼす可能性がある。
【0004】
各半導体製造システムは、製造プロセスのばらつきと、集積回路が設計通りに機能する必要性とから生じる制約を集積回路レイアウトに課している。「ベンダプロセスノード」と称される所与のシステム上で製造可能であるために、レイアウトは、そのシステムに特有の設計ルールに準拠する必要がある。設計ルールは、プロセスノードによって課される制約を、例えば、ソフトウェアで自動化することができる論理(「電子設計自動化」及び「設計ルールチェック」と称される)として符号化する。例示的な例では、集積回路レイアウトは、物理的な集積回路のナノスケールジオメトリを形成する光リソグラフィプロセスの解像度によって制限され得る。
【0005】
機械学習モデルは、ラベル付けされた訓練セットを使用する教師あり学習を含む種々の方法で訓練される。集積回路設計は、設計プロセスにおける人間の専門知識の完全な関与と、設計ルールの基礎となる独自の光リソグラフィシステムデータに対するアクセス制限とに起因して、機械学習モデルの開発に対する課題を提示している。結果として、訓練データは、例えば、分類器モデルを訓練するための教師なし方法のために、公的に利用可能な準拠レイアウトに限定される。場合によっては、ラベル付けされた準拠レイアウト及び非準拠レイアウトの限られたデータセットが、教師あり学習技術を可能にする製造業者によって利用可能にされる。したがって、機械学習モデルを訓練及び展開して、非準拠集積回路レイアウトを識別し、回路機能を維持する準拠レイアウトを生成する技術が必要とされている。
【図面の簡単な説明】
【0006】
本発明の非限定的かつ非網羅的な実施形態は、以下の図を参照して説明され、同様の参照番号は、別段の指定がない限り、様々な図全体を通して同様の部分を指す。適切な場合に図面を混乱させないように、要素の全てのインスタンスが必ずしもラベル付けされているわけではない。図面は、必ずしも縮尺通りではなく、代わりに、説明される原理を例示することに重点が置かれている。
図1】本開示の実施形態による、半導体製造システム設計ルールに準拠して、機能的に一貫性のある製造可能な集積回路レイアウトを生成するための例示的システムの概略図である。
図2】本開示の実施形態による、機械学習モデルを使用して第1のレイアウトから集積回路の準拠した第2のレイアウトを生成するための例示的なプロセスを示す概略図である。
図3】本開示の実施形態による、準拠する第2のレイアウトを生成するために機械学習モデルを訓練するための例示的なプロセスを示す概略図である。
図4】本開示の実施形態による、レイアウトファイルからラベル付き訓練データを生成するための例示的な技術を示す概略図である。
図5】本開示の実施形態による、準拠する第2のレイアウトを生成するために機械学習モデルを訓練するための例示的なプロセスにおけるデータフローを示すブロックフロー図である。
図6】本開示の実施形態による、半導体製造システム設計ルールに準拠して、機能的に一貫性のある製造可能な集積回路レイアウトを生成するための例示的なプロセスのブロックフロー図である。
【発明を実施するための形態】
【0007】
本明細書では、機械学習モデルを使用して、半導体製造システム設計ルールに準拠して機能的に一貫性のある製造可能な集積回路レイアウトを生成するためのシステム及び方法の実施形態を説明する。以下の説明では、実施形態の完全な理解を提供するために、多数の特定の詳細が記載される。しかしながら、当業者は、本明細書で説明される技術が、特定の詳細のうちの1つ以上なしで、又は他の方法、構成要素、材料などを用いて実施され得ることを認識するであろう。
【0008】
本明細書全体を通して「1つの実施形態」又は「一実施形態」というのは、実施形態に関連して記載された特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して種々の箇所における「一実施形態では(in one embodiment)」又は「一実施形態では(in an embodiment)」という句の出現は、必ずしも全てが同じ実施形態を指すとは限らない。更に、特定の特徴、構造、又は特性は、1つ以上の実施形態では任意の好適な方法で組み合わされ得る。
【0009】
各ベンダプロセスノードは、製造プロセスにおける可変性、解像度の制限、及びウェハの制限、並びに集積回路が設計通りに機能する必要性から生じる制約を集積回路レイアウトに課す。所与のシステム上で製造可能であるために、レイアウトは、そのシステムに特有の設計制約に準拠する必要がある。設計ルールは、製造プロセスにおいて課される制約を、例えば、ソフトウェアで自動化することができる論理(「電子設計自動化」及び「設計ルールチェック」と称される)として符号化する。例示的な例では、集積回路レイアウトは、物理的な集積回路のナノスケールジオメトリを形成する光リソグラフィプロセスの解像度によって制限され得る。
【0010】
集積回路レイアウト特徴の特徴的な寸法は、2012年の22nmプロセスノードから、2014年の14nmプロセスノードへ、2017年の10nmプロセスノードへと、開発中のシングルナノメートル及びサブナノメートルプロセスノードとともに、徐々にスケールが縮小している。それぞれの進歩は、多層レイアウト、層間構造、垂直特徴、及び堆積システム動作窓の物理的限界に近づく寸法などの追加の複雑さを伴う。その結果、設計制約の数及び複雑さが増加するにつれて、人間の設計者にとって設計ルールを理解することがますます困難になってきている。
【0011】
回路レイアウトの設計ルールチェック及び修正に対する典型的な手法は、第2のレイアウト特徴を識別するための固定アルゴリズムと結合された人間の設計者の専門知識に依存する。かかる手法は、設計制約間の相互作用のレベルが高度に結合された設計ルールをもたらすときに非実用的になる。設計ルールに基づいて機械学習モデルを訓練することにより、別の手法が提示される。人工ニューラルネットワークなどの機械学習モデルは、多くの相互に関連するパラメータを有するシステムによく適しているが、設計プロセスにおける人間の専門知識の完全な関与のために、及び設計ルールの基礎となる独自の光リソグラフィシステムデータに対するアクセス制限のために、集積された回路設計は、機械学習モデルの開発に対する課題を表している。したがって、機械学習モデルを訓練及び展開して、非準拠集積回路レイアウトを識別し、製造可能な第2のレイアウトの1つ以上のバリエーションを生成し、人間の監督の有無にかかわらずレイアウトを修正して、初期レイアウトの回路機能を保持する準拠レイアウトを生成する技術が必要とされている。
【0012】
機能的に一貫性があり製造可能な集積回路レイアウトを生成するためのシステム及び方法の実施形態は、準拠レイアウトの「摂動(perturbation)」と称される準拠レイアウトファイルのスパースデータセットを使用してラベル付きデータの訓練セットを生成し、訓練セットを使用して人工ニューラルネットワークを訓練し、訓練された機械学習モデルを展開して設計ルール違反を識別し、非準拠の「第1の」レイアウトの変換を生成して準拠の「第2の」レイアウトを生成するための手法を含む。例示的な例では、集積回路の第1のレイアウトが、例えば人間の設計者による検証のためにコンピュータシステムに提出される。コンピュータシステムは、第1のレイアウトを個別のパッチにセグメント化し、各パッチを設計ルールに対して検証する。非準拠パッチが処理され、システムは、設計ルールの特定のセットに対して訓練された機械学習モデルを使用して非準拠パッチの変換を生成する。第1のレイアウトに変換を適用して、設計ルールに準拠する第2のレイアウトを出力する。
【0013】
本明細書で説明する技術は、変換が第1のレイアウトの性能特性との機能的一貫性を維持するのに十分に小さくなり得るという点で、追加の設計最適化に従い得る。しかしながら、場合によっては、変換及び/又は第2のレイアウトを生成するために適用される機械学習方法は、最適化プロセス中に繰り返すことができ、例えば、複数の最適化更新が完了するたびに繰り返すことができる。機械学習方法はまた、集積回路の性能を維持するための手法として、機能的な一貫性を改善するために、物理的又は機能的なシミュレーションで補完され得る。
【0014】
有利には、本明細書に記載される技術は、少なくとも部分的に、ラベル付けされた訓練セットを生成するための1つ以上の特定のデータ準備手法を組み込むことによって、集積回路レイアウトの設計ルールチェックを改善し、そうでなければ、ラベル付けされたデータは利用不可能となる。更に、機械学習モデルは、固定アルゴリズム技術とは対照的に、新しい訓練データが準備されるときに再訓練され得る。したがって、説明されるシステム及び方法は、任意の半導体製造プロセスのために開発されることができる適応ツールを表し、そこからは、スパースデータのみが利用可能であり、これは、集積回路設計の性能、ロバスト性、並びに計算及び人的リソース需要の実質的改良を表す。
【0015】
図1は、本開示の実施形態による、半導体製造システム設計ルールに準拠して、機能的に一貫性のある製造可能な集積回路レイアウトを生成するための例示的なシステム100の概略図である。例示的なシステム100は、1つ以上のサーバ105、1つ以上のクライアントコンピューティングデバイス110、1つ以上の半導体製造システム115、及びネットワーク120を含む。サーバ(単数又は複数)105は、訓練データ130の第1のデータベース125と、設計ルール140の第2のデータベース135と、1つ以上の訓練された機械学習モデル145と、ソフトウェア155において符号化された1つ以上の未訓練機械学習モデル150と、を含む。ソフトウェア155の一部として、サーバ(単数又は複数)105は、コンピュータ回路160を使用してモデル145~150を訓練及び/又は展開するための命令を含む。いくつかの実施形態では、サーバ(単数又は複数)105は、限定はしないが、GDSII又はOASISを含む1つ以上のデータベースファイルフォーマットで記憶され得る、集積回路レイアウトファイルとも称されるレイアウトファイル170を記憶する第3のデータベース165を更に含む。
【0016】
以下の説明は、設計ルール140に準拠した集積回路レイアウトを生成するためのシステムの一部として機械学習モデル145~150を訓練及び/又は展開するためのネットワーク化されたシステムを実装する本開示の実施形態に焦点を当てている。しかしながら、本開示のいくつかの実施形態は、ラップトップ又はパーソナルコンピュータなどのクライアントコンピューティングデバイス(単数又は複数)110上で実装されているプロセスの一部又は全部を含むことが想定される。例えば、未訓練モデル150の訓練は、サーバ(単数又は複数)105を使用して実装されてもよく、一方で、訓練済みモデル145は、ネットワーク120を介してクライアントコンピューティングデバイス110に転送されてもよく、クライアントコンピューティングデバイス110上に直接展開されてもよい。同様に、例示的なシステム100の構成要素は、ユニタリシステムではなく、分散コンピューティングシステム(例えば、クラウドシステム)上でホスト及び/又は記憶されてもよい。例えば、第1のデータベース125、第2のデータベース135、第3のデータベース165、及び/又はコンピュータ回路160は、訓練データ130、設計ルール140、ソフトウェア155、及び/又はレイアウトファイル170の部分が、1つ以上の物理的ロケーションにおいて分散システムシステムによって記憶又は実行され得るように、分散コンピューティングにわたって実装され得る。
【0017】
例示的なシステム100の動作の例示的な例では、クライアントコンピューティングデバイス110のユーザは、製造システム115を使用して製造される集積回路を記述するレイアウト210(図2を参照)を準備する。レイアウト210は、クライアントコンピューティングデバイス110上に記憶及び/又はホストされ得る自動設計ルールチェックソフトウェアを使用して調べられる。追加的に又は代替的に、レイアウト210は、ネットワーク120を介してサーバ(単数又は複数)105に転送されてもよく、設計ルールチェックエンジンは、サーバ(単数又は複数)105上でホスト及び/又は記憶される。レイアウト210が製造システム115に対応する設計ルール140に準拠する場合、レイアウト210は、例えば、ウェハスケール半導体製造プロセス上で物理的な集積回路を製造する際に使用するために製造システム115に転送されてもよい。
【0018】
製造システム115は、集積回路レイアウトを処理し、レイアウトデータをマスクデータに変換する、レイアウト設計と半導体ファウンドリとの間のパイプラインにおける複雑なシステムの一例である。マスクデータは、物理的な半導体デバイス製造のフォトリソグラフィプロセスで使用されるフォトマスクを生成するために使用される。例示的なシステム100の文脈において、製造システム(単数又は複数)115は、視覚的な説明を簡単にするために、ネットワークインタフェースコンピュータ(例えば、サーバ)によって表される。典型的には、複数のプロセス(例えば、逆リソグラフィ、光近接効果補正、プロセス補正コード)は、集積回路のための設計ルール140の第2のレイアウトがファウンドリに送信される時点を指す「テープアウト」と、ウェハ上の準拠集積回路の製造との間に完了される。
【0019】
しかし、レイアウト210が設計ルール140に違反している場合、レイアウト210を製造することはできない。代わりに、ソフトウェア155は、変換済みレイアウト235を生成し、レイアウト210の機能を保存するように、訓練済みモデル(単数又は複数)145を実装する。次いで、変換済みレイアウト235が出力される。出力することは、限定はしないが、ネットワーク120を介して製造システム(単数又は複数)115に転送すること、及び/又は変換済みレイアウト235をレイアウトファイル170として第3のデータベース165に記憶することを含むことができる。いくつかの実施形態では、変換済みレイアウト235は、製造システム(単数又は複数)115に伝送され、半導体ウェハを製造するために使用される。いくつかの実施形態では、第1のレイアウト210及び第2のレイアウト235の両方が、レイアウトファイル170として第3のデータベース165に記憶される。
【0020】
しかしながら、いくつかの実施形態では、更新された設計ルール140及び/又は新しい設計ルール140は、製造システム(単数又は複数)115から受信され、例えば、未訓練モデル150は、訓練済みモデル145がまだ利用可能ではない新しい製造システム115のために訓練される。また、半導体処理技術は、新しいデバイス及び技術が開発されるにつれて定期的に改善されるため、例示的なシステム100は、訓練済みモデル145の再訓練と、設計ルール140に対する変更を伴う新しいモデル145~150の準備とをサポートすることが企図される。
【0021】
以下の段落でより詳細に説明するように、訓練済みモデル145は、レイアウト210を処理し、レイアウト210に適用される1つ以上の変換を記述するグローバル変換を生成して、それを設計ルール140に準拠させることによって、変換済みレイアウト235を生成する。生成されると、レイアウト210及び変換済みレイアウト235は、訓練データ130として記憶されてもよく、かつ/又は例示的なシステム100の他の構成要素に転送されてもよい。
【0022】
図2は、本開示の実施形態による、機械学習モデルを使用してレイアウト210から集積回路の変換済みレイアウト235を生成するための例示的なプロセス200を示す概略図である。例示的なプロセス200は、限定はしないが、サーバ(単数又は複数)105及び/又はクライアントコンピューティングデバイス(単数又は複数)110を含む、図1の例示的なシステム100の1つ以上の構成要素によって実装され得る。例示的なプロセス200は、レイアウト210にアクセスし、かつ/又はそれを受信し、パッチ215を定義し、1つ以上の変換225を生成し、出力座標ベクトル230を生成し、変換済みレイアウト235を生成するための動作201~209を含む。
【0023】
例示的なプロセス200は、コンピュータシステムによって実装される一連の動作201~209として図示されるが、動作201~209のうちの1つ以上は、省略され、並べ替えられ、又は分割されてもよいことを理解されたい。例えば、いくつかの実施形態では、動作201~203はクライアントコンピューティングデバイス(単数又は複数)110によって実装され、動作205~209はサーバ(単数又は複数)105によって実装される。いくつかの実施形態では、例示的なプロセス200は、対話型設計環境の一部として実装することができ、それによって、コンピュータシステムの人間のユーザに、レイアウト210の開発中にレイアウトへの変換を提示することができる。対話型設計環境は、訓練済みモデル145の出力をディスプレイ、端末上に、又は他の電子デバイスを通して提示する、クライアントコンピューティングデバイス(単数又は複数)110又はサーバ(単数又は複数)105上にホストされたアプリケーションなどのユーザインタフェースの一部として実装され得る。例示的なプロセス200は、既存の設計ソフトウェアと統合して補正機能を提供することができ、それによって、集積回路レイアウトを設計するために使用されるソフトウェアの性能を改善することができる。
【0024】
動作201において、コンピュータシステムは、レイアウト210を受信及び/又はアクセスする。図示されるように、レイアウト210は、物理的な集積回路の材料構成要素を構成する金属、酸化物、誘電体、又は半導体層の処理に対応するフォトレジストパターンを記述する、ポリゴン211と称される平面的な幾何学的形状に関して集積回路を表す。レイアウト210は、集積回路をともに定義し、特定の製造システム115のための設計ルール140に対して検証される1つ以上のバイナリマスクを記述するバイナリフォーマットファイルである。
【0025】
動作203において、コンピュータシステムは、レイアウト210をセグメント化し、複数の異なるパッチ215を定義する。各パッチ215は、レイアウト210の離散部分を記述する。パッチ215は、異なる特性長さスケールに対応する複数のレベルの粒度で定義することができる。例えば、細かいパッチは、設計ルール140が幾何学的制限に対処する長さスケールで定義することができる。別の例では、粗いパッチは、設計ルール140がプロセス制限に対処する長さスケールで定義され得る。このようにして、パッチ215の粒度の複数のレベルを使用して変換を準備することができる。セグメント化は、パッチ215を定義するために異なる手法を適用することができる。一例では、パッチ215は、レイアウト210によって表される集積回路の異なる物理領域を記述する。別の例では、パッチ215は、レイアウト210によって記述され、集積回路によって実装される論理機能の異なる物理的実装形態を記述する。いくつかの実施形態では、レイアウト210は、パッチ215のセットがレイアウト内で複数回繰り返されるように、基本論理機能の繰り返し実装形態を含む。有利には、1つのかかるパッチ215を補正するために生成されたローカル補正220は、他の同一のパッチ215に適用されてもよく、例示的なプロセス200の計算リソース要求を低減する。
【0026】
動作205において、パッチ215が設計ルール140に対してチェックされる。いくつかの実施形態では、設計ルール140は、ローカル制約とグローバル制約の両方を含む。ローカル制約の例には、1層ルール及び2層ルールが含まれるが、これらに限定されない。1層ルールは、例えば、レイアウト210内のポリゴン211の最小幅を指定する幅ルールを含む。別の例では、スペーシングルールは、2つの隣接するポリゴン211間の最小距離を指定する。2層ルールは、対照的に、2つの層の間の関係を指定する。例えば、囲みルールは、コンタクト又はビアなどの1つのタイプのオブジェクトが最小厚さの金属層によって覆われることを指定する。当業者によって理解されるように、幅、間隔、及び厚さの公称値は、製造技術がサブナノメートルプロセスノードに向かって進歩するにつれて、着実に減少している。したがって、製造技術が改善されるにつれて、設計ルール140は、パッチ215に対してますます精密な制限を課す。加えて、他の設計ルール140が例示的なプロセス200の一部として企図されることが理解される。前に説明したように、設計ルール140は、概して、半導体製造プロセスにおける変動性、光学プロセスの解像度限界を考慮し、集積回路の機能を維持するために、レイアウト210に対する幾何学的制約及び/又は接続性制約を指定する。
【0027】
動作205の一部として、コンピュータシステムは、パッチ215から1つ以上の非準拠パッチ220を識別する。非準拠パッチ220は、集積回路の製造を管理する少なくとも1つの設計ルール140に違反する。非準拠パッチの識別は、データベースファイル(例えば、GDSII、OASISフォーマットレイアウトファイル)を直接使用して実装することができるが、レイアウトの自動(例えば、人間の関与なし)検証のための設計ルールチェック(DRC)ソフトウェアに特有の他のファイルフォーマットを使用して実装することもできる。いくつかの実施形態では、訓練済みモデル145は、非準拠パッチ220を分類するように訓練される。例示的な例では、訓練することは、例えば、機械可読言語で製造業者が供給した設計ルールを指定するDRCルールファイルの形態で、設計ルール140を与えられた設計ルールチェックエンジンを使用することを含む。DRCチェックエンジンは、GDSIIファイル及びDRCルールファイルを読み取り、GDSIIファイルに対する設計ルールの準拠を報告することができる。DRCチェックエンジンの出力は、訓練に使用することができる。例示的なプロセス200は、4つの非準拠パッチ220を用いて示されているが、例示的なプロセス200が「N」個の局所変換225を生成することを含み得るように、その数は設計間で異なり得ることが理解され、ここで「N」は正の整数を表す。
【0028】
いくつかの実施形態では、訓練済みモデル145は、非準拠パッチ220の画像221を入力し、非準拠パッチ220を設計ルール140に準拠する準拠パッチに変換することが予測される変換225を出力するように訓練された畳み込みネットワークモデルである。この文脈では、「変換」という用語は、変換済みレイアウト235を生成するためにレイアウト210と組み合わせることができる値、ベクトルなどの値のシーケンス、又は値の行列を表す。例示的な例では、変換225は、非準拠パッチ220のポリゴン211と、ポリゴン211のエッジ及び/又は頂点と、エッジ及び/又は頂点が修正される変換225の範囲とを識別するスカラー値のベクトルであり得る。このようにして、変換は、レイアウト210の数値表現に適用することができる演算子として、変換済みレイアウト235を生成するためのレイアウト210の修正を記述することができる。
【0029】
複数の機械学習モデルアーキテクチャは、画像を取り込み、数値のベクトルを出力することができ、その畳み込みネットワークは一例であることを理解されたい。いくつかの実施形態では、訓練済みモデル145は、例えば、ビジョントランスフォーマモデルなど、画像又は画像タイプ入力を受信するように構成されたトランスフォーマモデルを含む。画像フォーマット入力の代替的に、モデル入力は、マスクレイアウトに対応する頂点及び/又はエッジを記述する座標のベクトルを含むことができる。したがって、レイアウトは、ポリゴン211の座標を含むベクトルとして指定することができる。
【0030】
ベクトルベースの入力では、訓練済みモデル145は、限定はしないが、例えば、入力ベクトル中のポリゴン211の順序に関して順序不変であることによって、入力対称性を反映するような方法で出力ベクトルを生成するように訓練されたエンコーダモデルであるか、又はそれを含むことができる。いくつかの実施形態では、訓練済みモデル145は、1つ以上のグラフニューラルネットワーク(GNN)であるか、又はそれを含むことができる。動作中、GNNは、1つのエッジタイプを使用して同じポリゴンの角を接続し、別のエッジタイプを使用して同じ層内のポリゴンを符号化し、第3のエッジタイプを使用して同じレイアウト内の層を符号化することができる。このようにして、GNNを使用して、パッチ210の粒度の1つ以上のレベルで変換225を生成することができる。
【0031】
非準拠パッチ220を訓練済みモデル145に入力することを容易にするために、動作205は、各非準拠パッチ220について画像211を生成することを含む。いくつかの実施形態では、各画像221は、ポリゴン211を真として表し、背景を偽として表すバイナリ画像である。
【0032】
訓練済みモデル145は、設計ルール140を満たし、レイアウト210との機能的一貫性を保つ非準拠パッチ221の1つ以上のポリゴン211に適用される1つ以上の変位又は他の修正を予測することによって、変換225を生成する。いくつかの実施形態では、訓練された機械学習モデル145は、単一のポリゴン211のエッジの変位を記述する変換225を生成し、非準拠パッチ220は、1つ以上のポリゴン211を含み得る。いくつかの実施形態では、変換225は、非準拠パッチ220内の1つ以上のポリゴン211に対応する複数のエッジの変位を記述する。この文脈では、「変位」という用語は、エッジに適用される並進、回転、又は他の修正を指す。例えば、変位は、ポリゴン211の寸法及び/又は位置に影響を及ぼし得る。いくつかの実施形態では、変換225は、頂点を辺に追加すること、ポリゴン211をサイズ変更すること、ポリゴン211内の辺の数を増加又は減少させること、ポリゴン211の辺を分割することを記述する。機能的一貫性の保存は、図5を参照してより詳細に説明されるように、訓練の一部として学習されてもよい。
【0033】
いくつかの実施形態において、変換225は、訓練された機械学習モデル145の出力層からのベクトルとして、訓練された機械学習モデル145によって生成される。例えば、訓練された機械学習モデル145が深層畳み込みネットワークである場合、モデルは、入力層と、出力層と、1つ以上の隠れ層とを含み得る。層の数、ニューロンの数、モデルが全結合であるかどうか、並びにモデルアーキテクチャの他の態様は、機械学習モデル145~150を開発することの一部として修正され得ることが、当業者によって理解されるであろう。更に、訓練済みモデル145は、モデルアーキテクチャの一部としてハイパーパラメータを組み込むことができ、そのチューニングは、未訓練機械学習モデル150を訓練して、設計ルール140の特定のセットに従って変換225を生成することの一部を形成することができる。
【0034】
いくつかの実施形態では、変換225は、それぞれの変換225によって影響を受ける第1のレイアウトの層、層内のそれぞれの変換225のロケーション、それぞれの変換225の範囲、それぞれの非準拠パッチ225のポリゴン211のエッジ(それぞれの変換はエッジの変位を表す)、又はそれらの組み合わせを記述することができる座標ベクトルによって記述することができる。いくつかの実施形態では、座標ベクトルは、それぞれの非準拠パッチ220に対する変換225を記述する。有利には、完全な出力画像を生成するのではなく、レイアウト210に対して座標ベクトルを生成する手法は、例えば、座標ベクトルのサイズを低減し、これは、動作205の計算リソース需要を低減することができ、変換済みレイアウト235を生成するための複数の座標ベクトルの組み合わせを含む例示的なプロセス200の後続の動作を容易にする。
【0035】
いくつかの実施形態では、複数の変換225が、例示的なプロセス200の一部として生成される。例えば、レイアウト210が複数の非準拠パッチ220を含む場合、動作205は、複数の非準拠パッチ225に適用される複数の変換225をもたらし得る。しかしながら、場合によっては、個々の非準拠パッチ220を設計ルール140に準拠させる変換225は、相互に互換性がないことがある。変換225は、各それぞれのポリゴン211への変換が設計ルール140の新たな違反をもたらす場合、相互に互換性がないことがある。例示的な例では、第1の非準拠パッチ220内の第1のポリゴン211は、狭すぎることによって幅ルールに違反しており、第2の異なる非準拠パッチ220内の第2のポリゴン211は、第2の非準拠パッチ220内の別のポリゴンに近すぎることによって間隔ルールに違反する。個々に、各ポリゴン211は、関連する設計ルールに対処するために1つ以上のエッジを変換することによって簡単に変換され得る。しかしながら、一緒に適用されるとき、第1のポリゴン及び第2のポリゴンは、互いに近すぎて、スペーシングルールに違反する。変換225はまた、各それぞれのポリゴン211に対する修正が、レイアウト210と変換済みレイアウト235との間の機能的不一致をもたらす場合、相互に互換性がなくてもよい。
【0036】
したがって、例示的なプロセス200は、動作207において変換225からグローバル変換230を生成することを含むことができる。レイアウト210が単一の非準拠パッチ220を含む場合、グローバル変換230は、変換225に対応するそれぞれの座標ベクトルであり、動作207は、グローバル変換230を用いてそれぞれの変換225の座標ベクトルを識別することを含む。動作205が、訓練された機械学習モデル145によって複数の変換225を生成することを含む場合、動作207は、個々の変換225を組み合わせてグローバル変換230を生成するための手法を含む。例えば、グローバル変換230は、各変換225を組み込むことができ、又は変換225のサブセットを組み込むことができる。
【0037】
いくつかの実施形態では、動作207は、ルールベースのモデル231、オブジェクトモデル、又はグローバル変換230に組み込む変換225のサブセットを選択するための他の技術などの、固定アルゴリズム手法を含む。例えば、ルールベースモデル231は、任意の相互に互換性のない変換225を識別するための検証チェックの一部として、設計ルール140のサブセットを含み得る。いくつかの実施形態では、ルールベースモデル231はまた、ローカルパッチレベルではなくレイアウトレベルに制約を課すグローバル設計ルール140に対して変換225を検証する。例えば、グローバル設計ルール140は、レイアウト上のエリア制約を含むことができるが、これに限定されない。
【0038】
追加的又は代替的に、ルールベースモデル231は、変換225が個別に及び/又は集合的に実装された後に、機能的一貫性を検証してもよい。いくつかの実施形態では、パッチレベルでの機能的一貫性の検証は、変換225が適用される前及び後のパッチ211内に表される構成要素の動作をシミュレートすることと、結果として生じるシミュレーション結果を比較することと、を含む。このようにして、ルールベースのモデル231は、グローバル変換230を生成するときに使用すべき変換225を選択することができる。
【0039】
例えば、パッチ211がレイアウト210の個別の機能ユニットを表す場合、ルールベースモデル231に含まれるシミュレーションは、機能ユニットの物理シミュレーションを含むことができる。いくつかの実施形態では、検証は、近接ポリゴン211間の干渉効果をシミュレートするための手法として、パッチ211の電磁特性の物理的シミュレーションを含む。例えば、第1のポリゴン211は、電場を生成する導体を表し、近位の第2のポリゴン211は、別の回路要素を表す近位の第2のポリゴン211に容量的に交差結合する回路要素を表す。このように、ルールベースモデル231の一部としての機能的一貫性の検証は、設計ルール140と、パッチ210の機能的態様を記述するメタ情報に対応する物理ルールを含むがこれに限定されない他のルールとを含むことができる。
【0040】
いくつかの実施形態では、動作207は、中間レイアウトの設計ルール140チェックの全体的な結果に焦点を当てる手法によって、グローバル変換230を生成するときに使用するための変換を選択することを含む。例えば、変換225は、単純多数決、ルーピー信頼度伝播、又は他のソフトウェア実装意思決定プロトコルを含む技術によってプール及び選択されてもよい。かかる手法は、個々の変換225が設計ルール140のチェックの結果に影響を及ぼし、機能的一貫性に影響を及ぼすかどうかを判定するための複数の反復サイクルを含む反復的なものとすることができる。
【0041】
動作209において、コンピュータシステムは、グローバル変換230をレイアウト210に適用することによって、変換済みレイアウト235を生成する。グローバル変換230は、レイアウト210に対する1つ以上の変換225を記述するため、変換済みレイアウト235は、レイアウト210内の1つ以上のポリゴン211を変換することによって生成される。前述のように、変換は、変位、収縮、伸長、又はポリゴン211の頂点の数の変更を含むことができるが、それらに限定されない。このようにして、変換済みレイアウト235は、設計ルール140を満たし、レイアウト210の機能を維持する。
【0042】
図3は、本開示の実施形態による、第2のレイアウト235を生成するために機械学習モデルを訓練するための例示的なプロセス300を示す概略図である。例示的なプロセス300は、限定はしないが、サーバ(単数又は複数)105及び/又はクライアントコンピューティングデバイス(単数又は複数)110を含む、コンピュータ実装プロセスとして、図1の例示的なシステム100の1つ以上の構成要素によって実装され得る。例示的なプロセス300は、第2のレイアウトファイル170にアクセスし、かつ/又はそれを受信し、準拠パッチ315を定義し、1つ以上の摂動ベクトル320を生成し、摂動パッチ325を生成し、逆変換330を予測するための動作301~309を含む。
【0043】
前述のように、例示的なシステム100は、未訓練モデル(単数又は複数)150から設計ルール140のために開発された訓練済みモデル(単数又は複数)145を含む。訓練技術は、教師あり、半教師あり、教師なし、又は他の手法を含む、異なるモデルアーキテクチャに対して異なることが理解される。例示的なプロセス300の説明は、ラベル付けされた訓練データを使用する教師あり訓練に焦点を当てるが、モデル145~150が追加及び/又は代替のアーキテクチャを組み込む場合、モデルアーキテクチャに適切な他の手法が使用され得ることを理解されたい。
【0044】
例示的なプロセス300は、コンピュータシステムによって実装される一連の動作301~309として図示されるが、動作301~309のうちの1つ以上は、省略され、並べ替えられ、又は分割されてもよいことを理解されたい。例えば、いくつかの実施形態では、動作301~307は、図6を参照してより詳細に説明されるように、未訓練モデル(単数又は複数)150の訓練を含む動作309とは別個のデータ準備プロセスによって実装される。いくつかの実施形態では、例示的なプロセス300は、対話型設計環境の一部として実装することができ、それによって、コンピュータシステムの人間のユーザは、訓練済みモデル145の開発中に、設計ルール140、訓練データ130、未訓練モデル150、及び/又はレイアウトファイル170と対話することができる。
【0045】
動作301において、例示的なプロセス300は、レイアウトファイル170にアクセスすること及び/又はそれを受信することを含む。レイアウトファイル170は、設計ルール140の1つ以上のセットに準拠して集積回路を記述する集積回路レイアウトファイルである。例示的なシステム100のコンテキストでは、アクセスすること及び/又は受信することは、例えば、第3のデータベース165からレイアウトファイル170にアクセスすること、クライアントコンピューティングデバイス(単数又は複数)110からレイアウトファイル170を受信すること、又は製造システム(単数又は複数)115からレイアウトファイル170を受信することを含み得るが、これらに限定されず、未訓練モデル150は、製造システム(単数又は複数)115によって直接提供されるレイアウトファイル170を使用して、製造システム(単数又は複数)115のための設計ルール140との互換性について訓練されている。例示的なプロセス300は、例えば、関連する設計ルール140を使用して未訓練モデル150を訓練することによって、製造システム(単数又は複数)115によって提供される元の設計ファイルの有無にかかわらず訓練データを生成することができることが企図される。
【0046】
動作303において、例示的なプロセス300は、レイアウトファイル170を使用して準拠パッチ315を定義することを含む。図2に示すように、準拠パッチ315は、レイアウトの離散部分領域を記述するように定義することができる。離散部分は、レイアウトの層のエリアなどの集積回路の物理的領域に対応することができる。代替的に、離散部分は、集積回路によって実装されるような、レイアウトによって記述される論理機能の物理的実装形態に対応し得る。例えば、準拠パッチ315が、特定の機能を提供するために電子的に結合される論理ゲートの組み合わせを記述する場合、個々の論理ゲートは、集積回路内で物理的に分離されてもよい。いくつかの実施形態では、準拠パッチ315は、変換が対処され得る1つ以上のエッジによって定義されるポリゴン316として設計要素を表す。
【0047】
モデル訓練のための訓練データを生成する手法の一部として、例示的なプロセス300は、第2のレイアウトファイル170から設計ペア321を生成することを任意選択的に含むことができる。この文脈において、設計ペア321は、準拠パッチ315と、非準拠パッチ319と、非準拠パッチ319を生成する準拠パッチ315の摂動を記述する摂動ベクトル320と、を含む訓練データの離散集合を指す。摂動ベクトル320は、図2の変換225と機能的に類似しているが、摂動ベクトルが設計ルール140の特定のセットに従って非準拠パッチ319を生成する(例えば、準拠パッチ315を特定の設計ルール140との準拠から外す)ことを強調するために摂動ベクトルと称される。いくつかの実施形態では、設計ペア321を表すデータは、非準拠パッチ319から準拠パッチ315を生成する変換として定義される逆摂動ベクトル323も含む。動作305の一部として、逆摂動ベクトル323を定義することは、摂動ベクトル320の逆を直接決定するためのベクトル動作を含む。いくつかの実施形態では、2つ以上の逆摂動ベクトル323が、非準拠パッチ319から準拠パッチ315を生成する変換を記述することができる。摂動の詳細な説明は、図4図5を参照して提供される。
【0048】
例示的なプロセス300は、任意選択的に、設計ペア321を訓練データ130として第1のデータベース125に記憶することを含むことができる。このようにして、例示的なプロセス300は、並列プロセスとして実装することができ、設計ペア321を生成することは、未訓練モデル(単数又は複数)150を訓練することから分離される。例えば、例示的なプロセス300は、任意選択的に、動作305と動作307とを分離することができ、第1のデータベース125から設計ペア321の訓練セットにアクセスすることを含むことができる。
【0049】
動作307において、例示的なプロセス300は、図2の画像221を参照してより詳細に説明されるように、非準拠パッチ319の画像325(「非準拠画像」とも称される)を生成することを含む。しかしながら、例示的なプロセス200とは対照的に、非準拠画像325は、レイアウト210から生成されるのではなく、準拠パッチ315の摂動から合成される。同様に、非準拠画像は、ポリゴン316を含み、その少なくとも1つは、設計ルール140の特定のセットに違反する。非準拠画像325を使用して未訓練モデル150を訓練することは、設計ルール140の特定のセットに対する変換225の予測を可能にする。
【0050】
動作309において、非準拠画像325が未訓練モデル150に入力される。図2を参照して説明したように、未訓練モデル150は、入力層及び出力層並びに1つ以上の隠れ層を組み込んだ畳み込みネットワークモデルを含む。当業者によって理解されるように、未訓練モデル150は、全結合であっても全結合でなくてもよく、過剰適合なしに逆摂動ベクトル323を最良に予測するように選択された隠れ層構造(例えば、深度、ニューロンの数、接続性など)を含み得る。
【0051】
動作309は、未訓練モデル150を使用して逆変換330を生成することを含む。未訓練モデル150は、図2を参照してより詳細に説明されるように、出力座標ベクトルとして逆変換330を生成し、準拠パッチ315を生成するために非準拠パッチ319に適用可能な変換を記述する。未訓練モデル150の出力は、その予測が未訓練モデル150の教師あり訓練の一部である摂動ベクトル320によって記述される、非準拠パッチ319と準拠パッチ315との間の関係を強調するために逆変換330と称される。
【0052】
設計ペア321、逆変換330、及び/又は非準拠画像325を含む、例示的なプロセス300の一部として生成されるデータは、並列及び/又は分散コンピューティングプロセスの一部として、1つ以上のデータストアに記憶されてもよく、したがって、例示的なプロセスの動作は、離散及び直列サブプロセスとして図示されるが、動作301~309のうちの1つ以上は、異なる物理システムに物理的に分離され得る、複数のプロセッサ上で並列に実装されてもよいことが想定される。
【0053】
図4は、本開示の実施形態による、レイアウトファイル170からラベル付き訓練データを生成するための例示的な技術400を示す概略図である。例示的な技術400は、訓練データ130を生成するために第2のレイアウトファイル170の比較的疎なセットが使用されることを可能にするコンピュータ実装プロセスを説明する。例示的な技術400は、未訓練モデル(単数又は複数)150を訓練する際に使用するために、複数の異なる第2のレイアウト420を生成するための手法として、図3を参照して説明したように、複数の摂動ベクトル410を定義することを含む。
【0054】
例示的な技術400は、レイアウトレベルで示されているが、少なくとも部分的には、摂動410がそれぞれ、変換済みレイアウト235内の1つのポリゴン315内の1つのエッジの変位、ポリゴン315内の複数のエッジの変位、ポリゴン315の変位、ポリゴン315のサイズ変更、ポリゴン315の分割、ポリゴン315への1つ以上の頂点の追加、又はそれらの組み合わせを記述し得るため、パッチレベルで同様に適用され得る。いくつかの実施形態では、摂動410は、複数のポリゴン315に適用される変換を記述することができる。ポリゴン315は、長方形として示されているが、3つ以上の頂点を含むことができる。有利には、図3に示されるように、パッチレベルで例示的な技術400を実装することは、図5を参照してより詳細に説明されるように、所与の数の利用可能なレイアウトファイル170に対する摂動410の数を増加させることによって、モデル訓練中の過剰適合のリスクを低減し、一方、単一のポリゴン315内の単一のエッジが変換されるレイアウトファイル170全体を処理及び記憶することに関連する計算リソース需要も低減する。
【0055】
図4に示すように、第1の摂動410-1は、1つのポリゴン315の1つのエッジを変位させて、ポリゴン315のサイズを増大させ、第1の第2のレイアウト420-1を生成する。第2の摂動410-2は、異なるポリゴン315のエッジを変位させて、第2の第2のレイアウト420-2を生成する。「N」を正の整数として、「N」個の摂動410の最後として示される第3の摂動410-3は、ポリゴン315全体を変位させて、第3の第2のレイアウト420-3を生成する。
【0056】
例示的な技術400の一部として、摂動410は、(例えば、図1のクライアントコンピューティングデバイス(単数又は複数)110を介して)設計者から受信された第1のレイアウト210において観測されたものを実質的に再現する設計ルール140違反の分布を実装し得る。したがって、「N」で表される摂動410の数は、第1のレイアウト210において観察される違反の例を含むほど十分に大きいが、意味のある違反を再現しない設計ペア321で訓練データ130を偏らせることを回避するほど十分に集中している。
【0057】
いくつかの実施形態では、摂動410は、例えば、レイアウトファイル170と第2のレイアウト420との間の機能的一貫性の検証を含むことによって、有意義な訓練データ130を表す第2のレイアウト420を生成するように限定される。機能検証は、モデル150の訓練のためのデータ準備の一部として、例示的な技術400のサブプロセスを形成することができる。例示的な例では、摂動410は、N個の第2のレイアウト420を生成することができ、別個のプロセスが、N個のレイアウトの各々を検証し、第1のレイアウト170と機能的に一貫性のない第2のレイアウト420を選択的に除去することができる。有利には、訓練データ130の品質管理は、訓練済みモデル145の精度及び性能を改善し、モデル(単数又は複数)145~150の訓練のための時間及び計算リソース需要を低減する。パッチ210が、完全な論理機能の検証を可能にしない粒度のレベルで定義される場合、訓練データ130の品質管理は、摂動410がパッチ210内の接続を形成するか、又は切断するかをチェックすることを含むことができる。
【0058】
図5は、本開示の実施形態による、第2のレイアウトを生成するように機械学習モデル150を訓練するための例示的なプロセス500におけるデータフローを示すブロックフロー図である。例示的なプロセス500は、図1のサーバ105(単数又は複数)及び/又はクライアントコンピューティングデバイス(単数又は複数)110などの1つ以上のコンピュータシステムによって実装され、図3図4の例示的なプロセス200~400の構成要素動作を記述するプロセスブロックを含む。このようにして、例示的なプロセス500は、訓練動作に関与するデータフローに焦点を当てる。例示的なプロセス500を構成する構成プロセスブロックは、データストレージ505、データ準備510、摂動515、画像生成535、及び予測訓練545を含む。ブロックはまた、摂動生成器520、画像生成器540、及び目的関数560を含む。
【0059】
データストレージ505は、訓練データ130、設計ルールデータ140、及びレイアウトファイル170を含み、データベース125、135、及び165の一例である。図1を参照して説明したように、データストレージは、物理ストレージ、分散ストレージ、又はそれらの組み合わせとして実装され得る。
【0060】
データ準備510は、図2図3を参照してより詳細に説明されるように、準拠パッチ315を定義するためにレイアウトファイル170に対して動作を実装する。例えば、データ準備は、論理機能に基づく、パッチの所定のサイズに基づく、又はそれらの組み合わせに基づくセグメント化を含むことができる。レイアウトファイル170は、公的に利用可能な第2のレイアウトを含み、ファウンドリから準備又は提供され、データストレージ505に記憶された独自のレイアウトファイル170を含み得る。
【0061】
いくつかの実施形態では、データ準備510はまた、例えば、訓練データ130の自動化された(例えば、人間の関与を伴わない)生成の一部として、データストレージ505からレイアウトファイル170にアクセスするための入力/出力動作を含む。そのために、レイアウトファイル170、設計ルール140、及び/又は訓練データ130は、コンピュータシステムが、設計ルール140の特定のセットに準拠するレイアウトファイル170を識別し、レイアウトファイル170及び/又は設計ルール140を用いて訓練データ130を識別することを可能にするメタデータによってラベル付けされ得る。設計ルール140のタイプは、製造システム115間で一貫性があってもよいが、設計ルール140の異なるセット間の可変性は重要であり、その結果、設計ルール140の所与のセットに対する訓練データは、設計ルール140の異なるセットに対して無効である可能性が高い。同様に、レイアウトファイル170のタイプは、例えば、説明される集積回路が異なる材料及び/又は異なる構造を含む異なる製造システム115の間で異なり得、その結果、いくつかの設計ルール140は、いくつかのレイアウトファイル170に適用できないことがある。有利には、訓練データ130、設計ルール140、及びレイアウトファイル170を関連付けることは、例えば、特定の設計ルール140に対応する適切なレイアウトファイル170にアクセスし、意味のある訓練データ130を生成することによって、データベース構造最適化及び全体的なデータボリュームの低減を通して、全体的なシステム性能を改善することができる。
【0062】
摂動515は、図3図4を参照して説明したように、設計ペア321の一部として摂動ベクトル320及び逆摂動ベクトル323によって表される変換を生成することを含む。生成器520はまた、変換済みレイアウト235と第2のレイアウト420との間の機能的一貫性などの品質制御のための動作を実装してもよい。パッチごとに、生成器520は、1つ以上のサブタスクを含むアルゴリズムを実装することができる。例えば、サブタスクは、所与のパッチを摂動させるかどうかを判定することと、パッチをどこでどのように摂動させるかを判定することと、摂動ベクトル320を生成することと、を含み得るが、それらに限定されない。パッチを摂動させるかどうかを判定することは、データストレージ505に既に記憶されている設計ペア321とパッチを相互参照することを含むことができる。パッチは、変換済みレイアウト235内に何度も現れる反復可能なユニットを表すように定義され得るため、摂動生成器520は、所与のパッチの摂動515が重複していると判定することができる。有利には、かかる手法は、設計ペア321の代表的な訓練セットを生成するために処理されるパッチの数を低減することによって、摂動515の全体的な計算リソース需要を低減する。
【0063】
摂動を決定することは、摂動の層、エッジ、ロケーション、及び範囲を決定することを含み得る。図2を参照してより詳細に説明されるように、各パッチは、それが生成された変換済みレイアウト235にパッチを関連付けるメタ情報を用いて記述され得る。メタ情報は、多層レイアウトの層、パッチ内のポリゴン、ポリゴンのエッジ、及び/又は例えばデカルト座標系を使用してパッチの一部として記述されたオブジェクトのロケーションインジケータ又は座標への参照を含むことができる。変換済みレイアウト235のコンテキストにおいてパッチを記述し、所与のパッチのコンテキストにおいてポリゴン/エッジを記述するために、複数の異なる手法が採用され得ることを理解されたい。有利には、パッチデータにメタデータを追加することは、少なくとも部分的に、生成される訓練データの量を低減すること、及び/又は訓練データ130のための品質管理タスク及びデータ選択を低減することによって、図1の例示的なシステム100の性能を改善することができる。
【0064】
摂動の範囲は、所与のパッチの1つ以上のエッジ、ポリゴン、又は他の特徴に適用される変換を指す。例えば、範囲は、エッジ又はポリゴンを変位させる画素数、エッジ又はポリゴンを変位させる距離、又はポリゴンに適用されるサイズ変更動作を記述することができるが、これらに限定されない。この範囲は、パッチを参照して記述することができ、パッチは、メタ情報を介して変換済みレイアウト235に関連付けられる。生成器520は、パッチに適用される摂動の範囲を記述する摂動ベクトル320を出力する。摂動ベクトル320は、変換済みレイアウト235を記述するために使用されるファイル形式(例えば、GDSII、OASISなど)と互換性があるようにフォーマットされ得る。いくつかの実施形態では、生成器520はまた、未訓練モデル150を訓練する際に使用するための逆摂動ベクトル323を出力する。
【0065】
画像生成535は、図3を参照してより詳細に説明されるように、レイアウトファイル170データ及び摂動ベクトル320を使用して、非準拠パッチの画像を生成するための1つ以上の動作を説明する。画像生成器540は、所与の準拠パッチを記述するレイアウトファイル又は他のデータフォーマットを受信し、対応する摂動ベクトル320を受信し、未訓練モデル150を訓練する際に使用するための摂動パッチを記述する画像を生成するためのソフトウェア内のアルゴリズムであるか、又はそれを含むことができる。画像生成は、ポリゴンが真の値として表され、背景が偽の値として表されるバイナリマスクを生成することを含むことができる。画像生成器540は、摂動ベクトル320を変換済みレイアウト235と組み合わせることによって、画像内のポリゴンのサイズ、ロケーション、及び配向を決定することができる。
【0066】
画像データは、生成されると、予測訓練545に渡される。予測訓練545は、所与の非準拠パッチを記述する画像データを未訓練モデル150に入力することと、予測逆変換330を出力することと、目的関数560から訓練信号565を受信することと、を含む。図3を参照してより詳細に説明されるように、未訓練モデル150は、画像を入力し、所与の集積回路レイアウトフォーマットのためにフォーマットされた補正ベクトルを出力するように構成される。摂動ベクトル320及び逆摂動ベクトル323と同様に、予測逆変換330は、摂動515によって出力される変換された準拠パッチを参照して行われる、画像生成器540によって生成される画像内の1つ以上のポリゴンへの変換を記述する。未訓練モデル150は、所与の設計ルールセット140に基づいて、非準拠パッチの準拠パッチへの変換を予測する。
【0067】
予測訓練545は、逆変換330を目的関数560に出力する。目的関数560は、入力として逆摂動ベクトル323及び逆変換330を受け取る損失関数又は他の最適化アルゴリズムを記述する。入力は、例えば、2つの入力ベクトル間の差を決定することによって比較される。比較は、訓練信号565を生成するための基礎として使用することができる。複数の異なる手法を使用して機械学習モデルを訓練することができ、そのうちの一部は特定のアーキテクチャにより適しており、他のものは異なるアーキテクチャにより適していることを理解されたい。有利には、図3図5を参照して説明される摂動手法は、ラベル付けされた訓練データ130を生成し、それによって、例えば、訓練データ130を生成及び記憶するための自動化された(例えば、人間の関与を伴わない)ソフトウェアの一部として、訓練データ130をラベル付けするために設計ルール140を使用してルールベースモデルと対にされ得る教師あり学習技術を容易にする。
【0068】
未訓練モデル150が1つ以上のパラメータを学習するように、ある量の訓練データ130について複数の訓練信号565を生成することができる。複数の訓練間隔にわたって、未訓練モデル150は、逆摂動ベクトル323の精密かつ正確な予測を可能にする学習されたパラメータのセットに収束することができる。かかるとき、未訓練モデル150は、図2を参照してより詳細に説明されるように、訓練されたと見なされることができ、展開されることができる。設計ルール、レイアウトファイル170、及び他の要因は、時間とともに変化し得、それは、訓練済みモデル145の再訓練を動機付け得ることが理解される。このようにして、最初に訓練されたものとして例示的なプロセス500の文脈で説明される未訓練モデル150は、設計ルール140への更新のために、又は新しい訓練データを用いて再訓練された以前に訓練済みモデル145を表すこともできる。
【0069】
図6は、本開示の実施形態による、半導体製造システム設計ルール140に準拠して、機能的に一貫性のある製造可能な集積回路レイアウトを生成するための例示的なプロセス600のブロックフロー図である。例示的なプロセス600は、図2の例示的なプロセス200を参照してより詳細に説明されるように、訓練済みモデル(単数又は複数)145を展開することの一部としてコンピュータシステム(例えば、図1のサーバ(単数又は複数)105)によって実装される動作の例を説明する。プロセスブロックの一部又は全部がプロセス600に現れる順序は、限定的であると見なされるべきではない。むしろ、本開示の利益を有する当業者は、プロセスブロックのうちのいくつかが、例示されていない様々な順序で、又は並列でさえ実行され得ることを理解するであろう。
【0070】
ブロック605において、コンピュータシステムは、集積回路を記述するレイアウト210を受信する。レイアウト210は、ネットワーク120を介してクライアントコンピューティングデバイス110から受信され得るか、又はレイアウトファイル170を記憶する第3のデータベース165などのストレージから取り出され得る。レイアウト210は、所与の半導体製造システム115のための設計ルール140に対するレイアウトの統合設計及び検証中に通常使用されるように、集積回路レイアウトファイルとしてフォーマットすることができる。レイアウト210は、フォトレジストをパターニングするために使用されるマスクを記述する。フォトレジストは、半導体ウェハの処理中に、集積回路製造の一部として堆積又は除去される導体、半導体、耐熱材料、又は他の材料の領域を画定するために、半導体の処理中に使用される。マスクは、各タイプの除去又は堆積を別々に記述するバイナリマスクとすることができる。
【0071】
ブロック610において、コンピュータシステムは、レイアウト210を準拠パッチ215にセグメント化する。セグメント化は、レイアウト210の各層について異なるパッチを定義することができる。例示的な例では、電界効果トランジスタに接続する金属ワイヤのためのレイアウトは、導体材料と誘電体材料の両方を記述する情報を含み得る。異なるマスクによって記述されるレイアウトのそれぞれの層は、異なるマスクを記述するレイアウトファイルの異なる層に対して異なる訓練済みモデル150が準備されるように、設計ルール140の異なるセットによって制約することができ、ブロック610におけるセグメント化は、レイアウト210の異なる層に対して異なるパッチを定義することによって進行する。追加的又は代替的に、訓練済みモデル145は、設計ルール140の1つのセット又はサブセットを用いて訓練され得、別の訓練済みモデル145は、設計ルール140の異なるセット又はサブセットを用いて訓練され得、それを用いて、変換済みレイアウト235は、プーリング及び/又は投票方式の実装形態を通して訓練される。レイアウト210は複数の層を含むことができるため、層内の位置を追跡し、各パッチが発生する層を識別するために、パッチにメタ情報でラベル付けすることができる。同様に、メタ情報を生成して、各パッチ内のポリゴン、エッジ、及びロケーションを識別することができる。かかるメタ情報は、ルールベースのモデル231(単数又は複数)を介するなどして、訓練済みモデル145の展開中に座標ベクトル230(単数又は複数)の生成を容易にする。
【0072】
パッチの定義に続いて、コンピュータシステムは、ブロック615において、非準拠パッチを識別する。非準拠パッチを識別することは、関連する設計ルール140を選択し、受信し、又はアクセスすることと、例えば、レイアウトファイルを受信し、「準拠」及び「非準拠」、「真」及び「偽」などのブール出力を生成するように構成された設計ルールチェックエンジンを使用して、関連する設計ルール140に対して非準拠パッチを検証することと、を含む。図2図4を参照してより詳細に説明するように、検証は、限定はしないが、1層ルール及び/又は2層ルールの一部としての、ポリゴンサイズ、間隔、位置、又はそれらの組み合わせについてのローカル設計ルールチェックを含むことができる。このようにして非準拠パッチを識別することはまた、図2を参照してより詳細に説明されるように、画像生成及び予測サブシステムに渡されるように、識別子情報及び/又はパッチデータを一時システムに記憶することを含み得る。
【0073】
ブロック620において、コンピュータシステムは、各非準拠パッチ220に対して変換225を生成し、各それぞれの変換225は、非準拠パッチ220を、設計ルール140に準拠する準拠パッチに変換すると予測される。図1図2を参照してより詳細に説明されるように、変換225を生成することは、非準拠パッチ220の画像221を生成することと、各非準拠パッチ220の変換225を出力するように訓練された訓練済みモデル(単数又は複数)145に画像221を入力することと、を含む。いくつかの実施形態では、単一の訓練済みモデル145が画像221のために使用される。いくつかの実施形態では、複数の訓練済みモデル145が、設計ルール140の異なるサブセットに使用される。
【0074】
ブロック625において、コンピュータシステムは、第1のレイアウト201の変換済みレイアウト235への変換を記述する出力座標ベクトル230を生成する。出力座標ベクトル230は、変換225の少なくともサブセットを含み、各変換を第1のレイアウトに適用するための層、エッジ、ロケーション、及び範囲情報を、例えばポリゴン211に関して記述する。出力座標ベクトル230を生成することは、出力座標ベクトル230に含めるための変換225のサブセットを選択するように構成された1つ以上のルールベースモデル231又は他の固定アルゴリズムを含むことができる。図2を参照してより詳細に説明されるように、ルールベースの方法は、レイアウトレベル上のグローバル設計ルールを含む設計ルール140に対して出力座標ベクトル230を検証するため、並びにレイアウト210と変換済みレイアウト235との間の機能的一貫性を検証するために、アルゴリズム的意思決定ルーチン並びに物理シミュレーションを含むことができる。
【0075】
ブロック630において、コンピュータシステムは、変換レイアウト235を生成する。変換済みレイアウト235を生成することは、出力座標ベクトル230に含まれる変換225が実装されるように、出力座標ベクトル230をレイアウト210に適用することを含むことができる。このようにして、設計ルール140に違反したレイアウト210のポリゴン211は、訓練済みモデル(単数又は複数)145の出力に従って変換される(例えば、変位される、サイズ変更されるなど)。いくつかの実施形態では、変換済みレイアウト235を生成することは、第2のレイアウトを設計ルール140に照らして、レイアウト210との機能的一貫性について検証することを含む。例えば、レイアウト210を使用して、及び変換済みレイアウト235を使用して、1つ以上の動作をシミュレートすることができ、結果として得られる出力を、機能的一貫性について比較することができる。変換済みレイアウト235が設計ルール140を満たさないか、又は機能的一貫性を保存しない場合、例示的なプロセス600は、1つ以上のプロセスブロックを反復することを含むことができ、新しい変換済みレイアウト235を生成することができる。
【0076】
いくつかの実施形態では、例示的なプロセス600は、変換済みレイアウト235を出力することを含む。出力動作は、限定はしないが、変換済みレイアウト235をレイアウトファイル170として第3のデータベース165などのデータストレージに記憶することを含む。いくつかの実施形態では、出力動作は、対話型設計環境の一部として実装することができ、それによって、コンピュータシステムの人間のユーザに、レイアウト210の開発中に設計への変換を提示することができる。これは、設計を開発するために使用されるユーザインタフェース環境への訓練済みモデル145出力の統合を含むことができる。例えば、出力は、コンピュータシステム(例えば、図1のクライアントコンピューティングデバイス110)のディスプレイ上に変換済みレイアウト235を提示することを含むことができる。出力動作はまた、図1を参照してより詳細に説明されるように、変換済みレイアウト235を半導体製造システム(単数又は複数)115に出力することを含むことができる。半導体製造システム(単数又は複数)115は、テープアウト間の中間プロセスを実装し、逆リソグラフィなどの変換済みレイアウト235に従って準拠した集積回路を製造することができる。
【0077】
上記で説明したプロセスは、コンピュータソフトウェア及びハードウェアに関して説明されている。説明される技術は、マシンによって実行されるときに、マシンに説明された動作を実行させる、有形又は非一時的なマシン(例えば、コンピュータ)可読記憶媒体内に具現化されるマシン実行可能命令を構成し得る。更に、プロセスは、特定用途向け集積回路(「ASIC」)など、又はその他のハードウェア内で具体化され得る。
【0078】
有形の機械可読記憶媒体は、機械(例えば、コンピュータ、ネットワークデバイス、個人情報端末、製造ツール、1つ以上のプロセッサのセットを有する任意のデバイスなど)がアクセス可能な非一時的形態の情報を提供(すなわち、記憶)する任意のメカニズムを含む。例えば、機械可読記憶媒体は、記録可能/記録不可能な媒体(例えば、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置など)を含む。
【0079】
要約書に説明されているものを含め、本発明の例示される実施形態の上記の説明は、網羅的であること、又は本発明を開示された厳密な形態に限定することを意図していない。本発明の特定の実施形態及び例が例示の目的で本明細書に説明されているが、当業者が認識するように、本発明の範囲内で様々な修正が可能である。
【0080】
これらの変更は、上記の詳細な説明に照らして本発明に対して行うことができる。一般に、以下の特許請求の範囲において使用される用語は、本明細書に開示される特定の実施形態に本発明を限定するものと解釈されるべきではない。むしろ、本発明の範囲は、以下の特許請求の範囲によって完全に判定されるべきであり、特許請求の範囲は、請求項の解釈の確立された原則に従って解釈されるべきである。
図1
図2
図3
図4
図5
図6
【国際調査報告】