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

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

▶ テキサス インスツルメンツ インコーポレイテッドの特許一覧

特表2023-530659自動化されたアナログ及びミックスドシグナル回路の設計及び検証
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-19
(54)【発明の名称】自動化されたアナログ及びミックスドシグナル回路の設計及び検証
(51)【国際特許分類】
   G06F 30/38 20200101AFI20230711BHJP
   G06F 30/27 20200101ALI20230711BHJP
   G06F 30/33 20200101ALI20230711BHJP
   G06F 30/337 20200101ALI20230711BHJP
【FI】
G06F30/38
G06F30/27
G06F30/33
G06F30/337
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022576367
(86)(22)【出願日】2021-06-07
(85)【翻訳文提出日】2023-02-10
(86)【国際出願番号】 US2021036111
(87)【国際公開番号】W WO2021252324
(87)【国際公開日】2021-12-16
(31)【優先権主張番号】63/037,385
(32)【優先日】2020-06-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/116,578
(32)【優先日】2020-11-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/245,000
(32)【優先日】2021-04-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【弁護士】
【氏名又は名称】佐藤 仁
(72)【発明者】
【氏名】アシシュ カンデルワル
(72)【発明者】
【氏名】スリーニヴァサン ケイ コドゥリ
(72)【発明者】
【氏名】ニクヒル グプタ
(72)【発明者】
【氏名】ティモシー ダブリュー フィッシャー
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA21
5B146AA22
5B146GA00
5B146GG23
(57)【要約】
回路を設計するための手法であり、本手法は、第1のプロセス技術のための回路を表すデータオブジェクト(514)を受け取ることであって、回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む第1のサブ回路を含む、データオブジェクトを受け取ることと、第1のトポロジを格納されたトポロジと比較することによりデータオブジェクト(518)内の第1のサブ回路を識別することと、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連する物理パラメータ値を識別することと、第1のサブ回路の第1の機械学習モデル及び物理パラメータの識別されたセットに基づいて第1のサブ回路のための性能パラメータ値のセット(520)を判定することと、性能パラメータ値の判定されたセットに基づいて、識別された第1のサブ回路を第2のプロセス技術のための第2のサブ回路に変換することと、第2のサブ回路を出力することとを含む。
【特許請求の範囲】
【請求項1】
方法であって、
第1のプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、前記回路が第1のサブ回路を含み、前記第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む、前記データオブジェクトを受け取ることと、
前記第1のトポロジを、第1のプロセス技術に関連する格納されたトポロジと比較することにより、前記データオブジェクトにおける前記第1のサブ回路を識別することと、
前記第1のサブ回路の第1の電気構成要素及び前記第2の電気構成要素に関連するサブ回路物理パラメータ値を識別することと、
前記第1のサブ回路の第1の機械学習(ML)モデルと前記識別されたサブ回路物理パラメータとに基づいて、前記1のサブ回路のためのサブ回路性能パラメータ値のセットを判定することと、
サブ回路性能パラメータ値の前記判定されたセットに基づいて、前記識別された第1のサブ回路を第2のプロセス技術のための第2のサブ回路に変換することと、
前記第2のサブ回路を出力することと、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、前記識別された第1のサブ回路を前記第2のサブ回路に変換することが、
前記第2のプロセス技術のための第2のMLモデルとサブ回路性能パラメータ値のセットとに基づいて、前記第2のサブ回路の第3の電気構成要素及び第4の電気構成要素に関連するサブ回路物理パラメータの第2のセットを判定することと、
サブ回路物理パラメータの前記第2のセットのサブ回路物理パラメータを、前記第2のサブ回路の前記第3の電気構成要素及び前記第4の電気構成要素に関連付けることと、
を含む、方法。
【請求項3】
請求項2に記載の方法であって、前記第3の電気構成要素及び前記第4の電気構成要素が、それぞれ、前記第1の電気構成要素及び前記第2の電気構成要素に対応する、方法。
【請求項4】
請求項1に記載の方法であって、前記第1のMLモデル及び前記第2のMLモデルがニューラルネットワークを含む、方法。
【請求項5】
請求項1に記載の方法であって、前記第2のプロセス技術が、第1のプロセス技術と比較して、より小さい電気構成要素に関連する第2の半導体製造プロセスを含む、方法。
【請求項6】
請求項1に記載の方法であって、前記第2のサブ回路の回路シミュレーションに基づいて前記第2のサブ回路を検証することを更に含む、方法。
【請求項7】
請求項1に記載の方法であって、サブ回路性能パラメータの前記セットのサブ回路性能パラメータが、前記識別された第1のサブ回路のタイプに基づいて判定される、方法。
【請求項8】
請求項1に記載の方法であって、前記第1のサブ回路を識別することが、一連の規則に基づく、方法。
【請求項9】
格納された命令を含む非一時的プログラムストレージデバイスであって、前記命令が、
第1のプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、前記回路が第1のサブ回路を含み、前記第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素と第2の電気構成要素とを含む、前記データオブジェクトを受け取ることと、
前記第1のトポロジを格納されたトポロジと比較することによって、前記データオブジェクト内の前記第1のサブ回路を識別することであって、前記格納されたトポロジが前記第1のプロセス技術に関連する、前記第1のサブ回路を識別することと、
前記第1のサブ回路の前記第1の電気構成要素及び前記第2の電気構成要素に関連するサブ回路物理パラメータ値を識別することと、
前記第1のサブ回路の第1の機械学習(ML)モデルと前記識別されたサブ回路物理パラメータとに基づいて、前記第1のサブ回路のためのサブ回路性能パラメータ値のセットを判定することと、
サブ回路性能パラメータ値の前記判定されたセットに基づいて、前記識別された第1のサブ回路を第2のプロセス技術のための第2のサブ回路に変換することと、
前記第2のサブ回路を出力することと、
を1つ又は複数のプロセッサにさせるための命令である、非一時的プログラムストレージデバイス。
【請求項10】
請求項9に記載の非一時的プログラムストレージデバイスであって、前記識別された第1のサブ回路を前記第2のサブ回路に変換するための前記命令が、
前記第2のプロセス技術のための第2のMLモデルとサブ回路性能パラメータ値の前記セットとに基づいて、前記第2のサブ回路の第3の電気構成要素及び第4の電気構成要素に関連するサブ回路物理パラメータの第2のセットを判定することと、
サブ回路物理パラメータの前記第2のセットのサブ回路物理パラメータを、前記第2のサブ回路の前記第3の電気構成要素及び第4の電気構成要素に関連付けることと、
を前記1つ又は複数のプロセッサにさせるための命令を含む、非一時的プログラムストレージデバイス。
【請求項11】
請求項10に記載の非一時的プログラムストレージデバイスであって、前記第3の電気構成要素及び前記第4の電気構成要素が、それぞれ、前記第1の電気構成要素及び前記第2の電気構成要素に対応する、非一時的プログラムストレージデバイス。
【請求項12】
請求項9に記載の非一時的プログラムストレージデバイスであって、前記第1のMLモデル及び前記第2のMLモデルがニューラルネットワークを含む、非一時的プログラムストレージデバイス。
【請求項13】
請求項9に記載の非一時的プログラムストレージデバイスであって、前記第2のプロセス技術が、第1のプロセス技術と比較して、より小さい電気構成要素に関連する第2の半導体製造プロセスを含む、非一時的プログラムストレージデバイス。
【請求項14】
請求項9に記載の非一時的プログラムストレージデバイスであって、前記命令が更に、前記1つ又は複数のプロセッサに、前記第2のサブ回路の回路シミュレーションに基づいて前記第2のサブ回路を検証させる命令を含む、非一時的プログラムストレージデバイス。
【請求項15】
請求項9に記載の非一時的プログラムストレージデバイスであって、性能パラメータの前記セットの性能パラメータが、前記識別された第1のサブ回路のタイプに基づいて判定される、非一時的プログラムストレージデバイス。
【請求項16】
請求項9に記載の非一時的プログラムストレージデバイスであって、前記第1のサブ回路を識別することが、一連の規則に基づく、非一時的プログラムストレージデバイス。
【請求項17】
電子デバイスであって、
メモリと、
前記メモリに動作可能に結合される1つ又は複数のプロセッサと、
を含み、
前記1つ又は複数のプロセッサが、1つ又は複数のプロセッサに、
第1のプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、前記回路が第1のサブ回路を含み、前記第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素と第2の電気構成要素とを含む、前記データオブジェクトを受け取ることと、
前記第1のトポロジを格納されたトポロジと比較することによって、前記データオブジェクト内の前記第1のサブ回路を識別することであって、前記格納されたトポロジが第1のプロセス技術に関連する、前記第1のサブ回路を識別することと、
前記第1のサブ回路の前記第1の電気構成要素及び前記第2の電気構成要素に関連するサブ回路物理パラメータ値を識別することと、
前記第1のサブ回路の第1の機械学習(ML)モデルと前記識別されたサブ回路物理パラメータとに基づいて、前記第1のサブ回路のためのサブ回路性能パラメータ値のセットを判定することと、
サブ回路性能パラメータ値の前記判定されたセットに基づいて、前記識別された第1のサブ回路を第2のプロセス技術のための第2のサブ回路に変換することと、
前記第2のサブ回路を出力することと、
をさせる命令を実行するように構成される、
電子デバイス。
【請求項18】
請求項17に記載の電子デバイスであって、前記識別された第1のサブ回路を前記第2のサブ回路に変換するための前記命令が、前記1つ又は複数のプロセッサに、
前記第2のプロセス技術のため、第2のMLモデルと、サブ回路性能パラメータ値の前記セットとに基づいて、前記第2のサブ回路の第3の電気構成要素及び第4の電気構成要素に関連するサブ回路物理パラメータの第2のセットを判定することと、
サブ回路物理パラメータの前記第2のセットのサブ回路物理パラメータを、前記第2のサブ回路の前記第3の電気構成要素及び前記第4の電気構成要素に関連付けることと、
をさせるための命令を含む、電子デバイス。
【請求項19】
請求項18に記載の電子デバイスであって、前記第3の電気構成要素及び前記第4の電気構成要素が、それぞれ、前記第1の電気構成要素及び前記第2の電気構成要素に対応する、電子デバイス。
【請求項20】
請求項18に記載の電子デバイスであって、前記第1のMLモデル及び前記第2のMLモデルがニューラルネットワークを含む、電子デバイス。
【請求項21】
請求項18に記載の電子デバイスであって、サブ回路性能パラメータの前記セットのサブ回路性能パラメータが、前記識別された第1のサブ回路のタイプに基づいて判定される、電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
アナログ回路は、たいてい、現実世界の信号を感知し、それらと相互作用し、及び/又は、それらを制御するために用いられる。現実世界の信号又は情報は、連続的な量であるため、アナログである。例えば、温度は離散的な整数値だけではなく、無限の範囲にわたって変化する(例えば、無限の値を有する)。これに対し、デジタル回路は、アナログ信号又は情報を表すために用いられる離散値、1及び0で動作する。デジタル回路がアナログ信号又は情報を扱うのを助けるために、デジタル回路は、アナログ回路と相互作用するか又はアナログ回路を組み込むことができる。例えば、温度センサは、温度をサンプリングするための1つ又は複数のアナログ回路と、サンプリングされた温度をデジタル値に変換するための1つ又は複数のハイブリッド回路と、デジタル値を処理するための1つ又は複数のデジタル回路とを含み得る。同様に、デジタル回路がオーディオファイルを処理し得、ハイブリッド回路がデジタルからアナログへの変換を実施し得、アナログ回路がアナログ信号を増幅し得、スピーカーがオーディオファイルにおいて符号化された実際の音を出力し得る。本明細書で用いられるとき、アナログ回路は、アナログ回路、又は、アナログ部分とデジタル部分の両方を含み得るハイブリッド回路(例えば、ミックスドシグナル回路)のいずれかを指し得ることを理解されたい。
【0002】
集積回路が進歩するにつれて、半導体ダイの領域に適合され得る構成要素の数が急速に増加している。このサイズの縮小は、ダイシュリンクとしても知られており、コストを低減し、得られる集積回路チップの性能を改善するのに役立つ。ダイ縮小及び半導体スケーリング技術は、デジタル回路にとって比較的簡単であるが、アナログ回路のスケーリングははるかに困難である。例えば、アナログ回路は、デジタル回路と比較して、電圧ヘッドルーム、利得劣化、信号対雑音比調整などによって実質的により多くの影響を受け得る。差動対などのアナログ又はハイブリッドサブ回路における回路の幾何学的形状及び構成は、差動対の性能に影響を及ぼすことがあるだけでなく、回路全体の別の部分における電流ミラーなどの他のサブ回路の性能にも影響を及ぼすことがある。また、異なるプロセスノード又は半導体プロセス技術が、回路の幾何学的形状及び構成が性能にどのように影響を及ぼすかに影響し得る。回路全体の目的によっては、この性能差は許容できないことがある。異なるサイズのプロセスノード間のスケーリングはまた、各サブ回路、又は個別構成要素さえも、異なるスケールファクタを有し得るように、サブ回路に異なる影響を及ぼし得る。幾つかのアナログ回路は、プロセスノード間の設計をスケーリングしようとする際に、広範な手動の変更又は再設計を必要とし得る。
【発明の概要】
【0003】
本開示は、回路を設計するための技法に関する。より詳細には本開示の態様は下記を含む方法に関するが、これらは限定を意図してはいない。この方法は、第1のプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、この回路が第1のサブ回路を含み、第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む、データオブジェクトを受け取ることと、第1のトポロジを、第1のプロセス技術に関連する格納されたトポロジと比較することによって、データオブジェクト内の第1のサブ回路を識別することと、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連するサブ回路物理パラメータ値を識別することと、第1のサブ回路の第1の機械学習(ML)モデルと識別されたサブ回路物理パラメータとに基づいて、第1のサブ回路のためのサブ回路性能パラメータ値のセットを判定することと、サブ回路性能パラメータ値の判定されたセットに基づいて、識別された第1のサブ回路を第2のプロセス技術のための第2のサブ回路に変換することと、第2のサブ回路を出力することとを含む。
【0004】
本開示の別の態様は、1つ又は複数のプロセッサに、以下の行為をさせるために記憶された命令を含む非一時的プログラムストレージデバイスに関し、これらの行為は、第1のプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、この回路が第1のサブ回路を含み、第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む、データオブジェクトを受け取ることと、第1のトポロジを、第1のプロセス技術に関連する格納されたトポロジと比較することによって、データオブジェクト内の第1のサブ回路を識別することと、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連するサブ回路物理パラメータ値を識別することと、第1のサブ回路の第1の機械学習(ML)モデルと識別されたサブ回路物理パラメータとに基づいて、第1のサブ回路のためのサブ回路性能パラメータ値のセットを判定することと、サブ回路性能パラメータ値の判定されたセットに基づいて、識別された第1のサブ回路を第2のプロセス技術のための第2のサブ回路に変換することと、変換された第2のサブ回路を出力することとを含む。
【0005】
本開示の別の態様は、メモリと、メモリに動作可能に結合される1つ又は複数のプロセッサとを含む電子デバイスに関し、1つ又は複数のプロセッサは、命令を実行して、1つ又は複数のプロセッサに、以下の行為をさせるように構成され、これらの行為は、第1のプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、この回路が第1のサブ回路を含み、第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む、データオブジェクトを受け取ることと、第1のトポロジを、第1のプロセス技術に関連する格納されたトポロジと比較することによって、データオブジェクト内の第1のサブ回路を識別することと、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連するサブ回路物理パラメータ値を識別することと、第1のサブ回路の第1の機械学習(ML)モデルと識別されたサブ回路物理パラメータとに基づいて、第1のサブ回路のためのサブ回路性能パラメータ値のセットを判定することと、サブ回路性能パラメータ値の判定されたセットに基づいて、識別された第1のサブ回路を第2のプロセス技術のための第2のサブ回路に変換することと、変換された第2のサブ回路を出力することを含む。
【0006】
本開示の別の態様は、或る方法に関し、この方法は、或る回路を表すデータオブジェクトを受け取ることとであって、この回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含むサブ回路を含む、データオブジェクトを受け取ることと、格納されたトポロジのセットを受け取ることと、第1の電気構成要素、第2の電気構成要素、及び、第1の電気構成要素と第2の電気構成要素との間の接続を識別することと、第1の電気構成要素の接続に基づいて、第1の電気構成要素と第2の電気構成要素との間の結合を判定することと、識別された第1の電気構成要素、識別された第2の電気構成要素、第1の電気構成要素と第2の電気構成要素との間の判定された結合、及び、格納されたトポロジのセットのトポロジに基づいて、第1のトポロジを判定することと、識別された第1のトポロジを出力することとを含む。
【0007】
本開示の別の態様は、非一時的プログラムストレージデバイスに関し、非一時的プログラムストレージデバイスは、1つ又は複数のプロセッサに、以下の行為をさせるように格納された命令を含み、これらの行為は、サブ回路を含む或る回路を表すデータオブジェクトを受け取ることであって、サブ回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む、データオブジェクトを受け取ることと、格納されたトポロジのセットを受け取ることと、第1の電気構成要素及び第2の電気構成要素との接続に基づいて、第1の電気構成要素、第2の電気構成要素、及び第1の電気構成要素及び第2の電気構成要素の接続を識別することと、第1の電気構成要素と第2の電気構成要素との接続を判定することと、識別された第1の電気構成要素、識別された第2の電気構成要素、判定された第1の電気構成要素と第2の電気構成要素との接続、並びに、格納されたトポロジのセット間の比較に基づいて第1のトポロジを判定することと、識別された第1のトポロジを出力することである。
【0008】
本開示の別の態様は、電子デバイスに関連し、電子デバイスは、メモリと、メモリに動作可能に結合される1つ又は複数のプロセッサとを含み、1つ又は複数のプロセッサは、1つ又は複数のプロセッサに、以下の行為をさせる命令を実行するように構成される。これらの行為は、サブ回路を含む或る回路を表すデータオブジェクトを受け取ることであって、サブ回路が、第1のトポロジに配置される第1の電気構成要素と第2の電気構成要素とを含む、データオブジェクトを受け取ることと、格納されたトポロジのセットを受け取ることと、第1の電気構成要素、第2の電気構成要素、並びに、第1の電気構成要素及び第2の電気構成要素の接続を識別することと、第1の電気構成要素の電気構成要素の接続に基づいて、第1の電気構成要素と第2の電気構成要素との間の結合を判定することと、識別された第1の電気構成要素、識別された第2の電気構成要素、第1の電気構成要素と第2の電気構成要素との間の判定された結合、及び、格納されたトポロジのセットのトポロジ間の比較に基づいて、第1のトポロジを判定し、識別された第1のトポロジを出力する。
【0009】
本開示の別の態様は、或る方法に関し、この方法は、或るプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、この回路が第1のサブ回路を含み、第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む、データオブジェクトを受け取ることと、第1のトポロジを、第1のプロセス技術に関連する格納されたトポロジと比較することによって、回路内の第1のサブ回路を識別することと、第1のサブ回路の第1の電気構成要素と第2の電気構成要素に関連する物理パラメータ値の第1のセットを識別することと、第1のサブ回路の第1の機械学習(ML)モデルと物理パラメータ値の識別されたセットとに基づいて、第1のサブ回路のための性能パラメータ値のセットを判定することと、性能パラメータ値の判定されたセットに基づいて、識別された第1のサブ回路を、そのプロセス技術のための第2のサブ回路に変換することとであって、第2のサブ回路が、第2のトポロジに配置される第3の電気構成要素と第4の電気構成要素を有する、第2のサブ回路に変換することと、第2のサブ回路を出力することとを含む。
【0010】
本開示の別の態様は、1つ又は複数のプロセッサに、以下の行為をさせる命令を含む非一時的プログラムストレージデバイスに関し、これらの行為は、或るプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、この回路が第1のサブ回路を含み、第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素と第2の電気構成要素とを含む、データオブジェクトを受け取ることと、第1の電気構成要素及び第2の電気構成要素の接続に基づいて第1のサブ回路のタイプを識別することと、第1のトポロジを、第1のプロセス技術に関連する格納されたトポロジと比較することによって回路内の第1のサブ回路を識別することと、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連する物理パラメータ値の第1のセットを識別することと、第1のサブ回路の第1の機械学習(ML)モデルと物理パラメータ値の識別されたセットとに基づいて第1のサブ回路の性能パラメータ値のセットを判定することと、性能パラメータ値の判定されたセットに基づいて、識別された第1のサブ回路をそのプロセス技術のための第2のサブ回路に変換することであって、第2のサブ回路が、第2のトポロジに配置される第3の電気構成要素及び第4の電気構成要素を有する、第2のサブ回路に変換することと、第2のサブ回路を出力することである。
【0011】
本開示の別の態様は、電子デバイスに関し、電子デバイスは、メモリと、メモリに動作可能に結合される1つ又は複数のプロセッサとを含む。1つ又は複数のプロセッサは、1つ又は複数のプロセッサに以下の行為を実行させるように構成される。これらの行為は、或るプロセス技術のための回路を表すデータオブジェクトを受け取ることであって、この回路が、第1のサブ回路を含み、第1のサブ回路が、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む、データオブジェクトを受け取ることと、第1の電気構成要素及び第2の電気構成要素の接続に基づいて第1のサブ回路のタイプを識別することと、第1のトポロジを、第1のプロセス技術に関連する格納されたトポロジと比較することによって回路内の第1のサブ回路を識別することと、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連する物理パラメータ値の第1のセットを識別することと、第1のサブ回路の第1の機械学習(ML)モデルと物理パラメータ値の識別されたセットとに基づいて、第1のサブ回路のための性能パラメータ値のセットを判定することと、性能パラメータ値の判定されたセットに基づいて、識別された第1のサブ回路をそのプロセス技術のための第2のサブ回路に変換することであって、第2のサブ回路が、第2のトポロジに配置される第3の電気構成要素及び第4の電気構成要素を有する、第2のサブ回路に変換することと、第2のサブ回路を出力することである。
【0012】
本開示の別の態様は、或る方法に関し、この方法は、サブ回路タイプの表示とサブ回路性能パラメータ値のセットとを受け取ることと、サブ回路タイプとサブ回路性能パラメータ値のセットとに基づいてサブ回路トポロジを判定することと、サブ回路トポロジの第1の機械学習(ML)モデルとサブ回路性能パラメータ値のセットとに基づいて、サブ回路物理パラメータ値のセットを判定することと、判定されたサブ回路物理パラメータ値のセットと判定されたサブ回路トポロジとに基づいて、サブ回路を表すデータオブジェクトを生成することと、データオブジェクトを出力することとを含む。
【0013】
本開示の別の態様は、非一時的プログラムストレージデバイスに関し、非一時的プログラムストレージデバイスは、1つ又は複数のプロセッサに、以下の行為をさせる命令を含み、これらの行為は、サブ回路タイプの表示とサブ回路性能パラメータ値のセットとを受け取ることと、サブ回路タイプとサブ回路性能パラメータ値のセットとに基づいてサブ回路トポロジを判定することと、サブ回路トポロジの第1の機械学習(ML)モデルとサブ回路性能パラメータ値のセットとに基づいてサブ回路物理パラメータ値のセットを判定することと、サブ回路物理パラメータ値の判定されたセットと判定されたサブ回路トポロジとに基づいて、サブ回路を表すデータオブジェクトを生成することと、データオブジェクトを出力すること、である。
【0014】
本開示の別の態様は、メモリと、メモリに動作可能に結合される1つ又は複数のプロセッサとを含む電子デバイスに関し、1つ又は複数のプロセッサは、1つ又は複数のプロセッサに、以下の行為をさせる命令を実行するように構成され、これらの行為は、サブ回路タイプの表示とサブ回路性能パラメータ値のセットとを受け取ることと、サブ回路タイプとサブ回路性能パラメータ値のセットとに基づいてサブ回路トポロジを判定することと、サブ回路トポロジの第1の機械学習(ML)モデルとサブ回路性能パラメータ値のセットとに基づいてサブ回路物理パラメータ値のセットを判定することと、サブ回路物理パラメータ値の判定されたセットと判定されたサブ回路トポロジとに基づいてサブ回路を表すデータオブジェクトを生成することと、データオブジェクトを出力すること、である。
【0015】
本開示の別の態様は、或る方法を含み、この方法は、サブ回路の電気構成要素のためのサブ回路物理パラメータの第1のセットと、第1のプロセス技術の表示とを受け取ることと、構造サブ回路の電気構成要素のためのサブ回路物理パラメータの第1のバリエーションを判定することであって、第1のバリエーションが、サブ回路物理パラメータの第1のセットのサブ回路物理パラメータから変化する少なくとも1つのサブ回路物理パラメータを含む、判定することと、第1のバリエーションに関連するサブ回路性能パラメータ値の第1のセットを生成するために、第1のプロセス技術におけるサブ回路物理パラメータの第1のバリエーションをシミュレートすることと、バリエーションのセットに基づいて構造サブ回路の機械学習(ML)モデルをトレーニングすることであって、バリエーションのセットが、第1のプロセス技術のための、第1のバリエーションと第1のバリエーションに関連するサブ回路物理パラメータ値のセットとを含む、トレーニングすることと、トレーニングされたMLモデルを格納することとを含む。
【0016】
本開示の別の態様は、1つ又は複数のプロセッサに、以下の行為をさせるための命令を含む非一時的プログラムストレージデバイスに関し、これらの行為は、サブ回路の電気構成要素のためのサブ回路物理パラメータの第1のセットと、第1のプロセス技術の表示とを受け取ることと、構造サブ回路の電気構成要素のためのサブ回路物理パラメータの第1のバリエーションを判定することであって、第1のバリエーションが、サブ回路物理パラメータの第1のセットのサブ回路物理パラメータから変化する少なくとも1つのサブ回路物理パラメータを含む、判定することと、第1のバリエーションに関連するサブ回路性能パラメータ値の第1のセットを生成するため、第1のプロセス技術におけるサブ回路物理パラメータの第1のバリエーションをシミュレートすることと、バリエーションのセットに基づいて構造サブ回路の機械学習(ML)モデルをトレーニングすることであって、バリエーションのセットが、第1のプロセス技術のための、第1のバリエーションと、第1のバリエーションに関連するサブ回路物理パラメータのセットとを含む、トレーニングすることと、トレーニングされたMLモデルを格納することである。
【0017】
本開示の別の態様は、メモリと、メモリに動作可能に結合される1つ又は複数のプロセッサとを含む電子デバイスに関し、1つ又は複数のプロセッサは、1つ又は複数のプロセッサに、以下の行為をさせるための命令を実行するように構成される。これらの行為は、サブ回路の電気構成要素のためのサブ回路物理パラメータの第1のセットと、第1のプロセス技術の表示とを受け取ることと、構造サブ回路の電気構成要素のためのサブ回路物理パラメータの第1のバリエーションを判定することであって、第1のバリエーションが、サブ回路物理パラメータの第1のセットのサブ回路物理パラメータから変化する少なくとも1つのサブ回路物理パラメータを含む、判定することと、第1のバリエーションに関連するサブ回路性能パラメータ値の第1のセットを生成するため、第1のプロセス技術におけるサブ回路物理パラメータの第1のバリエーションをシミュレートすることと、バリエーションのセットに基づいて構造サブ回路の機械学習(ML)モデルをトレーニングすることであって、バリエーションのセットが、第1のプロセス技術のための、第1のバリエーションと、第1のバリエーションに関連するサブ回路物理パラメータのセットとを含む、トレーニングすることと、トレーニングされたMLモデルを格納することである。
【0018】
本開示の別の態様は、或る方法に関し、この方法は、サブ回路に関連するパラメータの初期セットを受け取ることと、相互作用されたパラメータのセットを生成するため、パラメータの初期セットの第1のパラメータをパラメータの初期セットの他のパラメータと相互作用させることと、パラメータの候補セットを生成するため、相互作用されたパラメータをパラメータの初期セットに付加することと、パラメータの候補セットのパラメータについての予測値を判定するため、予期されるパラメータ値のセットに対するパラメータの候補セットのパラメータに対して線形回帰を実施することと、予測値と所定の予測閾値との間の比較に基づいてパラメータの候補セットのパラメータを除去することと、線形回帰に基づいてパラメータの候補セットの精度を判定することと、パラメータの候補セットの精度を所定の精度レベルと比較することと、パラメータの候補セットの精度が所定の精度レベルに達した場合、パラメータの候補セットを出力することと、パラメータの候補セットの精度が所定の精度レベルに達しなかった場合、パラメータの第2の候補セットの精度が所定の精度に達するまで、又は、パラメータの初期セットの各パラメータがパラメータの候補セットの他のパラメータと所定の回数相互作用されるまで、パラメータの初期セットの第2のパラメータをパラメータの候補セットの他のパラメータと相互作用させる工程と、相互作用されたパラメータをパラメータの候補セットに付加する工程と、線形回帰を実施する工程と、パラメータを除去する工程と、精度を判定する工程と、精度を比較する工程とを繰り返すことと、パラメータの候補セットを出力することとを含む。
【0019】
本開示の別の態様は、非一時的プログラムストレージデバイスに関し、非一時的プログラムストレージデバイスは、1つ又は複数のプロセッサに、以下の行為をさせるために非一時的プログラムストレージデバイスに格納された命令を含み、これらの行為は、サブ回路に関連付けられたパラメータの初期セットを受け取ることと、相互作用されたパラメータのセットを生成するため、パラメータの初期セットの第1のパラメータをパラメータの初期セットの他のパラメータと相互作用させることと、パラメータの候補セットを生成するため、相互作用されたパラメータのセットをパラメータの初期セットに付加することと、パラメータの候補セットのパラメータについて予測値を判定するため、予期されるパラメータ値のセットに対するパラメータの候補セットのパラメータに対して線形回帰を実施することと、予測値と所定の予測閾値との間の比較に基づいてパラメータの候補セットのパラメータを除去することと、線形回帰に基づいてパラメータの候補セットの精度を判定することと、パラメータの候補セットの精度を所定の精度レベルと比較することであって、パラメータの候補セットの精度が所定の精度レベルに達した場合はパラメータの候補セットを出力することと、パラメータの候補セットの精度が所定の精度レベルに達しない場合は、パラメータの初期セットの第2のパラメータをパラメータの候補セットの他のパラメータと相互作用する工程と、相互作用されたパラメータをパラメータの候補セットに付加する工程と、線形回帰を実施する工程と、パラメータを除去する工程と、精度を判定する工程と、精度を比較する工程とを、パラメータの第2の候補セットの精度が所定の精度に達するまで、又はパラメータの初期セットの各パラメータが候補セットの他のパラメータと所定の回数相互作用されるまで、反復することと、パラメータの候補セットを出力することである。
【0020】
本開示の別の態様は、電子デバイスに関し、電子デバイスは、メモリと、メモリに動作可能に結合される1つ又は複数のプロセッサとを含み、1つ又は複数のプロセッサは、1つ又は複数のプロセッサに、以下の行為をさせる命令を実行するように構成され、これらの行為は、サブ回路に関連する、パラメータの初期セットを受け取ることと、相互作用されたパラメータのセットを生成するため、パラメータの初期セットの第1のパラメータをパラメータの初期セットの他のパラメータと相互作用させることと、パラメータの候補セットを生成するため、相互作用されたパラメータをパラメータの初期セットに付加することと、パラメータの候補セットのパラメータについての予測値を判定するため、予期されるパラメータ値のセットに対するパラメータの候補セットのパラメータに対して線形回帰を実施することと、予測値と所定の予測閾値との間の比較に基づいてパラメータの候補セットのパラメータを除去することと、線形回帰に基づいてパラメータの候補セットの精度を判定することと、パラメータの候補セットの精度を所定の精度レベルと比較することと、パラメータの候補セットの精度が所定の精度レベルに達した場合はパラメータの候補セットを出力することと、パラメータの候補セットの精度が所定の精度レベルに達しなかった場合、パラメータの第2の候補セットの精度が所定の精度に達するまで、又は、パラメータの初期セットの各パラメータがパラメータの候補セットの他のパラメータと所定の回数相互作用されるまで、パラメータの初期セットの第2のパラメータをパラメータの候補セットの他のパラメータと相互作用させる工程と、相互作用されたパラメータをパラメータの候補セットに付加する工程と、線形回帰を実施する工程と、パラメータを除去する工程と、精度を判定する工程と、精度を比較する工程とを繰り返すことと、パラメータの候補セットを出力することである。
【0021】
種々の例の詳細な説明のため、ここで添付の図面を参照する。
【図面の簡単な説明】
【0022】
図1】本開示の態様に従った回路設計進化の例を図示する。
【0023】
図2】本開示の態様に従ったアナログ回路のブロック図である。
【0024】
図3A】本開示の態様に従った、例示の回路ブロックの回路図である。
図3B】本開示の態様に従った、例示の回路ブロックの回路図である。
【0025】
図4】本開示の態様に従ったサブ回路を図示する回路図である。
【0026】
図5】本開示の態様に従った、自動化されたアナログ及びミックスドシグナル回路設計及び検証のための技法の例示の実施例のブロック図である。
【0027】
図6】本開示の態様に従った、自動化されたアナログ及びミックスドシグナル回路設計及び検証のための技法の例示の実施例のブロック図である。
【0028】
図7A】本開示の態様に従った、所与のプロセス技術のための入力段又は利得段の既知のトポロジの例示のセットを図示する。
図7B】本開示の態様に従った、所与のプロセス技術のための入力段又は利得段の既知のトポロジの例示のセットを図示する。
【0029】
図8】本開示の態様に従った、元のアナログ回路から新しいアナログ回路を設計するための技法の概要を図示するシステム図である。
【0030】
図9】本開示の態様に従った、或るサブ回路のための性能パラメータのセットを図示する図である。
【0031】
図10】本開示の態様に従った、例示のニューラルネットワークMLモデルを図示する。
【0032】
図11】本開示の態様に従った、閾値の段階的な選択のための一連のMLモデルパラメータを図示する。
【0033】
図12】本開示の態様に従った、回路を設計するための技法の概要を図示するフローチャートである。
【0034】
図13】本開示の態様に従った、回路を設計するための技法を図示するフローチャートである。
【0035】
図14】本開示の態様に従った、回路を設計するための技法を図示するフローチャートである。
【0036】
図15】本開示の態様に従った、回路を設計するための技法を図示するフローチャートである。
【0037】
図16】本開示の態様に従った、回路を設計するための技法を図示するフローチャートである。
【0038】
図17A】本開示の態様に従った、回路を設計するための技法を図示するフローチャートである。
図17B】本開示の態様に従った、回路を設計するための技法を図示するフローチャートである。
【0039】
図18】本開示の態様に従ったコンピューティングデバイスの実施例のブロック図である。
【発明を実施するための形態】
【0040】
本発明の特定の実施例について、添付の図を参照して以下に詳細に説明する。以下の本発明の実施例の詳細な説明において、本発明のより完全な理解を提供するために多数の具体的な詳細が記載される。しかしながら、これらの具体的な詳細なしに本発明が実施され得ることは当業者に明らかであろう。他の事例において、本記載を不必要に複雑にすることを避けるため、周知の特徴については詳細に記載してはいない。
【0041】
デジタル回路が我々の生活においてますます一般的になってくるにつれて、これらのデジタル回路と現実のアナログ世界との間のインタフェースがますます普及している。半導体を製造するための改善された製造プロセス技術が開発されるにつれて、デジタル回路のサイズは着実に縮小し、デジタル回路が新しくより小さいプロセス技術ノードを利用することが可能になっている。概して、プロセス技術ノードとは、特定の半導体製造プロセス技術のトランジスタゲート長のサイズを指す。しかしながら、アナログ回路は、比較的単純なサイズ縮小ではなく、異なる半導体製造プロセス技術及び/又はプロセス技術ノード(以下、プロセス技術と称する)間で広範な再設計を必要とすることが多いため、アナログ回路が縮小するペースは遅れがちである。また、回路は機能性を高めるために改変され得る。例えば、回路は、電力要件の低減を助けるために回路の動作電圧を調整するように改変されてもよく、又は、回路は、回路の動作範囲を拡張するように改変されてもよい。特定のプロセス技術に関して、アナログ回路の各電気構成要素の態様、及び、電気構成要素が製造プロセスの特性とどのように相互作用し得るかは、非線形であり予測するのが困難な方式で回路全体の性能に影響を及ぼし得る。このため、単に、或るプロセス技術から別のプロセス技術への回路のサイズ変更又は複製が困難となる。同様に、これらの相互作用は、回路の機能性の改変を実装することを困難にする。
【0042】
デジタル回路及びアナログ回路がより一般的になってきているので、半導体を製造するための製造プロセス技術は進化してきている。図1は、本開示の態様に従った、回路設計進化の例100を図示する。この例100では、回路102(個別では、102A、102B、102C、集合的には102)が、バンドギャップ104(個別では、104A、104B、104C、集合的には104)、演算増幅器106(個別では、106A、106B、106C、集合的には106)、ドライバ108(個別に、108A、108B、108C、集合的には108)などの3つのサブ回路ブロックを含む。この例では、回路102Aは、現在、第1のプロセス技術110で実装され得る。回路102は、動作電圧などの同じ全体的な動作仕様を維持しながら、第1のプロセス技術110から第2のプロセス技術112に変換され得る。例えば、このケースでは、回路102は、3.3Vの動作電圧を維持しながら、第1のプロセス技術110から第2のプロセス技術112に変換され得る。
【0043】
また、場合によっては、回路102は、例えば機能性を高めるために、再設計され得る。この例では、回路102Bを回路102Cとして再設計して、ここでは第2のプロセス技術114である、同じプロセス技術を用いつつ、動作電圧を減少させるようにされ得る。場合によっては、回路102の再設計は、例えば、演算増幅器106Cやバンドギャップ104Cといった特定のサブ回路ブロックの電気デバイスの、更新された設計仕様を含み得る。他の場合において、例えば、回路レイアウトを調整するための再構築を、例えばドライバ108Cについて示すように、含めることができる。
【0044】
現在、回路設計を改変すること、又は回路設計を1つのプロセスから別のプロセス技術に変換することは、大部分が手動のプロセスである。例えば、回路設計者は、回路が満たすべき設計仕様のセットを有し得る。これらの設計仕様は回路の予期される性能に基づいてもよく、そのため、例えば、増幅器回路が、出力抵抗、歪み、インピーダンスなどのための設計仕様を有し得る。次いで、設計者は、元のプロセス技術における電子構成要素の物理パラメータを考慮に入れ、ターゲットプロセス技術における電子構成要素の物理パラメータを判定して、回路の各電子構成要素を変換し得る。この判定は、主に経験及び直観に基づく。電子構成要素がターゲットプロセス技術に変換された後、完成した回路は、設計仕様に対して、集積回路用シミュレーションプログラム(SPICE:Simulation Program with Integrated Circuit Emphasis)などの回路シミュレーションソフトウェア上でシミュレーションされ得る。変換された回路が設計仕様を満たさない場合、回路設計者は、例えば、特定の電子構成要素の物理パラメータを変更し、回路を再度シミュレートすることによって、回路を調整し得る。この調整もまた、主に経験及び直感に基づいており、概して反復プロセスである。本明細書で用いられるように、電気構成要素は、トランジスタ、抵抗器、コンデンサ、インダクタ、ダイオードなどの回路を構成する構成要素又はデバイスを指すことを理解されたい。
【0045】
アナログ回路を1つのプロセスから別のプロセスに移行させる労力、並びに新しい改善されたアナログ回路の開発を加速するのを助けるために、自動化されたアナログ及びミックスドシグナル回路設計及び検証の実装が望まれている。
【0046】
場合によっては、回路は、例えば回路設計又はシミュレーションプログラムによって、視覚的に提示され得るが、回路の基礎となる表現は、1つ又は複数のネットリストの形態であり得、又はハードウェア記述言語(HDL)であり得る。ネットリスト又はHDLは概して、回路の電気構成要素のリストであり、各電子構成要素が接続されるノードのリストである。場合によっては、属性、構造情報、物理パラメータ、又は他の情報もネットリストに含まれ得る。また、幾つかの実施例において、ネットリスト又はHDLはデータオブジェクトに格納される。
【0047】
サブ回路
【0048】
図2は、本開示の態様に従った、アナログ回路のブロック図200である。アナログ回路202は、複数の電気構成要素を含む任意のタイプのアナログ又はハイブリッドアナログ-デジタル回路である。殆どの実施例では、アナログ回路202が、アナログ回路202内の複数の電気構成要素のうちの1つ又は複数によってアナログ信号を処理、生成、送信、又は受信する。アナログ回路202は、より大きい回路(例えば、集積回路)の一部であってもよく、又はアナログ回路202は、回路全体(例えば、集積回路)であってもよい。典型的には、アナログ回路202は、1つ又は複数の回路ブロック204からなる。たいてい、回路は、回路の特定の部分が特定のタスクを実施するように設計される。例えば、回路202が、特定の機能を実施する部分又は回路ブロック204に分割され得る。回路ブロック204は、任意のタイプの知的財産(「IP」)ブロック、IPコア、機能ブロック、又は構成要素の集合であり得る。幾つかの実施例において、回路ブロック204は回路202である。また、回路ブロック204は、アナログ集積回路202に1つ又は複数の機能を提供し得る。幾つかの実施例において、回路ブロック204はアナログ集積回路202である。これらの回路ブロック204は、例えば、ソフトウェア機能に類似する方式でネットリストに記載され、例えば、回路のより大きな部分を記述する別のネットリスト又は回路ブロックによって参照され得る。場合によっては、回路ブロック204が他の回路ブロックを含み得る。
【0049】
アナログ回路202は、1つ又は複数のサブ回路を含み得、回路ブロック204も、1つ又は複数のサブ回路を含み得る。幾つかの実施例において、サブ回路は、回路ブロック204及び/又はアナログ回路202と同じであってもよい。他の実施例において、回路ブロック204は、回路ブロック204の1つ又は複数のサブ回路のサブセットを含み得る。サブ回路は、回路全体(例えば、回路のサブセット)よりも小さい回路の一部を指す。代替の実施例では、サブ回路が回路全体を指してもよい。
【0050】
サブ回路は、アナログ回路202内の複数の電気構成要素のうちの1つ又は複数を含み得る。サブ回路はサブ回路タイプに分類され得る。サブ回路タイプの非網羅的なリストには、電流ミラー、電流分割器、電流源、電流基準、ドライバ回路、レベルシフト段、利得段、演算増幅器、電流ミラー演算増幅器、反転又は非反転増幅器、フィルタ(例えば、バンドパスフィルタ、ローパスフィルタ、又はハイパスフィルタ)、RC回路、抵抗器ラダー、電圧ラダー、電力増幅器、クロック源、アナログデジタル変換器(「ADC」)、デジタルアナログ変換器(「DAC」)、電圧フォロワ、電圧レギュレータ、ダーリントントランジスタ又はペア、ブースト回路(例えば、昇圧回路)、バック回路(例えば、降圧回路)、ミキサ、変調器、インバータ、信号調整器、積分器、微分器、入力段、出力段、又はアナログ回路で用いられる任意の他の識別可能なサブ回路タイプが含まれ得るが、これらに限定されない。
【0051】
図3A及び図3Bは、本開示の態様に従った、例示の回路ブロック300の回路図である。図3A及び図3Bに示すように、回路ブロック300は、サブ回路302に更に分割され得る。この例では、回路ブロック300は、信号を増幅する機能を実施する。サブ回路302は、基準電圧の供給、電流の複製、信号のフィルタリングなどの目的を達成するように意図された回路ブロック300の部分である。サブ回路302は、そういった目的を達成するために共に動作するように構成された電気構成要素のセットを含み、電気構成要素のセットは、回路ブロックの1つ又は多数の出力パラメータに影響を及ぼし得る。サブ回路は、たいてい、回路ブロック全体の構成要素として機能し、多くの回路ブロックにわたって共通の機能を実施し得る。場合によっては、サブ回路が、機能によって、タイプ又はカテゴリに分類され得る。回路ブロックのサブ回路を分類することは、サブ回路レベルでの変換及び/又は生成のために回路ブロックを分析することを助け、回路ブロックをより容易に分析される構成要素に分解することを助ける。サブ回路タイプの例は、電流ミラー304、入力段306、出力段308、受動部品310、電圧ラダー、抵抗器ラダーなどを含む。場合によっては、回路ブロックのために雑多ブロック312も識別され得る。これらの雑多ブロック312は、例えば、ネストされた回路ブロック314や、他の識別されたサブ回路とともに含まれていないこともある単一の電気構成要素316や、更なる分析を必要とすることがある識別されていないサブ回路などを含み得る。
【0052】
図4は、本開示の態様に従った、サブ回路400を図示する回路図である。この例では、サブ回路400は、或るタイプの電流ミラーであり、第1のトランジスタ402及び第2のトランジスタ402の、2つの電気構成要素を含む。各電気構成要素は幾つかの物理パラメータを有し、物理パラメータは、チャネル幅(W)及びチャネル長(L)、入力及び出力電流、インピーダンス、動作領域(例えば、条件)、n型/p型など、電気構成要素についての測定可能な物理的特性を記述する。サブ回路物理パラメータは、サブ回路の電気構成要素の物理パラメータを指し得、サブ回路物理パラメータはまた、動作情報(例えば、動作ポイント、バイアスポイント、静止ポイント、Qポイントなど)を含み得る。動作ポイントは、電気構成要素が動作するための電気構成要素の端子における電流又は電圧を表す。各電気構成要素は特定の役割を果たすことができ、例えば、第1のトランジスタ404を介して流れる電流(IREF)は、トランジスタ402及び404のサイズの比(N)の関数として、第2のトランジスタ402を介してミラーリングされ、第1のトランジスタ404は電流/電圧変換器として働くことができ、一方、第2のトランジスタ402は電圧/電流変換器として働くことができる。サブ回路の電気構成要素とそれらの関連する物理パラメータとに基づいて、サブ回路全体は、様々なサブ回路性能パラメータに関連付けられ得る。様々なサブ回路性能パラメータを判定することができるが、全てのサブ回路性能パラメータが所与のサブ回路タイプにとって重要であるとは限らない。
【0053】
サブ回路は、複数のサブ回路パラメータを有し得る。サブ回路パラメータは、サブ回路のサブ回路物理パラメータ、サブ回路のサブ回路動作パラメータ、サブ回路のサブ回路性能パラメータ、又は、サブ回路の物理パラメータ、動作パラメータ、及び性能パラメータの組み合わせを含み得る。特定のサブ回路が様々な方式でどのように動作するかを記述し得る様々なサブ回路パラメータが存在し得る。電気構成要素の物理パラメータ、及びサブ回路の電気構成要素がどのように接続されるかは、サブ回路パラメータに影響を及ぼす要因であるが、これらの要因とサブ回路パラメータとの間の関係は、非線形であることが多く、プロセス技術に応じて変化する。サブ回路パラメータは、SPICEシミュレーションなどの回路シミュレーションソフトウェアを用いて、特定のサブ回路について判定され得る。例えば、サブ回路の動作情報は、回路シミュレーションソフトウェアを用いて判定され得る。動作情報は、回路に対する外部の影響、例えば、供給電流の特性を考慮し、サブ回路及び/又は回路の電気デバイスの状態(例えば、バイアス電流)を判定する。場合によっては、回路シミュレーションソフトウェアを用いて動作情報を判定することは、回路シミュレーションソフトウェアを用いてサブ回路のサブ回路性能パラメータを判定することと比較して、比較的迅速に実施され得る。
【0054】
サブ回路パラメータのうち、サブ回路性能パラメータのセットは、サブ回路の電気構成要素の物理パラメータに関する特定のサブ回路の性能を記述することにより一層関連するものとして識別され得る。サブ回路性能パラメータのこのセットは、特定のサブ回路の機能に基づいて、より関連性があると判定され得る。場合によっては、特定のタイプのサブ回路について含まれるサブ回路性能パラメータのセットのサブ回路性能パラメータが事前判定され得る。場合によっては、特定のタイプのサブ回路のためのサブ回路性能パラメータのセットについてのこの事前判定は、どのサブ回路性能パラメータがサブ回路のタイプに対してより一層関連するかに関する専門家の知識及び/又は経験に基づいて行われ得る。
【0055】
場合によっては、サブ回路タイプのためのサブ回路性能パラメータは、アルゴリズム的に事前判定され得る。例えば、問題のサブ回路タイプを含む回路が、第1のプロセス技術から第2のプロセス技術に首尾よく変換された場合、サブ回路タイプは、第1のプロセス技術において設計され、第2のプロセス技術において設計されたように再度モデル化されるように、回路シミュレーションソフトウェアなどにおいて、モデル化され得る。様々なサブ回路性能パラメータが、両方のモデルについて判定され、次いで、変換後にどの性能パラメータが最も厳密に維持されるかを判定するために比較され得る。このプロセスは、サブ回路タイプの複数の例を用いて、同じ又は異なる回路において、並びにサブ回路タイプの異なるトポロジを用いて繰り返されて、代表的なサンプルを取得し、サブ回路タイプを変換するために最も関連する性能パラメータのセットを判定することができる。
【0056】
サブ回路性能パラメータのセットに含まれるサブ回路性能パラメータは、異なるタイプのサブ回路によって果たされる目的が異なるので、異なるタイプのサブ回路について異なり得る。一例として、電流ミラーのためのサブ回路性能パラメータのセットが、電流整合、出力インピーダンス、動作領域、並びに、トランジスタの幅及び長さを含み得る。サブ回路性能パラメータのこのセットに含まれるサブ回路性能パラメータは、入力状態サブ回路タイプに関連するサブ回路性能パラメータの別のセットに含まれるサブ回路性能パラメータとは異なり得る。場合によっては、サブ回路性能パラメータのセットが特定のサブ回路タイプについて定義されていない場合、サブ回路性能パラメータの代わりに電気構成要素の性能パラメータが用いられ得る。
【0057】
図5は、本開示の態様に従った、自動化されたアナログ及びミックスドシグナル回路設計及び検証のための技法の例示の実施例のブロック図500である。ブロック図500に示される例示の実施例は、第1のプロセス技術から第2のプロセス技術に回路設計を変換するための例示の技法の概要を提供し、その態様は以下でより詳しく論じられる。アナログ回路は、1つ又は複数の回路ブロックに分割され得る。これらの回路ブロックは、しばしば、特定の機能を実施するように設計され、1つ又は複数のサブ回路を含む。これらのサブ回路は、共に動作するように構成された1つ又は複数の電気構成要素を含み、1セットの既知のサブ回路を識別することができる。これらの既知のサブ回路は、或るプロセス技術のために或る回路において使用可能であるために十分にロバストであることが知られている電気構成要素(例えば、トポロジ)の幾つかの配置であり得る。サブ回路の各構成要素は、特定の範囲の物理パラメータに関連付けられ得る。サブ回路物理パラメータのセットが識別され得、各セットは、電気構成要素のための物理パラメータの異なる組合せを有する。これらの既知のサブ回路は、例えば、回路シミュレータと共に用いるためのネットリストとして、サブ回路物理パラメータの各セットについてモデル化することができる。このモデル化はネットリストに基づき得、ネットリストは、概して、回路の電気構成要素のリストであり、各電子構成要素が接続されるノードのリストである。ブロック502において、SPICEなどの回路シミュレーションソフトウェアを用いて、これらの既知のサブ回路のモデルをシミュレートすることができる。サブ回路物理パラメータの各セットは、第1のプロセス技術のためのサブ回路物理パラメータの所与のセットに関連する或るサブ回路性能パラメータを識別するためにシミュレートされ得る。ブロック504において、既知のサブ回路(又は特定の実施例によってサポートされるサブ回路)の各サブ回路のためのMLモデルがトレーニングされ得、或るプロセス技術のためのトレーニングされたMLモデルのセットを作成することができる。この実施例では、MLモデルライブラリ506内のこれらのトレーニングされたMLモデルは、入力として、第1のプロセス技術のためのサブ回路の電子構成要素のためのサブ回路物理パラメータのセットを受け取り得、出力として、第1のプロセス技術のためのサブ回路性能パラメータのセットを予測し得る。これらのトレーニングされたMLモデルは、MLモデルライブラリ506に格納され得る。場合によっては、MLモデルライブラリ506は、或るプロセス技術のために一度作成され、必要に応じて再利用され得る。
【0058】
同様に、第2のプロセス技術について、トレーニングされたMLモデルのセットが、入力として、サブ回路性能パラメータのセットを受け取り、サブ回路の電子構成要素のためのサブ回路物理パラメータのセットを予測するように構成され得る。上述のように、サブ回路の各構成要素は、特定の範囲の物理パラメータに関連付けられ得、サブ回路物理パラメータのセットが識別され得、各セットは、電気構成要素のための物理パラメータの異なる組合せを有する。既知のサブ回路のセットは、サブ回路物理パラメータの各セットについて、例えばネットリストとしてモデル化され得る。サブ回路物理パラメータの各セットは、ブロック508において、第2のプロセス技術のためのサブ回路物理パラメータの所与のセットに関連する或るサブ回路性能パラメータを識別するためにシミュレートされ得る。ブロック510において、既知のサブ回路(又は特定の実施例によってサポートされるサブ回路)の各サブ回路のためのMLモデルが、第2のプロセス技術のためのトレーニングされたMLモデルのセットを作成するようにトレーニングされ得る。この実施例では、MLモデルライブラリ512内のこれらのトレーニングされたMLモデルは、入力として、第2のプロセス技術のためのサブ回路性能パラメータのセットを受け取り得、出力として、第2のプロセス技術のためのサブ回路の電子構成要素のためのサブ回路物理パラメータを予測し得る。このトレーニングされたMLモデルのセットは、MLモデルライブラリに格納され得る。
【0059】
そのため、この例は2セットのMLモデルを含む。MLモデルの第1のセットは、第1のプロセス技術のためのサブ回路物理パラメータを取得し、特定のサブ回路のための或るサブ回路性能パラメータを予測する。MLモデルの第2のセットは、特定のサブ回路のための或るサブ回路性能パラメータを取得し、第2のプロセス技術のための特定のサブ回路の電気構成要素のためのサブ回路物理パラメータを予測する。
【0060】
この例では、回路を記述するネットリストなどの回路の表現514が、ブロック516において、1つ又は複数の回路ブロックを識別するために解析され得る。回路ブロックは、ブロック518において、回路ブロックのサブ回路を識別するために解析され得る。サブ回路タイプも識別され得る。ブロック520において、各識別されたサブ回路について、サブ回路の構成要素のサブ回路物理パラメータが識別され、或るサブ回路性能パラメータを予測するために、(例えば、MLモデルライブラリ506に格納された)第1のプロセス技術のための識別されたサブ回路に対応するMLモデルに入力される。次いで、これらの予測された或るサブ回路性能パラメータは、(例えば、MLモデルライブラリ512に格納された)第2のプロセス技術のための識別されたサブ回路に対応する第2のMLモデルに入力され、第2のプロセス技術におけるサブ回路の構成要素のための或るサブ回路物理パラメータを予測する。ブロック522において、ネットリストなどのサブ回路の表現が、各サブ回路の構成要素についての予測された或るサブ回路物理パラメータに基づいて、各識別されたサブ回路について作成され、サブ回路は回路ブロックに接続され得、次いで、回路ブロックは、全体回路を形成するように接続され、そのため、元の回路を第2のプロセス技術において新しい回路に変換する。ブロック524において、この新しい回路は、新しい回路が、設計仕様を満たすことを検証するためにシミュレートされ得、設計仕様が満たされる場合、ブロック526において新しい回路の表現が出力され得る。
【0061】
図6は、本開示の態様に従った、自動化されたアナログ及びミックスドシグナル回路設計及び検証のための技法の例示の実施例のブロック図600である。ブロック図600に示される例示の実施例は、新しい回路を作成するか又は現存する回路を最適化するための例示の技法の概要を提供し、その態様は以下でより詳しく記載される。図5に関連して説明したように、アナログ回路は、回路ブロックとサブ回路とに分割され得る。既知のサブ回路は、サブ回路物理パラメータのセットのために、例えば回路シミュレータと共に用いるためのネットリストとして、モデル化することができる。ブロック502において、SPICEなどの回路シミュレーションソフトウェアを用いて、これらのモデルのモデルをシミュレートすることができる。サブ回路物理パラメータの各セットは、第1のプロセス技術のためのサブ回路物理パラメータの所与のセットに関連する或るサブ回路性能パラメータを識別するためにシミュレートされ得る。ブロック504において、既知のサブ回路(又は特定の実施例によってサポートされるサブ回路)の各サブ回路のためのMLモデルをトレーニングして、或るプロセス技術のためのトレーニングされたMLモデルのセットを作成することができる。この実施例では、MLモデルライブラリ506内の或るトレーニングされたMLモデルは、入力として、第1のプロセス技術のためのサブ回路の電子構成要素のためのサブ回路物理パラメータのセットを受け取り得、出力として、サブ回路性能パラメータのセットを予測し得る。また、MLモデルライブラリ内の他のトレーニングされたMLモデルが、入力として、第1のプロセス技術のためのサブ回路性能パラメータのセットを受け取り得、出力として、第1のプロセス技術のためのサブ回路の電子構成要素のためのサブ回路物理パラメータのセットを予測し得る。これらのトレーニングされたMLモデルは、MLモデルライブラリ506に格納され得る。
【0062】
ブロック516において、回路ブロックは、回路514の表現から識別され得る。例えば、既存の回路を最適化しようと試みるアルゴリズムが、回路ブロックを識別するために、例えばネットリストなどのデータオブジェクトとして格納される、回路の表現を解析することができる。別の例として、新しい回路を作成しようと試みるユーザが、ユーザが作業している回路ブロック516を識別することができる。ブロック518において、回路ブロックの1つ又は複数のサブ回路が識別され得る。例えば、アルゴリズムが、回路ブロックのサブ回路を識別するするために回路ブロックを解析することができる。別の例として、ユーザは、設計を試みているサブ回路タイプを識別することができる。ユーザは、代替的に又は付加的に、回路ブロックの他のサブ回路を識別することができる。ブロック520において、サブ回路のための性能パラメータ値のセットが識別され得る。例えば、アルゴリズムが、各識別されたサブ回路についてサブ回路の構成要素のためのサブ回路物理パラメータを識別し得、これらのサブ回路物理パラメータを、(例えば、MLモデルライブラリ506に格納された)第1のプロセス技術のための識別されたサブ回路に対応するMLモデルに入力して、サブ回路性能パラメータのセットを予測することができる。別の例として、ユーザは、作成されているサブ回路について或るサブ回路性能パラメータを識別することができる。
【0063】
ブロック602において、1つ又は複数のサブ回路性能パラメータが、最適化のために提供され得る。最適化のための1つ又は複数のサブ回路性能パラメータは、サブ回路性能パラメータのセットの他のサブ回路性能パラメータとともに提供され得る。例えば、アルゴリズムが、ブロック520において識別されたサブ回路性能パラメータのセットから1つ又は複数のサブ回路性能パラメータを最適化して、サブ回路の性能を向上させるのを助けることができる。代替として、ブロック520において識別されたサブ回路性能パラメータのセットは、例えば、サブ回路のトポロジを最適化することを試みるために提供され得る。別の例として、ユーザが、作成されているサブ回路について、サブ回路性能パラメータのセット及び識別されたサブ回路タイプを提供することができる。場合によっては、サブ回路タイプ及び/又はサブ回路トポロジの表示も提供され得る。代替として、サブ回路タイプは、例えば、性能パラメータのセットに含まれるサブ回路性能パラメータに基づいて推論され得る。また更に他の場合において、サブ回路は、例えば、サブ回路タイプのトポロジ内の構成要素の寸法又は数などに基づいて、トポロジ内の構成要素の特性に基づいて最適化され得る。
【0064】
サブ回路のトポロジは、サブ回路の電気構成要素の特定の配置を指す。サブ回路タイプの場合、サブ回路を実装するための多くの実用的なトポロジが存在し得る。例えば、図7A図7Bは、入力(又は利得)段サブ回路タイプのための異なるトポロジのセットを示す。
【0065】
ブロック604において、最適化されたサブ回路が識別され得る。例えば、サブ回路トポロジ及び最適化されたサブ回路性能パラメータに基づいて、サブ回路トポロジに基づく適切なMLモデルを選択することと、最適化されたサブ回路性能パラメータをMLモデルに入力してサブ回路トポロジのための新しいサブ回路性能パラメータを取得することとによって、サブ回路の電気構成要素について新しいサブ回路性能パラメータを判定することができる。場合によっては、最適化されたサブ回路のサブ回路トポロジは、元のサブ回路トポロジと同じであり得る。他の場合において、サブ回路トポロジを最適化することができる。例えば、最適化されたサブ回路性能パラメータは、サブ回路タイプの複数のMLモデルに入力されて、サブ回路タイプの複数のサブ回路トポロジのためのサブ回路物理パラメータの複数のセットを生成することができる。次いで、複数のサブ回路トポロジのサブ回路トポロジが、最適化関数によって選択され得る。最適化関数は、コスト関数、損失関数などの任意の既知の最適化技法であり得る。一例として、最適化関数は、第1のプロセス技術に基づいて製造を容易にするために選択された、或る範囲内のそれらの電気構成要素のサブ回路物理パラメータを有する、最小数の電気構成要素に基づいてサブ回路トポロジを選択し得る。ブロック524において、この新しい最適化された回路は、新しい回路が設計仕様を満たすことを検証するためにシミュレートされ得、設計仕様が満たされる場合、ブロック526において、新しい回路の表現が出力され得る。
【0066】
場合によっては、1つ又は複数の既知のサブ回路が識別され得る。サブ回路の特定の目的を達成するために電気構成要素の特定のセットを設計するための複数の方式があり得るが、実際には所与のプロセス技術のための予期される環境条件(例えば、温度範囲、湿度範囲、動作電圧など)のために使用可能であるのに十分に堅牢な、実際的な電気構成要素構成(例えば、トポロジ)の数は限られている可能性がある。例えば、図7A図7Bは、本開示の態様に従った、所与のプロセス技術のための入力段又は利得段の既知のトポロジの例示のセット700を図示する。既知のトポロジのセット700は網羅的ではないことに留意されたい。そうではなく、セット700は、実行可能及び/又は実際に使用可能であることが知られているトポロジを含み得る。場合によっては、特定のサブ回路のための既知のトポロジのセット700は、どのトポロジが実行可能であり及び/又は実際に使用可能であるかに関する専門家の知識及び/又は経験に少なくとも部分的に基づいて、事前判定され得る。
【0067】
場合によっては、既知のトポロジのセット700は、固定されず、必要に応じて付加的なトポロジが付加され得る。例えば、付加的なトポロジが識別されると、これらの付加的なトポロジを手動で付加することができる。他の場合において、付加的なトポロジが、例えば、既知のトポロジの一部として識別されない新しいトポロジ候補の構成要素及びそれらの接続に注目すること、及び、既知のトポロジの一部として事前に認識されなかった他のトポロジ候補のリストに対してこの新しいトポロジ候補をマッチングすることによって、識別され得る。一致がある場合、これらの候補トポロジはユーザに示され得る。代替として、サブ回路性能パラメータのセットが、上述のように、候補トポロジについてアルゴリズム的に判定され得る。サブ回路性能パラメータのセットが、対応するタイプのサブ回路のサブ回路性能パラメータのセットと一致する場合、候補トポロジは、既知のトポロジのセット700に付加され得る。場合によっては、既知のトポロジのセットが、異なるタイプのサブ回路に基づいて編成され得るか、又は、既知のサブ回路の単一のセットがサブ回路の全てのタイプのトポロジを含み得る。
【0068】
サブ回路識別
【0069】
図8は、本開示の態様に従った、元のアナログ回路から新しいアナログ回路を設計するための技法800の概要を示すシステム図である。場合によっては、技法800は、様々なモジュールを含み得る1つ又は複数のソフトウェアプログラムとしてソフトウェアで実装され得る。技法800は、複数のモジュール、ツール、ライブラリなどを用いて編成された実施例の文脈で記載されているが、この編成は明確にするために選ばれており、他の実施例が異なる編成を用いて技法800に記載された技法を実施し得ることが理解され得る。技法800では、既存のアナログ回路を、元の回路802を表す第1のデータオブジェクトによって記述する。データオブジェクトは、値、又は複数値のグループを含む、ストレージ又はメモリの位置又は領域であってもよい。データオブジェクトは、ファイルシステム内の電子ファイル、ブロックストレージ、又はデータを格納することができる任意の他のタイプの電子ストレージを含み得る。元の回路は、回路図、電気図、ネットリスト、HDL、又は、回路の任意のタイプの表現又は設計(例えば、回路設計)であり得る。また、元の回路は、一層大きな回路(例えば、集積回路)のサブセットであってもよい。元の回路802を表す第1のデータオブジェクトは、回路の任意のタイプの電子表現又は回路設計であり得る。元の回路802を表す第1のデータオブジェクトは、現在の回路製造プロセスなどの第1のプロセス技術に関連付けられ得る。現在の回路製造プロセスの表示は、任意の方式で得ることができる。例えば、表示は、ユーザによって入力され得、及び/又は、第1のデータオブジェクトから抽出され得る。幾つかの実施例において、技法800は、元の回路802を表す第1のデータオブジェクト、回路に関連付けられた回路設計、元の回路内の回路ブロック、元の回路内のサブ回路、又は、元の回路内の1つ又は複数の電気構成要素から、第1のプロセス技法を識別することができる。
【0070】
元の回路802を表す第1のデータオブジェクトは、電気構成要素の表現と、電気構成要素間の相互接続とを含み得る。従って、元の回路802を表す第1のデータオブジェクトは、この回路が現在のプロセス技術においてどのように設計されるかを記述する。場合によっては、元の回路802を表す第1のデータオブジェクトは、1つ又は複数のネットリスト、HDL、又は回路の任意の他の電子表現として記載され得る。ネットリストは、回路内の電気構成要素の、及び回路内の電気構成要素間の接続の、電子的表現である。幾つかの実施例において、ネットリストは、回路内の第1の電気構成要素と第2の電気構成要素との間の接続を表すノードも含み得る。ネットリストは、複数の回路ブロックを含み得、各回路ブロックによって回路を編成することができる。場合によっては、ネットリスト及び対応する回路ブロックは、特定のタスク又は機能を実施する部分に編成され得る。幾つかの実施例において、技法800は、元の回路802を表す第1のデータオブジェクト内の回路ブロックを識別する構成要素を含み得る。回路ブロックパーサー803が、第1のデータオブジェクトを解析して、個々の回路ブロックを識別することができる。回路ブロックは、サブ回路パーサー804によって更に解析されて、サブ回路解析規則806のセットに基づいて回路ブロックのサブ回路を識別することができる。他の実施例において、技法800は、第1のデータオブジェクトによって表現される元の回路を用いてサブ回路を識別することができる。幾つかの実施例において、802を表す第1のデータオブジェクト内の元の回路は回路ブロックである。
【0071】
サブ回路解析規則806は、サブ回路の電気構成要素、電気構成要素の物理パラメータ、サブ回路の電気構成要素がどのように接続されるか、電気構成要素がどのような目的を果たすか、識別されたサブ回路が接続される他のサブ回路又は電気構成要素がどのような目的を果たすかなどに、少なくとも部分的に基づき得る。場合によっては、サブ回路解析規則806は、まず、電気構成要素と電気構成要素の接続とに基づいて、サブ回路を識別することを試みることができる。ネットリストでは、各電気構成要素が、タイプ(例えば、トランジスタ(NMOSトランジスタ又はPMOSトランジスタなど)、コンデンサ、抵抗器、インダクタ、又は、任意のタイプの電気構成要素又はデバイス)によって識別され、電気構成要素の接続(例えば、結合)が与えられる。解析規則806は、例えば、ネットリストを解析して、第1の電気構成要素が接続されている1つ又は複数の他の電気構成要素を用いて第1の電気構成要素をグループ化し、既知のトポロジのセットに対して、この電気構成要素のグループを一致させることを試みることができ、その例は、図7A図7Bに示されている。一例として、こういった規則は、或る電気構成要素が、或る電気構成要素又はサブ回路に接続されたソースと、別の或る電気構成要素又はサブ回路に接続されたドレインと、別のトランジスタに接続されたゲートとを有するトランジスタであり、他方のトランジスタが或る接続を有する場合、電気構成要素のこのセットが入力段又は利得段の或るトポロジであることを示し得る。場合によっては、電気構成要素の役割(例えば、分岐、ダイオード接続、利得段、カスケード段など)及び物理パラメータ(例えば、幅(W)、長さ(L)、W/L比など)も考慮され、記録され得る。例えば、電流ミラーサブ回路ブロックが、ダイオード接続された第1のトランジスタと、スレーブ電流源である第2のトランジスタとを含み得る。第1及び第2のトランジスタの両方が同じサブ回路ブロックに属するが、第1及び第2のトランジスタは、サブ回路ブロックにおいて異なる役割を果たし得、異なる電気構成要素パラメータを有し得、異なる方式で構造ブロックの性能パラメータに影響を与え得る。解析は、一致する既知のトポロジが1つだけ残るか又は全く残らなくなるまで、付加的な他の電気構成要素を用いて繰り返され得る。一致するトポロジが1つだけ残っている場合、その一致するトポロジに基づいてサブ回路を識別することができる。一致するトポロジが残っていない場合、付加された最後の付加的な他の電気構成要素はドロップされ得る。この最後の付加的な他の電気構成要素をドロップすることによって、複数の一致する既知のトポロジが残され得、複数の一致する既知のトポロジのうちのどの既知のトポロジが最良の一致であるかを判定するために、競合解決が成され得る。幾つかの実施例において、ネットリストは、1つ又は複数のサブ回路を識別することができ、サブ回路解析規則は、ネットリストによるサブ回路の識別を用いてサブ回路を識別することができる。
【0072】
競合解決は、電気構成要素のグループの電気構成要素、並びに電気構成要素のグループの1つ又は複数の接続(例えば、入力及び出力)を考慮に入れることができる。場合によっては、サブ回路の電気構成要素間などの接続が考慮され得、固有の一致が依然として見つからない場合、サブ回路の電気構成要素と他のサブ回路及び/又は他の電気構成要素との間などの接続も同様に考慮され得る。例えば、図2A及び図2Bを参照すると、電流ミラー220は、一対の抵抗器224を介して接地226に接続された一対のトランジスタ222を含むので、電流ミラーとして識別することができる。同様に、入力段228も一対のトランジスタ230を含む。しかしながらここでは、一対のトランジスタ230は、他の電気構成要素を介して電力供給線VDD232に接続され、入力段228が入力段として識別されることを可能にしている。これらの1つ又は複数の接続は、最も良好に一致する既知のトポロジを識別するために、複数の一致する既知のトポロジの接続と比較され得る。場合によっては、一致する既知のトポロジが見つからない場合、電気構成要素のグループは後の検討のためにフラグが立てられ得、及び/又は、電気構成要素は個別に分析され得る。場合によっては、サブ回路識別を実施するのではなく、各電気構成要素は、電気構成要素への接続、並びに機能回路ブロックにおける電気構成要素の役割に基づいて、個別に識別され得る。
【0073】
サブ回路性能パラメータ
【0074】
サブ回路が識別されると、識別に基づいて、サブ回路性能パラメータのセットが判定され得る。或る実施例において、サブ回路性能パラメータのセットは、サブ回路、回路ブロック、又はアナログ回路の識別された機能に基づいて判定され得る。図9は、本開示の態様に従った、或るサブ回路900のためのサブ回路性能パラメータのセットを示す図である。サブ回路がどのように機能するかは、相互コンダクタンス(G)、チャネルコンダクタンス(GDS)、電流が飽和する最小ドレイン-ソース間電圧(VDSat)、ドレイン電流不一致(Idmm)、閾値電圧不一致(Vtmm)、出力インピーダンス(r)、バルク基板における電圧、ドレインにおける電圧などの、多数のサブ回路性能パラメータによって記述され得る。場合によっては、各タイプのサブ回路がサブ回路性能パラメータのセットに関連付けられ得る。
【0075】
或る実施例において、サブ回路性能パラメータのセットは、サブ回路のタイプごとに定義され得る。性能サブ回路性能パラメータのセットに含まれる特定のサブ回路性能パラメータは、サブ回路のタイプごとに異なり得る。或るサブ回路性能パラメータ904は、別のサブ回路タイプよりも特定のサブ回路タイプに、より一層関連し得る。例えば、電流ミラーは或る相互コンダクタンス値を有し得るが、電流ミラーの相互コンダクタンス値は、電流ミラー902の機能にとって比較的重要ではない場合がある。むしろ、チャネルコンダクタンス、電流が飽和する最小ドレイン-ソース電圧、及びIdmmなどの、電流ミラー902の機能により一層関連するサブ回路性能パラメータ904が、電流ミラーのためのサブ回路性能パラメータのセットに含まれ得る。別の例として、差動対906のためのサブ回路性能パラメータのセットは、相互コンダクタンス(G)、チャネルコンダクタンス(GDS)、及び閾値電圧不一致(Vtmm)のサブ回路性能パラメータ904を含み得る。特定のサブ回路のためのサブ回路性能パラメータのセットのサブ回路性能パラメータは、事前に判定され得る。場合によっては、特定のサブ回路のためのサブ回路性能パラメータのセットの特定のサブ回路性能パラメータは、少なくとも部分的に、専門家の知識及び/又は経験に基づいて判定され得る。他の実施例において、サブ回路性能パラメータのセット中の関連するサブ回路性能パラメータは、識別されたサブ回路、サブ回路の識別された機能、回路ブロック、回路ブロックの機能、回路、又は回路の機能によって、動的に識別される。また、或るタイプのサブ回路に対するサブ回路性能パラメータのセットにおける関連するサブ回路性能パラメータは、識別されたサブ回路に基づいて変化し得る。
【0076】
図8に戻ると、動作シミュレーション808(例えば、動作ポイントシミュレーション)が、本開示の態様に従って成され得る。動作シミュレーション808の場合、回路又は回路の一部は、回路の1つ又は複数のためのサブ回路のサブ回路動作パラメータを判定するために、回路シミュレーションソフトウェアにおいてシミュレートされ得る。例えば、元の回路802の回路ブロック及び/又はサブ回路が、サブ回路のサブ回路動作ポイント情報を判定するために、SPICEシミュレータなどの回路シミュレータにおいてシミュレートされ得る。動作ポイント情報及びバイアスポイント情報を含み得るサブ回路動作パラメータは、入力信号が印加されていない電気構成要素の特定のポイントにおける電圧又は電流(例えば、ドレイン電圧(VDS)、ゲートソース電圧(Vgs)など)を指す。幾つかの実施例において、動作パラメータは、電気構成要素、サブ回路、回路ブロック、又は回路の1つ又は複数の動作ポイント又はバイアスポイントに対応する情報又はパラメータを含み得る。
【0077】
場合によっては、動作パラメータは、識別されたサブ回路に基づき得る。例えば、サブ回路動作パラメータは、回路ブロック及び/又はサブ回路のシミュレーションに基づいて、識別されたサブ回路に対して生成され得る。場合によっては、動作パラメータはまた、電気構成要素レベルで生成され得る。例えば、元の回路808の或る電気構成要素が、識別されたサブ回路に含まれていない場合、電気構成要素について動作パラメータが生成され得る。電気構成要素が識別される他の場合において、元の回路808の電気構成要素について動作パラメータが生成され得る。場合によっては、動作パラメータは、第1のプロセス技術特徴付けモジュール810によって、(例えば、データオブジェクトから取得された)サブ回路物理パラメータ及びサブ回路タイプ情報とともに用いられて、元の回路に関連付けられた第1のプロセス技術のための識別されたサブ回路又は電気構成要素に関連付けられたサブ回路性能パラメータのセットのためのサブ回路性能パラメータ値を判定し得る。
【0078】
第1の回路プロセス技術特徴付けモジュール810は、場合によっては、動作情報及びサブ回路物理パラメータに基づいてサブ回路性能パラメータを予測するための機械学習モデルを作成し、トレーニングし、格納し、提供する。第1のプロセス技術特徴付けモジュール810は、機械学習(ML)ライブラリ506内にトレーニングされたMLモデル812を含み得る。場合によっては、技法800が動作するように構成された既知のトポロジに対応するMLモデルが存在し得る。トレーニングされたMLモデル812は、データオブジェクトに格納され、表現され得る。トレーニングされたMLモデル812は、MLライブラリ506に格納され得る。MLライブラリ506は、複数のMLモデルを格納し、複数のMLモデルへのアクセスを提供することができる。或る実施例において、トレーニングされたMLモデル812は、規則、命令、アルゴリズム、又は、パターンを認識する任意のタイプのデータオブジェクト、の任意のセットで
あり得る。
【0079】
MLモデル812が、シミュレートされたサブ回路502のセットに基づいてトレーニングされ得る(504)。場合によっては、MLモデル812が、第1の(例えば、ソース)プロセス技術のためのサブ回路のバリエーションに基づいてトレーニングされ得る。例えば、既知のサブ回路トポロジの第1のサブ回路トポロジが、第1のプロセス技術のための様々なサブ回路性能パラメータ及び動作パラメータを用いてシミュレートされ得る(502)。このシミュレーションは、SPICEシミュレーションなどの回路シミュレータを用いて実施され得る。シミュレーションは、第1の技術プロセスにおける第1のトポロジのためのサブ回路性能パラメータ及び動作パラメータの変形に対応するサブ回路性能パラメータのセットを生成する。次いで、第1のサブ回路トポロジのためのMLモデルは、第1のプロセス技術のためのそのMLモデルのための対応するサブ回路性能パラメータを予測するために、サブ回路性能パラメータ及び動作パラメータの変形を用いてトレーニングされ得る(504)。シミュレートされたサブ回路502、及びシミュレートされたサブ回路502の結果は、データオブジェクトに格納され、表現され得る。
【0080】
場合によっては、MLモデル812は、MLモデルライブラリ506に格納され得る。MLモデル812は、線形回帰モデル、大マージン分類器(例えば、サポートベクトルマシン)、主成分分析、ツリーベース技法(例えば、ランダムフォレスト又は勾配ブーストツリー)、又はニューラルネットワークを含む、種々のMLモデル化技法を使用し得る。線形回帰モデルは、入力パラメータと出力との間の線形関係を仮定するMLモデルであり得る。大マージン分類器は、判定境界からの出力の距離(例えば、マージン)を返すMLモデルであってもよい。サポートベクトル機械MLモデルは、データ入力のn個の特徴に基づいてn次元空間内のデータアイテムをプロットして、データアイテムを異なるクラスに区別する超平面を見つける。主成分分析MLモデルは、データアイテムの特徴がどのように関係するかのマトリックスを作成し、どの特徴がより重要であるかを判定する。ランダムフォレストツリーMLモデルは、データアイテムが与えられたクラス予測のためのディシジョンツリーの大きなグループを作成し、ディシジョンツリーのグループから予測を生成する。ディシジョンツリーのグループにおいて最も一般的な予測は、クラス予測である。勾配ブーストツリーMLモデルは、リンクされ、階層化されたディシジョンツリーのセットを使用し、予測は、ディシジョンツリーのグループの各層によって行われた予測の重み付けされた合計に基づく。ニューラルネットワークMLモデルは、入力データを評価するために重み付けされる、リンクされ階層化された関数(例えば、ノード、ニューロンなど)のセットを用いる。ニューラルネットワークMLモデル化技法は、完全に接続されたもの(ここでは、層の全てのニューロンが層の1つおきのノードに接続されている)、正則化に完全に接続されたもの(ここでは、正則化関数が完全に接続されたニューラルネットワークに付加されて、過剰フィッティングを回避するのを助ける)、及び、ドロップアウト(これは、ノードを除去してネットワークを単純化する)及び適応性モーメント推定オプティマイザ拡張ニューラルネットワーク(これは、勾配降下アルゴリズムを用いてネットワークのデータパラメータを低減する)などのオプティマイザに完全に接続されたものを含み得る。
【0081】
所与のプロセス技術において実装される特定のタイプのサブ回路は、第1のプロセス技術のためのサブ回路物理パラメータ(例えば、物理パラメータ)及び動作パラメータの実用的な範囲に関連付けられ得る。サブ回路物理パラメータの実用的な範囲は、例えば、ユーザによって提供されてもよく、実用的な範囲は、プロセス技術の制限に基づいてもよい。例えば、第1のプロセス技術において実装される電流ミラーサブ回路は、サブ回路の電気構成要素のための許容可能な入力基準電流(例えば、10nA~20μA)、最小及び最大トランジスタ幅(例えば、1μm~100μm)、及び長さ(例えば、1μm~10μm)の範囲を有し得る。他の場合において、サブ回路の実用的な範囲は、例えば、プロセス技術に関連するパラメータの範囲を分析することによって、又は回路及び/又はサブ回路がシミュレーションに失敗するまでパラメータの範囲にわたって回路及び/又はサブ回路をシミュレートすることなどによって、自動的に判定され得る。次いで、第1のプロセス技術のための特定のサブ回路トポロジに関連するサブ回路性能パラメータ(例えば、性能パラメータ)を生成するために、サブ回路物理パラメータ(例えば、物理パラメータ)及びサブ回路動作パラメータの実用的な範囲の選択にわたって、特定のサブ回路トポロジをシミュレートすることができる(502)。例えば、図4に示されるものなどの特定の回路ミラートポロジが、サブ回路性能パラメータとサブ回路動作パラメータとの様々な組み合わせ、例えば、電気構成要素のW/L、入出力電流、インピーダンス、動作領域(例えば、状態)、n型/p型などを用いてシミュレートされて(502)、それぞれの物理パラメータ及びそれぞれのサブ回路動作パラメータに関連するサブ回路性能パラメータ(例えば、性能パラメータ)を生成することができる。サブ回路性能パラメータは、相互コンダクタンス(G)、チャネルコンダクタンス(GDS)、電流が飽和する最小ドレイン-ソース間電圧(VDsat)、ドレイン電流不一致(Idmm)、閾値電圧不一致(Vtmm)、出力インピーダンス(r)、バルク基板における電圧、ドレインにおける電圧など、図9に関連して記載されるサブ回路性能パラメータを含むが、これらに限定されない。幾つかの実施例において、サブ回路が付加的なサブ回路性能パラメータを生成するために、サブ回路パラメータ(物理パラメータ及び性能パラメータを含む)及び動作パラメータの様々な組み合わせを用いてシミュレートされ得る。また、場合によっては、サブ回路物理パラメータ、サブ回路性能パラメータ、及びサブ回路動作パラメータの組み合わせは網羅的ではなく、むしろ、アナログ半導体技術製造ばらつきにおいて典型的に識別される場合を包含するガウス分布及び均一分布を網羅するように、サブ回路物理パラメータ、サブ回路性能パラメータ、及びサブ回路動作パラメータの組み合わせが選択及びシミュレートされる。例えば、動作ポイントが、サブ回路物理パラメータの実用的な範囲にわたって実質的に均一に選択され得、付加的な動作ポイントが、所与のサブ回路又は回路に対して最も一般的に用いられる(又は用いられることが予期される)サブ回路物理パラメータの範囲内で選択される。
【0082】
場合によっては、サブ回路物理パラメータ、サブ回路動作パラメータ、及び、シミュレーションから得られる生成されたサブ回路性能パラメータのセットは、シミュレートされたサブ回路トポロジに対応するMLモデル504をトレーニングするために用いられ得る。
【0083】
MLモデルの使用
【0084】
特定のプロセス技術における特定のサブ回路トポロジのためのMLモデルが、サブ回路物理パラメータ及び動作パラメータ、並びに対応する生成されたサブ回路性能パラメータに基づいて、トレーニングされ得る。上述のように、サブ回路物理パラメータ、動作パラメータ、及び対応する生成されたサブ回路性能パラメータの複数のセットが、サブ回路物理パラメータの実用的な範囲にわたって取得される。これらのパラメータのセットは、トレーニングセットとテストセットとに分割することができる。MLモデル812はトレーニングセットを用いてトレーニングされ得、MLモデル812のトレーニング504はテストセットによって検証され得る。MLモデル812をトレーニングするために、MLモデル812への入力パラメータとして或るパラメータを提供することができ、次いで、MLモデル812は入力パラメータに基づいて或る予測を行い、これらの予測は、シミュレーションから見つけられた既知の正しい出力パラメータと比較される。この比較に基づいて、MLモデル812は、例えばノード重みを調整することによって、
調整され得、MLモデル812が、既知の正しい出力パラメータに密接に一致する予測を行うことを可能にし得る。MLモデルトレーニング504は次いで、MLモデル812を用いて検証されて、テストセットを用いて予測を行い、次いで、MLモデル812によって出力された予測を、テストセットに関連付けられた既知の正しい出力と比較することができる。
【0085】
特定のサブ回路トポロジのためのサブ回路パラメータ(サブ回路物理パラメータ、サブ回路性能パラメータ、及びサブ回路動作パラメータを含む)は、第1のプロセス技術のための特定のサブ回路トポロジのためのMLモデル812をトレーニングするために用いられ得る。例えば、シミュレートされた特定のサブ回路トポロジからのサブ回路物理パラメータ及びサブ回路動作パラメータは、第1のプロセス技術における特定のサブ回路トポロジのためのサブ回路物理パラメータ及びサブ回路動作パラメータのセットと共に提示されたときに、或るサブ回路性能パラメータを予測するためにMLモデル812をトレーニングするためのトレーニングセットとして用いられ得る。このMLモデル812は、トレーニングを検証するためにテストセットを用いてテストされ得る。例えば、テストセットのサブ回路物理パラメータ及び動作パラメータをMLモデル812に入力して、予測されたサブ回路性能パラメータを生成することができる。次いで、これらの予測されたサブ回路性能パラメータは、MLモデル812が正確な予測を生成していることを検証するために、関連するサブ回路物理パラメータ及び動作パラメータを用いてサブ回路をシミュレートすることによって生成された既知のサブ回路性能パラメータと比較される。MLモデル812をトレーニングするための技法は、以下でより詳細に記載される。
【0086】
トレーニングされると、特定のサブ回路トポロジのためのこのMLモデル812は、第1のプロセス技術のための他のサブ回路トポロジのための他のMLモデルと共にMLモデルライブラリ506に格納され得る。場合によっては、MLモデルライブラリ506は、技法800の実施例によってサポートされる識別されたサブ回路トポロジのためのトレーニングされたMLモデルを含み得る。
【0087】
サブ回路動作パラメータが与えられると、元の回路802の識別されたサブ回路のためのサブ回路性能パラメータとともに、ソース回路プロセス技術特徴付けモジュール810は、MLモデルライブラリ506からの識別されたサブ回路のための対応するトレーニングされたMLモデル812を位置特定し得、位置特定されたMLモデルを用いて、識別されたサブ回路のための特定のサブ回路性能パラメータ818を予測し得る。
【0088】
場合によっては、第2のプロセス技術特徴付けモジュール820は、第1のプロセス技術特徴付けモジュール810と同様である。例えば、第2の回路プロセス技術特徴付けモジュール820は、MLライブラリ512内にトレーニングされたMLモデル822を含むこともできる。場合によっては、技法800が動作するように構成された既知のトポロジに対応するMLモデルが存在し得る。トレーニングされたMLモデル822は、データオブジェクトに格納され表現され得る。トレーニングされたMLモデル822は、MLライブラリ512に格納され得る。MLライブラリ512は、複数のMLモデルを格納し、それらへのアクセスを提供し得る。或る実施例において、トレーニングされたMLモデル822は、規則、命令、アルゴリズム、又は、パターンを認識する任意のタイプのデータオブジェクト、の任意のセットであり得る。第2の回路プロセス技術特徴付けモジュールは、任意の数の回路プロセス技術に関連付けられたMLモデルを含み得ることが理解され得る。場合によっては、第2の回路プロセス技術特徴付けモジュールは、例えば、サブ回路を最適化するのを助けるために、第1のプロセス技術に関連するMLモデルを含み得る。
【0089】
MLモデル822が、シミュレートされたサブ回路508のセットに基づいてトレーニングされ得る(510)。場合によっては、MLモデル822は、第2(例えば、ターゲット)プロセス技術のためのサブ回路のバリエーションに基づいてトレーニングされ得る。例えば、既知のサブ回路トポロジの第1のサブ回路トポロジは、第2のプロセス技術のための様々なサブ回路物理パラメータ及び動作パラメータを用いてシミュレートされ得る(508)。このシミュレーションは、SPICEシミュレーションなどの回路シミュレータを用いて実施され得る。シミュレーションは、第2のプロセス技術における第1のトポロジのサブ回路物理パラメータ及びサブ回路動作パラメータの各変形に対応するサブ回路性能パラメータのセットを生成する。次いで、第1のサブ回路トポロジのためのMLモデル822は、第2のプロセス技術のためのそのMLモデルのための対応するサブ回路性能パラメータを予測するために、サブ回路物理パラメータ及び動作パラメータの変形を用いてトレーニングされ得る(510)。シミュレートされたサブ回路508、及びシミュレートされたサブ回路508の結果は、データオブジェクトに格納され表現され得る。所与のプロセス技術について、サブ回路物理パラメータ、サブ回路動作パラメータ、及び対応する生成されたサブ回路性能パラメータの複数のセットが、実用的な範囲のサブ回路性能パラメータにわたって取得され、同じ複数のセットが、MLモデルトレーニング504又はMLモデルトレーニング510のために用いられ得ることが理解され得る。場合によっては、MLモデル822は、MLモデルライブラリ512に格納され得る。MLモデル822はまた、線形回帰モデル、大マージン分類器(例えば、サポートベクトルマシン)、主成分分析、ツリーベース技法(例えば、ランダムフォレスト又は勾配ブーストツリー)、又はニューラルネットワークを含む、種々のMLモデル化技法を使用し得る。特定のサブ回路トポロジが、第2のプロセス技術のための特定のサブ回路トポロジに関連する付加的なサブ回路性能パラメータを生成するために、或るサブ回路物理パラメータ及び動作パラメータの実用的な範囲の選択にわたってシミュレートされ得る(508)。サブ回路物理パラメータの実用的な範囲は、例えば、ユーザによって提供されてもよく、実用的な範囲は、プロセス技術の制限に基づいてもよい。例えば、図3に示されるもののような特定の回路ミラートポロジが、第2のプロセステクノロジのためのそれぞれのサブ回路物理パラメータ(例えば、物理パラメータ及び/又は動作パラメータ)に関連するサブ回路性能パラメータのセットを生成するために、サブ回路物理パラメータとサブ回路動作パラメータの様々な組み合わせ(例えば、電気構成要素のW/L、入出力電流、インピーダンス、動作範囲(例えば、状態)、n型/p型など)を用いてシミュレートされ得る。他の場合において、サブ回路の実用的な範囲は、例えば、プロセス技術に関連するパラメータの範囲を分析することによって、又は回路及び/又はサブ回路がシミュレーションに失敗するまでパラメータの範囲にわたって回路及び/又はサブ回路をシミュレートすることなどによって、自動的に判定され得る。次いで、サブ回路物理パラメータ、動作パラメータ、及び、特定のサブ回路トポロジのシミュレーションから生じる生成されたサブ回路性能パラメータを用いて、第2のプロセス技術のための特定のサブ回路トポロジのMLモデル510をトレーニングすることができる。例えば、サブ回路物理パラメータ、サブ回路動作パラメータ、及び、シミュレートされた回路ミラートポロジから生じる対応する生成された性能サブ回路性能パラメータは、第2のプロセス技術における特定の回路ミラートポロジのためのサブ回路性能パラメータのセットと共に提示されたときに、サブ回路物理パラメータ及びサブ回路動作パラメータを予測するためにMLモデルをトレーニングするためのトレーニングセットとして用いられ得る。
【0090】
MLモデル822はトレーニングセットを用いてトレーニングされ得、MLモデル822のトレーニング510はテストセットによって検証され得る。MLモデル822をトレーニングするために、MLモデル822への入力パラメータとして或るパラメータを提供することができ、次いで、MLモデル822は、入力パラメータに基づいて或る予測を行い、これらの予測は、シミュレーションから見つけられた既知の正しい出力パラメータと比較される。この比較に基づいて、MLモデル822は、例えばノード重みを調整することによって、調整され得、MLモデル822が、既知の正しい出力パラメータに密接に一致する予測を行うことを可能にし得る。例えば、トレーニング後、MLモデル812は、第2のプロセス技術における回路ミラートポロジのためのサブ回路性能値のセットを受け取るとき、サブ回路物理パラメータ及びサブ回路動作パラメータを予測し得る。
【0091】
このMLモデルは、トレーニングを検証するためにテストセットを用いてテストされ得る。トレーニング510は、MLモデル822を用いて検証され得、テストセットを用いて予測を行い、次いで、MLモデル822によって出力された予測を、テストセットに関連付けられた既知の正しい出力と比較する。例えば、テストセットのサブ回路物理パラメータ及びサブ回路動作パラメータをMLモデルに入力して、予測されたサブ回路性能パラメータを生成することができる。次いで、これらの予測されたサブ回路性能パラメータは、関連するサブ回路物理パラメータ及びサブ回路動作パラメータを用いてサブ回路をシミュレートすることによって生成された既知のサブ回路性能パラメータと比較されて、MLモデルが正確な予測を生成していることを検証する。
【0092】
トレーニングされると、特定のサブ回路トポロジのためのこのMLモデルは、第2のプロセス技術のための他のサブ回路トポロジのための他のMLモデルとともに、トレーニングされたMLモデルのセット822(例えば、別のMLモデルライブラリ)に格納され得る。場合によっては、トレーニングされたMLモデルのセット822は、各識別されたサブ回路のためのトレーニングされたMLモデルを含み得る。場合によっては、モデルライブラリ812及び別のモデルライブラリ822が、単一のモデルライブラリに結合され得る。
【0093】
上記のように、第2のプロセス技術のための特定のサブ回路トポロジのためのサブ回路パラメータ(サブ回路物理パラメータ、サブ回路性能パラメータ、及びサブ回路動作パラメータを含む)は、第2のプロセス技術のための特定のサブ回路トポロジのためのMLモデル822をトレーニングするために用いられ得る。例えば、或るサブ回路性能パラメータは、或る他のサブ回路物理パラメータ及びサブ回路動作パラメータを予測するためにMLモデル812をトレーニングするためのトレーニングセットとして用いられ得る。このMLモデル812は、トレーニングを検証するためにテストセットを用いてテストされ得る。例えば、予測された他のサブ回路物理パラメータ及びサブ回路動作パラメータは、次いで、MLモデル822が特定のサブ回路トポロジの正確な予測を生成していることを検証するために、サブ回路をシミュレートしてサブ回路性能パラメータを生成するために用いられる、既知のサブ回路物理パラメータ及び動作パラメータと比較される。トレーニングされると、特定のサブ回路トポロジのためのMLモデル822は、第2のプロセス技術のための他のサブ回路トポロジのための他のMLモデルと共にMLモデルライブラリ512に格納され得る。場合によっては、MLモデルライブラリ512は、技法800の実施例によってサポートされる識別されたサブ回路トポロジのためのトレーニングされたMLモデルを含み得る。
【0094】
そのため、データオブジェクト802によって表現される、元の回路の識別されたサブ回路のためのサブ回路性能パラメータが与えられると、第2のプロセス技術特徴付けモジュール820は、MLモデルライブラリ512からの識別されたサブ回路のための対応するトレーニングされたMLモデル822を位置特定し、トレーニングされたMLモデル822を用いて、識別されたサブ回路のためのサブ回路動作パラメータ及び/又は動作パラメータを予測する(828)ことができる。識別されたサブ回路の構成要素についてサブ回路物理パラメータのセットが判定されると、識別されたサブ回路のデータオブジェクト表現は、サブ回路の対応する構成要素についてのサブ回路物理パラメータのセットを用いて第2のプロセス技術に変換される。例えば、変換されたサブ回路のネットリストが、判定されたサブ回路物理パラメータを用いて生成され得る。
【0095】
フォーマットツール830は、変換中に生じる可能性がある、フォーマット、接続図、及び/又はマッピング問題を修正することができる。場合によっては、フォーマットツール830は、変換されたデータオブジェクト(例えば、ネットリスト)を修正するために用いるために、元の回路設計802から或るフォーマット情報、接続情報、及び/又はマッピング情報を抽出することができる。場合によっては、このネットリストは、必要に応じて、回路ブロック及び他の回路ブロックの変換されたバージョンのためのネットリストなど、別のネットリストに接続されるか又は別のネットリストに添付されて、第2のプロセス技術のための新しい回路832を表すデータオブジェクトを出力することができる。場合によっては、新しい回路832を表すデータオブジェクト内の変換されたサブ回路、変換された回路ブロック、及び/又は新しい回路は、例えば回路シミュレータ内でシミュレートされて、新しい回路832を表すデータオブジェクト内の新しい回路の性能が元の回路802の或る性能範囲内にあることを検証することができる。この性能の範囲は、新しい回路832の意図された目的に応じて変化し得、この性能の範囲は、回路設計者、エンジニアなどにより、種々の方式で定義され得る。一例として、新しい制御回路が、所与の入力設定に対するターゲット電圧/電流の、例えばパーセンテージなどの、或る範囲内の出力電圧又は電流を有することを保証するために、新しい制御回路が試験され得る。
【0096】
上述のように、トレーニングされたMLモデルは、様々なプロセス技術のために、MLモデルライブラリに格納され得る。MLモデルライブラリは、非一時的データストレージ媒体からMLモデルライブラリを編成、格納、及び/又は取り出すために用いられる任意の数のデータ構造、オブジェクト、又はプロセスを指し得る。例えば、MLライブラリ506及びMLライブラリ512は、様々なプロセス技術に関連する複数のMLライブラリを含む単一のMLライブラリ(図示せず)内の論理MLライブラリであってもよい。場合によっては、これらのMLモデルライブラリは、新しいアナログ回路を設計する一部として用いることもできる。例えば、アナログチップ設計者が、或るサブ回路性能パラメータを有する特定のサブ回路を望む可能性がある。サブ回路の各電気構成要素の物理パラメータを手動で判定するのではなく、サブ回路の特定のトポロジに対応するトレーニングされたMLモデルをMLモデルライブラリから選択することができる。サブ回路物理パラメータは、選択されたトレーニングされたMLモデルと、選択されたトレーニングされたMLモデルによって判定された適切なサブ回路物理パラメータとに提供され得る。
【0097】
場合によっては、1つ又は複数の技法を用いて、トレーニングされたMLモデルをMLモデルライブラリから選択することができる。例えば、トレーニングされたMLモデルを実行することは、MLモデルをトレーニングすることよりも実質的に迅速であることが多いので、サブ回路性能パラメータの所与のセットは、選択されたサブ回路タイプに対応するMLモデルライブラリのトレーニングされたMLモデルのうちの任意の数又は全てに提供され得る。次いで、選択されたサブ回路のための或るトポロジに対応するトレーニングされたMLモデルが、適切なサブ回路性能パラメータを生成することが可能であったトレーニングされたMLモデルから選択され得る。例えば、選択されたトレーニングされたMLモデルは、提供された物理パラメータについて最も少ない電気構成要素を有するトレーニングされたMLモデルに対応し得る。別の例として、MLモデルライブラリを用いて、サブ回路性能パラメータなどの適切なサブ回路パラメータをMLモデルライブラリ(又はMLモデルライブラリに関連する論理)に提供することによって、或るサブ回路のための特定のトポロジを選択することができる。サブ回路タイプは、例えば提供される特定のサブ回路性能パラメータに基づいて、提供されてもよく、又は、推論されてもよい。次いで、サブ回路タイプに関連する異なるトポロジの様々な(又は全ての)MLモデルを、提供されたサブ回路性能パラメータを用いて実行して、使用に適切であり得るサブ回路タイプのトポロジのセットを判定することができる。次いで、サブ回路タイプの特定のトポロジが、トポロジのセットから選択され得る。場合によっては、この選択はユーザによって成され得る。場合によっては、サブ回路タイプのための1つ又は複数のトポロジが、ユーザに選択又は提案され得る。サブ回路のためのトポロジのセットのトポロジは、選択又は提案を提供するために、例えば、複雑さ、様々な性能パラメータに関連するコスト関数、全体的なサイズなどに基づいて分析され得る。
【0098】
上述の例では、第1のプロセス技術のために設計された特定のサブ回路のサブ回路性能パラメータを予測するために、第1のMLライブラリ506のMLモデルによって物理パラメータが用いられ得る。次いで、これらのサブ回路性能パラメータは、第2のMLライブラリ512のMLモデルによって用いられて、第2のプロセス技術のために設計された特定のサブ回路のサブ回路性能パラメータを生成することができる。そのため、各MLライブラリは、特定のプロセス技術に関連付けられる。プロセス技術ごとに異なるMLライブラリを用いることは、或るプロセス技術から別のプロセス技術への回路の変換、1つのプロセス技術を用いた1つの部分と別のプロセス技術を用いた他の部分とを有する回路を設計すること、特定の回路に対してどのプロセス技術が最も適切であるか(例えば、コスト、性能などの点で)を判定するために多くのプロセス技術にわたって検索することなど、様々なシナリオを可能にするのに役立つ。場合によっては、例えばそのような柔軟性が必要とされない場合、第1及び第2のMLモデルの代わりに、第1のプロセス技術におけるサブ回路のサブ回路性能パラメータを第2のプロセス技術におけるサブ回路のサブ回路性能パラメータに直接変換するようにトレーニングされた単一のMLモデルを用いることができる。
【0099】
サブ回路に関して説明したが、サブ回路のMLモデルをトレーニングするための同様のサブ回路性能パラメータを予測するために、電気構成要素などの他のサブ回路もまた、サブ回路物理パラメータの或る範囲にわたってシミュレートされ得ることが理解され得る。
【0100】
例示のMLモデル
【0101】
図10は、本開示の態様に従った、例示のニューラルネットワークMLモデル1000を示す。或る実施例において、MLモデルを用いたアナログ回路のモデル化が、MLモデルの入力パラメータ(例えば、特徴)としてサブ回路パラメータを用いることによって実施され得る。代替の実施例において、MLモデルを用いたアナログ回路のモデル化が、MLモデルのパラメータとしてサブ回路物理パラメータを用いて実施され得る。例示のニューラルネットワークMLモデル1000は、そのようなニューラルネットワークMLモデル1000がどのようにトレーニングされ得るかを理解するのを助けるために提示される簡略化された例である。MLモデルの各実装は、用いられるMLモデルのタイプ、MLモデルに用いられるパラメータ、パラメータ間の関係、所望のトレーニング速度などを含むが、これらに限定されない様々な要因に応じて、異なる方式でトレーニング又は調整され得ることを理解されたい。この簡略化された例では、W及びLのサブ回路物理パラメータ値が、MLモデル1000へのパラメータ入力1002及び1004である。各層(例えば、第1の層1006、第2の層1008、及び第3の層1010)は、複数のノード(例えば、ニューロン)を含み、概して、行列乗算のセットなど、パラメータに対して成される動作のセットを表す。例えば、各ノードは、(第1の層1006のノードとは別に)入力として、前の層からの出力と重みとをとる数学的関数を表す。重みは、典型的には、MLモデルトレーニング中に調整され、MLモデルトレーニング後に固定される。ノードの特定の数学的関数は、MLモデル実装に応じて変化し得る。現在の例は、3つの層をアドレス指定するが、場合によっては、MLモデルが任意の数の層を含み得る。概して、各層は、M個の入力パラメータをN個の出力パラメータに変換する。第1の層1006へのパラメータ入力は、接続のセットを有する第2の層1008への入力として出力される。層(第1の層1006など)の各ノードが、後続の層(第2の層1008など)の各ノードに出力するので、MLモデル1000は、完全に接続されたニューラルネットワークである。他の実施例は、部分的に接続されたニューラルネットワーク又は別のニューラルネットワーク設計を利用することもでき、それは、層の各ノードを後続の層の各ノードに接続しなくてもよい。
【0102】
この例では、第1の層1006が、第2の層1008に入力される第1の層1006からの出力を生成するために入力パラメータ(例えば、入力パラメータ1002及び1004)に適用される重みのセットに基づく関数を表す。後続の層によって前の層の各ノードから受け取られた入力に対して、異なる重みが適用され得る。例えば、第2の層1008のノードの場合、ノードは、第1の層1006のノードから受け取られた入力に重みを適用し、ノードは、第1の層1006の各ノードから受け取られた入力に異なる重みを適用し得る。ノードは受け取られた入力及び対応する重みに基づいて1つ又は複数の関数を計算し、数を出力する。例えば、ノードは、前の層のノードからの入力値を対応する重みで乗算し、その乗算の結果にわたって合計する、線形結合関数を用いることができ、これは、出力のための結果として得られる数のためのフロアとして作用する非線形活性化関数と結合される。任意の既知の重み付けされた関数が、本開示の範囲内でノードによって適用され得ることが理解され得る。この出力数は、後続の層に入力されてもよく、又は層が、この例では第3の層1010などの、最終層である場合、数は結果(例えば、出力パラメータ)として出力され得る。場合によっては、層のノードによって適用される関数が層間で異なり得る。ノードによって適用される重みは、ニューラルネットワークの予測が予期された結果とどのくらい正確に比較されるかを記述する関数である損失関数、損失関数に基づいて重み設定調整を判定するのに役立つ最適化アルゴリズム、及び、ニューラルネットワークの層を介して重み調整を逆に適用するエラーアルゴリズムの逆伝播に基づいて、トレーニング中に調整され得る。任意の最適化アルゴリズム(例えば、勾配降下、ミニバッチ勾配降下、確率的勾配降下、適応最適化器、運動量など)、損失係数(例えば、平均二乗誤差、クロスエントロピー、最尤推定など)、及びエラーアルゴリズムの逆伝播(例えば、スタティック又は反復的逆伝播)が、本開示の範囲内で用いられ得る。
【0103】
ニューラルネットワークなどの或るMLモデルは、ハイパーパラメータを含み得る。MLモデルのハイパーパラメータは、層内の幾つかのノード、層の数、学習速度など、トレーニングを介して導出できないMLモデルの動作を制御するパラメータを指し得る。
拡張されたMLモデル化技術
【0104】
上記のように、複数のタイプのサブ回路のための複数のトポロジが存在し得るので、これらのトポロジ及びサブ回路に対してMLモデルを効率的に生成するためにMLモデル化技法を拡張することが有用であり得る。これらの回路のパラメータを正確に予測するアナログ回路及びハイブリッド回路のためのMLモデルを生成することは、アナログ回路及びハイブリッド回路は、電気構成要素の物理パラメータが変化するにつれて、高度に非線形的な方式で応じ得るので、困難であり得る。また、現在のMLモデル化技法を用いて、例えばニューラルネットワークMLモデルとして、このような挙動をモデル化することは、所望の精度を達成するために、モデルのパラメータの実質的なトレーニング時間及び/又は手動調整を必要とし得る。これにより、MLモデルのバルク生成が困難になる可能性がある。バルクMLモデル作成を合理化するのを助けるために、MLモデル作成は、MLモデル内の入力パラメータとして相互作用パラメータを含めることと、閾値段階的選択を用いて入力パラメータに対して次元削減を実施することとによって、拡張され得る。
【0105】
場合によっては、プロセス技術の特性がアナログ回路の挙動に影響し得る。これに対処するのを助けるために、プロセス技術の挙動を記述する1つ又は複数のプロセス技術パラメータが、MLモデルへの入力パラメータとして含まれ得る。そのようなプロセス技術パラメータの例は、酸化物の厚さ、チャネルドーピング濃度、電子移動度などを含み得る。
【0106】
非線形性に対処することを更に助けるために、相互作用パラメータ1012などのパラメータ相互作用が、入力パラメータとしてMLモデル1000に付加され得る。相互作用パラメータは、例えば、異なる入力パラメータが互いにどのように相互作用し得るかを記述する1つ又は複数の関数を表す。例えば、関数A×Bは入力パラメータA及びBを有し得る。相互作用パラメータCを作成することができ、ここで、C=A×Bであり、これはパラメータA及びBの乗算に基づいてモデルが変更にどのように応答するかを表す。別の例として、相互作用パラメータDを作成することができ、ここで、
であり、これはパラメータA及びBの乗算の平方根に基づいてモデルが変更にどのように応答するかを表す。場合によっては、これらの相互作用は回路理論式に基づき得る。一例として、MLモデルへの入力パラメータは、CMOSトランジスタの相互コンダクタンスを判定するための式に基づき得る。この例では、MLモデルMLgmがMLgm=f(W,L,T,NCH,Tox,I,IDS)などの入力パラメータを有し得、ここで、入力パラメータはそれぞれ、電気構成要素の幅、電気構成要素の長さ、温度、Nチャネルドーピング濃度、酸化物厚さ、電気構成要素のドレイン電流バイアス、及び電気構成要素のドレイン・ソース端子間の電圧を表す。1つの既知の非線形パラメータ相互作用は、相互コンダクタンス
の一次方程式である。パラメータ相互作用
は、W、L、及びIのための入力パラメータデータから判定され、
及びMLgm=f(W,L,T,NCH,Tox,I,IDS)となるように入力パラメータとしてMLモデルに提供され得る。MLモデルへの入力として非線形相互作用を付加することは、MLモデルによって必要とされるトレーニングの量を低減するのに役立ち得る既知の相互作用を優先的に提供することに役立つ。
【0107】
幾つかの実施例において、既知の回路理論方程式(例えば、相互コンダクタンスのための一次方程式)を含むことなどによって、回路理論に基づいて非線形性を特徴付けることを試みることが、高次相互作用項を導入し得、次元(例えば、MLモデルに入力されるパラメータの数)を増加させ得る。MLモデルへの入力のためのパラメータの数を減らすのを助けるために、次元削減が成され得る。次元削減は、それらのパラメータがモデル挙動に影響を与えないと判定された場合、MLモデルへの入力としてパラメータを除去する。次元削減は、変数の数を減らすこと、MLモデルに入力されるパラメータの最適なセットを識別すること、及び/又はMLモデルの処理時間を減らすことに役立ち得る。場合によっては、次元削減は閾値段階的選択を用いて成され得る。
【0108】
閾値段階的選択
【0109】
閾値段階的選択は、入力パラメータ相互作用を段階的に反復し、パラメータ相互作用がモデル挙動に対して有する有意性を判定し、閾値を満たさないパラメータ相互作用を除去することによって、より高次のパラメータ相互作用を構築するのに役立つ。このようにして、MLモデルの次元を最小化しながら、より高次の相互作用を判定することができる。図11は、本開示の態様に従った、閾値段階的選択1100のための一連のMLモデルパラメータを図示する。閾値段階的選択は、パラメータの初期セット1102から始まる。この例では、初期セット1102の変数A、B、C、及びDは、MLモデルへの一般的な入力パラメータ(例えば、サブ回路物理パラメータ、サブ回路性能パラメータ、定数、プロセス技術を記述するパラメータなど)を表し、そのため、MLモデルの結果Rは、A、B、C、及びDの関数であり、R=f(A、B、C、D)である。場合によっては、Rは、MLモデルによってモデル化されているサブ回路のMLモデルの予期された結果(例えば、サブ回路性能パラメータ又はサブ回路性能パラメータ)を表し得る。パラメータの初期セット1102は、相互作用パラメータ1012を含むこともできる。第1の段階において、第1のパラメータを他のパラメータの各々と相互作用させて、パラメータの第2のセット1104を生成することができる。パラメータ間のこの相互作用は、MLモデルにおけるノードの数学的関数に基づき得る。例えば、一般的なパラメータAが入力パラメータ1002を表し、Bが図10の入力パラメータ1004を表すと仮定すると、ABは、MLモデル1000の第2の層1008において、重みなしに入力パラメータ1002及び入力パラメータ1004に適用される関数に対応する相互作用を表し得る。そのため、より高次のパラメータ値は、構成要素パラメータから得られる相互作用値を表す。例えば、相互作用が乗算であると仮定すると、A=2及びB=3の場合、AB=6である。C=4の場合、ABC=24である。Aが既知の回路理論方程式などの方程式である場合、その式は、値を得るために評価され、この値は相互作用のために用いられる。
【0110】
この例では、パラメータAは、パラメータB、C、及びDと相互作用して、パラメータの第2のセット1104に示すように、パラメータAB、AC、及びADを生成し、その結果、パラメータの第2のセット1104のRは、R=f(A、B、C、D、AB、AC、AD)に対応することになる。この例では、パラメータAが相互作用されるが、初期セット1102の任意のパラメータが、第1のセット1102の他のパラメータと相互作用され得ることが理解され得る。場合によっては、相互作用は、ニューラルネットワークのノードにおけるパラメータ間として適用される数学的関数に基づき得る。次いで、第2のセット1104のパラメータに対して線形回帰が実施され得る。線形回帰は、第2のセット1104のパラメータ間の関係をモデル化することを試みる線形関数であり、線形回帰の結果は、(例えば、MLモデルによってモデル化されているサブ回路トポロジの回路シミュレーションによって判定されるように)MLモデルの予期された結果と比較され得る。統計的有意性検査(例えば、帰無仮説検査)を用いて、統計的有意値(例えば、帰無仮説p値)を判定して、線形回帰結果に対するパラメータの第2のセット1104の各パラメータの寄与を予測することができる。次いで、統計的有意値は、統計的有意値について定義された閾値と比較され得る。統計値の閾値は、閾値段階的選択アルゴリズムへの入力として固定値として判定されてもよく、或いは、閾値は、ベイズハイパーパラメータ最適化などの既知の技法によって判定され得る。ベイズハイパーパラメータ最適化は、MLモデルのハイパーパラメータを判定するための技法である。MLモデルのハイパーパラメータは、層内のノードの数、層の数、学習率など、トレーニング介して導出できないMLモデルの動作を制御するパラメータを指すことがある。この例では、最適化されるべきハイパーパラメータは、統計的有意性の閾値であってもよい。第3の段階において、統計的有意性の閾値、この例では、パラメータの第2のセット1104のパラメータC、AB、及びAC、を満たさないパラメータは破棄され得る。
【0111】
第4の段階において、パラメータの初期セット1102の各パラメータを用いて第1~第3の段階を繰り返して、パラメータの第4のセット1110を得ることができる。例えば、初期セット1102の第2のパラメータは、第2のセット1104のパラメータと(統計的有意性の閾値を満たさなかったパラメータなしで)相互作用され得る。この相互作用は、パラメータの第2のセット1104を生成するために実施される相互作用と実質的に同様であり得る。線形回帰は、第2のセット1104のパラメータに対して実施されるのと実質的に同じ方式で、第3のセット1106のパラメータに対して実施され得、統計的有意性のための閾値、この例では、パラメータの第3のセット1106のパラメータBA及びBAD、を満たさないパラメータが破棄され得る。この相互作用/線形回帰/破棄パラメータは、パラメータの第4のセット1110など、段階的閾値選択のラウンドの結果として生じるパラメータを得るために、初期セット1102の各パラメータについて繰り返すことができる。場合によっては、この段階は、後続の段階がパラメータをモデル化問題において重要でないと判定した場合であっても、パラメータの初期セット1102の全てにわたって繰り返される。たとえパラメータのみがモデル結果に寄与しなくても、パラメータの他のパラメータとの相互作用は重要であり得る。相互作用を介してループするときに個々の有意性にかかわらず、パラメータの初期セット1102の全てを含めることは、全てのパラメータの有意な相互作用が失われないことを確実にするのに役立つ。
【0112】
第4のセット1110における結果として生じるパラメータは、第4のセット1110における結果として生じるパラメータの精度を判定するために、(例えば、回路シミュレーションを介して取得される)予期された結果と比較され得る。精度が閾値精度値を満たす場合、パラメータの第4のセット1110は、サブ回路のMLモデルのための入力パラメータとして用いられ得る。閾値精度値は任意の方式で、例えば、実験、経験などによって、判定され得る。
【0113】
第5の段階において、精度が閾値精度値を満たさない場合、閾値精度値がパラメータの最終セット1108などの閾値段階的選択のラウンドから得られるパラメータによって満たされるまで、パラメータの初期セット1102と結果として得られるパラメータ(第4のセット1110のパラメータなど)とを相互作用させることによって、第1~第4の段階が繰り返され得る。そうすることは、この例では、最終セット1108の相互作用パラメータCBD及びABCDなどのより高次の相互作用パラメータをもたらし得る。場合によっては、この第5の段階における反復の数は、例えば、所定の回数のラウンドに基づいて、結果として得られるパラメータの精度が増加しなくなった場合や、結果として得られるパラメータのパラメータが変更されていない場合などに、制限され得る。この例では、より高次のパラメータが、相互作用されたパラメータ(例えば、複数文字によって図11において表されるパラメータ)から生じる相互作用パラメータによって表現され得ることに留意されたい。示されるように、閾値段階的選択は、より高次パラメータが開発されることを可能にし、一方で、次元削減を介してパラメータの総数を依然として制限する。閾値段階的選択段階によって判定されるようにパラメータの最終セット1108は、モデル化されるサブ回路に対して最も統計的に有意であるパラメータのセットを表す。閾値段階的選択段階によって最も統計的に有意であると判定されたパラメータを開始ポイントとして(例えば、MLモデルへの入力のための初期パラメータとして)用いることによって、或るレベルの精度を得るためにMLモデルをトレーニングするのに必要な時間量が低減され得る。
【0114】
場合によっては、所望の閾値精度値が閾値段階的選択によって満たされない場合、閾値段階的選択は、精度を改善するのを助けるために、スタックされたモデルと併せて適用され得る。スタックされたモデルは、閾値段階的選択から出力されたパラメータの最終セット1108などの初期モデルから導出された情報を入力として用いて、後続のモデル化技法を導くのを助ける。例えば、所定の数のラウンドの閾値段階的選択を適用した後、所望の閾値精度値が満たされない場合、閾値段階的選択の最後のラウンド中に選択されたパラメータは、サブ回路物理パラメータ及びシミュレートされたサブ回路性能パラメータ上でトレーニングされたニューラルネットワークなどの、MLモデルへの入力として用いられ得る。次いで、このMLモデルは、任意の既知のML調整技法を用いて更に調整され得る。例えば、ベイズハイパーパラメータ最適化をMLモデルに適用して、MLモデルのハイパーパラメータを調整することもできる。ベイズハイパーパラメータ最適化は、検証スコアに基づいて異なるハイパーパラメータが調整されるときに、ハイパーパラメータがMLモデルの精度にどのように影響するかの確率モデルに基づいて、MLモデルのハイパーパラメータを判定するための技法である。検証スコアは、MLモデルのハイパーパラメータを調整し、調整されたハイパーパラメータを用いてMLモデルの予測を生成するようにMLモデルをトレーニングし、予期された結果に対してこれらの予測を評価して検証スコアを計算することによって、判定され得る。
【0115】
図12は、本開示の態様に従った、アナログ回路1200を設計するための技法の概要を図示するフローチャートである。ブロック1202において、第1のプロセス技術のための回路を表すデータオブジェクトを受け取ることができ、この回路は、第1のサブ回路を含み、第1のサブ回路は、第1の電気構成要素及び第2の電気構成要素を含み、第1の電気構成要素及び第2の電気構成要素は、第1のトポロジに配置される。例えば、アナログ回路はネットリストとして記述され得、ネットリストは、電気構成要素及びそれらの電気構成要素の接続のリストである。ブロック1204において、第1のサブ回路は、第1のトポロジを格納されたトポロジと比較することによって、データオブジェクト内で識別され得、格納されたトポロジは第1のプロセス技術に関連付けられる。例えば、機能回路ブロックは、信号を増幅すること、2つの信号を比較すること、クロック信号を生成することなどの機能を実施する回路のセットを表すアナログ回路の一部であってもよく、機能回路ブロックは、機能の開始及び終了など、ネットリスト内の機能の境界によって位置特定され得る。ネットリストは、これらの機能回路ブロックを位置特定するために解析され得る。機能回路ブロックは、1つ又は複数のサブ回路を含む。サブ回路は、機能回路ブロック内で特定の目的を共に果たす、1つ又は複数の電気構成要素からつくられ得る。サブ回路の目的を実際に実施することができる電気構成要素の配置は、比較的限られた数であり得る。電気構成要素のこれらの配置は、例えばチップ設計経験に基づいて、所定のサブ回路のセットとして事前判定され得る。場合によっては、所定のサブ回路のこのセットは、網羅的でなくてもよく、アナログ回路において見られる可能性がより高いと判定されたサブ回路を含んでもよい。場合によっては、第1のサブ回路は、規則のセットに基づいて識別され得る。場合によっては、これらの規則は、少なくとも部分的に第1のサブ回路の接続に基づき得る。
【0116】
ブロック1206において、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連付けられたサブ回路物理パラメータ値が識別される。例えば、ネットリストは、回路の電気構成要素に関連する物理パラメータを含み得る。更に、動作ポイントシミュレーションを用いて、サブ回路のための動作パラメータを得ることができる。ブロック1208において、第1のサブ回路の第1の機械学習(ML)モデルと識別されたサブ回路物理パラメータとに基づいて、第1のサブ回路のためのサブ回路性能パラメータ値のセットが判定される。例えば、異なるタイプのサブ回路が、異なるセットの性能パラメータに関連付けられ得る。性能パラメータの例には、相互コンダクタンス、チャネルコンダクタンス、最小ドレイン-ソース電圧、閾値電圧不整合などが含まれる。場合によっては、識別された第1のサブ回路に関連する物理パラメータのセットのための性能パラメータ値が、識別されたサブ回路の第1のMLモデルに基づいて判定され得る。例えば、識別された第1のサブ回路に関連する物理パラメータが、識別された第1のサブ回路のための性能パラメータ値を判定するために、第1のプロセス技術のための識別されたサブ回路の第1のトレーニングされたMLモデルに入力され得る。
【0117】
ブロック1210において、第2のプロセス技術のための識別された第1のサブ回路から第2のサブ回路への変換は、サブ回路性能パラメータ値の判定されたセットに基づいて行われる。例えば、第2のMLモデルが、識別された第1のサブ回路のタイプに基づいて選択され得る。第2のMLモデルは、第2のプロセス技術のための第2のMLモデルと、サブ回路性能パラメータ値のセットとに基づいて、第3の電気構成要素と第2のサブ回路の第4の電気構成要素とに関連付けられたサブ回路物理パラメータの第2のセットを判定し、サブ回路物理パラメータの第2のセットのサブ回路物理パラメータを第2のサブ回路の第3の電気構成要素及び第4の電気構成要素と関連付けるように構成され得る。例えば、性能パラメータは、第2のプロセス技術のための識別されたサブ回路の第2のトレーニングされたMLモデルに入力されて、第2のプロセス技術のための第2のサブ回路の電気構成要素の物理パラメータ値を判定することができる。場合によっては、第1及び第2のトレーニングされたMLモデルは、ニューラルネットワークであってもよい。次いで、第2のプロセス技術における第2のサブ回路のネットリストが、物理パラメータ値に基づいて判定され得る。ブロック1212において、変換された第2のサブ回路が出力され得る。例えば、第2のサブ回路のネットリストが出力され得る。場合によっては、第2のプロセス技術は、アナログ回路の第1のプロセス技術と比較して、より小さい回路電気構成要素に関連する第2の半導体製造プロセスを含む。例えば、第2のプロセス技術は、第1のプロセス技術と比較して、より小さいサイズのトランジスタに関連し得る。場合によっては、第2のサブ回路は、第2のサブ回路の回路シミュレーションと、第1のサブ回路に関連する性能パラメータとに基づいて検証され得る。例えば、出力ネットリストは、第2のサブ回路の性能パラメータが第1のサブ回路に関連する性能パラメータの閾値量内にあることを検証するために、回路シミュレータ上でシミュレートされ得る。
【0118】
図13は、本開示の態様に従った、アナログ回路1300を設計するための技法の概要を図示するフローチャートである。ブロック1302において、或る回路を表すデータオブジェクトが受け取られ、この回路はサブ回路を含み、サブ回路は、第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む。例えば、アナログ回路は、1つ又は複数の回路ブロックを含むネットリストとして記述され得る。これらの回路ブロックは、各々、回路ブロックのトランジスタ、抵抗器、コンデンサ、インダクタ、ダイオードなどの1つ又は複数の電気構成要素を含む。ブロック1304において、格納されたトポロジのセットが受け取られる。例えば、既知のサブ回路のためのトレーニングされたMLモデルを含むトレーニングされたMLモデルのライブラリが、メモリストレージから格納され、アクセスされ得る。ブロック1306において、第1の電気構成要素と、第2の電気構成要素と、第1の電気構成要素及び第2の電気構成要素の接続とが識別され得る。例えば、機能回路ブロックの第1の電気構成要素が、メモリストレージに格納された1セットの所定の電気構成要素タイプに基づいて識別され得る。例えば、電気構成要素は、機能回路ブロック内で特定の役割を果たし、第1の電気構成要素の役割が、第1の電気構成要素がどの他の電気構成要素に接続されているかに基づいて判定され得る。この役割は、電気構成要素のタイプと共に、1セットの所定の電気構成要素から第1の電気構成要素を識別するために用いることができる。場合によっては、第1の回路は、規則のセットに基づいて識別され得る。ブロック1308において、第1の電気構成要素と第2の電気構成要素との間の結合が、第1の電気構成要素の接続に基づいて判定される。例えば、ネットリストは、電気構成要素間などの接続の記述を含み得、この記述は、電気構成要素間などの接続を判定するために解析され得る。解析は、規則のセットを用いて実施され得る。場合によっては、解析規則のセットの規則は、第1の電気構成要素の識別されたタイプ、第1の電気構成要素の接続、及び第2の電気構成要素の識別されたタイプに少なくとも部分的に基づき得る。一例として、この規則のセットは、電気構成要素の可能な接続、及びそれらの接続の様々なサブ回路タイプ又はトポロジへのマッピングを記述し得る。場合によっては、解析規則のセットの規則は、第1の電気構成要素及び第2の電気構成要素の物理パラメータに少なくとも部分的に基づき得る。
【0119】
ブロック1310において、第1のトポロジは、識別された第1の電気構成要素と、識別された第2の電気構成要素と、第1の電気構成要素と第2の電気構成要素との間の判定された結合と、格納されたトポロジのセットのトポロジとの間の比較に基づいて判定される。ブロック1312において、識別された第1のトポロジを出力することができる。例えば、識別されたトポロジは、サブ回路性能パラメータ又はサブ回路物理パラメータを予測するための1つ又は複数のMLモデルによる使用のために出力され得る。場合によっては、比較に基づいて、格納されたトポロジのセットのうちの複数のトポロジが一致し得るという判定がなされる。そのような場合、第3の電気構成要素と、第3の電気構成要素の接続とが識別され得、第3の電気構成要素の接続に基づいて、第3の電気構成要素と第1の電気構成要素又は第2の電気構成要素のいずれかとの間の結合が判定される。格納されたトポロジのセットのトポロジは、第1のトポロジを識別するために、識別された第1の電気構成要素、識別された第2の電気構成要素、識別された第3の電気構成要素、第1の電気構成要素と第2の電気構成要素との間の判定された結合、及び、第3の電気構成要素と第1の電気構成要素又は第2の電気構成要素のいずれかとの間の識別された結合、と比較される。例えば、電気構成要素のセットと既知のトポロジのセットのトポロジとの間の複数の一致が見出される場合、電気構成要素のセットは、電気構成要素のセットの現在の電気構成要素に結合される付加的な電気構成要素を含むように拡張され得る。次いで、既知のトポロジのセットに対するマッチングが、電気構成要素の拡張されたセットを用いて再度実施され得る。
【0120】
図14は、本開示の態様に従った、サブ回路1400を識別するための技法を図示するフローチャートである。ブロック1402において、プロセス技術のための回路を表すデータオブジェクトが受け取られ、この回路は第1のサブ回路を含み、第1のサブ回路は第1のトポロジに配置される第1の電気構成要素及び第2の電気構成要素を含む。例えば、アナログ回路は、1つ又は複数の回路ブロックを含むネットリストとして記述され得る。機能回路ブロックは、1つ又は複数のサブ回路を含む。サブ回路は、機能回路ブロック内で特定の目的を共に果たす1セットの電気構成要素からつくられ得る。ブロック1404において、回路内の第1のサブ回路は、第1のトポロジを格納されたトポロジと比較することによって識別され、格納されたトポロジは第1のプロセス技術に関連付けられている。例えば、サブ回路の目的を実際に実施し得る電気構成要素の配置の数は比較的限られている。電気構成要素のこれらの配置は、例えばチップ設計経験に基づいて、所定のサブ回路のセットとして事前判定され得る。場合によっては、事前判定されたサブ回路のこのセットは網羅的でなくてもよく、アナログ回路において見られる可能性がより高いと判定されたサブ回路を含んでもよい。第1のサブ回路は、事前判定されたサブ回路のセットと比較され得る。
【0121】
ブロック1406において、第1のサブ回路の第1の電気構成要素及び第2の電気構成要素に関連付けられた物理パラメータ値の第1のセットが識別される。例えば、ネットリストは、回路の電気構成要素に関連する物理パラメータを含み得る。また、動作ポイントシミュレーションを用いて、サブ回路のための動作パラメータを得ることができる。ブロック1408において、第1のサブ回路の第1の機械学習(ML)モデルと物理パラメータ値の識別されたセットとに基づいて、第1のサブ回路の性能パラメータ値のセットが判定される。例えば、異なるタイプのサブ回路を、異なるセットの性能パラメータに関連付けることができる。性能パラメータの例には、相互コンダクタンス、チャネルコンダクタンス、最小ドレイン-ソース電圧、閾値電圧不整合などが含まれる。場合によっては、識別された第1のサブ回路に関連する物理パラメータのためのセットの性能パラメータ値は、識別されたサブ回路の第1のMLモデルに基づいて判定され得る。例えば、識別された第1のサブ回路に関連する物理パラメータは、識別された第1のサブ回路のための性能パラメータ値を判定するために、第1のプロセス技術のための識別されたサブ回路の第1のトレーニングされたMLモデルに入力され得る。ブロック1410において、識別された第1のサブ回路は、性能パラメータ値の判定されたセットに基づいて、プロセス技術のための第2のサブ回路に変換され、第2のサブ回路は、第2のトポロジに配置される第3の電気構成要素及び第4の電気構成要素を有する。場合によっては、第1のサブ回路のタイプが、第1の電気構成要素と第2の電気構成要素との接続に基づいて識別される。性能パラメータ値の判定されたセットは、その処理技術のために、第1のサブ回路の識別されたタイプの1つ又は複数のMLモデルに入力され、第1のサブ回路のタイプに関連する1つ又は複数のトポロジに対応する物理パラメータ値の1つ又は複数のセットが受け取られる。第2のトポロジは、1つ又は複数のトポロジから選択される。場合によっては、第2のトポロジを選択することは最適化関数に基づく。この最適化関数は、1つ又は複数のトポロジのうちのトポロジの幾つかの電気構成要素に基づき得る。場合によっては、最適化関数は、選択された第2のトポロジに対応する物理パラメータ値のセットの1つ又は複数のトポロジ物理パラメータ値に対応する物理パラメータ値に基づき、第3の電気構成要素及び第4の電気構成要素に関連付けられる。
【0122】
図15は、本開示の態様に従った、回路1500を設計するための技法を図示するフローチャートである。ブロック1502において、サブ回路タイプの表示及びサブ回路性能パラメータ値のセットが受け取られ得る。例えば、ユーザが、サブ回路タイプの表示と、サブ回路タイプの1つ又は複数のサブ回路性能パラメータ値とを提供することができる。ブロック1504において、サブ回路トポロジが、サブ回路タイプ及びサブ回路性能パラメータ値のセットに基づいて判定され得る。例えば、サブ回路タイプのための特定のサブ回路トポロジが提供され得、サブ回路タイプのためのMLモデルが識別され得る。別の例として、サブ回路性能パラメータ値は、サブ回路タイプに対応する複数のサブ回路MLモデルに提供され得る。サブ回路MLモデルのこのセット、及び対応するサブ回路トポロジは、MLモデルライブラリから取得され得る。サブ回路性能パラメータ値は、サブ回路MLモデルに対応するサブ回路トポロジのための対応するサブ回路性能パラメータを判定するために、サブ回路MLモデルのセットのサブ回路MLモデルに入力され得る。場合によっては、サブ回路トポロジのためのサブ回路性能パラメータがサブ回路性能パラメータについて判定され得ない場合、サブ回路トポロジはサブ回路トポロジのセットから除去され得る。次いで、最適化関数がサブ回路トポロジを選択するために、サブ回路トポロジのセットのサブ回路トポロジに適用され得る。最適化関数は、コスト関数、損失関数などの任意の既知の最適化技法であり得る。一例として、最適化関数は、第1のプロセス技術に基づいて製造を容易にするために選択された特定の範囲内のそれらの電気構成要素のサブ回路性能パラメータを有する、最小数の電気構成要素に基づいてサブ回路トポロジを選択し得る。
【0123】
ブロック1506において、サブ回路トポロジの第1の機械学習(ML)モデル及びサブ回路性能パラメータ値のセットに基づいて、サブ回路物理パラメータ値のセットが判定される。場合によっては、サブ回路物理パラメータ値のセットは、サブ回路トポロジを判定することの一部として判定され得る。ブロック1508において、サブ回路物理パラメータ値の判定されたセットと、判定されたサブ回路トポロジとに基づいてサブ回路を表すデータオブジェクトが生成される。例えば、サブ回路のネットリスト表現が、判定されたサブ回路トポロジ及び判定されたサブ回路物理パラメータ値を用いて生成され得る。ブロック1510において、データオブジェクトが出力される。
【0124】
図16は、本開示の態様に従った、回路1600を設計するための技法を図示するフローチャートである。ブロック1602において、サブ回路の電気構成要素のためのサブ回路物理パラメータの第1のセットと、第1のプロセス技術の表示とが受け取られる。例えば、第1のサブ回路の電気構成要素のための物理パラメータが、それらの電気構成要素がどのように接続されるかの記述とともに受け取られ得、並びに第1のサブ回路が関連付けられているプロセス技術に関係する情報が受け取られ得る。場合によっては、性能パラメータのセットも受け取られ得、性能パラメータは、どの性能パラメータが第1のサブ回路に適用可能であるかを示す。ブロック1604において、構造サブ回路の電気構成要素のためのサブ回路性能パラメータの第1のバリエーションが判定され、第1のバリエーションは、サブ回路物理パラメータの第1のセットのサブ回路物理パラメータから変化する少なくとも1つのサブ回路物理パラメータを含む。場合によっては、サブ回路の電気構成要素のための物理パラメータのバリエーションのセットを判定することは、第1のプロセス技術のための物理パラメータ値の実用的な範囲に基づいて、電気構成要素のための物理パラメータのバリエーションを判定することを含む。ブロック1606において、第1のプロセス技術におけるサブ回路物理パラメータの第1のバリエーションは、第1のバリエーションに関連するサブ回路性能パラメータ値の第1のセットを生成するためにシミュレートされる。例えば、特定のサブ回路について、物理パラメータのセットは、物理パラメータ値のセットを用いて特定のサブ回路をシミュレートすることによって生成され得る。物理パラメータ値のこれらのセットの物理パラメータ値は、それぞれの物理パラメータ値に関連する実用値の範囲にわたって変化し得る。場合によっては、物理パラメータのバリエーションのセットがサブ回路の非線形挙動を示すために識別される。場合によっては、サブ回路のための物理パラメータのバリエーションのセットは、サブ回路の集積回路用シミュレーションプログラム(SPICE)回路モデルを有するシミュレーションプログラムを用いてシミュレートされ得る。
【0125】
ブロック1608において、構造サブ回路の機械学習(ML)モデルが、第1のプロセス技術のための、第1のバリエーションと、第1のバリエーションに関連するサブ回路性能パラメータのセットとを含むバリエーションのセットに基づいてトレーニングされる。場合によっては、サブ回路のMLモデルは、線形回帰、大マージン分類器、主成分分析、ツリーベース、又はニューラルネットワーク機械学習モデルのうちの1つを含む。場合によっては、MLモデルをトレーニングすることは、MLモデルへの入力のためのパラメータのセットを識別することを含む。場合によっては、MLモデルへの入力のためのパラメータのセットは、物理パラメータのセット又は生成された性能パラメータ、及び、第1のプロセス技術に関連する1つ又は複数のパラメータ、又は第2のプロセス技術に関連する1つ又は複数のパラメータのうちの一方に基づく。ブロック1610において、トレーニングされたMLモデルが格納される。場合によっては、トレーニングされたMLモデルのライブラリが、所定のサブ回路のセットの各サブ回路に対するトレーニングされたMLモデルを含む。場合によっては、トレーニングされたMLモデルのライブラリでは、各トレーニングされたMLモデルが特定のサブ回路に関連付けられ、各トレーニングされたMLモデルは、トレーニングされたMLモデルのライブラリ内の他のトレーニングされたMLモデルとは異なり得る。
【0126】
図17A図17Bは、本開示の態様に従った、回路モデル化1700のための技法を図示するフローチャートである。ブロック1702において、パラメータの初期セットが受け取られ、パラメータの初期セットは、サブ回路に関連付けられる。例えば、サブ回路のMLモデルのためのサブ回路性能パラメータ又はサブ回路物理パラメータのセットが受け取られ得る。ブロック1704において、パラメータの初期セットの第1のパラメータが、パラメータの初期セットの他のパラメータと相互作用されて、相互作用されたパラメータのセットを生成する。例えば、第1のパラメータは、パラメータのセットの別のパラメータと相互作用されて、相互作用されたパラメータを生成し得る。ブロック1706において、パラメータの候補セットを生成するために、相互作用されたパラメータが初期セットパラメータに付加される。例えば、相互作用されたパラメータは、パラメータのセットに付加され得る。ブロック1708において、パラメータの候補セットのパラメータの予測値を判定するために、予期されるパラメータ値のセットに対するパラメータの候補セットのパラメータに対して線形回帰が実施され得る。例えば、線形回帰は、MLモデルの予期された結果と比較したパラメータ間の関係をモデル化することを試み、統計的有意性検査を線形回帰の結果に適用して、パラメータのセットのパラメータの統計的有意値を判定し得る。場合によっては、この線形回帰方程式はテイラー級数回帰に基づき得る。
【0127】
ブロック1710において、予測値と所定の予測閾値との間の比較に基づいて、パラメータの候補セットのパラメータが除去される。例えば、パラメータのセットのパラメータの統計的有意値は、所定の閾値と比較されてもよく、所定の閾値を満たさないパラメータはパラメータのセットから除去され得る。場合によっては、統計的p値が最小p値と比較され得、最小p値未満のp値を有する変数は候補セットから除去され得る。複数の変数が、各ラウンドにおける変数の候補セットから除去され得る。ブロック1712において、パラメータの候補セットの精度が、予期されるパラメータ値のセットに基づいて判定され得る。例えば、パラメータの候補セットは、精度を判定するために、予期された結果と比較され得る。変数の候補セットに基づく予測値は、変数の候補セットの精度を判定するために、パラメータ値の予期されたセットと比較され得る。場合によっては、パラメータの初期セットの各パラメータが、精度判定の前にパラメータの初期セットの他のパラメータと相互作用され得る。例えば、元の変数の各々は、元の変数が候補変数のセットから除去された場合であっても、候補変数のセットの候補変数と相互作用され得る。ブロック1714において、パラメータの候補セットの精度が、所定の精度レベルと比較され得る。ブロック1716において、パラメータの候補セットの精度が所定の精度レベルに達した場合、ブロック1718においてパラメータの候補セットが出力される。パラメータの候補セットの精度が所定の精度レベルに達しない場合、特定の段階を繰り返すことができる。
【0128】
ブロック1720において、パラメータの初期セットの第2のパラメータが、パラメータの候補セットの他のパラメータと相互作用される。この相互作用は、ブロック1704に関連して説明した相互作用と同様であってもよく、別のパラメータがパラメータのセットの別のパラメータと相互作用されて、相互作用されたパラメータを生成し得る。ブロック1722において、相互作用されたパラメータは、パラメータの候補セットに付加される。例えば、相互作用されたパラメータは、パラメータのセットに付加され得る。ブロック1724において、パラメータの候補セットのパラメータのための予測値を判定するために、予期されるパラメータ値のセットに対するパラメータの候補セットのパラメータに対して線形回帰が実施され得る。ブロック1726において、予測値と所定の予測閾値との間の比較に基づいて、パラメータの候補セットのパラメータが除去される。ブロック1728において、パラメータの候補セットの精度は、予期されるパラメータ値のセットに基づいて判定され得る。ブロック1730において、パラメータの候補セットの精度が、所定の精度レベルと比較され得る。ブロック1732において、パラメータの第2の候補セットの精度が所定の精度に達した場合、ブロック1718において、パラメータの候補セットが出力される。ブロック1732において、パラメータの初期セットの各パラメータが候補セットの他のパラメータと所定の回数だけ相互作用された場合、ブロック1718においてパラメータの候補セットが出力される。そうでない場合、ブロック1720~1730は、パラメータの初期セットの別のパラメータを用いて繰り返され得る。
【0129】
場合によっては、パラメータの初期セットは、プロセス技術の特性に基づく1つ又は複数のパラメータ値を含み得る。場合によっては、パラメータの初期セットは、パラメータの第1のセットの1つ又は複数のパラメータ値間の理論的相互作用に基づく1つ又は複数のパラメータ値を含み得る。
【0130】
精度が所定の精度レベルに達していない場合において、第2のMLモデルが、選択された変数のセットとパラメータ値の第2のセットのパラメータ値とに基づいてトレーニングされ得る。例えば、十分なレベルの精度が満たされておらず、変数の元のセット内の各変数が所定の回数相互作用された後に反復が終了した場合、候補変数の最終セットを用いて別のMLモデルをトレーニングし得る。他のMLモデルが十分に正確である場合、線形回帰方程式の代わりに、他のMLモデルが、例えばMLライブラリに、格納され得る。付加的に、第2のMLモデルの精度が判定され得る。また、第2のMLの精度が所定の精度レベルよりも大きいという判定がなされ得、選択された変数のセット及び第2のMLモデルが、プロセス技術のためのサブ回路のための第1のMLモデルとして格納され得る。場合によっては、第2のMLモデルはニューラルネットワークであってもよい。場合によっては、ベイズハイパーパラメータ最適化が、第2のMLモデルに適用され得る。場合によっては、ベイズハイパーパラメータ最適化によって最適化されるハイパーパラメータが、ニューラルネットワークのニューロンの層の数と、ニューラルネットワークの各層におけるニューロンの数と、重み減衰値とのうちの1つを含む。
【0131】
図18に図示されるように、デバイス1800は、1つ又は複数のハードウェアプロセッサを含むプロセッサ1805などの処理要素を含み、各ハードウェアプロセッサは、単一の又は複数のプロセッサコアを有し得る。プロセッサの例は、中央処理装置(CPU)又はマイクロプロセッサを含むが、これらに限定されない。図18には図示されていないが、プロセッサ1805を構成する処理要素は、画像処理装置(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、及び/又はデジタルシグナルプロセッサ(DSP)など、1つ又は複数の他のタイプのハードウェア処理構成要素も含み得る。場合によっては、プロセッサ1805は、図5図6図8図11、及び図12図17に関連して説明する機能を実施するように構成され得る。また、単一のデバイスに関連して説明したが、説明した機能は、任意の数の処理要素によって実施され得、これらの処理要素は通信可能に結合された複数のデバイスに関連付けることができることを理解されたい。例えば、MLモデル、MLライブラリ、ネットリストなどの生成は、回路の変換又は最適化と比較して、別個のデバイス上で実施され得る。場合によっては、これらの種々のデバイスが、任意の既知のネットワーキング技術によってネットワーク化され得、その例には、イーサネット、ワイヤレスフィデリティ(Wi-Fi)、インターネットなどが含まれる。場合によっては、データオブジェクトが、非一時的コンピュータ可読ストレージ媒体を介して提供され及び/又は受け取られ得る。
【0132】
図18は、メモリ1810が、プロセッサ1805に動作可能かつ通信可能に結合され得ることを図示する。メモリ1810は、様々なタイプのデータを格納するように構成された非一時的コンピュータ可読ストレージ媒体であり得る。例えば、メモリ1810は、ランダムアクセスメモリ(RAM)などの1つ又は複数の揮発性デバイスを含み得る。場合によっては、図4図8に記載されるようなSRAM及び回路が、メモリ1810の一部として組み込まれてもよい。不揮発性ストレージデバイス1820は、1つ又は複数のディスクドライブ、光ドライブ、ソリッドステートドライブ(SSD)、タップドライブ、フラッシュメモリ、電気的プログラマブル読み出し専用メモリ(EEPROM)、及び/又は、電力損失又はシャットダウン動作後の時間期間にわたってデータを維持するように設計された任意の他のタイプのメモリを含み得る。揮発性のストレージデバイス1820はまた、そのようなプログラムが実行されるときにRAMにロードされるプログラムを格納するために用いられ得る。
【0133】
当業者は、ソフトウェアプログラムが、様々なソフトウェアプラットフォーム及び/又はオペレーティングシステムのための様々なコンピューティング言語で開発、符号化、及びコンパイルされ、その後、プロセッサ1805によってロードされ、実行され得ることを認識している。一実施例において、ソフトウェアプログラムのコンパイルプロセスが、プロセッサ1805がプログラミングコードを実行できるように、或るプログラミング言語で書かれたプログラムコードを別のコンピュータ言語に変換し得る。例えば、ソフトウェアプログラムのコンパイルプロセスは、特定の非汎用の特有のコンピューティング機能を達成するために、符号化された命令(例えば、機械コード命令)をプロセッサ1805に対して提供する実行可能プログラムを生成し得る。
【0134】
コンパイルプロセスの後、符号化された命令は、コンピュータ実行可能命令又はプロセス工程として、ストレージ1820から、メモリ1810からプロセッサ1805にロードされ得、及び/又は、(例えば、キャッシュ又はオンボードROMを介して)プロセッサ1805内に埋め込まれ得る。プロセッサ1805は、コンピューティングデバイスを非汎用の特有の、特別にプログラムされた機械又は装置に変換するための命令又はプロセス工程を実施するために、格納された命令又はプロセス工程を実行するように構成され得る。格納されたデータ、例えばストレージデバイス1820によって格納されたデータは、コンピュータ実行可能命令又はプロセス工程の実行中にプロセッサ1805によってアクセスされて、コンピューティングデバイス1800内の1つ又は複数の構成要素に命令し得る。ストレージ1820は、異なるソフトウェアプログラムによってアクセスされ得る複数のセクションに区分又は分割され得る。例えば、ストレージ1820は、コンピューティングデバイス1800のソフトウェアを更新するためのプログラム命令又はデータを格納するなど、特定の目的のために指定されたセクションを含み得る。一実施例において、更新されるソフトウェアは、コンピューティングデバイスのROM又はファームウェアを含む。場合によっては、コンピューティングデバイス1800は、複数のオペレーティングシステムを含み得る。例えば、コンピューティングデバイス1800は、通常動作に利用される汎用オペレーティングシステムを含み得る。コンピューティングデバイス1800はまた、汎用オペレーティングシステムのアップグレード及び回復などの特定のタスクを実施し、汎用オペレーティングシステムを介して概して利用可能ではないレベルでコンピューティングデバイス1800へのアクセスを可能にするため、ブートローダーなどの別のオペレーティングシステムを含み得る。汎用オペレーティングシステムと別のオペレーティングシステムの両方が、特定の目的のために指定されたストレージ1820のセクションにアクセスし得る。
【0135】
1つ又は複数の通信インタフェースは、1つ又は複数の無線通信デバイスとインタフェースするための無線通信インタフェースを含み得る。場合によっては、プロセッサに結合された要素が、プロセッサと共有されるハードウェア上に含まれてもよい。例えば、通信インタフェース1825、ストレージ1820、及びメモリ1810は、デジタル無線などの他の要素と共に、単一のチップ、又はシステムオンチップ(SOC)などのパッケージに含まれてもよい。コンピューティングデバイスはまた、図示されていない入力及び/又は出力デバイスを含み得、その例には、センサ、カメラ、又は、マウス、キーボード、タッチスクリーン、モニタ、表示スクリーン、触覚又は動き生成器、スピーカー、ライトなど、人が入力するデバイスが含まれる。例えば、レーダデバイス1830からの処理された入力が、コンピューティングデバイス1800から通信インタフェース1825を介して1つ又は複数の他のデバイスに出力され得る。
【0136】
本願の特許請求の範囲内で、説明した例示の実施例に改変が成され得、他の実施例が可能である。
【0137】
例えば、第1のプロセス技術特徴付けモジュール810が、例えば、ニューラルネットワーク、ディシジョンツリー、ベイジアン分類器、ファジー論理ベースの分類器、ディープラーニング、及び統計パターン認識など、統計的回帰分析及び統計的分類器などの、任意の数の判定技法を用いて実装されてもよい。
【0138】
同様に、別の例として、第2のプロセス技術特徴付けモジュール820が、ニューラルネットワーク、ディシジョンツリー、ベイズ分類器、ファジー論理ベースの分類器、ディープラーニング、及び統計的パターン認識など、統計的回帰分析及び統計的分類器などの、任意の数の判定技法を用いて実装されてもよい。

図1
図2
図3A
図3B
図4
図5
図6
図7A
図7B
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17A
図17B
図18
【国際調査報告】