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.


Previous post by Christopher Felton:
   Grandiose Delusions
Next post by Christopher Felton:
   MyHDL FPGA Tutorial II (Audio Echo)


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.

Registering will allow you to participate to the forums on ALL the related sites and give you access to all pdf downloads.

Sign up

I agree with the terms of use and privacy policy.

Yes, I want to subscribe to your world famous newsletter and see for myself how great it is. I also understand that I can unsubscribe VERY easily!
or Sign in