Jump to content

alignment of SystemC-AMS wth SystemC-TLM

Recommended Posts



I am currently considering to enhance a virtual prototype TLM model with AMS models mainly in order to add more accurate models of the power management part including accurate battery model, voltage regulator control loops...


We have stringent simulation performance criteria for the virtual prototype since it needs to run SW on a complex HW model. If we just use simple ams2de ports to interface the tlm part with the AMS model we risk to brake the whole VP simulation.


I am missing some guide to properly define the interface between the AMS part and the TLM part.

I found attached screenshot from SystemC AMS extension - alignment with SystemC-TLM Workshop slides which depicts an approach to define that interface.

However I am not so clear about how it can be implemented.


The question here is:

Is there any implementation guide or source code template for a simple example on how to define the interface between AMS and TLM?


@Martin: I would really appreciate any hint ! 


Many thanks!




systems engineer

big semiconductor company



Link to comment
Share on other sites

Hello Ismael,

it depends, how your analog part is working / has to be simulated. You should always comminicate via the converter ports from analog/TDF to/from digital. However the type of this ports sca_tdf::sc_in/sc_out is abritrary - so it can be a complex data structure. This synchronization should not cost the simulation time - it should depend more from your analog calculation - it depends how many transaction you have.


Usually the TDF/analog part has to be continously calculated. In the simplest case, the step width of the analog part is small enough to catch all transaction with the required accuracy.

Using the SystemC-AMS 2.0 features you can also trigger on events/transactions, with gives you a high time accuracy and thus allows you usually to increase the analog timestep.


If you use TLM transactions with time annotation than you need usually a buffer and a simple scheduling method-process to schedule the transactions to the SystemC time.


It sounds more complicated, than it is. We implemented those transactors once and re-use it if required from our library.


Best regards


Fraunhofer IIS/EAS

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.

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...