シミュレーション
回路シミュレーション
回路図のネットリストのアナログシミュレーション。動作点、AC、過渡、ノイズを実行し、オペアンプ、LDO、デバイスブロックとチェックを含みます。
回路図のネットリストから直接行うアナログシミュレーションです。動作点は常に計算され、要求があればACスウィープ、過渡解析、ノイズ解析を行います。ソルバーはニュートン反復(収束しない場合はジャンクション制限、次にgminステップ、次にソースステップ)付きの修正節点解析、各ブレークポイント後の台形積分と後方オイラー法、ニュートン法が失敗した際のステップ半減、動作点での複素AC、および双対法によるノイズ解析です。agentee new sim NAME --kind circuit(MCP new_item で sim_kind = "circuit")はスターターを書き出します。agentee sim NAME は NAME.result.json を書き出します。ビューアは過渡、ゲイン、位相、ノイズをプロットし、動作点とチェックを横に表示します。agentee render NAME は同じ内容をヘッドレスで描画します。
name = "lna-supply"
kind = "circuit"
schematic = "lna" # default: the only top-level schematic
ignore = ["D3"] # parts to leave out
record = ["VCC", "LED_A"] # nets in the curves, default every net
# temperature = 27 # deg C, for the noise and the junctions
[[drives]] # only drives drive a net: give every supply one
net = "VEXT"
dc = "5V"
# return = "VNEG" # default ground
# current = true # a current source into `net`, in A
# ac = 1 # the AC and noise input, in V (or A)
# resistance = "50ohm" # in series (in parallel for a current source)
steps = [["0s", "0V"], ["1ms", "0V"], ["2ms", "5V"]] # piecewise linear, for the transient
# pulse = { low = "0V", high = "5V", delay = "1ms", rise = "1us", fall = "1us", width = "1ms", period = "2ms" }
# sine = { offset = "0V", amplitude = "1V", frequency = "1kHz", delay = "0s" }
[ac]
from = "10Hz"
to = "10MHz"
points = 20 # per decade
[tran]
stop = "10ms"
step = "10us" # the largest step
[noise]
output = "OUT"
input = "VIN" # a drive with `ac`: adds the input referred curve
from = "10Hz"
to = "100kHz"
[[checks]]
v = "VCC" # a net voltage at the operating point
min = 4.55
max = 4.85
[[checks]]
i = "R1" # the current through a two-pin part, pin 1 to pin 2
at = "5ms" # a time reads the transient
min = "2mA"
[[checks]]
v = "OUT"
at = "1kHz" # a frequency reads the AC gain in dB against the ac drive
min = 19.5
# phase = "OUT" # degrees at a frequency
# noise = "OUT" # V/rtHz at a frequency, at the [noise] output
[[checks]]
thd = "OUT" # over the transient: peak, trough, rms, freq or thd
from = "2ms" # the span read, default the whole transient
# to = "10ms"
max = "1%"
# peak = "OUT" # highest voltage in the span; trough is the lowest
# rms = "OUT" # RMS about the span's mean, V
# freq = "OUT" # from the rising crossings of the mean, Hz
[[blocks]] # a model for a part, by `ref` or by `value` (every such part)
ref = "U1"
kind = "opamp"
gain = 1e5
gbw = "1MHz"
# rout = "10ohm"
# vos = "0V"
# en = "10n" # input voltage noise, V/rtHz
# headroom = "0.1V" # how close the output swings to its rails
# headroom_high = "1.5V" # per rail, default `headroom`
# headroom_low = "5mV"
# slew = "0.3V/us" # slew rate, transient only
# ib = "-20nA" # input bias current, into each input pin
# psrr = "100dB" # supply changes about the operating point, referred to the input
# fc = "100Hz" # 1/f corner of `en`
# pins = { inp = "3", inn = "2", out = "1", vcc = "8", vee = "4" }
[[blocks]]
ref = "RV1"
kind = "potentiometer" # pins 1 and 3 are the ends, 2 the wiper
position = 0.25 # 0 puts the wiper at pin 1, 1 at pin 3; default 0.5
# resistance = "10k" # the end to end value, default the part's valuethd は、スパン内の平均値の最初の立ち上がり交差と最後の立ち上がり交差の間の全周期にわたる、基本波に対する2次から10次までの高調波の割合(パーセント)です。freq と thd には、そこに少なくとも1周期必要です。スパンは回路が安定した後に開始してください。そうでないと、立ち上がりステップが歪みとして読み取られます。
過渡解析では、記録された各ネットの後半分のスペクトル(Hann窓、dBV、2048ビンのFFT)も保存され、ビューアで過渡曲線の下部に表示されます。
以下の組み込みデバイスモデルは汎用の代替物(シリコンダイオード、小信号BJT、ロジックレベルMOSFET)であり、回路図上の部品そのものではありません。重要な各部品には、データシートからの値を含むブロックを与え、ダイオードの is と n はその典型的なVFポイント2つに合わせます。電流が1桁異なる2つの点から、n = dV / (Vt ln 10) および is = I / exp(V / (n Vt)) が得られます。デフォルト値に依存する結果は、部品ではなくデフォルト値を説明しています。
値はSI接頭辞と単位を取ります:"4k7"、"100nF"、"1MHz"、"10meg"、または単なる数値。グランドは、GND、0V、GROUND で命名されたネット、または VSS で始まるネットすべてです。ドライブが指定しない限り。何も保持しないネットは、グランドに対して1 pSのコンダクタンスで接続されます。
ネットリストは、シンボルの参照文字によって要素に変換されます:
| 参照 | 要素 |
|---|---|
R | 指定値の抵抗。0オーム、JP、SJ、NT はネットを接続します |
C、L | 指定値のコンデンサ、インダクタ |
FB | ブロックで指定されない限り0.1オーム |
D、LED、DZ | ピン名(A、K)によるダイオード:シリコン(Is 10 fA、n 1)。シンボルまたは値にSchottky、BAT、SS1がある場合はショットキー(10 nA、1.05)。LEDは(1 aA、2)。ゼナダイオードは値からブレークダウン電圧を取得します(BZX84C3V3 は3.3 V)、ニー電流は1 mA |
B、C、E ピンを持つ Q | Ebers-Moll BJT。シンボルまたは値が指定する場合はPNP:Is 10 fA、Bf 100、Br 1 |
G、D、S ピンを持つ Q、M | 滑らかな閾値を持つレベル1 MOSFET。シンボルがPMOSと指定する場合はPチャネル:Vth 1.5 V、k 0.5 A/V^2、lambda 0.01 |
J、P、TP、H、MH、FID、Y、X、SW、BT、T | 除外 |
| その他 | 名前を指定するエラー。ただし、ignore に含まれているか、ブロックがある場合は除く |
ブロックの種類とそのフィールド:
| kind | ピン (デフォルトは名前) | fields |
|---|---|---|
resistor、capacitor、inductor、bead | 1、2 | resistance、capacitance、inductance |
diode、schottky、zener、led | a、k | is、n、bv、cj |
bjt、npn、pnp | c、b、e | is、bf、br、va、cje、cjc |
mosfet、nmos、pmos | d、g、s | vth、k、lambda、cgs、cgd |
opamp | inp (+、IN+)、inn (-、IN-)、out (~、OUT)、vcc (V+、VCC)、vee (V-、VEE) | gain、gbw、rout、vos、en、headroom |
ldo | vin、vout、gnd | vout、dropout、rout、iq |
vcvs、vccs | p、n、cp、cn (すべて指定) | gain (V/V または A/V) |
open | 部品を除外する |
オペアンプは単一極です。伝導度ゲインが gain オームのノードに接続され、gbw でゲインが 1 になるコンデンサがあり、その後、headroom を引いたレール間で滑らかにクランプされるバッファが rout の後ろにあります (両方のレールピンがない場合はクランプなし)。ゲインノードはクランプを少し超えた位置で停止するため、クリップしたオペアンプは、実際のオペアンプと同様に、入力が要求するやいなやレールから戻ります。クランプとその headroom は両方のレールで同じです。3 つの信号ピンを持つマルチユニットオペアンプの各ユニットは、レールピンを共有する独自のオペアンプです。出力は名前で特定され、名前がない場合はユニットの 1 つの出力ピンとして特定されます。1 つのブロックが部品のすべてのユニットをカバーします。同じ ref に対する 2 番目のブロックはエラーです。LDO は、入力が dropout 以内に入るまで vout を gnd 以上に保ち、その後、入力を下げて追従し、入力が出力電流と iq を供給します。
ノイズ源: 抵抗 (4kT/R)、駆動抵抗、ダイオードおよび BJT のコレクタ電流とベース電流 (2qI)、MOSFET チャネル (8kT gm / 3)、オペアンプの en。結果には、出力密度、input が設定されている場合の入力参照密度、およびバンド内の RMS が含まれます。
チェックが失敗すると、結果が最新である間はシミュレーションでエラーになります。仕様または回路図のネットリストが変更されると、結果は古くなります。examples/lna には 2 つがあります。lna-supply は、ショットキーバリアダイオードを介して 5 V 入力を OR して U1 のバイアス電流を供給するものです。lna-biastee は、バイアスティーが出力の RF を VBIAS からどれだけ遮断するかを示します。両方とも、2 つのデータシートから、U1 の 90 mA の定常電流と、BAT60A の典型的な VF を使用します。部品番号がない LED は除外されます。examples/preamp は、すべての解析を実行したオペアンプ設計です。デュアル LM358 上のゲイン段と Sallen-Key フィルターの動作点、ゲイン、ノイズ、ミッドレールバイアスが安定するまでの電源投入時のサージ、クリップ、逆電池ダイオードです。examples/ladder-vcf は BJT ラダーフィルターです。そのシミュレーションは、3 つの CV でのエクスポコンバータの 1 V/oct 追従、共振ピーク、過渡現象での自己振動をチェックします。