
www.Usenet.com
| <-- __Chronological__ --> | <-- __Thread__ --> |
Sampath,
I wrote a program in C++ that read and input file, processed the
geometry, and wrote an output file. I wrote the input file in SKILL using
the usual printf, then called my program with system("my_program file.in
file.out"), then read the output back into SKILL with scanf. That's all I
did, nothing fancy. It seemed to work well until I ran into large I/O files.
Frank
"sampath" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> 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__ --> |