1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376
|
Ngspice F.A.Q.Version 2.0 (ngspice 26 release)
Maintained by Paolo Nenzi, Holger Vogt
Last update: 02-01-2014
This document contains the Frequently Asked Questions (and Answers)
for ngspice project.
__________________________________________________________________________
Table of Contents
1. INTRODUCTION AND GENERAL INFORMATION
1.1 What is ngspice?
1.2 What is sharedspice?
1.3 What is tclspice ?
1.4 Why resurrecting Berkeley's Spice?
1.5 What is the project's goal?
1.6 What you are going to do?
1.7 Legal issues
1.8 What mailing lists exist for ngspice?
1.9 Are the mailing lists archived anywhere?
1.10 What newsgroups exist for ngspice?
1.11 Where can I get a copy of ngspice?
1.12 Where should I look on the World Wide Web for ngspice stuff?
1.13 Where should I look on the World Wide Web for Spice documentation?
2. DEVELOPMENT
2.1 What is the current version?
2.2 What are the latest features in the current release?
2.3 What does it look like?
2.4 Who are the authors of ngspice?
2.5 How can I report a bug/request for a feature?
2.6 How can I join the development?
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
3.1 What systems are supported?
3.2 I get errors when I try to compile the source code, why?
3.3 This document didn't answer my question. Where else can I look for
an answer?
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
4.1 Feedback
4.2 Formats in which this FAQ is available
4.3 Authorship and acknowledgements
4.4 Disclaimer and Copyright
______________________________________________________________________
1. INTRODUCTION AND GENERAL INFORMATION
1.1 What is ngspice ?
Ngspice is a mixed-level/mixed-signal circuit simulator, based on three
open source software packages: Spice3f5, Cider1b1 and Xspice, and
including many bug fixes and enhancements:
- Spice3 is a widely used circuit simulator. It was developed by the
University of California at Berkeley (UCB), by "a cast of thousand"
(as they say) initially under the guide of Donald O. Peterson.
- Cider is a mixed-level simulator that already includes Spice3f5 and
adds a device simulator to it: DSIM. Cider couples the circuit level
simulator to the device simulator to provide greater simulation
accuracy (at the expense of greater simulation time). Critical
devices can be described with technology parameters (numerical
models) and non critical ones with the original spice's compact
models.
- Xspice is an extension to Spice3 that provides code modeling support
and simulation of digital components through an embedded event
driven algorithm.
The NG prefix has lot of meanings: Next Generation, New Good, etc.
Choose or invent the one you prefer. The heart of the project is the
ngspice program, with its tremendous advancements.
1.2 What is sharedspice ?
Sharedspice is an interface option to ngspice. It compiles the simulator
into a shared object (or dynamic link library), providing full control
of ngspice to any suitable controlling program (GUI, optimizer,
development system, etc., to be provided by the user).
1.3 What is tclspice ?
Tclspice is a another interface option of ngspice, providing a tcl/tk
interface to the user. Tclspice is both a batch and interactive simulator
and a building block for simulator applications. Analyses can be run
from a tcl script and vector plotted or post processed using tcl. A small
GUI may be built by the user to analyze a circuit or a set of circuits.
Tclspice is obtained compiling ngspice activating an additional option.
1.4 Why resurrecting Berkeley's Spice?
Berkeley's Spice can be considered the father of most circuit
simulators available today. It is an old but still good piece of
software, it may not be the fastest or the most reliable but it's
free, it's available in source code and most of the electrical
simulators inherited it's syntax. Spice3 is based on proven numerical
algorithms (most commercial implementations have only strengthened
them), implements most of the models for MOSFET submicron design
and has a powerful set of analyses. The readily availability of
its source code in the past made this simulator the de-facto standard.
1.5 What is the project's goal?
Ngspice is both a maintenance and enhancement project. It is a maintenance
project because it aims to provide the free EDA community the best spice3
simulator available. This means fixing bugs, adding new features but always
in the spice3 framework. Achieving compatibility with commercial spice based
simulators and provide users the latest devices models are important goals
of the project. Improvements in the postprocessing (data handling
capabilities) and user interface are other goals.
1.6 What you are going to do?
An official roadmap for ngspice was never drawn. Contributions made by
developers drive ngspice development and the roadmap is built day by
day by developers writing on the lists. Ngspice development activity
can be summarized in 3 points:
+ Compatibility: Ngspice should be compatible with commercial products,
thus allowing people to use the netlist generated for such tools. As
most of the commercial simulators available tracked each other in netlist
language, this should not be an impossible task. The most important goal
here is to provide a reliable support for model libraries coming from
foundries.
+ Compact models: The interest in using ngspice is intimately connected
to the available models. To provide the latest models available for
active and passive devices is a fundamental goal of the project. In
this direction we are integrating ADMS model compiler into ngspice.
+ Documentation: Commercial simulators come with very good manuals
containing tutorials, description of models equations, example of
use, suggestions, etc. Spice came with little documentation. The
Spice3f manual, available on the Internet has been used as the basis
for the new manual. It will be constantly improved during ngspice
development and integrated with the documentation accompanying Xspice
and Cider. The ngspice manual today contains description of all
features ngspice is offering. It is however not a tutorial of ngspice
usage, but there are now several good ones available on the internet
(see http://ngspice.sourceforge.net/tutorials.html).
1.7 Legal issues
The ngspice base license is new BSD, as provided by UCB. For some parts
of the code other compatible licences apply. Please see file COPYING
for details.
1.8 What mailing lists exist for ngspice?
There are two general mailing lists dedicated to the ngspice project.
Users mailing list: <ngspice-users@lists.sourceforge.net>
This list is for ngspice users. Examples, problems, bug reports
and general discussion on ngspice can be sent here.
Developers mailing list: <ngspice-devel@lists.sourceforge.net>
The list is dedicated to ngspice development. Developers should
subscribe here, to follow the program development. May be used
to send patches, and technical discussion on ngspice.
Send an empty message with Subject "help" to the following addresses
to get instructions.
<ngspice-users-request@lists.sourceforge.net>
<ngspice-devel-request@lists.sourceforge.net>
Send an empty message to the following address to Subscribe.
<ngspice-users-join@lists.sourceforge.net>
<ngspice-devel-join@lists.sourceforge.net>
Documentation about the user interface of
these mailing lists can be found at:
http://www.gnu.org/software/mailman/mailman-member
1.9 Are the mailing lists archived anywhere ?
Yes, the lists are archived. There are two places where to look for
archives. The project started on the IEEE Central and South Italy
web server and then moved to sourceforge. Sourceforge provides an
archiving service that cam be accessed via the summary page:
http://sourceforge.net/p/ngspice/mailman/
1.10 What newsgroups exist for ngspice?
There is no ngspice specific newsgroup. Sourceforge offers additional
discussion groups for ngspice, please see
http://sourceforge.net/p/ngspice/discussion/
ngspice threads may appear on newsgroups dedicated to circuit
simulation and electronic design.
1.11 Where can I get a copy of ngspice?
You can download ngspice from:
http://sourceforge.net/projects/ngspice/files/ng-spice-rework/
1.12 Where should I look on the World Wide Web for ngspice stuff?
Look at the official Ngpice Web Page:
http://ngspice.sourceforge.net
1.13 Where should I look on the World Wide Web for Spice documentation?
There is a detailed ngspice manual available at:
http://ngspice.sourceforge.net/docs.html
Others docs are assembled at:
http://ngspice.sourceforge.net/literature.html
2. DEVELOPMENT
2.1. What is the current version?
The latest version released is:
* ngspice-26 (released on 04/01/2013)
2.2. What are the latest features in the current release?
- New features:
+ add temperature coefficients for B source
+ commands "mdump", "mrdump" to dump matrix to file
+ allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
+ Enable ctrl-c to interrupt a simulation also for Windows GUI
+ tests/bsim4: use the standard CMC model check
+ implement exit code for command "quit"
+ .nodeset all = value
+ memristor code model in extradev
+ new scalable diode model including tunnel component
+ variable xtrtol may override the XSPICE reduction of trtol
+ XSPICE example: delta-sigma converter
+ XSPICE: new d_source model
+ new option noopac
+ bsim3: make additonal parameters accessible with @mxx[par]
+ enable Mac OS X compilation
+ option reseries = val
+ commands "snsave", "snload"
+ update hisim to version 2.7.0, new qa tests
+ hisimhv update to version 1.2.3, new qa tests
+ allow Ctrl-d to quit
+ jfet model temperature extension, tcv and bex parameter
+ speed up vector handling by hash table for vector address storage and retrieval
+ update PSS code
- Bug fixes:
+ many, many ... please see
http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0
+ remove memory leaks
+ update tclspice for MS Windows
+ adms3 removed due to licensing issues
+ Many small bugs
2.3. What does it look like?
Ngspice, as the original Spice3 (and Xspice and Cider) is a command
line simulator, but with a graphics output capability.
2.4. Who are the authors of ngspice?
The development is open to anyone who wish to contribute. If the
original Spice3 was made with the contribution of "a cast of
thousand", ngspice can only increase that number. An incomplete
list of contributor makes the "acknowledgements" page of the ngspice
manual.
2.5. How can I report a bug/request for a feature?
The ngspice summary page (hosted on Sourceforge) has bug-reporting,
feature-request and bugs trackers. You can use them or subscribe to
mailing lists and post there. The former is preferred since almost
it allows to track all necessary actions upon a bug. The web site at
http://ngspice.sourceforge.net/bugrep.html will give you more details.
2.6. How can I join the development?
To join the development just code the feature you want to add and send
your patch in the mailing list. Before you start coding check the
latest development release of ngspice from our git repository.
It might be that your feature has already been implemented.
There is no bureaucracy here.
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
3.1. What systems are supported?
Ngspice is written in C, and uses some GNU extensions, then you need
a GNU C compiler and a UNIX environment to compile it. Ngspice can
be compiled under Windows using the mingw or cygwin environment as
well as MS Visual Studio.
3.2. I get errors when I try to compile the source code, why?
This is a one-million-euros question :).
Write a mail to the user's list describing the problem and providing
information on the type of hardware, the flavour of operating system.
3.3. This document didn't answer my question. Where else can I look
for an answer?
Read old messages from the mailing list archive, search the web site
or read the docs. Upgrade to the latest version of ngspice, many
problems are fixed in the new versions. If you still can't find an
answer, post your question to the mailing lists.
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
4.1. Feedback
Send your comments about this F.A.Q. to:
Paolo Nenzi <p.nenzi@ieee.org>.
Send your comments about ngspice to:
Paolo Nenzi <p.nenzi@ieee.org>.
4.2. Formats in which this FAQ is available
This document is available only in ASCII format in the ngspice source
package.
4.3. Authorship and acknowledgements
Parts of the questions and answers are originate from Paolo Nenzi.
4.4. Disclaimer and Copyright
This document is provided as is. The information in it is not
warranted to be correct: you use it at your own risk.
|