From 7f3cb33f8c6ed6d7684d526d1a2464e9627f56bd Mon Sep 17 00:00:00 2001 From: stefanjones Date: Sun, 31 Aug 2003 12:27:27 +0000 Subject: [PATCH] 2003-08-31 Stefan Jones * tests/TransImpedanceAmp/output.net: processed with dos2unix * configure.in src/spinit.in src/spinit src/xspice/cmpp/Makefile src/xspice/cmpp/Makefile.in: Make configure automatically set paths for lex yacc and install dir 2003-08-30 Stefan Jones * src/Makefile.am Makefile.am README.Tcl src/xspice/README src/xspice/icm/README src/xspice/icm/spice2poly/icm_spice2poly/README: Updated to reflect codemodel support is now complete * src/xspice/{Makefile.am,xspice.c} src/xspice/cm/{cmexport.c,Makefile.am}: Moved the xspice library hooks into the cm directory * src/Makefile.am src/ngspice.idx: Remove ngspice.idx and make it auto-generated and installed --- ChangeLog | 21 + Makefile.am | 2 - README.Tcl | 4 +- configure.in | 9 +- src/Makefile.am | 16 +- src/makeidx.c | 10 +- src/ngspice.idx | Bin 13464 -> 0 bytes src/spinit | 13 - src/spinit.in | 13 + src/xspice/Makefile.am | 8 - src/xspice/README | 78 +- src/xspice/cm/Makefile.am | 3 +- src/xspice/{xspice.c => cm/cmexport.c} | 2 +- src/xspice/cmpp/{Makefile => Makefile.in} | 12 +- src/xspice/icm/Makefile | 36 +- src/xspice/icm/README | 52 -- .../icm/spice2poly/icm_spice2poly/README | 49 -- tests/TransImpedanceAmp/output.net | 764 +++++++++--------- 18 files changed, 517 insertions(+), 575 deletions(-) delete mode 100644 src/ngspice.idx delete mode 100644 src/spinit create mode 100644 src/spinit.in rename src/xspice/{xspice.c => cm/cmexport.c} (97%) rename src/xspice/cmpp/{Makefile => Makefile.in} (70%) delete mode 100644 src/xspice/icm/README delete mode 100644 src/xspice/icm/spice2poly/icm_spice2poly/README diff --git a/ChangeLog b/ChangeLog index a1987358b..d86f1ff98 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,26 @@ +2003-08-31 Stefan Jones + + * tests/TransImpedanceAmp/output.net: + processed with dos2unix + + * configure.in src/spinit.in src/spinit + src/xspice/cmpp/Makefile src/xspice/cmpp/Makefile.in: + Make configure automatically set paths for lex yacc and install dir + 2003-08-30 Stefan Jones + * src/Makefile.am Makefile.am README.Tcl + src/xspice/README src/xspice/icm/README + src/xspice/icm/spice2poly/icm_spice2poly/README: + Updated to reflect codemodel support is now complete + + * src/xspice/{Makefile.am,xspice.c} + src/xspice/cm/{cmexport.c,Makefile.am}: + Moved the xspice library hooks into the cm directory + + * src/Makefile.am src/ngspice.idx: + Remove ngspice.idx and make it auto-generated and installed + * configure.in: Change version to 0.2.14 diff --git a/Makefile.am b/Makefile.am index 23ba6a0c6..74de00865 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,5 +19,3 @@ tcl: install-tcl: cd src && $(MAKE) install-tcl -codemodels: - cd src/xspice/icm && make \ No newline at end of file diff --git a/README.Tcl b/README.Tcl index 3de863c9e..5cb1a01dc 100644 --- a/README.Tcl +++ b/README.Tcl @@ -52,10 +52,12 @@ and based upon the NG-Spice source code base with many improvements ** More information: - tclspice/src/tcl/README : more in depth information on how to create your + src/tcl/README : more in depth information on how to create your own Tcl scripts. Example also supplied in the same directory (vector_test.tcl). + src/xspice/README : More details on the xspice additions / useage + http://tclspice.sourceforge.net/ : Homepage of Tclspice Stefan Jones diff --git a/configure.in b/configure.in index cca274a30..51c1994d4 100644 --- a/configure.in +++ b/configure.in @@ -402,9 +402,10 @@ dnl Add new code models to the build by pointing to them here. if test "$enable_xspice" = "yes"; then AC_MSG_RESULT(X-Spice features included) AC_DEFINE(XSPICE) + AC_PROG_YACC + AM_PROG_LEX XSPICEDIR="xspice" - XSPICELIB1="$XSPICEDIR/xspice.o \ - $XSPICEDIR/mif/libmifxsp.a \ + XSPICELIB1="$XSPICEDIR/mif/libmifxsp.a \ $XSPICEDIR/cm/libcmxsp.a" XSPICELIB2="$XSPICEDIR/evt/libevtxsp.a \ $XSPICEDIR/enh/libenhxsp.a \ @@ -415,7 +416,7 @@ if test "$enable_xspice" = "yes"; then else XSPCIEDIR="" XSPICELIB1="" - XSPICELIB2="" + XSPICELIB2="" fi AC_SUBST(XSPICEDIR) AC_SUBST(XSPICELIB1) @@ -443,6 +444,7 @@ doc/Makefile \ man/Makefile \ man/man1/Makefile \ src/Makefile \ +src/spinit \ src/spicelib/Makefile \ src/spicelib/analysis/Makefile \ src/spicelib/devices/Makefile \ @@ -503,6 +505,7 @@ src/maths/sparse/Makefile \ src/misc/Makefile \ src/xspice/Makefile \ src/xspice/cm/Makefile \ +src/xspice/cmpp/Makefile \ src/xspice/icm/makedefs \ src/xspice/mif/Makefile \ src/xspice/evt/Makefile \ diff --git a/src/Makefile.am b/src/Makefile.am index 05eae5623..00ce1f32e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,7 +8,7 @@ EXTRA_DIST = ngspice.txt spinit setplot spectrum helpdatadir = $(pkgdatadir)/helpdir -helpdata_DATA = ngspice.txt +helpdata_DATA = ngspice.txt ngspice.idx initdatadir = $(pkgdatadir)/scripts @@ -59,15 +59,6 @@ DYNAMIC_DEVICELIBS = \ spicelib/devices/vcvs/libvcvs.a \ spicelib/devices/vsrc/libvsrc.a - - -## ----- Note that I moved this stuff to here because it was causing automake -## to choke when it was in the DYNAMIC_DEVICELIBS list above ----- -## This lib deleted from DYNAMIC_DEVICELIBS by sdb 'cause there's no source for it. -## spicelib/devices/bjt2/libbjt2.a \ -## poly added to dynamic libs by SDB on 6.1.2003 -## xspice/icm/poly/libpoly.a - ## Build ngspice first: ngspice_SOURCES = \ @@ -159,12 +150,9 @@ ngmultidec_LDADD = \ makeidx_SOURCES = makeidx.c -makeidx_LDADD = \ - misc/libmisc.a - ## create index for online help: -all: +ngspice.idx: makeidx ./makeidx $(srcdir)/ngspice.txt diff --git a/src/makeidx.c b/src/makeidx.c index fe7febb4a..11c00cffc 100644 --- a/src/makeidx.c +++ b/src/makeidx.c @@ -4,13 +4,13 @@ Copyright 1990 Regents of the University of California. All rights reserved. /* from FILENAME.txt, make FILENAME.idx */ -#include "ngspice.h" #include -#include "cpdefs.h" -#include "hlpdefs.h" -#include "suffix.h" - +#include +#include +#include +#include +#include int main(argc, argv) diff --git a/src/ngspice.idx b/src/ngspice.idx deleted file mode 100644 index 6cda8a5f93aa5a0d22140da056c5a64132aa5e99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13464 zcmbuFeXJZ+6~NE#>?;Il2^BB|#EE>>N=sT_8^HQ-c6au5+WqRx>}y|B3iEbnyBBA7 zwllM@JZgi@3#sy<(SY#}Z6ZcQEx`yO7NcN_(!^A-CMd;^v^H%+tfrV+sEvB=%)Wig z>)YL#d-t!|`|-QyoO|xMpLK&Yfb*y1b+wQ#rF5l`XF)w01JK8dvL+TXqLi1iyH z1TDQBAe|DWhG9*)#En=xDE`V708&cS>V{=$WE-NQ^XgZjE{@S~iP`X?SN8>RuK_69 zmbuw2n4;E(Rdu`iD) zDOt=F(sFi?{pQn2DWk8KlI`wgApi_vBwbD+>#;K!O>*7#z@{2A0pKf>s7q_2Oq_Cy zcw!2}S!COeOwsX@ODcIKKPqOF?4SWQk5Q+0&W;y3D^n*8{4+u?-SRL%yRM{;mWnOq{t{l;cZ+x>SBeXKFe;Yt)o0GL)7C%knN2_U>6_J%izK6Q(AYQpetdP~E(e{i`QvF#@E0ol*PXB|S`ZhJ2W}`w^Ae!BB$`RE%wjb9Y zEz4z`7JR*y97KDNM$5HH#jq|?HB`c}Lpb&yY}yS}gfK!*A4Xk>SvEJ)H3*H$h7+ps zu0rSE_I252nHk62-ZC5IDKV4lDiGrHz@Gqu*2Oey=j=GzVT{?9XKXW5cEfXQi#mU* z)r-^b z9*)7fR-^3ideQ`^*l>N(O}b|!27cAh7VNGaeE%&OgCuF%mf?sUd4f%%za$Yau5wYz zz8o^v>46k(m>L%$;OknKJu<|!Dsr`Imc78`g5}X5^0(^9$jDrRoN;21D`-fG-XAks zy|rtG!ETb@?LmgjC&%=m83wx?Z~r#d-ru(OZ-tUxEa`MdhzBdU*$eU8`c4cqC0EKy zI9$XrNmZmIuGz&9RXar{kHrAj`?`XAQ*1kpUxPQJo!Y_2%m0bN@;n`k)A{nlq`h}(9F|Lba@>9yGSYmE6N@N=2Es5>&tIl^H8S!AMU&^x z50g552Qmu9FhzToS+W`##mznQ!(`ZZAw!b~o|E)ry>bsS^i01Z1M@~?%D~0Lz>>WS z+^fVPDe0-TVle1?m+YPM_y%eZX$;SULa#UG(sruID5`jr%MSU?7-eJ&90+*zeq>~D z!!uXF2>-uWjbj|s@r(_Rq|qw=cTtrwB{b#y196ZyVI_Z6sEL_U-ap?CRw5W3HC@8v zjJ~|*cgN`&N{*iHb!3pD9T{H#-43IFV|^sKav#RRa-RYrvOf0{WLU&tpRoa&FH(kQ zIw9KYRpe7IA;T>b(zI-^SD^vv`(LJvCMk1laF6@~$8BrdfR_4a%fH0Ft@JN5DEIpZ z;*d6Roo?fS9pmp4zd{D5f9(4;m7|LBhfxTucKje^Sf5j=0TGT-_m?AaSZg?yvfX4h$jZMW!?c<_ z_V~_GWcb?@W-;LA<2W~P#11Nd>O>sY*%LgW5bih?hpfrfwXpqNWcY_4ha&ilx4NQ0+mCIkUC;LQtF+!{OO`AaFo-T0d%gFC9ZKdBEvCwwjS`a%|3%Gko|B=z;K&3^F80* ztpeT^7+kx;#TCk^aP1t3Nf~_e+`p;! z)tv(Fqa4#H*O&!ay-NV4D(W?}AkmCFK-QQrdFH6&y9F4vJ+8g!_%!+l-ag|M zKeM}k?GXWzXwuI|bE^-PPVT{RJ9FFdp`7r4u6={dl!{$t&z_%Ue7Y+=%I78jon;J1sn}Ka8?i*k9;>?2qkJw{l$h<8WR#k-WtS~Z z0KNp8Olk&#Mqjs59^lrhG|cFTLm5jJbf!NY?o)q!G$$G zgJ;NrS@RjJA>FsZV^8^v)jS3%9vGtMWB!RUE9ZlM4z=HovJwDJy+1_vg#JS|R?0KN b0vO|rK{qa>489n2>($8M9CJ5azX1LZG;+O+ diff --git a/src/spinit b/src/spinit deleted file mode 100644 index 3ca6af8c2..000000000 --- a/src/spinit +++ /dev/null @@ -1,13 +0,0 @@ -* Standard spice and nutmeg init file -alias exit quit -alias acct rusage all -set x11lineararcs -* For SPICE2 POLYs, edit the below line to point to the location -* of your codemode. -* codemodel /usr/lib/spice/spice2poly.cm - -* The other codemodels -* codemodel /usr/lib/spice/analog.cm -* codemodel /usr/lib/spice/digital.cm -* codemodel /usr/lib/spice/xtradev.cm -* codemodel /usr/lib/spice/xtraevt.cm diff --git a/src/spinit.in b/src/spinit.in new file mode 100644 index 000000000..a81984c76 --- /dev/null +++ b/src/spinit.in @@ -0,0 +1,13 @@ +* Standard spice and nutmeg init file +alias exit quit +alias acct rusage all +set x11lineararcs +* For SPICE2 POLYs, edit the below line to point to the location +* of your codemode. +* codemodel @prefix@/lib/spice/spice2poly.cm + +* The other codemodels +* codemodel @prefix@/lib/spice/analog.cm +* codemodel @prefix@/lib/spice/digital.cm +* codemodel @prefix@/lib/spice/xtradev.cm +* codemodel @prefix@/lib/spice/xtraevt.cm diff --git a/src/xspice/Makefile.am b/src/xspice/Makefile.am index 975cbba93..f0a6d4d96 100755 --- a/src/xspice/Makefile.am +++ b/src/xspice/Makefile.am @@ -1,7 +1,4 @@ # Process this file with automake -CFLAGS = -g -O2 -Wall -CC = gcc -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) EXTRA_DIST = README @@ -11,10 +8,5 @@ EXTRA_DIST = README SUBDIRS = mif cm enh evt ipc idn cmpp icm -INCLUDES = -I$(top_srcdir)/src/include -I$(top_srcdir) - MAINTAINERCLEANFILES = Makefile.in -all: xspice.o -xspice.o: - $(COMPILE) -c xspice.c diff --git a/src/xspice/README b/src/xspice/README index d0f621920..68b809faa 100755 --- a/src/xspice/README +++ b/src/xspice/README @@ -1,41 +1,79 @@ Spice Opus / XSpice code model support. -------------------------------------- -Use configure flag --enable-xspice to compile the support in, +Use configure the flag --enable-xspice to compile xspice support in, when you run the ./configure script. This creates a new command, "codemodel", which you can use to load a codemodel. -Some codemodels are included in the xspice/lib directory -with some examples in xspice/examples, compiled for linux glibc. +The command codemodel attempts to load all the codemodels specified in the +arguments, eg +"ngspice 1 ->codemodel /usr/lib/spice/analog.cm /usr/lib/spice/spice2poly.cm" -Make sure the the library dir, xspice/lib, is in your LD_LIBRARY_PATH -enviromental variable, otherwise the libs will not be found! +( note: the codemodel path must begin with ./ or / to work ) -To create codemodels go to http://www.fe.uni-lj.si/spice/welcome.html -and download their trial version of spice opus for the codemodel toolkit! +The codemodels are automatically compiled and then installed in +${prefix}/lib/spice/ when spice is installed. -TODO: - Intergrate the ipc stuff from XSpice. - Create ng-spice capacity to create codemodels (a perl script) - Ngspice crashes when you try to plot a digital node +To create your own codemodels: + +* Unpack the tclspice source and compile as normal. + +* cd src/xspice/icm + +* make the directory structure for the new library: + Create the nested library_name and module_name directories and copy the + source code to the module_name directories + + src/xspice/icm/ / + modpath.lst udnpath.lst + / + files: + cfunc.mod ifspec.ifs ( for a device ) + or + udnfunc.c ( or a user defined node ) + +* For each library create the files modpath.lst and udnpath.lst, which + contain a list of the user devices and nodes respectivily, in the location + shown above. + +* Edit src/xspice/icm/makedefs.in and alter the CMDIRS line to include + your library directory. + +* Run make in the src/xspice/icm directory. ( the makefile does the rest ) + +The codemodel can be then found in + src/xspice/icm//.cm Stefan Jones - 19/2/2002 + 20020219 + Edited 20030831 ----------------------------------------- SPICE2 POLY codemodel support. -SPICE2 POLY attributes are now available for controlled sources. To -use POLY attributes, configure tclspice/ngspice with the ---enable-xspice flag set as described above. After compilation of -ngspice, cd into $(top_srcdir)/src/xspice/icm and read the README file -there for instructions about how to get POLY support. (Hint: you have -to download some stuff from http://www.fe.uni-lj.si/ and edit the -Makefiles before you can do "make && make install" of the codemodel -stuff.) +SPICE2 POLY attributes are now available for controlled sources. + +To use POLY attributes, configure and install ( make install-tcl ) +tclspice/ngspice with the --enable-xspice flag set as described above. + +After compilation of ngspice edit +${prefix}/share/tclspice/scripts/spinit or +${prefix}/share/ngspice/scripts/spinit +( depending if you included tcl support or not ) + +and uncomment the +"* codemodel /usr/lib/spice/spice2poly.cm" +line and edit as required. ( the path to spice2poly.cm may be wrong ) +( alternativily create a ~/.spiceinit file with the above codemodel line ) + +Then read in your SPICE netlist. SPICE 2 POLY attributes in +controlled sources will be translated into .models invoking the +spice2poly codemodel. You should be able to run ngspice and simulate +in the usual way! Please direct questions/comments/complaints to mailto:sdb@cloud9.net. 6.22.2003 -- SDB. +Edited on 20030831 by Stefan Jones diff --git a/src/xspice/cm/Makefile.am b/src/xspice/cm/Makefile.am index 41bcc96fe..1ed131250 100755 --- a/src/xspice/cm/Makefile.am +++ b/src/xspice/cm/Makefile.am @@ -8,7 +8,8 @@ libcmxsp_a_SOURCES = \ cm.c \ cmevt.c \ cmmeters.c \ -cmutil.c +cmutil.c \ +cmexport.c diff --git a/src/xspice/xspice.c b/src/xspice/cm/cmexport.c similarity index 97% rename from src/xspice/xspice.c rename to src/xspice/cm/cmexport.c index 3c89f0097..397b979d0 100755 --- a/src/xspice/xspice.c +++ b/src/xspice/cm/cmexport.c @@ -5,7 +5,7 @@ /*how annoying!, needed for structure below*/ -void *tcalloc(size_t a, size_t b){ +static void *tcalloc(size_t a, size_t b){ return tmalloc(a*b); } diff --git a/src/xspice/cmpp/Makefile b/src/xspice/cmpp/Makefile.in similarity index 70% rename from src/xspice/cmpp/Makefile rename to src/xspice/cmpp/Makefile.in index 49f0f879d..9d8a6ed2a 100755 --- a/src/xspice/cmpp/Makefile +++ b/src/xspice/cmpp/Makefile.in @@ -1,18 +1,18 @@ -cmpp_OBJS=main.o pp_ifs.o pp_lst.o pp_mod.o read_ifs.o util.o writ_ifs.o \ +cmpp_OBJS = main.o pp_ifs.o pp_lst.o pp_mod.o \ + read_ifs.o util.o writ_ifs.o \ ifs_yacc.o ifs_lex.o mod_yacc.o mod_lex.o -cmpp_GEN=ifs_yacc.c ifs_tok.h \ +cmpp_GEN = ifs_yacc.c ifs_tok.h \ ifs_lex.c ifs_lex.h \ mod_lex.c mod_lex.h \ mod_yacc.c mod_tok.h -YACC=bison -d --yacc -#YACC=yacc -d +YACC = @YACC@ -d -CC=gcc -O2 -g +CC = @CC@ @CFLAGS@ -LEX=flex -t +LEX = @LEX@ -t all: cmpp diff --git a/src/xspice/icm/Makefile b/src/xspice/icm/Makefile index 2bb1c586c..a1d79fcc9 100644 --- a/src/xspice/icm/Makefile +++ b/src/xspice/icm/Makefile @@ -21,10 +21,10 @@ COMPILE = $(CC) $(INCLUDES) $(CFLAGS) INSTALL_DATA = ${INSTALL} -m 644 all: - @amf=$$2; for x in $(CMDIRS) ; do \ + @for x in $(CMDIRS) ; do \ ( cd $$x && $(UPMAKE) $$x-mods ) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" + || exit 1; \ + done install: all $(mkinstalldirs) $(DESTDIR)$(libdir)/spice @@ -35,10 +35,10 @@ install: all done clean: - @amf=$$2; for x in $(CMDIRS) ; do \ + @for x in $(CMDIRS) ; do \ ( cd $$x && $(UPMAKE) $$x-mods-clean ) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" + || exit 1; \ + done -rm -rf .deps ifspec.c: ifspec.ifs @@ -68,26 +68,26 @@ dlmain.o: cmextrn.h cminfo.h udnextrn.h udninfo.h $(COMPILE) $(LDFLAGS) -o $@ `awk '{ print $$1 }' objects.inc` dlmain.o %-mods: modpath.lst udnpath.lst - @amf=$$2; for x in `cat modpath.lst` ; do \ + @for x in `cat modpath.lst` ; do \ ( cd $$x && $(UPMAKE) objs ) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" - @amf=$$2; for x in `cat udnpath.lst` ; do \ + || exit 1; \ + done + @for x in `cat udnpath.lst` ; do \ ( cd $$x && $(UPMAKE) uobjs ) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" + || exit 1; \ + done @target=`echo $@ | sed s/-mods//`; $(MAKE) $$target.cm %-mods-clean: @target=`echo $@ | sed s/-mods-clean//` && rm -f $$target.cm - @amf=$$2; for x in `cat modpath.lst` ; do \ + @for x in `cat modpath.lst` ; do \ ( cd $$x && $(UPMAKE) objs-clean ) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" - @amf=$$2; for x in `cat udnpath.lst` ; do \ + || exit 1; \ + done + @for x in `cat udnpath.lst` ; do \ ( cd $$x && $(UPMAKE) uobjs-clean ) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" + || exit 1; \ + done -rm -f cmextrn.h cminfo.h objects.inc udnextrn.h udninfo.h \ dlmain.c dlmain.o -rm -rf .deps diff --git a/src/xspice/icm/README b/src/xspice/icm/README deleted file mode 100644 index a969bb159..000000000 --- a/src/xspice/icm/README +++ /dev/null @@ -1,52 +0,0 @@ -This directory holds a codemodel which enables ngspice to handle SPICE -2 POLY attributes on controlled sources. In short, when a SPICE 2 -netlist is read in, any controlled sources with POLY attributes are -translated into codemodel devices with an associated .model which -invokes spice2poly to evaluate the polynomial. - -To use this model, you need to do the following: - -1. Compile the rest of ngspice/tclspice in the usual way from the -base directory. Make sure you do configure --enable-xspice when -configuring. - -2. Download and install SPICE Opus (available from -http://www.fe.uni-lj.si/). From this you need the program cmpp, as -well as some of the include files. - -3. Edit the Makefile in this directory and make the variable CMPPDIR -point to the base location of your Opus installation. (Hint: I -place it in /usr/local/opus.) - -4. Edit the Makefile in the directory below (icm_spice2poly/) and -make the variable CMPDIR point to the base location of your Opus -installation. - -5. Do "make" in this directory. The makefiles are set up -to do all the necessary stuff to turn the spice2poly sources into a -shared object named spice2poly.cm which you can load into ngspice. -(Alternatively, you can do "make codemodels" from $(top_srcdir); I -have included codemodels as a target which cd's into this directory -and does "make".) - -6. Read the codemodel into ngspice in the following way: - -ngspice 1 -> codemodel /usr/local/src/tclspice-0.2.10/src/xspice/icm/spice2poly.cm - -(Of course, you should point to the location where *you* built -spice2poly.cm!) You might want to put this invocation into your -spinit file (which usually lives in $(top_srcdir)/src/). - -7. Then read in your SPICE netlist. SPICE 2 POLY attributes in -controlled sources will be translated into .models invoking the -spice2poly codemodel. You should be able to run ngspice and simulate -in the usual way! - ----------------------------------------------------------------------- -Please send any comments/questions/bug reports to: - -Stuart Brorson -sdb@cloud9.net - --- SDB 6.19.2003 - diff --git a/src/xspice/icm/spice2poly/icm_spice2poly/README b/src/xspice/icm/spice2poly/icm_spice2poly/README deleted file mode 100644 index c850128a6..000000000 --- a/src/xspice/icm/spice2poly/icm_spice2poly/README +++ /dev/null @@ -1,49 +0,0 @@ -This directory holds a codemodel which enables ngspice to handle SPICE -2 POLY attributes on controlled sources. In short, when a SPICE 2 -netlist is read in, any controlled sources with POLY attributes are -translated into codemodel devices with an associated .model which -invokes spice2poly to evaluate the polynomial. - -To use this model, you need to do the following: - -1. Compile the rest of ngspice/tclspice in the usual way from the -base directory. - -2. Download and install SPICE Opus (available from -http://www.fe.uni-lj.si/ ). From this you need the program cmpp, as -well as some of the include files. - -3. Edit the Makefile in this directory and make the variable CMPPDIR -point to the base location of your Opus installation. - -4. Edit the Makefile in the directory above (..) and make the -variable CMPDIR point to the base location of your Opus installation. - -5. Do "make" in the directory above (..). The makefiles are set up -to do all the necessary stuff to turn the spice2poly sources into a -shared object named spice2poly.cm which you can load into ngspice. -(Alternatively, you can do "make codemodels" from $(top_srcdir); I -have included codemodels as a target which cd's into the directory -below and does "make".) - -6. Read the codemodel into ngspice in the following way: - -ngspice 1 -> codemodel /usr/local/src/tclspice-0.2.10/src/xspice/icm/spice2poly.cm - -(Of course, you should point to the location where *you* built -spice2poly.cm!) You might want to put this invocation into your -spinit file (which usually lives in $(top_srcdir)/src/). - -7. Then read in your SPICE netlist. SPICE 2 POLY attributes in -controlled sources will be translated into .models invoking the -spice2poly codemodel. You should be able to run ngspice and simulate -in the usual way! - ----------------------------------------------------------------------- -Please send any comments/questions/bug reports to: - -Stuart Brorson -sdb@cloud9.net - --- SDB 6.19.2003 - diff --git a/tests/TransImpedanceAmp/output.net b/tests/TransImpedanceAmp/output.net index aae3319ef..0c4fbb2e5 100644 --- a/tests/TransImpedanceAmp/output.net +++ b/tests/TransImpedanceAmp/output.net @@ -22,248 +22,248 @@ R201 -5V 9 22 Rref1in VU100in- VU780out 9130 Rref1fb VU1bias+ VU100in- 33 XU101 +5V 7 0 6 VU780out 8 AD780A -* AD780A SPICE Macromodel 5/93, Rev. A -* AAG / PMI -* -* This version of the AD780 voltage reference model simulates the worst case -* parameters of the 'A' grade. The worst case parameters used -* correspond to those in the data sheet. -* -* Copyright 1993 by Analog Devices, Inc. -* -* Refer to "README.DOC" file for License Statement. Use of this model -* indicates your acceptance with the terms and provisions in the License Statement. -* -* NODE NUMBERS -* VIN -* | TEMP -* | | GND -* | | | TRIM -* | | | | VOUT -* | | | | | RANGE -* | | | | | | -.SUBCKT AD780A 2 3 4 5 6 8 -* -* BANDGAP REFERENCE -* -I1 4 40 DC 1.21174E-3 -R1 40 4 1E3 TC=7E-6 -EN 10 40 42 0 1 -G1 4 10 2 4 4.85668E-9 -F1 4 10 POLY(2) VS1 VS2 (0,2.42834E-5,3.8E-5) -Q1 2 10 11 QT -I2 11 4 DC 12.84E-6 -R2 11 3 1E3 -I3 3 4 DC 0 -* -* NOISE VOLTAGE GENERATOR -* -VN1 41 0 DC 2 -DN1 41 42 DEN -DN2 42 43 DEN -VN2 0 43 DC 2 -* -* INTERNAL OP AMP -* -G2 4 12 10 20 1.93522E-4 -R3 12 4 2.5837E9 -C1 12 4 6.8444E-11 -D1 12 13 DX -V1 2 13 DC 1.2 -* -* SECONDARY POLE @ 508 kHz -* -G3 4 14 12 4 1E-6 -R4 14 4 1E6 -C2 14 4 3.1831E-13 -* -* OUTPUT STAGE -* -ISY 2 4 6.8282E-4 -FSY 2 4 V1 -1 -RSY 2 4 500E3 -* -G4 4 15 14 4 25E-6 -R5 15 4 40E3 -Q2 4 15 16 QP -I4 2 16 DC 100E-6 -Q3 4 16 18 QP -R6 18 23 15 -R7 16 21 150E3 -R8 2 17 34.6 -Q4 17 16 19 QN -R9 21 20 6.46E3 -R10 20 4 6.1E3 -R11 20 5 53E3 -R12 20 8 15.6E3 -I5 5 4 DC 0 -I6 8 4 DC 0 -VS1 21 19 DC 0 -VS2 23 21 DC 0 -L1 21 6 1E-7 -* -* OUTPUT CURRENT LIMIT -* -FSC 15 4 VSC 1 -VSC 2 22 DC 0 -QSC 22 2 17 QN -* -.MODEL QT NPN(IS=1.68E-16 BF=1E4) -.MODEL QN NPN(IS=1E-15 BF=1E3) -.MODEL QP PNP(IS=1E-15 BF=1E3) -.MODEL DX D(IS=1E-15) -.MODEL DEN D(IS=1E-12 RS=2.425E+05 AF=1 KF=6.969E-16) -.ENDS AD780A +* AD780A SPICE Macromodel 5/93, Rev. A +* AAG / PMI +* +* This version of the AD780 voltage reference model simulates the worst case +* parameters of the 'A' grade. The worst case parameters used +* correspond to those in the data sheet. +* +* Copyright 1993 by Analog Devices, Inc. +* +* Refer to "README.DOC" file for License Statement. Use of this model +* indicates your acceptance with the terms and provisions in the License Statement. +* +* NODE NUMBERS +* VIN +* | TEMP +* | | GND +* | | | TRIM +* | | | | VOUT +* | | | | | RANGE +* | | | | | | +.SUBCKT AD780A 2 3 4 5 6 8 +* +* BANDGAP REFERENCE +* +I1 4 40 DC 1.21174E-3 +R1 40 4 1E3 TC=7E-6 +EN 10 40 42 0 1 +G1 4 10 2 4 4.85668E-9 +F1 4 10 POLY(2) VS1 VS2 (0,2.42834E-5,3.8E-5) +Q1 2 10 11 QT +I2 11 4 DC 12.84E-6 +R2 11 3 1E3 +I3 3 4 DC 0 +* +* NOISE VOLTAGE GENERATOR +* +VN1 41 0 DC 2 +DN1 41 42 DEN +DN2 42 43 DEN +VN2 0 43 DC 2 +* +* INTERNAL OP AMP +* +G2 4 12 10 20 1.93522E-4 +R3 12 4 2.5837E9 +C1 12 4 6.8444E-11 +D1 12 13 DX +V1 2 13 DC 1.2 +* +* SECONDARY POLE @ 508 kHz +* +G3 4 14 12 4 1E-6 +R4 14 4 1E6 +C2 14 4 3.1831E-13 +* +* OUTPUT STAGE +* +ISY 2 4 6.8282E-4 +FSY 2 4 V1 -1 +RSY 2 4 500E3 +* +G4 4 15 14 4 25E-6 +R5 15 4 40E3 +Q2 4 15 16 QP +I4 2 16 DC 100E-6 +Q3 4 16 18 QP +R6 18 23 15 +R7 16 21 150E3 +R8 2 17 34.6 +Q4 17 16 19 QN +R9 21 20 6.46E3 +R10 20 4 6.1E3 +R11 20 5 53E3 +R12 20 8 15.6E3 +I5 5 4 DC 0 +I6 8 4 DC 0 +VS1 21 19 DC 0 +VS2 23 21 DC 0 +L1 21 6 1E-7 +* +* OUTPUT CURRENT LIMIT +* +FSC 15 4 VSC 1 +VSC 2 22 DC 0 +QSC 22 2 17 QN +* +.MODEL QT NPN(IS=1.68E-16 BF=1E4) +.MODEL QN NPN(IS=1E-15 BF=1E3) +.MODEL QP PNP(IS=1E-15 BF=1E3) +.MODEL DX D(IS=1E-15) +.MODEL DEN D(IS=1E-12 RS=2.425E+05 AF=1 KF=6.969E-16) +.ENDS AD780A C101 0 U100V- 1uF C102 U100V+ 0 1uF XU100 0 VU100in- U100V+ U100V- VU1bias+ OP177A -* OP177A SPICE Macro-model 12/90, Rev. B -* JCB / PMI -* -* Revision History: -* REV. B -* Re-ordered subcircuit call out nodes to put the -* output node last. -* Changed Ios from 1E-9 to 0.5E-9 -* Added F1 and F2 to fix short circuit current limit. -* -* -* This version of the OP-177 model simulates the worst case -* parameters of the 'A' grade. The worst case parameters -* used correspond to those in the data book. -* -* -* Copyright 1990 by Analog Devices, Inc. -* -* Refer to "README.DOC" file for License Statement. Use of this model -* indicates your acceptance with the terms and provisions in the License Statement. -* -* Node assignments -* non-inverting input -* | inverting input -* | | positive supply -* | | | negative supply -* | | | | output -* | | | | | -.SUBCKT OP177A 1 2 99 50 39 -* -* INPUT STAGE & POLE AT 6 MHZ -* -R1 2 3 5E11 -R2 1 3 5E11 -R3 5 97 0.0606 -R4 6 97 0.0606 -CIN 1 2 4E-12 -C2 5 6 218.9E-9 -I1 4 51 1 -IOS 1 2 0.5E-9 -EOS 9 10 POLY(1) 30 33 10E-6 1 -Q1 5 2 7 QX -Q2 6 9 8 QX -R5 7 4 0.009 -R6 8 4 0.009 -D1 2 1 DX -D2 1 2 DX -EN 10 1 12 0 1 -GN1 0 2 15 0 1 -GN2 0 1 18 0 1 -* -EREF 98 0 33 0 1 -EPLUS 97 0 99 0 1 -ENEG 51 0 50 0 1 -* -* VOLTAGE NOISE SOURCE WITH FLICKER NOISE -* -DN1 11 12 DEN -DN2 12 13 DEN -VN1 11 0 DC 2 -VN2 0 13 DC 2 -* -* CURRENT NOISE SOURCE WITH FLICKER NOISE -* -DN3 14 15 DIN -DN4 15 16 DIN -VN3 14 0 DC 2 -VN4 0 16 DC 2 -* -* SECOND CURRENT NOISE SOURCE -* -DN5 17 18 DIN -DN6 18 19 DIN -VN5 17 0 DC 2 -VN6 0 19 DC 2 -* -* FIRST GAIN STAGE -* -R7 20 98 1 -G1 98 20 5 6 119.8 -D3 20 21 DX -D4 22 20 DX -E1 97 21 POLY(1) 97 33 -2.4 1 -E2 22 51 POLY(1) 33 51 -2.4 1 -* -* GAIN STAGE & DOMINANT POLE AT 0.127 HZ -* -R8 23 98 1.253E9 -C3 23 98 1E-9 -G2 98 23 20 33 33.3E-6 -V1 97 24 1.8 -V2 25 51 1.8 -D5 23 24 DX -D6 25 23 DX -* -* NEGATIVE ZERO AT -4MHZ -* -R9 26 27 1 -C4 26 27 -39.75E-9 -R10 27 98 1E-6 -E3 26 98 23 33 1E6 -* -* COMMON-MODE GAIN NETWORK WITH ZERO AT 63 HZ -* -R13 30 31 1 -L2 31 98 2.52E-3 -G4 98 30 3 33 0.316E-6 -D7 30 97 DX -D8 51 30 DX -* -* POLE AT 2 MHZ -* -R14 32 98 1 -C5 32 98 79.5E-9 -G5 98 32 27 33 1 -* -* OUTPUT STAGE -* -R15 33 97 1 -R16 33 51 1 -GSY 99 50 POLY(1) 99 50 0.725E-3 0.0425E-3 -F1 34 0 V3 1 -F2 0 34 V4 1 -R17 34 99 400 -R18 34 50 400 -L3 34 39 2E-7 -G6 37 50 32 34 2.5E-3 -G7 38 50 34 32 2.5E-3 -G8 34 99 99 32 2.5E-3 -G9 50 34 32 50 2.5E-3 -V3 35 34 6.8 -V4 34 36 4.4 -D9 32 35 DX -D10 36 32 DX -D11 99 37 DX -D12 99 38 DX -D13 50 37 DY -D14 50 38 DY -* -* MODELS USED -* -.MODEL QX NPN(BF=333.3E6) -.MODEL DX D(IS=1E-15) -.MODEL DY D(IS=1E-15 BV=50) -.MODEL DEN D(IS=1E-12, RS=14.61K, KF=2E-17, AF=1) -.MODEL DIN D(IS=1E-12, RS=7.55E-6, KF=3E-15, AF=1) -.ENDS +* OP177A SPICE Macro-model 12/90, Rev. B +* JCB / PMI +* +* Revision History: +* REV. B +* Re-ordered subcircuit call out nodes to put the +* output node last. +* Changed Ios from 1E-9 to 0.5E-9 +* Added F1 and F2 to fix short circuit current limit. +* +* +* This version of the OP-177 model simulates the worst case +* parameters of the 'A' grade. The worst case parameters +* used correspond to those in the data book. +* +* +* Copyright 1990 by Analog Devices, Inc. +* +* Refer to "README.DOC" file for License Statement. Use of this model +* indicates your acceptance with the terms and provisions in the License Statement. +* +* Node assignments +* non-inverting input +* | inverting input +* | | positive supply +* | | | negative supply +* | | | | output +* | | | | | +.SUBCKT OP177A 1 2 99 50 39 +* +* INPUT STAGE & POLE AT 6 MHZ +* +R1 2 3 5E11 +R2 1 3 5E11 +R3 5 97 0.0606 +R4 6 97 0.0606 +CIN 1 2 4E-12 +C2 5 6 218.9E-9 +I1 4 51 1 +IOS 1 2 0.5E-9 +EOS 9 10 POLY(1) 30 33 10E-6 1 +Q1 5 2 7 QX +Q2 6 9 8 QX +R5 7 4 0.009 +R6 8 4 0.009 +D1 2 1 DX +D2 1 2 DX +EN 10 1 12 0 1 +GN1 0 2 15 0 1 +GN2 0 1 18 0 1 +* +EREF 98 0 33 0 1 +EPLUS 97 0 99 0 1 +ENEG 51 0 50 0 1 +* +* VOLTAGE NOISE SOURCE WITH FLICKER NOISE +* +DN1 11 12 DEN +DN2 12 13 DEN +VN1 11 0 DC 2 +VN2 0 13 DC 2 +* +* CURRENT NOISE SOURCE WITH FLICKER NOISE +* +DN3 14 15 DIN +DN4 15 16 DIN +VN3 14 0 DC 2 +VN4 0 16 DC 2 +* +* SECOND CURRENT NOISE SOURCE +* +DN5 17 18 DIN +DN6 18 19 DIN +VN5 17 0 DC 2 +VN6 0 19 DC 2 +* +* FIRST GAIN STAGE +* +R7 20 98 1 +G1 98 20 5 6 119.8 +D3 20 21 DX +D4 22 20 DX +E1 97 21 POLY(1) 97 33 -2.4 1 +E2 22 51 POLY(1) 33 51 -2.4 1 +* +* GAIN STAGE & DOMINANT POLE AT 0.127 HZ +* +R8 23 98 1.253E9 +C3 23 98 1E-9 +G2 98 23 20 33 33.3E-6 +V1 97 24 1.8 +V2 25 51 1.8 +D5 23 24 DX +D6 25 23 DX +* +* NEGATIVE ZERO AT -4MHZ +* +R9 26 27 1 +C4 26 27 -39.75E-9 +R10 27 98 1E-6 +E3 26 98 23 33 1E6 +* +* COMMON-MODE GAIN NETWORK WITH ZERO AT 63 HZ +* +R13 30 31 1 +L2 31 98 2.52E-3 +G4 98 30 3 33 0.316E-6 +D7 30 97 DX +D8 51 30 DX +* +* POLE AT 2 MHZ +* +R14 32 98 1 +C5 32 98 79.5E-9 +G5 98 32 27 33 1 +* +* OUTPUT STAGE +* +R15 33 97 1 +R16 33 51 1 +GSY 99 50 POLY(1) 99 50 0.725E-3 0.0425E-3 +F1 34 0 V3 1 +F2 0 34 V4 1 +R17 34 99 400 +R18 34 50 400 +L3 34 39 2E-7 +G6 37 50 32 34 2.5E-3 +G7 38 50 34 32 2.5E-3 +G8 34 99 99 32 2.5E-3 +G9 50 34 32 50 2.5E-3 +V3 35 34 6.8 +V4 34 36 4.4 +D9 32 35 DX +D10 36 32 DX +D11 99 37 DX +D12 99 38 DX +D13 50 37 DY +D14 50 38 DY +* +* MODELS USED +* +.MODEL QX NPN(BF=333.3E6) +.MODEL DX D(IS=1E-15) +.MODEL DY D(IS=1E-15 BV=50) +.MODEL DEN D(IS=1E-12, RS=14.61K, KF=2E-17, AF=1) +.MODEL DIN D(IS=1E-12, RS=7.55E-6, KF=3E-15, AF=1) +.ENDS R102 U100V+ +5V 22 R101 -5V U100V- 22 R98 0 VU2bias+ 1K @@ -290,149 +290,149 @@ R26 2 VU2in- 150 R11 Vout2 VU2in- 180 XU2 VU2bias+ VU2in- V2+ V2- Vout2 AD8009an XU1 VU1bias+ VU1in- V1+ V1- Vout1 AD8009an -***** AD8009 SPICE model Rev B SMR/ADI 8-21-97 - -* Copyright 1997 by Analog Devices, Inc. - -* Refer to "README.DOC" file for License Statement. Use of this model -* indicates your acceptance with the terms and provisions in the License Statement. - -* rev B of this model corrects a problem in the output stage that would not -* correctly reflect the output current to the voltage supplies - -* This model will give typical performance characteristics -* for the following parameters; - -* closed loop gain and phase vs bandwidth -* output current and voltage limiting -* offset voltage (is static, will not vary with vcm) -* ibias (again, is static, will not vary with vcm) -* slew rate and step response performance -* (slew rate is based on 10-90% of step response) -* current on output will be reflected to the supplies -* vnoise, referred to the input -* inoise, referred to the input - -* distortion is not characterized - -* Node assignments -* non-inverting input -* | inverting input -* | | positive supply -* | | | negative supply -* | | | | output -* | | | | | -.SUBCKT AD8009an 1 2 99 50 28 - -* input stage * - -q1 50 3 5 qp1 -q2 99 5 4 qn1 -q3 99 3 6 qn2 -q4 50 6 4 qp2 -i1 99 5 1.625e-3 -i2 6 50 1.625e-3 -cin1 1 98 2.6e-12 -cin2 2 98 1e-12 -v1 4 2 0 - -* input error sources * - -eos 3 1 poly(1) 20 98 2e-3 1 -fbn 2 98 poly(1) vnoise3 50e-6 1e-3 -fbp 1 98 poly(1) vnoise3 50e-6 1e-3 - -* slew limiting stage * - -fsl 98 16 v1 1 -dsl1 98 16 d1 -dsl2 16 98 d1 -dsl3 16 17 d1 -dsl4 17 16 d1 -rsl 17 18 0.22 -vsl 18 98 0 - -* gain stage * - -f1 98 7 vsl 2 -rgain 7 98 2.5e5 -cgain 7 98 1.25e-12 -dcl1 7 8 d1 -dcl2 9 7 d1 -vcl1 99 8 1.83 -vcl2 9 50 1.83 - -gcm 98 7 poly(2) 98 0 30 0 0 1e-5 1e-5 - -* second pole * - -epole 14 98 7 98 1 -rpole 14 15 1 -cpole 15 98 2e-10 - -* reference stage * - -eref 98 0 poly(2) 99 0 50 0 0 0.5 0.5 - -ecmref 30 0 poly(2) 1 0 2 0 0 0.5 0.5 - -* vnoise stage * - -rnoise1 19 98 4.6e-3 -vnoise1 19 98 0 -vnoise2 21 98 0.53 -dnoise1 21 19 dn - -fnoise1 20 98 vnoise1 1 -rnoise2 20 98 1 - -* inoise stage * - -rnoise3 22 98 8.18e-6 -vnoise3 22 98 0 -vnoise4 24 98 0.575 -dnoise2 24 22 dn - -fnoise2 23 98 vnoise3 1 -rnoise4 23 98 1 - -* buffer stage * - -gbuf 98 13 15 98 1e-2 -rbuf 98 13 1e2 - -* output current reflected to supplies * - -fcurr 98 40 voc 1 -vcur1 26 98 0 -vcur2 98 27 0 -dcur1 40 26 d1 -dcur2 27 40 d1 - -* output stage * - -vo1 99 90 0 -vo2 91 50 0 -fout1 0 99 poly(2) vo1 vcur1 -9.27e-3 1 -1 -fout2 50 0 poly(2) vo2 vcur2 -9.27e-3 1 -1 -gout1 90 10 13 99 0.5 -gout2 91 10 13 50 0.5 -rout1 10 90 2 -rout2 10 91 2 -voc 10 28 0 -rout3 28 98 1e6 -dcl3 13 11 d1 -dcl4 12 13 d1 -vcl3 11 10 -0.445 -vcl4 10 12 -0.445 - -.model qp1 pnp() -.model qp2 pnp() -.model qn1 npn() -.model qn2 npn() -.model d1 d() -.model dn d(af=1 kf=1e-8) -.ends +***** AD8009 SPICE model Rev B SMR/ADI 8-21-97 + +* Copyright 1997 by Analog Devices, Inc. + +* Refer to "README.DOC" file for License Statement. Use of this model +* indicates your acceptance with the terms and provisions in the License Statement. + +* rev B of this model corrects a problem in the output stage that would not +* correctly reflect the output current to the voltage supplies + +* This model will give typical performance characteristics +* for the following parameters; + +* closed loop gain and phase vs bandwidth +* output current and voltage limiting +* offset voltage (is static, will not vary with vcm) +* ibias (again, is static, will not vary with vcm) +* slew rate and step response performance +* (slew rate is based on 10-90% of step response) +* current on output will be reflected to the supplies +* vnoise, referred to the input +* inoise, referred to the input + +* distortion is not characterized + +* Node assignments +* non-inverting input +* | inverting input +* | | positive supply +* | | | negative supply +* | | | | output +* | | | | | +.SUBCKT AD8009an 1 2 99 50 28 + +* input stage * + +q1 50 3 5 qp1 +q2 99 5 4 qn1 +q3 99 3 6 qn2 +q4 50 6 4 qp2 +i1 99 5 1.625e-3 +i2 6 50 1.625e-3 +cin1 1 98 2.6e-12 +cin2 2 98 1e-12 +v1 4 2 0 + +* input error sources * + +eos 3 1 poly(1) 20 98 2e-3 1 +fbn 2 98 poly(1) vnoise3 50e-6 1e-3 +fbp 1 98 poly(1) vnoise3 50e-6 1e-3 + +* slew limiting stage * + +fsl 98 16 v1 1 +dsl1 98 16 d1 +dsl2 16 98 d1 +dsl3 16 17 d1 +dsl4 17 16 d1 +rsl 17 18 0.22 +vsl 18 98 0 + +* gain stage * + +f1 98 7 vsl 2 +rgain 7 98 2.5e5 +cgain 7 98 1.25e-12 +dcl1 7 8 d1 +dcl2 9 7 d1 +vcl1 99 8 1.83 +vcl2 9 50 1.83 + +gcm 98 7 poly(2) 98 0 30 0 0 1e-5 1e-5 + +* second pole * + +epole 14 98 7 98 1 +rpole 14 15 1 +cpole 15 98 2e-10 + +* reference stage * + +eref 98 0 poly(2) 99 0 50 0 0 0.5 0.5 + +ecmref 30 0 poly(2) 1 0 2 0 0 0.5 0.5 + +* vnoise stage * + +rnoise1 19 98 4.6e-3 +vnoise1 19 98 0 +vnoise2 21 98 0.53 +dnoise1 21 19 dn + +fnoise1 20 98 vnoise1 1 +rnoise2 20 98 1 + +* inoise stage * + +rnoise3 22 98 8.18e-6 +vnoise3 22 98 0 +vnoise4 24 98 0.575 +dnoise2 24 22 dn + +fnoise2 23 98 vnoise3 1 +rnoise4 23 98 1 + +* buffer stage * + +gbuf 98 13 15 98 1e-2 +rbuf 98 13 1e2 + +* output current reflected to supplies * + +fcurr 98 40 voc 1 +vcur1 26 98 0 +vcur2 98 27 0 +dcur1 40 26 d1 +dcur2 27 40 d1 + +* output stage * + +vo1 99 90 0 +vo2 91 50 0 +fout1 0 99 poly(2) vo1 vcur1 -9.27e-3 1 -1 +fout2 50 0 poly(2) vo2 vcur2 -9.27e-3 1 -1 +gout1 90 10 13 99 0.5 +gout2 91 10 13 50 0.5 +rout1 10 90 2 +rout2 10 91 2 +voc 10 28 0 +rout3 28 98 1e6 +dcl3 13 11 d1 +dcl4 12 13 d1 +vcl3 11 10 -0.445 +vcl4 10 12 -0.445 + +.model qp1 pnp() +.model qp2 pnp() +.model qn1 npn() +.model qn2 npn() +.model d1 d() +.model dn d(af=1 kf=1e-8) +.ends R6 1 Vout1 250 C3 1 0 1.5pF V3 VU1in- Vinput DC 0V