• 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. automatically populate [@cellName] instead of [@partName...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 17580
  • 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

automatically populate [@cellName] instead of [@partName] when generating a symbol from schematic

LDIL
LDIL over 5 years ago

Hello all.

Let's say that I am now generating a symbol view from a schematic view.

The tool always generates a label, [@partName] m which I prefer to be [@cellName] .How can one set it up in SKILL?

Thanks

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    There are a number of potential different templates that can be used for symbol generation (there's a cyclic field on the form to allow you to pick different choices). The default list is defined by a SKILL variable that you can override in  your .cdsinit:

    tsgTemplateMasters = list(
      list("digital" (prependInstallPath "samples/symbolGen/default.tsg"))
      list("analog" (prependInstallPath "samples/symbolGen/artist.tsg"))
      list("artist" (prependInstallPath "samples/symbolGen/artist.tsg"))
      list("PCB" (prependInstallPath "samples/symbolGen/package.tsg"))
      list("metric" (prependInstallPath "samples/symbolGen/metric.tsg"))
    )

    Which is used by default is controlled by a cdsenv variable:

    schematic tsgTemplateType string "digital"

    (so you can find the setting using the SKILL function envGetVal("schematic" "tsgTemplateType") and you can set using envSetVal("schematic" "tsgTemplateType" 'string "analog") for example).

    In fact the "analog" or "artist" (which are the same) actually use cdsName/cdsTerm/cdsParam labels which are better for ADE users as they provide placeholders for displaying names, net/terminal/voltage/current info and design parameters/operating point parameters etc. So maybe you want to use that instead?

    If you really want the "digital" style symbols but with [@cellName] instead of [@partName] then I suggest you copy the default.tsg from <ICinstDir>/tools/dfII/samples/symbolGet/default.tsg to some other location, and edit it to replace the section:

                defLabel(
                    name("[@partName]")
                    location("(xleft + xright)/2:(ytop + ybottom)/2")
                    labelType(NLPLabel)
                    orientation(R0)
                    justification(centerCenter)
                    layer(device)
                    purpose(label)
                    fontHeight(0.062500)
                    fontStyle(stick)
                    apply(cellview)
                )

    with this:

                defLabel(
                    name("[@cellName]")
                    location("(xleft + xright)/2:(ytop + ybottom)/2")
                    labelType(NLPLabel)
                    orientation(R0)
                    justification(centerCenter)
                    layer(device)
                    purpose(label)
                    fontHeight(0.062500)
                    fontStyle(stick)
                    apply(cellview)
                )

    You'd then need to define or update tsgTemplateMasters to reference this file (either changing the path for the default, or adding a new entry which you could select via the cdsenv variable).

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • venkmanbuster
    venkmanbuster over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    What's the difference between partname and cellname. I understand cellname is just the name of the cell. What's the part name? (It's also displaying cell name even if I don't change it)

    Thanks

    Venkman

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to venkmanbuster

    Hi Venkman,

    cellName is an attribute of the database, which is always going to be the actual cell name of the component. partName is a user-defined property typically stored on the instance when created (e.g. by the symbol generation template) and also updated via the copy updater when the cellView is copied. However, it's perfectly possible for the partName property on the symbol to not match the cellName (which you can see with Edit->Properies->CellView when editing the symbol - although symbols generated with the "analog" or "artist" tsg template file don't have it) - you can edit it to be something different.

    So partName is a bit of a legacy thing - a lot of this came from the older PCB tool infrastructure.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • LDIL
    LDIL over 4 years ago in reply to Andrew Beckett

    Hi Andrew. Which cdsenv variable?

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to LDIL

    Andrew Beckett said:

    (so you can find the setting using the SKILL function envGetVal("schematic" "tsgTemplateType") and you can set using envSetVal("schematic" "tsgTemplateType" 'string "analog") for example).

    (from the post above)

    • 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