Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
527 Discussions

Learning to use Fixed-point Arithmetic in Intel FPGAs with OpenCL


Hi. I am not sure if this forum is the appropriate for this issue but I have not found the correct one.


Reading the "Intel FPGA SDK for OpenCL Pro Edition: Best Practices Guide", at page 100 we can find section "4.3.1. Floating-Point versus Fixed-Point Representations".


In that section we can learn the recommendation to change floating-point operations to fixed-point operations, in order to save resources and energy in FPGA designs. However, there is no example to learn to do this optimisations if you are a beginner in FPGAs as I am.


Does anyone know a good tutorial /paper/ documentation / examples about to learn how to convert kernels written with floats into kernels based in fixed-point arithmetic? I have found very short and theoretical information about this issue and I want to learn to implement this optimisations in my codes.


Thanks in advance.

0 Kudos
2 Replies
Hi There are multiple steps which can be used to covert from floating point to fixed point. The things to note is whether your specific application is keen about the resolutions. As precision can be compromised when converting from floating point to fixed point data type. Intel FPGA SDK compiler supports OpenCL version 1.0 the following strategies can be used to convert from floating point to fixed Please refer to section "6.2 Conversions and Type Casting" in the OpenCL specification from available documentation to be downloaded from the khronos group website Regarding limiting size of fixed point data to the required bit field widths , please make use of bit masking effectively as per the requirements of the program. An example for the same is given in the page 101 of the same document you mentioned. Hope this helps , Thanks and Regards Anil

Thank you very much for your answer.


I will take a look to the link you provided me and to figure out the best way to convert my application from floating point to fixed point data type.