• 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. Imovable instances

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 124
  • Views 12953
  • 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

Imovable instances

archive
archive over 17 years ago

Hi,

One problem we're finding is inexperienced layouters/designers inadvertantly moving instances by accident. In the Schematic tool they are getting used to clicking outside the area to deselect everything. In layout this is not always possible and if the last stacked command they have is move, then a double click ends up shifting some instance a few microns, which if found days / weeks later could mean a lot of rework of layout to move devices which have been placed in what looks like a blank space, but is actually taken up by devsices in the 'correctly' spaced instance.

Is there a way to lock instances so that they can not be moved by accident? I know that we can turn off instance selection in the LSW but this means that instances of devices can not be manifulated in the layout of a cell.

I'm looking to lock certain cells by name if possible.

Thanks,

Dave C


Originally posted in cdnusers.org by DaveCrampton
  • Cancel
  • archive
    archive over 17 years ago

    Dave,
    There are two commands recently added to Cadence (within the last 3 years) that help do this.

    leRegUserLayerSelectionFilter
    leRegUserObjectSelectionFilter

    These two commands register functions that you create to be used as selection filters. The layer selection filter is the simpler of the two. It registers a routine that accepts an lpId (layer purpose object id). If you want the layer to be selectable, the routine returns t, otherwise it returns nil. This will make layers unselectable in the LSW and users will not be able to make them selectable. You will need to re-run leRegUserLayerSelectionFilter if your layer selectability criteria changes. We use this to lock down layers after they tapeout since we don't tapeout all layers at once. We have a separate interface to change what is "permanently locked".

    The second routine is what you are looking for. It registers a routine that you create that will accept an object id. The code will determine if the object is selectable or not and return t or nil. This routine must be written efficiently since it effectively runs everytime your cursor moves over a new object. If you have the dynamic hilight option turned on, then you see a dotted line appear over selectable objects when you move your mouse. Your routine will be called prior to displaying this dynamic hilight. If your routine indicates the object is not selectable, then it will not hilight. Keep your code efficient.

    We wrote an interface that allows users to mark cells as "unselectable". This information is saved in the cellview.  Our routine simply checks to see if the cell is read-only. If it is, then the filter is not applied. If the cell is editable, then if the object id is an instance or a mosaic or a mosaicInst, then it's cellname is compared to the list of unselectable cellnames. If the name is in the list, nil is returned, otherwise it returns t.

    I hop this helps.

    -Derek


    Originally posted in cdnusers.org by dmay
    • 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