| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Make some calls private which were public before.
Eliminate functions which would be executed only once.
Make terminal reference functions in twoterm.h return const.
Clearly identify the use cases which need a non-const ref
to terminals.
|
| |
|
|
| |
Identified a number of code locations which could accept const
arguments.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Calls to the solver used different paths. These changes unify these
calls and provide a common call for discontinuous state changes on
analog components (change_state).
|
| |
|
|
| |
The purpose here is to make clear what is actually done and to reduce
usage of calls to update.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit simplifies the creation of static solvers. For this to
happen the following changes were made:
- nltool does no longer support the "-f netlist_file.cpp" option.
All parts of netlist which used the option now expect the file
to be specified after all other options.
Before: nltool -t 10 -f somenetlist.cpp
Now : nltool -t 10 somenetlist.cpp
- The static compile command now supports an "--output" option
to specify the file to be created and accepts multiple input
files. To be create the static solver file for MAME use the
script provided or:
./nltool --cmd static
--output=src/lib/netlist/generated/static_solvers.cpp
src/mame/audio/nl_*.cpp src/mame/machine/nl_*.cpp
- Updated documentation and examples provided by nltool --help
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Parameters are now passed to the netlist core as strings. During netlist
creation they are evaluated as functions. This opens the path to
parameters on subdevice level.
Examples:
PARAM(device.XY, (1+2*0.005))
RES(R1, 2.05*RES_K(1)+1)
In addition the commit contains dead code removal.
|
| |
|
|
|
|
|
|
|
| |
- 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.
|
| | |
|
| |
|
|
|
|
| |
- remove pthrow trampline as proposed by Vas.
- identify throwing code by adding noexcept(false)
- move "connected term" information to setup code.
- srcclean
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Introduce an additional absolute time type netlist_time_ext to identify
whether absolute or relative time is used in the netlist code.
Extend ptime code to allow operations between ptime derived types with
different internal types.
In addition rewrote main queue serve loops. Adds a very small
performance increase.
|
| |
|
|
|
|
|
|
| |
Added netlist version information. This is used to enforce the
invalidation of save states when the major/minor netlist version
changes.
This catches edge cases for which neither the size or names of saved
items changes during releases.
|
| |
|
|
|
|
| |
- refactor error messages.
- Fix some drivers to cope with outputted added my the mame driver
for video and sound.
- Fix validation.
|
| |
|
|
|
|
|
|
|
|
| |
- Removed DUMMY_INPUT. NC (not connected) pins should now use NC_PIN.
If a NC_PIN is actually connected, an error will be logged and
validation will fail.
- Enabled "extended" validation. This will catch now if power terminals
are not connected.
- Added const and noexcept where appropriate.
- Removed dead code.
- Fixed the 7414 Schmitt-Trigger device to use nld_power_pins
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Devices ttlhigh and ttlhow are no longer automatically created.
- All logic input devices (e.g. TTL_INPUT, LOGIC_INPUT) now need to have
their power terminals (VCC, GND) connected. This opens the route
for more appropriate proxy devices but comes at a cost. If the
connections are omitted your circuit will not work as expected.
Example:
LOGIC_INPUT(I_SD0, 1, "AY8910PORT")
NET_C(VCC, I_SD0.VCC)
NET_C(GND, I_SD0.GND)
- Updated all netlists.
- Removed proxy information from terminal objects. This was replaced by
a lookup hash whose life-span does not exceed netlest setup.
These changes enable the removal of a number of hacks from the
source going forward.
|
| |
|
|
|
|
| |
- move memory pool to netlist_state_t removing one static allocation.
- add memory allocation stats to verbose output
- nl_assert no longer throws, first step to remove NL_EXCEPT macro.
|
| |
|
|
|
|
|
| |
- Fix automatic header generation
- clang lint fixes.
- srcclean
- remove dead code
|
| |
|
|
|
|
| |
- more doxygen \file annotations
- moved MAINCLOCK back to nl_base.h
- remove some const from simple function parameters
|
| |
|
|
|
| |
- switch to VS 2019 community and fix standalone build.
- more migration to C++ comment style.
- add some more doxygen markup.
|
| |
|
|
|
|
|
|
|
| |
- "nltool -c docheader" now scans sources and creates
usage focussed doxy documentation for devices. Very early
stage, but works. For an example, please see ne555 source.
- Started migrating to pure C++, i.e. "//" comments.
- Various documentation fixes.
- Added cppcheck configuration to netlist/build
- Some smaller code changes.
|
| | |
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
- Separate code out into pmath.h and pstonum.h.
- Fix VC build error
- optimize pfmtlog.h a bit
|
| |
|
|
|
|
|
| |
Renamed cast member of the constants struct to magic to clearly identify
magic numbers.
Introduced nlconst struct inheriting from plib::constants<nl_fptype> to
make code better understandable.
|
| |
|
|
|
|
|
|
|
| |
The newly added RELTOL and VNTOL parameters implement Newton convergence
checks comparable following other SPICE implementations.
The ACCURACY solver parameter now is only used for convergence checks in
iterative solvers.
In addition, type safety was significantly improved and a lot of "magic"
numbers are identifiable now.
|
| |
|
|
| |
- fixed a bug in the parray constructor
- replaced NL_NOEXCEPT with noexcept where appropriate
|
| |
|
|
|
|
|
| |
- solver: align matrix population along the various solvers
- solver: delete dead code
- renamed nl_double to nl_fptype and use nl_fptype where previously
double has been used.
- renamed param_double_t to param_fp_t
|
| |
|
|
| |
Simplification, remove some trampolines.
|
| |
|
|
|
|
|
|
| |
- Added support for line markers to the preprocessor and parser.
- Added support for include processing to the preprocessor.
- Moved sources base type to plib to be used for preprocessor includes.
This enables to include e.g. from rom memory regions.
- Renamed some defines
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- optimized the core queue dispatching logic. Minor performance
increase.
- fixed a number of bugs in parray. Now parray<double, 0> will be purely
dynamic allocation with the number of elements passed in the
constructor.
- Added noexpr where appropriate.
- Simplified the queue
Checked with gcc-7 (ubuntu), gcc-9, clang-10, macosx clang 10, mingw
cross compile on linux.
|
| |
|
| |
Also improve code readability.
|
| | |
|
| |
|
|
| |
- fixed lint corrections
- added NOLINT where needed
|
| |
|
|
| |
Removed the home-brew implementation pstreams and replaced those with
c++ streams.
|
| |
|
|
|
| |
- prepare move to c++ streams and later std::string
- fix more lint and clang pedantic warnings/errors
- fix some bugs
|
| |
|
|
|
|
| |
- remove a lot of c library use and instead use c++
- improved pstring compatibility to std::string
- prepare removal of pstream
|
| | |
|
| |
|
|
|
|
| |
CMOS 40xx and 4316 power pins fixed.
Also fixed gcc-9 error. clang++ complains about unreachable code in
nl_base.cpp line 480 even if double parantheses are used. Assigning the
define to a local variable and testing this local variable works. Weird.
|
| | |
|
| |
|
|
|
|
| |
- breakout: update notes
- 9316: switch to output array
- ppmf: fix a warning
- nlid_system.h: remove useless brackets.
|