• 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. Diva DRC error markers not found by dbMarkerQuery

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 13733
  • 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

Diva DRC error markers not found by dbMarkerQuery

Quesar
Quesar over 5 years ago

Hi to anyone reading this,

I wrote a simple Diva DRC rule deck and executed it with ivDRC, and there are marker layer polygons representing the errors. I can find the marker layers using the GUI.

However, I would like to use SKILL to locate them for further processing. It seems there is a function just for that purpose, dbMarkerQuery. But when I used it as below:

mycv = dbOpenCellViewByType(...)

dbMarkerQuery(mycv mycv->bBox)

The return value is always nil. The cellview mycv already contains the error marker shapes. I have also ensured that all the required cellviews are already loaded with dbOpenHier as mentioned in the manual, and I can also see that they are opened when I open the "Close Data" form through the CIW File menu. So there is no question that the subcells are not opened.

I've tried to find other functions to search for markers, but it seems this is the only function available. I think another thing I can do is process all the shapes in the cellview to find the marker shapes, but I really don't want to do that unless I have no choice, as it is inefficient as one might expect.

So, what options do I have here, and why does dbMarkerQuery not work as I expect it to?

My Virtuoso version is IC617ISR23 if that helps.

Any help would be appreciated. Thank you.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    Diva still creates old style markers (the way they were created before OpenAccess) where they were represented as shapes on the marker/error or marker/warning layer-purposes.

    So you can find them using:

    markers=car(exists(LP cv~>lpps LP~>layerName=="marker" && LP~>purpose=="error"))~>shapes

    You can change the purpose check to "warnng" if it's warning markers you're after. This is fairly efficient because it only has to search through the number of layer-purposes that exist in the design hierarchy, which should be a relatively small number, and is much faster than searching through millions of shapes in a big  layout.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Quesar
    Quesar over 5 years ago in reply to Andrew Beckett

    Thank you very much Andrew for the detailed explanation and solution as always!

    • 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