summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/examples/opamp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/examples/opamp.c')
-rw-r--r--src/lib/netlist/examples/opamp.c134
1 files changed, 67 insertions, 67 deletions
diff --git a/src/lib/netlist/examples/opamp.c b/src/lib/netlist/examples/opamp.c
index b13d92dab67..b3730b29b51 100644
--- a/src/lib/netlist/examples/opamp.c
+++ b/src/lib/netlist/examples/opamp.c
@@ -10,91 +10,91 @@
NETLIST_START(main)
- /* Standard stuff */
+ /* Standard stuff */
- CLOCK(clk, 1000) // 1000 Hz
- SOLVER(Solver, 480000)
- PARAM(Solver.ACCURACY, 1e-10)
- PARAM(Solver.NR_LOOPS, 30000 )
- //PARAM(Solver.CONVERG, 1.0)
- PARAM(Solver.GS_LOOPS, 30)
+ CLOCK(clk, 1000) // 1000 Hz
+ SOLVER(Solver, 480000)
+ PARAM(Solver.ACCURACY, 1e-10)
+ PARAM(Solver.NR_LOOPS, 30000 )
+ //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)
+ // 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(opamp, op)
+ /* Opamp wired as impedance changer */
+ SUBMODEL(opamp, op)
- NET_C(op.GND, GND)
- NET_C(op.PLUS, clk)
- NET_C(op.MINUS, op.OUT)
+ NET_C(op.GND, GND)
+ NET_C(op.PLUS, clk)
+ NET_C(op.MINUS, op.OUT)
- SUBMODEL(opamp, op1)
- /* Wired as inverting amplifier connected to output of first opamp */
+ SUBMODEL(opamp, op1)
+ /* Wired as inverting amplifier connected to output of first opamp */
- RES(R1, 100000)
- RES(R2, 200000)
+ RES(R1, 100000)
+ RES(R2, 200000)
- NET_C(op1.GND, GND)
- NET_C(op1.PLUS, GND)
- NET_C(op1.MINUS, R2.2)
- NET_C(op1.MINUS, R1.2)
+ NET_C(op1.GND, GND)
+ NET_C(op1.PLUS, GND)
+ NET_C(op1.MINUS, R2.2)
+ NET_C(op1.MINUS, R1.2)
- NET_C(op.OUT, R1.1)
- NET_C(op1.OUT, R2.1)
+ NET_C(op.OUT, R1.1)
+ NET_C(op1.OUT, R2.1)
- RES(RL, 1000)
- NET_C(RL.2, GND)
- NET_C(RL.1, op1.OUT)
+ RES(RL, 1000)
+ NET_C(RL.2, GND)
+ NET_C(RL.1, op1.OUT)
- LOG(log_X, op1.OUT)
- LOG(log_Y, clk)
+ LOG(log_X, op1.OUT)
+ LOG(log_Y, clk)
NETLIST_END()
NETLIST_START(opamp)
- /* Opamp model from
- *
- * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm
- *
- * Bandwidth 10Mhz
- *
- */
+ /* Opamp model from
+ *
+ * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm
+ *
+ * Bandwidth 10Mhz
+ *
+ */
- /* Terminal definitions for calling netlists */
+ /* Terminal definitions for calling netlists */
- ALIAS(PLUS, G1.IP) // Positive input
- ALIAS(MINUS, G1.IN) // Negative input
- ALIAS(OUT, EBUF.OP) // Opamp output ...
+ ALIAS(PLUS, G1.IP) // Positive input
+ ALIAS(MINUS, G1.IN) // Negative input
+ ALIAS(OUT, EBUF.OP) // Opamp output ...
- ALIAS(GND, EBUF.ON) // GND terminal
- ALIAS(VCC, DUMMY.I) // VCC terminal
- DUMMY_INPUT(DUMMY)
+ ALIAS(GND, EBUF.ON) // GND terminal
+ ALIAS(VCC, DUMMY.I) // VCC terminal
+ DUMMY_INPUT(DUMMY)
- /* The opamp model */
+ /* The opamp model */
- LVCCS(G1)
- PARAM(G1.G, 0.0021)
+ LVCCS(G1)
+ PARAM(G1.G, 0.0021)
PARAM(G1.CURLIM, 0.002)
- RES(RP1, 1e7)
- CAP(CP1, 0.00333e-6)
- VCVS(EBUF)
- PARAM(EBUF.RO, 50)
- PARAM(EBUF.G, 1)
+ RES(RP1, 1e7)
+ CAP(CP1, 0.00333e-6)
+ VCVS(EBUF)
+ PARAM(EBUF.RO, 50)
+ PARAM(EBUF.G, 1)
// NET_C(EBUF.ON, GND)
- NET_C(G1.ON, GND)
- NET_C(RP1.2, GND)
- NET_C(CP1.2, GND)
- NET_C(EBUF.IN, GND)
+ NET_C(G1.ON, GND)
+ NET_C(RP1.2, GND)
+ NET_C(CP1.2, GND)
+ NET_C(EBUF.IN, GND)
- NET_C(RP1.1, G1.OP)
- NET_C(CP1.1, RP1.1)
- NET_C(EBUF.IP, RP1.1)
+ NET_C(RP1.1, G1.OP)
+ NET_C(CP1.1, RP1.1)
+ NET_C(EBUF.IP, RP1.1)
NETLIST_END()
@@ -110,12 +110,12 @@ NETLIST_START(opamp_mod)
*
* Simple Opamp Model Calculation
*
- * First Pole Frequency 5 Hz
- * Unity Gain Frequency 11,000 Hz
- * RP 100,000 Ohm
- * DC Gain / Aol 2200
- * CP 0.318 uF
- * KG 0.022
+ * First Pole Frequency 5 Hz
+ * Unity Gain Frequency 11,000 Hz
+ * RP 100,000 Ohm
+ * DC Gain / Aol 2200
+ * CP 0.318 uF
+ * KG 0.022
*
*/