Communicating with Simvision

D

Doug

Guest
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
 
On Thu, 14 Jul 2005 11:26:36 +0100, Doug <douglad3@cs.man.ac.uk> wrote:

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
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.
 
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 wrote:
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.
 
On Fri, 15 Jul 2005 11:18:05 +0100, Doug <douglad3@cs.man.ac.uk> wrote:

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 wrote:
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.
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.
 
Doh' Silly me!

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

Doug.

Andrew Beckett wrote:
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.
 
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 wrote:
On Fri, 15 Jul 2005 11:18:05 +0100, Doug <douglad3@cs.man.ac.uk> wrote:


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 wrote:

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.



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,

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.

On Mon, 18 Jul 2005 15:05:10 +0100, Doug <douglad3@cs.man.ac.uk> wrote:

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 wrote:
On Fri, 15 Jul 2005 11:18:05 +0100, Doug <douglad3@cs.man.ac.uk> wrote:


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 wrote:

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.



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.
 

Welcome to EDABoard.com

Sponsor

Back
Top