findUnboundedOpamps
findUnboundedOpamps(
netlist): readonlyUnboundedOpampWarning[]
Defined in: packages/compiler/src/unbounded-operating-point.ts:51
An op-amp with no DC-conducting path from its output back to its inverting input has no feedback at DC. Its inverting node is then set by the input network alone, and unless that network happens to hold it at exactly the non-inverting potential there is a standing differential which the op-amp integrates through its capacitive feedback without bound. A real one winds up too and then sits at a rail; the runtime’s linearisation does not, which is the defect that entry records.
Three exclusions carry the whole result, and each removes a class this would otherwise be wrong about:
- Rails are not routes. Ground and every node a voltage source touches are excluded,
the same exclusion
switchesClosedForPortPathmakes: a path reaching the input through a fixed potential does not let the output influence it, so it is not feedback. - No op-amp is a conductor. Its inputs draw no current — the whole reason
gminexists — so linking its terminals invents a path through the device. Leaving this out made the first version find a route fromibanez-pql’sU3Aoutput back to its own inverting input through two other op-amps, and miss the one packet it was built for. - Off the signal path does not count. An LFO integrator is supposed to run away and
be reset by its comparator, and a comparator is open-loop by design. Both have no DC
feedback and neither is a defect. Asking whether audio actually passes through the
op-amp separates them by connectivity rather than by intent, and it does the heavy
lifting: 38 of 51 corpus op-amps with no DC feedback are off the signal path,
including
electro-harmonix-q-tron’s overload comparator and eight inmoogerfooger-mf-102.
What survives is 13 op-amps across 7 packets. The claim is deliberately weaker than
“this will diverge”: only two of those seven compile today, and while ibanez-pql is the
corpus’s only diverging packet, boss-mt-2 is flagged and solves perfectly well. So the
warning reports the structural fact — nothing pins this operating point — and does not
predict the outcome.
Parameters
Section titled “Parameters”netlist
Section titled “netlist”Returns
Section titled “Returns”readonly UnboundedOpampWarning[]