| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
* netlist: Explicitly trim connection names.
* Hook up Borderline netlist, provided by 'beta-tester'
* brdrline: Add static solver, using dynamic timestep, update driver flags.
|
| |
|
|
|
| |
* These are used during creation and reset only. No need to
maintain them on net_t level.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* Under cirtum circumstances the splitter would create "ghost" solvers
consisting of terminals already used in another and complete
solver. This may impact all netlist which use opamps and thus
is committed early in the cycle.
* This commit adds functionality to instruct the splitter code to
include terminals which will not create matrix elements into
the parsing of net groups for solvers.
|
| | |
|
| |
|
|
| |
* No longer added value.
|
| |
|
|
|
|
| |
* a number of minor fixes leading to an increase of 570% to 588% on
pongf.
* admittedly micro optimization.
* Includes some comments why certain decisions have been taken.
|
| |
|
|
|
|
|
|
|
|
|
| |
* length reports the number of character codes in the string
* size reports the size in memory units
* Reminder: Set PSTRING_USE_STD_STRING to 1 in pstring.h and get
native std::string
* pstrings are compatible to std::string but only support a limited
subset of functionality.
* By default (always like this) utf8 is supported and thus length
reports the number of multi-byte characters.
|
| |
|
|
| |
* where possible rely on forward declarations to optimiuze compile time.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Removed device and macro header files.
* All of those can be generated automatically so going forward there is
no need for these any longer.
* Introduced the modules concept. Modules are netlists for which
automatic lib entries are generated.
* Going forward you just store them in macro/modules and they will be
automatically registered as device elements.
* You need to do a "make generated" is src/lib/netlist/build
* Some_device.cpp still needs to be added to netlist.lua
* Added documentation on how to add devices to netlist.
* Please refer to adding_devices.md for more information.
|
| |
|
| |
* also fix an issue with netlist vs build
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
| |
* Added TRUTHTABLE_ENTRY to netlist language.
* Please see nlm_ttl74xx for reference implementation.
|
| | |
|
| |
|
|
|
| |
* This should be used for inputs which do not need a handler.
* Examples are data inputs which are only accessed on a clock change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sound and other improvements to Sega G-80 games: [Aaron Giles, couriersud]
* Added netlist-based sound to Eliminator, Zektor, Space Fury, and Astro Blaster.
* Split the Sega Universal Sound Board and Speech Boards into their own separate files.
* Improved Universal Sound Board implementation for better accuracy in Star Trek and Tac/Scan.
* Wrote netlist-based backend for Universal Sound Board; currently disabled due to limitations in the system.
* Wrote netlist-based backend for Speech Board; currently disabled pending future sound system changes.
* Implemented wait states and the vector DRAW flag to help improve timing.
SP0250 Improvements: [Aaron Giles]
* Matched clock divider to real chip measurements.
* Fixed behavior when not fed enough data; addresses "gapping" in speech in Sega games.
* Implemented accurate LFR noise generator according to real chip measurements.
* Added pulse-width modulation DAC output mode for future consumption by netlist.
Netlist additions: [Aaron Giles]
* Added compile-time option to record nltool-compatible CSV files.
* Improved CD4020 implementation.
* Fixed CD4053 behavior.
* Added 74139 device.
* Added TL082 device.
8253 PIT changes: [Aaron Giles]
* Added explicit synchronization to all writes.
* Cleaned up some timing calculations to avoid double<->attotime conversions.
|
| |
|
| |
* also raises error if during parsing a local source is not found.
|
| |
|
| |
* Provide more detail and rephrase to make them more clear.
|
| |
|
|
| |
* nl_base.h now basically only includes files from core.
* all headers in core compile on their own.
|
| |
|
| |
* preparational work for easier device addition.
|
| |
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
| |
* This was an over-aggressive optimization. Now prints an info and
recommends to comment out if appropriate.
|
| |
|
|
|
| |
* Add cd4053 to netlist.lua
* Recreated nld_devinc.h
|
| |
|
|
|
| |
* This is an infrastructure change to enable better error reporting
including file/source and line numbers in the future
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* Example: PARAM(Solver.Solver_0.METHOD, "GMRES")
* Will use the GMRES solver instead of the default MAT_CR solver.
* Same applies to all Solver parameters.
* Please use with care. If you change your netlist (e.g. using
frontiers) the allocation of nets to solvers and the number of solvers
may change. Thus this type of tweaking should only be used after the
netlist completely works.
|
| |
|
|
|
|
| |
* more handler alignment
* dead code removal
* remove update calls which do nothing
|
| |
|
|
|
| |
* Default nmos power pins to VCC and GND.
* MOS uses VDD/VSS - update gamemachine netlist.
|
| |
|
|
|
|
|
|
|
| |
* For truthtable cmos devices the power pin names will now be set
according to the logic family.
* Fix some issues for CD4538
* Change "already connected" warning to info level. Some ICs (CD4538)
connect pins internally to GND and the schematics again externally. This
will cause this info to be printed. The warning now is a lot more
verbose.
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
| |
* Logic and analogue outputs can now be flagged as "NC" (not connected).
* Example: "HINT(IC13.4, NC)".
* This will suppress info messages to be logged.
* The HINT must apply to an existing terminal. HINTs for non-existing
terminals are treated as fatal errors.
* Terminals and logic inputs not connected are still treated as
warnings. These need though and a proper fix.
|
| |
|
|
| |
* also simplifiy a return.
* document parameter value resolution.
|
| |
|
| |
Solution discussed with AJR in chat.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
- 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
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
pongf now peaks at 589% compared to 570% before.
Amongst a number of improvements in nl_base.h, the 7493 was touched.
Also has some code cleanup and hopefully faster compilation due to
extern template declarations.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Rom and prom devices now properly support tristate outputs. Native OC
output still on the todo list.
In addition this commit fixes a number of bugs around dealing with macro
level parameters and improves documentation by adding a parameter table.
Also srcclean.
|
| |
|
|
|
| |
This change will make it a lot easier to add enhanced functionality to
the factory infrastructure.
Using integral constants also improves linking stability.
|
| |
|
|
|
|
| |
During object creation netlist tracks the source files which provide
object creation. This is later used e.g. by nltool to create
documentation from source.
|
| |
|
|
|
|
|
|
|
|
|
| |
These tristate buffers natively support tristate outputs. For use cases
with fixed enable inputs the devices support a parameter
FORCE_TRISTATE_LOGIC which if being set to 1 makes the device behave
like a logic output.
Added additional syntax and consistency checks for tristate outputs.
Updated the example and added dip implementations including
documentation.
|