agentee

Simulazione

Simulazione del circuito

Esegui la parte analogica di uno schema dal suo netlist: punto di lavoro, AC, transitorio e rumore, con operazionali e diodi modellati dai loro datasheet e verifiche sui risultati.

Una simulazione di circuito esegue il lato analogico di uno schema direttamente dal suo netlist: il punto di lavoro ogni volta, e una scansione AC, un transitorio e un'analisi del rumore quando la specifica lo richiede. Non serve un layout, quindi risponde alle domande che decidono lo schema: il bias sta dove dovrebbe, qual è il guadagno a 1 kHz, dove l'uscita satura, quanto è forte il fruscio.

Avviane uno

agentee new sim preamp-ac --kind circuit

L'esempio preamp esegue un preamp a operazionale a 9 V attraverso ogni analisi. Questa è la sua esecuzione AC e rumore, ridotta:

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

L'esecuzione scrive preamp-ac.result.json accanto alla specifica, con il punto di lavoro di ogni net, la corrente attraverso ogni componente, ogni verifica e il suo valore, e le curve dei net registrati. Il visualizzatore e render tracciano il guadagno, la fase e il rumore.

Driver

Solo un driver alimenta un net, quindi dai a ogni alimentazione uno. Un driver è una sorgente di tensione a massa, o al net in return, con resistance in serie. current = true lo rende una sorgente di corrente, che è come il preamp preleva la corrente di quiescenza dell'operazionale dal suo rail. ac marca l'input delle analisi AC e rumore. Per il transitorio, un driver accetta steps (lineare a tratti), un pulse o un sine.

La massa è ogni net chiamato GND, 0V, GROUND o che inizia con VSS.

Analisi

  • Punto di lavoro: sempre. Iterazione di Newton con limitazione di giunzione, poi gmin stepping, poi source stepping quando non si stabilizza.
  • AC: [ac] scansiona da from a to con points per decennio, linearizzato al punto di lavoro. I guadagni sono in dB rispetto al driver ac.
  • Transitorio: [tran] esegue fino a stop con step come passo massimo. Salva anche lo spettro di ogni net registrato sulla sua seconda metà.
  • Rumore: [noise] dà la densità a output e, con input, la curva riferita all'input, più il RMS sulla banda. I resistori, le correnti di giunzione, i canali dei MOSFET e l'en dell'operazionale contribuiscono tutti.

Verifiche

Una verifica legge un numero e lo tiene tra min e max. Cosa legge dipende da at:

verificalegge
v = "NET"la tensione al punto di lavoro
v = "NET", at = "5ms"la tensione nel transitorio
v = "NET", at = "1kHz"il guadagno AC in dB
phase = "NET", at = "1kHz"la fase in gradi
noise = "NET", at = "1kHz"la densità di rumore in V/rtHz
i = "R1"la corrente attraverso un componente a due pin, dal pin 1 al pin 2
peak, trough, rms, freq, thdil transitorio tra from e to

Una verifica che fallisce è un errore sulla simulazione. Alza la verifica a 1 kHz sopra a min = 19 e l'esecuzione fallisce, e agentee check la segnala come errore finché quel risultato è attuale:

error: ./preamp-ac.sim.toml: preamp-ac result: v(OUT) at 1kHz is 18.7870 dB, wanted 19 to 19.3 dB

Il risultato diventa obsoleto quando la specifica o il netlist dello schema cambia: la verifica lo segnala come obsoleto e rimuove i suoi fallimenti finché la simulazione non viene eseguita di nuovo, quindi riesegui la simulazione dopo ogni modifica al circuito. Inizia un intervallo thd o freq dopo che il circuito si è stabilizzato, altrimenti il passo di avvio viene letto come distorsione.

I modelli vengono dalla scheda tecnica

Ogni componente diventa un elemento per la sua lettera di riferimento: R, C e L per valore, D come diodo, Q come BJT o MOSFET per i nomi dei suoi pin. I connettori, i punti di test, i fori e i cristalli sono esclusi, e tutto il resto è un errore finché non ha un blocco o non sta in ignore.

I dispositivi integrati sono generici: un diodo al silicio, un BJT per piccoli segnali, un MOSFET a livello logico. Un risultato che si basa su uno di questi descrive il dispositivo generico, non il tuo componente. Dai a ogni componente importante una voce [[blocks]] con i valori dal datasheet:

  • I amplificatori operazionali sono un polo con gain, gbw, rout, vos, en, ib, slew, psrr e un clamp liscio headroom lontano da ogni rail. Ogni unità di un op-amp dual o quad è un op-amp separato su rail condivisi.
  • I diodi prendono is e n. Adattali a due punti tipici di VF a un decennio di corrente di distanza: n = dV / (Vt ln 10), poi is = I / exp(V / (n Vt)).
  • I BJT e i MOSFET prendono is, bf, va o vth, k, lambda e le loro capacità.
  • I LDO mantengono vout finché l'ingresso non si avvicina al dropout, poi lo seguono verso il basso.
  • I potenziometri prendono una position da 0 a 1, così il cursore carica e viene caricato come il componente reale.

Metti il datasheet e la tabella da cui è venuto ogni valore nella description della simulazione. La prossima persona che leggerà il risultato, spesso l'agente, saprà su cosa si basa.

Esempi

  • examples/preamp: il punto di lavoro, il guadagno e il rumore di uno stadio di guadagno e un filtro Sallen-Key su un LM358, il thump all'accensione, il clipping e il diodo di batteria inversa.
  • examples/ladder-vcf: un filtro a scala di transistor le cui simulazioni verificano il tracking di 1 V/oct a tre CV, il picco di risonanza e l'auto-oscillazione in un transiente.
  • examples/lna: lna-supply verifica l'OR-ing di due ingressi di alimentazione attraverso Schottky, e lna-biastee quanta RF il bias tee lascia passare sull'alimentazione.

Ogni chiave è nel riferimento circuito.

Migliora questa guida · Markdown per agenti