• 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. Change symbol pin array size

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 144
  • Views 16327
  • 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

Change symbol pin array size

psill00
psill00 over 11 years ago

How to change symbol pin terminal array size?

I have tried to find the pin property to change the array size but get errors when i try to change the value.

 I am assuming I have to delete the pin and recreate the pin with the function, schCreateSymbolPin.

 schCreateSymbolPin(
d_cvId  ( cellview ID ) 
d_master ( can I get the master from the old pin? )
t_termName ( new name create )
t_direction ( get from old pin )
l_origin ( get from old pin )
t_orientation ( get from old pin )

If the is another method or function can you point me in the correct direction.

 Do I have to delete or add the new nets/terminals from the symbol view with the new array size?

Thanks

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

    Normally you could do:

    term=dbFindTermByName(cvId "pinA")
    term~>name="pinB"

    and this works fine. It works OK with vector terminals too, provided that the width remains the same.

    If the size is changing, you can do:

    term=dbFindTermByName(cv "a<7:0>")
    pinFigs=term~>pins~>fig
    dbDeleteObject(term)
    newNet=dbMakeNet(cv "a<15:0>")
    foreach(pinFig pinFigs dbCreatePin(newNet pinFig))

    This will preserve all the existing pin figures and just associate them with the newly named terminals. The nets will all get sorted out when you do an schCheck(cv)

    So you don't really have to recreate the pins. Ah, just realised you were talking about symbols not schematics, but I think the method would be the same for a symbol too. You'd probably have to fix any pin labels because these will be wrong too.

    Regards,

    Andrew.

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

    Normally you could do:

    term=dbFindTermByName(cvId "pinA")
    term~>name="pinB"

    and this works fine. It works OK with vector terminals too, provided that the width remains the same.

    If the size is changing, you can do:

    term=dbFindTermByName(cv "a<7:0>")
    pinFigs=term~>pins~>fig
    dbDeleteObject(term)
    newNet=dbMakeNet(cv "a<15:0>")
    foreach(pinFig pinFigs dbCreatePin(newNet pinFig))

    This will preserve all the existing pin figures and just associate them with the newly named terminals. The nets will all get sorted out when you do an schCheck(cv)

    So you don't really have to recreate the pins. Ah, just realised you were talking about symbols not schematics, but I think the method would be the same for a symbol too. You'd probably have to fix any pin labels because these will be wrong too.

    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