I've recently started learning SystemC-AMS, just for fun mainly.
On my learning path I've figured out that:
There is no any good text book on SystemC-AMS available (except of SystemC and SystemC-AMS in Practice: SystemC 2.3, 2.2 and SystemC-AMS 1.0, which doesn't seems to be good neither according to customers review with overall grade 1 out of 5)
There are few examples on the web available, so it's hard to learn by reviewing what other people are doing
There are few educational resources available, probably the most useful (at least for me) was SystemC AMS Extensions User’s Guide (dated 2010-03-08), which seems to be outdated (for instance it mentions usage of set_timeoffset() member function which is deprecated in SystemC AMS 2.0 Analog/Mixed-signal (AMS) Language Reference Manual (dated 2016-08-12)). In some other posts on this forum I saw @Martin Barnasconi mentioning that UM is presently being updated by the committee.
While googling you can find a bunch of scientific/research papers and presentations on the topic, but a holistic examples are rarely given, most often just code snippets are present.
In this post I'd like to share an SystemC-AMS implementation of Algorithmic (Cyclic) ADC.
The example uses TDF and DE domains showcasing the aspects of TDF<->DE domain crossing discussed in the SystemC AMS Extensions User’s Guide.
It can be found here.
Being a Simulink user I was wondering about simulation performance improvement the SystemC-AMS gives.
Some scientific papers I was able to find touching this topic reported 5-10 times improvement.
For this example of Algorithmic ADC implementation also a Simulink model was created (located in same repository here).
Relevant modelling techniques was used in both SystemC-AMS and Simulink models, so the comparison is pretty much an apple-to-apple.
It can be seen by running both models that SystemC-AMS model gives around 20x simulation time improvement over Simulink model.
The Simulink simulates 11*2048 cycles in about 1.5 seconds, while SystemC-AMS simulates same amount of cycles in just 0.067 seconds.
That is remarkable improvement of simulation speed.
I hope this post will be helpful for others who learn SystemC-AMS.
Please feel free to comment to this post with useful materials/examples to help others on their learning way. I'd love to hear if you guys knows other great resources that helped you.