summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/tools
Commit message (Collapse)AuthorAgeFilesLines
* general: housekeeping and msvc warning elimination Patrick Mackinlay2025-01-031-1/+1
| | | | | | | * avoid potential unsafe use of bool * avoid potentially empty controlled statements * annotate some unused variables * remove some undefined functions
* srcclean in preparation for MAME 0.261 release. Vas Crabb2023-11-261-1/+1
|
* Cleaned up some recent commits. Vas Crabb2023-11-031-5/+5
| | | | Only functional change is nltool counting lines from 1 rather than zero to match text editors.
* nltool: break up resistor arrays into individual resistors (#11569) stonedDiscord2023-10-251-0/+11
|
* report line number when an exception occurs (#11564) stonedDiscord2023-10-251-1/+14
|
* netlist: gtrak10 performance and other improvements and fixes (#10032) couriersud2022-07-051-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | - added support parameter FORCE_TRISTATE_LOGIC on mk28000 - add system device SYS_PULSE to generate pulse based on input changes parameters are delay, pulse width, input polarity and output polarity - add USE_SPEED_HACKS define to gtrak10 to enable the use of the above Brings gtrak10 from 18% to 120%. - Improved interlaced video support in fixfreq.cpp Added two interlace modes: progressive and interlaced which can be selected in machine configuration. - more clang format work - rename link to connection - introduced typed aliases. This information may be used later to rewrite netlists. - added a three terminal base device This will allow the analog code to be more easily comparable to literature about MNA (Modal node analysis). BJT code is now a lot better readable. - fix doxygen consistency - added an example for a cmos inverter based on NMOS/PMOS fets. - TRUTHTABLE_START was renamed to TRUTH_TABLE - truth tables are now enclosed in braces - netlists are now enclosed in braces - TRUTHTABLE_END() and NETLIST_END() removed from files - Fixed static solver script - Add file path to includes in nltool
* netlist: fix bugs and more cpp instead of macros (#9897) couriersud2022-06-101-8/+8
| | | | | | | | | | | | | | | | | * netlist: fix bugs and more cpp instead of macros - C-style comments converted to c++ - Fix crash in state saving code when an abort queue processing event is pending. - Fix a bug where a net could be twice in the queue. - Convert more macros to c++ - fixed SUBTARGET=nl build - fixed potential bugs which would allow a terminal to belong to more than one net. This is not possible even for a short time. - moved some member function definitions out-of-class. - moved code out-of-class - added constexpr where appropriate - fixed mamenl build - Cleanup and indentation
* netlist: static solver work and improve code readability (#9841) couriersud2022-05-302-20/+20
| | | | | | | | | | | - nltool: Added support for building individual static solver files. - Added pre-built documentation files for nltool and nlwav. - plib: Extended typed_version to have patchlevel as well. - plib: Compile more of ppmf.h with nvcc. - create_devinc.py: Add include guards to the generated files. - makefile: Recreate generated files when python code has changed. - Reduced nld_base.h usage in the core. - <oved extern template class declarations to where they belong. - Generally improved code readability and fixed a lot of issues cspell reported.
* netlist: palloc now uses c++17 alignment aware operator new. (#9834) couriersud2022-05-271-1/+1
| | | | | | | | | - Added more documentation to palloc.h - Made the use of allocation arenas more transparent throughout code - palloc now uses c++17 alignment aware operator new. This required further changes to the arena_deleter object to track alignment and size of allocated objects to avoid the use of alignment and size of base classes in case a unique_ptr was cast to a unique_ptr of the base class.
* netlist: Address comments from PR #9794, partially fix issue #9801 (#9805) couriersud2022-05-231-6/+6
| | | | | - added cstddef to includes in ppmf.h - more explicit comments in ppmf.h - Fixed more typos and improved readiability
* netlist: More c++, less macros, added support for cspell (#9794) couriersud2022-05-222-12/+11
| | | | | | | | | | | | | | | | | - More c++, less macros * Significantly reduced the use of unused_var and replaced it with [[maybe_unused]] * use enum class in ppmf.h - Changes to testing code in ptest.h * Catch exceptions in more places * The verbosity of the output can now be controlled * Display of test stats totals - added support for cspell - fixed various typos - fixed SUBTARGET=nl build - fixed more file permissions - srcclean and add fix_permissions target to netlist makefile
* netlist: standalone makefile and prototype modifications (#9708) couriersud2022-05-082-12/+4
| | | | | | - update netlist makefile to more recent compilers - prototypes for NETLISTs in macros are now created create_devinc.py - apply ctidy recommendations - Python None in create_device.py
* Drop unnecessary executable permissions (#9257) Julian Sikorski2022-02-031-0/+0
|
* netlist: Relicensing of the GPL code to BSD-3 with the blessing of the Olivier Galibert2021-03-092-2/+2
| | | | | | | | | | copyright owners. Much thanks for that Couriersud, the main creator and contributor, but also to Jonathan Gevaryahu and Sergey Svishchev. There are small remnants in machine/NL_*, specifially breakout, pong doubles and rebound that are also copyrighted by the DICE team, whoever that means. They're not critical since they only concern these drivers and not an important core subsystem.
* netlist: code maintenance and performance optimizations. Couriersud2020-09-052-10/+10
| | | | | | | | | | | * rename some misleading type names * remove callback_t and replace by better scalable approach * hide implementations details * move sources classes from putil.h to psources.h * reduce code complexity * improve parsing performance, parsing netlists now is twice as fast. * fix issues around multi-byte string support * moved psplit into pstrutil.h
* netlist: Refactored pokenizer. couriersud2020-08-062-14/+35
| | | | | | | | | * Separated tokenizing and reading of tokens. * This enables caching of parsing results on the token level. * Implemented caching of token stream. * Overall this significantly improves parsing performance (~10x) * Next step towards a bare-bone nltool which does not depend on macro devices.
* netlist: code maintenance and bug fixes. couriersud2020-07-011-1/+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: include file refactoring. couriersud2020-06-281-0/+1
| | | | | | | | The purpose of this ongoing exercise is to remove unnecessary dependencies in header files. netlist implementations should only have access to what they need. The same applies to device implementations. Core stuff will be moved to the core subdirectory going forward.
* netlist: fix some clang-tidy warnings. (nw) couriersud2020-06-131-1/+1
|
* netlist: Performance improvement and refactoring. [Couriersud] couriersud2020-06-131-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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: code maintenance. (nw) couriersud2020-06-082-13/+34
| | | | | | - more c++14, use enable_if_t instead of enable_if - cleaned up the use of memory allocation arenas - reduce MACRO usage, use std::conditional where possible
* netlist: split plists.h and fix nvcc compile for 10.2 (nw) couriersud2020-05-251-1/+0
| | | | | | | | | 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: Fix clang-tidy warnings. (nw) couriersud2020-04-282-31/+29
|
* netlist: rename some macros. (nw) couriersud2020-04-261-1/+1
| | | Rename COPYASSIGN* and friends to PCOPYASSIGN*.
* netlist: clang-tidy, srcclean and pedantic warnings fixed. (nw) couriersud2020-04-181-3/+3
|
* netlist: Fix some clang-tidy-10 warnings. (nw) couriersud2020-04-051-4/+4
|
* netlist: Add support for pots to spice conversion. [Couriersud] couriersud2020-02-162-17/+51
|
* netlist: code maintenance. (nw) couriersud2020-02-032-38/+86
| | | | Remove dead code, fix lint warnings, make spice netlist conversion more flexible, implement changes to controlled sources.
* netlist: align nltool -c convert with mame/discrete/README.md (nw) couriersud2020-02-021-69/+50
|
* netlist: spice-to-netlis conversion sync with mame/discrete. (nw) couriersud2020-02-022-22/+58
| | | | This is work in progress. The aim is to remove all hacks in netlist conversion going forward.
* netlist: Code symplification and bugfixes. (nw) couriersud2020-01-311-3/+3
| | | | | - Fixes performance regression and net_splitter struct. - Fixes nltool time measurements - pstream simplification
* netlist: Code maintenance. (nw) couriersud2020-01-271-9/+9
| | | | | | | | | - Fixed some clang lint warnings - Removed dead code - Experimental parser code to allow calculations in parameter value. This already works for compiled netlists. These changes are currently disabled. Updated pong netlist (and CRC/SHA) to work with this new code.
* netlist: Fix/extend SPICE format conversion. [Couriersud] couriersud2020-01-262-20/+220
| | | | | | | | "./nltool -c convert -f UA741.mod" now runs without errors. UA741.mod is the official TI SPICE subckt for the 741 opamp. This commit fixes a number of issues and adds linear POLY support for E/F SPICE models.
* netlist: clang lint readability fixes. (nw) couriersud2020-01-252-7/+9
|
* netlist: clang lint fixes, srcclean and nlwav fix. (nw) couriersud2020-01-251-0/+2
|
* netlist: more code maintenance. (nw) couriersud2019-11-161-4/+4
| | | | | | - refactor error messages. - Fix some drivers to cope with outputted added my the mame driver for video and sound. - Fix validation.
* netlist: code maintenance and bug fixes. (nw) couriersud2019-11-082-58/+52
| | | | | | | - comment style migration continues. - Fixed a two bugs in the truthtable ignore inputs code - refactored the truthtable code a bit for better readability. - updated netlist specific gitignore.
* netlist: code maintenance. (nw) couriersud2019-11-042-12/+12
| | | | | | | | - more const - explicitly raise exceptions instead of leaving this to log.fatal() - correct a number of cppcheck findings. - dead code removal - clang lint corrections, e.g. include order
* netlist: code maintenance. (nw) couriersud2019-11-031-3/+4
| | | | | | - Separate code out into pmath.h and pstonum.h. - Fix VC build error - optimize pfmtlog.h a bit
* netlist: remove pragma once. (nw) couriersud2019-11-031-2/+0
| | | Only used inconsistently in the code. May as well go.
* netlist: code maintenance. (nw) couriersud2019-10-292-3/+3
| | | | | | | | - 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
* netlist: Preprocessor enhancements. [Couriersud] couriersud2019-10-282-6/+6
| | | | | | | | | | The builtin preprocessor now behaves closer to cpp: - supports macro parameters, i.e. define x(a) a - supports stringification, i.e. define x(a) #a - supports concatenation, i.e. define x(a) a ## _ext In addition, error reporting now provides a source context including the include history.
* netlist: code maintenance (nw) couriersud2019-10-121-1/+1
| | | | - clang lint and pedantic fixes - mat_cr.h: separate solving linear systems from underlying matrix
* netlist: maintenance and lint fixes. (nw) couriersud2019-10-061-1/+1
|
* netlist: Fix a number of minor issues. (nw) couriersud2019-09-271-1/+1
| | | | | - lint warnings - remove const on return types
* netlist: switch to c++ streams. (nw) couriersud2019-09-252-4/+8
| | | | Removed the home-brew implementation pstreams and replaced those with c++ streams.
* netlist code maintenance (nw) couriersud2019-09-212-22/+36
| | | | | - prepare move to c++ streams and later std::string - fix more lint and clang pedantic warnings/errors - fix some bugs
* netlist code maintenance. (nw) couriersud2019-09-172-3/+3
| | | | | | - remove a lot of c library use and instead use c++ - improved pstring compatibility to std::string - prepare removal of pstream
* netlist: Fix MT06827. couriersud2019-04-221-3/+3
| | | | All pstonum calls now need to specify if they want local locale or the "classic" "C" locale.
* netlist: clang lint fixes and pedantic warning fixes. (nw) couriersud2019-04-121-1/+1
|