• 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 SKILL
  3. How to create a CDF parameter for your custom model parameter...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 4675
  • 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

How to create a CDF parameter for your custom model parameter added to the foundry's model file copied locally?

dr3patel
dr3patel over 9 years ago

Hi, 

I first wanted to manually adjust the Vth0 of the nch and pch transistors from the foundry's (tsmc65nm) model file (*.scs). Therefore, I copied their model file locally and added its location to my model library. Then, I was able to change the vth0 for a given transistor manually by editing the model file and it does reflect in the simulation. Because I want to assign different vth0 for each transistors, I don't want to have different model file for each transistors (as it would be very tedious). Therefore, I want to introduce my own parameters mydvthn and mydvthp for nch and pch (i.e vth0 = abc mV + mydvthn),  vice-versa in the model file and then assign different values for each instances of the transistors using CDF parameters associated with each transistor instances (which I don't know how to do). In other words, I want to keep only one local model library where I can have mydvthn and mydvthp parameters that I can adjust them using CDF parameter. 

I have tried creating my custom cdf parameters mydvthn, mydvthp (same names as the ones I added in the model file) but they are not reflected on my simulation. The interesting thing is that it works perfectly fine when I create a design variable for the whole schematic and give them the same names, mydvthn and mydvthp. However, again, creating design variables would reflect in all transistors as they all point to the single model file which I don't want.

So, How do I create a CDF parameters mydvthn and mydvthp for my transistor instance? It only works if I create mydvthn and mydvthp as a design parameters.  My CDF parameter setup for mydvthn and mydvthp is following:

devault value : '0', parse as CEL : 'yes', parse as number: 'yes', editable condition: 't', units: 'voltage'

Cadence Version: 6.1.5-64b

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    If you've just added parameters mydvthn and mydvthp into the model definition itself, the parameters will be global - and hence adding them on the instance will have no effect (in fact you'll probably get a warning from the simulator saying that these are unrecognised parameters for a bsim4 or something like that).

    What you'd have to do is convert the model into an inline subckt. Since the TSMC model files already contain such a model, nch_mac, I'd suggest you start from the nch_mac component in tsmcN65 and modify the nch_mac component. If you look at this, it has a set of parameters already; you'd need to add your mydvthn and mydvthp to this list of parameters in the inline subckt and set the default values there - then you'd modify the nch model within that subckt to use these parameters. Add the CDF parameters to your local copy of nch_mac (don't forget to add them into the instParameters section of the spectre simulation information so that they get netlisted).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dr3patel
    dr3patel over 9 years ago
    Thanks Andrew! It worked perfectly as I wanted.

    Just for others' reference, here is what how I had modified the .scs file.

    * I edited the .scs file (copied locally) as follows.
    ------------------------------------------------------
    inline subckt nch_mac ( n1 n2 n3 n4 )
    parameters ....... mydvtn=0 //my parameter

    nch_mac ( n1 n2 n3 n4 ) nch ....... mydvtn=mydvtn

    // *** mismatch ***
    model nch bsim4 { ...... vth0 = x mv + (dvthn+vthmisn+mydvtn) } //added mydvtn parameter
    ------------------------------------------------------

    * I added the myvthn as a component parameter in the CDF BASE layer with following properties: devault value : '0', parse as CEL : 'yes', parse as number: 'yes', editable condition: 't', units: 'voltage'
    * I also made sure, all the other default libraries are disabled and only one is enabled that contains my nch_mac model.
    * I also appended the myvthn to the instParameters under spectre simulator listing.
    * Now simulate; simulation should reflect the changes made on mydvtn.
    • 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