• 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. help on how to find the corresponding instance name

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 144
  • Views 15151
  • 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

help on how to find the corresponding instance name

Blues
Blues over 13 years ago

In Schematic composer, there have a bus named "<*2>AA<1>,AD<3:0>,AB<1:0>" and it connect to an instance array named XDEC<7:0> 's terminal A.

Now, we can have an input string "AD<2>", how to get its connected instance name? The result should be XDEC<4>, how to writing the skill code? The property did not have the related information, maybe the probe function can help?

  • Cancel
  • Blues
    Blues over 13 years ago

    I use a complex method to do:

    assume the bus has been selected,

    b=css()

    b~>net~>sigNames to get a list ("AA<1>" "AA<1>" "AD<3>" "AD<2>" "AD<1>" "AD<0>" "AB<1>" "AB<0>")

    search the list to get the string "AD<2>" position 3

    b~>net~>instTerms~>inst~>name to get the bus connected instance name XDEC<7:0>

    expand the instance name to get the position 3 instance should be XDEC<4>

    ----------------------------------------------------

    this method is very complicated, any one can help me for a simplified skill code?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    sig=dbFindSigByName(cvId "AD<2>")
    foreach(memInstTerm sig~>memInstTerms
      printf("Connected to pin %s on instance %s\n"
        car(memInstTerm)~>name
        dbGetMemName(car(memInstTerm)~>inst~>name cadr(memInstTerm))
      )
    )

    Note that this would get a bit more complicated if you were connected to a bus net on an iterated instance, but hopefully this gives you the idea in principle.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Blues
    Blues over 13 years ago

     Andy,

     

    Thank you very much, it's very clear and useful.

     

    Best Regards,

    Blues

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Blues
    Blues over 13 years ago

    Andrew Beckett said:

    sig=dbFindSigByName(cvId "AD<2>")
    foreach(memInstTerm sig~>memInstTerms
      printf("Connected to pin %s on instance %s\n"
        car(memInstTerm)~>name
        dbGetMemName(car(memInstTerm)~>inst~>name cadr(memInstTerm))
      )
    )

    Note that this would get a bit more complicated if you were connected to a bus net on an iterated instance, but hopefully this gives you the idea in principle.

    Regards,

    Andrew.

     

    To solve a problem that the instance's pin can be a bus type such as A<1:0> and in this case the instance name is XDEC<3:0>, the result should be XDEC<2>, I have modified a little:

    sig=dbFindSigByName(cvId "AD<2>")
    foreach(memInstTerm sig~>memInstTerms
      printf("Connected to pin %s on instance %s\n"
        car(memInstTerm)~>name
        dbGetMemName(car(memInstTerm)~>inst~>name cadr(memInstTerm)/dbGetNameNumBit(car(memInstTerm)~>name))
      )
    )

    your code is a very good example for me.

    • 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