• 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. abe boolean functions - detect problem geometries and abort...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 1658
  • 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

abe boolean functions - detect problem geometries and abort early before abe crashes/hangs

caver456
caver456 over 7 years ago

Is there a good way to detect - before abeInit - some of the problem scenarios that would cause abe functions to either crash or hang?  When these scenarios are detected, the function could abort before abeInit.  A few scenarios that have caused chronic problems:

- non-orthogonal lines on a layer that abe reads in using abeLayerFromCellView - causes seg fault

- a circle on one input layer partially overlapping a rectangle on another input layer - causes hang, with no output, even from the beginning of the skill function that calls the abe functions

- various 'stairstepping' of input layers - does not cause crash or hang, but, results in abe tiles that do not cover all of the input layer area - the solution so far has been to just run another abeTouch function to combine the first-attempt tiles with any tiles of the same input layer that touch the first-attempt tiles... but this is iterative, we do 3 iterations now and will probably encounter something that is still missed - Cadence support confirms the best option here is to just add another iteration... seems like abe functions could handle this internally: if tile area doesn't cover all the input area, add another iteration.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    All three are bugs - it should not be a matter of detecting them. The first two should be fixed promptly in my opinion as detecting the scenario when they occur is likely to rather defeat the object of using abe, and crashes and hangs should be S0 CCRs I think, especially if they're not easily workaroundable. I hope they've been reported and CCRs filed.

    I don't believe the last should just be solved by adding an iteration either - it should be fixed.

    Not sure why you created this as a community post when you're already in discussion with customer support on this topic?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • caver456
    caver456 over 7 years ago
    I will file separate cases on the first two. Had not done that yet, based on the response on case 46200846 regarding the iterations which was closed with support agreeing that iterations are the way to go, implying that no further help would be provided there but maybe that assumption is not correct... and was therefore looking for possible workarounds from the community. I've requested to re-open that case.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • caver456
    caver456 over 7 years ago in reply to caver456

    Customer support investigated with the coders and replied that it's not a bug, it's by design and it's well documented.  True.  It's just a matter of the usability of the designed code.  Anyway... I think that brings us back to either 1) looking at the original question of this post or 2) pushing back and asking for an overhaul of the abe stuff to make it more usable, which I asked for in the support case, or 3) both.

    Anyway - maybe it would be fairly simple to write an auto-iterator: after each layer iteration, check for a condition that would indicate it's not complete yet, and iterate again if needed.  (that would probably be the entirety of the 'overhaul' anyway)

    • 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