| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
After the recent string of updates pongf performance increased again.
Also includes code maintenance and some fixes for the aligned memory
operations.
|
|
|
| |
Also improve code readability.
|
| |
|
|
|
|
| |
- fixed lint corrections
- added NOLINT where needed
|
|
|
|
|
| |
- lint warnings
- remove const on return types
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
- converted NL_MAX_LINK_RESOLVE_LOOPS into a netlist parameter.
- Reduced potential bit-rot.
- nltool -v --version now displays values of all compile time defines.
There are still far too many compile time defines. However, most of them
ensure and test future scalability.
|
|
|
|
| |
All pstonum calls now need to specify if they want local locale
or the "classic" "C" locale.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes an over simplification. Logic devices implicitly assumed that
GND/VDD actually is connected to GND(i.e. 0V). There is no immediate
benefit from this change. It is a preparation for the future
scalability. Now all power terminals (typically 7/14, 8/16) have to be
explicitly connected to the supply rails.
Also added a validation mode to the netlist core. This is not
intended for running, but solely to better indentify pins which
are not properly connected.
|
| |
|
|
|
| |
This approach uses functors for logging messages.
|
|
|
| |
Adjust warning levels and fix a number of topics identified.
|
|
|
|
|
|
| |
mame -validate now also checks all netlist devices. It does this
by constructing a temporary netlist.
This commit also fixes some memory leaks and a bad bug which
surfaced in validation.
|
|
|
|
|
| |
- fix sound route dependency
- add "K" as a valid Kilo multiplier.
- Fix current source parameter update.
|
| |
|
|
|
|
|
|
|
|
|
| |
modelling. [Couriersud]
Added global NETLIST.DEFAULT_MOS_CAPMODEL parameter. Setting this to
zero disables using capitance modelling in mos models.
On a per mos device basis this can be achieved by adding CAPMODEL=0 to
the model definition, e.g. MOSFET(X, "NMOS(CAPMODEL=0)")
Improve MOSFET convergence by using log-stepping.
|
|
|
|
|
|
|
|
|
| |
This is a significant improvement to the MOS transistor model. It adds
modelling of the Meyer capacitance model.
This is a somewhat academic addition since the effects occur on a
nanosecond time scale and have a huge impact on performance. I plan to
make the capacitance model selectable. Both on a model level as well as
by introducing a global solver parameter.
The model delivers comparable results to LTSpice.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing
changes made to 009cba4fb8102102168ef32870892438327f3705.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Memory management in plib is now alignment-aware. All allocations
respect c++11 alignas. Selected classes like parray and aligned_vector
also provide hints (__builtin_assume_aligned) to g++ and clang.
The alignment optimizations have little impact on the current use cases.
They only become effective on bigger data processing.
What has a measurable impact is memory pooling. This speeds up netlist
games like breakout and pong by about 5%.
Tested with linux, macosx and windows cross builds. All features are
disabled since I can not rule out they may temporarily break more exotic
builds.
|
| |
|
| |
|
|
|
|
| |
superflous semicolons, etc. and also fix a known broken build script change
|
|
|
|
| |
Make it clearer what is used during parsing a netlist, "compiling" a
netlist and execution of a netlist.
|
|
|
|
|
|
| |
Set USE_MEMPOOL to 1 to try this (max 5% performance increase).
For mingw, there is no alignment support. This triggers -Wattribute
errors which due to -Werror crash the build.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
At least on macosx memory used by an object seems to be invalidated
before the dtor is executed. This of course is deadly for child objects
with references to the parent-in-deletion which may call back into the
parent.
One of the worst issues I had to fix. Ever. Lesson learnt: No tricks in
dtors. Never.
|
| |
|
| |
|
|
|
|
|
|
|
| |
- convert macros to c++ code.
- order of device creation should not depend on std lib.
- some state saving cleanup.
- added support for clang-tidy to makefile.
- modifications triggered by clang-tidy-9.
|
|
|
|
|
|
|
|
|
|
| |
- Removed dead code.
- nltool now adds a define NLTOOL_VERSION. This can be tested in
netlists. It is used in kidniki to ensure I stop committing
debug parameters.
- Optimized the proposal for no-deactivate hints.
- Documented in breakout that hints were manually optimized.
- Minor optimizations in the order of 2% enhancement.
|
| |
|
| |
|
|
|
| |
Still some distance ahead in properly separating execution and setup.
|
|
|
|
|
|
| |
This is an effort to separate netlist creation from netlist execution.
The primary target is to avoid that code which will only run during
execution is able to call setup code and thus create ugly hacks.
|