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_SIZEcommand in terminal to increase stack limit. - Declare your large variables as 
static. By using thestatickey word, the variables are moved to heap and no longer occupy stack space. 
- Use the 
 
