Re: SystemC interfacing to SystemVerilog survey questions

From: Kevin Cameron <kevin_at_.....>
Date: Thu Jan 11 2007 - 16:25:57 PST
Saha, Arnab wrote:
> 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).
>   
(a) sounds like it's completely abstract, are you asking if the object 
level interfaces should match? E.g. a SV class should have a defined 
C/C++ interface so that you can swap simulators/implementations easily.
> 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.
>   
SystemC seems pretty much a subset of the others to me. Generally there 
are not many kinds of events to schedule: process wakeup and driver 
updates. Otherwise processes wake up on signal events which is usually 
done by registering a callback. SystemC is only marginally more awkward 
because it is multi-threaded.

It's just easier to say that there will be one shared scheduler than to 
come up with the semantics for passing control around between schedulers.

Kev.
>
>   
>> (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 16:26:34 2007

This archive was generated by hypermail 2.1.8 : Thu Jan 11 2007 - 16:26:34 PST