Fatal error: Model M has wrong MOSFET polarity for instance MP4•X1•X2

I don’t understand this error at all. I’ve checked my symbol, my model, etc. I have MP4 nested down 2 symbols. At top level, it’s inside X2. X2 has X1 inside, and MP4 is inside X1, along with other PMOS with the same model.

Your BSS84 is a .subckt or .model in mos.txt?
Symbol Type MP or MN only supports .model statement.
You need Symbol Type X for .subckt netlist.

OR

Double-check your mos.txt. If BSS84 is a .model, does it contain the parameter pchan? If you use Symbol Type MP to call an n-channel .model, you may encounter an error “… has the wrong MOSFET polarity, for instance …”. But messing up a library is strange, as DSS84, which you commonly find, should have keyword pchan in it : Standard.mos - LTwiki-Wiki for LTspice

You can see I clicked on MP4 symbol to get the symbol properties, and it points to a model/mos.txt model file. It is not a subcircuit. And in the mos.txt file, I have this:

.model BSS84 PMOS (

  • VTO = -2.1
  • KP = 0.2
  • BV = 50
  • RG = 3)

Cannot find a way to replicate the problem. I setup a two level of parent to call the MP symbol with a mos.txt library with .model BSS84 PMOS VTO = -2.1 KP = 0.2 BV = 50 RG = 3, and simulation can still run properly.

Download all these files and run “Parent.Parent.mos.qsch” and no error return.

Parent.Parent.mos.qsch (2.2 KB)
Parent.mos.qsch (593 Bytes)
mos.qsch (1.1 KB)
mos.txt (52 Bytes)