3.6.6.4 Libraries

Arbitrary Precision Data Types
Similar to Vitis/Vivado HLS, SmartHLS provides C++ Arbitrary Precision Integer Library and C++ Arbitrary Precision Fixed Point Library. Note that conversion of primitive type pointers to ap_int/ap_uint pointers by way of simple casting is permitted in Vitis/Vivado HLS, but will result in unexpected behaviour in SmartHLS.
Streaming Library
Similar to the hls::stream template class in Vitis/Vivado HLS, SmartHLS provides a hls::FIFO template class in the Streaming Library.
Math Library
While SmartHLS supports a subset of functions in the Math Library (math.h), SmartHLS also has a Fixed Point Math Library that is optimized for hardware implementation with customizable arbitrary precisions. This library is in active development.
Vision Library
Like Vitis/Vivado HLS, SmartHLS has a vision library designed to simplify the development of video processing solutions on Microchip FPGA devices. The library provides pre-optimized HLS C++ library functions for fast algorithm prototyping of video applications. Using this library, OpenCV-based designs can be ported onto FPGAs with a faster time to market.
Other Libraries
Other libraries such as FFT, FIR, DDS, and SRL libraries are not yet supported by SmartHLS. We are actively developing libraries, such as the computer vision IPs. If you are interested in having support of certain IPs, please email us at SmartHLS@microchip.com. Your feedback is valuable to us and will help to prioritize our production plan.