Usenet.com

www.Usenet.com

Group Index

Comp Thread Archive from Usenet.com

<-- __Chronological__ --> <-- __Thread__ -->

Re: Skill-C interface



Hi all,
SKILL is slow especially when processing long long lists.
example I want to go through each shape in a list of some millions of shape to do some processing... I found that doing it in C(ITKDB) is much faster than SKILL. I can use ITKDB for writing stand alone tools/functions but as Andrew said thats not what I want.
Mainly what I am looking for is...when I am in df2 session, already most of the information is in virtual memory...so as data is available through df2, I just need to write functions in c to operate on it, instead getting data again using ITKDB.
I am looking for something similar to inline C module for perl, so that I can access c functions in a perl module..
I dont know how tough it is to provide that type of feature for cadence and maintain it. Because, we can see that TCL and PERL they all can handle C functions.And they work pretty well. I have a feeling that many people need this type of functionality.
BTW, Frank! you said you wrote a C++ function few yrs back and called it from SKILL, may I know how did u write? did you use ItkDB or IPC or something else?
Thanks for your responses
Sampath



Andrew Beckett wrote:
Frank,

On Tue, 25 Nov 2003 13:16:02 -0800, "gennari" <[EMAIL PROTECTED]> wrote:


A few years ago I had to write a separate C++ program to get around some of
the limitations of SKILL, and then call that program from SKILL. In
particular, SKILL/Cadence crashed when I tried to create a hash table of
several hundred thousand x/y points. Also, I couldn't find any way of
performing bit-level operations in SKILL such as bitshifts, bit masking,
etc. In fact I think skill uses 32 bits in all integers, even when I only
need to store an 8-bit value, and that's 4X memory overhead. I eventually
had to implement the layout database and gometry query functions into my C++
program to aviod writing I/O files of many MB. Now the program is
independent of Cadence, but I wonder if all that work was really worth it.



functions such as bor, band - which are equivalent to operators | and &. Also
bnand, bnor, bxor, bxnor (operators for each of these too).
leftshift, rightshift (<< and >>).
The bitfield, bitfield1 functions as well are useful. These are equivalents
of doing something like:

a=1234
a<4:2>  => 4
a<4> => 1
a<<1 => 2468
a>>2 => 308
a&10 => 2
a|5 => 1239
a^2 => 1232 (xor)

Bet you didn't know you could do that ;-(

They're all documented, and have been there for as long as I can remember.


Oh, and as a side note, is there any way to create a small bitmap image in
Cadence other than building it from single pixel rectangles on the
multi-colored "y0" - "y9" layers in the LSW? It takes a really long time to
do this in SKILL.



Depends what you want to use the bitmap for. If it's for menu items, icons
etc in DFII, then hiStringToIcon and related functions would help. Some of the
^dl (displayList) functions can be used too (don't get used much, but can be
quite handy).

Andrew.


Frank

"Andrew Beckett" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]

You could use the Integrators Toolkit (ITK-DB). This allows you to write
standalone applications which access the database from C, and there is

some


(limited) support for invoking SKILL from this.

However, I suspect this is not what you want. You can't (for example) link

in


some C code with DFII and call that from SKILL (we don't support that, for
a variety of reasons - one being that it is rarely necessary). What you

can do


however is to write your computationally intensive tasks in a separate

program,


which you can then invoke using the ipc function calls (e.g.

ipcBeginProcess),


and then communicate to that external program either synchronously or
asynchronously. This can be quite an effective means of doing things

outside.


What sort of intensive operations are you talking about? SKILL can be

pretty


quick provided that you do things correctly (it's byte-code compiled,
and runs on a virtual machine).

Regards,

Andrew.


On Mon, 24 Nov 2003 15:20:13 -0700, sampath <[EMAIL PROTECTED]> wrote:



Hi,
is there anyway that i can mix skill and c code,
I am looking for a way to do some runtime intensive operations in c and
get the data into a skill code?
can somebody tell a solution?
sampath

-- Andrew Beckett Senior Technical Leader Custom IC Solutions Cadence Design Systems Ltd


-- Andrew Beckett Senior Technical Leader Custom IC Solutions Cadence Design Systems Ltd





<-- __Chronological__ --> <-- __Thread__ -->


Usenet.com



Please check out one of the premium Usenet Newsgroup Service Providers below for access to Usenet.