Though High Level Synthesis (HLS) is like using a more software way to realize hardware design needs, there are multiple fundamentals which are common in software development are not exist in HLS.
- HLS usually can’t handle random software programs. It needs additional info added by hardware designers which provides hints to the synthesis tool about how to generate the efficient circuits.
- It’s common that synthesis tool does not support dynamic memory allocations.
- It’s common that synthesis tool does not support many standard libraries
- It’s very limited to use recursion in HLS.
- Usually, system calls like abort(), exit(), printf(), etc are not supported in HLS.
- Designers have to define interfaces precisely.