はじめに
通常、アンプのシミュレーション・モデルは、抵抗、コンデンサ、トランジスタ、ダイオード、従属電源および独立電圧・電流源、その他のアナログ部品で構成されます。その他の方法として、アンプ挙動の二次近似(ラプラス変換)があり、シミュレーションの速度が向上するとともに、シミュレーション・コードを3行程度に減らします。
しかし、広帯域アンプの場合、s領域伝達関数を使用する時間領域シミュレーションでは、シミュレータが逆変換を計算してから入力信号で畳み込み積分(convolution)をしなければならないため、かなり低速になってしまう可能性があります。帯域が高くなれば、時間領域関数を決定するために必要なサンプリング周波数も高くなります。このために畳み込み計算がますます困難となり、結果として時間領域シミュレーションの速度が遅くなります。
本稿では、特に高帯域のアンプの高速の時間領域シミュレーションを実現するために、s領域伝達関数ではなくアナログ・フィルタの二次の近似を合成することによってシミュレーションを改良する方法について述べます。
二次伝達関数
二次伝達関数は、Sallen-Keyフィルタまたはマルチフィードバック(MFB)フィルタ構成によって実現できます。Sallen-Keyフィルタには2個の抵抗、2個のコンデンサ、アンプ・シミュレーション・モデル用の電圧制御電流源が必要です。MFBフィルタの場合は3個の抵抗、2個のコンデンサ、電圧制御電流源が必要になります。どちらの回路構成を使用しても同じ結果が得られますが、Sallen-Key回路の方が設計は容易です。これに対しMFB回路は高周波応答に優れており、抵抗値を比較的容易に変更できるため可変ゲインのアンプに適しています。
まず、次に示す標準的な二次近似式を使用して、アンプの周波数と過渡応答をモデル化します。

Sallen-Key回路とマルチフィードバック回路への変換を図1に示します。

アンプの非減衰周波数ωnはフィルタのコーナー周波数ωc に等しく、アンプの減衰率ζはフィルタの品質係数Qの逆数の½に等しい値を取ります。2極のフィルタの場合、Qはjω軸から極への半径方向距離を表し、Qの値が大きいほど極がjω軸に近いことを示しています。アンプの場合、減衰率が大きいほどピーキングは小さくなります。これらの関係は、s 領域(s=jω)伝達関数とアナログ・フィルタ回路間の便利な等価性を示しています。

設計の例:ゲイン5倍のアンプ
このシミュレーション・モデルの設計は3つのステップで行われます。最初のステップでアンプのオーバーシュート(Mp)とセトリング時間(ts)を測定します。第2のステップではこれらの測定値を使用してアンプの伝達関数の二次近似を計算し、第3のステップで伝達関数をアナログ・フィルタ回路に変換して、アンプのSPICEモデルを作成します。

一例として、Sallen-Key回路とMFB回路の両方を使用してゲイン5倍のアンプをシミュレートしてみましょう。図2によると、オーバーシュート(Mp)は約22%で、2%以内までのセトリング時間は約2.18μsです。減衰率ζは、次式より計算します。

この式からζを求める式が得られます。

次に、セトリング時間を使用して非減衰周波数(rad/s)を計算します。

ステップ入力の場合、伝達関数の分母に含まれるs2項とs 項(単位:rad/s)は、次式から求めることができます。

および

以上から、ユニティ・ゲインの伝達関数は次のようになります。

ゲイン5倍のアンプにおける最終的な伝達関数は、このステップ関数に5を乗じることによって得られます。

下に示すネットリストは、ゲイン5倍のアンプの伝達関数のラプラス変換をシミュレートします。フィルタ回路への変換を行う前にシミュレーションを行ってラプラス変換を確認し、必要な場合は、セトリング時間を増減させて帯域幅を調整することをお勧めします。
***GAIN_OF_5 TRANSFER FUNCTION***
.SUBCKT SECOND_ORDER +IN –IN OUT
E1 OUT 0 LAPLACE {V(+IN) – V(–IN)} = {89.371E12 / (S^2 + 3.670E6*S + 17.874E12)}
.END
時間領域でのシミュレーションの結果を図3に示します。図4は、周波数領域でのシミュレーション結果です。


パルス応答にピーキングがある場合は、帯域幅を修正するためにセトリング時間を変化させながら、容易に減衰率を一定に保つことができます。これは、図5に示すように、実軸に対する複素共役極ペアの角度を減衰率のarccosineに等しい量だけ変化させます。セトリング時間を減少させると帯域幅が増加し、セトリング時間を増加させると帯域幅が減少します。図6に示すように、調整はセトリング時間についてのみ行います。減衰率が一定に保たれている限り、ピーキングとゲインは影響を受けません。


伝達関数が実際のアンプの特性と一致すれば、フィルタ回路への変換を行うことができます。この例では、Sallen-Key回路とMFB回路の両方を使用します。
最初に、ユニティ・ゲインのSallen-Key回路の標準形を使用して、伝達関数を抵抗とコンデンサの値に変換します。

このs項から、C1は次式を使って求めることができます。

R1とR2には10kΩのような計算しやすい抵抗値を選び、C1を計算します。

C2を求めるには、コーナー周波数の関係式を使用します。

これにより得られるネットリストを下に示します。図7はSallen-Key回路です。E1はゲイン5倍を得るためにステップ関数に倍数を乗じ、R0 は2Ωの出力インピーダンスを提供します。G1はゲイン120dBのVCCS、E2は差動入力ブロックです。ゲイン対周波数のシミュレーションは、ラプラス変換を使用するシミュレーションと同じでした。
.SUBCKT SALLEN_KEY +IN –IN OUT
R1 1 4 10E3
R2 5 1 10E3
C2 5 0 10.27E–12
C1 2 1 54.5E–12
G1 0 2 5 2 1E6
E2 4 0 +IN –IN 1
E1 3 0 2 0 5
RO OUT 3 2
.END

次に、MFB回路の標準形を使用して伝達関数を抵抗とコンデンサの値に変換します。

まず、R2を計算して変換を開始します。この計算のために、伝達関数をもっと一般的な形に書き換えることができます。

C1=10nFに設定します。次に、下のルートの中の値が正になるようにC2を選択します。計算をしやすくするために、C2は10pFとしました。各変数に既知の値を代入し、C2=10pF、a1=3.67E6、K=5、a0=17.86E12とすると、R2 の値が得られます。

R1は、R2/K=R2/5= 33として容易に求めることができます。また、R3は標準多項式係数から求めます。a0、R2、C2に既知の値を代入すると、次のようになります。

最後に、各部品の比率が正しいことを確認します。a0、R2、R3、ゲインK、およびC2に既知の値を代入したときに(s項の)C1が10nFにならなければなりません。

以上で各部品の値が得られたので、それらを各式に代入し直して、多項式係数が数学的に正しいことを確認します。この確認には、スプレッドシートを使用すると簡単に計算できます。ここに示した各部品の値が、最終的なSPICEモデルに使用するための実用的な値になります。実際のモデルを作成するときは、コンデンサの最小値が10pFを下回らないようにしてください。
ゲイン5倍のアンプのネットリストを下に示します。図8はそのモデルを示したものです。G1は、開ループゲインが120dBのVCCS(Voltage-Controlled Current Source:電圧制御電流源)です。部品数は、トランジスタ、コンデンサ、ダイオード、それに従属電源を使用する場合よりもずっと少なくなります。
.SUBCKT MFB +IN –IN OUT
***VCCS – 120 dB OPEN_LOOP_GAIN***
G1 0 7 0 6 1E6
R1 4 3 330
R3 6 4 34K
C2 7 6 1P
C1 0 4 1N
R2 7 4 1.65K
E2 3 0 +IN –IN 1
E1 9 0 7 0 –1
***OUTPUT_IMPEDANCE RO = 2 Ω***
RO OUT 9 2
.END

設計の例:ゲイン10倍のアンプ
もうひとつの例として、図9に示すような、オーバーシュートのないゲイン10倍のアンプのパルス応答を考えてみましょう。セトリング時間は約7μs です。オーバーシュートがないため、パルス応答はζ≈ 0.935(Mp=0.025%)の臨界減衰として近似できます。

オーバーシュートがない場合は、セトリング時間を一定に保ち、減衰率を調整して正しい帯域幅とピーキングをシミュレートする方法が便利です。図10は、セトリング時間を一定に保ったときに、減衰率の変化に伴って極がどのように移動するかを示したものです。また、図11は周波数応答の変化を示したグラフです。


***AD8208 PREAMPLIFIER_TRANSFER_FUNCTION (GAIN = 20 dB)***
.SUBCKT PREAMPLIFIER_GAIN_10 +IN –IN OUT
E1 OUT 0 LAPLACE {V(+IN)–V(–IN)} = {3.734E12 / (S^2 + 1.143E6*S + 373.379E9)}
.END
ユニティ・ゲインのSallen-Key回路の抵抗とコンデンサの値を求めるために、前述の例と同じようにR1=R2=10kΩとします。ゲイン5倍のアンプの例と同じ方法で、コンデンサの値を計算します。

ネットリストを下に示します。図12はSallen-Keyシミュレーション回路モデルを示しています。ゲイン10倍のブロックE2は、2Ωの出力インピーダンスとともに出力段に置かれています。E2はユニティ・ゲインの伝達関数に10を乗じます。図13に示すように、ラプラス・ネットリストからもSallen-Keyネットリストからも同じシミュレーション結果が得られました。
***AD8208 PREAMPLIFIER_TRANSFER_FUNCTION (GAIN = 20 dB)***
.SUBCKT AMPLIFIER_GAIN_10_SALLEN_KEY +IN –IN OUT
R1 1 4 10E3
R2 5 1 10E3
C2 5 0 153E–12
C1 2 1 175E–12
G1 0 2 5 2 1E6
E2 4 0 +IN –IN 10
E1 3 0 2 0 1
RO OUT 3 2
.END


MFB回路でも同様の結果を得ることができます。ネットリストを下に示します。図14はシミュレーション・モデルです。
***AD8208 PREAMPLIFIER_TRANSFER_FUNCTION (GAIN = 20 dB)***
.SUBCKT 8208_MFB +IN –IN OUT
***G1 = VCCS WITH 120 dB OPEN_LOOP_GAIN***
G1 0 7 0 6 1E6
R1 4 3 994.7
R2 7 4 9.95K
R3 6 4 26.93K
C1 0 4 1N
C2 7 6 10P
EIN_STAGE 3 0 +IN –IN 1
***E2 = OUTPUT BUFFER***
E2 9 0 7 0 1
***OUTPUT RESISTANCE = 2 Ω***
RO OUT 9 2
.END

結論
アナログ部品で構成したSPICEモデルを使用すれば、s領域(ラプラス変換)伝達関数を使用したモデルと比較して、高帯域アンプの時間領域シミュレーションをはるかに高速で行うことができます。また、Sallen-KeyとMFBローパス・フィルタの回路構成を使用すれば、s領域伝達関数を抵抗、コンデンサ、電圧制御電流源に変換することができます。
MFB回路が理想的な動作をしないのは、抵抗R1、R2、R3のインピーダンスに対して高い周波数域でC1とC2が短絡経路として動作してしまうためです。同様に、Sallen-Key回路が理想的な動作をしないのは、抵抗R1とR2のインピーダンスに対して高い周波数域でC1とC2が短絡経路として動作してしまうためです。これら2つの回路構成の比較を図15に示します。
図16に示すように、CMRR、PSRR、オフセット電圧、電源電流、スペクトル・ノイズ、入出力制限、その他のパラメータによく使われる既存の回路とこのモデルを組み合わせることができます。


参考資料
Karpaty, David. “Create Spice Amplifier Models Using Second-Order Approximations.” Electronic Design, September 22, 2010.