So I am fairly new to vitis hls but I've read over most of the documentation and I had some concerns on whether there would be limitations with using C instead of C++. I am fairly accustomed with C and have been coding with it for years and never really used C++ but I am aware that it's main purpose is to implement OOP in C. My question on whether C is limited with vitis hls is the use of classes such as hls::task, hls::stream and hls::stream_of_blocks. I figured if I wanted to implement an AXIS interface on my IP block I would have to define the data (input/output) using hls::stream and let's say an input to my function is "int a", I would subsequently use #pragma HLS interface axis depth=50 port=a offset=off to define my interface for the input port a.
My concerns were that since the code is in C, it would fail to recognise the classes in hls i.e., hls::stream.Thus, I would want to know whether this is actually an issue I need to beware of or if it's just an oversight from poor understanding. It would also help so that I know if I should continue working in C or convert my code to C++ (after learning C++ that is).
Thanks for any assistance!