(57)【特許請求の範囲】
【請求項１】
高調波バランス・シミュレータ手段と時間領域シミュレータ手段を備えたデジタル・コンピュータを使用して刺激信号に対する回路の応答をシミュレートする方法であって、
前記回路は、それぞれが１つまたは複数のデバイスに接続された複数のノードによって表され、
前記複数のノードが、コンピュータルーチンに与えられる一組の電位に保たれるとき、それぞれの前記デバイスは、対応するデバイスによって供給される電流を与えるコンピュータルーチンに対応し、
前記刺激信号ｖ（ｔ）を、
【数１】
0003894375.tif 000014
によって近似するステップを含み、Ｖｋ(ｔ)は、時間変化する電圧であり、
Ｋ≧０であり、ωｋは、搬送波周波数であり、直流、基本波および高調波からなり、
高調波バランス・シミュレータ手段によって、高調波バランス法における定常的な電圧値としてＶｋ(０)を使用して、各デバイスに供給される電流の値を求めるステップと、
時間領域シミュレータ手段によって、Ｖｋ(０)に対して、各デバイスに供給される電流の値を基準として、時間領域の導関数の近似により、Ｖｋ(ｔ)に対して、各デバイスに供給される電流を求めるステップと、を含み、
Ｖｋ(ｔ)の時間変化の速度が、基本波の時間変化の速度と比較して小さい場合に、シミュレーションの時間ステップのサイズが搬送波周波数ではなく、Ｖｋ(ｔ)の帯域幅によってのみ定められる、方法。
【請求項２】
容量Ｃを持つキャパシタに対応する前記コンピュータルーチンは、前記一組のノード電位に応答してＫ個の電流値を与え、ｋ番目の電流は、
【数１７】
0003894375.tif 000015
によって与えられる、請求項１に記載の方法。
【請求項３】
容量Ｃを持つキャパシタに対応する前記コンピュータルーチンは、前記一組のノード電位に応答してＫ個の電流値を与え、
ｋ番目の電流は、
【数１８】
0003894375.tif 000016
によって与えられ、
前記コンピュータルーチンは、さらに、Ｋ個の電荷値を与え、
ｋ番目の電荷値は、
【数１９】
0003894375.tif 000017
によって与えられ、
前記方法は、さらに、
前記コンピュータルーチンによって与えられる値Ｑｋを合計して、Ｋのそれぞれの値に対応する総電荷を得るステップと、
前記総電荷の時間変化の速度の近似を計算するステップと、
を含む、請求項１に記載の方法。
【請求項４】
それぞれの前記コンピュータルーチンは、前記方法が時間Ｔにおいて前記回路の動作をシミュレートするとき、第１および第２の電流を与え、
前記第１の電流は、前記回路が、
【数２０】
0003894375.tif 000018
によって与えられる振幅を持つ定常状態の刺激信号に接続されているとき、前記対応するデバイスによって供給される電流に対応し、
前記第２の電流は、ｋ＝０からＫについて前記Ｖｋ（ｔ）によって決定される時間依存を持つ、請求項１に記載の方法。
【請求項５】
前記デバイスのうちの１つが、線形畳み込みデバイスであり、
前記方法は、さらに、有限インパルス応答（ＦＩＲ）または無限インパルス応答（ＩＩＲ）のいずれかで、該線形畳み込みデバイスの応答を近似するステップを含む、請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子回路をシミュレートするコンピューター・プログラムに関する。
【０００２】
【従来の技術】
モデム集中回路は複雑であり、試作品を製造するには高いコストがかかることから、回路動作をシミュレートするクラスのコンピューター・プログラムが開発されている。これらのシミュレータは、設計者が様々な素子に適用する適当なバイアス電圧を決定したり、試作品の製造に資源を取り入れる前に回路動作を検証する際に有用である。
【０００３】
シミュレートされる回路は、典型的にはノード、および各ノードに接続される素子のリストで表される。ユーザーは実際に、ネット(net)・リストを与えたり、またはプログラムがネット・リストを作り出すための回路を図示することができる。各素子は電流を供給するまたは吸収(シンク、sink)するデバイスとみなすことができ、その値は素子が接続されるノードの電圧、さらには当該ノードの過去の電圧によって決定される。ユーザーは特定の素子を定義したり、シミュレーション・プログラムを備えた標準的な素子のライブラリを利用することができる。
【０００４】
シミュレーション・プログラムは、各ノードの電流の合計がゼロとなる回路のノード電圧の組を見つける。これは、電源素子から供給される電流が、残りの素子によって吸収される電流と正確に一致するような電圧である。それぞれの素子は、入力電圧に応じて吸収されるまたは供給される電流を与える１つのサブルーチンによって表される。詳細に後述するが、素子のサブルーチンはまた、ノード電圧に関する電流の１階導関数を与えることができる。さらに素子のサブルーチンの出力は、対応する素子が接続されるノードのヒストリに依存しうる。例えば素子がインダクタまたはキャパシタを含む場合、電流はノード電圧およびノード電圧の時間変化の速度に依存する。ノード電圧の変化の速度はノード電圧の過去の値、すなわち「ノードのヒストリ」から計算することがきる。
【０００５】
シミュレーションの最も簡単なタイプは、回路の定常状態の動作すなわち回路の直流動作状態を決定するものである。このようなシミュレーションは、回路の基本的なノードについて様々なバイアス電圧を設定するのに特に有用である。定常状態では、シミュレーション問題の解法は、典型的に、ニュートン−ラフソンの繰り返し計算のような反復的な方法で解く非線形方程式のシステムの解法に至る。回路のノードの数がＮであるとき、システムの方程式の数は少なくともＮ個である。
【０００６】
過渡状態のまたは大信号の動作状態にある回路のシミュレーションは、本質的に一層複雑である。典型的に、入力ノードが時間で変化する電圧源に接続されるとき、設計者は回路の１つまたは複数のノードの電圧を時間の関数として決定したい。上述したように、１つまたは複数の回路素子は電流を吸収しまたは供給し、その電流値はそのノード電圧自身およびノード電圧の変化の速度に依存する。こうしてノードに入る電流とノードから出る電流を釣り合わせるには、微分方程式のシステムが必要になる。Ｎ個のノードをもつ回路は、少なくともＮ個の方程式からなるシステムによって表される。さらに、インダクタまたはキャパシタをもつデバイスに対応する方程式は微分方程式である。
【０００７】
このような非線形微分方程式のシステムを解くための数値的な方法はすでに知られている。これらの方法は、典型的に、各時点での反復的なプロセスを必要とする。従って過渡状態のシミュレーション問題の解法は、本質的に計算上直流のシミュレーションの解法よりも複雑である。
【０００８】
さらに、解法はそれぞれの時点で繰り返されなければならない。時点の間隔取りは、典型的には、素子が接続される任意のノードで期待される最高周波数によって決定され、その出力はノード電圧の変化の速度すなわちノード電圧の１階導関数に依存する。１階導関数は、現在のノード電圧と１つまたは複数の過去のノード電圧を曲線に適合させることによって決定される。そして曲線の傾斜は、１階導関数への近似として使用される。連続する時点が離れすぎている場合、近似は１階導関数において重大な誤差をもたらす。このような誤差は回路のインダクタまたはキャパシタにおける未知の誤差を生じるに等しいことに留意すべきである。このように、過渡状態のシミュレーションは、時間ステップのサイズとともに増加する誤差を有する。このように、１秒当たりに必要なステップ数は、最も感度のよいノードの最高周波数よりも大きいオーダーでありうる。
【０００９】
回路への入力信号が10GHzのマイクロ波信号の10kHz変調であるシミュレーションについて考える。搬送波の周期の10分の1に等しいステップ・サイズで、変調包絡線の10サイクル、すなわち1ミリ秒の間の回路の応答を見るために、回路動作を１億の時点で計算しなければならない。1000個のノードのそれぞれにおける挙動を回収するならば、その結果を入れるための記憶スペースだけで問題となる。
【００１０】
入力波形が周期的である場合、回路挙動を計算する高調波バランス方法を使用することによって困難な計算を本質的に容易にすることができる。この場合、入力信号は固定の振幅をもつ正弦波の合計として書くことができる。それぞれの回路素子は、素子に接続するノードにおいてそれぞれの正弦波に応じて吸収されるまたは供給される電流を与えなければならない。入力信号が10の正弦波で表される場合、素子は10の電流値およびこれらの値の高調波の電流を供給しなければならない。それぞれの電流は電流の振幅および位相を表す複素数であることに留意すべきである。非線形デバイスは入力信号の１または複数倍の高調波を生成し得るので、高調波についての電流が必要である。こうしてシミュレーション問題は、それぞれの周波数について各ノードに入る電流と各ノードから出る電流を釣り合わせる１組の非線形方程式を解くことに移る。
【００１１】
高調波バランス技法の利点は、各々の時点で解を計算しなくてもよいことである。この場合、非線形方程式のシステムの解は、シミュレーション問題に定常状態の解を与える。しかし、各デバイスが電流データを供給しなければならない高調波の数をｎとすると、方程式のシステムはｎ倍の大きさになる。従って、ノードの数をＮとすると、高調波バランスの技法は、有効な計算システムがｎＮのオーダーの方程式のシステムを解くことができるようなシミュレーションに限定される。
【００１２】
加えて、高調波バランス方法は、上述のように入力信号が周期的である場合に限定される。関心のある多くの場合、入力信号は周期的ではない。例えば、データ・ストリームによる搬送波の変調は典型的に非周期的な波形を生じる。これらの問題は時間領域の解析によってのみ解くことができる。上述のように搬送波周波数が変調周波数よりも非常に大きい場合、時間領域の解析を用いて回路をシミュレートするには、極端に多数の時点を必要とする。それゆえ、時間領域と高調波バランスの両方のシミュレータでは満足されていない大きなクラスの問題がある。
【００１３】
上述の問題を解決するために、関連した他の２つの先行技術の方法である、混成周波数時間(MFT:mixed frequency-time)の方法およびその方法による包絡線が開発されている。これらの技法は共に、基本的な時間領域の積分技法を用いて、あるクロック周期にわたる完全な波形について反復的に解くことができることに依存している。そして別のクロック周期の区分を解く前に、数クロック・サイクルをスキップする。これらの技法は、解を計算しなければならない時点の数を減少させる。しかし、あるクロック周期の区分と隣接するクロック周期の区分の間に満足しなければならない境界関係があるので、計算は本質的に一層複雑になる。MFTの方法は、クロック・レートでサンプル取りした後、波形が小さい数ｎの高調波によって表されることができると仮定する。このサンプル取りされた波形は、2*n-1の時間サンプルによって表すことができる。これらの各々の時間サンプルについて、回路方程式を初めの値から積分して１クロック周期後ろの値を得る。それからフーリエ技法を用いて初めの値の組を１クロック周期遅らせる。遅らされた値のこれらの組は互いに等しくなければならない。そこでこれらの値を互いに等しくするために一組の非線形方程式を定義する。そしてニュートン−ラフソン法に基づく解法を用いてこの非線形方程式の組を解く。このために、回路方程式を繰り返し積分するだけでなく、積分された結果の感度(sensitivity)も計算しなければならない。高調波の数ｎが大きい場合、この大きな方程式の組を解くには非常に時間がかかり、各クロック周期について回路方程式を解かなくてよいという利益がなくなることもありうる。高調波バランスのシミュレーションと同様に、このMFTの方法は実際には比較的少ない数の高調波とサンプル取りされた波形のトーンが存在する際の定常状態の解に限定され、その速度と効率はある時点のサンプルから次の時点までに回路が如何に線形にふるまうかということに大きく関係する。
【００１４】
この方法による包絡線は、感度と同様に完全な１クロック周期について回路方程式を積分しなければならないという点ではMFTの方法と似ているが、周波数領域の技法を用いる代わりに、「微分のような(differential-like)」時間領域の方程式を使って、あるクロック周期の解を数クロック周期前の解に関連させる。スキップすることができるクロック周期の数は、どれだけ速く包絡線が変化するかに依存する。これを安定したアルゴリズムにするためには、後退オイラーに類似する陰関数積分法(implicit integration)を用いなければならない。結果として方法は反復的なプロセスになり、１クロック周期に回路方程式および感度を複数回積分しなければならない。
【００１５】
上述の技法は両方とも、時間領域の１クロック周期に回路方程式を解くことができることに依存する。この制約のために、これらの方法は、ランプ(lumped)素子、すなわちキャパシタおよびインダクタを用いた回路モデルに限定される。スキップされたクロック周期について過去のヒストリは有効ではないため、モデルは畳込みを使用したり、過去のヒストリ情報を要求することができないからである。このようなモデルでは、高周波の通信回路で使用される多くの回路を正確に表すことができない。MFTの方法は、ちょうど過渡状態の波形または非常に複雑な変調波形を処理することができない。これらの方法は共に、ニュートン−ラフソンの技法の収束を実現するには時間領域の感度の行列を計算する必要があるが、その計算には時間がかかり、希薄というよりは完全な行列を反転しなければならない。加えてこれらの方法は共に、時間領域の波形を生成するにすぎない。シミュレーションで使用したり、または便利に表示するための、瞬間的な振幅、位相またはI/Qのような基本的な包絡線の情報を得ることができない。この情報を生成するために、次の処理の工程にさらに時間を費さなければならない。
【００１６】
【発明が解決しようとする課題】
本発明の目的は、一般に、コンピュータで電子回路をシミュレートするための改善された方法を提供することである。
【００１７】
本発明の別の目的は、変調周波数が搬送波周波数と比較して小さい、複数の変調された搬送波および高調波をシミュレートすることができるシミュレータを提供することである。
【００１８】
本発明のさらに別の目的は、ランプ素子を有する回路モデルに限定したシミュレータを提供することである。
【００１９】
【課題を解決するための手段】
本発明は、高調波バランス・シミュレータと時間領域シミュレータの組合せと考えることができる。刺激信号は、時間変化する変調包絡線をもつ１または複数の搬送波によって表される。このシミュレータは、各デバイスのサブルーチンが与える電流に、それぞれの搬送波周波数において変調包絡線の時間依存性をもつ付加的な項が含まれるという点で、高調波バランス・シミュレータと異なる。これらの付加の電流項はシミュレーション問題の時間領域での解を必要とする。しかしその時間ステップは搬送波の時間変化ではなく包絡線の時間変化によって決定される。結果として、シミュレーションに必要な時間ステップの数は大幅に減少する。本発明は、従来の高調波バランス・シミュレータを変更することによって実施することができる。その変更のために、様々なデバイスのルーチンにコードが付加され、変調包絡線に対応する電流項を与える。本発明の好ましい実施例で、変調包絡線の現在および過去の値に依存する電荷項と電流項はいずれも、各デバイスのルーチンによって与えられる。そして、各々の搬送波周波数について電荷項の合計を微分して、包絡線の電流項の合計を与える。
【００２０】
【発明の実施の形態】
本発明の方法は、周波数領域の高調波バランス解法の始めに時間領域の技法を適用するものと考えることができる。本発明で、入力刺激(stimulus)波形は、変化の速度が搬送波の正弦波のそれと比較して小さい時間変化する包絡線によって変調される、小さい数の搬送波によって表すことができるものと仮定する。刺激波形をv(t)で表すとき、次式で与えられる。
【００２１】
【数２】
0003894375.tif 000002
標準的な高調波バランス解法では各Vk項は離散的なトーンの定常状態の値を表す複素定数であるのに対して、本発明では各搬送波を中心とした任意のスペクトルを表す複素数値の時間の関数Vk(t)によってこれらの項をそれぞれ置き換える。このスペクトルは、それらの連続するスペクトルによって過渡的な信号を表すことができる。また本発明はそれら離散的なスペクトル線によって周期的信号をモデル化することができる。さらに詳しく後述するが、本発明によるシミュレータは、時間ステップのサイズが搬送波周波数ではなく変調包絡線の帯域幅によってのみ定義されることから、時間領域のシミュレータよりも優れた重要な利点をもつ。
【００２２】
上述のように、シミュレーションされる回路は、様々な回路素子が接続されるノードによって表される。各々の回路素子は、回路素子に接続される個別のノードの入力電圧、さらにはこれら入力電圧のヒストリに応じて電流を供給する。方程式(1)で与えられる波形を適応させるのに必要な変更をより簡単に理解するために、高周波バランス方法に基づいてシミュレータで供給される電流と比較しながらデバイス電流の変化を説明する。
【００２３】
上述のように、高調波バランス・シミュレータは、回路のそれぞれのノードでそれぞれの高調波周波数について方程式のシステムを解く。したがって、波形にK個の高調波があるとき、シミュレータは一組のK個の方程式によって各ノードを表し、それぞれの方程式は高調波周波数の１つについて電流の合計を表す。各素子を表すコードは、回路素子に接続される各ノードに電圧を与える要求に応答して、その周波数での対応する素子の寄与を与える。ニュートン−ラフソンのアルゴリズムを用いて解を見つける場合、各々のサブルーチンはノード電圧の関数として電流の１階導関数を与えなければならない。
【００２４】
同様に本発明では、各ノードを表す方程式が各周波数について１つの方程式を含む方程式のシステムの解を必要とする。それぞれの回路素子を表すノードは、それぞれの搬送波周波数について回路素子の寄与を与えなければならない。さらに、ニュートン−ラフソンのアルゴリズムを用いて方程式のシステムを解く場合、コードは１階導関数を与えなければならない。
【００２５】
電流が電圧の代数関数である、例えばダイオード非線形性を含む線形および非線形の抵抗素子の場合、方程式は時間の導関数および過去のヒストリを含まない。それゆえ、高調波バランスとそのようなデバイスを表すコードの本発明の実現とはまったく同じである。素子を表すルーチンは、以下の出力を与える。
【００２６】
【数３】
i=1,...Nについて     Ik=Fk(v(t))                            (2)
ここでFk(v)は、周波数ωkについて当該デバイスが発生する電流である。ニュートン−ラフソンのアルゴリズムを用いてシステムを解くために必要な導関数は、すでに高調波バランス・シミュレータによって計算されたものと同一であり、電圧v(t)に応答する素子の出力電流がf(v(t))で与えられとき、時間領域の導関数の波形df(v(t))/dvから決定される。
【００２７】
線形キャパシタについて、従来の高調波バランス・シミュレータで用いられる方程式を変更しなければならない。キャパシタが供給する電流は、次式で与えられる。
【００２８】
【数４】
0003894375.tif 000003
従来の高調波バランス・シミュレータでは、各素子は第ｋ高調波についてjωkCVkに等しい電流を与える。本発明によるシミュレータでは、第ｋ高調波についてキャパシタを表すコードが与える電流は次式で表される。
【００２９】
【数５】
0003894375.tif 000004
第１項は、現時点の搬送波の振幅について高調波バランスの定常状態の項と全く同じである。第２項は、周波数ωkについて時間変化する包絡線の電圧の変化によって生じる、周波数ｋについての過渡状態の包絡線の電流を表す。この導関数の項は、周波数ｋの包絡線の電圧の２階導関数によってのみ制限されるステップ・サイズをもつ通常の任意の近似を用いて計算することができる。従って、包絡線の電圧の変化に関係する少ないステップだけを必要とすることは明らかである。ニュートン−ラフソンのアルゴリズムに必要な導関数を次式で近似することができる。
【００３０】
【数６】
0003894375.tif 000005
ここでΔtは時間領域のステップ・サイズである。再び、第１項は従来の高調波バランス方法によって与えられるものである。第２項は本発明によって加えられるものである。方程式(5)は２点の数値微分方程式を実行する。当業者であれば、他の数値微分方程式も使用できることは明らかである。しかし、微分の誤差はニュートン−ラフソンのアルゴリズムの収束の速度高々低下させることを指摘しておく。
【００３１】
また、本発明の包絡線の技法を用いて任意の周波数応答H(s)のデバイスをモデル化することができる。このようなデバイスをモデル化する精確な方法は、各搬送波を中心とする包絡線の帯域幅および周波数応答の特性に依存する。畳込みによってモデル化することができるデバイスを考える。すなわち、
【００３２】
【数７】
0003894375.tif 000006
このようなデバイスによって第ｋ搬送波について供給される電流が次式で与えられることは明らかである。
【００３３】
【数８】
0003894375.tif 000007
この式のフーリエ変換から、デバイスの周波数応答が次式で与えられることが分かる。
【００３４】
【数９】
0003894375.tif 000008
H(s-jωk)の項は、第ｋ搬送波に集中する周波数応答であり、以後Hk(s)と呼ぶ。従って、問題をHk(s)に関して用いられる式に移す。Hk(s)は包絡線の帯域幅で比較的一定であるならば、定数とみなすことができる。そして、畳込みは乗算になる。各々の搬送波周波数は依然として異なる周波数応答を持ち得るということに留意すべきである。
【００３５】
包絡線の帯域幅で重要な周波数応答の変化がある場合、高速フーリエ変換(FFT)技法を使って有限なインパルス応答(FIR:Finite Inpulse Response)モデルを生成することができる。それを用いて、ヒューレット・パッカード社のHP5154A高周波トランジェント・シミュレータのような先行技術の方式におけるベースバンドの畳込みを使って実行するのと同様、標準的な畳込みを実行することができる。主な違いとしては、インパルス応答および波形が複雑であり、実数値ではないということである。さらに、それぞれの搬送波周波数について異なったインパルス応答が潜在的に存在する。別の代替は、定常状態を曲線適合(curve-fitting)のアルゴリズムを使って無限のインパルス応答(IIR:Infinite Inpulse Response)モデルを生成することである。これは、多項式の級数Ｐ(z)の代わりに有理の多項式のN(z)/D(z)を使ってHk(s)を近似するに等しい。この方法では、シミュレータにおける帰納的な畳込みを実行する必要がある。この場合、様々なデバイスのサブルーチンに利用できるように入力および出力の値の過去の値が記憶されなければならない。
【００３６】
ついに、h(t)を与える既存の全帯域幅のインパルス応答のジェネレータを使用することによってHk(s)をモデル化することができる。これを実行するためのコードは、上記のHPインパルス・シミュレータのような先行技術のシミュレータで得ることができる。このh(t)から、様々なインパルス応答hk(t)をe-jωktと混ぜて、それを適当にフィルタし、10分の1にして計算し、シミュレータの帯域幅と時間ステップに適合させることができる。
【００３７】
上記のことから、本発明による包絡線の回路シミュレータは、その時間ステップのサイズが搬送波周波数ではなく変調包絡線の帯域幅によってのみ制限されるという点で、時間領域シミュレータよりも優れた重要な利点をもつことは明らかである。例えば、重要な第３高調波をもつ５GHzの信号を仮定する。基本のナイキスト基準を満たすために、サンプリング周波数は30GHzよりも大きくなければならない。積分アルゴリズムから適当な精度を得るためには、サンプリング周波数は現実に最低でも100GHzである。ここで、搬送波は100kHzのシンボル・レートで変調され、500シンボルについて回路をシミュレートすると仮定する。これは全体のシミュレーション時間を５ミリ秒にしたいことを意味する。しかし大きい搬送波周波数では、時間のステップ・サイズは10ピコ秒以下でなければならない。結果として、先行技術のシミュレータでは5億より多い時点が必要となる。対照的に、本発明の包絡線シミュレータは4つの搬送波周波数を有する。すなわち、直流、5GHzの基本波、および10および15GHzの第２および第３の高調波である。200kHzの両側のスペクトルを仮定すると、1MHzのサンプルレートは十分な精度を提供する。従って5ミリ秒の時間の記録を得るためには、5000時点だけ計算すればよい。
【００３８】
スパイス様(Spice-like)およびニッツウィット様(Nitswit-like)のシミュレータの両方を含む、時間領域に基づくシミュレータの別の制限は、任意の数値積分のルーチンの精度が低周波または直流の精度と比較して高周波で低下するということである。例えば、所与の搬送波周波数についてキャパシタを通る電流を計算するための標準的な台形の２次の積分技法を用いるために、サンプルレートは、1パーセントの精度について10倍の搬送波周波数、0.1パーセントの精度については約32倍の搬送波周波数が必要である。変調搬送波の応用のために、最高の精度は直流にではなく情報が集中する搬送波周波数にあるべきである。これらの時間領域シミュレータの場合、精度は直流で最高になり、高い周波数では落ち込む。
【００３９】
対照的に、本発明による包絡線のシミュレータは各々が搬送波周波数に集中する複数の積分を実行する。したがって、最高の精度はまさに各々の搬送波周波数で達成され、時間領域の積分に起因する精度の低下は各搬送波を中心として離れた変調周波数に適用されるだけである。包絡線の時間ステップは、包絡線スペクトルの所望の精度を維持するように十分小さく設定されなければならないが、実際の搬送波およびそれに非常に近いところの精度は、定常状態すなわち基本的な高調波バランス・シミュレータの最高精度に等しい。
【００４０】
さらに本発明による包絡線の回路シミュレータの別の利点は、各搬送波の瞬間的な振幅、位相およびI/Qの情報を直接得られることである。シミュレータでこの情報を使用して、振幅、電力、位相または周波数検出器のような項目の効率的なモデルを生成したり、所望の結果をユーザに示すことができる。時間領域の波形を包絡線の情報に変換するために、付加の、長々した、誤差を生む計算は必要ではない。
【００４１】
本発明による包絡線シミュレータは、本質的に高調波バランス・シミュレータの利点のすべてを備えている。周波数領域のモデルは、効果的かつ精確に回路方程式に取り入れられる。任意の周波数応答H(s)が変調帯域幅であまり大きく変化しないならば、それは時間領域のシミュレータで必要な長々した畳込みとは対照的に、単純な乗算によって実行することができる。さらに応答はなお各々の搬送波周波数について著しく異なった値をもつことができる。ある特定の搬送波の変調帯域幅に周波数応答の変化H(s)がある場合でも、本発明よる包絡線のシミュレータに必要な畳込みは、非常に短くて速い畳込みである。時間領域のシミュレータでは直流から最大周波数までの全範囲が必要であるのに対して、本発明で必要な畳込みは比較的狭い変調帯域幅における周波数応答を示すだけでよい。
【００４２】
また本発明による包絡線回路シミュレータは、解法を定常状態の解法から始められるという点についても高調波バランス・シミュレーションの利点を備えている。包絡線シミュレータは、全ての搬送波、局部発振器、無線周波数および定常状態の値における直流波形を用いてシミュレーションを開始することができる。多くの時間領域のシミュレータのように、回路が定常状態になるのを待つ必要はない。包絡線シミュレータは過渡状態が終わるのを待たずに、変調包絡線がどのように時間変化するかというシミュレーションを始めることができる。しかし望むならば、本発明は始動の過渡状態をシミュレートできない高調波バランス・シミュレータの限定を共有しない。無線周波数、局部発振器、さらに直流資源は時間t=0でオンになり、完全な始動の過渡状態を観察することができる。従って本発明は、時間および周波数の領域のシミュレータの利点のほとんどを共有している。
【００４３】
通常の高調波バランス・シミュレーションと比較すると、本発明の包絡線の回路シミュレータはトーンをほとんど必要としない。この結果、反転されるべき行列は、高調波バランス・シミュレータで用いられるものよりも本質的に小さい。その変調情報は、すべての周波数成分について同時に解かなければならない通常の高調波バランス方法の方程式のように、別々のトーンとして表す必要がない。典型的に、包絡線シミュレーションには搬送波、局部発振器、無線周波数および中間周波数、さらに重要な相互変調の周波数および高調波が含まれなければならない。その変調情報は、典型的に、時間変化するベースバンド波形または包絡線として現れる。
【００４４】
本発明による包絡線シミュレータが動作する全般的な方法を説明したが、ここでさらに詳しく本発明の実施例を説明する。以下の説明を分かりやすくするために、本発明を実現するために従来の高調波バランス・シミュレータに付加される、または変更される付加の素子に注目する。高調波バランス・シミュレータの当業者でない場合は、Kundertほかの「Steady-State Methods for Simulating Analog and Microwave Circuits」(Kluwer Academeic Publishers, 1990)を参照されたい。
【００４５】
本発明の好ましい実施例では、キャパシタを有する個々のデバイスは、C dVk/dtの項を計算しなくてもよい。それに代わって標準の電流ベクトルに加えて、電荷ベクトルを利用する。容量性のデバイスは、電荷CVk(tn)へのそれらの寄与を計算するだけでよい。全てのデバイスが電荷と電流を負荷した後に、グローバルなルーチンが電荷の微分を実行する。それから、この付加の電流を標準の電流ベクトルに加える。
【００４６】
非線形キャパシタの場合、次のように表すことができる。
【００４７】
【数１０】
0003894375.tif 000009
および
【００４８】
【数１１】
0003894375.tif 000010
このように、電流ベクトルに電荷を与えるルーチンは、jωkを乗じることによって微分を実行する。この操作はまた計算の高調波バランスの部分について必要とされる。従って上述のように、標準的な高調波バランスの部分のために、さらに後に時間に関して微分されて電流ベクトルに加えられる電荷ベクトルへ電荷を負荷するために、当該ルーチンは乗算を実行する。同様に、ニュートン−ラフソンのヤコビアン行列に必要な導関数は標準的な高調波バランスの部分に加えて、新しい包絡線の部分を有する。
【００４９】
上記の方程式および例は、電圧の関数としての非線形の電流および電荷のみを表している。しかし、シミュレータの変更されたノード解析の構造を使用することによって、電圧か電流のどちらかの関数である非線形流動、電荷、電流および電圧を、同一の一般化された方程式で支持することができる。解析をより詳細に説明するために、Vlach等の「COMPUTER METHODS FOR CIRCUIT ANALYSES AND DESIGN」(Van Nostrand Reinhold, N.Y. 1983)を参照されたい。
【００５０】
ここで全体的な時間領域の計算のフローチャートである図１を参照する。12に示すように、プロセスは線形デバイスを初期化することから始まる。このプロセスについては、図２を参照してさらに詳細に後述する。そして初期の解V(0)は、13に示すように、従来の高調波バランス方法を用いて計算される。また初期の解は、14に示すように「過去のヒストリ(past history)」を初期化するためにも使用される。基本の時間ステップ取りのループが19に示される。各時間ステップについて、シミュレートされる回路の各デバイスに対応するコードは、その電流Ｉおよび15に[J]=[∂I /∂V]で示すヤコビアン行列Ｊへの寄与を計算する。解が収束する場合、17に示すように解を出力し、過去のヒストリを更新する。解が収束しない場合、16に示すように回路のノードの電圧の新しい組を計算し、デバイスは再度その電流およびヤコビアン行列への寄与を計算する。
【００５１】
ここで線形デバイスを初期化するコードのためのより詳細なフローチャートである図２を参照する。30に示すループは、連続するfreq(k)の各々の搬送波周波数について実行される。搬送波を中心とする周波数応答が比較的一定であれば、Hk(f)は31に示すように定常状態の値をモデル化する。Hk(f)が十分に一定かどうか決定するために、32に示すように搬送波周波数を中心とする周波数の数についてHをサンプル取りする。
【００５２】
応答が一定でない場合、周波数応答のFIRまたはIIRのモデルをさがすためにプログラムは続行する。その選択は回路設計者の入力に基づく。プログラムは二者択一的に両方のタイプの適合を試験し、最適である一方を選択することができる。FIRモデルは33ないし34に示すように、逆高速フーリエ変換を用いてHk(f)をモデル化し、一方、IIRモデルは35ないし36に示すように、有理の多項式を使った曲線適合を用いる。プログラムは、回路設計者が与える基準への各モデルの適合をチェックし、39に示すようにモデルの適合が満足されるまで、モデルのオーダーを調整する。Hk(f)について適当な適合が得られると、40に示すようにその値は記憶され、周波数が増やされて次の搬送波周波数になる。
【００５３】
ここで図３を参照する。図３は、図１の15に示すように、デバイスを評価するために用いられるコードについてのより詳細なフローチャートである。各デバイスは、各々の搬送波周波数について３つのタイプの情報を与えるサブルーチンによって表される。初めの２つの量は、第ｋ搬送波周波数についての電流Ikおよび第ｋ搬送波周波数についてデバイスが蓄えるQkを表す複素数値のスカラ―である。非容量性のデバイスの場合、Qkは0である。第３の量は、ニュートン−ラフソン法で用いられるヤコビアン行列Jijへの寄与である。線形デバイスの場合は、行列の対角要素Jkkに対してのみ寄与がある。非線形デバイスの場合は、一般に、対角要素以外のタームがデバイスのコードによって返される。抵抗器、キャパシタ、および搬送波の包絡線上で一定の周波数変化をもつ線形デバイスを、それぞれ51ないし53に示す。これらの寄与は詳しく上述したので、更にここで説明しない。
【００５４】
搬送波の包絡線上で応答が一定でない線形デバイスについての寄与を54に示す。ヤコビアンへの寄与は、デバイスのモデル化において決定される級数展開からの一定のタームである。
【００５５】
非線形デバイスについての寄与を55に示す。一般に寄与は、デバイスの特定の特性に依存する。デバイスが記憶する電流および電圧を計算する方法は当業者に知られているので、ここで詳しく説明しない。本議論の目的のために、55に示すように第ｋ搬送波についての電流I(k)および第ｋ搬送波周波数について蓄えられる電荷Q(k)がサブルーチンによって与えられることはいうまでもない。ヤコビアンへの寄与は、55に示すようにこれらの量の導関数に依存する。
【００５６】
所与のノードに接続される全てのデバイスが全ての搬送波周波数について寄与を返すとき、電流は56に示すように各々のデバイスから合計される電荷の導関数によって増加する。56に示すSQkは、ノードに接続される各デバイスが第ｋ搬送波について与えるQkの合計であることに留意すべきである。同様に、SIkは各デバイスが第ｋ搬送波について与える電流の合計である。
【００５７】
上述では、抵抗およびキャパシタのように電圧の関数として電流を供給するデバイスを強調した。当業者であれば、本発明の教示が、変更されたノード解析による電流の関数として電圧を供給するインダクタやその他のデバイスにまで広げられることは明らかであろう。このような解析は先行技術でよく知られており、上述のものに加えて解かれる新たな方程式についてここで詳しく説明しない。
【００５８】
本発明の上述の実施例ではノードの方程式を解くためにニュートン−ラフソン法を用いたが、当業者であればノードの方程式を解くその他の方法も本発明の教示から外れることなく使用することができることは明らかであろう。例えば、様々なノード電圧に関する電流の導関数の計算を必要としない「焼き戻し(annealing)」技法を用いてノードの方程式を解くことができる。
【００５９】
本発明は例として次の実施態様を含む。
１．各々が１つまたは複数のデバイスに接続される複数のノードによって表される回路において、それぞれの上記デバイスが１つのコンピュータのルーチンに対応し、上記ノードが上記ルーチンに与えられる一組の電圧に保たれるとき、上記ルーチンが対応するデバイスが供給する電流を与える、デジタル・コンピューターを使用して刺激信号に対する上記回路の応答をシミュレートする方法であって、上記刺激信号v(t)を、
【数１２】
0003894375.tif 000011
ここでVk(t)は時間変化する電圧
K≧0
によって近似するステップを含む上記方法。
【００６０】
２．容量Cをもつキャパシタに対応する上記コンピュータのルーチンが、上記ノード電圧の組に応じてK個の電流値を与え、k番目の上記電流が、
【数１３】
0003894375.tif 000012
で与えられる、上記１の方法。
【００６１】
３．容量Cをもつキャパシタに対応する上記コンピュータのルーチンが、上記ノード電圧の組に応じてK個の電流値を与え、k番目の上記電流が、
【数１４】
Ik=jωkCVk(t)
で与えられ、さらに上記コンピュータ・ルーチンがK個の電荷値を与え、k番目の電荷値が、
【数１５】
Qk=CVk(t)
で与えられ、上記方法がさらに、
Kのそれぞれの値に対応する合計の電荷を得るために、上記コンピュータのルーチンが与える値Qkを合計するステップと、
上記合計の電荷の時間変化の速度の近似を計算するステップと、
を含む、上記１の方法。
【００６２】
４．時間Tの上記回路の動作をシミュレートしているとき、それぞれの上記コンピュータのルーチンが第１および第２の電流を供給し、
上記回路が、
【数１６】
0003894375.tif 000013
で与えられる振幅もつ定常状態の刺激信号に関係しているとき、上記第１の電流は上記対応するデバイスが供給する電流に対応し、上記第２の電流はk=0からKについて上記Vk(t)によって決定される時間依存をもつ、上記１の方法。
【００６３】
５．上記デバイスの１つが畳込みの線形デバイスであり、有限のインパルス応答(Finite Impulse Response)または無限のインパルス応答(Infinite Impulse Response)のいずれかである上記畳込みの線形デバイスの応答を近似するステップを含む、上記１の方法。
【００６４】
【発明の効果】
本発明によれば、刺激信号に対する電子回路の応答のシミュレーションにおいて、変調包絡線を用いることによって、必要となる時間ステップの数を減らすことができる。
【図面の簡単な説明】
【図１】本発明によるシミュレータによって実行される全ての時間領域の計算のフローチャートである。
【図２】線形デバイスを初期化するコードのためのさらに詳細なフローチャートである。
【図３】図１で示すようにデバイスを評価するために使用されるコードのためのより詳細なフローチャートである。
【図１】
0003894375.tif 000019
【図２】
0003894375.tif 000020
【図３】
0003894375.tif 000021