• 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. How to use skill change wire width and color in Virtuoso...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 144
  • Views 16007
  • 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

How to use skill change wire width and color in Virtuoso Schematic Editing

Rex Lin
Rex Lin over 11 years ago

How to use skill change wire width and color in Virtuoso Schematic Editing  ?

 

example:    

width : narrow change to wide(0.0625)   or wide change to narrow 

color : cadetBlue change to red 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    A new API was added for this in IC616, schSetWireColor(). There's also setSetWireLineLineStyle (and there are schGet equivalents of the schSet). Before IC616 there was no API (you could reverse engineer the group storage mechanism, but I wouldn't recommend that in case we change the storage mechanism at some point). You didn't mention the version you're using.

    If you have a wire in wireId and want to convert from narrow to wide (you can tell it's narrow by seeing if wireId~>objType=="line"):

    dbConvertLineToPath(wireId 0.0625 "roundRound")

    To go the other way is a little more complex because there's no direct conversion function. It would be:

    procedure(CCFconvertPathToLine(wireId)
      prog1(
        dbCreateLine(wireId~>cellView wireId~>lpp wireId~>points)
        dbDeleteObject(wireId)
      )
    )

    This returns the new objId of the narrow wire.

    And it would be schSetWireColor(wireId "red") to set the wire color (or colour for me ;-> ).

    Regards,

    Andrew. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fatcat1206
    fatcat1206 over 9 years ago

    It's quite useful for the code from Andrew.

    In case you have a label attach to the wire you want to edit.

    There is no problem for using dbConvertLineToPath(wireId 0.0625 "roundRound") to convert line to path.

    but from path to line, some code need to be added to keep the label, as:

    procedure(CCFconvertPathToLine(wireId)
      let((lineId)


        lineId = dbCreateLine(wireId~>cellView wireId~>lpp wireId~>points)

        ;move the label from path to line
        foreach(child setof(x wireId~>children and(x~>objType == "label"  x~>lpp == list("wire" "label")))
            schGlueLabel(child lineId)
         );foreach


        dbDeleteObject(wireId)
      )
    )

    • 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