(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-27
(54)【発明の名称】アナログ回路設計
(51)【国際特許分類】
G06F 30/367 20200101AFI20231220BHJP
G06F 30/373 20200101ALI20231220BHJP
G06F 119/18 20200101ALN20231220BHJP
G06F 111/20 20200101ALN20231220BHJP
【FI】
G06F30/367
G06F30/373
G06F119:18
G06F111:20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023537959
(86)(22)【出願日】2021-11-16
(85)【翻訳文提出日】2023-08-21
(86)【国際出願番号】 GB2021052959
(87)【国際公開番号】W WO2022136822
(87)【国際公開日】2022-06-30
(32)【優先日】2020-12-22
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】522343094
【氏名又は名称】アジャイル アナログ リミテッド
【氏名又は名称原語表記】AGILE ANALOG LTD
【住所又は居所原語表記】Radio House, St. Andrews Road, Cambridge CB4 1DL, United Kingdom
(74)【代理人】
【識別番号】100103872
【氏名又は名称】粕川 敏夫
(74)【代理人】
【識別番号】100149456
【氏名又は名称】清水 喜幹
(74)【代理人】
【識別番号】100194238
【氏名又は名称】狩生 咲
(74)【代理人】
【識別番号】100205648
【氏名又は名称】森田 真一
(72)【発明者】
【氏名】ハルス,マイケル
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA23
5B146DC03
5B146GC11
5B146GG24
5B146GL00
(57)【要約】
本明細書では、アナログ回路設計装置を開示する。アナログ回路設計装置は、(i)少なくとも1つの回路性能要件と、(ii)特定の製造プロセス関連規則セットを満たすためのアナログ回路の少なくとも1つの製造要件と、を含むアナログ回路の技術的要件を表す情報を受信するように構成される。アナログ回路設計装置は、回路性能要件を満たすための、少なくとも1つの製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を識別し、現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則のセットに依存して、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択するように構成される。
【特許請求の範囲】
【請求項1】
プロセッサと通信インタフェースとを備えた少なくとも1つの設計ユニットを備え、
前記プロセッサは、
(a)前記通信インタフェースを制御して、(i)少なくとも1つの回路性能要件と、(ii)前記アナログ回路が特定の製造プロセス関連規則セットを満足するための少なくとも1つの製造要件と、を含むアナログ回路の技術的要件を表す情報を受信し、
(b)受信した前記情報に基づいて、前記回路性能要件を満たすための、少なくとも1つの前記製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定し、
(c)現在のアナログ回路設計アーキテクチャとして、前記製造プロセス関連規則セットに依存して、前記複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択し、
(d)前記現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在の設計を生成し、
(e)前記アナログ回路の前記現在の設計について、前記現在の設計が少なくとも1つの前記回路性能要件を満たすか否かを判断し、
前記アナログ回路の前記現在の設計が前記回路性能要件を満たさないと判断された場合、
(f)前記現在のアナログ回路設計アーキテクチャとして、前記製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択し、
(g)前記ステップ(d)及び前記ステップ(e)を繰り返し、
(h)前記アナログ回路設計アーキテクチャの前記現在の設計が前記回路性能要件を満たすと判断された場合、前記アナログ回路の設計を出力する、
ように構成されている、
アナログ回路設計装置。
【請求項2】
請求項1に記載のアナログ回路設計装置において、
前記プロセッサは、さらに、
(i)前記アナログ回路の各現在の設計について、前記現在の設計が少なくとも1つの前記回路性能要件と前記製造プロセス関連ルールセットとをどの程度満たしているかを判定し、
(j)前記現在のアナログ回路設計アーキテクチャとして、前記製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択し、
(k)前記ステップ(d)及び前記ステップ(e)を繰り返し、複数の生成アナログ回路設計を生成し、
(l)生成された複数のアナログ回路設計から、少なくとも1つの前記回路性能要件と前記製造プロセス関連規則セットとを最もよく満たす前記アナログ回路の設計を選択して出力する、
ように構成されている、
アナログ回路設計装置。
【請求項3】
請求項1又は2に記載のアナログ回路設計装置において、
前記ステップ(c)及び/又は前記ステップ(f)における前記アナログ回路設計アーキテクチャの選択は、前記製造プロセス関連規則セットを満たすと判断されたアナログ回路設計アーキテクチャの候補の優先順位付けされたリストを作成する、前記複数のアーキテクチャの候補の優先順位付けに基づく、
アナログ回路設計装置。
【請求項4】
請求項1から3のいずれか1項に記載のアナログ回路設計装置において、
一次設計ユニットと、二次設計ユニットとを備え、
前記一次設計ユニットは、
(m)受信した前記情報に基づいて、前記回路性能要件を満たすための、前記製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定し、
(n)それぞれ複数の回路部分を備える前記複数のアナログ回路設計アーキテクチャの候補の中から、前記現在のアナログ回路設計アーキテクチャとして前記初期アナログ回路設計アーキテクチャを選択し、
(o)前記複数の回路部分の各回路部分について、特定の製造プロセス関連規則セットに基づいて前記回路部分に対するそれぞれの回路性能要件を決定し、
(p)各回路部分に対するそれぞれの前記回路性能要件を、複数の前記二次設計ユニットのうちの少なくとも1つに提供する、
ように構成され、
前記アナログ回路設計装置の複数の前記二次設計ユニットの各々は、
(q)前記一次設計ユニットから提供された各回路部分に対する前記回路性能要件に基づいて、複数の回路部分の各回路部分を設計し、
(r)各回路部分の初期設計の結果を出力する、
ように構成され、
前記一次設計ユニットは、さらに、
(s)複数の前記二次設計ユニットの各々から、各回路部分のそれぞれの設計を受信し、
(t)各回路部分のそれぞれの前記設計に基づいて、前記現在のアナログ回路設計アーキテクチャを満たす前記アナログ回路の現在のアナログ回路設計を生成する、
ように構成されている、
アナログ回路設計装置。
【請求項5】
請求項4に記載のアナログ回路設計装置において、
前記一次設計ユニットは、さらに、
(u)前記現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(v)前記アナログ回路が前記回路性能要件を満たすか否かを検証し、
前記アナログ回路が前記回路性能要件を満たす場合、生成された設計を出力し、
前記アナログ回路が前記回路性能要件を満たさない場合、
前記現在のアナログ回路設計アーキテクチャとして、前記製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択し、
前記ステップ(d)から前記ステップ(e)及び前記ステップ(m)から前記ステップ(v)を繰り返す、
ように構成される、
アナログ回路設計装置。
【請求項6】
請求項4又は5に記載のアナログ回路設計装置において、
前記一次設計ユニットは、さらに、
(w)前記現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(x)前記アナログ回路が前記アナログ回路の前記回路性能要件を満たすか否かを検証し、
前記アナログ回路が前記回路性能要件を満たす場合、生成された前記設計を出力し、
前記アナログ回路が前記回路性能要件を満たさない場合、
複数の回路部分のうちの少なくとも1つの影響を受ける回路部分について、前記シミュレーション出力と前記回路性能要件とに基づいて、影響を受ける前記回路部分に対する修正回路性能要件を決定し、
少なくとも1つの対応する前記二次設計ユニットに、影響を受ける各回路部分に対する前記修正回路性能要件を提供し、
少なくとも1つの対応する前記二次設計ユニットから、影響を受ける各回路部分のそれぞれの更新された設計を受信し、
前記アナログ回路の現在の設計を、影響を受ける各回路部分のそれぞれの更新された設計で更新し、
前記ステップ(w)から前記ステップ(x)を、更新された設計セットに対して繰り返す、
ように構成される、
アナログ回路設計装置。
【請求項7】
請求項6に記載のアナログ回路設計装置において、
前記複数の二次設計ユニットの各々は、シミュレートされた挙動と前記回路性能要件との間の差に基づいて各部分の設計を適応させることにより、前記シミュレートされた挙動に基づいて各部分の設計を適合させるように構成されている、
アナログ回路設計装置。
【請求項8】
請求項5から7のいずれか1項に記載のアナログ回路設計装置において、
所定の回路部分の少なくとも初期設計が前記二次設計ユニットの少なくとも別の1つによって完了した後、前記二次設計ユニットの少なくとも1つは、対応する回路部分のコンテキストに基づいて前記現在のアナログ回路設計を適合させるように構成され、前記コンテキストは、前記二次設計ユニットの少なくとも別の1つによって完了した前記所定の回路部分の完了した設計に基づいて生成された回路性能要件を含む、
アナログ回路設計装置。
【請求項9】
請求項4及び請求項4に従属する請求項のいずれか1項に記載のアナログ回路設計装置において、
所定の回路部分の少なくとも初期設計が前記二次設計ユニットの少なくとも別の1つによって完了された後、前記二次設計ユニットの少なくとも1つは、対応する回路部分のコンテキストに基づいて出力初期設計を適合させるように構成され、前記コンテキストは、前記二次設計ユニットの少なくとも別の1つによって完了された前記所定の回路部分の完了された設計に基づいて生成された回路性能要件を含む、
アナログ回路設計装置。
【請求項10】
請求項8に記載のアナログ回路設計装置において、
前記二次設計ユニットの各々は、前記複数の回路部分のうちの別の回路部分の設計の変更が、さらなる回路部分のコンテキストの変化を引き起こす場合に、さらなる回路部分の設計を適合させるステップを繰り返すように構成される、
アナログ回路設計装置。
【請求項11】
請求項9又は10に記載のアナログ回路設計装置において、
前記二次設計ユニットの各々は、前記コンテキストの変化が選択された閾値レベルよりも大きい場合にのみ、さらなる回路部分の設計を適合させるステップを繰り返すように構成されている、
アナログ回路設計装置。
【請求項12】
請求項8から10のいずれか1項に記載のアナログ回路設計装置において、
前記所定の回路部分の性能をシミュレートすることにより前記コンテキストを得るように構成されている、
アナログ回路設計装置。
【請求項13】
プロセッサと通信インタフェースとを備えた設計ユニットにおいて、
(a)前記通信インタフェースを制御して、(i)少なくとも1つの回路性能要件と、(ii)前記アナログ回路が特定の製造プロセス関連規則セットを満たすための少なくとも1つの製造要件と、を含むアナログ回路の技術的要件を表す情報を受信するステップと、
(b)受信した前記情報に基づいて、前記回路性能要件を満たすための、少なくとも1つの前記製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定するステップと、
(c)現在のアナログ回路設計アーキテクチャとして、前記製造プロセス関連規則セットに依存して、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択するステップと、
(d)前記現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在の設計を生成するステップと、
(e)前記アナログ回路設計アーキテクチャのための現在の設計について、現在の設計が少なくとも1つの回路性能要件を満たすか否かを判断するステップと、
前記アナログ回路設計アーキテクチャの現在の設計が前記回路性能要件を満たさないと判断された場合、
(f)前記現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択するステップと、
(g)ステップ(d)及び(e)を繰り返すステップと、
(h)前記アナログ回路設計アーキテクチャの前記現在の設計が前記回路性能要件を満たすと判定された場合、前記アナログ回路の設計を出力するステップと、
を備える、
アナログ回路設計方法。
【請求項14】
請求項13に記載のアナログ回路設計方法において、
(i)前記アナログ回路の前記現在の設計について、前記現在の設計が少なくとも1つの前記回路性能要件と前記製造プロセス関連規則セットとをどの程度満たしているかを判定するステップと、
(j)前記現在のアナログ回路設計アーキテクチャとして、前記製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択するステップと、
(k)前記ステップ(d)及び(e)を繰り返し、複数の生成アナログ回路設計を生成するステップと、
(l)生成された複数のアナログ回路設計から、少なくとも1つの前記回路性能要件と前記製造プロセス関連規則セットとを最もよく満たす前記アナログ回路設計を選択して出力するステップと、
を備えている、
アナログ回路設計方法。
【請求項15】
請求項13又は14に記載のアナログ回路設計方法において、
前記ステップ(c)及び/又はステップ(f)における前記アナログ回路設計アーキテクチャの選択は、前記製造プロセス関連規則セットを満たすと判断されたアナログ回路設計アーキテクチャ候補の優先順位付けされたリストを作成する、複数のアーキテクチャの候補の優先順位付けに基づく、
アナログ回路設計方法。
【請求項16】
請求項15に記載のアナログ回路設計方法において、
一次設計ユニットにおいて、
(m)受信した前記情報に基づいて、前記回路性能要件を満たすための、前記製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定するステップと、
(n)それぞれ複数の回路部分を備える前記複数のアナログ回路設計アーキテクチャの候補の中から、前記現在のアナログ回路設計アーキテクチャとして前記初期アナログ回路設計アーキテクチャを選択するステップと、
(o)前記複数の回路部分の各回路部分について、特定の製造プロセス関連規則セットに基づいて前記回路部分に対するそれぞれの回路性能要件を決定するステップと、
(p)各回路部分に対するそれぞれの前記回路性能要件を、複数の前記二次設計ユニットのうちの少なくとも1つに提供するステップと、
を備え、
前記複数の二次設計ユニットの各々において、
(q)前記一次設計ユニットから提供された各回路部分に対する前記回路性能要件に基づいて、複数の回路部分の各回路部分を設計するステップと、
(r)各回路部分の初期設計の結果を出力するステップと、
を備え、
前記一次設計ユニットにおいて、
(s)複数の前記二次設計ユニットの各々から、各回路部分のそれぞれの設計を受信するステップと、
(t)各回路部分のそれぞれの前記設計に基づいて、前記現在のアナログ回路設計アーキテクチャを満たす前記アナログ回路の現在のアナログ回路設計を生成するステップと、
を備えている、
アナログ回路設計方法。
【請求項17】
請求項16に記載のアナログ回路設計方法において、
前記一次設計ユニットにおいて、さらに、
(u)前記現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成するステップと、
(v)前記アナログ回路が前記回路性能要件を満たすか否かを検証するステップと、
前記アナログ回路が前記回路性能要件を満たす場合、生成された設計を出力するステップと、
アナログ回路が回路性能要件を満たさない場合、
前記現在のアナログ回路設計アーキテクチャとして、前記製造プロセス関連規則セットに依存する複数のアーキテクチャの候補の優先順位付けに基づいて、さらなるアナログ回路設計アーキテクチャを選択するステップと、
前記ステップ(d)から前記ステップ(e)及び前記ステップ(m)から前記ステップ(v)を繰り返すステップと、
を備えている、
アナログ回路設計方法。
【請求項18】
請求項16又は17に記載のアナログ回路設計方法において、
前記一次設計ユニットにおいて、さらに、
(w)前記現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成するステップと、
(x)前記アナログ回路が前記アナログ回路の前記回路性能要件を満たすか否かを検証するステップと、
前記アナログ回路が前記回路性能要件を満たす場合、生成された前記設計を出力するステップと、
前記アナログ回路が前記回路性能要件を満たさない場合、
複数の回路部分のうちの少なくとも1つの影響を受ける回路部分について、前記シミュレーション出力と前記回路性能要件とに基づいて、影響を受ける前記回路部分に対する修正回路性能要件を決定するステップと、
少なくとも1つの対応する前記二次設計ユニットに、影響を受ける各回路部分に対する前記修正回路性能要件を提供するステップと、
少なくとも1つの対応する前記二次設計ユニットから、影響を受ける各回路部分のそれぞれの更新された設計を受信するステップと、
設計セットを、影響を受ける各回路部分のそれぞれの更新された設計で更新するステップと、
前記ステップ(w)から前記ステップ(x)を、更新された前記設計セットに対して繰り返すステップと、
を備えている、
アナログ回路設計方法。
【請求項19】
請求項16に記載のアナログ回路設計方法において、
前記複数の二次設計ユニットの各々において、
シミュレートされた挙動と前記回路性能要件との間の差に基づいて各部分の設計を適合させることにより、前記シミュレートされた挙動に基づいて各部分の設計を適合させるステップを備えている、
アナログ回路設計方法。
【請求項20】
請求項16から18のいずれか1項に記載のアナログ回路設計方法において、
所定の回路部分の少なくとも初期設計が前記二次設計ユニットの少なくとも別の1つによって完了した後に、前記二次設計ユニットの少なくとも1つの出力された前記初期設計を、対応する回路部分のコンテキストに基づいて適合させるステップをさらに含み、 前記コンテキストは、前記二次設計ユニットの少なくとも別の1つによって完了した前記所定の回路部分の完了した設計に基づいて生成された回路性能要件を含む、
アナログ回路設計方法。
【請求項21】
請求項16及び請求項16に従属する請求項のいずれか1項に記載のアナログ回路設計方法において、
所定の回路部分の少なくとも初期設計が前記二次設計ユニットの少なくとも別の1つによって完了した後に、対応する前記回路部分のコンテキストに基づいて、前記二次設計ユニットの少なくとも1つの出力初期設計を適合させるステップをさらに含み、
前記コンテキストは、前記二次設計ユニットの少なくとも別の1つによって完了した前記所定の回路部分の完了した設計に基づいて生成された回路性能要件を含む、
アナログ回路設計方法。
【請求項22】
請求項21に記載のアナログ回路設計方法において、
前記複数の回路部分のうちの別の回路部分の設計の修正がさらなる回路部分のコンテキストの変更を引き起こす場合に、前記二次設計ユニットの各々において、前記さらなる回路部分の設計を適合させるステップを繰り返すことをさらに含む、
アナログ回路設計方法。
【請求項23】
請求項21又は22に記載のアナログ回路設計方法において、
前記コンテキストの変化が選択された閾値レベルよりも大きい場合にのみ、さらなる回路部分の設計を適合させるステップを繰り返すことをさらに含む、
アナログ回路設計方法。
【請求項24】
請求項21、22又は23のいずれか1項に記載のアナログ回路設計方法において、
前記コンテキストは、前記所定の回路部分の性能をシミュレートすることによって得られる、
アナログ回路設計方法。
【請求項25】
請求項13から24のいずれか1項に記載のアナログ回路設計方法において、
出力設計に合わせてアナログ回路を製作するステップをさらに含む、
アナログ回路設計方法。
【請求項26】
請求項13から24のいずれか1項に記載の方法をプロセッサに実行させるように構成されたコンピュータ用プログラムを含むコンピュータ読み取り可能な非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、アナログ回路設計のための方法及びシステムに関し、特に、アナログ回路の設計プロセスを自動化するための方法及びシステムに関する。
【背景技術】
【0002】
アナログコンポーネントは、チップの製造テストの不良が最も多く、フィールドでの不良の95%にものぼる。近年、デジタル回路の回路設計はある程度自動化されてきたが、アナログ回路設計の自動化は、例えば寄生効果などの問題により、これまで困難とされてきた。従来のアナログ回路設計では、設計者が過去の知識や経験をもとに、手作業で「最善の推測」による見積もりや仕様のガードバンディングを行うことが多く、その結果、回路が過剰になり効率が悪くなったり、故障が発生しやすくなったりすることがよくあった。このため、アナログ回路の設計において、より効率的で信頼性の高いプロセスを構築することが望まれている。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の態様は独立請求項に記載されている通りであり、任意の特徴は従属請求項に記載されている通りである。本発明の態様は、互いに関連して提供されてもよく、ある態様の特徴が、他の態様に適用されてもよい。
【0004】
第1の態様では、アナログ回路設計装置が提供される。装置は、プロセッサと通信インタフェースとを備えた少なくとも1つの設計ユニットを備え、
プロセッサは、
(a)通信インタフェースを制御して、(i)少なくとも1つの回路性能要件と、(ii)アナログ回路が特定の製造プロセス関連規則セットを満足するための少なくとも1つの製造要件と、を含むアナログ回路の技術的要件を表す情報を受信し、
(b)受信した情報に基づいて、回路性能要件を満たすための、少なくとも1つの製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定し、
(c)現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存して、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択し、
(d)現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在の設計を生成し、
(e)アナログ回路の現在の設計について、現在の設計が少なくとも1つの回路性能要件を満たすか否かを判断し、
アナログ回路の現在の設計が回路性能要件を満たさないと判断された場合、
(f)現在のアナログ回路設計アーキテクチャとして、さらなるアナログ回路設計アーキテクチャを選択し、さらなるアナログ回路設計アーキテクチャの選択は、製造プロセス関連規則セットに依存し、
(g)ステップ(d)及びステップ(e)を繰り返し、
(h)アナログ回路設計アーキテクチャの現在の設計が回路性能要件を満たすと判断された場合、アナログ回路の設計を出力する、
ように構成されている。
【0005】
プロセッサは、さらに、
(i)アナログ回路の各現在の設計について、現在の設計が少なくとも1つの回路性能要件と製造プロセス関連ルールセットとをどの程度満たしているかを判定し、
(j)現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択し、
(k)ステップ(d)及びステップ(e)を繰り返し、複数の生成アナログ回路設計を生成し、
(l)生成された複数のアナログ回路設計から、少なくとも1つの回路性能要件と製造プロセス関連規則セットとを最もよく満たすアナログ回路の設計を選択して出力する、
ように構成されてもよい。
【0006】
ステップ(c)及び/又はステップ(f)におけるアナログ回路設計アーキテクチャの選択は、製造プロセス関連規則セットを満たすと判断されたアナログ回路設計アーキテクチャの候補の優先順位付けされたリストを作成する、複数のアーキテクチャの候補の優先順位付けに基づいてもよい。優先順位付けされたアナログ回路設計アーキテクチャの候補リストは、機械学習モデルを使用して決定することができる。
【0007】
いくつかの例では、装置は一次設計ユニットと二次設計ユニットとを備える。
一次設計ユニットは、
(m)受信した情報に基づいて、回路性能要件を満たすための、製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定し、
(n)それぞれ複数の回路部分を備える複数のアナログ回路設計アーキテクチャの候補の中から、現在のアナログ回路設計アーキテクチャとして初期アナログ回路設計アーキテクチャを選択し、
(o)複数の回路部分の各回路部分について、特定の製造プロセス関連規則セットに基づいて回路部分に対するそれぞれの回路性能要件を決定し、
(p)各回路部分に対するそれぞれの回路性能要件を、複数の二次設計ユニットのうちの少なくとも1つに提供する、
ように構成され、
アナログ回路設計装置の複数の二次設計ユニットの各々は、
(q)一次設計ユニットから提供された各回路部分に対する回路性能要件に基づいて、複数の回路部分の各回路部分を設計し、
(r)各回路部分の初期設計の結果を出力する、
ように構成され、
一次設計ユニットは、さらに、
(s)複数の二次設計ユニットの各々から、各回路部分のそれぞれの設計を受信し、
(t)各回路部分のそれぞれの設計に基づいて、現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在のアナログ回路設計を生成する、
ように構成されている。
【0008】
一次設計ユニットは、さらに、
(u)現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(v)アナログ回路が回路性能要件を満たすか否かを検証し、
アナログ回路が回路性能要件を満たす場合、生成された設計を出力し、
アナログ回路が回路性能要件を満たさない場合、
現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択し、
ステップ(d)からステップ(e)及びステップ(m)からステップ(v)を繰り返す、
ように構成される。
【0009】
一次設計ユニットは、さらに、
(w)現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(x)アナログ回路がアナログ回路の回路性能要件を満たすか否かを検証し、
アナログ回路が回路性能要件を満たす場合、生成された設計を出力し、
アナログ回路が回路性能要件を満たさない場合、
複数の回路部分のうちの少なくとも1つの影響を受ける回路部分について、シミュレーション出力と回路性能要件とに基づいて、影響を受ける回路部分に対する修正回路性能要件を決定し、
少なくとも1つの対応する二次設計ユニットに、影響を受ける各回路部分に対する修正回路性能要件を提供し、
少なくとも1つの対応する二次設計ユニットから、影響を受ける各回路部分のそれぞれの更新された設計を受信し、
アナログ回路の現在の設計を、影響を受ける各回路部分のそれぞれの更新された設計で更新し、
ステップ(w)からステップ(x)を、更新された設計セットに対して繰り返す、
ように構成されてもよい。
【0010】
複数の二次設計ユニットの各々は、シミュレートされた挙動と回路性能要件との間の差に基づいて各部分の設計を適応させることにより、シミュレートされた挙動に基づいて各部分の設計を適合させるように構成されてもよい。
【0011】
いくつかの例では、所定の回路部分の少なくとも初期設計が二次設計ユニットの少なくとも別の1つによって完了した後、二次設計ユニットの少なくとも1つは、対応する回路部分のコンテキストに基づいて現在のアナログ回路設計を適合させるように構成され、コンテキストは、二次設計ユニットの少なくとも別の1つによって完了した所定の回路部分の完了した設計に基づいて生成された回路性能要件を含む。
【0012】
いくつかの例では、所定の回路部分の少なくとも初期設計が二次設計ユニットの少なくとも別の1つによって完了された後、二次設計ユニットの少なくとも1つは、対応する回路部分のコンテキストに基づいて出力初期設計を適合させるように構成され、コンテキストは、二次設計ユニットの少なくとも別の1つによって完了された所定の回路部分の完了された設計に基づいて生成された回路性能要件を含む。
【0013】
二次設計ユニットの各々は、複数の回路部分のうちの別の回路部分の設計の変更が、さらなる回路部分のコンテキストの変化を引き起こす場合に、さらなる回路部分の設計を適合させるステップを繰り返すように構成されてもよい。
【0014】
追加的又は代替的に、二次設計ユニットの各々は、コンテキストの変化が選択された閾値レベルよりも大きい場合にのみ、さらなる回路部分の設計を適合させるステップを繰り返すように構成されてもよい。
【0015】
いくつかの例では、所定の回路部分の性能をシミュレートすることによりコンテキストを得るように構成されている。
【0016】
別の態様では、アナログ回路の設計方法が提供される。方法は、プロセッサと通信インタフェースとを備えた設計ユニットにおいて、
(a)通信インタフェースを制御して、(i)少なくとも1つの回路性能要件と、(ii)アナログ回路が特定の製造プロセス関連規則セットを満たすための少なくとも1つの製造要件と、を含むアナログ回路の技術的要件を表す情報を受信するステップと、
(b)受信した情報に基づいて、回路性能要件を満たすための、少なくとも1つの製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定するステップと、
(c)現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存して、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択するステップと、
(d)現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在の設計を生成するステップと、
(e)アナログ回路設計アーキテクチャのための現在の設計について、現在の設計が少なくとも1つの回路性能要件を満たすか否かを判断するステップと、
アナログ回路設計アーキテクチャの現在の設計が回路性能要件を満たさないと判断された場合、
(f)現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択するステップと、
(g)ステップ(d)及び(e)を繰り返すステップと、
(h)アナログ回路設計アーキテクチャの現在の設計が回路性能要件を満たすと判定された場合、アナログ回路の設計を出力するステップと、
を備える。
【0017】
方法は、さらに、
(i)アナログ回路の現在の設計について、現在の設計が少なくとも1つの回路性能要件と製造プロセス関連規則セットとをどの程度満たしているかを判定するステップと、
(j)現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存して、さらなるアナログ回路設計アーキテクチャを選択するステップと、
(k)ステップ(d)及び(e)を繰り返し、複数の生成アナログ回路設計を生成するステップと、
(l)生成された複数のアナログ回路設計から、少なくとも1つの回路性能要件と製造プロセス関連規則セットとを最もよく満たすアナログ回路設計を選択して出力するステップと、
を備えてもよい。
【0018】
ステップ(c)及び/又はステップ(f)におけるアナログ回路設計アーキテクチャの選択は、製造プロセス関連規則セットを満たすと判断されたアナログ回路設計アーキテクチャ候補の優先順位付けされたリストを作成する、複数のアーキテクチャの候補の優先順位付けに基づいてもよい。
【0019】
方法は、さらに、
一次設計ユニットにおいて、
(m)受信した情報に基づいて、回路性能要件を満たすための、製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定するステップと、
(n)それぞれ複数の回路部分を備える複数のアナログ回路設計アーキテクチャの候補の中から、現在のアナログ回路設計アーキテクチャとして初期アナログ回路設計アーキテクチャを選択するステップと、
(o)複数の回路部分の各回路部分について、特定の製造プロセス関連規則セットに基づいて回路部分に対するそれぞれの回路性能要件を決定するステップと、
(p)各回路部分に対するそれぞれの回路性能要件を、複数の二次設計ユニットのうちの少なくとも1つに提供するステップと、
を備えてもよく、
複数の二次設計ユニットの各々において、
(q)一次設計ユニットから提供された各回路部分に対する回路性能要件に基づいて、複数の回路部分の各回路部分を設計するステップと、
(r)各回路部分の初期設計の結果を出力するステップと、
を備え、
一次設計ユニットにおいて、
(s)複数の二次設計ユニットの各々から、各回路部分のそれぞれの設計を受信するステップと、
(t)各回路部分のそれぞれの設計に基づいて、現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在のアナログ回路設計を生成するステップと、
を備えてもよい。
【0020】
方法は、さらに、
一次設計ユニットにおいて、さらに、
(u)現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成するステップと、
(v)アナログ回路が回路性能要件を満たすか否かを検証するステップと、
アナログ回路が回路性能要件を満たす場合、生成された設計を出力するステップと、
アナログ回路が回路性能要件を満たさない場合、
現在のアナログ回路設計アーキテクチャとして、製造プロセス関連規則セットに依存する複数のアーキテクチャの候補の優先順位付けに基づいて、さらなるアナログ回路設計アーキテクチャを選択するステップと、
ステップ(d)からステップ(e)及びステップ(m)からステップ(v)を繰り返すステップと、
を備えてもよい。
【0021】
方法は、さらに、
一次設計ユニットにおいて、さらに、
(w)現在のアナログ回路設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成するステップと、
(x)アナログ回路がアナログ回路の回路性能要件を満たすか否かを検証するステップと、
アナログ回路が回路性能要件を満たす場合、生成された設計を出力するステップと、
アナログ回路が回路性能要件を満たさない場合、
複数の回路部分のうちの少なくとも1つの影響を受ける回路部分について、シミュレーション出力と回路性能要件とに基づいて、影響を受ける回路部分に対する修正回路性能要件を決定するステップと、
少なくとも1つの対応する二次設計ユニットに、影響を受ける各回路部分に対する修正回路性能要件を提供するステップと、
少なくとも1つの対応する二次設計ユニットから、影響を受ける各回路部分のそれぞれの更新された設計を受信するステップと、
設計セットを、影響を受ける各回路部分のそれぞれの更新された設計で更新するステップと、
ステップ(w)からステップ(x)を、更新された設計セットに対して繰り返すステップと、
を備えてもよい。
【0022】
方法は、さらに、
複数の二次設計ユニットの各々において、
シミュレートされた挙動と回路性能要件との間の差に基づいて各部分の設計を適合させることにより、シミュレートされた挙動に基づいて各部分の設計を適合させるステップを備えてもよい。
【0023】
方法は、さらに、
所定の回路部分の少なくとも初期設計が二次設計ユニットの少なくとも別の1つによって完了した後に、二次設計ユニットの少なくとも1つの出力された初期設計を、対応する回路部分のコンテキストに基づいて適合させるステップをさらに含んでもよく、コンテキストは、二次設計ユニットの少なくとも別の1つによって完了した所定の回路部分の完了した設計に基づいて生成された回路性能要件を含む。
【0024】
方法は、さらに、
所定の回路部分の少なくとも初期設計が二次設計ユニットの少なくとも別の1つによって完了した後に、対応する回路部分のコンテキストに基づいて、二次設計ユニットの少なくとも1つの出力初期設計を適合させるステップをさらに含んでもよく、
コンテキストは、二次設計ユニットの少なくとも別の1つによって完了した所定の回路部分の完了した設計に基づいて生成された回路性能要件を含む。
【0025】
方法は、さらに、
複数の回路部分のうちの別の回路部分の設計の修正がさらなる回路部分のコンテキストの変更を引き起こす場合に、二次設計ユニットの各々において、さらなる回路部分の設計を適合させるステップを繰り返すことをさらに含んでもよい。
【0026】
方法は、さらに、
コンテキストの変化が選択された閾値レベルよりも大きい場合にのみ、さらなる回路部分の設計を適合させるステップを繰り返すことをさらに含んでもよい。
いくつかの例では、コンテキストは、所定の回路部分の性能をシミュレートすることによって得られる。
【0027】
方法は、出力設計に合わせてアナログ回路を製作することをさらに含んでいてもよいことが理解されるであろう。
【0028】
別の態様では、上述の方法のいずれかをプロセッサに実行させるように構成されたコンピュータ用プログラムを含むコンピュータ読み取り可能な非一時的記憶媒体が提供される。
【図面の簡単な説明】
【0029】
【
図2】
図2は、アナログ回路設計用コンピュータ実装階層モデルの機能概略図である。
【
図3】
図3は、
図2又は
図4のモードで使用するアナログ回路の設計方法の機能概略フローチャートである。
【
図4】
図4は、アナログ回路設計用コンピュータ実装モデルの他の実施例の機能概略図である。
【
図5】
図5は、例えば
図2又は
図4のコンピュータ実装モデル例を用いたアナログ回路設計方法の機能概略フローチャートである。
【
図6A】
図6Aは、
図1A-
図2、
図4-
図5のいずれかを参照して説明したモデルのような、コンピュータ実装階層モデルによって設計されたアナログ回路の一部を示す図である。
【
図7】
図7は、アーキテクチャをランク付けする機械学習モデルの学習方法の一例を示す概略図である。
【発明を実施するための形態】
【0030】
図1Aは、アナログ電子回路の一例の簡略化した機能概略図であり、この例ではADコンバータ(ADC)1000である。アナログ回路は、コンパレータ1001、DAC1002、レベルシフタ1003、オペアンプ1004等、複数の部分又はコンポーネントを備えてもよい。各部分又はコンポーネントは、当初は分離して考慮されてもよいが、その部分又はコンポーネントがその場で回路全体に適用されたときに動作するコンテキスト又は環境は、例えば回路部分及び回路全体が経験する寄生を含め、そのコンポーネント/ブロックがどのように動作するかに影響する可能性がある。アナログ回路の設計は、複雑なフィードバックループや、アナログ回路のさまざまな部分/コンポーネント間の数学的関係により、これまで自動化が困難とされてきた。
【0031】
特許請求の範囲の実施形態は、より効率的な回路を設計できるようにアナログ回路の設計を自動化するための方法及びシステムに関する。特に、特許請求の範囲の実施形態は、回路性能要件(例えば、顧客によって要求される)及び製造要件(例えば、回路が製造されるファウンドリの製造能力)の両方を考慮に入れたアナログ回路の設計を自動化するための方法およびシステムに関する。上述したように、アナログ回路設計に対する従来のアプローチでは、一般的に、「最善の推測」による見積もりや、予備知識や経験に頼ったエンジニアリングチームによる手作業による仕様のガードバンド処理が行われることがあり、その結果、回路が過剰に設計されて非効率になったり、故障しやすくなったりすることがよくある。ファウンドリやプロセス設計キット(PDK)の要件など、異なる製造要件に合わせて異なる回路アーキテクチャを開発する必要がある場合、複数の異なるファウンドリ/PDKでの使用に適したアナログ回路設計が設計されていると、この「互換性のある」回路設計は、他のファウンドリにとって最も効率的な回路設計でなくても、すべてのファウンドリ/PDKで選択される可能性がある。その結果、非効率な回路設計となってしまう。対照的に、本願発明者らは、驚くべきことに、ファウンドリ/PDK(及び潜在的に他の多くのファウンドリ/PDK)での使用に適した回路設計を選択するのではなく、特定のファウンドリ/PDKに対してアナログ回路設計に最も適したアーキテクチャを選択するという、直感に反する回路設計方法を開発した。最も適切なアーキテクチャを選択するには、技術的には複雑だが、ファウンドリ/PDKの要件等の製造要件を満たすために最適化され、最も効率的な回路設計を選択する必要があるため、このアプローチは直感に反する。これとは対照的に、従来のアナログ回路設計のアプローチでは、技術的に最もシンプルで、製造上の要件を満たす設計を選択する傾向がある。
【0032】
この解決策を実施するため、本願発明者らは、アナログ回路の部分又はコンポーネントの設計責任をそれぞれのユニット又は「ブロック」に委譲するコンピュータ実装モデルを開発した。このモデルの一例を
図2に示す。このような階層モデルは、制御エンティティとして機能する「親ブロック」900と呼ばれる一次設計ユニット、及び何を設計する必要があるかについて一次設計ユニット又は親ブロックから指示を受ける「子ブロック」950a~950dと呼ばれる多数の二次設計ユニットの使用を含む。
【0033】
制御エンティティとして、親ブロック900は、技術的要件を受信して処理し、特定の製造プロセス関連規則セットを満たすように、アナログ回路の少なくとも1つの回路性能要件及び少なくとも1つの製造要件を取得するように構成される。製造プロセス関連規則は、上述のように、ファウンドリ又はプロセス設計キット(PDK)要件350に基づいてもよい。親ブロック900によって実行されるこのプロセスは、
図3に要約されており、以下により詳細に説明される。
【0034】
親ブロック900は、技術的要件に基づいて、回路性能要件を満たすための、製造時リース要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定する。後述するように、親ブロック900は、機械学習アルゴリズムを採用することによってこれを行うことができる。次に、親ブロック900は、現在のアナログ回路設計アーキテクチャとして、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択し、初期アナログ回路設計の選択は、製造プロセス関連規則セットに依存する。
【0035】
次に、モデルは、現在のアナログ設計アーキテクチャを満たすアナログ回路の現在の設計を生成する。これは、親ブロック900が各二次設計ユニット又は子ブロック950a~950dに、親ブロック900から受信した指示に基づいてアナログ回路のそれぞれのコンポーネント又は部分を設計するように指示することによって行われる。指示には、コンポーネント又は部分が満たす必要のある回路性能要件(例えば機能的要件)が含まれてもよい。
【0036】
親ブロック900は、受信した情報に基づいて、回路性能要件を満たすための、製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定することによって、これを行うことができる。次に、親ブロック900は、現在のアナログ回路設計アーキテクチャとして、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択し、各回路設計アーキテクチャは、それぞれの複数の回路部分から構成され、複数の回路部分の各回路部分について、その回路部分に対するそれぞれの回路性能要件を決定し、各回路部分に対するそれぞれの回路性能要件は、製造プロセス関連規則の特定のセットに基づいて決定される。次に、親ブロック900は、例えば、各回路部分に対するそれぞれの回路性能要件を含む可能性のある指示を、子ブロック950a~950dのそれぞれに提供する。次に、各子ブロック950a~950dは、親ブロック900から提供されたそれぞれの回路部分に対する回路性能要件に基づいて、複数の回路部分のそれぞれの回路部分を設計し、その結果得られるそれぞれの回路部分の初期設計を出力する。親ブロック900は、複数の子ブロック950a~950dのそれぞれから各回路部分のそれぞれの設計を受け取り、各回路部分のそれぞれの設計に基づいて、現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在のアナログ回路設計を生成する。
【0037】
各回路部分に対するそれぞれの回路性能要件に加えて、親ブロック900によって提供される指示は、回路の各コンポーネント又は部分のコンテキストに関連する情報、言い換えれば、回路のその部分又は構成要素が、完成した回路にその場で配置されたときに経験することになるものに関連した情報も含むことができる(いくつかの例では、コンテキストは、回路性能要件の一部として提供されてもよいが、他の例では、回路性能要件に加えて何らかのものとして提供されてもよい)。コンテキストは、回路の部分又はコンポーネントが使用中に経験するパラメータ及び変数を含んでもよい。任意の所定の回路部分又はコンポーネントのコンテキストは、その所定の回路部分又はコンポーネントと相互作用する回路部分(複数可)又はコンポーネント(複数可)の性能をシミュレートすることに基づいて、あるいは、その所定の回路部分又はコンポーネントを備えた完成した回路をシミュレートすることによって生成されてもよい。例えば、親ブロック900は、各子ブロック950a~950dによって設計された部分又はコンポーネントから完成した回路を組み立て、組み立てられた回路の動作をシミュレートするように構成されてもよい。任意の所定の回路部分又はコンポーネントのコンテキストは、追加的又は代替的に、数学的計算又は抽出に基づいて生成されてもよい。
【0038】
現在のアナログ回路設計アーキテクチャを満たすアナログ回路の設計が作成されると、完成したアナログ回路の設計は、現在の設計が少なくとも1つの回路性能要件を満たすかどうかを判定するためにテストされる。このテストは、親ブロック900によって実行されてもよい。親ブロック900は、現在のアナログ回路設計に基づくアナログ回路をシミュレートして少なくとも1つのシミュレーション出力を生成し、次いで、アナログ回路が回路性能要件を満たすか否かを検証することによって、これを行うことができる。
【0039】
アナログ回路に対する現在の設計が回路性能要件を満たさないと判定された場合、親ブロックは、複数のアナログ回路設計アーキテクチャの候補から、現在のアナログ回路設計アーキテクチャとしてさらなるアナログ回路設計アーキテクチャを選択し、さらなるアナログ回路設計アーキテクチャの選択は、製造プロセス関連規則のセットに依存する。その後、モデルは、現在のアナログ回路設計アーキテクチャを満たすアナログ回路の現在の設計を作成するステップと、現在の設計が少なくとも1つの回路性能要件を満たすかどうかを判定するために、完成したアナログ回路の設計をテストするステップと、を繰り返す。現在の設計が少なくとも1つの回路性能要件を満たさない場合、このプロセスが繰り返される。しかし、現在の設計が少なくとも1つの回路性能要件を満たす場合、親ブロック900はアナログ回路の設計を出力する。
【0040】
アナログ回路設計アーキテクチャの設計をテストするとき、いくつかの実施例では、親ブロック900は、アナログ回路の現在の設計について、それが少なくとも1つの回路性能要件を満たすと判定された場合、現在の設計が少なくとも1つの回路性能要件及び製造プロセス関連規則のセットをどの程度満たすかを判定する。次いで、親ブロック900は、現在のアナログ回路設計アーキテクチャとして、さらなるアナログ回路設計アーキテクチャを選択してもよく、さらなるアナログ回路設計アーキテクチャの選択は、製造プロセス関連規則のセットに依存し、少なくとも1つの回路性能要件を満たすと判定された場合、現在の設計が、少なくとも1つの回路性能要件及び製造プロセス関連規則のセットをどの程度満たすかに依存する。このプロセスは、すべてが回路性能要件を満たすが、いくつかの設計が他の設計よりも少なくとも1つの回路性能要件及び製造プロセス関連規則のセットに適している可能性がある複数の生成アナログ回路設計を生成するために繰り返されてもよい。次に、親ブロック900は、複数の生成されたアナログ回路設計の中から、少なくとも1つの回路性能要件と製造プロセス関連規則のセットとを最もよく満たすアナログ回路の設計を選択して出力することができる。
【0041】
親ブロック900がアナログ回路設計アーキテクチャを選択するとき、これは、複数のアーキテクチャの候補の優先順位付けに基づいてもよい。例えば、製造プロセス関連ルールのセットを満たす、又は満たす可能性が高いと判断されたアナログ回路設計アーキテクチャ候補の優先順位付けされたリストが存在してもよい。このリストは、設計プロセスの以前の反復などに基づいて、親ブロック900によって入力されてもよいし、他の場所から親ブロック900に供給されてもよい。例えば、以下により詳細に説明するように、機械学習アルゴリズムは、(i)少なくとも1つの回路性能要件、及び(ii)特定の製造プロセス関連ルールのセットを満たすためのアナログ回路の少なくとも1つの製造要件のうちの少なくとも1つに基づいて、アナログ回路設計アーキテクチャの優先順位付けされたリストを決定することができる。
【0042】
コンピュータに実装された階層モデルは反復的であってもよい。親ブロック900が各子ブロック950a~950dにそれぞれの部分の設計を指示すると、例えば、他の子ブロック950a~950dによって設計されたそれぞれの回路部分から生じる寄生素子及び/又はコンテキスト等の特徴を考慮するために、回路及びそれぞれの部分のある程度の再設計が必要になる場合がある。これは、親ブロック900が現在の設計が少なくとも1つの回路性能要件を満たすかどうかを判断する前に起こる可能性がある。例えば、他の設計された回路部分によって提供されるコンテキスト及び/又は特定の回路部分又は完成したアナログ回路によって経験される可能性のある推定寄生により、回路の特定の部分を適合させる必要がある場合がある。したがって、各子ブロック950a~950dによる回路部分の設計プロセスは、例えば、コンテキスト及び/又は推定寄生を考慮して、それらを緩和及び低減するために、1つ又は複数の回路部分の設計を適合させるために繰り返されてもよい。回路部分の設計を適合させるこのプロセスは、例えば、アナログ回路の他の部分又はコンポーネントの調整によって生じる推定寄生率の変化が考慮されるまで、子ブロック950a~950dによって反復的に繰り返されてもよい。例えば、このプロセスは、推定寄生率の変化が選択された寄生率の変化の閾値レベル未満になるまで繰り返し実行することができる。
【0043】
任意の所定の回路部分のコンテキスト及び/又は寄生特性は、その所定の回路部分と相互作用する回路部分の性能をシミュレートすることに基づいて、あるいは、その所定の回路部分を備えた完成回路をシミュレートすることによっても、生成することができる。例えば、親ブロック900は、各子ブロック950a~950dによって設計された部分から完成した回路を組み立て、組み立てられた回路の動作をシミュレートするように構成されてもよい。任意の回路部分の寄生は、追加的又は代替的に、数学的計算又は抽出に基づいて生成することができる。追加的又は代替的に、任意の所定の回路部分の寄生特性は、回路設計及び寄生特性のデータベースのルックアップを実行することによって、及び/又は機械学習モデルを使用して予測することによって取得してもよい。次に、親ブロック900は、アナログ回路が回路性能要件を満たすか否かを検証してもよい。アナログ回路が回路性能要件を満たす場合、親ブロック900は、生成された設計を出力することができる。アナログ回路が回路性能要件を満たさない場合、親ブロック900は、複数の回路部分のうちの少なくとも1つの影響を受ける回路部分について、シミュレーション出力と回路性能要件とに基づいて、その影響を受ける回路部分に対する修正回路性能要件を決定し、少なくとも1つの対応する子ブロック950a~950dに、影響を受ける各回路部分に対する修正回路性能要件を提供してもよい。親ブロック900は、その代わりに、少なくとも1つの対応する子ブロック950a~950dから各影響を受ける回路部分のそれぞれの更新された設計を受信し、アナログ回路の現在の設計を、影響を受ける各回路部分のそれぞれの更新された設計で更新してもよい。次いで、親ブロック900は、アナログ回路の更新された現在の設計について、現在の設計が少なくとも1つの回路性能要件を満たすかどうか、及び任意選択で、現在の設計が少なくとも1つの回路性能要件及び/又は製造プロセス関連規則のセットをどの程度満たすかを決定することができる。
【0044】
このようなプロセスを
図3に模式的に示す。
図3に示すように、アナログ回路350の技術的要件を表す情報が受信される。技術的要件350は、(i)少なくとも1つの回路性能要件と、(ii)アナログ回路が特定の製造工程関連規則セットを満たすための少なくとも1つの製造要件とを備える。この場合、少なくとも1つの製造要件は、PDKに関連する情報を備える。技術的要件350はプロセスであり、重要なデバイス物理学は捕捉される(301)。このステップは、受け取った情報に基づいて、回路性能要件を満たすための、少なくとも1つの製造要件を満たす複数のアナログ回路設計アーキテクチャの候補を特定することを含んでもよい。次に、複数のアナログ回路設計アーキテクチャの候補の中から、現在のアナログ回路設計アーキテクチャが選択され(303)、ここで、初期アナログ回路設計の選択は、製造プロセス関連規則セットに依存する。次に、現在のアナログ回路設計アーキテクチャを満たすアナログ回路設計が生成される(305)。次に、設計された回路は、アナログ回路の現在の設計について、現在の設計が少なくとも1つの回路性能要件を満たすかどうかを決定するために分析される(307)。アナログ回路の以前の反復が設計されている場合、プロセスは、新しい(現在の)設計を以前の設計と比較し、現在のアナログ回路設計が改善されているかどうかを判定する(309)。ステップ309で、現在のアナログ回路設計が回路性能要件を満たすと判定された場合、回路性能要件を満たしている以前のアナログ回路設計が出力される。対照的に、現在のアナログ回路設計が改善を表している場合、回路は、実行され得る回路性能要件に対する改善があるかどうかを決定するためにチェックされる(311)。改善が可能であると判断された場合、プロセスは現在の設計アーキテクチャに従ってアナログ回路を再設計する。回路性能要件に対する改善ができないと判断された場合、次に、別のアーキテクチャを使用して、その別のアーキテクチャが改善されたアーキテクチャを表す可能性があるかどうかが判断される。使用可能な別のアーキテクチャがある場合は、設計プロセスを繰り返す。使用可能な別のアーキテクチャがない場合、現在のアナログ回路設計が出力される。
【0045】
本願発明者らは、有利なことに、このようなプロセスと反復階層モデルの使用により、アナログ回路の設計を自動化できることを見出した。その結果、有利なことに、このことは、過剰に設計されたアナログ回路及び/又は許容できない寄生を有する回路を回避することができ、代わりに、より効率的な回路を設計し、作成することができることを意味する。さらに、本願発明者らは、このようにアナログ回路を設計及び選択することは、回路性能要件だけでなく製造要件にも最適なアナログ回路を設計できることを意味することを認識している。このことは、ファウンドリ/PDKの要件には適合するかもしれないが、(非効率や過剰なエンジニアリング等により)最良の設計とは言えない汎用的なアーキテクチャを使用するのではなく、例えば各ファウンドリ/PDKの要件に合わせた、より効率的な回路アーキテクチャを作成できることを意味する。
【0046】
上述したように、
図1Aは、この例ではアナログデジタルコンバータ(ADC)である例示的なアナログ回路アーキテクチャ1000を示している。概念的に、回路アーキテクチャは、例えばそれぞれの機能性に基づいて、回路の異なる部分又はコンポーネントに対応する機能ブロックに分割することができる。この機能ブロック又はコンポーネントのレイアウトは、アーキテクチャを表すと言える。例えば、ADCは、コンパレータ1001、デジタルアナログコンバータ(DAC)1002、複数のレベルシフタ1003、及び1つ又は複数のオペアンプ1004から構成されてもよい。
図1Aに示す例では、回路は、アーキテクチャを構成するこれらの異なる部分又はコンポーネントに対応するブロックに概念的に分割することができる。例えば、
図1Bに示すように、コンパレータを第1の「子ブロック」950aに、DACを第2の子ブロック950bに、レベルシフタを第3の子ブロック950cに、オペアンプを第4の子ブロック950dに、概念的に分割することができる。ADCは全体として、概念的にそれ自身のブロック(
図1Bでは「親」900とラベル付け)に分類することができる。ADC自体がより大きなアナログ回路内の概念的なブロックを形成してもよいことは理解されるであろう。
【0047】
例えば、あるアーキテクチャのオペアンプ1004は、特定の製造プロセス関連規則を満たすために、ゲインの低い2つの小型オペアンプに置き換えられてもよい。これは、1つのファウンドリ/PDKによって規定される製造プロセス関連の規則が、
図1Aに示すオペアンプ1004のゲインをサポートしない可能性があることを意味するため、同じ回路性能要件を達成するために、
図1Aの単一のオペアンプ1004を、それぞれゲインの小さい2つのオペアンプに置き換えることによってゲインを達成するためであると考えられる。
【0048】
別の例では、1つのPDK(例えばPDK180)は1.8Vの電圧をサポートするかもしれないが、第2のPDK(例えばPDK28)は0.9Vの電圧をサポートするかもしれない。より低い電圧をサポートするPDK(すなわちPDK28)のアナログ回路設計アーキテクチャは、ソースフォロワーを備えたOTAベースの増幅器で構成されるかもしれない。このアーキテクチャはPDK180の高電圧でも機能するかもしれませんが、このようなアーキテクチャはそのPDKに使用する最適なアーキテクチャではなく、代わりに折り畳みカスコードがより適切で効率的である。折り畳みカスコードアーキテクチャはより複雑であるため、本願明細書で説明するモデルとプロセスとを使用しなければ、直感に反してしまう。そのため、本願はアナログ回路設計に対する直感に反するアプローチを含むと言える。
【0049】
上述したように、現場で使用する場合、アナログ回路の異なる各ブロック間には相互作用がある。その場でのこれらのブロック間の相互作用(完成した回路に配置されたときにそれぞれの部分が経験する寄生を含んでもよい)、その結果、その回路に配置されたときに各ブロックが経験するパラメータ及び変数は、その回路の性能に影響を与える。例えば、回路で使用されるオペアンプの仕様は、コンパレータ、DAC、レベルシフタ、及びそれらの間の接続の選択と設計から生じる多くのパラメータ及び変数に依存する可能性がある。
【0050】
これらの異なるブロックの選択及び設計に影響を及ぼす可能性のあるパラメータや変数の例を、非網羅的に列挙すると、以下のようなものがある、シリコンプロセス、温度範囲、出力負荷、出力インピーダンス、入力キャパシタンス、入力コモンモード範囲、入力差動スイング、電源電圧、使用可能なトランジスタの種類、出力コモンモード範囲、出力スイング、整定時間、ノイズ耐性、電源電圧変動除去比(PSRR)、コモンモード範囲-入力(入力CMR)、コモンモード範囲-出力(出力CMR)、直線性、最大オフセット、帯域幅、最小スルーレート、固有遅延、最小位相マージン、動的消費電力、静的消費電力、IP3ポイント、フィルタ中心周波数、フィルタバンドパス範囲、負荷ステップ応答、ラインステップ応答、出力精度、雑音指数、校正範囲、ノイズフロア、SNR、ENOB、SINAD、出力周波数範囲、ジッタ-ptp、ジッタ-RMS、出力リップルptp、全高調波歪み、起動時間、チャネル絶縁、レファレンス電圧、ゲイン誤差、オフセット誤差、ゲインドリフト。これらのパラメータや変数は、ブロックが置かれている「コンテキスト」や「環境」と呼ばれることもある。最適なアナログ回路を作成するためには、コンテキストを理解することで回路の設計を改善することができる。また、これらのパラメータや変数の一部は、回路性能要件の一部を構成することも理解されるであろう。
【0051】
上述したように、アナログ回路の製造要件は、特定の製造プロセス関連規則のセットで構成されるか、又は指示される可能性がある。製造要件は、ファウンドリによって作成されたプロセス設計キット(PDK)によって規定される可能性がある。PDKは、物理的制約、SPICEモデル(シミュレーションモデル)、PCELLS及び技術ファイル、ルールデッキ、回路図記号のいずれか又は組み合わせを含む可能性があります。
【0052】
しかし、アナログ回路の設計は反復プロセスであり、あるブロックの選択及び調整が別のブロックのコンテキストに影響を与える可能性があることはもちろん理解される。したがって、あるブロックの構成要素が回路部分を形成するように選択/調整されると、そのブロックが含まれる完成した回路/回路部分が経験する寄生及び/又はコンテキストを考慮して、別のブロックの構成要素を調整または再選択する必要が生じる場合がある。このような反復プロセスは、手作業で実行するのは現実的ではなく、エラーが発生しやすく、通信を通じてのみ検出することができる。
【0053】
上述したように、アナログ回路の設計を自動化する方法に使用するコンピュータ実装モデルの一例を
図2に示す。
図2は、
図1Bに示された上述のブロックと、ブロック間の相互作用を概略的に示している。
【0054】
図2の例では、モデルの各ブロックが、そのブロックで示されるコンポーネント/機能の設計を担当する。
図2では、子1(950a)がコンパレータ1001の設計を担当し、子2(950b)がDAC1002の設計を担当し、子3(950c)がレベルシフタ1003の設計を担当し、子4(950d)がオペアンプ1004の設計を担当している。親ブロック900はADC1000全体の設計を担当し、ADCの部分/コンポーネント/機能の設計責任を子ブロック950a~950dに委譲する。いくつかの例では、親ブロック900は、いくつの子ブロック950a~950dが必要か、及び各ブロックに割り当てられる責任を選択することができる。子ブロック950a~950dは順番に示されているが、この順番は必ずしも回路の部分が設計される順番を代表するものではないことが理解されるであろう。例えば、親ブロック900は、オペアンプを担当する子ブロック950dに回路のその部分を最初に設計するように指示することができる。いくつかの例では、子ブロック950a~950dは、出力を最初に設計し、そこから逆算するように構成されてもよい。
【0055】
それぞれの回路部分は、最初は対応するそれぞれのブロックによって分離して設計されるかもしれないが、それぞれの回路部分がその場で回路全体に適用されたときに動作するコンテキストは、回路全体と同様に、それぞれの回路部分の両方がどのように動作するかに影響するかもしれない。したがって、親ブロックは各子ブロックにそれぞれの部分を設計するように指示することができるが、各子ブロック950a~950dによって設計された部分又はコンポーネントから設計された回路の初期バージョンが親900によって組み立てられると、結果として生じる寄生及び/又は他の子ブロック950a~950dによって設計された部分によって生じるコンテキストを考慮するために、回路1000及びその部分又は構成要素のある程度の適合又は再設計さえ必要となる可能性が高い。上述したように、これは反復プロセスとなる。
【0056】
したがって、親ブロック900は、各子ブロックによって実行される設計プロセスを処理し、処理するコントローラとして機能するように構成される。この機能を実行するため、
図2に示すように、親ブロック900は、設計プロセスの一部としてそれぞれ異なる機能を実行するように構成された多数の異なるモジュールを備えてもよい。
図2の親ブロックは、インストラクタモジュール901、アセンブリモジュール902、及び検証・シミュレータモジュール903を備えている。
【0057】
インストラクタモジュール901は、少なくとも1つの回路性能要件と、特定の製造プロセス関連規則のセットを満たすためのアナログ回路の少なくとも1つの製造要件とを含む、設計される回路の技術的要件を受信し、これらを、各子ブロック950a~950dが回路のそれぞれのコンポーネントを設計するときに満たす必要がある一連の指示/基準に変換するように構成される。また、各子ブロック950a~950dが何を設計する必要があり、これを行う際にどのような基準を満たす必要があるかについての指示を作成し、各子ブロック950a~950dに送信するように構成される。また、指示は、他の子ブロックによって設計された回路の他の設計された部分のコンテキストと、その回路のコンポーネント又は部分が動作することが意図されている回路のより広いコンテキストとを含んでもよい。例えば、回路性能要件は、コンテキストを考慮して調整されてもよい。
【0058】
アセンブリモジュール902は、子ブロック950a~950dの各々によって提供されるアナログ回路のそれぞれの設計された部分又はコンポーネントの全てを受け取り、照合し、それぞれの設計された部分又はコンポーネントに基づいて完全なアナログ回路をアセンブリするように構成される。完成したアナログ回路は、検証・シミュレータモジュール903によってテストされる。
【0059】
検証・シミュレータモジュール903は、子ブロックのそれぞれから設計されたコンポーネントを受け取り、これらを技術的要件のセットと比較して、設計された部分又はコンポーネントが満足のいくものであるか否かを判定するように構成される。これは、アナログ回路の組み立てられたコンポーネントの機能をシミュレートすることによって行うことができる。検証・シミュレータモジュール903は、例えば、設計されたそれぞれの回路部分又はコンポーネントが対応する回路性能要件を満たすか否か、及び/又は設計されたアナログ回路が製造プロセス関連規則の特定のセットを満たすか否かを検証することによって、設計されたコンポーネント/完成した回路設計が技術的要件を満たすか否かを判定してもよい。その際、例えば、要件がどの程度密接に満たされているか、及び/又は要件を上回っているかどうかに基づいてスコアを割り当てることによって、これらの要件をどの程度満たしているかを判定してもよい。また、設計された回路が特定の技術的制限の範囲内で動作可能であるという意味で有効であるか否かを判定する検証チェックを追加的又は代替的に含んでもよい。
【0060】
検証・シミュレータモジュール903は、「テストベッド」として機能し、回路の組み立てられたコンポーネントの機能をシミュレートするように構成されてもよい。このようなシミュレーションは、例えば、寄生情報及び/又はコンテキスト情報、並びにコンポーネント/完成した回路設計が回路性能要件及び/又は製造プロセス関連ルールの特定のセット等の技術的要件をどの程度満たしているかに関連する情報を得ることができる。例えば、検証・シミュレータモジュール903は、(i)設計された回路部分、及び(ii)設計された回路部分を備えた完全なアナログ回路の少なくとも一方の性能を、仮想テストベンチにおいて数学的にシミュレートすることによって、例えば、アナログ回路がその設計された回路部分を含む場合にアナログ回路で経験されるコンテキスト及び寄生に関連する性能情報を取得するように構成されてもよい。追加的又は代替的に、検証・シミュレータモジュール903は、例えば、回路設計及び寄生素子のデータベースにおいて、類似の生成された設計についてルックアップを実行することによって、アナログ回路がその設計された回路部分を含む場合にアナログ回路において経験される寄生素子に関連する性能情報などを取得するように構成されてもよい。追加的又は代替的に、検証・シミュレータモジュール903は、それぞれの回路部分の少なくとも1つについて、類似するそれぞれの回路部分について、回路設計及び寄生素子のデータベースにおいてルックアップを実行し、それぞれの回路部分の少なくとも1つについてルックアップを介して取得された寄生素子の値に基づいて、生成された設計が経験する寄生素子に関連する性能情報などを取得するように構成されてもよい。他の例では、検証・シミュレータモジュール903は、機械学習モデルを使用して回路の性能を予測することにより、例えばその生成された設計が経験する寄生に関連する性能情報を取得するように構成される。
【0061】
検証・シミュレータモジュール903は、例えば、インストラクタモジュール901が、(新しい又は適合された)対応する回路性能要件に基づいて回路部分を設計するプロセスを複数回繰り返すように子ブロック950a~950dに指示する場合、回路設計のデータベースを入力するように構成されてもよい。また、回路設計のデータベースは、回路設計が技術的要件をどの程度満たしているかに関連する情報を含んでもよい。
【0062】
また、各子ブロック950a~950dは、それぞれが設計プロセスの一部として異なる機能を実行するように構成された多数の異なるモジュールを備える。
図2に示す例では、各子ブロック950a~950dは、コンバータモジュール951a~951d、アセンブリモジュール952a~952d、及びシミュレータモジュール953a~953dを備える。いくつかの実施例では、各子ブロック950a~950dは、
図2における親ブロック900が、子ブロック950a~950dからの設計プロセスを指示及び検証するためのインストラクタモジュール及び検証モジュール等のモジュールから構成される方法と同様に、
図4~
図6を参照して以下でさらに詳細に説明するように、3次設計ユニットまたは「孫」ブロックを指示するための追加のモジュールをさらに備えてもよいことが理解されるであろう。
【0063】
各子ブロック950a~950dのコンバータモジュール951a~951dは、親ブロック900から受信した回路性能要件と、任意選択で回路全体のコンテキストと、回路の他のコンポーネントのコンテキストとを受信し、これらを、それらの基準を満たすようにアナログ回路の一部又はコンポーネントを設計するための要件のセットに変換するように構成される。いくつかの例では、コンテキスト情報は回路性能要件の一部として提供及び受信されることがあるが、他の例では、回路性能要件に加えて(例えば、回路性能要件とは別に)提供されることがあることが理解されるであろう。
【0064】
アセンブリモジュール952a~952dは、親ブロック、回路全体のコンテキスト、及び/又は回路の他のコンポーネントのコンテキストによって指示される指示/基準を満たす、要求される要件を満たす電子部品を選択及び/又は設計するように構成される。
【0065】
シミュレータモジュール953a~953dは、アセンブリモジュールによって設計された設計部分又はコンポーネントが技術的に実現可能であるかどうかをチェック/検証するために、それらのコンポーネントがその場でどのように動作するかをシミュレートするように構成されてもよい。一部の例では、シミュレータモジュール953a~953dは、上述の親ブロック900の検証・シミュレータモジュール903と同様の方法で、そのブロックが設計したそれぞれの回路部分の寄生に関連する情報を取得することもできる(このような例では、各子ブロック950a~950dのシミュレータモジュール953a~953dによって既に実行されている可能性があるため、親ブロック900の検証・シミュレータモジュール903は、寄生に関連する情報を取得する必要がない場合があることが理解されるであろう)。
【0066】
使用時、親ブロック900は、設計されるアナログ回路1000の技術的要件のセットを受け取る。技術的要件には、少なくとも1つの回路性能要件と、アナログ回路が特定の製造プロセス関連規則セットを満たすための少なくとも1つの製造要件とが含まれる。
図2に示す例では、親ブロック900は、例えば、ADCを製造するファウンドリによって指示される特性(すなわち製造要件)を含む特定の特性を有する、設計されるべきADCに対する技術的要件のセットを受信する。
【0067】
親ブロック900はこれらの要件を受信し、インストラクタモジュール901はこれらを指示/基準のセットに変換する。このプロセスの一部として、インストラクタモジュール901は、現在のアナログ回路設計アーキテクチャとして、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択し、初期アナログ回路設計の選択は、製造プロセス関連規則のセットに依存する。
【0068】
そして、これらの指示/基準は、子ブロック950a~950dのそれぞれに送られる。インストラクタモジュール901は、子ブロック950a~950dのそれぞれに、これらの指示/基準を並列に(すなわち、すべて同時に)送信してもよいし、直列に(例えば、基準が子1に送信され、次に子2に送信され、次に子3に送信されるというように)送信してもよい。いくつかの例では、インストラクタモジュール901は、回路性能要件のセットを次の子に送信する前に、最初の子から設計された回路を受信するまで待機してもよく、いくつかの例では、インストラクタモジュールは、先行する子から受信した設計された回路に基づいて、言い換えれば、先行する子から受信した設計された回路のコンテキストに基づいて、次の子に送信される回路性能要件を調整するように構成されてもよい。
【0069】
指示/基準が子ブロック950a~950dに直列に送られる例では、命令/基準は、回路性能要件のどの部分がどの子ブロック950a~950dに関連するかを区別する手段を含んでいてもよい-例えば、指示/基準は、指示/基準の特定の部分が子ブロック950a~950dに関連するかどうかを識別するヘッダ又はフラグを含んでいてもよい。これらのヘッダ又はフラグは親ブロック900によって決定され、指示/基準はそれらを組み込むように適宜調整され得る。
【0070】
各子ブロック950a~950dは、親ブロック900からこれらの指示/基準を受け取り、各それぞれのコンバータモジュール951a~951dは、これらの回路性能要件を満たすようにアナログ回路の部分又はコンポーネントを設計するための要件のセットにこれらを変換する。アセンブリモジュール952a~952dは、これらの要件を受け取り、これらの要件を満たす回路のコンポーネント/部分を設計する。この設計プロセスは、既知の回路設計(又はその一部)のデータベースをルックアップし、指示/基準に最も適合する回路設計を見つけることを含んでもよいことが理解されるであろう。
【0071】
次に、シミュレータモジュール953a~953dは、回路のこれらのコンポーネント/部分が現場でどのように動作するかをシミュレートして、アセンブリモジュールによって設計された回路の設計されたコンポーネント/部分が技術的に実現可能であるかどうかをチェックし、及び/又は対応する設計されたそれぞれの回路部分が指示/基準を満たすかどうかを検証する。設計された回路部分がその対応する指示/基準を満たす場合、子ブロック950a~950dは、次に、設計された回路部分又はコンポーネントを親900に送り返すか、又は出力するように構成される。設計された回路部分がその対応する指示/基準を満たさない場合、子ブロック950a~950dは、その回路部分の設計を適合させ、プロセスを繰り返すように構成される。
【0072】
親900がすべての子ブロック950a~950dから回路の設計された部分又はコンポーネントのすべてを受信すると、親900のアセンブリモジュール902は、次に、各子ブロックによって設計された部分又はコンポーネントから完成した回路(この場合はADC)を組み立て、検証・シミュレータモジュール903を介して、設計された回路が技術的要件を満たしているかどうかを検証する。これは、組み立てられた回路がどのように動作するかをシミュレートし、このシミュレートされた性能を回路性能要件及び/又は製造要件と比較することによって行ってもよい。例えば、検証・シミュレータモジュール903は、例えば、設計されたそれぞれの回路部分又はコンポーネントが対応する回路性能要件を満たすか否か、及び/又は設計されたアナログ回路が製造プロセス関連規則の特定のセットを満たすか否かを検証することによって、設計されたコンポーネント/完成した回路設計が技術的要件を満たすか否かを判定してもよい。その際、例えば、要件がどの程度密接に満たされているか、及び/又は要件を上回っているかどうかに基づいてスコアを割り当てることによって、これらの要件をどの程度満たしているかを判定することもできる。追加的又は代替的に、設計された回路が特定の技術的制限内で動作可能であるという意味で有効であるか否かを判定する検証チェックを含んでもよい。いくつかの例では、完成したアナログ回路設計のこのシミュレートされた性能は、寄生素子及び/又はオプションのコンテキスト情報(例えば、別の設計ユニット用)を取得するために使用されてもよく、親900は、完成したアナログ回路設計のシミュレーションを介して取得された寄生素子及び/又はオプションのコンテキスト情報に基づいて回路性能要件を調整してもよいことが理解されるであろう。
【0073】
設計された回路のシミュレートされた性能が少なくとも1つの回路性能要件を満たさない場合(例えば、シミュレートされた回路のパラメータが、寄生素子が寄生素子の閾値レベル以上である等、回路性能要件によって決定されるパラメータとは異なる閾値レベル以上である)、検証モジュール903は、このことをインストラクタモジュール901に伝達する。その後、インストラクタモジュール901は、現在のアナログ回路設計アーキテクチャとしてさらなるアナログ回路設計アーキテクチャを選択することができ、さらなるアナログ回路設計アーキテクチャの選択は、製造プロセス関連ルールのセットに依存する。
【0074】
いくつかの例では、親ブロック900(例えば、検証モジュール903/インストラクタモジュール901)は、さらなるアナログ回路設計アーキテクチャが選択される前に、回路が回路性能要件を満たさない原因となっているのが回路のどの部分又はコンポーネントであるか(例えば、寄生素子の大きな割合を占めているのはどの部分であるか)を判定し、子ブロック(複数可)950a~950dが特定できる場合、親ブロック900は、回路の問題のある部分又はコンポーネントを担当する子ブロックにのみ、修正された回路性能要件を送信するように構成されてもよい。しかし、他の例では、修正された基準はすべての子ブロック950a~950dに送り返されてもよい。また、いくつかの例では、親モジュール900は、例えば修正された回路性能要件を満たすために、回路の関連する部分又はコンポーネントを設計するために、追加及び/又は代替の子ブロック950a~950d及び/又は孫ブロックが必要であると決定してもよいことが理解されるであろう。
【0075】
その後、プロセスは反復的に継続され、各子ブロック950a~950dのコンバータモジュール951a~951dが、親ブロック900からこれらの修正又は適合された回路性能要件を受け取り、これらを、これらの適合された回路性能要件を満たすようにアナログ回路の一部又はコンポーネントを設計するための指示/基準の新しいセットに変換する。アセンブリモジュール952a~952dは、これらの新たな指示/基準を受け取り、これらの要件を満たす回路のコンポーネント/部分を設計する。次に、シミュレータモジュール953a~953dは、アセンブリモジュールによって設計された回路の設計されたコンポーネント/部分が技術的に実現可能であるかどうかをチェックするために、再設計された回路のコンポーネント/部分がその場でどのように動作するかをシミュレートすることができる。そして、子ブロック950a~950dは、回路の(再設計された)コンポーネント/部分を親900に送り返すように構成される。
【0076】
親ブロック900がすべての子ブロック950a~950dから回路の(再設計された)すべてのコンポーネント/部分を受信すると、親ブロック900は、次に、各子ブロックによって設計されたコンポーネント/部分から完成した回路(この場合はADC)を組み立て、組み立てられた回路がどのように動作するかをシミュレートし、このシミュレートされた性能を回路性能要件と比較することができる検証・シミュレータモジュール903を介して、設計された回路が回路性能要件を満たしているかどうかを検証する。アナログ回路が回路性能要件を満たす場合、親ブロック900は生成された設計を出力することができる。アナログ回路が回路性能要件を満たさない場合、親ブロック900は、複数の回路部分のうちの少なくとも1つの影響を受ける回路部分について、シミュレーション出力及び回路性能要件に基づいて、その影響を受ける回路部分に対する修正指示/基準を決定し、少なくとも1つの対応する子ブロック950a~950dに、影響を受ける各回路部分に対する修正指示/基準を提供してもよい。親ブロック900は、その代わりに、少なくとも1つの対応する子ブロック950a~950dから各影響を受ける回路部分のそれぞれの更新された設計を受信し、アナログ回路の現在の設計を、各影響を受ける回路部分のそれぞれの更新された設計で更新することができる。
【0077】
上述した
図3に示すように、親ブロック900は、その後、任意でアナログ回路の更新された現在の設計について、現在の設計が少なくとも1つの回路性能要件を満たすかどうか、及び任意で現在の設計が少なくとも1つの回路性能要件及び/又は製造プロセス関連規則のセットをどの程度満たすかを決定することができる(ステップ307)。このプロセスは、すべてが回路性能要件を満たすが、いくつかの設計が他の設計よりも少なくとも1つの回路性能要件及び製造プロセス関連規則のセットに適しているかもしれない複数の製造アナログ回路設計を生成するために繰り返されてもよい。次に、親ブロック900は、複数の生成されたアナログ回路設計の中から、少なくとも1つの回路性能要件及び製造プロセス関連規則のセットを最もよく満たすアナログ回路の設計を選択して出力することができる。
【0078】
子ブロック950a~950d及び/又は親ブロック900は、エンドレスな再設計ループの発生を阻止するためのループ緩和モジュールを備えることもできることが理解されるであろう。例えば、ループ緩和モジュールは、以前に設計された回路の記録を有し、再設計された回路のコンポーネント/部分、又は完成した回路が、以前に設計された回路のコンポーネント/部分、又は完成した回路と同一であるか、又は以前に設計された回路のコンポーネント/部分、又は完成した回路と選択された閾値レベル未満の差しかない場合に、ループ表示を出力するように構成されてもよい。例えば、親ブロック900は、ループ緩和モジュールを備え、ループ緩和モジュールがループ表示を提供した場合に設計プロセスを終了し、最後に設計された回路を完成回路として受け入れるように構成されてもよい。さらに又は代替的に、親ブロック900は、設計プロセスが、選択された反復回数だけ繰り返された場合等に、選択された閾値レベルの差を低減するように構成されてもよい。これは、技術的要件を満たす「最良の妥協」機能回路を見出す効果をもたらす可能性がある。
【0079】
図4は、アナログ回路を設計するためのコンピュータ実装モデルの別の実施例の機能概略図である。このモデルの実装は、多くの点で
図2に示したモデルに類似しており、
図2に関して親ブロック900及び子ブロック950a~950dについて上述した機能は、
図4の親ブロック及び子ブロックに帰属させることができる。さらに、一次設計ユニット又は親ブロック900に関して
図2で説明した機能の一部は、その子ブロックがその下に三次設計ユニット又は「孫」ブロックを有する場合には、
図4の二次設計ユニット又は子ブロック950a~950dに帰属させることができる。
【0080】
より詳細には、
図4に示すように、モデル階層は、主設計ユニット又は親ブロックを含むコア設計層を備える。
図4のコア設計層には、親ブロック900が1つだけ示されているが、いくつかの例では、各親ブロック900が並列に動作する場合など、複数の親ブロック900が存在してもよいことが理解されるであろう。例えば、各親ブロック900は、アナログ回路の異なる側面(例えば、機能的及び/又は構造的に互いに異なる)を設計するように構成されてもよい。
【0081】
コア設計層の下には第1設計層がある。第1設計層は、上の層(この場合はコア設計層)の親ブロック900に結合された第2設計ユニット又は子ブロック950を備える。この例では6つの子ブロックがあり、すべてコア設計層の親ブロックに結合されている。子ブロック950は、子ブロック1、2、3からなる第1グループと、子ブロック4、5、6からなる第2グループの2つの異なるグループにグループ分けされている。各子ブロック950は、親ブロック900に結合されている。2つのグループは、親ブロック900が並列に設計するように指示するアナログ回路の異なる機能領域又はエリアを表すことができる。
【0082】
図示の例では、第1グループの子ブロック950はコア設計層の親ブロック900に並列に結合され、第2グループの子ブロック950はコア設計層の親ブロック900に並列に結合される。子ブロック950をこのようにグループ化して、アナログ回路の異なるエリア又は側面(例えば、機能的及び/又は構造的に互いに異なる)を設計することができる。しかし、いくつかの例では、第1設計層のすべての子ブロック950がコア設計層の親ブロックに並列に結合される必要はないことが理解されるであろう。例えば、第1設計層の子ブロック1及び3をコア設計層の親ブロック900に結合し、第1設計層の子ブロック2を第1設計層の子ブロック1及び3にそれぞれ直列に結合してもよい。
【0083】
子ブロック950のグループ分けは、コア設計層の親ブロック900によって決定されてもよい。例えば、親ブロック900は、アナログ回路の異なる側面(例えば、機能的及び/又は構造的に互いに異なる)を設計するように、第1設計層の子ブロックをグループ化するように構成されてもよい。コア設計層の親ブロック900は、顧客仕様からの要件の決定に基づいてこれを行うように構成されてもよい。
【0084】
第1設計層の下には第2設計層がある。第2設計層は、三次設計ユニット又は孫ブロック1、2、3、4、5、6、7、8(960)を備える。孫ブロック960は、その上の層(第1設計層)の子ブロックに結合されている。第1設計層のすべての子ブロックが第2設計層の孫ブロックに結合されているわけではない。図示の例では、第2設計層の孫ブロック1、2、3は、第1設計層の子ブロック2に並列に結合されている。しかし、第1設計層の子ブロック950について上述したように、いくつかの例では、第2設計層のすべての孫ブロックが第1設計層の子ブロックに並列に結合される必要はないことが理解されるであろう。例えば、第2設計層の孫ブロック1及び3を第1設計層の子ブロック2に結合し、第2設計層の孫ブロック2を第2設計層の孫ブロック1及び3にそれぞれ直列に結合してもよい。
【0085】
第2設計層の下には、別の(第N)設計層がある。第N設計層は、ひ孫ブロック1、2、3、4(970)を備える。ひ孫ブロック970は、第2設計層の孫ブロック960が第1設計層の子ブロック950に結合されているのとほぼ同じ方法で、その上の層(第2設計層)の孫ブロック960に結合されている。従って、第2設計層の下には、それぞれ上の層のブロックに結合された独自のブロックを備える複数のデザイン層が存在する可能性があることが理解されるであろう。
【0086】
図4に示すブロック階層の構造は、モデルの異なる階層のブロックが、異なる複雑さのレベルでアナログ回路の側面又は部分を設計するように構成されている。例えば、親ブロック900は完全なアナログ回路を設計するように構成されてもよく、子ブロック950はアナログ回路(オペアンプ、AC/DCコンバータ、レベルシフタ、コンパレータ、電圧レギュレータ、電源スイッチ等)の機能コンポーネントを設計するように構成されてもよく、孫ブロック960はその機能コンポーネントのコンポーネント(例えば、そのコンポーネントの抵抗、トランジスタ、コンデンサ、ダイオード、インダクタ等の配置)を設計するように構成されてもよい。
【0087】
(コア設計層の)親ブロック900は、選択された層のブロックが設計するように構成される複雑さのレベルを決定するように構成されてもよく、及び/又は、ある層のブロックは、下の層のブロックが設計するように構成される複雑さのレベルを決定するように構成されてもよい。
【0088】
さらに又は代替的に、
図4に示すブロック階層の構造は、モデルの異なる層のブロックが、異なる機能的要件又は構造的要件に基づいてアナログ回路の側面又は部分を設計するように構成される。例えば、ある層は、1つの機能的要件(例えばサイズ)に基づいてアナログ回路の側面又は部分を設計するように構成されたブロックを備え、別の層は、別の機能的要件(例えば電流又は電圧)を設計するように構成されたブロックを備えてもよい。
【0089】
図5は、例えば
図2又は
図4のコンピュータ実装階層モデル例を用いたアナログ回路設計方法の一例を示す機能概略フローチャートである。
図5の方法は、
図2に関して上述した方法と共通する多くの特徴を有する。
【0090】
ステップ500で、親ブロック900は、少なくとも1つの回路性能要件と、特定の製造プロセス関連規則のセットを満たすためのアナログ回路の少なくとも1つの製造要件とを含む、設計される回路の技術的要件を受信する。親ブロック900は、技術的要件を指示/基準のセットに変換するように構成される。このプロセスの一部として、インストラクタモジュール901は、現在のアナログ回路設計アーキテクチャとして、複数のアナログ回路設計アーキテクチャの候補の中から初期アナログ回路設計アーキテクチャを選択し(502)、初期アナログ回路設計の選択は、製造プロセス関連規則のセットに依存する。
【0091】
親ブロック900は、追加的又は代替的に、これらの指示/基準を子ブロック950に並列に送信するか、直列に送信するか、及び/又は異なる指示/基準のセットを下の層の子ブロック950に送信するかどうかを決定するように構成されてもよい。
【0092】
この段階で、親ブロック900は、例えば、選択された現在のアナログ回路設計アーキテクチャに基づいて、モデルの層数を決定するように構成されてもよいし、あるいは、各層のブロックが、上の層のブロックによって設計を任される回路の部分を設計するときに、下の層のブロックが必要であるかどうかを決定するように構成されてもよい。
【0093】
親ブロック900は、技術的要件を指示/基準に変換すると(502)、これを第1設計層の子ブロック1に送信する。これらの指示/基準は、この層の子ブロック950をいくつ使用するか、どの子ブロック950にアナログ回路の各部分の設計を担当させるかを指定することができる。
【0094】
基準を受け取ると、子1は、現在のアナログ回路設計アーキテクチャに従って、受け取った指示/基準に基づいてアナログ回路の第1部分を設計する(506)。子1は、親ブロックによって決定されるように、それに適用可能な指示/基準のサブセット/第1部分に基づいてアナログ回路の第1部分を設計するように構成されてもよいことが理解されるであろう。
【0095】
子1がアナログ回路の第1部分を設計すると、親ブロック900から受信した指示/基準は、子1が設計された回路の第1部分及び基準を同じ層の第2の子(子2)に送信することを指示することができる(508)。子2は、現在のアナログ回路設計アーキテクチャに従って、受信した指示/基準に基づいてアナログ回路の第2部分を設計することができ(510)、いくつかの例では、指示/基準のサブセットのみ(例えば、それに適用可能な部分のみ)に基づいて、又は指示/基準のすべてに基づいて、アナログ回路の第2部分を設計することができる。
【0096】
子2は、また、子1によって設計されたアナログ回路の設計された第1部分によって作成されたコンテキストに基づいて、アナログ回路の第2部分の設計を適合させる。いくつかの例では、このコンテキストは、調整された基準のセットの形で表現されてもよく、例えば、子1及び/又は親ブロックは、子1によって設計された回路の設計された第1部分によって提供されたコンテキスト及び/又は寄生に基づいて基準を調整するように構成されてもよいが、他の例では、コンテキスト及び/又は寄生が、基準に加えて/基準とは別に提供されてもよいことが理解されるであろう。例えば、親ブロックが検証・シミュレータモジュールで構成される例では、検証・シミュレータモジュールは、コンテキスト及び/又は寄生情報を取得するために、回路の設計された部分又はコンポーネントの性能をシミュレートすることができる。さらに又は代替的に、各子ブロックが検証・シミュレータモジュールで構成される例では、検証・シミュレータモジュールは、回路の設計された部分又はコンポーネントの性能をシミュレートして、コンテキスト情報及び/又は寄生情報を取得することができる。
【0097】
いくつかの例では、子2は、現在のアナログ回路設計アーキテクチャに従って、子2が設計を課せられている回路の部分を設計するために下層のブロックを採用する必要があることを決定し、及び/又はこれらの下層のブロックを直列及び/又は並列に採用するかどうかを決定することができる。さらに又は代替的に、子2によって受信された基準は、子2が、子2が設計を課せられている回路の部分を設計するために下層のブロックを採用すること(及びこれらのブロックを直列に採用するか並列に採用するか)を(例えば、親ブロックによって決定されるように)指示することができる。例えば、
図6に示すように、子2は、512個の孫1及び孫2に、アナログ回路の第2部分のサブセットを設計するように任意に指示することができる。このような例では、子2は、下層のブロック(図示の例では、孫1及び孫2)によって設計された回路の部分が、彼らに要求された指示/基準を満たすかどうかを任意に検証することができる(513)。
【0098】
次に、子2は、設計された第1部分、設計された第2部分、及び指示/基準を、子3に送信する(514)。いくつかの例では、指示/基準は、先行する子によって修正されてもよい。例えば、指示/基準は、次の子に送られる前に、子1及び/又は子2によって修正されてもよい。例えば、子2は、回路の設計された第1部分及び/又は回路の設計された第2部分に基づいて、子3に送信する指示/基準を修正するように構成されてもよい。
【0099】
次に、子3は、受信した指示/基準、及び追加的又は代替的に、設計された第1部分及び/又は設計された第2部分に基づいて、現在のアナログ回路設計アーキテクチャに従ってアナログ回路の第3部分を設計する(516)。
【0100】
次に、子ブロック3は、完成した回路を親ブロックに送信し、親ブロックは、それぞれの回路部分設計のセットに基づいてアナログ回路の初期設計を生成し、現在設計されている完成した回路が回路性能要件を満たしているかどうかを判定する(520)。上述したように、親ブロックは、完成した回路の性能をシミュレートするために検証・シミュレートモジュールを採用することによってこれを行うことができる。
【0101】
設計された完成した回路が回路性能要件を満たさない場合、親ブロックはさらなるアナログ回路設計アーキテクチャを選択し、さらなるアナログ回路設計アーキテクチャの選択は、製造プロセス関連規則のセットに依存する。その後、親が子1に指示/基準を再送信し(522)、新しいアナログ回路設計アーキテクチャに従って新しいアナログ回路を再設計するプロセスが繰り返される。このプロセスの一環として、親は追加又は代替の子(及び/又は孫)ブロックを採用する必要があると判断してもよい。
【0102】
上記の例では、アナログ回路の第1、第2、第3及び第4部分は、回路の独立した部分であってもよく、及び/又は互いに機能的に依存していてもよいことが理解されるであろう。他の例では、アナログ回路の第1、第2、第3及び第4部分は、アナログ回路の選択されたサブセットであってもよい。例えば、第2部分は第1部分の一部から構成され、第3部分は第1及び第2部分の一部から構成され、第4部分は第1、第2及び第3部分の一部を備えてもよい。
【0103】
図6Aは、入力バッファ、レベルシフタ、DAC、コンパレータを示す。これらの各々は、
図6Bに示される完成したADCのような、完成したアナログ回路の一部を形成してもよい。
【0104】
図6A及び
図6Bに示す例は、上述のようにコンピュータ実装された階層モデルを使用して設計される。親ブロック(又は一次設計ユニット)がADC全体の設計を担当し、子ブロック(又は二次設計ユニット)が入力バッファ、レベルシフタ、DAC、コンパレータのそれぞれを担当する。親ブロックはユーザから技術的要件を受け取り、これを回路性能要求に変換し、各子ブロックが回路のそれぞれの部分を設計するために使用する。回路の他の部分のコンテキストが考慮され、子ブロックが回路のそれぞれの部分を設計する際に使用される。このモデルは、親ブロック900が各子ブロック950a~950dにそれぞれの部分又はコンポーネントを設計するように指示すると、回路の他の部分によって提供されるコンテキストがそれぞれの回路部分及び回路全体を設計する際に使用されるように、回路及びその部分のある程度の再設計が実行されるという点でも反復的である。上述したように、各子ブロック及び/又は親ブロックは、設計された部分/完全な回路が要求された技術的要件を満たしているかどうかを判断するために、検証/確認を実行することもできる。
【0105】
図6Bに示す設計された回路においてDACが2つあるのは、この回路が差動ADCを動作させるためである。入力バッファが複数(図示の例では3つ)あるのは、2つの入力をバッファリングするために2つが使用され、レファレンスも入力としてバッファリングされるためである。
【0106】
上述のように、アナログ回路設計装置は、機械学習モデルを利用して、アナログ回路設計アーキテクチャの候補を特定、選択、及び/又は優先順位付けをすることができる。
【0107】
機械学習モデルは、ニューラルネットワークを備えてもよい。ニューラルネットワークは、ディープ残差ネットワーク、ハイウェイネットワーク、密結合ネットワーク、及びカプセルネットワークのうちの少なくとも1つを備えてもよい。
【0108】
このようなタイプのネットワークであれば、ネットワークは、異なる層に編成された複数の異なるニューロンを備えてもよい。各ニューロンは、入力データを受け取り、この入力データを処理し、出力データを提供するように構成される。各ニューロンは、その入力に対して特定の操作を実行するように構成できる。これには、入力データの数学的処理が含まれる場合がある。各ニューロンの入力データは、先行する他の複数のニューロンからの出力を含むことができる。入力データに対するニューロンの操作の一部として、入力データの各ストリーム(例えば、先行する各ニューロンに1ストリームの入力データがあり、それがニューロンに出力を提供する)には、重み付けが割り当てられる。つまり、ニューロンによる入力データの処理は、入力データの異なるストリームに重み付けを適用することを含み、入力データの異なるアイテムが、ニューロンの全体的な出力に与える影響が大きくなったり小さくなったりする。入力の重み付けが変化した結果等、ニューロンの入力値が調整されると、そのニューロンの出力値が変化する可能性がある。各ニューロンからの出力データは、後続する複数のニューロンに送信することができる。
【0109】
ニューロンは層状に組織されている。各層は、先行する層のニューロンの出力から供給されたデータを処理する複数のニューロンを備える。各層内には多数の異なるニューロンが存在してもよく、各ニューロンは入力データに異なる重み付けを適用し、入力データに対して異なる演算を行う。層内のすべてのニューロンの入力データは同じであってもよく、ニューロンからの出力は後続層のニューロンに渡される。
【0110】
異なる層のニューロン間の正確なルーティングは、カプセルネットワークとディープ残差ネットワーク(ハイウェイネットワークや密結合ネットワーク等の変種を含む)との大きな違いを形成する。
【0111】
残差ネットワークの場合、層はブロックに編成され、ネットワークが複数のブロックを備え、各ブロックが少なくとも1つの層を備えるようにすることができる。残差ネットワークの場合、1つの層のニューロンからの出力データは、複数の異なる経路をたどってもよい。従来のニューラルネットワーク(畳み込みニューラルネットワーク等)では、1つの層からの出力データは次の層に渡され、これはネットワークの最後まで続き、各層はその直前の層から入力を受け取り、その直後の層に出力を提供する。しかし、残差ネットワークでは、層間で異なるルーティングが行われてもよい。例えば、1つの層からの出力が複数の異なる後続の層に渡され、1つの層の入力が複数の異なる先行層から受信されてもよい。
【0112】
残差ネットワークでは、ニューロンの層は異なるブロックに編成することができ、各ブロックは少なくとも1層のニューロンを備える。ブロックは、先行する層(又は複数の層)の出力が次のブロックの層の入力に入るように、層を積み重ねて配置することができる。残差ネットワークの構造は、1つのブロック(又は層)からの出力が、その直後のブロック(または層)と、他の少なくとも1つの後続のブロック(または層)の両方に渡されるようになっていてもよい。ある層(又はブロック)から別の層(又はブロック)にデータを渡す一方で、その間にある他の層(又はブロック)をバイパスするショートカットをニューラルネットワークに導入してもよい。これにより、例えば、非常に深いネットワークを扱う場合、ネットワークをトレーニングする際に劣化に関連する問題に対処することが可能になるため、ネットワークをより効率的にトレーニングすることが可能である(これについては以下で詳しく説明する)。残差ニューラルネットワークの配置は、1つの層、又は層のブロックに提供される同じ入力が、少なくとも1つの他の層、又は層のブロックに提供されるように(例えば、他の層が、1つの層、又は層のブロックからの入力データと出力データの両方で動作するように)、分岐が発生することを可能にする場合がある。このように配置することで、バックプロパゲーションアルゴリズムを使用してネットワークを学習する際に、ネットワークへの深い浸透を可能にすることができる。例えば、学習中、層、又は層のブロックは、前の層/ブロックの入力と前の層/ブロックの出力を入力として受け取ることができ、ネットワークの重み付けを更新する際に、より深い浸透を提供するためにショートカットを使用することができるためである。
【0113】
カプセルネットワークでは、層を他の層の内側に入れ子にして「カプセル」を提供することができる。異なるカプセルは、他のカプセルよりも異なるタスクの実行に習熟するように適合させることができる。カプセルネットワークは、所定のタスクに対して、そのタスクを処理するための最も能力の高いカプセルにタスクが割り当てられるように、カプセル間の動的ルーティングを提供することができる。例えば、カプセルネットワークは、ある層のすべてのニューロンからの出力を、次の層のすべてのニューロンへルーティングすることを避けることができる。下位レベルのカプセルは、その入力を処理する可能性が最も高いと判断された上位レベル(後続)のカプセルに入力を送るように構成される。カプセルは上位層のカプセルの活動を予測することができる。例えば、カプセルは、方向が問題のオブジェクトの特性を表すベクトルを出力することができる。これに応答して、後続の各カプセルは、そのカプセルが識別するように訓練されたオブジェクトが入力データに存在する確率を出力として提供することができる。この情報(例えば確率)は、カプセルにフィードバックすることができ、カプセルは、ルーティングの重みを動的に決定し、そのデータを処理するために関連するカプセルである可能性が最も高い後続のカプセルに入力データを転送することができる。
【0114】
いずれのタイプのニューラルネットワークについても、異なる機能を有する複数の異なる層が含まれていてもよい。ニューラルネットワークは、入力データを縦横に畳み込むように構成された少なくとも1つの畳み込み層を含むことができる。ニューラルネットワークは、また、複数のフィルタリング層を有してもよく、各フィルタリング層は、入力データの異なる部分に焦点を当て、フィルタを適用するように構成された複数のニューロンを備える。最大値プーリングやグローバル平均プーリング等のプーリング層(非線形性を導入するため)、整流線形ユニット層(ReLU)、損失層等、入力データを処理するための他の層が含まれてもよい。層の最終ブロックは、最後の出力層(分岐がある場合はそれ以上の層)から入力を受け取ることができる。最終ブロックは、少なくとも1つの全結合層を備えてもよい。
【0115】
最終出力層は、ソフトマックス、シグモイド、タン等の分類器を備えることができる。異なる分類器は、異なるタイプの出力に適している場合があり、例えば、シグモイド分類器は、出力が2値分類器である場合に適している場合がある。本開示のニューラルネットワークは、回路性能要件及びアナログ回路の製造要件の少なくとも1つに基づいて、どのアナログ回路設計アーキテクチャが機能する可能性が高いかを予測し、特定の製造プロセス関連規則のセットを指定するように構成されてもよい。ニューラルネットワークの出力は、アナログ回路設計アーキテクチャが少なくとも1つの製造要件及び少なくとも1つの回路性能要件の両方を満たす確率の指標を提供してもよい。例えば、ニューラルネットワークの出力は、アナログ回路設計アーキテクチャが少なくとも1つの製造要件を間違いなく満たすという知見を用いて、アナログ回路設計アーキテクチャが少なくとも1つの回路性能要件を満たす確率の指標を提供することができる。回路設計アーキテクチャは、決定された確率に従って優先順位付け又はランク付けされてもよく、例えば、上述の親ブロックが、少なくとも1つの製造要件を満たす複数の回路設計アーキテクチャの中から回路設計アーキテクチャを選択するとき、少なくとも1つの回路性能要件を満たす確率が最も高いと決定されたものが最初に選択されるようにする。
【0116】
図7は、アナログ回路設計アーキテクチャが少なくとも1つの製造要件及び少なくとも1つの回路性能要件を満たす確率を推定するために機械学習モデルをトレーニングするための例示的な方法の概略図である。ニューラルネットワーク700は、設計された回路部分及び/又はアナログ回路を入力(710)として取り込むように構成される。設計された回路部分及び/又はアナログ回路は、データベースに格納されていてもよく、
図1A~
図6Bを参照して上述したコンピュータ実装モデルを使用して、一次設計ユニット及び二次設計ユニットの階層モデルを使用して設計されていてもよい。回路部分及び/又はアナログ回路は、ベクトル化及び/又は符号化されてもよく、例えば、バイナリ形式を提供するためにワンホットエンコーディングを使用することによって符号化されてもよい。この入力は、ニューラルネットワークの3D層に入力される。このネットワークにはいくつかの特徴があり、ネットワークのトレーニングが進むにつれて変化させることができる。各ニューロンには複数の重み付けがあってもよく、各重み付けは、先行する層のニューロンからの出力データに対して、それぞれの入力ストリームに適用される。これらの重み付けは、ニューラルネットワークの出力に変化を与えるために変更可能な変数である。これらの重み付けは、より正確なデータが得られるように、訓練に応じて変更することができる。これらの重み付けをトレーニングしたことに応じて、変更された重み付けは「学習済み」と呼ばれる。さらに、層のサイズと接続性は、ネットワークの典型的な入力データに依存することがあるが、これらも、接続の強化を含め、訓練中に修正及び学習される変数であってもよい。
【0117】
ネットワークを訓練するために、例えば重み付けの値を学習するために、これらの重み付けには初期値が割り当てられる。これらの初期値は基本的にランダムであってもよいが、ネットワークの学習を改善するために、Xavier/Glorot初期化等、値の適切な初期化を適用することができる。このような初期化は、初期のランダムな重み付けが大きすぎたり小さすぎたりして、ニューラルネットワークがこれらの初期の先入観を克服するように適切に訓練されることがない状況が発生するのを抑制することができる。この種の初期化は、平均はゼロであるが分散は固定である分布を使用して重み付けを割り当てることを含んでもよい。
【0118】
重み付けが割り当てられると、訓練対象データをニューラルネットワーク700に供給又は入力(710)することができる。これは、既知の設計回路(及び/又は回路部分)及び対応する回路性能に対してニューラルネットワークを動作させることを含んでもよい。この情報に基づいて、例えば勾配降下(例えば確率的勾配降下)及び損失関数を使用するバックプロパゲーション最適化法がネットワーク上で実行され、予測された回路性能(720)と、その回路部分/アナログ回路について期待される又は既知の回路性能とを比較する(730)。予想された又は既知の回路性能は、例えば、仮想テストベンチを使用して得られたものであってもよい。ミニバッチ勾配降下、RMSprop、Adam、Adadelta、Nesterov等のアルゴリズムが、このプロセス中に使用されてもよい。これにより、ネットワーク内の各異なる点(ニューロン)又は経路(後続層のニューロン間)が、不正確なスコアの決定にどの程度寄与しているかを特定することができ、その結果、行う必要のある重み調整の決定(740)が可能になる。重み付けは、計算された誤差に応じて調整することができる(750)。例えば、不正確な決定に寄与する、又は最も寄与するニューロンからの寄与を最小化又は除去すること。
【0119】
設計された回路(及び/又は回路部分)及び対応する回路性能の異なるペアを用いてネットワークを反復訓練した後、重み付けを更新してもよく(750)、このプロセスを多数回繰り返してもよい。ネットワークのオーバートレーニングの可能性を抑制するため、学習速度及び運動量等のトレーニング変数を変化させ、及び/又は選択された値になるように制御してもよい。さらに、L2やドロップアウト等の正則化技術を使用して、異なる層が、他の類似データに一般的に適用されることなく、訓練データに特化しすぎて過剰に訓練される可能性を低減することができる。同様に、バッチ正規化もトレーニングを助け、精度を向上させるために使用される。一般的に、重み付けは、ネットワークが同じ訓練データで再び動作した場合、期待される結果が得られるように調整される。ただし、これがどの程度正しいかは、学習率等のトレーニング変数に依存する。
【0120】
ニューラルネットワークの深さを増加させることは、例えば勾配消失の問題に起因して、訓練時に問題を引き起こす可能性があり、また、ネットワークが遅くなる可能性があることを理解されたい。しかしながら、本開示は、ネットワークを適切に訓練する能力を犠牲にすることなく、深さ及び精度が向上したネットワークを提供することを可能にすることができる。
【0121】
使用するネットワークの深さは、精度と出力に掛かる時間とのバランスをとるために選択することができる。ネットワークの深さを深くすると、精度が向上する可能性があるが、出力に掛かる時間が長くなる可能性もある。(畳み込みニューラルネットワークとは対照的に)分岐構造を使用すると、ネットワークの深さが増すにつれてネットワークの十分な学習が可能になり、ネットワークの精度が向上する。
【0122】
本開示の文脈において、基準の基礎を形成し得る例示的なアナログパラメータの非網羅的なリストが、ノイズ耐性、電源除去比(PSRR)、コモンモード範囲-入力(入力CMR)、コモンモード範囲-出力(出力CMR)、線形性、最大オフセット、帯域幅、最小スルーレート、固有遅延、最小位相マージン、動的消費電力、静的消費電力、IP3ポイント、フィルタ中心周波数、フィルタ帯域通過範囲、負荷ステップ応答、ラインステップ応答、出力精度、ノイズ指数、校正範囲、ノイズフロア、SNR、ENOB、SINAD、出力周波数範囲、ジッタ-ptp、ジッタ-RMS、出力リップルptp、全高調波歪み、起動時間、チャンネル分離、レファレンス電圧、ゲインエラー、オフセットエラー、ゲインドリフトを含むことが理解されるであろう。
【0123】
また、設計ユニット(一次、二次、三次設計ユニット等)は、ソフトウェア又はハードウェアで、例えば専用回路として実装されてもよいことが理解されるであろう。例えば、設計ユニットは、コンピュータシステムの一部として実装されてもよい。コンピュータシステムは、コンピュータシステムのさまざまなコンポーネント間で情報データ、信号、及び情報を通信するためのバス又は他の通信機構を含んでもよい。コンポーネントは、キーパッド/キーボードからキーを選択する、1つ以上のボタン又はリンクを選択する等、ユーザ(すなわち、送信者、受信者、サービスプロバイダ)の動作を処理し、対応する信号をバスに送る入出力(I/O)コンポーネントを含んでもよい。I/Oコンポーネントは、ディスプレイやカーソル制御(キーボード、キーパッド、マウス等)等の出力コンポーネントを含んでもよい。トランシーバ又はネットワークインターフェースは、コンピュータシステムと、ネットワークを介して他のユーザ装置、マーチャントサーバ、又はサービスプロバイダサーバ等の他の装置との間で信号を送受信してもよい。一実施形態では、伝送は無線であるが、他の伝送媒体及び方法も好適であろう。マイクロコントローラ、デジタル信号プロセッサ(DSP)、又は他の処理コンポーネントであり得るプロセッサは、コンピュータシステム上での表示又は通信リンクを介した他の装置への送信のため等、これらのさまざまな信号を処理する。また、プロセッサは、クッキーやIPアドレスなどの情報の他の装置への送信を制御してもよい。
【0124】
コンピュータシステムのコンポーネントは、システムメモリコンポーネント(例えば、RAM)、静的ストレージコンポーネント(例えば、ROM)、及び/又はディスクドライブ(例えば、ソリッドステートドライブ、ハードドライブ)を含んでもよい。コンピュータシステムは、システムメモリコンポーネントに含まれる1つ以上の命令シーケンスを実行することにより、プロセッサ及び他のコンポーネントにより特定の動作を実行する。
【0125】
論理は、コンピュータ可読媒体内で符号化されてもよく、この媒体は、実行のためにプロセッサに命令を提供することに参加する任意の媒体を指す場合がある。このような媒体は、不揮発性媒体、揮発性媒体、及び伝送媒体を含むがこれらに限定されない多くの形態を取ることができる。さまざまな実施態様において、不揮発性媒体は光ディスク又は磁気ディスクを含み、揮発性媒体はシステムメモリコンポーネントなどの動的メモリを含み、伝送媒体は同軸ケーブル、銅線、及び光ファイバーを含む。一実施形態では、ロジックは、非一時的なコンピュータ可読媒体に符号化される。一例では、伝送媒体は、電波、光、及び赤外線データ通信中に発生するような音響波又は光波の形態を取ってもよい。
【0126】
コンピュータ可読媒体の一般的な形態としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、CD-ROM、その他の光媒体、パンチカード、紙テープ、穴のパターンを持つその他の物理媒体、RAM、PROM、EPROM、Flash-EPROM、その他のメモリチップやカートリッジ、又はコンピュータが読み出すように設計されたその他の媒体がある。
【0127】
本開示のさまざまな実施形態において、本開示を実践するための命令列の実行は、コンピュータシステムにより実行されてもよい。本開示のさまざまな他の実施形態では、ネットワーク(例えば、LAN、WLAN、PTSN、及び/又は電気通信、モバイル、及び携帯電話ネットワークを含むさまざまな他の有線又は無線ネットワークなど)への通信リンクにより結合された複数のコンピュータシステム600は、互いに連携して本開示を実施するための命令シーケンスを実行してもよい。
【0128】
また、本開示の態様は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせを用いて実装してもよいことが理解されるであろう。また、適用可能な場合、本明細書に規定されるさまざまなハードウェアコンポーネント及び/又はソフトウェアコンポーネントは、本開示の趣旨から逸脱することなく、ソフトウェア、ハードウェア、及び/又は両方からなる複合コンポーネントに組み合わされてもよい。また、適用可能な場合、本明細書に記載のさまざまなハードウェアコンポーネント及び/又はソフトウェアコンポーネントは、本開示の範囲から逸脱することなく、ソフトウェア、ハードウェア、又はその両方からなるサブコンポーネントに分離することができる。さらに、適用可能な場合、ソフトウェアコンポーネントはハードウェアコンポーネントとして実装されてもよく、その逆もまた可能である。
【0129】
プログラムコード及び/又はデータなどの本開示によるソフトウェアは、1つ以上のコンピュータ可読媒体に格納されてもよい。また、本明細書で特定されるソフトウェアは、ネットワーク化された及び/又はその他の1つ以上の汎用又は特定目的のコンピュータ及び/又はコンピュータシステムを用いて実装されてもよいことが考えられる。適用可能な場合、本明細書に記載されるさまざまなステップの順序は、本明細書に記載される特徴を提供するために変更されてもよく、複合ステップに組み合わされてもよく、及び/又はサブステップに分離されてもよい。
【0130】
本明細書に記載されたさまざまな特徴及びステップは、本明細書に記載されたさまざまな情報を記憶する1つ以上のメモリと、1つ以上のメモリ及びネットワークに結合された1つ以上のプロセッサとを備えるシステムとして実装されてもよく、1つ以上のプロセッサは、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに本明細書に記載されるステップを含む方法、及びハードウェアプロセッサ、ユーザ装置、サーバ、及び本明細書に記載される他の装置などの1つ以上の装置によって行われる方法を実行させるように適合されている複数の機械可読命令を含む非一時的機械可読媒体として、本明細書に記載されるステップを実行するように動作可能である。
【0131】
本開示の文脈において、本明細書に記載された装置及び方法の他の例及び変形例は、当業者にとって明らかであろう。
【国際調査報告】