New batch of skill questions - appreciate your help

Discussion in 'Cadence' started by Reotaro Hashemoto, Apr 28, 2008.

  1. Hi,

    I have another set of SKILL questions, and i do really appreciate your
    hints and advices.

    Q1. When I define two procedures as following: procedure( proc1()
    x=10) and the other is: procedure(proc2() x); if i called the first
    one (i.e. proc1) it will return the value of the variable x defined
    there, why when i call proc2 it gives me error that variable x is
    undefined? Although i am not using either prog or let for making it
    local? I think i misunderstand the concept! How to let a variable
    global?

    Q2. How to use "continue" and "break" in SKILL as in other languages
    to make some control on loops? Please give an example of usage.

    Q3. I don't know when to use -> and when to use ~> there's a
    difference i am pretty sure, but it's not clear for me, would you
    please explain it to me?

    Q4. Finder window, library managers, and many other windows dont' have
    window numbers, is there a way to assign bindkeys or setup menus
    there? e.g. if i want to set a bind key to allow scrolling with up and
    down keys cursors in finder window?

    Q5. What does predicates functions mean?

    Q6. How to catch errors in Skill and store the error message in a
    variable? (I can use errset but don't know how to store the error
    message in a variable)

    Q7. Guys, please!! I cant find any information or examples regarding
    how to build simple circuit and test it with SKILL? e.g. Instantiating
    an instance from specific library, then make proper connections and
    biasing, then pass the circuit to simulator, store results in a
    variable for further compare with a reference results.. Please advice
    regarding it..

    Thanks a lot in advance and best regards,
    Ahmad
     
    Reotaro Hashemoto, Apr 28, 2008
    #1
  2. Reotaro Hashemoto

    Riad KACED Guest

    Hi Ahmad,

    It's bed time here but I'm gonna quickly answer couple of your
    questions and will be back later ...

    Q1 : ==>
    http://groups.google.com/group/comp...89?lnk=gst&q=global+variable#1576a6076c519989

    Q2 : I'm not sure it's a wise idea in looking for this. You could use
    return (<=> breack) and go (<=> continue) inside a prog but this could
    be harmful and it is highly discouraged to make use of these features.
    Please give a look at the Skill User Guide for more information (Using
    prog, return, and let).
    In summary : let and prog, both are used for local variables
    definitions. Let executes all the instructions up to the end, you
    can't interrupt it in the middle. Prog has go this feature by using a
    return or jumping with go to some defined label

    Q3: Andrew made a nice explanation of this on :
    http://cadence.wikispaces.com/(FAQ)+Skill

    .... See you later for the rest !!

    Riad.
     
    Riad KACED, Apr 28, 2008
    #2
  3. Reotaro Hashemoto

    S. Badel Guest

    Q1. When I define two procedures as following: procedure( proc1()
    No... it should really work...
    Indeed, they belong to separate processes and cannot be manipulated from within virtuoso.
    http://en.wikipedia.org/wiki/Predicate
    => "Predicate (computer programming), an operator or function which returns a boolean value"
    When errset returns nil, information about the error is stored in errset.errset (i.e in the 'errset'
    property of the 'errset' symbol). Perfect example of something that is covered as-is in the
    documentation (SKILL Language User Guide).
    If you search this newsgroup for, say, dbCreateInst, you will find tons of SKILL code and related
    post. Incidentally, in a very recent thread, I suggsted to use dbWriteSkill() to learn how to build
    cellviews in SKILL. This is most relevant to you, I think.
    See
    http://groups.google.ch/group/comp....d3c86?lnk=gst&q=dbWriteSkill#fb9184c71d7d3c86

    To batch simulated the circuits, have a look at the OCEAN interface, a set of SKILL function to
    control simulations.



    Stéphane
     
    S. Badel, Apr 28, 2008
    #3
  4. Reotaro Hashemoto

    S. Badel Guest

    Q4. Finder window, library managers, and many other windows dont' have
    PS: Regarding the Library Manager menus, there's a customization mechanism. It's described in the
    Library Manager User Guide (<instdir>/doc/libManager/libManager.pdf)



    Stéphane
     
    S. Badel, Apr 28, 2008
    #4
  5. Reotaro Hashemoto

    Guest Guest

    x won't be defined until after you invoke proc1(). Just declaring x within
    a statement in proc1() doesn't define it:

    # skill
    *Error* toplevel: undefined variable - x
    *Error* eval: unbound variable - x
    10

    However, I wouldn't use "x" as a global since it's likely to be clobbered
    by other routines. And you shouldn't begin any globals you create with a
    lowercase letter.

    -Pete Zakel
    ()

    "Walking on water and developing software from a specification are easy
    if both are frozen."
    -Edward V. Berard
     
    Guest, Apr 29, 2008
    #5
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.