Commit Graph

26 Commits

Author SHA1 Message Date
couriersud
7fa10acca6 Added 74192, 9316, 9310 and 74193 devices to netlist. Added breakout
(wip) netlist as well, but still have to implement three more devices
until work can really start. [Couriersud]
2015-04-22 00:45:21 +02:00
couriersud
6b8eb847ea Document more work on breakout. Further additions to nl_dice_compat.h.
(nw)
2015-04-20 00:56:16 +02:00
couriersud
2ff982fef7 Added 9602 one-shot to netlist. (nw) 2015-04-19 22:56:56 +02:00
Zoë Blade
1e5c5c9fae Tidy more whitespace 2015-04-08 15:14:01 +01:00
Couriersud
f3cf3a8e78 Preliminary support for LTE dynamic time-stepping based on Local truncation error. This enables the possibility to connect a capacitor between ground and a TTL output and get a e.g. 100 ns delay with a 1nF capacitor.
Added an example circuit (cdelay.c)
Changed the log device to support nano-second granularity.
LTE is not yet enabled due to it's ugly test-state.
2014-05-15 22:50:40 +00:00
Couriersud
fa60c8874d Analog input updates now send to queue. Reduces risk of stack overflows.
Fixed a bug which caused NAND astable multivibrator to oscillate. 
74123 improvements
2014-05-15 00:03:27 +00:00
Couriersud
1f70685652 Added first draft of 74123 to netlist code. 2014-05-06 22:37:20 +00:00
Couriersud
dce5fbf03e Netlist:
- Pong Doubles now working
  Thanks a lot to Adam Bousley for dual licensing DICE netlists.
  Hooked up player inputs
- Minor performance tweaks
- Separated game netlists from driver. Dice is making extensive use of macros which may conflict
  if these are in one source file.
- Added some rescap.h macros to netlist

New games added or promoted from NOT_WORKING status
---------------------------------------------------
Pong Doubles [DICE Team, Couriersud]
2014-05-05 20:02:26 +00:00
Couriersud
962bf9df8b More work on pong doubles. Working again (if enabled). 2014-05-04 21:38:11 +00:00
Couriersud
4b4b4542b2 Netlist:
- fixed a bug in which the fallback solver was called instead of gauss - seidel.
- matrix solvers are now subdevices of the solver devices
- matrix solvers can now be scheduled independently
- Rename RESCHED_LOOPS to GS_LOOPS (Gauss Seidel)
- Added paragmenter NR_LOOPS (Newton Raphson)
2014-04-18 17:58:35 +00:00
Couriersud
b50d6fff9d Fixed netlist opamp example. 2014-03-04 09:25:39 +00:00
Couriersud
4fcf7b5bcf Implemented CD4066 device - Quad Bilateral Switch. [Couriersud] 2014-03-02 20:23:53 +00:00
Couriersud
3b82caf8ac NPN BJT now working 2014-03-01 16:16:22 +00:00
Couriersud
c32fba0da7 Minor cosmetic changes for netlist 2014-02-26 00:21:06 +00:00
Couriersud
aa0b321b05 Fixed netlist examples. 2014-02-23 14:57:24 +00:00
Couriersud
686d540bad Netlist can now be included as sub-circuits. That's the same approach SPICE uses.
The implementation also supports nesting. 
Opamp emulation now is as easy as

    /* Opamp wired as impedance changer */
    SUBMODEL(op, opamp)

    NET_C(op.GND, GND)
    NET_C(op.PLUS, clk)
    NET_C(op.MINUS, op.OUT)

The missing bit now is a central submodel repository. I'll start a discussion soon on the list.

nl_examples/opamp.c is an example of a impedance changer stage followed by a 1:2 amplifier stage.
System size (= number of voltage levels to be calculated) is between 20 - 30.
Using a simple, yet better opamp model than usually implemented in the old discrete core, I get

./nltool -f nl_examples/opamp.c -t 30
startup time ==> 0.002
runnning ...
30.000000 seconds emulation took 0.438599 real time ==> 6839.96%

Which leaves quite some buffer to emulate even complex mixing and filtering stages in real-time :-)
2014-02-13 00:28:18 +00:00
Couriersud
534348f6a9 Commit current state of netlist examples. Later, these are intended as a basis for regression tests. 2014-02-09 22:43:58 +00:00
Couriersud
4dc77142f9 Major renaming of netlist device macros, like
NETDEV_ALIAS ==> ALIAS
NETDEV_R ==> RES
NETDEV_C ==> CAP
2014-01-19 15:51:25 +00:00
Couriersud
5876abcfaf Netlist:
- Working Ebers Moll model. That's a significant step ahead.
- Simple 2x2|RHS SPICE stamps now supported by two terminal devices.
  This was implicitly contained in the design, but set_mat now shows how
  a two-terminal device fits into a SPICE approach.
- Introduced direct solvers for net groups with 1 or 2 nets.
- Introduced specialized solvers for N=1,2,3,4,5 by using templates.
- nice performance increase for BJTs
2014-01-18 13:58:15 +00:00
Couriersud
a122e599ee Removed some dead code and ambiguous functions in the netlist code. [Couriersud] 2014-01-12 01:12:12 +00:00
Couriersud
02c926d422 Removed two duplicate devices in netlist. 2014-01-11 19:11:05 +00:00
Couriersud
320bb3263a Implemented near-to-proper reset for all netlist devices. Reset now works for improved matrix solving. [couriersud] 2014-01-11 18:32:01 +00:00
Couriersud
f8eac14fa9 Quite a number of simplifications for netlist. Also tested some parallel processing using OpenMP (disabled). No wn 2014-01-10 19:23:42 +00:00
Couriersud
093e3f5f21 Some more netlist examples. 2014-01-06 14:40:43 +00:00
Couriersud
3b28221fd3 Fixed PNP model and added test netlist (bjt.c) [Couriersud] 2014-01-01 20:28:59 +00:00
Couriersud
a8a62c3212 Enhanced the netlist parser and cleaned pong.c. Also added a folder nl_examples which contains standalone netlist examples. [couriersud]
The examples have a ".c" suffix. In eclipse, I get automatic syntax parsing and error notifications. The parser treats "#" preprocessor defines/includes just as comments.

All of these examples can be run through nltool:

./nltool -f nl_examples/opamp.c -t 1 -l OUT

runs the opamp example for 1 second of emulation time and logs the terminal named "OUT" to "netlist_log_OUT.log".

I'll post a simple script to the list to visualize those logs using gnuplot.
2013-12-31 15:35:08 +00:00