From b1b0841625565655b5e54ffd44104daa10a850cb Mon Sep 17 00:00:00 2001 From: pnenzi Date: Sat, 10 Jan 2004 17:01:39 +0000 Subject: [PATCH] Codemodel support update. --- ChangeLog | 13 ++++++-- Makefile.am | 8 ++--- src/Makefile.am | 2 +- src/xspice/README | 78 +++++++++++++++++++++++++++++++++++------------ 4 files changed, 73 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8ff916c76..d55469e86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,19 @@ 2004-01-10 Paolo Nenzi + * 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 + (Stefan Jones ) + * src/xspice/ipc/ipc.c: Remove linux specific includes which are not needed - (Stefan Jones). + (Stefan Jones ). * src/xspice/{Makefile.am,xspice.c} src/xspice/cm/{cmexport.c,Makefile.am}: Moved the xspice library hooks into the cm directory - (Stefan Jones). + (Stefan Jones ). * src/xspice/enh/enhtrans.c src/xspice/mif/mif_inp2.c: Fixed version from Stuart Brorson , @@ -17,7 +23,8 @@ for codemodel devices. * src/Makefile.am, src/ngspice.idx: removed ngspice.idx - and make it auto-generated and installed (Stefan Jones). + and make it auto-generated and installed + (Stefan Jones ). * src/frontend/aspice.c: Added #ifdef for SOLARIS. diff --git a/Makefile.am b/Makefile.am index 3f1910335..9de328b87 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,17 +2,17 @@ SUBDIRS = doc src man tests -EXTRA_DIST = FAQ acconfig.h autogen.sh NOTES contrib BUGS +EXTRA_DIST = FAQ acconfig.h autogen.sh NOTES BUGS AUTHORS ChangeLog \ + DEVICES NEWS README MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \ config.h.in config.sub configure install-sh \ missing mkinstalldirs stamp-h.in ltconfig \ - ltmain.sh depcomp + ltmain.sh mrproper: maintainer-clean rm -f `find . -type f -name "*~" -print` rm -f `find . -type f -name "*.orig" -print` rm -f `find . -type f -name "*.rej" -print` -codemodels: - cd src/xspice/icm && make + diff --git a/src/Makefile.am b/src/Makefile.am index 5247d3d48..6be5a9007 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,7 +8,7 @@ EXTRA_DIST = ngspice.txt ngspice.idx spinit setplot spectrum @CIDERSCRIPTS@ helpdatadir = $(pkgdatadir)/helpdir -helpdata_DATA = ngspice.idx ngspice.txt +helpdata_DATA = ngspice.txt ngspice.idx initdatadir = $(pkgdatadir)/scripts 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