• 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. net, terminal, signal

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 142
  • Views 19304
  • 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

net, terminal, signal

dakuang01
dakuang01 over 7 years ago

Hi,

I'd like to change label names including pin names after selecting labels and pins that I want to change.

A skill code changing text is done but I should add more lines to change pin names as well because we are using layout XL.

I started to think what affects connectivity of layout XL, terminal name or pin name or net name and I'm not sure but I thought terminal name could.

Now I am having trouble to change terminal name of pin and I am confused about net, terminal and signal.

I have seen net and signal and terminal while writing skill codes but I don't have confidence on these.

1) If I am right that terminal name affects connectivity of layout XL, how can I change terminal name?

The way I am approaching is like this below.

foreach(sel selectedSet()

    if(sel~>objType =="rect" then

        t_netName = sel~>net~>name

        d_termID = dbFindTermByName(cv t_netName)

       .

       .

       d_termID~>name = t_changed

);foreach

2) Can you explain what's the difference of net, terminal and signal? 

Thanks,

Jungyoon

  • Cancel
  • mbracht
    mbracht over 7 years ago

    Hi Jungyoon,

    A terminal is always on a net (or "has" a net) but not vice versa.
    Internal nets do not have a terminal attached - meaning you cannot connect to them from outside.
    So net~>term returns nil for internal and a terminal OA object for external nets.
    If a shape (for example a rectangle) is a pin you get at the corresponding terminal like this:
    rect~>pin~>term
    ...so to rename the terminal:
    rect~>pin~>term~>name=<new name>

    I'am not sure about the signal though...

    Max

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • mbracht
    mbracht over 7 years ago in reply to mbracht

    oh - and changing the terminal name changes the associated label name accordingly...

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to mbracht

    Signals are scalar nets (i.e. never any more than one bit wide), and a bussed or bundled net in the database will have a number of member signals (which is as wide as the bus or bundle).

    However, why are you trying to change the connectivity information if you're using VLS XL - you'll presumably then make it inconsistent with the connectivity source (the schematic). Normally you'd  update the schematic and then use Update Components and Nets to update the layout, which will adjust the connectivity in the database accordingly.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • dakuang01
    dakuang01 over 7 years ago in reply to mbracht

    Thanks Max,

    I understand a terminal can be a port of schematic having a net and being not an internal net. Am I understanding in the right way?  

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dakuang01
    dakuang01 over 7 years ago in reply to Andrew Beckett

    Thanks Andrew for explaining what signals are.

    I had hard time when I should edit tons of net names like nets A<30:0> by hand due to schematic change. So I wrote a skill code editing label's names at a sitting.

    I rarely use Layout XL but many use Layout XL here so I felt I have to add more codes to editing pin names as well. 

    Please give me some advice if you have another good idea for this issue, Andrew.

    Thanks,

    Jungyoon  

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to dakuang01

    The best thing would be for you to contact customer support - it's still unclear to me why you need to do this or precisely what it is you're trying to change. I could easily end up writing a whole load of code which is completely unnecessary because I didn't know what you're trying to do. If you're using Layout XL (or your users are), then it's important for the layout to stay consistent with the schematic - so changing connectivity on the layout side could easily be problematic.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dakuang01
    dakuang01 over 7 years ago in reply to Andrew Beckett

    I'm not very familiar with Layout XL. That's why I don't understand what you mean. If I get to have net name changes on schematic, I should change layout net names as well to keep consistency between schematic and layout. And the label changes are like over 500. For example, most of them is vector net like CURRENT_N<30:0> and I needed to change it to CURRENT_S<30:0>. If I change label names only, it would break consistency between schematic and layout on layout XL. Am I thinking in the right way?

    So I wanted to try it. But After changing label names only and deleting pins related to them, I could regenerate pins from labels on virtuoso. But this is workaround.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to dakuang01

    VLS XL doesn't care about the labels - it cares about the connectivity. So changing labels won't break the consistency between schematic and layout, and if your schematic has changed, then you'd be best served by doing update components and nets on the layout.

    As I said before, if you want more advice on whether you're thinking the right way, you'll really need to contact customer support - it's very hard to understand what you do and don't know and so I don't really know what you're thinking!

    Regards,

    Andrew.

    • 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