A short SPICE history: First there was SPICE 2. This came from Berkeley, was written in Fortran & was widely used. It was good.
Then there came SPICE 3. It also came from Berkeley, was written in C, and had new capabilities -- which was good -- but unfortunately certain SPICE 2 features were removed -- which was bad. In particular, controlled sources couldn't use the POLY attribute any more. INstead, a new statement for polynomial sources was introduced. This was bad because lots of vendor models were already out there which used controlled sources POLYs. Then, in the early 1990s, Georgia Tech created XSpice, which added the abilitiy to create "codemodels", which were models for analog comonents written in C. (XSpice also added other capabilities which are not germaine to this story.) The XSpice parser included the abiltiy to recognize SPICE 2 POLY attributes in controlled sources, and then invoke a codemodel which implemented the polynomial controlled sources. Although this was a work-around, it was deemed a good thing because people could once again simulate using the models supplied by their part vendors. All of these simulators were released under vague, possibly restrictive licencing conditions. Since restrictive licences are generally a bad thing, the licencing may have prevented their widespread use in the free software community. In in the late 1990s, some folks at the University of Rome decided to create a new circuit simulator placed under the GPL. They determined to completely re-write SPICE so that any licencing problems were thereby relegated to the dustbin of historical irrelevancy. Their simulator was ngspice; it processed SPICE netlists written in conformace to SPICE 3, which was bad. Fortunately, somebody also incorporated the XSpice extension code into ngspice -- which was good. Unfoturnately, the XSpice stuff was very, very buggy (i.e. it just didn't work) and was thereby unusable. I decided that this was a bad thing, and set about to fix it. Since I finally got it to work, I sent out the e-mail which you read earlier today. It turned out that developement on ngspice had basically stopped in 2000. I don't know why. Luckily, some folks at MultiGiG Ltd were actively working on a branch of ngspice called tclspice. They were trying to graft a TCL API onto ngspice so that you could invoke SPICE analysis commands in TCL. Since development was active on tclspice, I decided to incorporate my stuff with their code base since it seemed to have the greatest chance of being useful, relevant, and used. That's why I encourage people using and developing gEDA stuff to take a look at it under: http://tclspice.sourceforge.net/ Finally, as for Gnucap: In the late 1990s, somebody named Al wrote a circuit simulator called ACS (Al's Circuit Simulator). I know nothing about it. Later, ACS was turned into a GNU project and renamed Gnucap. I haven't used it because -- as it says on the Gnucap web page -- it has some differences with standard SPICE syntax. The differences may be trivial or irrelevant for all I know. However, because I need to simulate vendor models, I didn't want to mess around with something which wasn't straight SPICE. HTH, Stuart > > Being that I haven't looked at Spice, etc. since my college days which > was better than 25 years ago... > > Can some kind soul explain to me the basic functional differences > between gnucap and say - tclspice? > > Thanks, > > Steve Wilson >
