summaryrefslogtreecommitdiffstatshomepage
path: root/nl_examples/norton_opamp.c
diff options
context:
space:
mode:
Diffstat (limited to 'nl_examples/norton_opamp.c')
-rw-r--r--nl_examples/norton_opamp.c126
1 files changed, 0 insertions, 126 deletions
diff --git a/nl_examples/norton_opamp.c b/nl_examples/norton_opamp.c
deleted file mode 100644
index 8e077a91df2..00000000000
--- a/nl_examples/norton_opamp.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * opamp.c
- *
- */
-
-
-#include "netlist/devices/net_lib.h"
-
-NETLIST_START(main)
-
- /* Standard stuff */
-
- CLOCK(clk, 10000) // 1000 Hz
- SOLVER(Solver, 48000)
- ANALOG_INPUT(V5, 5)
- PARAM(Solver.ACCURACY, 1e-6)
- PARAM(Solver.DYNAMIC_TS, 0)
- PARAM(Solver.SOR_FACTOR, 1.0)
- //PARAM(Solver.CONVERG, 1.0)
- PARAM(Solver.GS_LOOPS, 5)
-
- SUBMODEL(op1, opamp_fast)
- /* Wired as non - inverting amplifier like in LM3900 datasheet */
-
- RES(R1, 25000)
- RES(R2, 100000)
- RES(R3, 200000)
- CAP(C1, CAP_U(0.05))
-
- NET_C(clk, C1.1)
- NET_C(C1.2, R1.1)
-
- NET_C(op1.VM, GND)
- NET_C(op1.VP, V5 )
- NET_C(op1.PLUS, R1.2, R3.1)
- NET_C(R3.2, V5)
- //NET_C(R3.2, GND)
- NET_C(op1.MINUS, R2.2)
- NET_C(op1.OUT, R2.1)
-
- RES(RL, 10000)
- NET_C(RL.2, GND)
- NET_C(RL.1, op1.OUT)
-
- LOG(logX, op1.OUT)
- LOG(logY, clk)
-NETLIST_END()
-
-NETLIST_START(opamp)
-
- /* Opamp model from
- *
- * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm
- *
- * Bandwidth 10Mhz
- *
- */
-
- /* Terminal definitions for calling netlists */
-
- ALIAS(PLUS, G1.IP) // Positive input
- ALIAS(MINUS, G2.IN) // Negative input
- ALIAS(OUT, EBUF.OP) // Opamp output ...
- ALIAS(VM, EBUF.ON) // V- terminal
- ALIAS(VP, DUMMY.I) // V+ terminal
-
- DUMMY_INPUT(DUMMY)
-
- /* The opamp model */
-
- CCCS(G1)
- CCCS(G2)
- //PARAM(G1.G, 100) // typical OP-AMP amplification 100 * 1000 = 100000
- PARAM(G1.G, 1000000) // typical OP-AMP amplification 100 * 1000 = 100000
- PARAM(G2.G, 1000000) // typical OP-AMP amplification 100 * 1000 = 100000
- RES(RP1, 1000)
- CAP(CP1, 1.59e-6) // <== change to 1.59e-3 for 10Khz bandwidth
- VCVS(EBUF)
- PARAM(EBUF.RO, 50)
- PARAM(EBUF.G, 1)
-
-// NET_C(EBUF.ON, GND)
-
- NET_C(G1.ON, GND)
- NET_C(G2.ON, GND)
- NET_C(RP1.2, GND)
- NET_C(CP1.2, GND)
- NET_C(EBUF.IN, GND)
-
- NET_C(G1.IN, G2.IP, GND)
-
- NET_C(RP1.1, G1.OP)
- NET_C(RP1.1, G2.OP)
- NET_C(CP1.1, RP1.1)
- NET_C(EBUF.IP, RP1.1)
-
-NETLIST_END()
-
-NETLIST_START(opamp_fast)
-
- /*
- * Fast norton opamp model without bandwidth
- */
-
- /* Terminal definitions for calling netlists */
-
- ALIAS(PLUS, R1.1) // Positive input
- ALIAS(MINUS, R2.1) // Negative input
- ALIAS(OUT, G1.OP) // Opamp output ...
- ALIAS(VM, G1.ON) // V- terminal
- ALIAS(VP, DUMMY.I) // V+ terminal
-
- DUMMY_INPUT(DUMMY)
-
- /* The opamp model */
-
- RES(R1, 1)
- RES(R2, 1)
- NET_C(R1.1, G1.IP)
- NET_C(R2.1, G1.IN)
- NET_C(R1.2, R2.2, G1.ON)
- VCVS(G1)
- PARAM(G1.G, 1000000)
- PARAM(G1.RO, RES_K(8))
-
-NETLIST_END()