RE: SystemC interfacing to SystemVerilog survey questions

From: Saha, Arnab <arnab_saha_at_.....>
Date: Thu Jan 11 2007 - 15:07:16 PST
Hi Kevin,

   Please see my comments below prefixed with "ARNAB".

Thanks
Arnab 

-----Original Message-----
From: owner-sv-xc@server.eda.org [mailto:owner-sv-xc@server.eda.org] On
Behalf Of Kevin Cameron
Sent: Thursday, January 11, 2007 2:59 PM
To: sv-xc@server.eda.org
Subject: Re: SystemC interfacing to SystemVerilog survey questions

> From:     Saha, Arnab <arnab_saha@mentor.com>
>
> (1) At what level should a SystemC model communicate with a 
> SystemVerilog model ? (choose one or more, use numbers to prioritize,
> 1 = most important, 2 = less important than 1, X = not required)
>
>    (a) Algorithmic or behavioral
>    (b) Communicating processes
>    (c) RTL
>    (d) Cycle-accurate
>    (e) Other, please specify

I'm not sure what you mean by your categories.

I would assume that it would be fairly easy to hand off all the
scheduling for SystemC to the SV/VHDL/AMS simulator if there was an API
for that. Most of the rest of the communication will be through
signals/events (which just happens when it happens).

ARNAB: There are various methodologies involved with how SystemC and SV
interact.
You have a plain old pin-level connection method where you instantiate a
module
of another language and then connect signals and ports(c).  You can also
take the DPI
approach and in that case the two models communicate using function
calls (a).

I don't think we can hand off all the scheduling for SystemC to a
SV/VHDL/AMS simulator
without handling SystemC objects separately.  The scheduling semantics
for these 
languages don't match.


>
> (2) Use numbers to prioritize the following based on their value
>    in interfacing SystemC and SystemVerilog:
>   (1 = most important, 2 = less important than 1, X = not required)

ARNAB: I guess, I was not clear in my explanation above.  I want you to
use
numbers to proritize the items below like 1, 2, 3, 4, 5 .... with 1
being
the most important and 5 the least.  Use as many numbers you want.

>       (a) Pin-level(rtl) connection between SystemC and SystemVerilog
>        using simple built-in types provided by each language.
1
>    (b) Connection between SystemC and SystemVerilog using complex
>        types like arrays and structs of built-in types.
2
>    (c) Connecting objects that operate at higher level of abstraction 
>        as provided by each language like events, mailboxes, semaphore 
>        and fifos.
2

1 for mailboxes/fifos, since they are a good mechanism for communicating
between different kinds of processes.
>    (d) Hierarchically referencing external objects defined in one
>        language from another.
2 +/-
     - suspect SystemC is more likely to be on top so it's unlikely
[System]Verilog would want to reference it.
>    (e) Pass parameters across the language boundary.
1.5
>    (f) Other, please specify

>
> (3) Additional comments ?
>
Assuming single thread of control?

Kev.

--
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Jan 11 15:07:36 2007

This archive was generated by hypermail 2.1.8 : Thu Jan 11 2007 - 15:07:37 PST