Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Communicating with Simvision

363 views
Skip to first unread message

Doug

unread,
Jul 14, 2005, 6:26:36 AM7/14/05
to
Hi all,

My end goal is to allow a plugin I have written in Simvision to be able
to send skill code to be executed to the icfb. I know I can do this
launching Simvision from the icfb using ipcSkillProcess, but I can't do
that because users are going to be launching simvision with the
simulator (Through Tools>Verilog Integeration>NC-Verilog) and I cannot
seem to find anyway of altering how simvision is launched from there.

I know there must be some kind of communication going on because of
features such as cross-selection, but it appears as though SimVision is
started as a regular process as I cannot open file descriptor 3, unless
it isn't using the default channels.

Has anyone done anything like this before?

Any help is much appreciated!

Doug

Andrew Beckett

unread,
Jul 14, 2005, 6:55:11 PM7/14/05
to

If you do some google searching, you'll find a little example application I
posted which showed how to use tcl to control a DFII session. I'm on a plane
at the moment, but probably searching for "skillServer andrewb" on google
(in comp.cad.cadence) will find it. I think there is a deliberate mistake in
the code I posted (a line is missing) - if you have any problems though, let
me know (by posting here) and I'll re-post it complete this time!

I'd then use this by starting the skillServer from the DFII session, and then
in the Tcl in simvision you'd be able to effectively do the same thing as the
skillClient example. So what would be happening is that DFII starts a little
Tcl application which listens for connections on a socket, and then passes
those back to the DFII session that started it. Your simvision tcl would send
requests to the server application started by DFII.

Regards,

Andrew.

Doug

unread,
Jul 15, 2005, 6:18:05 AM7/15/05
to
Thanks for your reply! This is a useful bit of code, Im going to have to
wrestle with it to see if I can make it secure (Its being used in a
university - you know what students are like!).

For anyone whose interested, at the moment the communication is handled
a deamon (launched with ipcSkillProcess).

Andrew Beckett

unread,
Jul 15, 2005, 9:44:50 AM7/15/05
to

For completeness, the posting I was mentioning is at:
http://groups.google.co.uk/group/comp.cad.cadence/browse_thread/thread/3028fde59540881b/bd3587b3f1cb96aa?q=skillServer&rnum=1&hl=en#bd3587b3f1cb96aa

and the very last line of skillServer.il is missing. It should have been:

abSkillServer=ipcBeginProcess("skillServer" "" 'abSkillServerListener)

Without which nothing works...

Andrew.

Doug

unread,
Jul 18, 2005, 10:05:10 AM7/18/05
to
Do have a question for you now, everything works perfect if I use a
seperate Tcl script (i.e. skillClient), but if I put the exact same code
into my plugin it breaks, I get a println on the icfb to say "Connection
Recieved ..." but nothing else.

I guessed it might be me doing something odd, so I tried line by line on
the console, I can open a socket ok and the listener prints the
"Connection Recieved ..." message. But when I use puts $sock "command",
nothing happens.

I tried setting abSkillServerDebug to true, this would show me the
listener line executing, then for the puts ... nothing. How come the
puts isn't getting through!?

Doug

Andrew Beckett

unread,
Jul 18, 2005, 12:36:22 PM7/18/05
to
Doug,

Did you try doing:

flush $sock

after the puts?

An alterative is to do:

fconfigure $sock -buffering line

(see similar code in skillServer) which makes the socket line buffered rather
than a fixed buffer size.

Regards,

Andrew.

Doug

unread,
Jul 19, 2005, 5:42:36 AM7/19/05
to
Doh' Silly me!

Thanks alot for this, much better than the way than I was doing previous!

Doug.

0 new messages