From a97d097b3b79e9fa395eabec4829dd82abc2ba47 Mon Sep 17 00:00:00 2001 From: couriersud Date: Fri, 1 May 2020 18:09:36 +0200 Subject: netlist: Fixed polarity issue in CCCS device [Colin Howell, Couriersud] Note: This affects all use cases of CCCS. I have changed all uses in MAME. --- src/lib/netlist/analog/nlid_fourterm.h | 2 +- src/lib/netlist/examples/cccs.c | 39 ---------------------------------- src/lib/netlist/examples/cccs.cpp | 39 ++++++++++++++++++++++++++++++++++ src/lib/netlist/macro/nlm_other.cpp | 4 ++-- 4 files changed, 42 insertions(+), 42 deletions(-) delete mode 100644 src/lib/netlist/examples/cccs.c create mode 100644 src/lib/netlist/examples/cccs.cpp diff --git a/src/lib/netlist/analog/nlid_fourterm.h b/src/lib/netlist/analog/nlid_fourterm.h index 862fe8f79e5..6d5dadd8e08 100644 --- a/src/lib/netlist/analog/nlid_fourterm.h +++ b/src/lib/netlist/analog/nlid_fourterm.h @@ -128,7 +128,7 @@ namespace analog { public: NETLIB_CONSTRUCTOR_DERIVED_PASS(CCCS, VCCS, nlconst::one()) { - m_gfac = plib::reciprocal(m_RI()); + m_gfac = -plib::reciprocal(m_RI()); } NETLIB_RESETI(); diff --git a/src/lib/netlist/examples/cccs.c b/src/lib/netlist/examples/cccs.c deleted file mode 100644 index 2c7833b19f3..00000000000 --- a/src/lib/netlist/examples/cccs.c +++ /dev/null @@ -1,39 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud -/* - * cccs.c - * - */ - - -#include "netlist/devices/net_lib.h" - -NETLIST_START(cccs) - - CLOCK(clk, 1000) // 1000 Hz - SOLVER(Solver, 48000) - PARAM(Solver.ACCURACY, 1e-12) - PARAM(Solver.METHOD, "MAT_CR") - - CCCS(VV) - PARAM(VV.G, 1) - PARAM(VV.RI, 1e-3) - - RES(R2, 1000) - RES(R1, 1000) - NET_C(clk, VV.IP) - NET_C(VV.IN, R1.1) - NET_C(R1.2, GND) - - NET_C(R2.1, VV.OP) - NET_C(R2.2, GND) - NET_C(VV.ON, GND) - - /* Simple current source */ - - CS(CS1, 1) - RES(R3, 1) - NET_C(R3.1, CS1.P) - NET_C(GND, CS1.N, R3.2) - -NETLIST_END() diff --git a/src/lib/netlist/examples/cccs.cpp b/src/lib/netlist/examples/cccs.cpp new file mode 100644 index 00000000000..02cccd1736e --- /dev/null +++ b/src/lib/netlist/examples/cccs.cpp @@ -0,0 +1,39 @@ +// license:CC0 +// copyright-holders:Couriersud +/* + * cccs.cpp + * + */ + + +#include "netlist/devices/net_lib.h" + +NETLIST_START(cccs) + + CLOCK(clk, 1000) // 1000 Hz + SOLVER(Solver, 48000) + PARAM(Solver.ACCURACY, 1e-12) + PARAM(Solver.METHOD, "MAT_CR") + + ANALOG_INPUT(V5,5) + CCCS(VV, 0.9) + PARAM(VV.RI, 1e-3) + + RES(R2, 1000) + RES(R1, 1000) + + NET_C(V5, clk.VCC) + NET_C(clk, VV.IP) + NET_C(VV.IN, R1.1) + NET_C(GND, R1.2, R2.2, VV.OP, clk.GND) + + NET_C(R2.1, VV.ON) + + /* Simple current source */ + + CS(CS1, 1) + RES(R3, 1) + NET_C(R3.1, CS1.P) + NET_C(GND, CS1.N, R3.2) + +NETLIST_END() diff --git a/src/lib/netlist/macro/nlm_other.cpp b/src/lib/netlist/macro/nlm_other.cpp index 2a2478341ad..401fe7fc172 100644 --- a/src/lib/netlist/macro/nlm_other.cpp +++ b/src/lib/netlist/macro/nlm_other.cpp @@ -86,8 +86,8 @@ NETLIST_END() static NETLIST_START(NE566_DIP) VCVS(VI, 1) - CCCS(CI1, 1) - CCCS(CI2, -1) + CCCS(CI1, -1) + CCCS(CI2, 1) SYS_COMPD(COMP) SYS_DSW2(SW) VCVS(VO, 1) -- cgit v1.2.3