• 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. Abutment of one object with itself. How?

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 142
  • Views 6863
  • 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

Abutment of one object with itself. How?

Zelli
Zelli over 16 years ago

I do not have left and right objects. (leftdiff, rightdiff). I have one diffusion object. Thus, I cannot use this standart:

"procedure(tranAbutFunction(instA instB pinA pinB pinAside conn event @optional group)

let(( result pinAcontP pinAstrP pinBcontP pinBstrP pinAw pinBw pinAcontV

pinAstrV pinBcontV pinBstrV drop_moving debugging eqW )"

And how I may use abutment in my case ?

 

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 16 years ago

    I'm  not entirely sure what you mean, because it would be meaningless to abut one object with itself.

    I'm guessing that what you're saying is that you have a single piece of diffusion under the transistor, and so when you abut one transistor to another, you don't know how to handle that?

    Well, the key thing is that the abutting objects are pins. When the abutment of two pins is detected, it can then figure out the connectivity information, and know whether there are other connections, and consequently your abut function can choose to do the abutment, either leaving the metal connection present or not. Normally the abutment is triggered by diffusion source and drain pins, because you need to have pins which will be there after the abutment has occurred; if you've removed the metal pins from either or both abutting transistors as a result of your abut function, there's nothing left to manage the abutment...

    So usually you would create a diffusion pin on the source region and drain region - you can keep the single piece of diffusion underneath the transistor - I'm assuming that doesn't have any pin on it right now, because otherwise your transistor would be shorted...

    The other main important feature of abutment is that the abutting pins must have the same pin name before and after abutment. Often pin names are not that important in Virtuoso; it's usually the terminal name which matters. However in this case, the pin name (which is somewhat arbitrary) is how the abutment system knows which pin is which before and after the abut function is called - this is necessary because the pcell code will have rebuilt the pcell submaster, and so it needs some way of identifying which pin was which (the db object ids will have changed).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 16 years ago

    I'm  not entirely sure what you mean, because it would be meaningless to abut one object with itself.

    I'm guessing that what you're saying is that you have a single piece of diffusion under the transistor, and so when you abut one transistor to another, you don't know how to handle that?

    Well, the key thing is that the abutting objects are pins. When the abutment of two pins is detected, it can then figure out the connectivity information, and know whether there are other connections, and consequently your abut function can choose to do the abutment, either leaving the metal connection present or not. Normally the abutment is triggered by diffusion source and drain pins, because you need to have pins which will be there after the abutment has occurred; if you've removed the metal pins from either or both abutting transistors as a result of your abut function, there's nothing left to manage the abutment...

    So usually you would create a diffusion pin on the source region and drain region - you can keep the single piece of diffusion underneath the transistor - I'm assuming that doesn't have any pin on it right now, because otherwise your transistor would be shorted...

    The other main important feature of abutment is that the abutting pins must have the same pin name before and after abutment. Often pin names are not that important in Virtuoso; it's usually the terminal name which matters. However in this case, the pin name (which is somewhat arbitrary) is how the abutment system knows which pin is which before and after the abut function is called - this is necessary because the pcell code will have rebuilt the pcell submaster, and so it needs some way of identifying which pin was which (the db object ids will have changed).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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