High-level synthesis (HLS) has been a hot topic for about the last 10 years, characterized as Electronic System Level (ESL) synthesis, algorithmic synthesis, and behavioral synthesis, and C synthesis by some. I just call it “simply, a better way to design hardware.”
Regardless of which bucket HLS goes in, there has been a significant shift in the market over the last year with increased adoption in the United States and all over the world. Still, a lot of misinformation exists about the state of the technology.
In a recent online exchange, I found myself dispelling some of these myths and that led me to consider why this happens. Of course, there is good old fashioned FUD (fear, uncertainty, and doubt) spread by competitors, but this was more than that. It was a genuine misunderstanding about what is going on in with real design teams using HLS in production flows.
In the last five years, companies have used SystemC and high-level synthesis to deliver a number of products. These products range from HDTVs, digital still cameras, video cameras to commercial multi-function printers, hearing aids, USB and SSD controllers, HDMI interfaces, DVD players and wireless and broadband devices.
And, that is just what has been done! Imagine what is going on today with the hundreds of designs that are being done right now and set for release in the coming months and years. Still, with all of this success, there’s disagreement about how to get started.
One of the biggest areas of controversy about HLS tools is not about the tool at all, but the language. Last time I counted, there were more than 10 HLS tools on the market with input languages including ANSI-C, C++, SystemC and M. I’m sure there are others. Why, then, does the controversy exist and what are the major issues?
Choosing a language for high-level design may be the most important choice you will make. As a result, plenty of thought and care should go into making the decision. Of course, standards are important and, frankly, each language listed above is a standard in one way or another, so that doesn’t provide much clarification.
Many people also consider “legacy” in terms of “what format is my code in today?” This also is problematic because the code and language may not have been developed with hardware design in mind.
I think the decision should answer the two questions above but, fundamentally, it comes down to: “What are you trying to accomplish now and in five years?”
The language decision is about far more than just high-level synthesis. It’s about designing with platform creation and virtual system prototyping tools, high-level verification tools, debug and analysis, intellectual property, high-level synthesis and many, many more pieces of a complete ecosystem.
Perhaps you’ve heard me explain or read articles by other members of the Forte team about why we think that SystemC is the right “language” for high-level design and HLS. Based on my recent online experience, perhaps not.
As an aside, SystemC (IEEE 1666) is not technically a language at all. SystemC is a C++ class library that extends C++ in a standardized way. The SystemC classes include the basic extensions necessary for accurate hardware modeling, including bit accuracy, clock accuracy, concurrency and hierarchy. In addition, the SystemC classes implement a simulator that can be used to execute the design model with only a standard GNU compiler.
It’s time that design teams reevaluate their methodologies, investigate new tools and flows, and generally get an update about what is going on in the EDA industry. Many of you will look beyond RTL this year, some for the first time. As you look around and consider the high-level synthesis market, check out Forte. We’ve been synthesizing production ASICs, SoCs, and FPGAs with SystemC since 2002.
Before joining Forte in 1999, Cline was director of marketing at Summit Design, where he managed both the verification product line and marketing communications. Cline has also held positions in development, applications and technical marketing at Cadence Design Systems and General Electric.
He holds a Bachelor of Science degree in Electrical Engineering from Northeastern University in Boston and serves on the Board of Directors of Provis Corporation in Minneapolis.