summaryrefslogtreecommitdiff
path: root/cad/gnucap
diff options
context:
space:
mode:
authordmcmahill <dmcmahill>2003-04-21 03:06:29 +0000
committerdmcmahill <dmcmahill>2003-04-21 03:06:29 +0000
commit102454e66d5ea1d5a9c47d04cf311e891031e157 (patch)
tree8859961c957a082758e9de33f7b53fd688748a6c /cad/gnucap
parent8a0dbaa81530296c8bf3773a476315d87277aad0 (diff)
downloadpkgsrc-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/gnucap')
-rw-r--r--cad/gnucap/Makefile15
-rw-r--r--cad/gnucap/PLIST9
-rw-r--r--cad/gnucap/distinfo9
-rw-r--r--cad/gnucap/patches/patch-aa34
-rw-r--r--cad/gnucap/patches/patch-ab31
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());
+ }