public inbox for sid@sourceware.org
 help / color / mirror / Atom feed
From: "Robert Cragie" <rcc@jennic.com>
To: "Frank Ch. Eigler" <fche@redhat.com>
Cc: <sid@sources.redhat.com>
Subject: RE: Co-simulation with SID
Date: Wed, 04 Sep 2002 03:01:00 -0000	[thread overview]
Message-ID: <NDBBLOIOMLKELOJBAPAGOEKJCOAA.rcc@jennic.com> (raw)
In-Reply-To: <20020903103535.A5661@redhat.com>

> > and if it is likely to be included in the open source project?=20
>
> This is unlikely.  A baby prototype dealing with a third-party=20
> proprietary tool would not help an open-source project. :-(

OK, I understand.

> The size of such bridging code may not be too large, provided that
> one designs a decent mapping between the SID and HDL abstractions.
> Issues to consider involve whether a slave/master or peer-to-peer
> relationship is more appropriate; embedding one sim within another
> vs. running separately; how/whether to synchronize simulated time;
> configuration & startup.
>
> What do you have in mind?

I've only given it a fairly cursory consideration up to now but have also
come up with the same sort of issues about how to run the two sims together.

My idea is to have some sort of proxy component in SID which connects into a
SID target system as usual using pins, accessors etc., but when accessed by
an application running on SID, it will bridge to an HDL model running in a
commercial HDL simulator like Synopsys or whatever.

I imagined running the two simultaneously essentially in a peer-peer
configuration. SID can initiate transactions on the HDL simulated device and
the HDL simulated device can initiate transactions to SID. This level of
abstraction could support a wide range of peripheral types. A derivation
from the abstract would be a slave peripheral type where SID would initiate
register access transactions and the HDL simulator would initiate interrupt
transactions. I envisaged using sockets for this.

However, there is obviously an issue here of synchronising them in a time
sense, plus I'm not even sure if you could do this using commercial HDL
simulators; we tend to use Verilog, which has the PLI; it may be possible to
use this somehow, but I haven't worked out how yet.

An alternative idea would be to somehow slave SID off the HDL simulator,
i.e. get the main loop clock from the HDL simulator somehow, and slave all
operations off that. This sounds good in theory, but it could be horribly
slow in executing the software.

I'll investigate the sockets approach a bit further and consider if it might
be possible.

Robert Cragie, Design Engineer
_______________________________________________________________
Jennic Ltd, Furnival Street, Sheffield, S1 4QT,  UK
http://www.jennic.com  Tel: +44 (0) 114 281 2655




      reply	other threads:[~2002-09-04 10:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-02  7:06 Robert Cragie
2002-09-03  7:35 ` Frank Ch. Eigler
2002-09-04  3:01   ` Robert Cragie [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=NDBBLOIOMLKELOJBAPAGOEKJCOAA.rcc@jennic.com \
    --to=rcc@jennic.com \
    --cc=fche@redhat.com \
    --cc=sid@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).