summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/src/netlist.lua
Commit message (Collapse)AuthorAgeFilesLines
* netlist: Performance improvement and refactoring. [Couriersud] couriersud2020-06-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Kidniki now achieves up to 910% when run with static solvers and with nltool. That is significant better than the 860% we have seen previously. This increase is driven by using a global memory pool in the solver code. In addition the following refactoring and code maintenance work is included. Please excuse the large commit, some of this took interfered with other work and the detail development steps were ugly. - gsl support: This commit adds pgsl.h which implements a very limited number of the functionality of the gsl header described in the c++ core guidelines. - clang-tidy fixes - A significant refactoring of palloc.h. Aligned hints were removed, they added complexity without a significant performance gain. Vector operations should better be done on special spans/views. The code has been tested on linux with g++-7, g++-9, clang-11. On Windows mingw-10 and VS2019, OSX clang-11.
* netlist: device factory enhancements. (nw) couriersud2020-06-011-0/+1
| | | | | | | | | Factory elements can now pass additional parameters to device constructors. This makes the design of interface objects like analog callbacks easier. The change also allowed to remove some "deep" calls into the core from the MAME interface in netlist.h
* netlist: split plists.h and fix nvcc compile for 10.2 (nw) couriersud2020-05-251-0/+2
| | | | | | | | | plists.h was splitted into plists.h, pmulti_threading.h and ptimed_queue.h. In addition removed plists.h from a number of files it wasn't used in. Certain minor adjustment needed to be made for cuda toolkit 10.1 and 10.2.
* netlist: move penum into own header file. (nw) couriersud2020-05-241-0/+1
|
* netlist: Fix performance issues and VC2019. [Couriersud] couriersud2020-05-221-2/+6
| | | | | | For reasons unknown to me compile optimizations do not behave for template code. If the implementation is in separate compile units, the code compiles and performs.
* netlist: consolidate 9316-type counters. [Couriersud] couriersud2020-05-221-4/+0
| | | | | | | This needs more attention since for certain compilers there is a considerable performance degregation. It looks like this is only triggered if too many variants are declared in one cpp file and the compiler stops inlining.
* netlist: Fix cd4013 implementation and include it in compile. (nw) couriersud2020-05-171-0/+2
|
* netlist: rewrite rom devices from scratch. [Couriersud] couriersud2020-05-171-6/+4
| | | | | | | | | | | | | Thanks to Aaron Giles who made me think about a different approach. This is a rewrite from scratch for rom devices. It uses a generic template to implement rom devices which is used together with a description struct to define a rom device. This leads to highly efficient code since all information is available at compile time. This is also a step forward to support tristate outputs. All rom devices covered by this approach have tristate or open collector outputs and thus all code changes to support tristate outputs can now be made consistently in one file.
* netlist: Add 74377/74378/74379 devices to netlist. [Aaron Giles] Aaron Giles2020-05-151-0/+2
|
* netlist: code cleanup and development stage tristate [Couriersud] couriersud2020-05-151-0/+2
| | | | | | | | | | Code cleanup to better separate the following stages: - parsing - setup - run In addition preliminary native tristate support was added. Not yet production ready, please don't use it.
* netlist: Add two noise sources. [Couriersud] couriersud2020-05-031-0/+1
| | | | | | | | | | | | | | | | | | | The two sources act as voltage sources, though noise may also be injected as conductivy or current noise. SYS_NOISE_MT_U: Mersenne Twister uniform noise SYS_NOISE_MT_N: Mersenne Twister normal noise nld_sys_noise is templated: using NETLIB_NAME(sys_noise_mt_u) = NETLIB_NAME(sys_noise)<plib::mt19937_64, plib::uniform_distribution_t>; Thus the approach is scalable. The implementation is state save aware, and thus reproducible results are guaranteed. An example use case is provided as well, see examples/noise.cpp.
* netlist: add 393 to netlist.lua (nw) couriersud2020-05-011-0/+2
|
* netlist: Add the NE566 as a macro device. [Couriersud] couriersud2020-05-011-2/+0
| | | | | | | | The device can be found in nlm_other.cpp. Removed nld_ne566.* Added SYS_SW, SYS_SW2 and SYS_COMP. These are single switch, alternating switch and a analog comparator with digital outputs. Renamed RES_SWITCH to SYS_SW. Added example ne566.cpp in netlist/examples.
* Fixed indenting in netlist.lua. (nw) couriersud2020-04-291-2/+2
|
* netlist: add NE566 to netlist.lua. (nw) couriersud2020-04-291-2/+4
|
* srcclean and manual cleanup (nw) Vas Crabb2020-04-261-1/+1
|
* netlist: compile time improvement and code maintenance. (nw) couriersud2020-04-191-0/+1
| | | | | Added a define NL_USE_ACADEMIC_SOLVERS and disabled it in the build. This will not compile in solvers which are either illustrative or only perform for large sparse matrices like GMRES.
* netlist: improve performance up to 65% on audio netlists. [Couriersud] couriersud2020-04-131-0/+2
| | | | | | | | | | | | | | | | | | | This commit introduces precompiled static solver code. Due to additional optimizations the compiler can use because the detail calculation steps for the solution are known e.g. the kidniki netlist sees a 100% speed increase. In all environments (windows/*nix/osx) the source for the static solver code can be created using bash src/lib/netlist/nl_create_mame_solvers.sh This will create src/lib/netlist/generated/static_solvers.cpp which is compiled into the mame binary. The script is just a temporary workaround. The intention is that nltool whill be able to create this file with one call. There are other improvements in this commit speeding up the processing of timestep and dynamic calculations.
* srcclean, manual adjustments (nw) Vas Crabb2020-01-261-2/+2
|
* netlist: New devices and some fixes. [Couriersud] couriersud2020-01-251-1/+2
| | | | | | | | | - add CD4006 and CD4070 devices - add TL084 opamp model - Clock now supports proxies, i.e. can be connected to analog devices. - Fixed netlists using CLOCK - added some comments - removed a forgotten header file.
* srcclean and indentation cleanup (nw) Vas Crabb2019-11-241-6/+6
|
* -netlist: Added 7442 4-Line BCD to 10-Line Decimal Decoder. [Ryan Holtz] MooglyGuy2019-11-231-0/+2
|
* -netlist: Added 7492 Divide-by-12 Counter. [Ryan Holtz] MooglyGuy2019-11-231-0/+2
|
* netlist: code maintenance. (nw) couriersud2019-11-031-1/+3
| | | | | | - Separate code out into pmath.h and pstonum.h. - Fix VC build error - optimize pfmtlog.h a bit
* netlist: code maintenance. (nw) couriersud2019-10-291-2/+4
| | | | | | | | - Removed code no longer used - Add noexcept where appropriate - split pparser.[c|h] into ppreprocessor and ptokenizer - smaller optimizations, e.g. use of std::size_t - fix lint warnings
* srcclean (nw) Vas Crabb2019-10-261-18/+18
|
* Netlist: code maintenance and bug fixes. (nw) couriersud2019-10-171-1/+0
| | | | | | | - solver now uses dynamic allocation on systems larger than 512x512 - fixed osx build - moved nl_lists.h classes to plists.h - fixed netlist makefile clint section - readability and typos
* netlist: code maintenance (nw) couriersud2019-10-121-0/+1
| | | | - clang lint and pedantic fixes - mat_cr.h: separate solving linear systems from underlying matrix
* netlist: less cpp - more headers (nw) couriersud2019-09-291-8/+5
| | | | - move more code in headers - delete some cpp files.
* srcclean (nw) Vas Crabb2019-05-261-6/+6
|
* Added nld_generic_models.h to netlist.lua. (nw) couriersud2019-03-311-0/+1
|
* (nw) Clean up the mess on master Vas Crabb2019-03-261-4/+8
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-8/+4
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* netlist: add MOSFET model. [Couriersud] couriersud2019-03-251-0/+2
| | | | | | | | | | | | | | | | | | | - added MOSFET model. Currently capacitances are not modelled. This is a 3-pin model (Bulk connected to Source) with provisions to extend it to 4-pin at a later stage. - Add a capacitor generic model which is charge conserving. Switch netlist to use this model instead of constant capacity model. - Start putting constants into a central place. Please expect minor timing differences due to a different numerical path. The cmos inverter example illustrates the analog implementation of a cmos inverter gate. These were used a lot back in the 70s/80s to generate sinus waves. The model should also be able to better emulate 4066 analog switches. The addition of a relatively simple capacitor model is planned at a later stage. Expect everything from the MOSFET model at the current stage. Wrong results as well as convergence issues and crashes.
* Move ptime struct into plib namespace and fix relative includes. (nw) couriersud2019-02-231-3/+3
|
* scripts/src/netlist.lua : Fix spacing cam9002019-02-141-1/+1
|
* netlist: memory allocation clean-up. (nw) couriersud2019-02-131-1/+1
|
* netlist wip: 7474, 7497, test driver Sergey Svishchev2019-01-071-0/+2
|
* A large portion of the Atari Gran Trak 10 schematics (1974) Felipe Corrêa da Silva Sanches2018-07-281-0/+4
| | | | implemented on MAME using the netlist subsystem.
* srcclean (nw) Vas Crabb2017-05-281-3/+3
|
* netlist: add a crude TTL schmitt trigger model and hook up in 1B11142 Vas Crabb2017-05-271-0/+2
| | | | | | | | | | | | | | | | | sound board, completing the tromba circuit (nw) I'm not sure whether the model works properly or not, but in the circuit where it's used, I don't think it can work properly with the current TTL output model. A capacitor is charged by the Q output of a 74LS74 flipflop (U3A) until the voltage passes the Schmitt trigger's threshold, causing it to reset the flipflop. However, the positive trigger voltage of the Schmitt trigger is 1.6V, but our TTL output model has a high output voltage of 1.0V (see nl_base.cpp:89). I realise the simplified model of TTL logic with high impedance inputs and outputs behaving as though thery're loaded is convenient and fast to simulate, but it's not detailed enough for applications like this where 7400-series chips are used in analog circuitry. This is what held me up last time I tried adding a netlist for this sound board.
* Netlist refactoring: couriersud2017-05-271-5/+6
| | | | | | - OPENMP refactored. All OPENMP operations are now templatized in pomp.h - We don't need thread-safe priority queue. Event code updating analog outputs now runs outside the parallel code. (nw)
* srcclean (nw) Vas Crabb2017-02-191-14/+14
|
* Merge pull request #2068 from JoakimLarsson/prodigy_display R. Belmont2017-02-171-0/+2
|\ | | | | Prodigy display
| * prodigy: added new devices to script files Joakim Larsson Edstrom2017-02-171-0/+2
| |
* | Reworked truthtables a bit. couriersud2017-02-171-4/+0
|/ | | | | - Moved 9312 and 74279 to ttl macro library. - Renamed TTL_9312_* to DM9312. This is more appropriate. - Fixed a number of warnings from latest ubuntu clang-5.0.
* Make windows builds of nltool and nlwav understand unicode. couriersud2017-02-101-4/+13
| | | nltool and nlwav now use wmain, i.e. UNICODE main on windows. (nw)
* Make sure netlist includes are not found directly on include path. couriersud2017-02-101-3/+3
| | | | Instead, they have to be prefixed by "netlist/". Removed unneeded link librariers for nltool and nlwav along the way. (nw)
* Separate include file usage for netlist. couriersud2017-01-291-5/+7
| | | | | | | | Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. (nw)
* Cleanup of includes. (nw) couriersud2017-01-271-0/+1
|