SystemC, Ten Years Later…

10 years. It’s almost hard to believe, but it has already been a decade since the birth of OSCI. The Open SystemC Initiative was officially launched in September of 1999. A few months later, SystemC v0.91 was released. I remember my genuine curiosity when I downloaded the source files and built that first version of the simulator. The promise was great: after all, wasn’t this called “system” C?

But quite rapidly it became apparent that what I had installed was just an HDL in C++. I could write RTL and cycle accurate models, but SystemC didn’t do much for me in terms of system modeling. Quite understandably many designers challenged the value of doing RTL in C++. The gap between the promises and the reality didn’t help SystemC in its early days.

When launching version 1.0, OSCI also announced soon to follow v1.1 with enhancements for “true system-level design” and support for RPC (remote procedure calls) to model abstract communications. But what followed were short lived experiments and it wasn’t until 2003 and the SystemC 2.0.1 LRM that more solid foundations were established.

Preparing Recommendations

So where do we stand today with SystemC? And after all these years of maturation, how and what do people use the language for?

At the 46th Design Automation Conference in San Francisco, the North American SystemC User Group (NASCUG) held its 11th semi-annual meeting. Along with the traditional presentations, the organizers this year experimented with a clever “clicker” system allowing real time surveying of the audience. The results of this survey were very interesting.

nascug1

When asked what SystemC was used for, more than 130 respondents put system modeling and virtual prototyping clearly on top, at 30% and 23% respectively. These hefty percentages seem to indicate that after these many years, SystemC is finally used for what is was initially conceived.

But even more interestingly, the same survey showed that very few (only 7%) are using SystemC for high-level synthesis. Is this a surprise? Probably not, in the light of the following data. When NASCUG organizers asked about the levels of abstraction primarily used, the results came as follow:

nascug2

An impressive 81% said to use SystemC above register-transfer and cycle accurate levels. This is quite inline with the previous question, as indeed TLM - whether untimed, loosely or approximately timed - was developed to help with system modeling and virtual prototyping. And with SystemC HLS tools typically requiring designers to write cycle accurate models, the dismal usage of SystemC for synthesis is confirmed by the low usage of cycle accurate abstraction (13%).

Looking beyond the NASCUG survey, this trend was recently confirmed by Gary Smith’s latest Market Trends report. This report typically looks at individual product market share. But from there, it is rather straightforward to derive language market share by summing the the products synthesizing from the same input language.

eslsynthesislanguages-3years

Over the past 3 three years, the share of SystemC synthesis tools has suffered a constant decline, falling from 28% in 2006 to 20% of the ESL synthesis market. In parallel, the cumulated market share of ESL synthesis starting from pure C or C++ rose from 42% to 65% of the market.

Should we conclude that SystemC isn’t the right language for synthesis? Not exactly. As a language, SystemC spans multiple abstraction levels. Clocked or cycle accurate models required by the current generation of SystemC synthesis tools are too complicated to write and verify and moreover, they don’t play easily with TLM views, which is how the majority uses SystemC. In contrast, pure C/C++ is much simpler and naturally fits with a SystemC TLM approach. So it’s not really a surprise if, in its vast majority, the industry is using pure C/C++ as the ESL synthesis language. 

The full “2009 Market Trends” report is available from Gary Smith EDA.

About Thomas Bollaert

imageMy first encounter with HLS, back then behavioural synthesis, dates more than 15 years. Since then my ventures have led me to explore many aspects of the ESL design flow, including HW/SW co-design, architecture exploration and of course, C synthesis. Five years ago, I joined Mentor to develop the Catapult C product line in Europe. Recently, my little family followed me all the way from Paris to Oregon, where I now serve as product marketing manager for Mentor Graphics' high-level synthesis product line. Visit Thomas Bollaert’s Blog

More Posts by Thomas Bollaert

More Blog Posts

Preparing Recommendations

Comments (↓ Add Your Own)

5 Comments on this Post

Commented on 4:57 AM, Nov 19, 2009
By Kevin Kranen

As a member of the team that helped "birth" SystemC, it's good to see someone wishing it a happy 10th birthday. Even in SystemC's infancy, when Synopsys was offering a SystemC based behavioral synthesis product, it was easy to see that the number of synthesis users was going to remain small compared to the entire SystemC user base, even though that was the main raison d'etre for SystemC 0.91 !
[...] This post was mentioned on Twitter by JL Gray, Mentor Graphics. Mentor Graphics said: SystemC, 10 years already! But what do engineers use it for, and how? Survey results: http://tinyurl.com/yl2c9al [...]

Commented on 10:24 AM, Dec 14, 2009
By Gururaj Padaki

Yes indeed a good article on future of system C.I think we should push System C in to the academics also.Right now if we think of embedded system every one talks about embedded C programming skills going forward for any System design and verification every one should think of System C.To make this dream true we should push hard on teaching this as part of academics.
[...] #1 SystemC, Ten Years Later… [...]

Commented on 9:31 PM, Feb 28, 2011
By SystemC and UVM, one step closer « Thomas Bollaert’s Blog

[...] This morning Intel’s Eric Lish, OSCI chair, kicked-off the North American SystemC User Group collocated at DVCon. In his presentation, Eric covered the evolution of SystemC as well as recent and upcoming milestones. It is quite remarkable to see how much effort went into developing the language and the progress made since its debuts, 12 years ago. [...]

Add Your Comment

Please complete the following information to comment or sign in.

(Your email will not be published)