• 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. Skill command to create custom color definition for Vir...

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 145
  • Views 16545
  • 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

Skill command to create custom color definition for Virtuoso

TeeBro
TeeBro over 13 years ago

Hi,

I have an application that will highlight a net within a layout much like the Assura probing app.  The problem is the highlight is not very viewable.  I have written code to change the Cadence hiLite colors to be more viewable ( ie thickLine, stipple, etc ) but what I really want is for the color to "blink".  I need to create a custom color definition that blinks.  I can create the color using drMakeColor but there is not an option to make it blink.  So far the only way I have been able to create the blink colors is to define them in a drf file and read it in with drLoadDrf.  Example:  drDefineColor( (display    blinkRed   255   0   0   t ) ).

Is there any way to create this color without loading a drf file?

 

Thanks

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Even the drMakeColor function is a private function, so you should not use it (the C equivalent is documented for use in ITK DB programs, but the SKILL equivalent is private). There is no SKILL equivalent of the C function drSetColorBlink (private or public), so you'll need to use the supported flow of creating a display.drf and reading that (maybe you could use drDumpDrf to at least get the current drf data written to the file before manipulating that).

    If you need such an API, you should contact Customer Support and request this as an enhancement for a future release.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 13 years ago

    Hi,

    I've written some code in the past that dynamically changes a packet on the fly by using drSetPacket to change which packet a layer-purpose is assigned to, so you might be able to do something similar? If I can work out how I will attach the code here... If not, look for CCStoggleMarkerWarning, or click on this link CCStoggleMarkerWarning.il

    Best regards,

    Lawrence.

    CCStoggleMarkerWarning.il
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TeeBro
    TeeBro over 13 years ago

    Hi Andrew,

    Thank you for your quick reply.  I was unaware that the drMakeColor function was private.  It's listed as a Skill function in the Virtuoso Technology Data documentation.  I was hoping to generate some code like the following.

    drMakeColor( "display" "blinkMagenta" '(255 0 255) 50)

    drSetColorBlink( "display" "blinkMagenta" t )  <-- don't know format undefined function

    <-- Start an If statement -->

    packetList = drGetPacket( "display" "hilite" )

    newpacketName = cadr( packetList )

    newstippleName = caddr( packetList )

    newlineStyle = 'thickLine'

    newfillColor = "blank"

    newoutlineColor = "blinkMagenta"

    drSetPacket( "display" newpacketName newstippleName newlineStyle newfillColor newoutlineColor )

    printf("Setting the display parameters for packet %s.\n" newpacketName )

    <-- End the if statement -->

    I wanted to put this in a loop for all of the colors I made to blink.  It looks like the drSetColorBlink would do what I want but it's an undefined function for me and the writing of the drf file is a lot of overhead to just make the new color definitions.  There must be a simpler way.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TeeBro
    TeeBro over 13 years ago

    Hi Lawrence,

    The procedure you posted looks like it's setting the packet fill and outline colors to "black".  I wanted to create a few "blink" colors so that when I "highlighted" a net the net shape itself would "blink".  This makes it easy to see the net in the IC layout.  In my reply to Andrew I included some code that I wanted to use.  It seems that all of it works but the colors do not blink because when you use drMakeColoryou can not enable itto blink.  For example:

    drMakeColor( "display" "blinkMagenta" '(255 0 255) 50 )

    returns --> t

    drGetColor( "display" "blinkMagenta" ) 

    returns --> ("display" "blinkMagenta" 255 0 255 nil )

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    As I said earlier, drMakeColor is PRIVATE. This means it is not documented (I checked both IC5141 and IC615 documentation, and the only place it is documented is in the "Cadence Integrator's Toolkit Database Reference" manual, which as I said is the C interface to the Virtuoso database (for standalone applications). Just because a function exists in ITK DB, does not mean that a SKILL function with the same name is public. As I also said before, there is no SKILL equivalent of the C ITKDB function drSetColorBlink, so it's hardly surprising it says that the function is not defined.

    You should not use private functions because they may get changed or removed without notice. Similarly we do not provide support on them.

    Lawrence's suggestion and code was a good idea though - provided you have the blinking colors defined, you can then use drSetPacket to alter the color to be one of your predefined blinking colors - then you can make a layer blink or not blink on the fly.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TeeBro
    TeeBro over 13 years ago

    Andrew,

    Is there an easy way to generate the drf file?  If I read in a drf file with only my new definitions will it merge them in with the existing definitions?

    Regards,

    Thomas

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Thomas,

    In the CIW you have Tools->Display Resource Manager, and there's a Merge button on that. This GUI can be used to build your merged display.drf containing all the original colors and packets, and then you can merge in your new blinking colors, and then use something like Lawrence's solution to change the packets on the fly to use the new blinking colors when you need them.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DannyR
    DannyR over 10 years ago

     Hello,

    I am interested to make the "Mark Net" of Cadence's feature more viewable. ( ie thickLine, stipple, etc ) 

    Any help with be greatly appreciated...

     Thanks,

    Danny

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • theopaone
    theopaone over 10 years ago

     Please make this a separate message and not tag onto messages two years old.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 10 years ago

    Hi Danny,

    Ted is right, but I think the answer to your question might be to use the F3 options key during the Mark Net command and then you can choose which of the y0-y9 layers to use.  The appearance of these layers can be overridden using the Display Resource Editor.

    Hope it helps,

    Lawrence.

    • 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