| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
- clang lint and pedantic fixes
- mat_cr.h: separate solving linear systems from underlying matrix
|
| |
|
|
|
|
| |
- fixed lint corrections
- added NOLINT where needed
|
| |
|
| |
|
|
|
|
| |
nltool now supports a validate command which acts similar to MAME's
validation.
|
| |
|
|
|
| |
This approach uses functors for logging messages.
|
|
|
|
|
| |
- fix sound route dependency
- add "K" as a valid Kilo multiplier.
- Fix current source parameter update.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
improvements.
- fix MB3614 parameter
- Added VARCLOCK which derives step size from function
- optimized function handling in CS and VS
- fixed a bug in ppreprocessor
- add trunc to pfunction
- added opamp_amplification_curve to derive characteristic
amplification curve
|
|
|
|
|
|
|
|
| |
- Untie diode code
- Fix some typos
- add TYPE=2 opamp model which omits output voltage limitation
Useful for determining causes of non-convergence
- Fix MB3614 opamp parameters to match datasheet
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Despite the overhead - two devices more per transistor - this addition
significantly reduces computing time on switching conditions by reducing
the needed Newton-Raphson loops dramatically.
|
| |
|
|
|
|
|
|
|
| |
Change the sign of go (or in other terms a12 and a21 matrix stencil
elements). This should make further optimization of matrix population
easier.
In addition hopefully improve the readability of the code by sacrifying
overloads for more verbose member names.
|
| |
|
| |
|
|
|
|
| |
nl_types.h is part of libc++. Any project with a file with the same name
on the include path just fails to compile. Renamed to nltypes.h
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
- enable GCC diagnostics in vector ops for GCC 7 again
- Use forwarding in vector_ops
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
| |
This previously was part of net_lib.cpp and repeatedly caused bugs.
|
| |
|
|
|
| |
to run at acceptable speed again.
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
On some I wasn't entirely sure :-(
Thanks Vas:
https://github.com/mamedev/mame/commit/0f0e8853f33bef49bc6f5bd8b53444d209699e44#r31909683
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- more use of c++ features
- some CRTP in pfmtlog
- demangled code for truthtables
- use more constexpr
- rewrite main loop
- use default constructors and assignment operators were applicable.
- optimized 7448 and 9316
All of this has decreased startup time by approx. 25% to 30%. Complex
netlists like pong or kidniki are parsed, analyzed and constructed in
around 15 ms. Run performance has increased by about 5%.
All in all not to bad. A game like pong uses a clock of 7 MHz (after
division by 2). Thats 14 MHz clock invocations. Running at over 200%, 28
MHz. On a 3.9 GHz Machine about 140 cycles/clock change.
[Couriersud]
|
| |
|
| |
|
| |
|