summaryrefslogtreecommitdiffstatshomepage
path: root/nl_examples/opamp.c
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2015-06-07 02:16:19 +0200
committer couriersud <couriersud@arcor.de>2015-06-07 02:16:55 +0200
commit3db351f5c914a4b904fd03dd3c376e14666579f0 (patch)
treef89fb8a80fa81dd9481917b339c4f5756b7dccdd /nl_examples/opamp.c
parent5107c16ca6a4a05e8755c935d9b0ba23f5f4499a (diff)
Added kidniki sound board netlist to nl_examples. Currently the netlist
boils down to a 87x87 matrix. This is due to a total of 6 opamps which all are submodels and thus add their own internal nets. Gauss Seidel iterative solving comes to it's limits. nltool runs this at about 50% speed on my machine. Given the complexity this is quite good. Yet, any m62 game currently will not be playable. Time for a new cpu :-) [Andrew Gardner, Couriersud]
Diffstat (limited to 'nl_examples/opamp.c')
-rw-r--r--nl_examples/opamp.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/nl_examples/opamp.c b/nl_examples/opamp.c
index 0073ddb35b0..01db8fb4383 100644
--- a/nl_examples/opamp.c
+++ b/nl_examples/opamp.c
@@ -16,14 +16,20 @@ NETLIST_START(main)
//PARAM(Solver.CONVERG, 1.0)
//PARAM(Solver.GS_LOOPS, 30)
+ // Tie up +5 to opamps thought it's not currently needed
+ // Stay compatible
+ ANALOG_INPUT(V5, 5)
+ NET_C(op.VCC, V5)
+ NET_C(op1.VCC, V5)
+
/* Opamp wired as impedance changer */
- SUBMODEL(op, opamp)
+ SUBMODEL(opamp, op)
NET_C(op.GND, GND)
NET_C(op.PLUS, clk)
NET_C(op.MINUS, op.OUT)
- SUBMODEL(op1, opamp)
+ SUBMODEL(opamp, op1)
/* Wired as inverting amplifier connected to output of first opamp */
RES(R1, 100000)
@@ -41,7 +47,7 @@ NETLIST_START(main)
NET_C(RL.2, GND)
NET_C(RL.1, op1.OUT)
- LOG(logX, op1.OUT)
+ //LOG(logX, op1.OUT)
//LOG(logY, clk)
NETLIST_END()
@@ -62,6 +68,8 @@ NETLIST_START(opamp)
ALIAS(OUT, EBUF.OP) // Opamp output ...
ALIAS(GND, EBUF.ON) // GND terminal
+ ALIAS(VCC, DUMMY.I) // VCC terminal
+ DUMMY_INPUT(DUMMY)
/* The opamp model */