Jump to content

Looking for advice on how to improve SystemC application performance


Recommended Posts

I'm working on an app simulating a system on a chip with a few dozen SC modules. Its wall clock run time is too long, and with planned new functionality will take even longer.

So I'm looking for ways to improve performance. E.g. currently the application is currently running as a single O/S thread, is there a way to make each module run in its own O/S thread?

Many thanks!

Edited by Uri Raz
Clarification of intent
Link to post
Share on other sites

Be very careful with terminology here. If you are asking about host simulator OS threads, the answer is pretty much no. SystemC is a discrete event driven simulator using cooperative multitasking (which greatly simplifies coding) and is not thread safe.

You might want to look at what is contributing to the slowdown. You should probably use a software profiler.

There are two issues that commonly cause problems in SystemC:

  1. I/O. More specifically output to the log file. If your simulation has lots of SC_REPORT_INFO or std::cout producing large logs at run-time, then you will definitely want to fix that. Use SC_REPORT_INFO_VERB to reduce I/O and select an appropriate verbosity.
  2. Clocks. Fast SystemC models do not use sc_clock. This is easy to do if carefully thought out up front. RTL designers usually have more trouble understanding this and so I typically see RTL designers struggling with the removal of clocks.

 

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