summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/src/netlist.lua
Commit message (Collapse)AuthorAgeFilesLines
* -atarittl: Added netlist for Tank. currently runs at about 0.005% of full ↵ Ryan Holtz2020-08-161-0/+6
| | | | speed, unsure why.
* netlist: more include untangling. couriersud2020-08-121-0/+2
| | | | * nl_base.h now basically only includes files from core. * all headers in core compile on their own.
* netlist: align naming of files within the macro folder. couriersud2020-08-101-12/+12
| | | | * Use a consistent naming scheme. This is a preparational step towards improved parsing performance.
* netlist: more header file separation couriersud2020-08-081-0/+6
|
* -fireone: Committed netlist for couriersud to have a look at. Ryan Holtz2020-08-061-0/+1
|
* netlist: Better fixes for Emscripten (#7031) Justin Kerk2020-08-041-5/+0
| | | | Silence indentation warning in 3rdparty/ under Emscripten (#7031)
* netlist: Fix build under Emscripten (#7031) Justin Kerk2020-08-051-0/+5
| | | | netlist: Fix crash under Emscripten by disabling aligned optimizations
* netlist: Added CD4017/4022 devices. Aaron Giles2020-08-011-0/+2
| | | | * Also contains squashed clang signedness fixes
* netlist: Device refactoring Aaron Giles2020-08-011-2/+0
| | | | | | | * Move DIPs for 82S16, 82S115, and 2102A devices into nlm_proms * Moved 7448 DIP to a macro. Replaced 7442 with truthtable and macro. * Moved 74LS629 DIP into macro. * Expand truthtable to handle 10 outputs.
* netlist: Fix an issue during proxy hookup. couriersud2020-07-281-0/+2
| | | | | * Add cd4053 to netlist.lua * Recreated nld_devinc.h
* netlist: separate nl_base.h into separate header files. couriersud2020-07-251-0/+5
| | | | | | * This clean-up exercise will hopefully make it easier to navigate the core code. Another long term goal is to further straighten the object model.
* netlist: Add 74113 device. Aaron Giles2020-07-101-0/+2
|
* netlist: code maintenance and bug fixes. couriersud2020-07-011-0/+1
| | | | | | | | | | | * palloc.h/pmatrix2d.h: Fix static_assert warnings at the origin. * Rework hints to broaden their use and fix NC hint. * 74377: use NC hint * plists.h: Fix debugging in MSVC * Include cleanup: Move everything not needed by netlists from nl_setup.h into core/setup.h * Fix some clang tidy warnings * srcclean
* 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
|