Question:Schematic hierarchy descend in place using skill

Discussion in 'Cadence' started by tattvamasi, May 19, 2006.

  1. tattvamasi

    tattvamasi Guest

    All,
    Using the following code to descend into the path
    specified.
    Used as : PVNdesPath("/I0/I1/I2"), where I0, I1,
    I2 are instances in the hierarchy.
    Output: Opens a new window of the final instance.

    Problem:
    Can we enhance this code to actually descend
    recursively(in place) rather than open the last cell
    in a new window? ( Just like schematic find does?)
    Or is there a way that schematic find can be given
    a hierarchy to find the instance?
    I am unable to find any public functions that can
    do descend using skill like schematic find does.
    Please advice

    procedure(PVNdesPath(path)
    prog( (master nMaster pathList next)
    master=geGetWindowCellView()
    nMaster=nil
    pathList=parseString(path "/")
    foreach(instname pathList
    next=dbFindAnyInstByName(master instname)~>master
    nMaster=dbOpenCellViewByType(next~>libName
    next~>cellName
    "schematic")
    master=nMaster
    ) ;foreach

    geOpen(
    ?window hiOpenWindow()
    ?lib master~>libName
    ?cell master~>cellName
    ?view "schematic"
    ?viewType "schematic"
    ?mode "r"
    )
    ); prog
    ) ;proc
     
    tattvamasi, May 19, 2006
    #1
  2. tattvamasi

    tattvamasi Guest

    Found out, using dePush.
    Just in case anybody wants to use this piece of code.

    Used as : PVNdesPath("I0/I1/I2"), where I0, I1, I2 are instances in the
    hierarchy.
    Output: Descends into I2 through the hierarchy

    procedure( PVNinPlace(path)
    let((fspec pathD patSofar)
    fspec=ncons(nil)
    pathD = "/"
    patSofar = ""
    foreach( pat parseString(path,pathD)
    patSofar = strcat(patSofar pat "(schematic)/" )
    )
    fspec->hierarchy=patSofar
    dePush(fspec hiGetCurrentWindow() "read" )
    )
    )
     
    tattvamasi, May 20, 2006
    #2
  3. tattvamasi

    John Gianni Guest

    Thanks for taking the time to help others by posting SKILL snippets!

    I ran a quick CIW:Tools->SKILL->Survey and it's as clean as a whistle.
    Ten functions were called, all of which are public, none of which have
    changed or which have been deleted since IC441, no redefiend Cadence
    functions were called, and only one user-defined function was defined,
    which properly started with a capital-letter prefix (PVNinPlace). There
    were no undefined functions (e.g., typos or dependencies on other
    code). Excellent!

    As an aside, in the Virtuoso IC61 release (aka the next DFII release
    later this year), a user will be able to descend to any level of the
    hierarchy from any level of the hierarchy by using a dockable Navigator
    Assistant. This assistant lets a user descend into any level of the
    hierarchy without going through intermediate levels (where an
    "assistant" is its own window or applet which helps" a circuit or a
    layout engineer performing a common task).

    Good luck,
    John Gianni
    Nothing stated here is prior sanctioned nor reviewed by anyone else.
     
    John Gianni, May 23, 2006
    #3
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.