Home > Community > Forums > Custom IC SKILL > Read and follow nets

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Read and follow nets 

Last post Wed, Dec 9 2009 8:11 AM by dmay. 2 replies.
Started by tenderfoot 07 Dec 2009 11:53 PM. Topic has 2 replies and 1502 views
Page 1 of 1 (3 items)
Sort Posts:
  • Mon, Dec 7 2009 11:53 PM

    • tenderfoot
    • Not Ranked
    • Joined on Fri, Oct 16 2009
    • Posts 2
    • Points 25
    Read and follow nets Reply

    Hi All

    I am trying to  write a simple SKILL script to do the following:

    1. Look for a particular output port in symbol A,

    2.Follow the net connected to this port and the input of symbol B

    3.Report the outputs of symbol B.

    Please let me know if there are predefined function that do some kind of a read port, find connected net tasks. I am very new to SKILL and would greatly appreciate any help.

     Thanks,

     RH

     

    • Post Points: 5
  • Tue, Dec 8 2009 2:30 PM

    • tenderfoot
    • Not Ranked
    • Joined on Fri, Oct 16 2009
    • Posts 2
    • Points 25
    Re: Read and follow nets Reply

     Sorry, I dont think that was a clear request at all. I want the script to open a given schematic, locate a symbol (A), follow a net connected to one particular output port(say X), follow that net to another symbol (B) and then report B's outputs. 

    THe algorithm ,you can see is fairly simple but I can't seem to locate the functions to do the following tasks

    Read ports of a symbol in a given schematic

    Check for a matching  net name on the port of another symbol

     

    Thanks,

    RH

     

    • Post Points: 20
  • Wed, Dec 9 2009 8:11 AM

    • dmay
    • Top 25 Contributor
    • Joined on Thu, Jul 17 2008
    • Allen, TX
    • Posts 393
    • Points 7,415
    Re: Read and follow nets Reply

    There is not one particular function to do what you are looking for. You will need to do it in pieces.

    To open your schematic:
    ;In the following, you must provide the libName cellName and viewName
    cv = dbOpenCellViewByType("libName" "cellName" "viewName" "schematic" "r")

    ;In this example, it simply uses the current cellview that is open
    cv = geGetEditCellView()

    To find your cell or instance:
    Next, you need to find your symbol. You said you want to find symbol A. If A is the cellName, you could have more than one placement of it. You could get all placements of cell A this way:
    insts = setof(x cv~>instances x~>cellName=="A")
    Since insts will be a list, you will need to loop through the list:
    foreach(inst insts
       do something with inst
    )

    Or, if your instance is named A, you could find the instance this way:
    inst = dbFindAnyInstByName(cv "A")

    To get the connection to X on the instance:
    ;since setof returns a list, we need the first (only) item on the list using car
    instTerm = car(setof(x inst~>instTerms x~>term~>name=="X"))

    To follow the net connected to the terminal:
    net = instTerm~>net
    ;From here you can see all instance terminals that the net connects with. We want all except the one where we started
    conns = setof(x net~>instTerms neq(x instTerm))
    ;If we want instance B's instance terminal only
    instTermOnB = car(setof(x net~>instTerms x~>inst~>name=="B"))
    instB = instTermOnB~>inst

    To get the outputs on B:
    outputTerms = setof(x instB~>master~>terminals x~>direction=="output")
    outputTermNames = outputTerms~>name

    To see all the attribute names on a database object in your CIW:
    cv = geGetEditCellView()
    cv~>?
    To see all attributes and their values:
    cv~>??

    To speed things up when coding/debugging, you can select an item in your schematic and get its object id like this:
    obj = car(selectedSet())
    or
    obj = css()

    Take a look at this post to find some other tips. In particular, the last posting has a link to a dataBrowser.il file that is very useful for graphically traversing database objects, their attributes and their values.
    http://www.cadence.com/Community/forums/p/3600/3605.aspx#3605

    Derek

    • Post Points: 5
Page 1 of 1 (3 items)
Sort Posts:
Started by tenderfoot at 07 Dec 2009 11:53 PM. Topic has 2 replies.