• 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. Finding out if a net is a bus, if so find total number of...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 14169
  • 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

Finding out if a net is a bus, if so find total number of signals

rotanudad
rotanudad over 6 years ago

I.e. foreach(net cellView~>nets 

    ; check if net is a bus, and the total number of signals/iterations

)

I've also tried regex to parse the name to find out, but I'm having trouble with capture groups. I could not find any functions in the pcre regex suite to do the following:

E.g.  I have a string: "<*123>A_signal"

I want to use a regex expression "<\\*([0-9]+)>(.*)" 

In between the round brackets '()' I wish to capture the values, in this case it is "123" and "A_signal". 

Any help is appreciated!

  • Cancel
Parents
  • skillUser
    skillUser over 6 years ago

    Hi,

    Each net object has an attribute "numBits" which will be 1 for a scalar net and  (typically - I think a singleton bus bit might also have numBits as 1) >1 for a bus.  There are other useful attributes such as 'signals' and 'sigNames' to reach individual members.

    Hopefully this will help you?

    Regards,

    Lawrence.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to skillUser

    You can also use dbGetNameNumBit() if you want to find the width (although getting the info directly from the database would make sense in this case as Lawrence suggested). There's also dbProduceMemName() to expand a name into individual members - although you can look at the ~>signals to do that from the net.

    I would strongly discourage you reinventing the wheel by using regular expressions to parse the net name. It's likely to be incomplete and really should be unnecessary - there are enough utility functions to do what you want, as well as direct info in the database.

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to skillUser

    You can also use dbGetNameNumBit() if you want to find the width (although getting the info directly from the database would make sense in this case as Lawrence suggested). There's also dbProduceMemName() to expand a name into individual members - although you can look at the ~>signals to do that from the net.

    I would strongly discourage you reinventing the wheel by using regular expressions to parse the net name. It's likely to be incomplete and really should be unnecessary - there are enough utility functions to do what you want, as well as direct info in the database.

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 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