New batch of skill questions - appreciate your help

R

Reotaro Hashemoto

Guest
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
 
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.cad.cadence/browse_thread/thread/da112ea6a27d3af2/1576a6076c519989?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/%28FAQ%29+Skill

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

Riad.
 
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?
No... it should really work...

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?
Indeed, they belong to separate processes and cannot be manipulated from within virtuoso.

Q5. What does predicates functions mean?
http://en.wikipedia.org/wiki/Predicate
=> "Predicate (computer programming), an operator or function which returns a boolean value"

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)
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).

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..
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.cad.cadence/browse_frm/thread/34080929b1e2b907/fb9184c71d7d3c86?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
 
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?

Indeed, they belong to separate processes and cannot be manipulated from
within virtuoso.
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
 

Welcome to EDABoard.com

Sponsor

Back
Top