• 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 determine fet pcell actual drawn width per finger...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 14463
  • 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 determine fet pcell actual drawn width per finger?

caver456
caver456 over 7 years ago

On folding of a fet pcell (i.e. increasing the finger count while maintaining the total combined w), how can you determine the actual generated w per finger?  The assumption is that all fingers have the same finger width, i.e. the overall string of fets has just one (merged) diffusion rectangle, crossed by some number of gate stripes.

Basically, it seem the folding operation is 'open-loop': there is no feedback mechanism to say "sorry, you cannot increase the finger count any more, since the generated width per finger multipled by the requested new finger count would no longer be equal to the specified total w."  This could happen for grid snapping reasons or for min-width reasons.  In the (compiled) pcells that we use, there are no restrictions on finger count, and there are no pcell parameters that indicate the w per finger of the current pcell; the only relevant pcell parameter is total w, which is specified by the user, and does not change as a function of finger count or grid or min width.

Ultimately I would like to generate that warning when I try to fold too many times, i.e. when I try to increase the number of fingers such that new total w would no longer match expected total w.  How can we accomplish this?

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago
    Are you talking about folding via the VLS XL feature called “folding”), or are you just talking about the user making an arbitrary choice to specify the number of fingers on a single transistor that supports multiple fingers?

    The answer I think will depend on which you’re talking about - perhaps you can give a specific example of exactly what you’re doing, and what you’d want the outcome to be?

    Regards,

    Andrew.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • caver456
    caver456 over 7 years ago
    Sorry for the delay, was out sick for a week. This is 'folding by hand' i.e. modify a generated pcell's properties to increase its finger count. Our pcells do internally calculate w-per-finger based on w (i.e. total w) and finger count, but, that w-per-pinger value is never exposed to the user and these pcells are encrypted/compiled by our CAD department so as an end user I can't modify or look at their code.

    In this use case, the user gives the command to "increase(or decrease) finger count by one". When that operation would result in a w-per-finger that is less than DRC minimums (or is offgrid, for that matter) I would like to give a warning/error back to the user to that effect.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago
    I'm not sure what you mean by 'the command to "increase(or decrease) finger count by one". Is this some custom utility or is it just manually changing the finger count on the edit properties form? If it's the former, you could presumably code in some kind of check as part of that custom command. If the latter, then it would be something that would be done as part of CDF callback for the device. However, if that's out of your control, wouldn't it make sense to request this of the CAD department since it's presumably under their control?

    Regards,

    Andrew.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • caver456
    caver456 over 7 years ago
    We do use some custom code in a bindkey to increment or decrement the finger count of the fet under the mouse. Sounds like the solution is just to include "w-per-finger = w-total / finger-count" and then take action if w-per-finger is offgrid or is below the minimum w for that fet. It's still 'open-loop' but should get the job done. If we do need it to really be closed-loop, i.e. feedback based on what the pcell decides to draw, we will talk with our CAD. 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