agentee

シミュレーション

回路シミュレーション

回路図のネットリストからアナログ側をシミュレーションします。動作点、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、thdfromから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の量を確認します。

すべてのキーは回路リファレンスにあります。

このガイドを改善する · エージェント向けMarkdown