シミュレーション
回路シミュレーション
回路図のネットリストからアナログ側をシミュレーションします。動作点、AC、過渡、ノイズを実行し、オペアンプとダイオードはデータシートからモデル化し、結果をチェックします。
回路シミュレーションは、回路図のアナログ側をネットリストから直接実行する: 毎回動作点、そして仕様が要求する場合にACスウィープ、過渡、ノイズ解析。レイアウトは不要であり、回路図を決定する質問に答える: バイアスは正しい位置にあるか、1 kHzでのゲインは何か、出力はどこでクリップするか、ハissはどれほど大きいか。
1つ始める
agentee new sim preamp-ac --kind circuitプリアンプの例は、9 Vオペアンププリアンプをすべての解析で実行する。これがそのACとノイズ実行の抜粋:
name = "preamp-ac"
kind = "circuit"
schematic = "preamp"
record = ["VCC", "VREF", "GAIN_OUT", "FILT_OUT", "OUT"]
[[drives]]
net = "VBAT"
dc = "9V"
[[drives]]
net = "IN"
ac = 1
resistance = "100ohm"
[ac]
from = "1Hz"
to = "1MHz"
points = 20
[noise]
output = "OUT"
input = "IN"
from = "20Hz"
to = "20kHz"
[[checks]]
v = "VREF"
min = 4.1
max = 4.3
[[checks]]
v = "OUT"
at = "1kHz"
min = 18.3
max = 19.3
[[checks]]
noise = "OUT"
at = "1kHz"
max = "500n"
[[blocks]]
ref = "U1"
kind = "opamp"
gain = 1e5
gbw = "0.7MHz"
en = "40n"
vos = "3mV"
headroom_high = "1.5V"
headroom_low = "5mV"agentee sim preamp-ac
agentee render sim:preamp-ac -o preamp-ac.png実行は、仕様の隣にpreamp-ac.result.jsonを書き、すべてのネットの動作点、すべての部品を流れる電流、各チェックとその値、記録されたネットの曲線を含む。ビューアとrenderはゲイン、位相、ノイズをプロットする。
ドライバ
ネットを駆動するのはドライバのみであり、各電源に1つを与える。ドライバはグランドまたはreturnのネットに対する電圧源であり、resistanceを直列に持つ。current = trueは電流源にし、プリアンプがオペアンプの静止電流をレールから取り除く方法である。acはACとノイズ解析の入力を示す。過渡に対して、ドライバはsteps(区間線形)、pulse、またはsineを受け取る。
グランドは、GND、0V、GROUND、またはVSSで始まるすべてのネットである。
解析
- 動作点: 常に。接合部制限付きニュートン反復、次にgminステップ、収束しない場合はソースステップ。
- AC:
[ac]はfromからtoまで、1デケードあたりpoints点でスウィープし、動作点で線形化する。ゲインはacドライバに対するdBで。 - 過渡:
[tran]はstopまで実行し、stepを最大ステップとする。記録されたネットの後半のスペクトルも保存する。 - ノイズ:
[noise]はoutputでの密度を与え、inputがある場合は入力参照曲線、および帯域内のRMSも与える。抵抗、接合部電流、MOSFETチャネル、オペアンプのenがすべて寄与する。
チェック
チェックは1つの数値を読み、minとmaxの間に保持する。読み取るものはatに依存する:
| チェック | 読み取り |
|---|---|
v = "NET" | 動作点での電圧 |
v = "NET"、at = "5ms" | 過渡での電圧 |
v = "NET"、at = "1kHz" | dBでのACゲイン |
phase = "NET"、at = "1kHz" | 度での位相 |
noise = "NET"、at = "1kHz" | V/rtHzでのノイズ密度 |
i = "R1" | 2ピン部品を流れる電流、ピン1からピン2へ |
peak、trough、rms、freq、thd | fromからtoまでの過渡 |
失敗したチェックはシミュレーションでのエラーである。上記の1 kHzチェックをmin = 19に上げると、実行が失敗し、その結果が最新である間、agentee checkはそれをエラーとして報告する:
error: ./preamp-ac.sim.toml: preamp-ac result: v(OUT) at 1kHz is 18.7870 dB, wanted 19 to 19.3 dB結果は、仕様または回路図のネットリストが変わると古くなる: チェックはそれを古いものとして注記し、シミュレーションが再び実行されるまでその失敗を落とすため、回路のすべての変更後にシミュレーションを再実行する。thdまたはfreqのスパンは回路が安定した後に開始し、そうでないと立ち上がりステップが歪みとして読み取られる。
モデルはデータシートから
各部品は参照文字によって要素になる: R、C、Lは値で、Dはダイオード、Qはピン名でBJTまたはMOSFET。コネクタ、テストポイント、穴、水晶は除外され、それ以外はブロックを持つかignoreに入るまでエラーである。
組み込みデバイスは汎用の代替品です。シリコンダイオード、小信号BJT、ロジックレベルMOSFETです。代替品に依存する結果は、代替品を説明しているだけで、お使いの部品を説明していません。重要な各部品に、データシートからの値を含む[[blocks]]エントリを指定してください。
- オペアンプは、
gain、gbw、rout、vos、en、ib、slew、psrr、および各レールから滑らかにクランプするheadroomを持つ単一極です。デュアルやクアッドの各ユニットは、共通レールを持つ独立したオペアンプです。 - ダイオードは
isとnを受け取ります。1桁離れた電流の2つの典型的なVF点に合わせます。n = dV / (Vt ln 10)、次にis = I / exp(V / (n Vt))。 - BJTとMOSFETは
is、bf、vaまたはvth、k、lambda、およびそれらの容量を受け取ります。 - LDOは、入力が
dropoutの範囲内に入るまでvoutを維持し、その後入力を追従して低下させます。 - ポテンショメータは0から1の
positionを受け取ります。これにより、ワイパは実際の部品と同様に負荷を課し、負荷を受けます。
シミュレーションのdescriptionに、データシートと各値の出典となった表を記載してください。結果を読む次の人、多くの場合エージェントが、その結果が何に基づいているかを理解できます。
サンプル
examples/preamp: LM358上のゲイン段とSallen-Keyフィルタの動作点、ゲイン、ノイズ、スイッチオン時の低音、クリップ、逆接続保護ダイオード。examples/ladder-vcf: トランジスタラダーフィルタ。シミュレーションで3つのCVにおける1 V/oct追従、共鳴ピーク、過渡現象での自己振動を確認します。examples/lna:lna-supplyはショットキーダイオードを介した2つの電源入力のOR化を確認し、lna-biasteeはバイアスティが電源に漏れるRFの量を確認します。
すべてのキーは回路リファレンスにあります。