3.6.5 Frequently Asked Questions
(Ask a Question)A compilation of FAQs, common problems and their solutions.
3.6.5.1 Overview
(Ask a Question)- What is the input software language to SmartHLS?
The input language to SmartHLS is C/C++. For compiling to hardware, SmartHLS supports most of C/C++, but does not support recursive functions or dynamic memory (malloc, calloc, new, etc). Also we do not support the STL C++ library (vector, map, set, etc.) and only support a subset of the C math library (see Math Library (math.h)). These unsupported software constructs can be in the software testbench portion of the code, outside of the top-level function to be compiled to hardware (see Specifying the Top-level Function).
- What is the generated RTL language?
- Currently, SmartHLS only supports Verilog HDL output.
- Which FPGAs do you support?
- See: Supported FPGA Devices
- How can I get technical support?
- See: Technical Support
- What if running my program leads to segmentation fault due to lack of available stack space?
Linux has a default stack size of 8 MBs. As a result, using more than 8 MBs of stack in your code will lead to page fault. To overcome this issue, you can do one of the following:
- Use the
ulimit -s NEW_STACK_SIZE
command in terminal to increase stack limit. - Declare your large variables as
static
. By using thestatic
key word, the variables are moved to heap and no longer occupy stack space.
- Use the