• 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 Design
  3. Changing Default Symbol Pin Type

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 8072
  • 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

Changing Default Symbol Pin Type

sgcad
sgcad over 1 year ago

Hi,

When creating a new pin for a symbol (Symbol: Create -> Pin...), there's an option to select different pin types:

I find the type "block" particularly useful, as it shows the direction of the signal (input, output, and so on). Also I like to directly place the pins on the green boundary of the symbol, rather than with wire stubs. So, for example, a pin with the default style compared to my desired style looks as follows:

How can I modify the Virtuoso environment to make the desired pin style to be used when creating a new symbol (Schematic: Create -> Cellview -> From Cellview)?

I'm currently working with Virtuoso IC6.1.8-64b.500.29, in the legacy "L" modes.

Thanks very much for your response.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    This .cdsenv setting:

    schematic symbolPinUsage string   "block"

    or in your .cdsinit:

    envSetVal("schematic" "symbolPinUsage" 'string   "block")

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sgcad
    sgcad over 1 year ago in reply to Andrew Beckett

    Hi Andrew

    Thank you for your response, it took me a couple of days to get back to this.

    I've tried both the .cdsenv and .cdsinit setting you suggested, but neither worked--I'm still getting the default pin style. I've also tried to enter envSetVal("schematic" "symbolPinUsage" 'string   "block") directly in the CIW. It promptly reports back with "t", but again no change in the actual behavior when creating a new symbol.

    Do you have any idea how to fix this?

    Thanks very much.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to sgcad

    Note that this will only have an effect before you've opened the symbol editor for the first time (I think). Before anything else, did you try entering this in the CIW immediately after starting Virtuoso and before opening the symbol editor?

    Can you then (after opening the symbol editor and trying to create a pin) enter:

    envGetVal("schematic" "symbolPinUsage")

    in the CIW to see what it returns?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sgcad
    sgcad over 1 year ago in reply to Andrew Beckett

    Thanks. I played with the suggested setting again and realized that it does indeed set the "block" type when creating a new pin in an existing symbol. But to avoid having to manually replace every pin in a symbol, I'd prefer that the pins are already created that way with the command:

    Schematic: Create -> Cellview -> From Cellview

    Is there a way to realize this? Thanks very much.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to sgcad
    sgcad said:
    Is there a way to realize this? Thanks very much.

    Yes. You need to create a "tsg" file to control the template used by the symbol generator. This is covered in the documentation (search for "pinConnector" to find it). What I did to try this out was:

    1. Copy the starting template that I normally use - in my case <ICinstDIr>/tools/dfII/samples/symbolGen/artist.tsg (the "analog" template) to a local file
    2. Modify the symbolParam section to add pinConnector="block" as follows:
              symbolParam(
                  origin = topLeftPin
                  wireSpacing = 0.125000
                  wireLength = 0.250000
                  labelHeight = 0.062500
                  vSideLength = 0.000000
                  hSideLength = 0.000000
      	    pinConnector = "block"
              )
    3. Update the tsgTemplateMasters variable in your .cdsinit to refer to the new file (see <ICinstDIr>/tools/dfII/samples/local/schConfig.il for an example of the usual default):
      tsgTemplateMasters = list(
      	list("andrew" "/the/path/to/andrew.tsg")
      	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"))
      )
    4. [Optionally] change the default template using this cdsenv var:
      envSetVal("schematic" "tsgTemplateType" 'string "Andrew")
    5. Alternatively, pick it via the load/save button on the symbol generation options form.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sgcad
    sgcad over 1 year ago in reply to Andrew Beckett

    Thanks very much. It will take me some time to implement this as a tapeout is asking for priority, but I've found the documentation and it looks exactly like what I'm looking for.

    • 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