Jump to content

Modelling of external events for a Virtual Platform


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

 

 

Link to comment
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

 

Link to comment
Share on other sites

  • 1 month later...
On 2/16/2016 at 9: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. 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.

Link to comment
Share on other sites

  • 8 months later...
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?

 

Link to comment
Share on other sites

  • 10 months later...
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.  

Link to comment
Share on other sites

  • 1 year later...
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.

Link to comment
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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...