• 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. include a model files for nmos and pmos into virtuoso

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 125
  • Views 28177
  • 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

include a model files for nmos and pmos into virtuoso

auto dipper
auto dipper over 11 years ago

 HI all,

how can I include a model files for nmos and pmos into virtuoso like the one which is attached. I want to use this model file as it has equal threshold voltage for pmos and nmos. It is needed only for simulation results.

Regards

m1_typ.doc
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago
    1. Put the contents of that document in a file, for example "massobrio.sp"
    2. Create a schematic using transistors from analogLib - I used nmos4 and pmos4, but you could use the 3-terminal devices nmos and pmos if you prefer and set the bulk connections via inherited connections. The default is that nmos has its bulk as gnd! and the pmos as vdd! (If it was me, I'd use the four terminal device to start off with).
    3. Set the model name on the pmos4 to be "pmos" and on the nmos4 to be "nmos" (to match the model file which uses these names - whatever word is after the .model in the file). I set w=10u and l=3u (the models have a delta-l (ld) of 0.8u which is pretty large, so the models are for a quite large geometry process). The delta-l is subtracted from both edges, so a 3um drawn length has an effective length of 1.4u. Even 3um is probably a bit aggressive for a length with such models, I think!
    4. Then start ADE from this schematic and use Setup->Model Libraries. Reference the massobrio.sp file you created in step 1.
    5. Add the analyses (e.g. a tran analysis) and run the simulation

    I just tried this in a couple of minutes (it took me longer to write this reply) and it worked fine.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • auto dipper
    auto dipper over 11 years ago


    Thanks for the reply. Does the model file name have to be "massobrio.sp" or "massobrio.m" , I mean I had the impression that model files should end with an extension .m?

    regardss

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    In the old spectreS and cdsSpice interfaces you needed to have model files (in cdsSpice format) with the ".m" suffix. With spectre, the suffix doesn't matter, except that if the suffix is ".scs" it is assumed to be in spectre language, whereas any other suffix is assumed to be in SPICE language. Your models are in SPICE language, so pick anything other than ".scs". There is the "simulator lang=spice" or "simulator lang=spectre" directive that can be used to override this if needed, but you don't need that here.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • auto dipper
    auto dipper over 11 years ago

     Thanks for the confirmation, I tried to do the way as you suggested and the simulation happened but I got the below Notice in the output log file

    Notice from spectre during initial setup

    Pmos: Value of ‘kp’ and ‘u0’ are not consistent

    Nmos: Value of ‘kp’ and ‘u0’ are not consistent

    What is the effect of above on output and how to remove this?

    Another issues is that as I observed the number of parameters in any other model file like ami06.m is 94 but the model file I am using for equal threshold voltage (attached) has only 27 parameters. So where will the issues arise in using such model file with less no. of parameters?

    regards

     

     

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

    This is a mos1 (level 1, i.e. Shichman and Hodges) model, and from the documentation:

    The consistency between kp, uo, and Cox(kp = uoCox) is checked according to the following rules:

    • If tox is not given, Cox is calculated from the default value of tox.

    • If kp is given, uo is calculated from uo = kp/Cox, whether uo is given or not. If this uo value is different from that specified in the model, a warning message tells you that the specified kp and uo values are inconsistent.

    • If you do not give kp and uo is specified, kp is calculated from kp = uo * Cox.

    • If neither kp nor uo is given, their default values are used.

     

    So, given that Cox=εox/Tox and εox=ε0*εr. ε0 = 8.854187817x10−12 [F/m] and εr=3.9, so since tox in the model is 0.1u, Cox=3.4531e-4, and so uo should be 3.0e-5/3.4531e-4. That's 0.08688, but since uo is entered in cm^2/V*s, and this is in m^2/V*s, we need to multiply by 100*100 - so that makes it 868.8 - which is exactly what you see in the model parameters output from spectre (if you've saved them - in ADE you can see this in the results browser). The model has 700 for uo. All it means is that 700 is ignored and 868.8 used instead.

    The number of parameters being different may just be a matter of this being a level 1 model - I have no idea what the "ami06" model is. Also, this is a made up model representing an ancient technology - presumably the ami06 model is a characterized model from an AMI process, so has probably had more care put into its creation.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • auto dipper
    auto dipper over 11 years ago
    Thank you for the reply. Yes ami06 is proper model file from AMI with around 94 parameters.

    Could you please let me know some resources from where I can get reference to what is meaning of each symbol in the mos spice model file

    regards
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago
    If you run <MMSIMinstDir>/tools/bin/cdnshelp and then navigate to MMSIM->Virtuoso Simulator Components and Device Models Reference, or look at <MMSIMinstDir>/doc/spectremod/spectremod.pdf or even at http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs;q=spectremod/spectremod13.1.1/spectremodTOC.html then you'll see the equations used. Also "spectre -h mos1" or "spectre -h bsim4" will tell you a short definition of each model parameter.
    • 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