Jump to content

Recommended Posts

Hi, 

 

my task is to set up a virtual platform using systemc and tlm 2.0 for embedded software development. 

The software developer should write a stimulus file and download it in the virtual platform to generate external events. (for example: gpio pin is set high or a 

serial interface gets a packet) 

 

Is there any general approach how to generate external events??

 

 

 

regards, 

Christoph

 

 

Share this post


Link to post
Share on other sites

thx for your reply. I saw this article already. 

 

I am trying to build an internal testbench within the VP, were ports are connected to each IP block which can have external events ( uart, spi, gpio). 

Each IP has ports for input and output. Via this Interface I send custom packets with information which is needed for the event. 

 

 

regards,

Christoph

 

Share this post


Link to post
Share on other sites
On 2/16/2016 at 8:31 AM, CbrSystemC said:

thx for your reply. I saw this article already.

I am trying to build an internal testbench within the VP, were ports are connected to each IP block which can have external events ( uart, spi, gpio). 

Each IP has ports for input and output. I thing you should read these crazy bulk product reviews first Via this Interface I send custom packets with information which is needed for the event. 

 

 

regards,

Christoph

Have you had any success setting up a virtual testbench this Christoph? I'd think to use tlm 2.0 as well.

Share this post


Link to post
Share on other sites
On 2/16/2016 at 1:31 PM, CbrSystemC said:

thx for your reply. I saw this article already. 

 

I am trying to build an internal testbench within the VP, were ports are connected to each IP block which can have external events ( uart, spi, gpio). 

Each IP has ports for input and output. Via this Interface I send custom packets with information which is needed for the event. 

https://legalsteroids.best/bulking/ will help you find some of the best bulking supplements available on the market that aren't harmful as steroids, 

 

 

regards,

Christoph

I am looking to make something similar with a light twist i mean i will aslo be tracking OS and other details like browsers. let me know how is your thing coming along?

 

Share this post


Link to post
Share on other sites
On 2/16/2016 at 4:31 PM, CbrSystemC said:

thx for your reply. I saw this article already. 

 

I am trying to build an internal testbench within the VP, were ports are connected to each IP block which can have external events ( uart, spi, gpio).

Then I discovered where to buy Phen375

Each IP has ports for input and output. Via this Interface I send custom packets with information which is needed for the event. 

 

 

regards,

Christoph

 

5
5

Hi Christoph, have you had any success in building the internal testbench within the VP? If yes, could you please share it with me? I might need it in the near future. Thanks.  

Share this post


Link to post
Share on other sites
On 2/16/2016 at 12:31 AM, CbrSystemC said:

thx for your reply. I saw this article already. 

 

I am trying to build an internal testbench within the VP,  Contrave were ports are connected to each IP block which can have external events ( uart, spi, gpio). 

Each IP has ports for input and output. Via this Interface I send custom packets with information which is needed for the event. 

 

 

regards,

Christoph

 

Virtual prototyping allows designers to set up an electronic system level software simulator of a full HW/SW platform to carry out SW development and HW design almost in parallel.

Share this post


Link to post
Share on other sites

If you are trying to inject events from received TCP/IP running in parallel OS threads or external OS processes, then you will need to create a primitive channel utilizing sc_core::async_request_update() in order to safely (see note 1) inject events into SystemC. Your only other option is to poll, which is rather inefficient. Also be mindful that the SystemC side performance does not guarantee you will only get one event per delta cycle; therefor, you need to use a queue to receive data. You will also likely need to use an OS mutex (C++11 std::mutex should work fine for this application).

Note 1: SystemC is not inherently thread-safe and random injection from outside can corrupt the simulation.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×