• 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. Slotted Metal paths

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 143
  • Views 18524
  • 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

Slotted Metal paths

jaleco
jaleco over 12 years ago
Does anyone know of an updated version of the CCSslotMetal.il script for slotted metal paths?  This code is very old and has little flexibility for things like defining the size of the slots, width of the path, etc.
  • Cancel
  • skillUser
    skillUser over 12 years ago

    Hi,

    I am the author of CCSslotMetal.il - it already has an option for the overall path width, and the arrangement is that this is divided into three sections across the total path width such that the slot width is equal to the surrounding path segment widths.  Likewise the slot length is controlled by the length of the subrectangles which are hard-coded such that their length is twice their width - the slots are just the absence of these subrectangles.  This code was mainly written as an example to demonstrate that a call to rodCreatePath can be made interactively, initiated from an enterPath() enter function, and that this can be further controlled or influenced using the commands' Options form.  It should not be too hard for someone to see how to update the ?offsetSubPath and ?subRect arguments so that parameters can be used for the slot width and length.

    The age of the code is not really relevant, unless it stops working or is superseded by something else.  To my knowledge there are not any publicly available updates, but I'm sure that plenty folks have downloaded and then modified the code for their specific requirements.  What would you like to see instead or additionally?

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jaleco
    jaleco over 12 years ago

    Hi Lawrence,

    thanks for your reply and thank you for the script.  I agree about the age of the code.  I was hoping there might have been some update to it based on its age and the ubiquitousness of the application.

     I would like to enhance the form input to accept user defined bus widths without limitation, and to define the slots as holes with user-defined widths, lengths, and spacing (these inputs can be used to create the subrectangles alternatively).  In addition, the number of slots per width of bus would be a function of the bus width.  In effect, the slotted metal bus will maximize metal area while meeting the required slotting rules to serve slotting purposes.  Currently the slots are oversized as defined.  Ideally, it would also remain a path object with these parameters form-customizeable.....which sounds a lot like a pcell.  So, short of making a slotted metal pcell, I'm looking for an enhanced script with more flexibility vis-a-vis form input fields for its variables.

    thanks again,

    James 

     

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

    James,

    IC61 has Create->Slot - so maybe this is redundant anyway. Did you try this? (Hit F3 to bring up the options form - and the Help button will take you to the relevant documentation).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jaleco
    jaleco over 12 years ago

    Hi Andrew,

    Unfortunately I am using v5.1.41...which is where the age of the CCSslotMetal.il script comes into play.  For those of us using an older version of Virtuoso, I hoped there had been an update to that code that was version compatible.  Thanks though, and sorry I did not mention the software version before.

    Best,

    James

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jaleco
    jaleco over 12 years ago
    Lawrence, Andrew,

    I am using the CCSslotMetal.il file as one call from a user-defined banner menu, related to this post -

    /forums/p/24050/1316397.aspx#1316397

    Whether calling the slot metal script from CIW or from the menu, it does not load the current/active entry layer, as the script describes, into the form.

    Also, if I select a different layer from the form, close the form, change my active entry layer, then call the script/form again, the previously selected layer in the form is still the one shown - not the active layer.  It behaves as if the form is hard coded to bring up the same layer on first load, then saves the layer selected each time the form is touched, but does not automatically populate with the active entry layer when called.

    As you can see on my other post (re menu link above), I am trying to build a menu of items, using an Update function to help with testing new code as I go - this SlotMetal script being one item.  I have done a simple test by changing the slotMetal formTitle, then attempting to reload the script to see the change.  So far I can't get the form updated by load("") in the CIW, or by using the Menu->Update() function.  The only thing that updates the source code and reflects in the form, is closing and restarting my Virtuoso session.

    Do you have any insight?

    Thanks,

    - James
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jaleco
    jaleco over 12 years ago

    For anyone else modifying the CCSslotMetal.il code, and wanting to debug easily as you modify the code, the first function tests the form's existence and brings up the form as it was last executed or modified by the user - NOT using the entry layer, or the default width value or default snap value.

    Simply comment out the first "if" statement, leaving only the line :

    form = CCScreateSlotMetalForm()

    ....prior to :

    when(hiIsForm(form)

    This will force the form to be created new with each call and you can immediately see your modifications to the form.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jaleco
    jaleco over 12 years ago

    Does anyone know how to compare a float value to zero?

    I have completed an updated slotted metal form script with user-defined values for slot dimensions but am having some trouble testing path widths to be on grid because a test to see of they are on grid randomly fails a float test comparison to zero and snaps path widths unnecessarily.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jaleco
    jaleco over 12 years ago

    Lawrence,

    I have completed what appears to be a working update to the CCSslotmetal.il script, now accepting user input on the form for slot dimensions.  Hopefully this may come in handy for other people having to route technology-specific slotted metal in v5.1.41.

    Attaching it here as SlottedMetal.il

    I am a novice programmer...and don't really know SKILL coding...so any feedback about how to make this code more efficient would be welcome.

    Best,

    - JLC 

    SlottedMetal.il
    • 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