Are you kidding me?

Christopher FeltonJuly 1, 2012

If I understand the blog entry [1] correctly, it's saying the industry is ready for high level synthesis (HLS), well almost.  The blog states, the higher abstraction level will be achieved via C/C++/SystemC (the C-centric flows).  A quote from the blog.

... getting close, and one of the biggest hurdles still to overcome is the skill set -- the combination of hardware design expertise and C++ -- ...

C/C++/SystemC, are you kidding me?

There's nothing wrong with the C family of languages and some argue because of existing code bases, the C-centric flow is pragmatic because of momentum.  But these articles don't mention monemtum or available resources as a justification for C/C++/SystemC.  It actually says the opposite.  The blog agrues, there are not enough engineers who design complex digital systems and are skilled in C/C++/SystemC.  It also suggests an effort needs to be taken to educate the digital system designers.

If there are not existing code bases that people want to turn in to digital hardware (which still requires a re-architecture but the thinking is if you wrote it in C/C++ re-writing it in C/C++ would be easier than another language), and if there are not engineers that design and implement complex digital systems fluent in the C languages.  Then why in the world would you choose the C languages to increase the abstraction level?

The engineers lack of C/C++ skills is not simply because the education system is less focused on the C languages.   I believe a more likely reason is that the design engineers simply don't use C/C++.  When the engineers need to model/simulate a complex digital system before implementation they choose a language with a higher abstraction level and a lower-cost of entry (usually high abstraction and lower cost of entry go hand in hand).  The language chosen for the complex digital system modeling is usually not C/C++.  

As stated, I understand the plethora of tools available for C/C++/SystemC based on the momentum argument.  If they are arguing there is no momentum I don't see a reason to continue to push the C family of language for higher abstraction.  You need to choose a BETTER language to raise the abstraction level.  There are loads of different languages that exist and raise the abstraction level: Python, Matlab, bluespec, Haskell, Google Go, e, Ruby ... These languages and more would all be a better option.

[1] http://www.cadence.com/Community/blogs/sd/archive/2012/06/26/high-level-design-and-verification-how-can-we-finally-move-on-from-the-forrest-gump-era.aspx?postID=1312303

To post reply to a comment, click on the 'reply' button attached to each comment. To post a new comment (not a reply to a comment) check out the 'Write a Comment' tab at the top of the comments.

Please login (on the right) if you already have an account on this platform.

Otherwise, please use this form to register (free) an join one of the largest online community for Electrical/Embedded/DSP/FPGA/ML engineers: