From 58b4e89c0c724fba2bea87e32054059bd8b17f66 Mon Sep 17 00:00:00 2001 From: couriersud Date: Fri, 2 Oct 2020 19:32:17 +0200 Subject: netlist: rename more files to lower case. --- src/lib/netlist/examples/2N6027.cpp | 96 ---------------------------- src/lib/netlist/examples/2n6027.cpp | 96 ++++++++++++++++++++++++++++ src/lib/netlist/examples/LM3900_test.cpp | 103 ------------------------------- src/lib/netlist/examples/lm3900_test.cpp | 103 +++++++++++++++++++++++++++++++ 4 files changed, 199 insertions(+), 199 deletions(-) delete mode 100644 src/lib/netlist/examples/2N6027.cpp create mode 100644 src/lib/netlist/examples/2n6027.cpp delete mode 100644 src/lib/netlist/examples/LM3900_test.cpp create mode 100644 src/lib/netlist/examples/lm3900_test.cpp diff --git a/src/lib/netlist/examples/2N6027.cpp b/src/lib/netlist/examples/2N6027.cpp deleted file mode 100644 index bfad3c065ec..00000000000 --- a/src/lib/netlist/examples/2N6027.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// license:CC0 -// copyright-holders:Couriersud - -#include "netlist/devices/net_lib.h" - -/* - * Run with - * ./nltool -t 1 -f nl_examples/2N6027.cpp -l PUT.A -l PUT.K -l PUT.G -v - */ - -/* ---------------------------------------------------------------------------- - * Library section header START - * ---------------------------------------------------------------------------*/ - -#ifndef __PLIB_PREPROCESSOR__ - -#define PUT_2N6027(_name) \ - NET_REGISTER_DEV(G501534_DIP, _name) - -//NETLIST_EXTERNAL(ex2N6027) -NETLIST_EXTERNAL(loc_lib) - -#endif - -/* ---------------------------------------------------------------------------- - * Library section header END - * ---------------------------------------------------------------------------*/ - -NETLIST_START(ex2N6027) - - SOLVER(Solver, 48000) - PARAM(Solver.DYNAMIC_TS, 1) - PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-9) - PARAM(Solver.METHOD, "MAT_CR") - - LOCAL_SOURCE(loc_lib) - INCLUDE(loc_lib) - - ANALOG_INPUT(VB, 10) - - PUT_2N6027(PUT) - - // Figure 3 from datasheet - RES(R1, RES_K(510)) - RES(R2, RES_K(16)) - RES(R3, RES_K(27)) - RES(R4, 20) - CAP(C, CAP_U(0.1)) - - NET_C(VB, R1.1, R2.1) - NET_C(R1.2, C.1, PUT.A) - NET_C(PUT.K, R4.1) - NET_C(PUT.G, R2.2, R3.1) - - NET_C(GND, C.2, R4.2, R3.2) - -NETLIST_END() - - -NETLIST_START(PUT_2N6027) - - NET_MODEL("2N6027_NPN NPN(IS=5E-15 VAF=100 IKF=0.3 ISE=1.85E-12 NE=1.45 RE=0.15 RC=0.15 CJE=7E-10 TF=0.6E-8 CJC=2.2E-10 TR=4.76E-8 XTB=3)") - NET_MODEL("2N6027_PNP PNP(IS=2E-15 VAF=100 IKF=0.3 ISE=1.90E-12 NE=1.5 RE=0.15 RC=0.15 CJE=7E-10 TF=1.6E-8 CJC=2.2E-10 TR=5.1E-8 XTB=3)") - - QBJT_EB(Q1, "2N6027_NPN") - QBJT_EB(Q2, "2N6027_PNP") - - /* The netlist transistor model currently doesn't support - * BE and BC capacitances. - * Adding those here significantly reduces NR loops. - * FIXME: Needs to be removed when added to the - * transistor EB model. - */ -#if 0 - CAP(CJE1, CAP_N(1)) - CAP(CJE2, CAP_N(1)) - - NET_C(CJE1.1, Q1.B) - NET_C(CJE1.2, Q1.E) - NET_C(CJE2.1, Q2.B) - NET_C(CJE2.2, Q2.E) -#endif - NET_C(Q1.C, Q2.B) - NET_C(Q1.B, Q2.C) - - ALIAS(G, Q2.B) - ALIAS(A, Q2.E) - ALIAS(K, Q1.E) - -NETLIST_END() - -NETLIST_START(loc_lib) - - LOCAL_LIB_ENTRY(PUT_2N6027) - -NETLIST_END() diff --git a/src/lib/netlist/examples/2n6027.cpp b/src/lib/netlist/examples/2n6027.cpp new file mode 100644 index 00000000000..bfad3c065ec --- /dev/null +++ b/src/lib/netlist/examples/2n6027.cpp @@ -0,0 +1,96 @@ +// license:CC0 +// copyright-holders:Couriersud + +#include "netlist/devices/net_lib.h" + +/* + * Run with + * ./nltool -t 1 -f nl_examples/2N6027.cpp -l PUT.A -l PUT.K -l PUT.G -v + */ + +/* ---------------------------------------------------------------------------- + * Library section header START + * ---------------------------------------------------------------------------*/ + +#ifndef __PLIB_PREPROCESSOR__ + +#define PUT_2N6027(_name) \ + NET_REGISTER_DEV(G501534_DIP, _name) + +//NETLIST_EXTERNAL(ex2N6027) +NETLIST_EXTERNAL(loc_lib) + +#endif + +/* ---------------------------------------------------------------------------- + * Library section header END + * ---------------------------------------------------------------------------*/ + +NETLIST_START(ex2N6027) + + SOLVER(Solver, 48000) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-9) + PARAM(Solver.METHOD, "MAT_CR") + + LOCAL_SOURCE(loc_lib) + INCLUDE(loc_lib) + + ANALOG_INPUT(VB, 10) + + PUT_2N6027(PUT) + + // Figure 3 from datasheet + RES(R1, RES_K(510)) + RES(R2, RES_K(16)) + RES(R3, RES_K(27)) + RES(R4, 20) + CAP(C, CAP_U(0.1)) + + NET_C(VB, R1.1, R2.1) + NET_C(R1.2, C.1, PUT.A) + NET_C(PUT.K, R4.1) + NET_C(PUT.G, R2.2, R3.1) + + NET_C(GND, C.2, R4.2, R3.2) + +NETLIST_END() + + +NETLIST_START(PUT_2N6027) + + NET_MODEL("2N6027_NPN NPN(IS=5E-15 VAF=100 IKF=0.3 ISE=1.85E-12 NE=1.45 RE=0.15 RC=0.15 CJE=7E-10 TF=0.6E-8 CJC=2.2E-10 TR=4.76E-8 XTB=3)") + NET_MODEL("2N6027_PNP PNP(IS=2E-15 VAF=100 IKF=0.3 ISE=1.90E-12 NE=1.5 RE=0.15 RC=0.15 CJE=7E-10 TF=1.6E-8 CJC=2.2E-10 TR=5.1E-8 XTB=3)") + + QBJT_EB(Q1, "2N6027_NPN") + QBJT_EB(Q2, "2N6027_PNP") + + /* The netlist transistor model currently doesn't support + * BE and BC capacitances. + * Adding those here significantly reduces NR loops. + * FIXME: Needs to be removed when added to the + * transistor EB model. + */ +#if 0 + CAP(CJE1, CAP_N(1)) + CAP(CJE2, CAP_N(1)) + + NET_C(CJE1.1, Q1.B) + NET_C(CJE1.2, Q1.E) + NET_C(CJE2.1, Q2.B) + NET_C(CJE2.2, Q2.E) +#endif + NET_C(Q1.C, Q2.B) + NET_C(Q1.B, Q2.C) + + ALIAS(G, Q2.B) + ALIAS(A, Q2.E) + ALIAS(K, Q1.E) + +NETLIST_END() + +NETLIST_START(loc_lib) + + LOCAL_LIB_ENTRY(PUT_2N6027) + +NETLIST_END() diff --git a/src/lib/netlist/examples/LM3900_test.cpp b/src/lib/netlist/examples/LM3900_test.cpp deleted file mode 100644 index a48a2cd8a78..00000000000 --- a/src/lib/netlist/examples/LM3900_test.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// license:CC0 -// copyright-holders:Couriersud -/* - * Script to analyze opamp amplification as a function of frequency. - * - * ./nltool -t 0.5 -f nl_examples/LM9000_test.cpp - * - * t=0.0: 10 Hz - * t=0.1: 100 Hz - * t=0.2: 1000 Hz - * t=0.3: 10000 Hz - * t=0.4: 100000 Hz - * .... - * - * ./plot_nl.sh --db Y Z - */ - - -#include "netlist/devices/net_lib.h" - -NETLIST_START(main) - - /* Standard stuff */ - - //VARCLOCK(clk, "0.5 / pow(10, 1 + T * 4)") - //CLOCK(clk, 1000) - SOLVER(Solver, 48000) - PARAM(Solver.ACCURACY, 1e-10) - PARAM(Solver.NR_LOOPS, 300) - PARAM(Solver.DYNAMIC_TS, 1) - PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-7) - - VS(vs, 0) - /* - * Having f(t)=sin(g(t)*t) the derivative becomes - * - * f'(t) = d/dt(g(t)*t) * cos(g(t)*t) - * - * w(t) = d/dt(g(t)*t) = 2*pi*freq(t) is the angular frequency at time t - * - * choosing freq(t) = pow(10, a+b*t) and integrating we get - * - * g(t)*t = 2 * pi /(b*ln(10)) * (pow(10, a+b*t)-pow(10,a)) - */ - - PARAM(vs.FUNC, "0.001 * sin(0.2728752708 * (pow(10, 1 + 10*T) - 10))") - - /* - * Stepwise ... same as above - */ - //PARAM(vs.FUNC, "0.001 * sin(6.28 * pow(10, trunc((1 + T * 10)*10)/10) * T)") - - /* - * Fixed Frequency: - * PARAM(vs.FUNC, "1.001 * sin(6.28 * 100 * T)") - */ - PARAM(vs.R, 0.1) - ALIAS(clk, vs.1) - NET_C(vs.2, GND) - ANALOG_INPUT(V9, 9) - ANALOG_INPUT(V12, 12) - ANALOG_INPUT(VM12, -12) - - //OPAMP(op, OPAMP_TEST) - LM3900(op) - - NET_C(op.GND, VM12) - NET_C(op.VCC, V12) - - /* Opamp B wired as inverting amplifier connected to output of first opamp */ - - RES(R1, 50) - RES(RP, 500000) // Set to R2 * 2 if VPlus == VCC (see datasheet) - RES(R2, 500000) - - NET_C(op.PLUS, RP.1) - - //NET_C(RP.2, V9) - NET_C(RP.2, GND) - //NET_C(RP.2, V12) - - NET_C(op.MINUS, R2.2) - NET_C(op.MINUS, R1.2) - - CAP(C, 10e-6) - - NET_C(clk, C.1) - NET_C(C.2, R1.1) - NET_C(op.OUT, R2.1) - - CAP(CL, 10.0e-6) - RES(RL, 2000) - NET_C(RL.2, GND) - NET_C(RL.1, CL.2) - NET_C(CL.1, op.OUT) - - AFUNC(f, 1, "A0 * 1000") - NET_C(f.A0, RL.1) -#if 1 - LOG(log_Y, R1.1) - LOG(log_Z, f) -#endif -NETLIST_END() diff --git a/src/lib/netlist/examples/lm3900_test.cpp b/src/lib/netlist/examples/lm3900_test.cpp new file mode 100644 index 00000000000..a48a2cd8a78 --- /dev/null +++ b/src/lib/netlist/examples/lm3900_test.cpp @@ -0,0 +1,103 @@ +// license:CC0 +// copyright-holders:Couriersud +/* + * Script to analyze opamp amplification as a function of frequency. + * + * ./nltool -t 0.5 -f nl_examples/LM9000_test.cpp + * + * t=0.0: 10 Hz + * t=0.1: 100 Hz + * t=0.2: 1000 Hz + * t=0.3: 10000 Hz + * t=0.4: 100000 Hz + * .... + * + * ./plot_nl.sh --db Y Z + */ + + +#include "netlist/devices/net_lib.h" + +NETLIST_START(main) + + /* Standard stuff */ + + //VARCLOCK(clk, "0.5 / pow(10, 1 + T * 4)") + //CLOCK(clk, 1000) + SOLVER(Solver, 48000) + PARAM(Solver.ACCURACY, 1e-10) + PARAM(Solver.NR_LOOPS, 300) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-7) + + VS(vs, 0) + /* + * Having f(t)=sin(g(t)*t) the derivative becomes + * + * f'(t) = d/dt(g(t)*t) * cos(g(t)*t) + * + * w(t) = d/dt(g(t)*t) = 2*pi*freq(t) is the angular frequency at time t + * + * choosing freq(t) = pow(10, a+b*t) and integrating we get + * + * g(t)*t = 2 * pi /(b*ln(10)) * (pow(10, a+b*t)-pow(10,a)) + */ + + PARAM(vs.FUNC, "0.001 * sin(0.2728752708 * (pow(10, 1 + 10*T) - 10))") + + /* + * Stepwise ... same as above + */ + //PARAM(vs.FUNC, "0.001 * sin(6.28 * pow(10, trunc((1 + T * 10)*10)/10) * T)") + + /* + * Fixed Frequency: + * PARAM(vs.FUNC, "1.001 * sin(6.28 * 100 * T)") + */ + PARAM(vs.R, 0.1) + ALIAS(clk, vs.1) + NET_C(vs.2, GND) + ANALOG_INPUT(V9, 9) + ANALOG_INPUT(V12, 12) + ANALOG_INPUT(VM12, -12) + + //OPAMP(op, OPAMP_TEST) + LM3900(op) + + NET_C(op.GND, VM12) + NET_C(op.VCC, V12) + + /* Opamp B wired as inverting amplifier connected to output of first opamp */ + + RES(R1, 50) + RES(RP, 500000) // Set to R2 * 2 if VPlus == VCC (see datasheet) + RES(R2, 500000) + + NET_C(op.PLUS, RP.1) + + //NET_C(RP.2, V9) + NET_C(RP.2, GND) + //NET_C(RP.2, V12) + + NET_C(op.MINUS, R2.2) + NET_C(op.MINUS, R1.2) + + CAP(C, 10e-6) + + NET_C(clk, C.1) + NET_C(C.2, R1.1) + NET_C(op.OUT, R2.1) + + CAP(CL, 10.0e-6) + RES(RL, 2000) + NET_C(RL.2, GND) + NET_C(RL.1, CL.2) + NET_C(CL.1, op.OUT) + + AFUNC(f, 1, "A0 * 1000") + NET_C(f.A0, RL.1) +#if 1 + LOG(log_Y, R1.1) + LOG(log_Z, f) +#endif +NETLIST_END() -- cgit v1.2.3