• 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 perform a MOSFET area sweep while maintaining the...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 144
  • Views 6736
  • 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 perform a MOSFET area sweep while maintaining the aspect ratio, DC analysis

mukulmishra5
mukulmishra5 over 2 years ago

So, I am trying to perform a set of DC analyses for a FET with different area(s), while maintaining same aspect ratio.

So far I have come up with following approach

  1. Provided variable names to Channel length and Width of the FET, say "FET_len" and "FET_wid" respectively.
  2. In the Design Variables tab, assign FET_wid = 3*FET_len, wherein "3" is the aspect-ratio.
  3. Do a DC analysis with Variable sweep "FET_len".

Question 1: Is this the correct way of solving the problem at hand?

Question2: The current solution does not work, I am facing below issue:

  • The MOSFET I am using has number of fingers parameter ingrained in the p-cell and I get something like below when I input variables in Length and width of the FET.

  • When I run the test case with just "FET_len" assigned for Length and a numeric value for the Width, the simulation works fine but when I use variable for width it fails and gives below error:  

I suspect it is happening as a result of that finger width parameter.

Does anyone have a good solution to this issue?

  • Cancel
  • ShawnLogan
    ShawnLogan over 1 year ago

    Dear  mukulmishra5,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 1 year ago in reply to ShawnLogan

    Dear mukulmishra5,

    mukulmishra5 said:
    When I run the test case with just "FET_len" assigned for Length and a numeric value for the Width, the simulation works fine but when I use variable for width it fails and gives below error:  

    I think you need to use the proper syntax for a design variable. Did you try entering:

    VAR("FET_len") as the entry in "Length (drawn)(um)" entry box in lieu of only FET_len?

    mukulmishra5 said:
    Question 1: Is this the correct way of solving the problem at hand?

    I do not know what technology you are using, but many technologies only allow specific channel lengths and widths. If so, you may not be able to realize a constant aspect ratio. Specifically, suppose the allowable channel lengths are Len_i (i = 1,2,3...) and the allowable widths are W_j (j = 1,2,3...). It may be that

    3*FET_len = 3*Len_i results in a value for W that is not included in the allowable set of W_j.

    Hence, you may need to limit your choice of values for Len_i to those that when multiplied by your desired aspect ratio produce a value of W in the set of W_j. I hope my explanation makes sense to you mukulmishra5! It may not be relevant for your technology, but withou knowing your process, I thought I should at least mention it.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to ShawnLogan
    ShawnLogan said:

    I think you need to use the proper syntax for a design variable. Did you try entering:

    VAR("FET_len") as the entry in "Length (drawn)(um)" entry box in lieu of only FET_len?

    This suggestion is incorrect. You do not use the VAR() syntax on the properties on an instance - it's used for design variables/global variables and output expressions in ADE but not on the create instance/edit properties form (it's not a valid "Analog Expression Language" function). There you use the variable name directly (which also generally works in design variables/global too).

    Shawn's point about this might be producing an out-of-range width is valid (and it is indeed hard to know without knowing the technology) but some PDKs (quite a lot of PDKs) do not work correctly when you parameterise device values this way as they require a callback to be executed to compute some derived parameters. That cannot work if you've put a variable name on the device itself.

    Instead, you can use ADE's parameterisation capability. This is available in ADE Explorer and Assembler (and the older ADE XL), and is in the "Parameters" section of the ADE UI. It allows you to override a parameter value on a specific instance and add a sweep or set it to a specific value or variable name (which can then be swept too). The benefit of this approach is that the schematic itself does not need to be edited, plus the callbacks get invoked for each sweep value which won't happen if you've just put a variable directly on the instance.

    Note that this approach won't help if the value is out of range, but at least it's worth exploring.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 1 year ago in reply to Andrew Beckett

    Dear Andrew and mukulmishra5,

    Andrew Beckett said:
    This suggestion is incorrect. You do no use the VAR() syntax on the properties on an instance - it's used for design variables/global variables and output expressions in ADE but not on the create instance/edit properties form

    Thank you, Andrew, for both reading my post and correcting my response - and  I am sorry mukulmishra.  I hope you did not "waste" any time trying my incorrect suggestion!

    My apologies...sigh...

    Shawn

    • 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