## Documentation Center |

In addition to function-specific limitations listed in the table,
the following general limitations apply to the use of Fixed-Point Designer™ functions
in generated code or with `fiaccel`:

`fipref`and`quantizer`objects are not supported.Word lengths greater than 128 bits are not supported.

You cannot change the

`fimath`or`numerictype`of a given`fi`variable after that variable has been created.The

`boolean`value of the`DataTypeMode`and`DataType`properties are not supported.For all

`SumMode`property settings other than`FullPrecision`, the`CastBeforeSum`property must be set to`true`.You can use parallel for (

`parfor`) loops in code compiled with`fiaccel`, but those loops are treated like regular`for`loops.When you compile code containing

`fi`objects with nontrivial slope and bias scaling, you may see different results in generated code than you achieve by running the same code in MATLAB^{®}.The general limitations of C/C++ code generated from MATLAB apply. For more information, see MATLAB Language Features Supported for C/C++ Code Generation.

Function | Remarks/Limitations |
---|---|

N/A | |

N/A | |

N/A | |

Code generation in MATLAB does not support the syntax `F.add(a,b)`. You must use the syntax`add(F,a,b)`.
| |

N/A | |

N/A | |

N/A | |

Not supported for slope-bias scaled | |

N/A | |

N/A | |

N/A | |

N/A | |

Not supported for slope-bias
scaled | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

Generated code may not handle out of range shifting. | |

Generated code may not handle out of range shifting. | |

Generated code may not handle out of range shifting. | |

Not supported for slope-bias
scaled | |

N/A | |

N/A | |

N/A | |

N/A | |

Variable-sized inputs are only supported when the `SumMode`property of the governing`fimath`is set to`Specify precision`or`Keep LSB`.For variable-sized signals, you may see different results between generated code and MATLAB. In the generated code, the output for variable-sized signals is computed using the `SumMode`property of the governing`fimath`.In MATLAB, the output for variable-sized signals is computed using the `SumMode`property of the governing`fimath`when both inputs are nonscalar. However, if either input is a scalar, MATLAB computes the output using the`ProductMode`of the governing`fimath`.
| |

N/A | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

Variable-size signals are not supported. | |

N/A | |

N/A | |

If supplied, the index, | |

Any non- `fi`input must be constant; that is, its value must be known at compile time so that it can be cast to a`fi`object.Complex and imaginary divisors are not supported. Code generation in MATLAB does not support the syntax `T.divide(a,b)`.
| |

N/A | |

N/A | |

Supported for scalar fixed-point signals only. Supported for scalar, vector, and matrix, `fi`single and`fi`double signals.
| |

Not supported for fixed-point signals with different biases. | |

The default constructor syntax without any input arguments is not supported. If the `numerictype`is not fully specified, the input to`fi`must be a constant, a`fi`, a single, or a built-in integer value. If the input is a built-in double value, it must be a constant. This limitation allows`fi`to autoscale its fraction length based on the known data type of the input.All properties related to data type must be constant for code generation. `numerictype`object information must be available for nonfixed-point Simulink^{®}inputs.
| |

Variable-sized inputs are only supported when the `SumMode`property of the governing`fimath`is set to`Specify precision`or`Keep LSB`.
| |

Fixed-point signals coming in to a MATLAB Function block from Simulink are assigned a `fimath`object. You define this object in the MATLAB Function block dialog in the Model Explorer.Use to create `fimath`objects in the generated code.If the `ProductMode`property of the`fimath`object is set to anything other than`FullPrecision`, the`ProductWordLength`and`ProductFractionLength`properties must be constant.If the `SumMode`property of the`fimath`object is set to anything other than`FullPrecision`, the`SumWordLength`and`SumFractionLength`properties must be constant.
| |

N/A | |

N/A | |

N/A | |

Not supported for fixed-point signals with different biases. | |

The syntax | |

N/A | |

N/A | |

Not supported for fixed-point signals with different biases. | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

Not supported for fixed-point signals with different biases. | |

N/A | |

N/A | |

N/A | |

Supported for scalar fixed-point signals only. Supported for scalar, vector, and matrix, `fi`single and double signals.
| |

Not supported for fixed-point signals with different biases. | |

N/A | |

N/A | |

N/A | |

N/A | |

Any
non- | |

When the exponent `k`is a variable and the input is a scalar, the`ProductMode`property of the governing`fimath`must be`SpecifyPrecision`.When the exponent `k`is a variable and the input is not scalar, the`SumMode`property of the governing`fimath`must be`SpecifyPrecision`.Variable-sized inputs are only supported when the `SumMode`property of the governing`fimath`is set to`SpecifyPrecision`or`Keep LSB`.For variable-sized signals, you may see different results between the generated code and MATLAB. In the generated code, the output for variable-sized signals is computed using the `SumMode`property of the governing`fimath`.In MATLAB, the output for variable-sized signals is computed using the `SumMode`property of the governing`fimath`when the first input,, is nonscalar. However, when`a`is a scalar, MATLAB computes the output using the`a``ProductMode`of the governing`fimath`.
| |

Code generation in MATLAB does not support the syntax `F.mpy(a,b)`. You must use the syntax`mpy(F,a,b)`.When you provide complex inputs to the `mpy`function inside of a MATLAB Function block, you must declare the input as complex before running the simulation. To do so, go to the**Ports and data manager**and set the**Complexity**parameter for all known complex inputs to`On`.
| |

N/A | |

Any non- `fi`input must be constant; that is, its value must be known at compile time so that it can be cast to a`fi`object.Variable-sized inputs are only supported when the `SumMode`property of the governing`fimath`is set to`SpecifyPrecision`or`KeepLSB`.For variable-sized signals, you may see different results between the generated code and MATLAB. In the generated code, the output for variable-sized signals is computed using the `SumMode`property of the governing`fimath`.In MATLAB, the output for variable-sized signals is computed using the `SumMode`property of the governing`fimath`when both inputs are nonscalar. However, if either input is a scalar, MATLAB computes the output using the`ProductMode`of the governing`fimath`.
| |

N/A | |

Not supported for fixed-point signals with different biases. | |

N/A | |

| |

N/A | |

Fixed-point signals coming in to a MATLAB Function block from Simulink are assigned a `numerictype`object that is populated with the signal's data type and scaling information.Returns the data type when the input is a nonfixed-point signal. Use to create `numerictype`objects in generated code.All `numerictype`object properties related to the data type must be constant.
| |

N/A | |

Any
non- | |

N/A | |

When the exponent | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

All properties related to data type must be constant for code generation.
| |

N/A | |

N/A | |

N/A | |

N/A | |

N/A | |

Complex and [Slope Bias] inputs error out. Negative inputs yield a 0 result.
| |

N/A | |

N/A | |

Code generation in MATLAB does not support the syntax `F.sub(a,b)`. You must use the syntax`sub(F,a,b)`.
| |

N/A | |

N/A | |

Variable-sized inputs
are only supported when the | |

`fi`input must be constant; that is, its value must be known at compile time so that it can be cast to a`fi`object.When you provide complex inputs to the `times`function inside of a MATLAB Function block, you must declare the input as complex before running the simulation. To do so, go to the**Ports and data manager**and set the**Complexity**parameter for all known complex inputs to`On`.
| |

N/A | |

If supplied, the index, | |

If supplied, the index, | |

All properties related to data type must be constant for code generation.
| |

N/A | |

N/A | |

N/A | |

N/A | |

N/A |

Was this topic helpful?