summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_lists.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Netlist refactoring couriersud2017-02-251-89/+79
| | | | | - align timed_queue closer to std::priority_queue - use uint8_t in extended clock for better memory usage. - minor changes to nl_breakout.cpp (nw)
* Fix netlist stats collection. Code refactoring: couriersud2017-02-241-13/+45
| | | | | | | Small improvement for 7493. Convert 9316 from subdevice to delegate. Convert 74107 from subdevice style to delegate. Also refactored inconsistencies in other parts of the code. (nw)
* Added a heap priority queue to the netlist source. couriersud2017-02-241-4/+122
| | | | | This is currently not used since performance drops by about 40%. The typical use case would be circuits a lot more complex than those we currently emulate where the 2*log(n) advantage really applies. (nw)
* Improve readability. Add more c++11 noexcept and swap semantics. couriersud2017-02-221-22/+27
| | | Also fixed clang-5 warnings. (nw)
* Reorder include order to comply with best practices. (nw) couriersud2017-02-101-4/+4
|
* Netlist: It is now possible to have multiple handlers per device ... couriersud2017-02-051-1/+1
| | | | | | | | | | | | | ... for updates. This will make device implementation more flexible and faster. A nice side-effect is that there was some minor (<5%) performance increase already. Each input is now assigned a notification handler. Currently this is update, but going forward this may be a custom handler. In addition - fixed MEMPOOL on OSX - removed dead code - avoid bit-rot - added delegate support for emscripten and arm processors - added delegate support for VS 2015 x64 [Couriersud]
* Add constexpr add noexcept. (nw) couriersud2017-02-051-11/+16
|
* Avoid conflict with Apple C++ runtime header nl_types.h Vas Crabb2017-02-041-1/+1
|
* Separate include file usage for netlist. couriersud2017-01-291-1/+1
| | | | | | | | Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. (nw)
* Minor refactoring. (nw) couriersud2017-01-271-0/+1
|
* Remove macro to avoid copying and replace with a struct. (nw) couriersud2017-01-271-2/+1
|
* More netlist refactoring: couriersud2017-01-251-29/+40
| | | | | | | | - Remove virtual from some destructors and make them protected. - Various cleanups. - Small performance improvement. - Fixed some inconsistencies. - More c++ refactoring. (nw)
* Fix seldom used conditional build options. couriersud2017-01-121-24/+38
| | | | | | | | - Fixed OPENMP compile For congo bongo, using Solver.PARALLEL=1 significantly increases performance from 270% to 380%. However, this has to be taken with a grain of salt. Enabling this on predominantly logic netlists can severly kill performance. - Increased readability of timed queue code.
* Improve readability and remove some trampolines. (nw) couriersud2017-01-121-3/+3
|
* Use noexcept in netlist code where appropriate. couriersud2016-08-071-8/+8
| | | | | Use macro NL_NOEXCEPT if debug builds would throw an exception (e.g. by using nl_assert). This is not entirely safe. Going forward, nl_assert should call log first and than throw. (nw)
* Netlist updates: couriersud2016-07-211-1/+1
| | | | | | | | | | | | | | | - Removed trampolines (OUTLOGIC, INPLOGIC and friends). - Started using doxygen comment and documentation style. Added doxygen files to documentation folder. - Refactored code triggered by doxygen output. - Moved internal and support classes into namespace detail. - Use an anordered map in parser. - -Wconversion fixes - All done now. - Fixed -Wold-style-cast warnings in netlist code. - Added iterators to pstring. - Moved two macros, added more RAII and improved exceptions. Fixed some bugs in parser code. - Fixed a number of bugs in parser code and exception handling. [Couriersud]
* Srcclean on netlist files. Avoid the merge massacre. (nw) couriersud2016-06-251-5/+5
|
* Netlist changes couriersud2016-06-231-13/+7
| | | | | | | | | | | | | | | | | | | | | - Replaced shared_ptr by unique_ptr. - Better seperation of setup_t and netlist_t. - Fixed bugs in rdtsc code. Refactored timer code. - Simplify conditional activation/deactivation. - Introduced HINT(device, hint) to clarify that hints are inheritent and not specific to devices. - Added improved profiling support to netlist. Statistics output now proposes devices for which whole device activation/deactivation be disabled. No significant improvement for pong, but breakout experiences a 10% improvement. - Moved options code from include to cpp file. - Minor modifications to 7493 and 9316 - Introduced perftime_t and perfcount_t for gathering statistics. These templates do not create any code if statistics are not kept. - Make help2man ./nltool produce usuable output. - More truthtable refactoring. Removed half-finished code for internal state support. As implemented, this would have had no support for timing delays. [Couriersud]
* Merge netlist_dev branch, all code_refactoring: (nw) couriersud2016-06-161-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Object model optimisation. Merge remote-tracking branch 'origin/master' into netlist_dev Fix a merge issue. #if ==> #elif. Ouch. Default PHAS_PMF_INTERNAL=0 for 32bit windows mingw. Change UINT8 to uint_[fast|least|8_t. Move state_var so it can be used by base devices as well. Remove last traces of ATTR_ALIGN. Refactored netlist_time into a template. Removed implicit double assignment to netlist. Doomed to produce bugs. Instead, use netlist_time::from_double. Switch to using proper (i.e. bool type) param_logic_t. Formally differentiate between logic inputs (e.g. switches) and int inputs (e.g. resistor ladders or selection switches). Added parameter USE_DEACTIVATE to truthtable devices. Added more constexpr to netlist_time. Fixed some ifdef code paths. - More c++. - Simplify main processing loop. As a nice side-effect that squeezed out some cycles. - More cycle squeezing. - Removed pvector_t. - Use std::sort. - Refactored netlist state manager. - Introduction of state_var object template to be used on device state members. - Changed remaining save occurrences to state_var. - Rewrote nltool's listdevices command. This allowed removal of one member from devices which served solely for listdevices. - Remove hashmap_t. Fix kidniki regression.
* - More code cleanup. couriersud2016-06-071-67/+32
| | | | | | | | | | | | | | - Dead code removal and minor refactoring. - Simplify. Align naming with stl. Fix somed pedantic warnings. - More STL compatability. - Remove ATTR_HOT and ATTR_COLD. Refactored netlist_time. - Fix long standing workaround which would ignore policy of change-only" propagation. - Rewrote for loops to use auto : semantics. - Truthtable cleanup. (nw) - Get rid of nl_math. Remove nl_util.h and moved contents to plib/putil.h. - Fix standalone build. Refactor ptypes.h. [Couriersud]
* Leading underscore massacre. (nw) couriersud2016-05-271-10/+10
|
* Moved more code into plib namespace. (nw) couriersud2016-05-271-1/+1
|
* Moved all parameter definitions in constructors. (nw) couriersud2016-05-251-1/+5
|
* Fixed breakout attract mode. (nw) couriersud2016-05-251-1/+12
|
* All netlist devices now follow new syntax. Removed dead code. All sub couriersud2016-05-211-9/+12
| | | | devices are now forced to be initialized in the constructor. Device setup now completely in constructor. Removed start call. [Couriersud]
* Use std::atomic in nl_lists.h with OpenMP Vas Crabb2016-03-221-3/+6
|
* netlist updates: couriersud2016-03-141-12/+8
| | | | | | | | | | - First steps to move towards c++11. - Base plist on std::vector - Replace pstack with std::stack - Remove pnamed_list - use c++ "for each" in a number of places - Fixed two "time bombs" [couriersud]
* Moved netlist from emu to lib (nw) Miodrag Milanovic2015-09-121-0/+158