I know the cd4049 is just two FET's but I don't know how I can model those transistors to be at least near what one would expect from the behavior of the IC.

Also, what parameters are absolutely needed when modelling a FET? Can I leave some out? I have seen different models with different complexity, that is confusing. I'm pretty new to modeling components in spice, in other words, this will be my first.


Ok, I found an excellent tutorial on how to do this using pspice.


They take PMOS and NMOS FETs' models and specify only the parameters that are different from those default. This is what I want to do, but how can I know the parameters of the FETs from the datasheet?.



  • \$\begingroup\$ It depends how sophisticated you need your simulation to be. The SPICE model of industry standard logic MOSFETs (BSIM) takes an entire book to grok... books.google.com/books?id=LacJCAAAQBAJ Alas for ICs their datasheet will usually not contain the FET parameters... Some vendors give out encrypted SPICE models for their ICs that do contain such parameters. I don't know if it's possible to crack those... \$\endgroup\$ Commented Nov 16, 2015 at 23:20

3 Answers 3


Don't worry about it, others have done that work already!


You'll still need channel width and length from the real parts, but also adjusting those dimensions to scale for different devices should be straightforward (i.e. for more current / less Rds(on), increase W proportionally).


The precise method depends on the particular spice engine.

Most have something called a subciruit or package definition that would let your create the component as a schematic.

Many also have the ability to define the behavior of an element programmatically. By entering a formula or script, relating the various values.

There are many different levels of FET transistor models. It is beyond the scope of this answer to describe them. A large number of them are described in this HSPICE manual, the manual of your own particular spice implementation will likely has similar descriptions of the models it supports.

To determine reasonable values for the parameters, you are going to need to look at the datasheet for the component, which you should be able to download from the manufacturer.

You may in-fact be able to download a existing spice model for the component from the manufacturer -- or from the website of a spice engine -- though your might have to convert it to the format preferred by your spice engine.


I too was interested in emulating a CD4049UB type of inverter (in my case using ngspice & KiCad), and after not knowing enough to get TI's CD4049UB PSpice model working in ngspice, I similarly went down the "two transistor" path.

After messing around with arbitrarily downloaded N-and-P-channel MOSFET models, I noticed in the manual that there was a much simpler approach: use spice's built-in CMOS IC models. Indeed, the manual calls them "the central part of ngspice", with the complimentary internal models as easy as placing MNMOS and MPMOS pspice symbols in your KiCad schematic, setting their type to MOSFET in the Spice Model Editor dialog, then placing text like this anywhere on the schematic to invoke a model card:

.model MNMOS NMOS level=8 version=3.3.3
.model MPMOS PMOS level=8 version=3.3.3

To be sure this was really just two MOSFETs (i.e. not a model simplified to be a digital switch), I set up an ultra-bare-bones analog example: Sine wave amplification using CMOS pair

Simulating that circuit fit my basic expectations: Spice simulation


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.