• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. 'nmos4' is an undefined primitive device

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 10071
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

'nmos4' is an undefined primitive device

ajmedina
ajmedina over 11 years ago
I am trying to use the nmos4 instance which I found in analogLib but I get the following error:  'nmos4' is an undefined primitive device.  I tried using the following library file which I created: 

simulator lang=spectre 
library nmos 

section ss 
model nmosajm nmos4 tnom=27 TOX=4.1E-9 XJ=1E-7 
endsection ss 

endlibrary nmos 

I also tried using the following model file: 

.model nmosajm nmos4 tnom=27 TOX=4.1E-9 XJ=1E-7 

I realize I'm missing a ton of parameters but I figure I should get past the  'nmos4' is an undefined primitive device error before I move on. 

Hope someone can help. 

Thanks 
Andy 
  • Cancel
  • Tom Volden
    Tom Volden over 11 years ago

    Hi Andy,

    nmos4 is a symbol instance in analogLib, but it needs to be mapped to one of the valid device types in spectre.  In the case above it looks like you would be setting the model name to nmosajm when you instantiate the device in the schematic.  That's fine, you just need to make sure the definition of that model is correct.   You should decide which model you want to use and then use that in your model statement rather than nmos4.  Some typical choices for fictional processes like this are bsim3v3 or bsim4, but there are dozens of other choices as well.  You can get a list of the available model types by entering "spectre -h" and looking for the list in the section that starts with "Available components".  You can then get additional information about the model parameters by entering "spectre -h <component type>", for example, "spectre -h bsim3v3".  In your case, the model definition might look like:

    model nmosajm bsim3v3 type=n tnom=27 tox=4.1e-9 xj-1e-7

    TOM

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ajmedina
    ajmedina over 11 years ago

    Thanks Tom, the simulation ran without error after adding a period before "model":  

     .model nmosajm bsim3v3 type=n  tnom=27 tox=4.19n 

     Is that proper syntax when using Spectre?

     

    Best

    Andy 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    If the model is in a file with a ".scs" suffix, then it should be in spectre syntax. If it has any other suffix, it's assumed to be in SPICE syntax. Spectre syntax doesn't have the leading dot, whereas SPICE does.

    You can explicitly set the language by adding:

    simulator lang=spectre

    or:

    simulator lang=spice

    directives to change language mode. Anything after the directive in the same file will use the last language directive.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ajmedina
    ajmedina over 11 years ago
    Thanks!
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information