Commit graph

16 commits

Author SHA1 Message Date
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