diff options
Diffstat (limited to 'nl_examples/norton_opamp.c')
-rw-r--r-- | nl_examples/norton_opamp.c | 126 |
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() |