# Good free simulator for dc sweep

I need to do a DC sweep of a circuit involving a NMOS, but my version of Multisim doesn't have that option. Which free simulator would you recommend for a DC sweep?

• ngspice or LTSpice would both work. But questions seeking specific product recommendations are off topic so I won't post that as an answer. – The Photon Oct 20 at 1:37
• FYI there is a Software Recommendations Stack Exchange that does take this kind of question. You could even check if a similar question has already been asked and answered. – The Photon Oct 20 at 1:38
• Falstad for simple models ..... tinyurl.com/y3zgy2ja – Tony Stewart Sunnyskyguy EE75 Oct 20 at 1:47
• I think that circuit simulation is a niche enough application that it is frankly unrealistic to expect a good answer from anywhere but this specific stack exchange. This may technically be off topic, but surely exceptions can and should be made in specific instances where there this is still the best place to get the best answer to a question? Even if there are engineers well versed in the minutia of SPICE simulators on any other stackexchange, there will certainly be less of them than there are browsing this stackexchange. – metacollin Oct 20 at 2:21

I highly recommend LTSpice. While not open source, it is freeware, and has very up-to-date models for things like NMOS transistors, and for many simulations is the fastest SPICE implementation out there. Be sure to adjust the number of cores to suit your system, and make sure it is generating object code - this makes it very fast.

Performing a DC sweep in LTSpice is fairly straightforward SPICE:

.dc <SourceName> <Vstart> <Vstop> <Vincrement>

where SourceName is the voltage or current source you wish to step, the rest should be fairly self-explanatory.

If you wanted to see the default curves for BSIM3v3.2.4's NMOS model for example, it would be as simple as:

M1 2 1 0 0 nbsim
Vgs 1 0 3.5
Vds 2 0 3.5
.dc Vds 3.5 0 -0.05 Vgs 0 3.5 0.5
.model nbsim NMOS Level=8
.save I(Vds)
.end


Note that in this example, both Vds and Vgs are being swept. The syntax to step multiple sources is simply repeating the SourceName, Vstart, Vstop, and Vincrimenet arguments for each additional source.

• LTSpice. It's sort of the industry standard, with a wide user base, which means a lot of help's available when you hit a problem. – Neil_UK Oct 20 at 6:06