(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-21
(54)【発明の名称】アナログ回路設計
(51)【国際特許分類】
G06F 30/36 20200101AFI20230414BHJP
G06F 30/367 20200101ALI20230414BHJP
【FI】
G06F30/36
G06F30/367
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022552330
(86)(22)【出願日】2021-02-22
(85)【翻訳文提出日】2022-10-31
(86)【国際出願番号】 GB2021050436
(87)【国際公開番号】W WO2021181062
(87)【国際公開日】2021-09-16
(32)【優先日】2020-03-11
(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
5B146DC02
5B146GC11
5B146GG24
(57)【要約】
一次設計ユニットは、アナログ回路を形成するための複数の回路ポーションを特定し、それぞれの回路ポーションについてそれぞれの技術的基準を決定し、それぞれの技術的基準を複数の二次設計ユニットのうちの少なくとも1つに提供するように構成されている。複数の二次設計ユニットのそれぞれは、それぞれの回路ポーションに関する技術的基準に基づいてそれぞれの回路ポーションを設計し、結果としてそれぞれの回路ポーションの初期設計を出力するように構成されている。一次設計ユニットは、さらに、各回路ポーションのそれぞれの設計を含む一連の設計を取得し、設計セットに基づいて、少なくともアナログ回路の初期設計を生成し、生成した設計に基づいてアナログ回路をシミュレートし、アナログ回路の技術的要件を満たしているかどうかを検証するように構成されている。
【特許請求の範囲】
【請求項1】
アナログ回路設計装置であって、
一次設計ユニットと、複数の二次設計ユニットと、を備え、
前記一次設計ユニットは、
(a)アナログ回路に対する技術的要件を表す情報を取得し、
(b)取得した前記情報に基づいて、前記アナログ回路を形成するための複数の回路ポーションを特定し、
(c)前記複数の回路ポーションのそれぞれの回路ポーションについて、前記回路ポーションに対するそれぞれの技術的基準を決定し、
(d)それぞれの前記回路ポーションに対するそれぞれの前記技術的基準を、前記複数の二次設計ユニットのうちの少なくとも1つに提供する、ように構成され、
前記アナログ回路設計装置のそれぞれの前記複数の二次設計ユニットは、
(e)前記一次設計ユニットにより提供されたそれぞれの前記回路ポーションに対する前記技術的基準に基づいて、前記複数の回路ポーションのそれぞれの回路ポーションを設計し、
(f)それぞれの前記回路ポーションの結果として生じる設計を出力する、ように構成され、
前記一次設計ユニットは、さらに、
(g)前記複数の二次設計ユニットの少なくとも1つから、それぞれの前記回路ポーションに対するそれぞれの設計を含む一連の設計を取得し、
(h)前記一連の設計に基づいて、前記アナログ回路に対する少なくとも初期設計を生成し、
(i)前記生成された設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(j)前記アナログ回路が前記技術的要件を満たすか否かを検証し、
前記アナログ回路が前記技術的要件を満たすとき、前記生成された設計を出力し、
前記アナログ回路が前記技術的要件を満たさないとき、
前記複数の回路ポーションのうちの少なくとも1つの影響を受ける回路ポーションについて、前記シミュレーション出力及び前記技術的要件に基づいて、影響を受ける前記回路ポーションに対する修正された技術的基準を決定し、
少なくとも1つの対応する前記二次設計ユニットに、影響を受けるそれぞれの前記回路ポーションに対する修正された技術的基準を提供し、
それぞれの影響を受ける前記回路ポーションのそれぞれの更新された設計を、少なくとも1つの対応する前記二次設計ユニットから受信し、
前記一連の設計を、影響を受けるそれぞれの前記回路ポーションのそれぞれの更新された設計で更新し、
更新された前記一連の設計に対してステップ(h)から(j)を繰り返す、ように構成されている、
アナログ回路設計装置。
【請求項2】
請求項1に記載のアナログ回路設計装置において、
前記アナログ回路設計装置の前記複数の二次設計ユニットのそれぞれは、それぞれの前記回路ポーションの挙動をシミュレートし、それぞれの前記回路ポーションがそれぞれの前記回路ポーションの前記技術的基準を満たすか否かを検証するように構成され、
それぞれの前記回路ポーションが前記技術的基準を満たすとき、設計されたそれぞれの前記ポーションを出力し、
それぞれの前記回路ポーションが前記技術的基準を満たさないとき、シミュレートされた挙動に基づいて、それぞれの前記ポーションの設計を適合させる、
アナログ回路設計装置。
【請求項3】
請求項2に記載のアナログ回路設計装置において、
前記複数の二次設計ユニットのそれぞれは、前記シミュレートされた挙動と前記技術的基準との差分に基づいてそれぞれの前記ポーションの設計を適合させることにより、前記シミュレートされた挙動に基づいてそれぞれの前記ポーションの設計を適合させるように構成される、
アナログ回路設計装置。
【請求項4】
請求項2又は3に記載のアナログ回路設計装置において、
前記シミュレーションされた挙動に基づいてそれぞれの前記ポーションの設計を適合させることは、対応するそれぞれの前記回路ポーションの前記技術的基準を適合させることを含む、
アナログ回路設計装置。
【請求項5】
請求項1から4のいずれか1項に記載のアナログ回路設計装置において、
前記アナログ回路設計装置の前記複数の二次設計ユニットのそれぞれは、それぞれの前記回路ポーションの挙動をシミュレートし、前記二次設計ユニットの他の1つが、対応するさらなるそれぞれの回路ポーションを設計するために使用するコンテキスト情報として、前記シミュレートされた挙動を出力するように構成されている、
アナログ回路設計装置。
【請求項6】
請求項1から5のいずれか1項に記載のアナログ回路設計装置において、
所定の回路ポーションの少なくとも初期設計が前記二次設計ユニットの少なくとも他の1つによって完成した後、前記二次設計ユニットの少なくとも1つは、対応する回路ポーションのコンテキストに基づいて出力初期設計を適合させるように構成され、前記コンテキストは、前記二次設計ユニットの少なくとも他の1つによって完成した前記所定の回路ポーションの設計に基づいて生成された技術的基準を含む、
アナログ回路設計装置。
【請求項7】
請求項6に記載のアナログ回路設計装置において、
前記二次設計ユニットのそれぞれは、前記複数の回路ポーションのうちの他の回路ポーションの設計の修正が、他の回路ポーションに対するコンテキストの変化を引き起こす場合、さらなる回路ポーションの設計を適合させるステップを繰り返すように構成されている、
アナログ回路設計装置。
【請求項8】
請求項6又は7に記載のアナログ回路設計装置において、
前記二次設計ユニットのそれぞれは、前記コンテキストの変化が選択された閾値レベルよりも大きい場合にのみ、さらなる回路ポーションの設計を適合させるステップを繰り返すように構成されている、
アナログ回路設計装置。
【請求項9】
請求項6から8のいずれか1項に記載のアナログ回路設計装置において、
前記二次設計ユニットのそれぞれは、対応する回路ポーションの少なくとも初期設計がそれぞれ対応する二次設計ユニットによって完了した後に、前記複数の二次設計ユニットのそれぞれから出力される回路ポーションの設計をそれぞれのコンテキストに基づいて適合させるように構成されている、
アナログ回路設計装置。
【請求項10】
請求項6から9のいずれか1項に記載のアナログ回路設計装置において、
請求項2に従属するように、さらなる回路ポーションのコンテキストは、前記所定の回路ポーションの性能をシミュレートすることによって取得される、
アナログ回路設計装置。
【請求項11】
請求項1から10のいずれか1項に記載のアナログ回路設計装置において、
それぞれの前記二次設計ユニットは、前記一次設計ユニットによって提供されるそれぞれの回路ポーションに対する技術的基準に基づいて、複数の回路ポーションのそれぞれの回路ポーションを設計するように構成され、前記技術的基準を満たす回路ポーションについて設計された回路及び/又は回路ポーションのデータベースのルックアップを実行することを含む、
アナログ回路設計装置。
【請求項12】
請求項1から11のいずれか1項に記載のアナログ回路設計装置において、
前記回路のポーションは、受信した情報に基づいて、及び前記回路のポーションにより提供される機能性に基づいて特定される、
アナログ回路設計装置。
【請求項13】
請求項6又はそれに従属する請求項のいずれか1項に記載のアナログ回路設計装置において、
それぞれの前記二次設計ユニットは、前記回路の選択されたポーションの設計を前記ポーションの前記コンテキストに基づいて適合させるように構成され、前記回路の選択されたポーションの前記技術的基準を調整することを含む、
アナログ回路設計装置。
【請求項14】
アナログ回路を設計する方法であって、
前記方法は、アナログ回路設計装置の一次設計ユニットにおいて、
(a)前記アナログ回路に対する技術的要件を表す情報を取得し、
(b)取得した前記情報に基づいて、前記アナログ回路を形成するための複数の回路ポーションを特定し、
(c)前記複数の回路ポーションのそれぞれの回路ポーションについて、前記回路ポーションに対するそれぞれの技術的基準を決定し、
(d)それぞれの前記回路ポーションに対するそれぞれの前記技術的基準を、前記複数の二次設計ユニットのうちの少なくとも1つに提供し、
前記アナログ回路設計装置の複数の二次設計ユニットのそれぞれにおいて、
(e)前記一次設計ユニットにより提供されたそれぞれの前記回路ポーションに対する前記技術的基準に基づいて、前記複数の回路ポーションのそれぞれの回路ポーションを設計し、
(f)それぞれの前記回路ポーションの結果として生じる設計を出力し、
前記一次設計ユニットにおいて、
(g)前記複数の二次設計ユニットの少なくとも1つから、それぞれの前記回路ポーションに対するそれぞれの設計を含む一連の設計を取得し、
(h)前記一連の設計に基づいて、前記アナログ回路に対する少なくとも初期設計を生成し、
(i)前記生成された設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(j)前記アナログ回路が前記技術的要件を満たすか否かを検証し、
前記アナログ回路が前記技術的要件を満たすとき、前記生成された設計を出力し、
前記アナログ回路が前記技術的要件を満たさないとき、
前記複数の回路ポーションのうちの少なくとも1つの影響を受ける回路ポーションについて、前記シミュレーション出力及び前記技術的要件に基づいて、影響を受ける前記回路ポーションに対する修正された技術的基準を決定し、
少なくとも1つの対応する前記二次設計ユニットに、影響を受けるそれぞれの前記回路ポーションに対する修正された技術的基準を提供し、
それぞれの影響を受ける前記回路ポーションのそれぞれの更新された設計を、少なくとも1つの対応する前記二次設計ユニットから受信し、
前記一連の設計を、影響を受けるそれぞれの前記回路ポーションのそれぞれの更新された設計で更新し、
更新された前記一連の設計に対してステップ(h)から(j)を繰り返すことを、備える、
方法。
【請求項15】
請求項14に記載の方法において、
前記アナログ回路設計装置の前記複数の二次設計ユニットのそれぞれにおいて、それぞれの前記回路ポーションの挙動をシミュレートし、それぞれの前記回路ポーションがそれぞれの回路ポーションの前記技術的基準を満たすかどうかを検証することを、さらに備え、
それぞれの前記回路ポーションが前記技術的基準を満たすとき、設計されたそれぞれのポーションを出力し、
前記それぞれの前記回路ポーションが前記技術的基準を満たさない場合、前記シミュレートされた挙動に基づいてそれぞれのポーションの設計を適合させる、
方法。
【請求項16】
請求項15に記載の方法において、
前記シミュレートされた挙動に基づいてそれぞれの前記ポーションの設計を適合させることは、前記シミュレーションされた挙動と前記技術的基準との間の差分に基づいてそれぞれの前記ポーションの設計を適合させることを含む、
方法。
【請求項17】
請求項15又は16に記載の方法において、
前記シミュレーションされた挙動に基づいてそれぞれの前記ポーションの設計を適合させることは、対応するそれぞれの前記回路ポーションの前記技術的基準を適合させることを含む、
方法。
【請求項18】
請求項14から17のいずれか1項に記載の方法において、
前記アナログ回路設計装置の前記複数の二次設計ユニットのそれぞれにおいて、それぞれの前記回路ポーションの挙動をシミュレートし、
前記二次設計ユニットの他の1つが、対応するさらなるそれぞれの前記回路ポーションを設計するために使用するためのコンテキスト情報として、前記シミュレートされた挙動を出力することを、さらに備える、
方法。
【請求項19】
請求項14から18のいずれか1項に記載の方法において、
所定の回路ポーションの少なくとも初期設計が前記二次設計ユニットの少なくとも他の1つによって完成した後、前記二次設計ユニットの少なくとも1つは、対応する回路ポーションのコンテキストに基づいて出力初期設計を適合するように構成され、前記コンテキストは、前記二次設計ユニットの少なくとも他の1つによって完成した前記所定の回路ポーションの設計に基づき生成された技術的基準を含む、
方法。
【請求項20】
請求項19に記載の方法において、
前記複数の回路ポーションのうちの他の回路ポーションの設計の変更がさらなる回路ポーションのコンテキストの変化を引き起こす場合、前記さらなる回路ポーションの前記設計を適合させるステップを繰り返すことを、さらに備える、
方法。
【請求項21】
請求項19又は20に記載の方法において、
前記さらなる回路ポーションの設計を適合させる前記ステップを繰り返しは、前記コンテキストの変化が選択された閾値レベルよりも大きい場合にのみ発生する、
方法。
【請求項22】
請求項19から21のいずれか1項に記載の方法において、
対応する回路ポーションの少なくとも初期設計が、それぞれ対応する前記二次設計ユニットによって完成した後に、それぞれのコンテキストに基づいて前記複数の二次設計ユニットのそれぞれから出力される前記回路ポーションの前記設計を適合させることを、さらに備える、
方法。
【請求項23】
請求項19から22のいずれか1項に記載の方法において、
請求項15に従属するように、さらなる前記回路ポーションの前記コンテキストは、前記所定の回路ポーションの性能をシミュレートすることによって取得される、
方法。
【請求項24】
請求項14から23のいずれか1項に記載の方法において、
前記一次設計ユニットによって提供される前記それぞれの回路ポーションの技術的基準に基づいて前記複数の回路ポーションのそれぞれの回路ポーションを設計することは、前記技術的基準を満たす回路ポーションについて設計された回路及び/又は回路ポーションのデータベースのルックアップを実行することを含む、
方法。
【請求項25】
請求項14から23のいずれか1項に記載の方法において、
前記回路のポーションは、前記回路のポーションによって提供される機能性に基づいて選択される、
方法。
【請求項26】
請求項19又はそれに従属する請求項のいずれか1項に記載の方法において、
前記回路の選択されたポーションの設計を前記ポーションのコンテキストに基づいて適合させることは、前記回路の選択されたポーションの前記技術的基準を調整することを含む、
方法。
【請求項27】
請求項14から26のいずれか1項に記載の方法において、
出力された設計に対するアナログ回路を製作することを、さらに備える、
方法。
【請求項28】
請求項14から27のいずれか1項に記載の方法をプロセッサに実行させるように構成されたコンピュータ用のプログラムを備えたコンピュータ可読非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、アナログ回路設計のための方法及びシステムに関し、特に、アナログ回路の設計プロセスを自動化するための方法及びシステムに関するものである。
【背景技術】
【0002】
アナログコンポーネントは、チップの製造テストの不良が最も多く、フィールドでの不良の95%にものぼる。近年、デジタル回路の回路設計はある程度自動化されてきたが、アナログ回路設計の自動化は、例えば寄生効果などの問題により、これまで困難とされてきた。従来のアナログ回路設計では、設計者が過去の知識や経験をもとに、手作業で「ベストゲス」な見積もりや仕様のガードバンディングを行うことが多く、その結果、回路が過剰になり効率が悪くなったり、故障が発生しやすくなったりすることがよくあった。このため、アナログ回路の設計において、より効率的で信頼性の高いプロセスを構築することが望まれている。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の態様は独立請求項に記載されている通りであり、任意の特徴は従属請求項に記載されている通りである。本発明の態様は、互いに関連して提供されてもよく、1つの態様の特徴は、他の態様に適用されてもよい。
【0004】
第1の態様では、アナログ回路設計装置が提供される。
一次設計ユニットと、複数の二次設計ユニットと、を備え、
前記一次設計ユニットは、
(a)アナログ回路に対する技術的要件を表す情報を取得し、
(b)取得した前記情報に基づいて、前記アナログ回路を形成するための複数の回路ポーションを特定し、
(c)前記複数の回路ポーションのそれぞれの回路ポーションについて、前記回路ポーションに対するそれぞれの技術的基準を決定し、
(d)それぞれの前記回路ポーションに対するそれぞれの前記技術的基準を、前記複数の二次設計ユニットのうちの少なくとも1つに提供する、ように構成され、
前記アナログ回路設計装置のそれぞれの前記複数の二次設計ユニットは、
(e)前記一次設計ユニットにより提供されたそれぞれの前記回路ポーションに対する前記技術的基準に基づいて、前記複数の回路ポーションのそれぞれの回路ポーションを設計し、
(f)それぞれの前記回路ポーションの結果として生じる設計を出力する、ように構成され、
前記一次設計ユニットは、さらに、
(g)前記複数の二次設計ユニットの少なくとも1つから、それぞれの前記回路ポーションに対するそれぞれの設計を含む一連の設計を取得し、
(h)前記一連の設計に基づいて、前記アナログ回路に対する少なくとも初期設計を生成し、
(i)前記生成された設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(j)前記アナログ回路が前記技術的要件を満たすか否かを検証し、
前記アナログ回路が前記技術的要件を満たすとき、前記生成された設計を出力し、
前記アナログ回路が前記技術的要件を満たさないとき、
前記複数の回路ポーションのうちの少なくとも1つの影響を受ける回路ポーションについて、前記シミュレーション出力及び前記技術的要件に基づいて、影響を受ける前記回路ポーションに対する修正された技術的基準を決定し、
少なくとも1つの対応する前記二次設計ユニットに、影響を受けるそれぞれの前記回路ポーションに対する修正された技術的基準を提供し、
それぞれの影響を受ける前記回路ポーションのそれぞれの更新された設計を、少なくとも1つの対応する前記二次設計ユニットから受信し、
前記一連の設計を、影響を受けるそれぞれの前記回路ポーションのそれぞれの更新された設計で更新し、
更新された前記一連の設計に対してステップ(h)から(j)を繰り返す、ように構成されている。
【0005】
影響を受ける回路ポーションの修正された技術的基準は、その回路ポーションの構造を変更することを指示及び/又は要求してもよいことが理解されるであろう。例えば、修正された技術的基準は、その回路ポーションの追加又はより少ないコンポーネント(例えば、追加のゲインステージ)が必要とされることを意味してもよい。いくつかの例では、修正された技術的基準は、回路のポーション全体がもはや必要でなく、したがって対応する設計ユニットがもはや必要でないことを意味することさえあり得る。いくつかの例では、修正された技術的基準は、追加的又は代替的に、設計のそれぞれのサブポーションを設計するために別の設計層の設計ユニットが必要であることを意味する場合があり、例えば、修正された技術的基準は、回路の対応するポーションのサブポーションを設計するために三次設計ユニットの使用を必要としてもよい。
【0006】
アナログ回路設計装置の複数の二次設計ユニットのそれぞれは、それぞれの回路ポーションの挙動をシミュレートし、それぞれの回路ポーションがそれぞれの回路ポーションの技術的基準を満たすか否かを検証するように構成されてもよく、
それぞれの回路ポーションが技術的基準を満たすとき、設計されたそれぞれのポーションを出力し、
それぞれの回路ポーションが技術的基準を満たさないとき、シミュレートされた挙動に基づいてそれぞれのポーションの設計を適合させる。
【0007】
複数の二次設計ユニットのそれぞれは、シミュレートされた挙動と技術的基準との差分に基づいてそれぞれのポーションの設計を適合させることにより、シミュレートされた挙動に基づいてそれぞれのポーションの設計を適合させるように構成されてもよい。
【0008】
いくつかの例では、シミュレートされた挙動に基づいてそれぞれのポーションの設計を適合させることは、対応するそれぞれの回路ポーションの技術的基準を適合させることを含んでいる。
【0009】
アナログ回路設計装置の複数の二次設計ユニットのそれぞれは、それぞれの回路ポーションの挙動をシミュレートし、対応するさらなるそれぞれの回路ポーションを設計するために二次設計ユニットの他の1つによって使用されるコンテキスト情報としてシミュレートされた挙動を出力するように構成されてもよい。
【0010】
いくつかの例では、所定の回路ポーションの少なくとも初期設計が二次設計ユニットの少なくとも他の1つによって完成した後、二次設計ユニットの少なくとも1つは、対応する回路ポーションのコンテキストに基づいて出力初期設計を適合させるように構成され、コンテキストは、二次設計ユニットの少なくとも他の1つによって完成した所定の回路ポーションの完了した設計に基づいて生成された技術的基準を含む。
【0011】
二次設計ユニットのそれぞれは、複数の回路ポーションのうちの他の回路ポーションの設計の修正が、その他の回路ポーションに対するコンテキストの変化を引き起こす場合、さらなる回路ポーションの設計を適合させるステップを繰り返すように構成されてもよい。加えて又は代替的に、二次設計ユニットのそれぞれは、コンテキストの変化が選択された閾値レベルより大きい場合にのみ、さらなる回路ポーションの設計を適合させるステップを繰り返すように構成されてもよい。加えて又は代替的に、二次設計ユニットのそれぞれは、対応する回路ポーションの少なくとも初期設計がそれぞれ対応する二次設計ユニットによって完成された後に、複数の二次設計ユニットのそれぞれから出力される回路ポーションの設計をそれぞれのコンテキストに基づいて適合させるように構成される。いくつかの例では、さらなる回路ポーションのコンテキストは、所定の回路ポーションの性能をシミュレートすることによって取得される。
【0012】
いくつかの例では、それぞれの二次設計ユニットは、一次設計ユニットによって提供されるそれぞれの回路ポーションに対する技術的基準に基づいて、複数の回路ポーションのそれぞれの回路ポーションを設計するように構成されており、技術的基準を満たす回路ポーションについて設計された回路及び/又は回路ポーションのデータベースのルックアップを実行することを含んでいる。加えて又は代替的に、複数の設計ユニットのそれぞれは、例えば技術的基準に関連する最高及び/又は最低の仕様又は値に基づいて予算化することによって、及び/又は計算値又は以前の反復から決定された値を参照することによって、複数の回路ポーションのそれぞれの回路ポーションを設計するように構成される。
【0013】
回路のポーションは、それらの回路のポーションによって提供される機能性に基づいて選択されてもよいことが理解されるであろう。
【0014】
いくつかの例では、それぞれの二次設計ユニットは、回路の選択されたポーションの設計をそのポーションのコンテキストに基づいて適合させるように構成されており、回路の選択されたポーションの技術的基準を調整することを含む。
【0015】
コンテキスト情報に基づいて回路のポーションの設計を適合させることは、回路のコンポーネント/ポーションが、取り扱い処理するように構成される入力及び出力を調整することを含んでもよく、及び/又は、例えば設計のそのポーションの一部を形成し得るコンポーネントのタイプ、サイズ及び/又は数を変更するように設計の構造を適合させることを含んでもよいことが理解されるであろう。
【0016】
他の態様では、アナログ回路を設計する方法が提供され、
方法は、アナログ回路設計装置の一次設計ユニットにおいて、
(a)前記アナログ回路に対する技術的要件を表す情報を取得し、
(b)取得した前記情報に基づいて、前記アナログ回路を形成するための複数の回路ポーションを特定し、
(c)前記複数の回路ポーションのそれぞれの回路ポーションについて、前記回路ポーションに対するそれぞれの技術的基準を決定し、
(d)それぞれの前記回路ポーションに対するそれぞれの前記技術的基準を、前記複数の二次設計ユニットのうちの少なくとも1つに提供し、
前記アナログ回路設計装置の複数の二次設計ユニットのそれぞれにおいて、
(e)前記一次設計ユニットにより提供されたそれぞれの前記回路ポーションに対する前記技術的基準に基づいて、前記複数の回路ポーションのそれぞれの回路ポーションを設計し、
(f)それぞれの前記回路ポーションの結果として生じる設計を出力し、
前記一次設計ユニットにおいて、
(g)前記複数の二次設計ユニットの少なくとも1つから、それぞれの前記回路ポーションに対するそれぞれの設計を含む一連の設計を取得し、
(h)前記一連の設計に基づいて、前記アナログ回路に対する少なくとも初期設計を生成し、
(i)前記生成された設計に基づいてアナログ回路をシミュレートし、少なくとも1つのシミュレーション出力を生成し、
(j)前記アナログ回路が前記技術的要件を満たすか否かを検証し、
前記アナログ回路が前記技術的要件を満たすとき、前記生成された設計を出力し、
前記アナログ回路が前記技術的要件を満たさないとき、
前記複数の回路ポーションのうちの少なくとも1つの影響を受ける回路ポーションについて、前記シミュレーション出力及び前記技術的要件に基づいて、影響を受ける前記回路ポーションに対する修正された技術的基準を決定し、
少なくとも1つの対応する前記二次設計ユニットに、影響を受けるそれぞれの前記回路ポーションに対する修正された技術的基準を提供し、
それぞれの影響を受ける前記回路ポーションのそれぞれの更新された設計を、少なくとも1つの対応する前記二次設計ユニットから受信し、
前記一連の設計を、影響を受けるそれぞれの前記回路ポーションのそれぞれの更新された設計で更新し、
更新された前記一連の設計に対してステップ(h)から(j)を繰り返すことを、備える。
【0017】
いくつかの例では、方法は、アナログ回路設計装置の複数の二次設計ユニットのそれぞれにおいて、それぞれの回路ポーションの挙動をシミュレートし、それぞれの回路ポーションがそのそれぞれの回路ポーションに対する技術的基準を満たすか否かを検証し、
前記それぞれの回路ポーションが前記技術的基準を満たすとき、設計された前記それぞれのポーションを出力し、
前記それぞれの回路ポーションが前記技術的基準を満たさない場合、前記シミュレーションされた挙動に基づいて前記それぞれのポーションの設計を適合させる、ことを備えている。
【0018】
シミュレートされた挙動に基づいてそれぞれのポーションの設計を適合させることは、シミュレートされた挙動と技術的基準との間の差分に基づいてそれぞれのポーションの設計を適合させることを含んでもよい。それぞれのポーションの設計をシミュレートされた挙動に基づいて適合させることは、対応するそれぞれの回路ポーションの技術的基準を適合させることを含んでもよい。追加的又は代替的に、方法は、アナログ回路設計装置の複数の二次設計ユニットのそれぞれにおいて、それぞれの回路ポーションの挙動をシミュレートすること、及び対応するさらなるそれぞれの回路ポーションを設計するために二次設計ユニットの他の1つが使用するためのコンテキスト情報として、シミュレートされた挙動を出力することを備える。いくつかの例では、所定の回路ポーションの少なくとも初期設計が二次設計ユニットの少なくとも他の1つによって完成した後、二次設計ユニットの少なくとも1つは、その対応する回路ポーションのコンテキストに基づいてその出力初期設計を適合するように構成され、コンテキストは、二次設計ユニットの少なくとも他の1つによって完成した所定の回路ポーションの設計に基づき生成された技術的基準を含んでいる。これは、複数の回路ポーションのうちの他の回路ポーションの設計の修正が、その他の回路ポーションのコンテキストの変更を引き起こす場合に、さらなる回路ポーションの設計を適合させるステップを繰り返すことをさらに含んでもよい。さらなる回路ポーションの設計を適合させるステップを繰り返すことは、コンテキストの変化が選択された閾値レベルより大きい場合にのみ発生し得る。追加的又は代替的に、適合させるステップを繰り返すことは、例えば、技術的基準に関連する最高及び/又は最低の仕様又は値に基づいて、及び/又は計算値又は以前の反復から決定された値を参照することによって、ガードバンディング、予算化又は計算の実行を含んでもよい。
【0019】
いくつかの例では、複数の設計ユニットのそれぞれは、例えば、技術的基準に関連する最高及び/又は最低の仕様又は値に基づく予算化、及び/又は計算値又は以前の反復から決定された値を参照することにより、複数の回路ポーションのそれぞれの回路ポーションを設計するように任意に構成される。
【0020】
方法は、対応する回路ポーションの少なくとも初期設計が、それぞれ対応する二次設計ユニットによって完成した後に、複数の二次設計ユニットのそれぞれから出力される回路ポーションの設計をそれぞれのコンテキストに基づいて適合させることをさらに含んでもよい。
【0021】
いくつかの例では、さらなる回路ポーションのコンテキストは、所定の回路ポーションの性能をシミュレートすることによって取得される。
【0022】
いくつかの例では、一次設計ユニットによって提供されるそれぞれの回路ポーションの技術的基準に基づいて複数の回路ポーションのそれぞれの回路ポーションを設計することは、技術的基準を満たす回路ポーションについて設計された回路及び/又は回路ポーションのデータベースのルックアップを実行することを含んでいる。
【0023】
回路のポーションは、回路のポーションによって提供される機能性に基づいて選択さてもよいことが理解されるであろう。
【0024】
また、回路の選択されたポーションの設計をそのポーションのコンテキストに基づいて適合させることは、回路の選択されたポーションの技術的基準を調整することを含んでもよいことが理解されるであろう。
【0025】
また、この方法は、出力された設計に対するアナログ回路を製作することをさらに含んでもよいことが理解されるであろう。
【0026】
コンテキストは、回路の他のポーションの少なくともいくつかとともに使用されたときに回路の対応するポーションが経験するパラメータ及び変数に関連する情報を含んでもよい。例えば、コンテキストは、シリコンプロセス、温度範囲、出力負荷、出力インピーダンス、入力容量、入力コモンモード範囲、入力差動スイング、電源電圧、使用可能なトランジスタの種類、出力コモンモード範囲、出力スイング、整定時間、ノイズ耐性、電源電圧変動除去比(PSRR)、コモンモード範囲-入力(入力CMR)、コモンモード範囲-出力(出力CMR)、直線性、最大オフセット、帯域幅、最小スルーレート、固有遅延、最小位相マージン、動的消費電力、静的消費電力、IP3ポイント、フィルタ中心周波数、フィルタ帯域幅、負荷ステップ応答、ラインステップ応答、出力精度、雑音指数、校正範囲、ノイズフロア、SNR、ENOB、SINAD、出力周波数範囲、ジッタ-ptp、ジッタ-RMS、出力リップルptp、全高調波歪、起動時間、チャネル絶縁、基準電圧、ゲインエラー、オフセットエラー、利得ドリフトのいずれか1つ又は組み合わせから構成されてもよい。
【0027】
他の態様では、上述した方法のいずれかをプロセッサに実行させるように構成されたコンピュータ用のプログラムを備えたコンピュータ可読非一時的な記憶媒体が提供される。
【図面の簡単な説明】
【0028】
【
図2】
図2は、コンピュータに実装されたアナログ回路設計用の階層モデルの機能概略図を示す。
【
図3】
図3は、アナログ回路設計用のコンピュータ実装モデルの他の実装例の機能概略図を示す。
【
図4】
図4は、例えば
図2又は
図3の例示的なコンピュータ実装モデルを用いてアナログ回路を設計する方法の機能概略フローチャートを示す。
【
図5】
図5は、例えば
図2又は
図3の例示的なコンピュータ実装モデルを用いてアナログ回路を設計する他の例示的な方法の機能概略フローチャートを示す。
【
図6】
図6は、例えば
図2又は
図3の例示的なコンピュータ実装モデルを用いてアナログ回路を設計する他の例示的な方法の機能概略フローチャートを示す。
【
図7】
図7は、例えば
図2又は
図3の例示的なコンピュータ実装モデルを用いてアナログ回路を設計する他の例示的な方法の機能概略フローチャートを示す。
【
図8A】
図8Aは、
図1Aから
図7のいずれかを参照して説明したモデルのような、コンピュータに実装された階層モデルにより設計されたアナログ回路のポーションを示す。
【発明を実施するための形態】
【0029】
次に、本開示の実施形態について、添付図面を参照しながら、例示的にのみ説明する。
【0030】
図1Aは、例示的なアナログ電子回路の簡略化された機能概略図であり、この例では、アナログ-デジタル変換器(ADC)1000である。アナログ回路は、比較器1001、DAC1002、レベルシフタ1003及びオペアンプ1004などの多数のポーション又はコンポーネントを備えてもよい。各ポーション又はコンポーネントは、当初は分離して考慮されるかもしれないが、回路に全体としてその場で適用されたときにそのポーション又はコンポーネントが動作するコンテキスト又は環境は、そのコンポーネント/ブロックの動作方法、さらにはそのポーション又はコンポーネントがその回路での使用に適しているか否かに影響する可能性がある。このため、アナログ回路の設計に影響を与え、アナログ回路の設計を自動化することが困難である理由の1つになっている。さらに、アナログ回路の設計は、複雑なフィードバックループ、及びアナログ回路のさまざまなポーション/コンポーネント間に含まれる数学的関係により、自動化が困難であることがわかっている。
【0031】
請求の範囲の実施形態は、より効率的な回路を設計するために、回路の他のポーション又はコンポーネントのコンテキストを考慮するアナログ回路の設計を自動化するための方法及びシステムに関するものである。本件発明者らは、アナログ回路のポーション又はコンポーネントを設計する責任をそれぞれのユニット又は「ブロック」に委ねるコンピュータ実装のモデルを開発することにより、それを実現した。このモデルの一例を
図2に示す。このような階層的モデルは、制御エンティティとして機能する「親ブロック」900と呼ぶ一次設計ユニットと、一次設計ユニット又は親ブロックから何を設計する必要があるかについて指示を受ける「子ブロック」950a~dと呼ぶ多数の二次設計ユニットの使用を含む。それぞれの二次設計ユニット又は子ブロック950a~dは、親900から受け取った指示に基づいて、アナログ回路のそれぞれのコンポーネント又はポーションを設計するように構成されている。指示は、コンポーネント又はポーションが満たす必要のある技術的要件(「基準」)(例えば機能的要件)だけでなく、回路のコンポーネント又はポーションのコンテキストに関連する情報、言い換えれば、回路のポーション又はコンポーネントが、完成した回路にその場で配置されたときに何を経験するのかという情報も含む。
【0032】
コンピュータに実装された階層モデルは反復的である。親ブロック900がそれぞれの子ブロック950a~dにそれぞれのポーション又はコンポーネントを設計するように指示すると、他の子ブロック950a~dにより設計されたポーション又はコンポーネント、したがって各ポーション又はコンポーネントが動作するコンテキストを考慮するために、回路及びそのポーション又はコンポーネントのある程度の再設計が必要になる可能性がある。このため、回路ポーション又はコンポーネントの初期設計が子ブロック950a~dの1つによって設計されると、他の子ブロック950a~dによる他の回路ポーション又はコンポーネントの設計が、初期設計により提供されるコンテキストに基づいて適合されることが必要になる場合がある。このプロセスは、実行される設計のさらなる適合を考慮に入れるために繰り返されてもよい-例えば、他の回路ポーション又はコンポーネントの設計が実行されると、第1の子ブロックにより設計された回路ポーション又はコンポーネントのコンテキストは(他の回路ポーションの設計に基づいて)変更されている可能性があるため、第1の子ブロックにより設計された回路ポーション又はコンポーネントの設計は適合されることが必要になる場合がある、等である。回路ポーション又はコンポーネントの設計をこれらのコンテキストに基づいて適合させるプロセスは、例えば、アナログ回路の他のポーション又はコンポーネントに対する任意の調整によって引き起こされるコンテキストが考慮されるまで、子ブロック950a~dにより反復的に繰り返されてもよい。例えば、コンテキストにおける任意の変化が、コンテキストにおける変化の選択された閾値レベルよりも小さくなるまで、プロセスは反復して繰り返されてもよい。
【0033】
上述のように、コンテキストは、設計に基づいて生成された技術的基準を含み、回路のポーション又はコンポーネントが使用中に経験するパラメータ及び変数を含んでもよい。任意の所定の回路ポーション又はコンポーネントのコンテキストは、その所定の回路ポーション又はコンポーネントと相互作用する回路ポーション(複数可)又はコンポーネント(複数可)の性能のシミュレーションに基づいて、あるいは、その所定の回路ポーション又はコンポーネントを備えた完成した回路のシミュレーションによって生成されてもよい。例えば、親ブロック900は、各子ブロック950a~dによって設計されたポーション又はコンポーネントから完成した回路を組み立て、組み立てた回路の動作をシミュレートするように構成されてもよい。任意の所定の回路ポーション又はコンポーネントのコンテキストは、追加的又は代替的に、数学的計算又は抽出に基づいて生成されてもよい。
【0034】
本発明者らは、有利には、このような反復階層モデルによってアナログ回路の設計を自動化することができることを見出した。その結果、これは、有利には、過剰に設計されたアナログ回路を回避し、代わりに、より効率的な回路を設計し、作成することができることを意味する。
【0035】
上述したように、
図1Aは、この例ではADC(Analogue-to-Digital Converter)である例示的なアナログ回路1000を示す。概念的には、回路は、例えばそれぞれの機能性に基づいて、回路の異なるポーション又はコンポーネントに対応する機能ブロックに分割することができる。例えば、ADCは、コンパレータ1001、デジタル-アナログコンバータ(DAC)1002、複数のレベルシフタ1003、及び1つ以上のオペアンプ1004を備えてもよい。
図1Aに示す例では、回路は、これらの異なるポーション又はコンポーネントに対応するブロックに概念的に分割することができる。例えば、
図1Bに示すように、コンパレータは第1の「子ブロック」950aに、DACは第2の子ブロック950bに、レベルシフタは第3の子ブロック950cに、オペアンプは第4の子ブロック950dに概念的に分割されてもよい。ADCは、全体として、概念的にそれ自身のブロック(
図1Bでは「親」900とラベル付けされている)として分類されることがある。ADC自体が、より大きなアナログ回路内の概念的なブロックを形成してもよいことは理解されるであろう。
【0036】
上述したように、その場で使用する場合、アナログ回路の異なるブロックのそれぞれの間には相互作用が存在する。その場でのこれらのブロック間の相互作用、及びその結果各ブロックがその回路に配置されたときに経験するパラメータ及び変数は、その回路の性能に影響を与える。例えば、回路に使用されるオペアンプの仕様は、コンパレータ、DAC及び/又はレベルシフタ、及びこれらの間の接続の選択及び設計に起因する多くのパラメータ及び変数に依存してもよい。
【0037】
このため、ブロックを構成するポーション又はコンポーネントの設計及び選択は、これらの相互作用を考慮し、相互作用の結果、コンポーネントが受けるパラメータや変数をブロック全体が処理できるような方法で行う必要がある。
【0038】
これらの異なるブロックの選択及び設計に影響を与える可能性のあるパラメータ及び変数の例の非網羅的なリストは、シリコンプロセス、温度範囲、出力負荷、出力インピーダンス、入力容量、入力コモンモード範囲、入力差動スイング、電源電圧、使用可能なトランジスタの種類、出力コモンモード範囲、出力スイング、整定時間、ノイズ耐性、電源電圧変動除去比(PSRR)、コモンモード範囲-入力(入力CMR)、コモンモード範囲-出力(出力CMR)、直線性、最大オフセット、帯域幅、最小スルーレート、固有遅延、最小位相マージン、動的消費電力、静的消費電力、IP3ポイント、フィルタ中心周波数、フィルタ帯域幅、負荷ステップ応答、ラインステップ応答、出力精度、雑音指数、校正範囲、ノイズフロア、SNR、ENOB、SINAD、出力周波数範囲、ジッタ-ptp、ジッタ-RMS、出力リップルptp、全高調波歪、起動時間、チャネル絶縁、基準電圧、ゲインエラー、オフセットエラー、利得ドリフトを含んでもよい。
【0039】
これらのパラメータや変数は、ブロックが置かれている「コンテキスト」又は環境と呼ばれてもよい。最適なアナログ回路を作成するため、このコンテキストを知ることで回路の設計を改善することができる。しかし、アナログ回路の設計は反復プロセスであり、あるブロックの選択及び調整が他のブロックのコンテキストに影響を与える可能性があること等は、もちろん理解されるであろう。したがって、あるブロックのコンポーネントが選択/調整されると、そのブロックが置かれている新しいコンテキストを考慮して、他のブロックのコンポーネントは、調整又は再選択が必要になる可能性がある。このような反復プロセスは手動で行うことは現実的ではなく、エラーが発生しやすく、通信によってのみ検出することができます。
【0040】
上述したように、アナログ回路の設計を自動化する方法に使用するためのコンピュータ実装モデルの例を
図2に示す。
図2は、
図1Bに示された上述したブロックと、ブロック間の相互作用とを模式的に示している。
【0041】
図2に示す例では、モデルの各ブロックが、そのブロックで示されるコンポーネント/機能性の設計を担当する。
図2において、子1-950aはコンパレータ1001の設計、子2-950bはDAC1002の設計、子3-950cはレベルシフタ1003の設計、子4-950dはオペアンプ1004の設計を担当する。親ブロック900は、ADC1000の全体としての設計を担当し、ADCのポーション/コンポーネント/機能性の設計の担当を子ブロック950a~dに委ねる。いくつかの例では、親ブロック900は、いくつの子ブロック950a~dが必要であるか、及び各ブロックに割り当てられる担当を選択してもよい。子ブロック950a~dは順に示されているが、この順序は必ずしも回路のポーションが設計される順序を表すものではないことは理解されよう。例えば、親ブロック900は、オペアンプを担当する子ブロック950dに、回路のポーションを最初に設計するように指示してもよい。いくつかの例では、子ブロック950a~dは、最初に出力を設計し、そこから逆算するように構成されてもよい。
【0042】
ブロックの各ポーション又はコンポーネントは、当初は分離して選択されてもよいが、コンポーネント/ブロックがその場で回路全体に適用されたときに動作するコンテキストは、そのコンポーネント/ブロックがどのように動作するか、さらにはそのコンポーネントがその回路での使用に適しているかどうかに影響を与える可能性がある。したがって、親ブロックが各子ブロックにそれぞれのポーション又はコンポーネントを設計するように指示することができるが、各子ブロック950a~dによって設計されたポーション又はコンポーネントから、設計された回路の初期バージョンが親900によって組み立てられると、回路1000及びそのポーション又はコンポーネントは、他の子ブロック950a~dによって選択されたポーション又はコンポーネント、ひいてはそれぞれの成分/ブロックが動作するコンテキストを考慮に入れ、ある程度設計し直さなければならないことが考えられる。上述したように、これは反復プロセスとなる。
【0043】
したがって、親ブロック900は、コントローラとして機能し、各子ブロックによって実行される設計プロセスを処理及び取り扱うように構成されている。この機能を実行するために、
図2に示すように、親ブロック900は、それぞれが設計プロセスの一部として異なる機能を実行するように構成された多数の異なるモジュールで構成されてもよい。
図2の親ブロックは、インストラクタモジュール901、アセンブリモジュール902、及び検証及びシミュレータモジュール903を備えている。
【0044】
インストラクタモジュール901は、設計される回路に対する顧客要件を、例えばファウンドリによって指示されたPDK/条件/制御パラメータ等の他の要件とともに受け取り、これらを、各子ブロック950a~dが回路のそれぞれのコンポーネントを設計する際に満たす必要のある一連の技術的基準に変換するように構成されている。また、各子ブロック950a~dが設計する必要があるもの、及びこれを行う際に満たす必要がある基準に関する指示を作成し、各子ブロック950a~dに送信するように構成されている。指示は、また、他の子ブロックによって設計された回路の他の設計されたポーションのコンテキストと、回路のコンポーネント又はポーションが動作されることを意図している回路のより広いコンテキストとを含んでもよい。例えば、技術的基準は、コンテキストを考慮に入れて調整されてもよい。
【0045】
アセンブリモジュール902は、子ブロック950a~dの各々によって提供されるアナログ回路のそれぞれの設計されたポーション又はコンポーネントの全てを受信して照合し、それぞれの設計されたポーション又はコンポーネントに基づいて完全なアナログ回路を組み立てるように構成されている。完成したアナログ回路は、その後、検証及びシミュレータモジュール903によってテストされてもよい。
【0046】
検証及びシミュレータモジュール903は、子ブロックのそれぞれから設計されたコンポーネントを受け取り、これらを技術的な一連の要件と比較し、設計されたポーション又はコンポーネントが満足のいくものかどうかを決定するように構成されている。これは、例えば、設計されたそれぞれの回路ポーション又はコンポーネントが対応する技術的基準を満たすかどうか、及び/又は設計されたアナログ回路が顧客要件を満たすかどうかを検証することによって、それらの性能を顧客要件と比較することを含んでもよい。また、設計された回路が特定の技術的制限内で動作可能であるという意味で有効であるか否かを判断する検証チェックを追加的又は代替的に含んでもよい。
【0047】
また、検証モジュール903は、「テストベッド」として機能し、回路の組み立てられたコンポーネントの機能をシミュレートするように構成されたシミュレータモジュールを備えてもよい。このようなシミュレーションにより、コンテキスト情報を得てもよい。シミュレータモジュールは、回路のシミュレートされた機能を顧客要件と比較し、オプションで、設計された回路ポーションが対応する技術的基準を満たすか否か、及び/又は設計されたアナログ回路が顧客要件を満たすか否かを検証してもよい。いくつかの例では、シミュレータモジュールは、検証モジュール903を置き換えてもよいことが理解されるであろう。
【0048】
また、各子ブロック950a~dは、それぞれが設計プロセスの一部として異なる機能を実行するように構成された多数の異なるモジュールを備えている。
図2に示す例では、各子ブロック950a~dは、コンバータモジュール951a~d、アセンブリモジュール952a~d及びシミュレータモジュール953a~dを備えている。いくつかの例では、各子ブロック950a~dは、
図3から
図6を参照して以下でより詳細に説明するように、
図2の親ブロック900が子ブロック950a~dからの設計プロセスを指示し検証するためのインストラクタモジュール及び検証モジュール等のモジュールを備える方法と同様、三次設計ユニット又は「孫」ブロックを指示するための追加のモジュールをさらに備えてもよいことが理解されるであろう。
【0049】
各子ブロック950a~dのコンバータモジュール951a~dは、親ブロック900から受け取った技術的基準、及びオプションで回路全体のコンテキスト、並びに回路の他のコンポーネントのコンテキストを受け取り、これらを、これらの基準を満たすようにアナログ回路のポーション又はコンポーネントを設計するための一連の要件に変換するように構成されている。いくつかの例では、コンテキスト情報は、技術的基準の一部として提供及び受信されてもよいが、他の例では、技術的基準に加えて(例えば、別個に)提供されてもよいことが理解されるであろう。
【0050】
アセンブリモジュール952a~dは、親ブロック及び回路全体のコンテキスト及び/又は回路の他のコンポーネントのコンテキストによって指示された基準を満たす、求められた要件を満足させるために電子部品を選択及び/又は設計するように構成されている。
【0051】
また、シミュレータモジュール953a~dは、アセンブリモジュールによって設計された設計ポーション又はコンポーネントが技術的に実現可能であるかどうかを確認/検証するために、それらのコンポーネントがその場でどのように動作するかをシミュレートするように構成されてもよい。
【0052】
使用時、親ブロック900は、設計されるべきアナログ回路1000に対する一連の要件を受け取る。
図2に示す例では、親ブロック900は、例えばADCを製造することになるファウンドリによって指示される性能を含む特性を有する設計されるべきADCに対する一連の要件を受信する。親ブロック900は、これらの要件を受信し、インストラクタモジュール901は、これらを一連の技術的基準に変換する。これらの技術的基準は、次に、子ブロック950a~dの各々に送信する。
【0053】
インストラクタモジュール901は、これらの技術的基準を子ブロック950a~dの各々に並列(すなわち、すべて同時に)又は直列(例えば、基準が子1、次に子2、次に子3と等のように送信される)に送信してもよい。いくつかの例では、インストラクタモジュール901は、次の子に一連の技術的基準を送信する前に、最初の子から設計回路を受信するまで待機してもよく、いくつかの例では、インストラクタモジュールは、先行する子から受信した設計回路に基づいて-言い換えれば先行する子から受信した設計回路のコンテキストに基づいて、次の子に送信される技術的基準を調整するように構成されてもよい。
【0054】
技術的基準が直列に子ブロック950a~dに送信される例では、技術的基準は、技術的基準のどの部分がどの子ブロック950a~dに関連しているかを区別する手段を備えてもよい-例えば、技術的基準は、技術的基準の特定の部分が子ブロック950a~dに関連しているか否かを識別するヘッダ又はフラグを含んでもよい。これらのヘッダ又はフラグは、親ブロック900によって決定され、技術的基準は、それらを組み込むために適宜調整されてもよい。
【0055】
各子ブロック950a~dは、親ブロック900からこれらの技術的基準を受け取り、各コンバータモジュール951a~dは、これらを、これらの技術的基準を満たすようにアナログ回路のポーション又はコンポーネントを設計するための一連の要件に変換する。アセンブリモジュール952a~dは、これらの要件を受け取り、これらの要件を満たす回路のコンポーネント/ポーションを設計する。この設計プロセスは、既知の回路設計(又はポーション)のデータベースにおけるルックアップ、及び技術的基準に最も合致する回路設計を見つけることを備えてもよいことが理解されるであろう。
【0056】
次に、シミュレータモジュール953a~dは、アセンブリモジュールによって設計された回路の設計されたコンポーネント/ポーションが技術的に実現可能であるかどうかをチェックし、及び/又は対応する設計されたそれぞれの回路ポーションがその対応する技術的基準を満たすかどうかを検証するために、これらのコンポーネント/ポーションがその場でどのように動作するかをシミュレートする。設計された回路ポーションが対応する技術的基準を満たす場合、子ブロック950a~dは、次に、設計されたポーション又は回路のコンポーネントを親900に送り返す又は出力するように構成されている。設計された回路ポーションがその対応する技術的基準を満たさない場合、子ブロック950a~dは、次に、その回路ポーションの設計を適合させ、プロセスを繰り返すように構成されている。
【0057】
親900がすべての子ブロック950a~dから回路の設計されたポーション又はコンポーネントのすべてを受け取ると、親900のアセンブリモジュール902は、次に、各子ブロックによって設計されたポーション又はコンポーネントから完成した回路(この場合はADC)を組み立て、検証及びシミュレータモジュール903を介して、設計した回路が技術的要件を満たしているかどうかを検証する。これは、組み立てられた回路がどのように動作するかをシミュレートし、このシミュレートされた性能を顧客要件及び/又は技術的要件と比較することによって行ってもよい。いくつかの例では、完成したアナログ回路設計のシミュレートされた性能は、(例えば、別の設計ユニットに対する)コンテキストを提供してもよく、親900は、完成したアナログ回路設計のシミュレーションを介して得られたコンテキストに基づいて技術的基準を調整してもよいことが理解されるであろう。
【0058】
設計された回路のシミュレートされた性能が顧客要件又は技術的要件を満たさない場合(例えば、シミュレートされた回路のパラメータが、技術的要件によって指示されたパラメータとは異なる閾値レベルよりも大きい)、検証モジュール903は、これをインストラクタモジュール901に伝達する。インストラクタモジュール901は、次に、回路のシミュレートされた性能と技術的要件との間の差分に基づいて技術的基準を調整し、これらの修正された技術的基準を子ブロック950a~dに送り返してもよい。
【0059】
いくつかの例では、親ブロック900(例えば、検証モジュール903/インストラクタモジュール901)は、回路のどのポーション又はコンポーネントが、回路が技術的要件を満たさない原因であるかを決定し、子ブロック(複数可)950a~dが識別できる場合、親ブロック900は、修正された技術的基準を、回路の問題のあるポーション又はコンポーネントを担当する子ブロックにのみ送信するように構成されてもよい。しかしながら、他の例では、修正された基準は、すべての子ブロック950a~dに送り返されてもよい。また、いくつかの例では、親モジュール900は、例えば、修正された技術的基準を満たすため、回路の関連ポーション又はコンポーネントを設計するために必要とされてもよい子ブロック950a~d及び/又は孫ブロックを、追加的及び/又は代替的に決定してもよいことが理解されるであろう。
【0060】
その後、プロセスは反復的に継続し、各子ブロック950a~dのコンバータモジュール951a~dは、親ブロック900からこれらの修正又は適合された技術的基準を受け取り、これらの適合された技術的基準を満たすように、これらをアナログ回路のポーション又はコンポーネントを設計するための新たな一連の要件に変換する。アセンブリモジュール952a~dは、これらの新たな要件を受け取り、これらの要件を満たす回路のコンポーネント/ポーションを設計する。次に、シミュレータモジュール953a~dは、再設計された回路のコンポーネント/ポーションがその場でどのように動作するかをシミュレートし、アセンブリモジュールによって設計された回路のコンポーネント/ポーションが技術的に実現可能であるかどうかをチェックする。そして、子ブロック950a~dは、回路の(再)設計されたコンポーネント/ポーションを親900に送り返すように構成される。
【0061】
親900がすべての子ブロック950a~dから(再)設計された回路のコンポーネント/ポーションのすべてを受信すると、親900は、次に、各子ブロックによって設計されたコンポーネント/ポーションから完成した回路(この場合、ADC)を組み立て、組み立てられた回路がどのように動作するかをシミュレートし、シミュレートした性能を技術的要件と比較できる検証及びシミュレータモジュール903を介して、設計回路が技術的要件を満たしているか否かを検証する。シミュレートされた性能が技術的要件を満たさない場合、プロセスは、修正された一連の基準が子ブロック950a~dに送り返されることによって繰り返される。
【0062】
また、子ブロック950a~d及び/又は親ブロック900は、エンドレス再設計ループの発生を阻止するためのループ緩和モジュールを備えてもよいことが理解されるであろう。例えば、ループ緩和モジュールは、以前に設計された回路の記録を有し、再設計された回路のコンポーネント/ポーション又は完成した回路が、以前に設計された回路のコンポーネント/ポーション又は完成した回路と同一である場合、又は以前に設計された回路のコンポーネント/ポーション又は完成した回路と、選択した閾値レベルの差分未満しか違わない場合に、ループ表示を出力するよう構成されてもよい。例えば、親ブロック900は、ループ緩和モジュールを備えてもよく、ループ緩和モジュールがループ表示を提供した場合に、設計プロセスを終了し、最後に設計された回路を完成した回路として受け入れるように構成されてもよい。追加的又は代替的に、親ブロック900は、例えば、設計プロセスが選択された回数の反復のために繰り返される場合、選択された差分の閾値レベルを低減するように構成されてもよい。これは、技術的要件を満たす「最善の妥協点」の機能回路を見つける効果を有することができる。
【0063】
図3は、アナログ回路を設計するためのコンピュータ実装モデルの他の例の機能概略図である。このモデルの実装は、多くの点で
図2に示したモデルと同様であり、
図2に関して親ブロック900及び子ブロック950a~dに対して上述した機能は、
図3の親ブロック及び子ブロックに帰属させてもよい。さらに、一次設計ユニット又は親ブロック900に関して
図2で説明した機能の一部は、その子ブロックがその下に三次設計ユニット又は「孫」ブロック等を有する
図3における二次設計ユニット又は子ブロック950a~dに帰属させてもよい。
【0064】
より詳細には、
図3に示すように、モデル階層は、一次設計ユニット又は親ブロックを含むコア設計層を備えている。
図3のコア設計層には、親ブロック900が1つだけ示されているが、いくつかの例では、例えば各親ブロック900が並行して動作する場合等、複数の親ブロック900が存在してもよいことは理解されるであろう。例えば、各親ブロック900は、アナログ回路の異なる態様(例えば、機能的及び/又は構造的に互いに異なる)を設計するように構成されてもよい。
【0065】
コア設計層の下には、第1設計層がある。第1設計層は、上の層(この場合はコア設計層)の親ブロック900に結合された二次設計ユニット又は子ブロック950を備えている。この例では、6つの子ブロックがあり、すべてコア設計層の親ブロックに結合されている。子ブロック950は、子ブロック1、2、3からなる第1グループと、子ブロック3、4、5からなる第2グループとにグループ分けされている。各子ブロック950は、親ブロック900に結合されている。2つのグループは、親ブロック900が並列に設計するように指示するアナログ回路の異なる機能的領域又はエリアを表してもよい。
【0066】
図示の例では、第1グループの子ブロック950は、コア設計層の親ブロック900に並列に結合され、第2グループの子ブロック950は、コア設計層の親ブロック900に並列に結合される。子ブロック950は、アナログ回路の異なる領域又は態様(例えば、機能的及び/又は構造的に互いに異なる)を設計するため、このようにグループ化されてもよい。しかしながら、いくつかの例では、第1設計層のすべての子ブロック950がコア設計層の親ブロックに並列に結合される必要がないことは理解されるであろう。例えば、第1設計層の子ブロック1及び3は、コア設計層の親ブロック900に結合されてもよく、第1設計層の子ブロック2は、第1設計層の子ブロック1及び3に対してそれぞれ直列に結合されてもよい。
【0067】
子ブロック950のグループ分けは、コア設計層の親ブロック900によって決定されてもよい。例えば、親ブロック900は、アナログ回路の異なる態様(例えば、機能的及び/又は構造的に互いに異なる)を設計するように、第1設計層の子ブロックをグループ化するように構成されてもよい。コア設計層の親ブロック900は、顧客仕様からの要件の決定に基づいてこれを行うように構成されてもよい。
【0068】
第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に対してそれぞれ直列に結合されてもよい。
【0069】
第2設計層の下には、別の(第n)設計層が配置されている。第n設計層は、曽孫ブロック1、2、3、4-970を備えている。曽孫ブロック970は、第2設計層の孫ブロック960が第1設計層の子ブロック950に結合されるのとほぼ同じ方法で、上層(第2設計層)の孫ブロック960に結合される。したがって、第2設計層の下に、それぞれが上層のブロックに結合された独自のブロックを備えた複数のさらなる設計層が存在し得ることが理解されるであろう。
【0070】
図3に示すブロック階層の構造は、モデルの異なる層のブロックが、異なる複雑さのレベルでアナログ回路の態様又はポーションを設計するように構成されているようなものである。例えば、親ブロック900は完全なアナログ回路を設計するように構成され、子ブロック950はアナログ回路の機能コンポーネント(オペアンプ、AC/DCコンバータ、レベルシフタ、コンパレータ、電圧レギュレータ、パワースイッチ等)を設計するように構成され、孫ブロック960はその機能コンポーネントのコンポーネント(例えばそのコンポーネントに対する抵抗、トランジスタ、コンデンサ、ダイオード、インダクタ等の配列)を設計するように構成されてもよい。しかしながら、孫ブロック960は、オペアンプ又は電圧基準又はコンパレータ等の、より階層的なブロックを設計するように構成され得ることが理解されるであろう。
【0071】
(コア設計層の)親ブロック900は、選択された層のブロックが設計するように構成されている複雑さのレベルを決定するように構成されてもよく、及び/又は、ある層のブロックは、下層のブロックが設計するように構成されている複雑さのレベルを決定するように構成されてもよい。
【0072】
追加的又は代替的に、
図3に示すブロック階層の構造は、モデルの異なる層のブロックが、異なる機能的又は構造的要件に基づいてアナログ回路の態様又はポーションを設計するように構成されるようなものである。例えば、ある層は、ある機能的要件(例えばサイズ)に基づいてアナログ回路の態様又はポーションを設計するように構成されたブロックを備え、別の層は、別の機能的要件(例えば、電流又は電圧)を設計するように構成されたブロックを備えてもよい。
【0073】
図4は、例えば
図2又は
図3のコンピュータ実装階層モデルの例を用いてアナログ回路を設計する方法の機能概略フローチャートを示す。
【0074】
より詳細には、ステップ300で、親ブロック900は、顧客要件を受け取る。顧客要件は、例えば、回路の機能、及びピーク電流、電圧等の回路から要求される特定の制限を定義してもよい。また、顧客要件は、回路が製造されるPDK/ファウンドリ等の他の特徴も指定してもよい。親ブロック900は、顧客要件302を一連の技術的基準に変換するように構成されている。親ブロック900は、追加的又は代替的に、これらの技術的基準を子ブロック950に並列に又は直列に送るかどうか、及び/又は異なる一連の基準を下層の子ブロック950に送るかどうかを決定するように構成されてもよい。
【0075】
また、この段階で、親ブロック900は、モデルの層の数を決定するように構成されてもよく、又は代わりに、各層のブロックが、上層のブロックにより設計することを任された回路のポーションを設計するときに、下層のブロックが必要であるかどうかを決定するように構成されてもよい。
【0076】
親ブロック900は、顧客要件を基準に変換すると(302)、次に、これを第1層の子ブロックに送信する(304)。図示の例では、親ブロック900は、子1、子2、子3に並行して技術的基準を送信する(304)。
【0077】
この例では、技術的基準を受け取ると、子1は、下層のブロック(孫ブロック960)を関与させる必要があると判断し(306)、その基準に基づいて回路の第1ポーションを設計するよう孫1に指示する。同時に、子2は、技術的基準に基づいて回路の最初の第3ポーションを設計し(307)、子3は、技術的基準に基づいて回路の最初の第4ポーションを設計する(308)。
【0078】
孫1は、技術的基準に基づいて回路の第1ポーションを設計し(308)、この設計された第1ポーションを子1に送り返し(312)、子1はこれを親に転送する(オプションとして、最初に何らかのシミュレーション/検証を行った後)。次に、子1は、孫2に対し、基準に基づいて回路の第2ポーションを設計するよう指示する(314)。孫2は、基準に基づいて回路の第2ポーションを設計し(316)、これを子1に送り返し(318)、子1はこれを親に転送してもよい。
【0079】
子1が(孫1、孫2を介して)回路の第1ポーション及び第2ポーションを設計したら、子1はコンテキスト情報を子2に送信する(320)。子2は、子1から取得したコンテキスト情報に基づいて、親から受信した技術的基準を適合又は調整してもよい。次に、子2は、子1から受信したコンテキスト情報に基づいて、最初に設計された回路の第3ポーションを適合させる。
【0080】
図4に示す例では、回路の第3ポーションが子2によって設計されると、適合された第3ポーションの設計が親に送られ、コンテキスト情報が子3に送られてもよい(324)。コンテキスト情報は、回路の第1、第2及び第3ポーションによって作成されたコンテキストを含んでもよい。次に、子3は、受信したコンテキスト情報に基づいて回路の第4ポーションの初期設計を適合させ(326)、設計された第4ポーションを親ブロック900に送信する(328)。
【0081】
親ブロック900が回路のすべての設計されたポーションを受け取ると、親ブロック900は、設計された完成した回路が顧客要件を満たしているかどうかをチェック又は検証する(3330)。上述したように、親ブロックは、完成した回路の性能をシミュレートするために、検証及びシミュレータモジュールを採用することによってこれを行ってもよい。
【0082】
設計された完成した回路が顧客要件を満たさない場合、親ブロックは、何を調整する必要があるか(及びオプションでどのブロックによって)に関する追加情報とともに、要件を満たさない原因となった回路のポーションの設計を担当するブロックに調整された基準を直接再送信してもよい(332)-例えば、基準は、顧客要件を満たすためにブロックを再設計するための追加情報を考慮に入れて調整されてもよい。いくつかの例では、親ブロック900は、設計された回路のポーションのみをそのポーションの設計を担当するブロックに送り返すだけでもよい(332)-例えば、
図5に示すように(後述)、親ブロック900は、例えば、アナログ回路の第1ポーションを、調整が必要なものに関する情報、及び/又は調整された基準とともに、孫1に送り返してもよい。
【0083】
上記の例において、アナログ回路の第1、第2、第3及び第4ポーションは、回路の独立したポーションであってもよく、及び/又は互いに機能的に依存してもよいことは理解されるであろう。他の例では、アナログ回路の第1、第2、第3及び第4ポーションは、アナログ回路の選択されたサブセットであってもよい。例えば、第2ポーションは第1ポーションの一部を構成し、第3ポーションは第1及び第2ポーションの一部を構成し、第4ポーションは第1、第2及び第3ポーションの一部を構成してもよい。
【0084】
図5は、例えば
図2又は
図3の例示的なコンピュータ実装階層モデルを用いてアナログ回路を設計する方法の機能概略フローチャートである。
【0085】
図5の方法は、
図4の方法と共通する多くの特徴を有する。しかし、注目すべきは、複数の子ブロック950が互いの間で情報(基準及び設計された回路のポーション又はコンポーネント等)を渡すのではなく、
図5に示す例では、各子ブロック950が、親ブロック900に直接報告し、設計を担当するアナログ回路の設計したポーション又はコンポーネントを親ブロック900に直接送り返すように構成されている点であり、子ブロック950は単独で動作するよう構成されている。
【0086】
この配置は、親ブロック900が、アナログ回路のさまざまなポーション又はコンポーネントのすべての設計を並行して調整するように動作可能であり得るという点で有利であり得る。例えば、第1反復において、すべての子ブロック950は、アナログ回路のそれぞれのポーションを同時に設計するように構成されてもよい。アナログ回路のこれらの設計されたポーションを受信した後、親ブロック900は、第2反復として、すべての(又は、いくつかの例ではサブセットの)子ブロック950に第1反復の設計によって提供されるコンテキストに基づいてそれぞれのポーション又はコンポーネントを再設計するよう指示するように構成されてもよい。このようなアプローチは、モデルがアナログ回路を設計することができる速度を向上させ得ることが理解されるであろう。
【0087】
より詳細には、ステップ400で、親ブロック900は、顧客要件を受け取る。
図4を参照して上述した例と同様に、顧客要件は、例えば、回路の機能性及び回路から要求される特定の制限-ピーク電流、電圧等-を定義してもよい。顧客要件は、回路が製造されるPDK/ファウンドリ等の他の特徴を指定してもよい。親ブロック900は、顧客要件を一連の基準に変換するように構成される(402)。親ブロック900は、追加的又は代替的に、これらの基準を子ブロック950に並列に又は直列に送信するかどうか、及び/又は異なる一連の基準を下の設計層の子ブロック950に送信するかどうかを決定するように構成されてもよい。
【0088】
この段階で、親ブロック900は、また、モデルの設計層の数を決定するように構成されてもよく、又は代わりに、各設計層のブロックは、上の設計層のブロックにより設計することを任された回路のポーションを設計するときに、下の設計層のブロックが必要であるかどうかを決定するように構成されてもよい。
【0089】
親ブロック900は、顧客要件を基準に変換すると(402)、次に、これらを第1設計層の子ブロック1に送信する(404)。この基準は、この設計層の子ブロック950をいくつ使用するか、どの子ブロック950にアナログ回路のどのポーションを設計させるかを指定してもよい。
図5に示す例では、親ブロック900は、各子ブロック950を直列に指示する、すなわち、最初に子1に基準を送信し、子2に指示する前に子1から回路の設計ポーション/コンポーネントが戻ってくるのを待つ、等である。しかしながら、他の例では、親ブロック900は、基準がすべての子ブロック950に同時に送信されるように、すべての子ブロック950を並列に調整してもよいことが(上述したように)理解されるであろう。
【0090】
この例では、基準を受け取ると、子1は、下層のブロック(孫ブロック960)を関与させる必要があると判断し(406)、基準に基づいて回路の第1ポーションを設計するよう孫1に指示する。孫1は、基準に基づいて回路の第1ポーションを設計し(408)、この設計した第1ポーションを子1に送り返し(410)、子1はこれを親に転送してもよい(オプションとして、最初に何らかのシミュレーション/検証を行った後)。次に、子2は、孫2に対して、基準に基づいて回路の第2ポーションを設計するよう指示する(412)。孫2は、基準に基づいて回路の第2ポーションを設計する(414)。
【0091】
このモデルのさまざまな実装において、ブロックは、すぐ隣接する層のブロックと通信することが理解されるであろう。しかしながら、いくつかの例では、ブロックはまた、すぐ隣接していない層のブロックと通信してもよい。
図5に示す例では、孫2は、設計した回路の第2ポーションを直接親900に送り返すように構成され(416)、親900は、基準及びコンテキスト情報を孫2に送り返すように構成されてもよい。
【0092】
子1が(孫1及び孫2を介して)回路の第1及び第2ポーションを設計すると、親ブロック900は、設計された回路の第1及び第2ポーションに基づいて基準を調整し、調整した基準を子2に送信してもよい(420)。次に、子2は、これらの調整された基準に基づいて回路の第3ポーションを設計してもよい。このように基準を調整することは、子1/孫2によって設計された回路の第1及び第2ポーションによって作り出されるコンテキストを考慮に入れる1つの方法であることが理解されるであろう-例えば、
図4に関連して上述した例と同様に、親ブロック900は、設計された回路の第1及び第2ポーションによって提供されるコンテキストに基づいて基準を調整するように構成されてもよい。例えば、親ブロック900が検証及びシミュレータモジュールを備える例では、検証及びシミュレータモジュールは、コンテキストを取得するために、設計された回路のポーション又はコンポーネントの性能をシミュレートしてもよい。
【0093】
しかしながら、他の例では、親ブロック900は基準を調整せず、代わりに、コンテキスト情報(子1/孫1及び2によって設計された回路の第1及び第2ポーション等)を単に基準と並行して送信してもよい。基準は、子1へ送信された基準と同じであってもよいし、あるいは、基準は、各子ブロック950、ひいてはそれぞれに対応する子ブロック950が設計するよう指示され回路の各ポーション又はコンポーネントに固有であるよう構成されるように、親ブロック900によって調整されてもよい。
【0094】
図5に示す例では、回路の第3ポーションが子2によって設計されると、親は、(例えば、回路の第1、第2及び第3ポーションによって作成されたコンテキストを考慮して)調整された基準を子3に送信してもよい(424)。次に、子3は、調整された基準に基づいて回路の第4ポーションを設計し(426)、設計された第4ポーションを親ブロック900に送信する(427)。
【0095】
親ブロック900が回路のすべての設計されたポーションを受け取ると、親ブロック900は、設計された完成した回路が顧客要件を満たしているかどうかをチェック又は検証する(428)。上述したように、親ブロックは、完成した回路の性能をシミュレートするために、検証及びシミュレータモジュールを採用することによってこれを行ってもよい。
【0096】
設計された完成した回路が顧客要件を満たさない場合、親ブロックは、何を調整する必要があるか(及びオプションでどのブロックによって)に関する追加情報とともに、要件を満たさない原因となった回路のポーションの設計を担当するブロックに調整された基準を直接再送信してもよい(432)-例えば、基準は、顧客要件を満たすためにブロックを再設計するための追加情報を考慮に入れて調整されてもよい。いくつかの例では、親ブロック900は、設計された回路のポーションのみをそのポーションの設計を担当するブロックに送り返すだけでもよい(432)-例えば、
図5に示すように、親ブロック900は、例えば、アナログ回路の第1ポーションを、調整が必要なものに関する情報、及び/又は調整された基準とともに、孫1に送り返してもよい。
【0097】
アナログ回路の第1、第2、第3及び第4ポーションは、回路の独立したポーションであってもよく、及び/又は互いに機能的に依存してもよいことは、上記の例において理解されるであろう。他の例では、アナログ回路の第1、第2、第3及び第4ポーションは、アナログ回路の選択されたサブセットであってもよい。例えば、第2ポーションは第1ポーションの一部を構成し、第3ポーションは第1及び第2ポーションの一部を構成し、第4ポーションは第1、第2及び第3ポーションの一部を構成してもよい。
【0098】
図6は、例えば
図2又は
図3の例示的なコンピュータ実装階層モデルを用いてアナログ回路を設計する方法に関する機能概略フローチャートである。
図6の方法は、
図4及び
図5の方法と共通する多くの特徴を有する。
【0099】
ステップ500において、親ブロック900は顧客要件を受け取る。
図4及び
図5に関連して上述した方法と同様に、顧客要件は、例えば、回路の機能性及びピーク電流、電圧等の回路から要求される特定の制限を定義してもよい。顧客要件は、回路が製造されるPDK/ファウンドリ等、他の特徴を指定してもよい。親ブロック900は、顧客要件を一連の基準に変換するように構成される(5202)。親ブロック900は、追加的又は代替的に、これらの基準を子ブロック950に並列に又は直列に送信するかどうか、及び/又は異なる一連の基準を下層の子ブロック950に送信するかどうかを決定するように構成されてもよい。
【0100】
また、この段階で、親ブロック900は、モデルの層の数を決定するように構成されてもよく、又は代わりに、各層のブロックが、上層のブロックにより設計することを任された回路のポーションを設計するときに、下層のブロックが必要であるかどうかを決定するように構成されてもよい。
【0101】
親ブロック900は、顧客要件を基準に変換すると(502)、次に、これらを第1設計層の子ブロック1に送信する(504)。これらの基準は、この層の子ブロック950をいくつ使用するか、どの子ブロック950がアナログ回路の各ポーションの設計を担当するかを指定することができる。
【0102】
基準を受信すると、子1は、受信した基準に基づいてアナログ回路の第1ポーションを設計する(506)。子1は、親ブロックによって決定された、それに適用可能な基準のサブセット/第1ポーションに基づいて、アナログ回路の第1ポーションを設計するように構成されてもよいことが理解されるであろう。
【0103】
子1がアナログ回路の第1ポーションを設計すると、親ブロック900から受信した基準は、子1が設計された回路の第1ポーション及び基準を同じ層の第2の子(子2)に送信するよう指示してもよい。子2は、受信した基準に基づいてアナログ回路の第2ポーションを設計してもよく、いくつかの例では、基準のサブセットのみ(例えば、それに適用可能なポーションのみ)に基づいて、又は基準のすべてに基づいて、アナログ回路の第2ポーションを設計してもよい。
【0104】
また、子2は、子1によって設計されたアナログ回路の設計された第1ポーションによって作られたコンテキストに基づいてアナログ回路の第2ポーションの設計を適合させる。いくつかの例では、このコンテキストは、調整された一連の基準の形で表現されてもよい-例えば、子1及び/又は親ブロックは、子1によって設計された回路の設計された第1ポーションによって提供されたコンテキストに基づく基準を調整するように構成されてもよいが、他の例では、コンテキストが、基準に加えて/別個に提供されてもよいことは理解されるであろう。例えば、親ブロックが検証及びシミュレータモジュールを備えた例では、検証及びシミュレータモジュールは、コンテキストを得るために回路の設計されたポーション又はコンポーネントの性能をシミュレートしてもよい。追加的又は代替的に、各子ブロックが検証及びシミュレータモジュールを備えた例では、検証及びシミュレータモジュールは、コンテキストを取得するために回路の設計されたポーション又はコンポーネントの性能をシミュレートしてもよい。
【0105】
いくつかの例では、子2は、設計を任された回路のポーションを設計するために下層のブロックを使用する必要があることを決定し、及び/又は下層のこれらのブロックを直列及び/又は並列で使用するかどうかを決定してもよい。加えて又は代替的に、受け取られた子2によって受信された基準は、子2が設計を任されている回路のポーションを設計するために下層のブロックを使用すること、(及びこれらのブロックを直列に又は並列に使用するか)を指示してもよい。例えば、
図6に示すように、子2は、アナログ回路の第2ポーションのサブセットを設計するように、孫1及び孫2に任意に指示してもよい(512)。このような例では、子2は、下層のブロック(図示の例では、孫1及び孫2)により設計された回路のポーションが、それらに要求される基準を満たすかどうかを任意に検証してもよい(513)。
【0106】
次に、子2は、設計された第1ポーション、設計された第2ポーション、及び基準を子3に送信する(514)。いくつかの例では、基準は、先行する子によって修正されてもよい。例えば、基準は、次の子に送信される前に、子1及び/又は子2によって修正されてもよい。例えば、子2は、回路の設計された第1ポーション及び/又は回路の設計された第2ポーションに基づいて子3に送信する基準を修正するように構成されてもよい。
【0107】
次に、子3は、受け取った基準と、設計された第1ポーション及び/又は設計された第2ポーションとに基づいて、アナログ回路の第3ポーションを追加的又は代替的に設計する(516)。
【0108】
次に、子3は完成した回路を親ブロックに送信し(518)、親ブロックは設計された完成した回路が顧客要件を満たしているかどうかをチェックする(520)。上述したように、親ブロックは、完成した回路の性能をシミュレートするため、検証及びシミュレータモジュールを採用することによってこれを行ってもよい。
【0109】
設計された完成した回路が顧客要件を満たさない場合、親ブロックは、子1に、設計された完成した回路を、何を調整する必要があるか(及びオプションでどのブロックによって)に関する追加情報とともに再送信してもよい(522)。加えて又は代替的に、設計された完成した回路が顧客要件を満たさない場合、親ブロックは、設計された回路のポーションのみを、そのポーションの設計を担当するブロックに送り返してもよい(524)-例えば、親ブロックは、アナログ回路の第2ポーションを、例えば、何を調整する必要があるかに関する情報とともに、及び/又は調整済みの基準とともに子2へ送り返してもよい。そして、子2は、回路のそのポーションを設計し、それを、顧客要件を満たすかどうかをチェックするために親ブロックに直接送り返すか、再設計された回路の第2ポーションに基づいて(及び/又はオプションで調整された基準に基づいて)回路の第3ポーションを再設計し得る子3に送信してもよい。。
【0110】
アナログ回路の第1、第2及び第3ポーションは、回路の独立したポーションであってもよく、及び/又は互いに機能的に依存してもよいことは、上記の例において理解されるであろう。他の例では、アナログ回路の第1例えば、第2ポーションは第1ポーションの一部を構成し、第3ポーションは第1及び第2ポーションの一部を構成してもよい。
【0111】
図7は、例えば
図2又は
図3の例示的なコンピュータ実装階層モデルを用いてアナログ回路を設計する他の方法に関する機能概略フローチャートである。
図7の方法は、基準及び/又はコンテキスト情報のような情報が子間で直接共有される点で、
図6の方法と多くの特徴を共通にする。さらに、
図7に示す例では、コンテキスト情報は、基準とは別に提供される(すなわち、基準は、コンテキストに基づいて調整されない)。
【0112】
より詳細には、ステップ600で、親ブロック900は、顧客要件を受け取る。
図4、5、6、7を参照して上述した例と同様に、顧客要件は、例えば、回路の機能性と、ピーク電流、電圧などの回路から要求される特定の制限とを定義してもよい。また、顧客要件は、回路が製造されるPDK/ファウンドリなどの他の機能を指定してもよい。親ブロック900は、顧客要件を一連の基準に変換するように構成される(602)。親ブロック900は、追加的又は代替的に、これらの基準を子ブロック950に並列に、又は直列に送信するかどうか、及び/又は異なる一連の基準を下層の子ブロック950に送信するかどうかを決定するように構成されてもよい。
【0113】
また、この段階で、親ブロック900は、モデルの層の数を決定するように構成されてもよく、又は代わりに、各層のブロックが、上層のブロックにより設計することを任された回路のポーションを設計するときに、下層のブロックが必要であるかどうかを決定するように構成されてもよい。
【0114】
親ブロック900は、顧客要件を基準に変換すると(602)、次に、これを第1設計層の子ブロック1に送信する(604)。この基準は、この層の子ブロック950をいくつ使用するか、どの子ブロック950にアナログ回路のどのポーションを設計させるかを指定してもよい。
図6に示す例では、親ブロック900は、各子ブロック950を直列に指示する、つまり、まず子1に基準を送り、次に、子1が子2を指示する等である。
【0115】
この例では、基準を受け取ると、子1は、下層のブロック(孫ブロック960)に関与させる必要があると判断し(606)、基準の第1サブセットに基づいて回路の第1ポーションを設計するよう孫1に指示する(607)。このプロセスの一部として、子1は、基準を、それが指示する自身及び/又は孫に関連するサブセットに分割してもよい。
【0116】
孫1は、基準の第1サブセットに基づいて回路の第1ポーションを設計し(608)、設計した第1ポーションを子1に送り返す(610)。次に、子1は、孫2に対して、基準の第2サブセットに基づいて回路の第2ポーションを設計するように指示する(414)。孫2は、基準に基づいて回路の第2ポーションを設計し(616)、設計した第2ポーションを子1に送り返す。このプロセスは、直列に説明されているが(すなわち、子1は、孫1が回路のそのポーションを設計した後でのみ、孫2に指示する)、他の例では子1は、孫1及び孫2の両方に並行して指示してもよいことが理解されるであろう。さらに、いくつかの例では、子1は、孫1によって設計された回路のポーションによって提供されるコンテキストを得るために、孫1によって設計された回路の第1ポーションの動作をシミュレートし、このコンテキスト情報を基準とともに孫1(及び任意で他の子ブロック)に送ってもよいことが理解されるであろう。
【0117】
子1が(孫1及び孫2を介して)回路の第1及び第2ポーションを設計すると、子1は、回路の第1及び第2ポーションの挙動をシミュレートして、それらのコンテキストを取得し(612)、基準及び回路の設計された第1及び第2ポーションによって提供されるコンテキストを子2に送信してもよい(622)。また、子1は、設計された第1及び第2ポーションを、親ブロック900に転送するため、子2に一緒に送ってもよい。次に、子2は、それに関連する基準のサブセット、及び子1によって提供されたコンテキスト情報に基づいて、回路の第3ポーションを設計してもよい(624)。
【0118】
図6に示す例では、回路の第3ポーションが子2によって設計されると、子2は、回路の第3ポーションの動作をシミュレートしてもよく(626)、このコンテキスト情報を基準と共に子3に送信する(628)(親ブロック900に転送するための設計済みの第1、第2及び第3ポーションと同様に)。いくつかの例では、設計された第1及び第2ポーションからのような回路の他のポーション(利用可能であれば)に関連するコンテキスト情報も、子3に送信されてもよいことが理解されるであろう。次に、子3は、基準(又はそれに関連する基準のサブセット)に基づいて回路の第4ポーションを設計し(630)、回路の設計された第4ポーションの動作をシミュレートし(632)、設計した第4ポーションを他の設計されたポーション及びコンテキスト情報と共に親ブロック900に送信する(634)。
【0119】
親ブロック900が回路のすべての設計されたポーションを受け取ると、親ブロック900は、設計された完成した回路が顧客要件を満たしているかどうかをチェック又は検証する(636)。上述したように、親ブロック900は、完成した回路の性能をシミュレートするために、検証及びシミュレータモジュールを採用することによってこれを行ってもよい。
【0120】
設計された完成した回路が顧客要件を満たさない場合、親ブロックは子ブロック1に基準を再送し、前の反復で提供されたコンテキスト情報とともに、プロセスを繰り返してもよい。その後、プロセスは上述したように繰り返される。いくつかの例では、親ブロック900は、設計された完成した回路と顧客要件との間の差分に基づいて、例えば、顧客要件と比較した完成した回路のシミュレートされた動作に基づいて、子ブロックに送信される基準を調整してもよい。
【0121】
アナログ回路の第1、第2、第3及び第4ポーションは、回路の独立したポーションであってもよく、及び/又は互いに機能的に依存してもよいことは、上記の例において理解されるであろう。他の例では、アナログ回路の第1、第2、第3及び第4ポーションは、アナログ回路の選択されたサブセットであってもよい。例えば、第2ポーションは第1ポーションの一部を構成し、第3ポーションは第1及び第2ポーションの一部を構成し、第4ポーションは第1、第2及び第3ポーションの一部を構成してもよい。
【0122】
図8Aは、
図1Aから
図7のいずれかを参照して上述したモデルのような、コンピュータに実装された階層モデルによって設計されたアナログ回路のポーションを示し、
図8Bは、
図8Aの回路ポーションを備えた設計されたアナログ回路の一例を示し、この場合は、ADCである。
【0123】
図8Aには、入力バッファ、レベルシフタ、DAC、コンパレータが示されている。これらの各々は、
図8Bに示す完成されたADCのような完成されたアナログ回路のポーションを形成してもよい。
【0124】
図8A及び
図8Bに示す例は、上記のようなコンピュータに実装された階層モデルを用いて設計されている。親ブロック(又は一次設計ユニット)がADC全体の設計を担当し、子ブロック(又は二次設計ユニット)が入力バッファ、レベルシフタ、DAC、コンパレータのそれぞれを担当する。親ブロックはユーザから技術的要件を受け取り、それを技術的基準に変換し、技術的基準は回路のそれぞれのポーションを設計するためにそれぞれの子ブロックで使用される。回路の他のポーションのコンテキストは、子ブロックが回路のそれぞれのポーションを設計する際に考慮され、使用される。このモデルは、親ブロック900が各子ブロック950a~dにそれぞれのポーション又はコンポーネントを設計するように指示すると、回路の他のポーションによって提供されるコンテキストがそれぞれの回路ポーション及び全体としての回路の設計に用いられるように、回路及びそのポーションのある程度の再設計が実行されるという点でも反復的である。上述したように、各子ブロック及び/又は親ブロックは、設計されたポーション/完成した回路が求められた技術的要件を満たしているかどうかを判断するために、検証/確認を実行してもよい。
【0125】
図8Bに示される設計された回路において、DACが2つあるのは、差動ADCを動作させるためである。入力バッファが複数(図に示された例では3つ)あるのは、2つは2つの入力をバッファリングするためで、リファレンスも入力としてバッファリングするためである。
【0126】
本開示の文脈において、基準の基礎を形成し得る例示的なアナログパラメータの非網羅的なリストが、ノイズ耐性、電源除去比(PSRR)、コモンモード範囲-入力(入力CMR)、コモンモード範囲-出力(出力CMR)、直線性、最大オフセット、帯域幅、最小スルーレート、固有遅延、最小位相マージン、動的消費電力、静的消費電力、IP3ポイント、フィルタ中心周波数、フィルタ帯域通過範囲、負荷ステップ応答、ラインステップ応答、出力精度、ノイズ指数、校正範囲、ノイズフロア、SNR、ENOB、SINAD、出力周波数範囲、ジッタ-ptp、ジッタ-RMS、出力リップルptp、全高調波歪み、起動時間、チャンネル分離、基準電圧、ゲインエラー、オフセットエラー、ゲインドリフトを含むことが理解されるであろう。
【0127】
また、設計ユニット(一次、二次、三次設計ユニット等)は、ソフトウェア又はハードウェアで、例えば専用回路として実装されてもよいことが理解されるであろう。例えば、設計ユニットは、コンピュータシステムの一部として実装されてもよい。コンピュータシステムは、コンピュータシステムのさまざまなコンポーネント間で情報データ、信号、及び情報を通信するためのバス又は他の通信機構を含んでもよい。コンポーネントは、キーパッド/キーボードからキーを選択する、1つ以上のボタン又はリンクを選択する等、ユーザ(すなわち、送信者、受信者、サービスプロバイダ)の動作を処理し、対応する信号をバスに送る入出力(I/O)コンポーネントを含んでもよい。I/Oコンポーネントは、ディスプレイやカーソル制御(キーボード、キーパッド、マウス等)等の出力コンポーネントを含んでもよい。トランシーバ又はネットワークインターフェースは、コンピュータシステムと、ネットワークを介して他のユーザ装置、マーチャントサーバ、又はサービスプロバイダサーバ等の他の装置との間で信号を送受信してもよい。一実施形態では、伝送は無線であるが、他の伝送媒体及び方法も好適であろう。マイクロコントローラ、デジタル信号プロセッサ(DSP)、又は他の処理コンポーネントであり得るプロセッサは、コンピュータシステム上での表示又は通信リンクを介した他の装置への送信のため等、これらのさまざまな信号を処理する。また、プロセッサは、クッキーやIPアドレスなどの情報の他の装置への送信を制御してもよい。
【0128】
コンピュータシステムのコンポーネントは、システムメモリコンポーネント(例えば、RAM)、静的ストレージコンポーネント(例えば、ROM)、及び/又はディスクドライブ(例えば、ソリッドステートドライブ、ハードドライブ)を含んでもよい。コンピュータシステムは、システムメモリコンポーネントに含まれる1つ以上の命令シーケンスを実行することにより、プロセッサ及び他のコンポーネントにより特定の動作を実行する。
【0129】
論理は、コンピュータ可読媒体内で符号化されてもよく、この媒体は、実行のためにプロセッサに命令を提供することに参加する任意の媒体を指す場合がある。このような媒体は、不揮発性媒体、揮発性媒体、及び伝送媒体を含むがこれらに限定されない多くの形態を取ることができる。さまざまな実施態様において、不揮発性媒体は光ディスク又は磁気ディスクを含み、揮発性媒体はシステムメモリコンポーネントなどの動的メモリを含み、伝送媒体は同軸ケーブル、銅線、及び光ファイバーを含む。一実施形態では、ロジックは、非一時的なコンピュータ可読媒体に符号化される。一例では、伝送媒体は、電波、光、及び赤外線データ通信中に発生するような音響波又は光波の形態を取ってもよい。
【0130】
コンピュータ可読媒体の一般的な形態としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、CD-ROM、その他の光媒体、パンチカード、紙テープ、穴のパターンを持つその他の物理媒体、RAM、PROM、EPROM、Flash-EPROM、その他のメモリチップやカートリッジ、又はコンピュータが読み出すように設計されたその他の媒体がある。
【0131】
本開示のさまざまな実施形態において、本開示を実践するための命令列の実行は、コンピュータシステムにより実行されてもよい。本開示のさまざまな他の実施形態では、ネットワーク(例えば、LAN、WLAN、PTSN、及び/又は電気通信、モバイル、及び携帯電話ネットワークを含むさまざまな他の有線又は無線ネットワークなど)への通信リンクにより結合された複数のコンピュータシステム600は、互いに連携して本開示を実施するための命令シーケンスを実行してもよい。
【0132】
また、本開示の態様は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせを用いて実装してもよいことが理解されるであろう。また、適用可能な場合、本明細書に規定されるさまざまなハードウェアコンポーネント及び/又はソフトウェアコンポーネントは、本開示の趣旨から逸脱することなく、ソフトウェア、ハードウェア、及び/又は両方からなる複合コンポーネントに組み合わされてもよい。また、適用可能な場合、本明細書に記載のさまざまなハードウェアコンポーネント及び/又はソフトウェアコンポーネントは、本開示の範囲から逸脱することなく、ソフトウェア、ハードウェア、又はその両方からなるサブコンポーネントに分離することができる。さらに、適用可能な場合、ソフトウェアコンポーネントはハードウェアコンポーネントとして実装されてもよく、その逆もまた可能である。
【0133】
プログラムコード及び/又はデータなどの本開示によるソフトウェアは、1つ以上のコンピュータ可読媒体に格納されてもよい。また、本明細書で特定されるソフトウェアは、ネットワーク化された及び/又はその他の1つ以上の汎用又は特定目的のコンピュータ及び/又はコンピュータシステムを用いて実装されてもよいことが考えられる。適用可能な場合、本明細書に記載されるさまざまなステップの順序は、本明細書に記載される特徴を提供するために変更されてもよく、複合ステップに組み合わされてもよく、及び/又はサブステップに分離されてもよい。
【0134】
本明細書に記載されたさまざまな特徴及びステップは、本明細書に記載されたさまざまな情報を記憶する1つ以上のメモリと、1つ以上のメモリ及びネットワークに結合された1つ以上のプロセッサとを備えるシステムとして実装されてもよく、1つ以上のプロセッサは、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに本明細書に記載されるステップを含む方法、及びハードウェアプロセッサ、ユーザ装置、サーバ、及び本明細書に記載される他の装置などの1つ以上の装置によって行われる方法を実行させるように適合されている複数の機械可読命令を含む非一時的機械可読媒体として、本明細書に記載されるステップを実行するように動作可能である。
【0135】
本開示の文脈において、本明細書に記載された装置及び方法の他の例及び変形例は、当業者にとって明らかであろう。
【国際調査報告】