Communicating with Simvision

Discussion in 'Cadence' started by Doug, Jul 14, 2005.

  1. Doug

    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
     
    Doug, Jul 14, 2005
    #1
  2. 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.
     
    Andrew Beckett, Jul 14, 2005
    #2
  3. Doug

    Doug Guest

    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).
     
    Doug, Jul 15, 2005
    #3
  4. For completeness, the posting I was mentioning is at:
    http://groups.google.co.uk/group/co...a?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.
     
    Andrew Beckett, Jul 15, 2005
    #4
  5. Doug

    Doug Guest

    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
     
    Doug, Jul 18, 2005
    #5
  6. 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.
     
    Andrew Beckett, Jul 18, 2005
    #6
  7. Doug

    Doug Guest

    Doh' Silly me!

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

    Doug.
     
    Doug, Jul 19, 2005
    #7
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.