I recently attended an FPGA vendor seminar that included some discussion of SystemC, HandelC and MentorGraphicsC. I tried real hard, honest I did, to shift my mental paradigms, and try to see the benefit of the use of C to abstract-away the clock aspects of vhdl rtl. I would say the systemC marketeers did a real poor job bringing the hardware people along to their way of thinking.
I suspect, however, that their arguements seem pretty common sense and obvious to software engineers, who know C and aren't familiar with what VHDL is all about (as well as hardware timing issues in general).
Even some of the software engineers in the audience explicitely stated that they thought that C/C++ was NOT a rapid development language, which is why they switched away from C to begin with, to Python, etc. to begin with.
Having sai all the above, let me now state the following:
I find writting that writing clk'ed "PROCESS"s in vhdl to be both easy to do as well as very reliable - that is, vhdl processes JUST work as long as you know what your doing and set realistic timing constraints. Thats no problem for me.
Most of my problems, however, are more "transactional" in nature - i.e. they have to do with communications between entities/processes across clock boundaries and/or interactions between data/signal producers/consumers driven by different external events. Not the timing within a process itself.
So, driven by the nature of most of the tricky problems I have to deal with, I am obviously open to some way of analyzing my system on a transactoinal level so as to gain insight to the various design architectural issues - i.e. analyzing the tradoffs of different possible solutions to the problem at hand.
However, being the engineer responsible for making the god damn thing work, I am obviously:
- primarily interested in timing. Thats what I do - design "timing".
- also interested in "implementation details" - though not necessarily vendor specific, I NEED to have the design process also participate in the implementation, otherwise its just taking project time away from the engineers and giving it to architects, without adding any value.
- Its got to facilitate debugging.
So if anyone has any introductory transactional analysis references, which aren;t SystemC vendor or approach specific, I'd appreciate it.
Thanks for listening to my rant!