Commit Graph

90 Commits

Author SHA1 Message Date
Vas Crabb
626b566fee srcclean (nw) 2019-05-26 13:10:03 +10:00
couriersud
8eb674abc0 Added nld_generic_models.h to netlist.lua. (nw) 2019-03-31 23:49:03 +02:00
Vas Crabb
97b6717027 (nw) Clean up the mess on master
This effectively reverts b380514764 and
c24473ddff, restoring the state at
598cd52272.

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.
2019-03-26 11:13:37 +11:00
andreasnaive
b380514764 Revert "conflict resolution (nw)"
This reverts commit c24473ddff, reversing
changes made to 009cba4fb8.
2019-03-25 23:13:40 +01:00
couriersud
39a7c420b1 netlist: add MOSFET model. [Couriersud]
- 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.
2019-03-25 21:45:37 +01:00
couriersud
672f9b092a Move ptime struct into plib namespace and fix relative includes. (nw) 2019-02-23 18:54:27 +01:00
cam900
9e495a17eb
scripts/src/netlist.lua : Fix spacing 2019-02-14 06:48:56 +09:00
couriersud
fb685c05b9 netlist: memory allocation clean-up. (nw) 2019-02-13 22:37:07 +01:00
Sergey Svishchev
737093be1e netlist wip: 7474, 7497, test driver 2019-01-07 22:33:54 +03:00
Felipe Corrêa da Silva Sanches
e88ec6a7a5 A large portion of the Atari Gran Trak 10 schematics (1974)
implemented on MAME using the netlist subsystem.
2018-07-28 11:37:12 -03:00
Vas Crabb
e892661905 srcclean (nw) 2017-05-28 13:40:48 +10:00
Vas Crabb
2d4ba2471d netlist: add a crude TTL schmitt trigger model and hook up in 1B11142
sound board, completing the tromba circuit

(nw) I'm not sure whether the model works properly or not, but in the
circuit where it's used, I don't think it can work properly with the
current TTL output model.  A capacitor is charged by the Q output of a
74LS74 flipflop (U3A) until the voltage passes the Schmitt trigger's
threshold, causing it to reset the flipflop.  However, the positive
trigger voltage of the Schmitt trigger is 1.6V, but our TTL output model
has a high output voltage of 1.0V (see nl_base.cpp:89).  I realise the
simplified model of TTL logic with high impedance inputs and outputs
behaving as though thery're loaded is convenient and fast to simulate,
but it's not detailed enough for applications like this where
7400-series chips are used in analog circuitry.  This is what held me up
last time I tried adding a netlist for this sound board.
2017-05-27 18:44:23 +10:00
couriersud
bc29593982 Netlist refactoring:
- OPENMP refactored. All OPENMP operations are now templatized in pomp.h
- We don't need thread-safe priority queue. Event code updating analog
outputs now runs outside the parallel code. 
(nw)
2017-05-27 00:11:14 +02:00
Vas Crabb
8f15315a52 srcclean (nw) 2017-02-19 11:40:55 +11:00
R. Belmont
7b193346a8 Merge pull request #2068 from JoakimLarsson/prodigy_display
Prodigy display
2017-02-17 21:59:51 -05:00
couriersud
0716d96514 Reworked truthtables a bit.
- Moved 9312 and 74279 to ttl macro library.
- Renamed TTL_9312_* to DM9312. This is more appropriate.
- Fixed a number of warnings from latest ubuntu clang-5.0.
2017-02-17 20:10:15 +01:00
Joakim Larsson Edstrom
520e693dc2 prodigy: added new devices to script files 2017-02-17 09:05:30 +01:00
couriersud
9a71daa2e0 Make windows builds of nltool and nlwav understand unicode.
nltool and nlwav now use wmain, i.e. UNICODE main on windows. (nw)
2017-02-10 21:53:01 +01:00
couriersud
ab17457707 Make sure netlist includes are not found directly on include path.
Instead, they have to be prefixed by "netlist/". Removed unneeded link
librariers for nltool and nlwav along the way. (nw)
2017-02-10 21:52:09 +01:00
couriersud
c713f9ed1d Separate include file usage for netlist.
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)
2017-01-29 15:47:12 +01:00
couriersud
5c88873a87 Cleanup of includes. (nw) 2017-01-27 15:22:17 +01:00
Vas Crabb
edf64df1db srcclean (nw) 2017-01-22 15:37:37 +11:00
couriersud
ca11021d73 Netlist:
- refactored reverse polish notation evaluator into own source files.
- added function parameter to current and voltage sources VS and CS.
  You can now use those to e.g. produce a sine wave.
- Changed code to allow devices to optionally be treated as dynamic or 
  timestepping devices.
[Couriersud]
2017-01-17 01:35:16 +01:00
couriersud
674077f89f Prepare source for consistent error message usage. (nw) 2017-01-14 16:35:57 +01:00
couriersud
9d3d07b771 Move netlists into macro folder. (nw) 2017-01-09 00:28:31 +01:00
couriersud
02c3f45bff Fix clang "-Wno-weak-vtables" warnings in netlist source. Refactored
code along the way. (nw)
2017-01-05 01:43:31 +01:00
couriersud
78ef96336e Added SIGFPE enabling code to plib/pexception.*. Moved plib exceptions
into these files as well. The code uses <cfenv> which is part of c++11
standard. Non-standard glib extensions are currently only used on linux
and (i386 or x86_64). (nw)
2017-01-04 18:01:22 +01:00
couriersud
63f4e52dae Moved proxy code into separate file. (nw) 2016-12-28 13:48:48 +01:00
MooglyGuy
fbb8ee0fe8 -netlist: Added 82S123 256-bit (32x8) TTL bipolar PROM. [Ryan Holtz] 2016-12-24 22:09:59 +01:00
therealmogminer@gmail.com
9c4c4d0a5b -netlist: Added 82S126 4kbit (512x8) TTL bipolar PROM. [Ryan Holtz] 2016-12-23 23:29:45 +01:00
Vas Crabb
f5bc78c211 netlist: Added 4316 bilateral switch pack. 2016-12-23 14:54:54 +11:00
therealmogminer@gmail.com
677aaaec3d -netlist: Added 74165, 74194, 7475, 7485, and DM9322 devices. [Ryan Holtz] 2016-12-22 19:39:52 +01:00
therealmogminer@gmail.com
66abfa8e6d -netlist: Added shared RAM pointer, for use by netlist RAM devices which need updating by non-netlist driver code. [Ryan Holtz]
-netlist: Added new devices: [Ryan Holtz]
 * Intel 2102A 1Kbit (1024 x 1) Static RAM
 * 74365 Hex Bus Driver with 3-State Outputs
 * Generic 2- and 3-terminal Tristate device
 * Note: Tristate device and 74365 do not actually tristate, they are simply a way of combining multiple outputs + chip enables.
2016-12-21 20:32:49 +01:00
therealmogminer@gmail.com
4a71e6bdcf -netlist: Added 74166 Parallel-Load 8-Bit Shift Register device. [Ryan Holtz] 2016-12-21 20:32:48 +01:00
therealmogminer@gmail.com
e3e38025c3 -netlist: Added 2716 16 Kbit (2 Kbit x 8) UV EPROM. [Ryan Holtz] 2016-12-21 20:32:47 +01:00
therealmogminer@gmail.com
32d0f10418 -netlist: Added 74174 Hex D-Type Flip-Flop with Clear [Ryan Holtz] 2016-12-21 20:32:47 +01:00
therealmogminer@gmail.com
19165cfbfd netlist: Added 82S126 1K-bit bipolar PROM device. [Ryan Holtz] 2016-12-21 20:32:47 +01:00
therealmogminer@gmail.com
72f4f2a20e netlist: Device additions: [Ryan Holtz]
* 74161 Synchronous 4-Bit Binary Counter with Clock
 * 7473 Dual Master-Slave J-K Flip-Flops with Clear and Complementary Outputs
 * Am2847 Quad 80-bit Static Shift Register
 * DM9334 8-bit Addressable Latch
2016-12-21 20:32:46 +01:00
Vas Crabb
234e91f9fb Add Lua-cleaning ability to srcclean 2016-08-30 14:57:38 +10:00
Miodrag Milanovic
b6a6a03fa5 fix for Android build (nw) 2016-06-28 11:04:56 +02:00
couriersud
c6e6911aed Netlist changes
- 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]
2016-06-23 02:04:51 +02:00
couriersud
81880659d2 - More code cleanup.
- 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]
2016-06-07 21:44:15 +02:00
balr0g
b277908905 - Minor cosmetic refactoring. Added a "uninitialised array" template to
allow in-place creation (for increased locality) of netlist classes.
Main use is in truthtable class.
- Remove PLIB_NAMESPACE macros.
- Remove namespace macros. Use explicit namespace declarations.
- Moved device definitions into cpp files.
- Moved more device definitions into cpp files.
- New prefix "nlid" for include files flags purely internal include
files not to be leaked into userland. 
- Fix factory code.
2016-06-07 21:40:30 +02:00
couriersud
658f6b432a Converted 7486 to macro module 2016-05-05 23:33:01 +02:00
couriersud
d3c0199769 Removed drivers/signal.h since netlist devices no longer use it. (nw) 2016-05-05 15:18:37 +02:00
couriersud
add61d2a00 Convert 7430 to macro module. 2016-05-05 15:18:37 +02:00
couriersud
38d3050da0 Convert 7425 to macro modul 2016-05-05 15:18:36 +02:00
couriersud
87541ec5ca Converted 7420 to macro modul 2016-05-05 15:18:36 +02:00
couriersud
a920da0ec3 Convert 7432 to macro device. 2016-05-04 00:51:51 +02:00
couriersud
1ea05793be Converted 7437 to macro device 2016-05-04 00:08:09 +02:00