Application-specific approaches to ESL

Different design types generate different challenges and trigger different modeling and specification needs. SystemC is C++ class library which, most notably, adds support for timing and concurrency, two features not available from ANSI C++. When it comes to describing actual hardware, these are two critical aspects which must be taken in account through modeling and simulation. But at the specification level, engineers tend to focus on the functional aspects rather than the implementation details. And in the functional realm, applications can be divided in two camps: those independent of “when” things happen and those who aren’t. In more formal terms, is the system time-invariant, or not?

Most multimedia applications should typically be time-invariant. Yet these processing engines require complicated architectures which very often add time to the equation. The actual implementation usually involves a sophisticated mix of hardware and software exchanging data over a shared bus. With multiple actors competing for a shared resource, time now becomes an attribute of correctness and optimality. And it is no surprise if, in such cases, the explicit timing and concurrency offered by SystemC becomes a vital necessity for high-level modeling and verification of the specification.

Preparing Recommendations

When it comes to wireless application the algorithmic complexity is usually greater, but the underlying architectures tend to be much more straightforward and fall in the category of processing pipelines, where one block feeds the next one through point-to-point connections. In this case, timing and concurrency don’t add much to the high-level model, and a sequential and untimed language like pure ANSI C++ lends itself very well for specification purposes.

What this boils down to is that as we move up to ESL and system-level design, we are seeing application-specific needs and domain-specific methodologies. There is no right or wrong, good or bad, just a more appropriate approach to a specific problem.

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

Preparing Recommendations

Comments

No one has commented yet on this post. Be the first to comment below.

Add Your Comment

Please complete the following information to comment or sign in.

(Your email will not be published)