summaryrefslogtreecommitdiff
path: root/Windows/spice/doc/FAQ
blob: e137c93cf1276016f936dbcd4c5b486c194e8903 (plain)
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.