Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!cbosgd!ucbvax!decvax!mcnc!gbn From: gbn@mcnc.UUCP (Gary Nifong) Newsgroups: net.lsi Subject: SPICE BUG (Yes really.) Message-ID: <1579@alvin.mcnc.UUCP> Date: Fri, 8-Aug-86 14:28:41 EDT Article-I.D.: alvin.1579 Posted: Fri Aug 8 14:28:41 1986 Date-Received: Sun, 10-Aug-86 19:46:27 EDT Distribution: net Organization: Microelectronics Center of NC; RTP, NC Lines: 53 * * This is a clarification of the SPICE 2G6 "bug" reported last week and * a reply to mark@mips.UUCP. * ***************************************************************************** >From: mark@mips.UUCP (Mark G. Johnson) Summary: Tests were performed with UNIX Spice 2G6 to see whether the specification of "level=2.0" caused Spice to use the MOS model for level 1. The results were that "level=2.0" causes Spice to use MOS model level 2. No bug was found. Perhaps the failure to replicate gbn@mcnc's results arises from somebody at Berkeley doing "minor revisions" to the major release called Spice 2G6. My tests were performed on virgin Berkeley source code (to the best of my knowledge anyway), using a VAX 11/780 running UNIX 4.2 BSD. This copy of Spice 2G6 prints "spice 2g.6 3/15/83" on the top line of every output page. ****************************************************************************** I tested Mark's results on a VAX 11/780 running UNIX 4.2 and found that his tests are correct. I used version "SPICE 2g.6 3/15/83". The "level=2.0" bug was not valid! So the bug has not been around forever, I got excited. HOWEVER, the we are running SPICE on a DEC 8600, and the "bug" is very real. The "bug" appears on two types of machines used here. DEC 8600 4.2BSD UNIX & 4.3BSD UNIX CONVEX C1 4.2BSD Compatible UNIX The problem occurs in SPICE in file "mosfet.f" line 114. Where integer "LEV" is assign the floating point value "VALUE(LOCM +1)". (line 114) LEV = VALUE(LOCM +1) On the 11/780 the value of "VALUE(LOCM +1)" equals "2.0000000000000000" and the value of "LEV" equals "2". On the DEC 8600 and the Convex C1 the value of "VALUE(LOCM +1)" equals "1.9999999999999999111" and is truncated to "1" when assigned to "LEV". So, the problem does exist and designers should beware. I also remember having bugs similar to this when porting MCNC's simulator to various 68000 based workstations. Gary Nifong, MCNC