• 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. Net Tracing - Skill

Stats

  • Locked Locked
  • Replies 23
  • Subscribers 145
  • Views 12617
  • 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

Net Tracing - Skill

archive
archive over 18 years ago

Hello All ,

I have a script which I use to calculate a particular net's  Net Length, total net resistance, Capacitance (w.r.t ground).
But the drawback is that I have to select the entire Net before invoking the "NetLength" Function.

So I want a script which can trace the entire net and give a list of metals, vias, instances that
belong to this net. i.e I will select any one metal/instance/via  of a net and the code should trace the entire net and give me the desired o/p.

NOTE: Instances here refer to instances/mosaics of vias.

Thanks,
Sathya


Originally posted in cdnusers.org by rimser9
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    I don't see why you can't use dbGetTrueOverlaps - this should work fine. Maybe if you explained what your actual problem is (i.e. what you're doing, what your code looks like, what the error was, what is going wrong), then somebody might be able to spot what you're doing wrong? At the moment there really isn't enough to go on.

    Currently (in IC61X) you can use Mark Net and then save the resulting shapes to another cellView, but there isn't currently a non-UI version of this (so you'd have to call the leHiMarkNet() and leHiSaveAllHighLightMarkNet() functions to save the shapes to another cellView). There's an enhancement request for a non "Hi" version of these functions.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Jay Bharti
    Jay Bharti over 10 years ago

    Hi Derek,

    I am working on a similar script to extract a complete net through a hierarchy and dump all these nets into a new cellview. Function dbGetTrueOverlaps returns the overlapping shapes present in a mosaic in the form list("mosaic_dbid" "row no" "column no").

    Is it possible to get the xy of the extracted net figures present inside these mosaics(with the transformation information if this mosaic is present in some below hierarchy)?

    Also, what can I do to filter these shapes present in the mosaics so that recursive procedure having dbGetTrueOverlaps function work efficiently?

    Thanks in advance!

    Jay

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

    Hi Jay,

    Have you considered using Mark Net for this?  It now has the ability to save marked nets to a cellview.  Save yourself some coding effort and time, take a look at:

    leSaveMarkNet(
      cellName                  ;; required argument of the cell name to save the net shapes to
      [ ?libName t_libName ]    ;; optional library name, defaults to library of the current cellview
      [ ?viewName t_viewName ]  ;; optional view name, defaults to the view name of the current cellview
      [ ?point l_point ]        ;; optional specific location of which net to save, all nets is the default
    )
    => t / nil

    Hopefully this is what you want to do?

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Jay Bharti
    Jay Bharti over 10 years ago

    Hi Lawrence,


    Thanks for your reply.

    I need a non "Hi" version of command leHiMarkNet followed by command leHiSaveAllHighLightMarkNet(). Since I could not find such function, I thought of writing one.

    Also, I could not find the function leSaveMarkNet() mentioned above. My Virtuoso version 6.1.5 throws the error

    *Error* eval: undefined function - leSaveMarkNet

     


    Is there any other way round to do this?

     


    Regards,

    Jay

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

    Jay,

    leMarkNet and leSaveMarkNet are both in IC616. Rather than going to an awful lot of effort writing your own shape tracer, it would be far simpler to switch to using IC616 rather than IC615 (which should be a straightforward move). IC615 is not supported any more anyway.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Jay Bharti
    Jay Bharti over 10 years ago

    Hi Andrew,

    Thanks for the suggestion. I have now switched to IC 6.1.6 .:) These two commands will really save a lot of time.

    But I have a question over the working of the command leMarkNet. How does this command know which line to trace if the point entered lies at the overlapping area of 2 or metals?


    Regards,

    Jay

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

    Jay,

    Currently it doesn't. There's an enhancement request (CCR 1348841) asking for a means of specifying the starting layer-purpose-pair to resolve ambiguities. Even the "hi" version doesn't really have the means to resolve this - you just need to move your cursor to an unambiguous location.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Jay Bharti
    Jay Bharti over 10 years ago

    Hi Andrew,

    I would code something to get to an unambiguous point. Hopefully, we get this resolved in next Cadence release.

    Thanks!

    Regards,

    Jay

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Jay Bharti
    Jay Bharti over 10 years ago

    Hi Andrew,

    I am facing an ambiguity between the use of the commands leMarkNet and leHiMarkNet . I want to trace only the metals and vias, so I have switched off the PO contact and OD contact via option in the "Marknet Options". leHiMarkNet seems to work perfectly fine as it is not tracing poly and OD, but leMarkNet command traces all the layers.

    I suspect leMarkNet command is not reading the MarkNet option file. Following is the part of the code:

    cvid=geGetEditCellView()

    optionfilepath=strcat(getWorkingDir() "/.cadence/dfII/markNet/" techGetTechLibName(cvid) "/markNetOptions")

    leMarkNet(centerBox(css()~>bBox) ?startLevel 0 ?stopLevel 32 ?saveViaInfo t ?thickLine nil ?optionFile optionfilepath)

     


    What could be the problem here ?

     

    Regards,

    Jay

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

    Hi Jay,

    This works for me. I just tried it and it worked fine. Which subVersion of IC616 are you using? (Help->About in the CIW)

    Regards,

    Andrew

    • 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