diff options
author | dmcmahill <dmcmahill> | 2003-04-21 03:06:29 +0000 |
---|---|---|
committer | dmcmahill <dmcmahill> | 2003-04-21 03:06:29 +0000 |
commit | 102454e66d5ea1d5a9c47d04cf311e891031e157 (patch) | |
tree | 8859961c957a082758e9de33f7b53fd688748a6c /cad | |
parent | 8a0dbaa81530296c8bf3773a476315d87277aad0 (diff) | |
download | pkgsrc-102454e66d5ea1d5a9c47d04cf311e891031e157.tar.gz |
update to gnucap-0.33
Gnucap 0.33 release notes (01/12/2003)
This is a bug fix and compatibility release.
0.32 was not widely distributed due to password problems and a heavy
work load, so the release notes are repeated after the current ones.
New features:
1. Add inductance probes, like capacitor.
Bug fixes:
1. Fix xprobe duplicate default arg bug - shows in g++3.2.
2. Fix bug that sometimes caused a crash when changing a model after
analysis.
3. Fix bug that caused an assert to fail (debug build) after removing
a probe from an element.
4. Fix a dumb typo hack bug ddHAS_READLINE. Now history and command
line editing really works. It was working, but somehow the hack
slipped into the release code.
=================================================================
Gnucap 0.32 release notes (09/30/2002)
New features:
1. Series resistance in the diode. It took 5 minutes to do,
so it is embarrasing that it wasn't done before.
2. History and command line editing, using Gnu Readline. Thanks to
Simon Hoffe for sending me the patch.
3. More parameters in the BJT model. This gives it better
compatibility with commercial simulators. These parameters are beyond
Spice 3f5.
4. "M" parameter in diode, BJT and MOS devices. M is the number of
parallel devices. Some commercial simulators have this.
Changes that may or may not be improvements.
1. The definition of the transient option "UIC" has changed. It is
now Spice compatible, which means to not attempt to do any solution or
consistency check. Just apply the values, assuming anything that
isn't specified is 0. The old behavior was to attempt a solution
while holding the IC values.
Bug fixes:
1. voltage sync bug. It still doesn't fix the MOS 2 convergence
problem.
2. Fix memory leak in POLY components.
3. Fix bug in Fourier that sometimes causes overrun (crash) and time
sync errors.
4. Modelgen: fix bug in list parsing.
5. Some changes to eliminate warnings when compiling with g++ 3.1.
6. Use Euler differentiation on first step, because trap used a value
that cannot be known then. Usually, this doesn't make much
difference, but there are a few cases where the error can get
magnified and trigger trapezoidal ringing, leading to a totally bogus
result. It most cases, you could hide it with small enough steps.
These cases should work with default settings now.
7. Fix bug that sometimes caused incorrect handling of initial
conditions (UIC),
8. Fix bug that caused continuing a transient analysis to give
incorrect results.
Significant internal changes:
1. The inductor uses all of the same support functions as the
capacitor, including "integrate", which is now correctly called
"differentiate".
2. Most of the code is in place for named nodes. It mostly works and
can be turned on with the option "namednodes". It is off by default
because it is not complete. Most likely, it will be finished in the
next release.
Some things that are still partially implemented:
1. BSIM models, charge effects, "alpha0" parameter. (computed then
ignored)
2. Configure still doesn't handle everything.
3. The model compiler still requires too much raw coding.
4. Named nodes. If you set the option "namednodes", it will support
named nodes, but some things don't work, so it is off by default.
5. The preliminary IBIS code is now included. For now, it is a
standalone executable, that reads an IBIS file and generates a
netlist. The netlist requires some editing to use, and is not fully
compatible anyway. It is included in hopes of recruiting help in
finishing the project.
Bugs (nothing new, but needs repeating):
1. The transmission line initial conditions are not propagated until
the transient analysis runs.
2. An occasional bogus calculation in MOSFETS occurs when a device is
reversed. This sometimes causes nonconvergence.
3. The "modify" command with multiple arguments seems to take only the
first one. It used to work, but is broken in this release. I am not
sure when it broke.
Diffstat (limited to 'cad')
-rw-r--r-- | cad/gnucap/Makefile | 15 | ||||
-rw-r--r-- | cad/gnucap/PLIST | 9 | ||||
-rw-r--r-- | cad/gnucap/distinfo | 9 | ||||
-rw-r--r-- | cad/gnucap/patches/patch-aa | 34 | ||||
-rw-r--r-- | cad/gnucap/patches/patch-ab | 31 |
5 files changed, 77 insertions, 21 deletions
diff --git a/cad/gnucap/Makefile b/cad/gnucap/Makefile index 00ab3004b42..0a08844d282 100644 --- a/cad/gnucap/Makefile +++ b/cad/gnucap/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.2 2002/03/29 02:24:42 dmcmahill Exp $ +# $NetBSD: Makefile,v 1.3 2003/04/21 03:06:29 dmcmahill Exp $ # -DISTNAME= gnucap-0.31 +DISTNAME= gnucap-0.33 CATEGORIES= cad MASTER_SITES= ${MASTER_SITE_GNU:=gnucap/} @@ -9,11 +9,13 @@ MAINTAINER= dmcmahill@netbsd.org HOMEPAGE= http://www.geda.seul.org/tools/acs/index.html COMMENT= general purpose circuit simulator -USE_GMAKE= YES +USE_BUILDLINK2= YES +USE_GMAKE= YES +USE_GNU_READLINE= YES do-build: - cd ${WRKSRC}/modelgen && ${MAKE_PROGRAM} ${LOWER_OPSYS} - cd ${WRKSRC}/src && ${MAKE_PROGRAM} ${LOWER_OPSYS} + @cd ${WRKSRC}/modelgen && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${LOWER_OPSYS} + @cd ${WRKSRC}/src && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${LOWER_OPSYS} do-install: ${INSTALL_PROGRAM} ${WRKSRC}/src/*/gnucap ${PREFIX}/bin/ @@ -27,6 +29,7 @@ do-install: test: build cd ${WRKSRC}/test && ./test ../src/*/gnucap "" 0001 == 2>&1 | \ - tee ${WRKDIR}/test.log + ${TEE} ${WRKDIR}/test.log +.include "../../devel/readline/buildlink2.mk" .include "../../mk/bsd.pkg.mk" diff --git a/cad/gnucap/PLIST b/cad/gnucap/PLIST index 2dca28f689a..0193aa2cb9f 100644 --- a/cad/gnucap/PLIST +++ b/cad/gnucap/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.2 2002/03/29 02:24:42 dmcmahill Exp $ +@comment $NetBSD: PLIST,v 1.3 2003/04/21 03:06:29 dmcmahill Exp $ bin/gnucap share/doc/gnucap/WARNINGS share/doc/gnucap/acs-tutorial @@ -197,6 +197,13 @@ share/examples/gnucap/eq4-4609.ckt share/examples/gnucap/eq4-6913.ckt share/examples/gnucap/eq4-9217.ckt share/examples/gnucap/eq4-9217.tran.ckt +share/examples/gnucap/eq4-9217.tran-slow.ckt +share/examples/gnucap/eq5-.tran.ckt +share/examples/gnucap/eq5-.tran.fast.ckt +share/examples/gnucap/eq5-.tran.like-spice.ckt +share/examples/gnucap/eq5-.tran.slow.ckt +share/examples/gnucap/eq5-.tran.vfast.ckt +share/examples/gnucap/eq5-.tran.vvfast.ckt share/examples/gnucap/eqboost.ckt share/examples/gnucap/eqflat.ckt share/examples/gnucap/eqmodify.ckt diff --git a/cad/gnucap/distinfo b/cad/gnucap/distinfo index ddfcf75bddb..92fff048aba 100644 --- a/cad/gnucap/distinfo +++ b/cad/gnucap/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.2 2002/03/29 02:24:42 dmcmahill Exp $ +$NetBSD: distinfo,v 1.3 2003/04/21 03:06:29 dmcmahill Exp $ -SHA1 (gnucap-0.31.tar.gz) = d85cc1ab88e79210e850b991eac0d5f4cde6813e -Size (gnucap-0.31.tar.gz) = 1250595 bytes -SHA1 (patch-aa) = af391bd5db0a367caed0e4891b842972ad9a29b7 +SHA1 (gnucap-0.33.tar.gz) = 67fe6ccc4e16807d842c5f0377b66a16c2904edf +Size (gnucap-0.33.tar.gz) = 1387565 bytes +SHA1 (patch-aa) = 404d6f926f4985a7d117e1361e9c2c9cabd6323b +SHA1 (patch-ab) = 519cd313b023be49ee19018d4eb88697fcb739e3 diff --git a/cad/gnucap/patches/patch-aa b/cad/gnucap/patches/patch-aa index 67ea5ac9553..24f8902c721 100644 --- a/cad/gnucap/patches/patch-aa +++ b/cad/gnucap/patches/patch-aa @@ -1,11 +1,25 @@ -$NetBSD: patch-aa,v 1.1.1.1 2001/11/15 02:58:50 dmcmahill Exp $ +$NetBSD: patch-aa,v 1.2 2003/04/21 03:06:30 dmcmahill Exp $ ---- src/md.h.orig Sat Jun 30 03:20:53 2001 -+++ src/md.h Thu Jul 5 06:40:14 2001 -@@ -46,5 +46,5 @@ - }; - /*--------------------------------------------------------------------------*/ --#if defined(__unix__) -+#if defined(__unix__) || defined(UNIX) - /* usual but non-standard collection of includes */ - #include <unistd.h> /* chdir, access, getcwd */ +--- src/Make2.g++.orig Wed Nov 6 02:47:55 2002 ++++ src/Make2.g++ +@@ -23,17 +23,17 @@ VPATH = .:.. + + # Standard base for g++. + +-CCC = g++ ++CCC = ${CXX} + + CCFLAGS = \ + -DHAS_READLINE \ +--DUNIX -O2 -DNDEBUG -I.. -I. -fno-exceptions -W ++-DUNIX ${CXXFLAGS} ${CPPFLAGS} -DNDEBUG -I.. -I. -fno-exceptions -W + + LIBS = \ + -lreadline -ltermcap \ + + +-LDFLAGS = ++#LDFLAGS = + + .SUFFIXES : .o .cc + .cc.o:; $(CCC) $(CCFLAGS) -c $< diff --git a/cad/gnucap/patches/patch-ab b/cad/gnucap/patches/patch-ab new file mode 100644 index 00000000000..849fea647ec --- /dev/null +++ b/cad/gnucap/patches/patch-ab @@ -0,0 +1,31 @@ +$NetBSD: patch-ab,v 1.1 2003/04/21 03:06:30 dmcmahill Exp $ + +--- src/bm_tanh.cc.orig Wed Nov 6 02:47:52 2002 ++++ src/bm_tanh.cc +@@ -65,13 +65,23 @@ void EVAL_BM_TANH::print(OMSTREAM& where + print_base(where); + } + /*--------------------------------------------------------------------------*/ ++const double LOGBIGBIG = log(BIGBIG); + void EVAL_BM_TANH::tr_eval(ELEMENT* d)const + { + double x = ioffset(d->_y0.x); + double aa = x * _gain/_limit; +- double cosine = cosh(aa); +- double f1 = _gain / (cosine*cosine); +- double f0 = _limit * tanh(aa); ++ double f1, f0; ++ {if (aa > LOGBIGBIG) { ++ f1 = 0; ++ f0 = _limit; ++ }else if (aa < -LOGBIGBIG) { ++ f1 = 0; ++ f0 = -_limit; ++ }else{ ++ double cosine = cosh(aa); ++ f1 = _gain / (cosine*cosine); ++ f0 = _limit * tanh(aa); ++ }} + d->_y0 = FPOLY1(x, f0, f1); + tr_final_adjust(&(d->_y0), d->f_is_value()); + } |