Conversions between one ap_float<> and another ap_float<> with different precision or different W or E template parameters instantiate a floating-point IP. This IP handles the rounding and/or saturation logic. It is free only when the parameters are the same or in the situation of C floating-point data types when the equivalent parameters are used, for example, float to and from ap_float<32,8>.
Conversions between one ap_float<> and integer types or ap_fixed<> instantiates a floating-point IP for quantization.