Main Content

Blocks That Do Not Support Fixed-Point Data Types

Issue

Some blocks do not support fixed-point data types and can result in an error during fixed-point conversion.

The Simulink® Block Data Type Support table summarizes characteristics of blocks in the Simulink block library, including whether or not they support fixed-point data types. To view the table, at the MATLAB® command line, enter:

showblockdatatypetable

Possible Solutions

Isolate the Unsupported Block

If you encounter a block that is not supported for fixed-point conversion, you can isolate the unsupported block by decoupling it with a Data Type Conversion block. This workaround is useful when you do not intend to use the unsupported block on an embedded processor.

One example of this is using the Chirp Signal block, which does not support fixed-point outputs, to generate a signal for simulation data.

The subsystem shown is designed for use on an embedded processor and must be converted to fixed point. The Chirp Signal block creates simulation data. The Chirp Signal block supports only floating-point double outputs. However, if you decouple the Chirp Signal from the rest of the model by inserting a data type conversion block after the Chirp Signal block, you can use the Fixed-Point Tool to continue converting the subsystem to fixed point.

Isolate Unsupported Blocks with the Fixed-Point Tool.  During the preparation stage of conversion, the Fixed-Point Tool identifies any blocks or constructs in your system under design that do not support fixed-point types. When the system under design contains unsupported constructs, the Fixed-Point Tool encapsulates any unsupported elements in a subsystem containing the unsupported block surrounded by Data Type Conversion blocks. For more information, see Use the Fixed-Point Tool to Prepare a System for Conversion.

Isolate Unsupported Blocks with fxpopt.  By default, fxpopt isolates any unsupported blocks by encapsulating the unsupported block in a subsystem surrounded by Data Type Conversion blocks. Isolated blocks are ignored by the optimizer.

Note

When fxpopt isolates unsupported blocks, iterations of the optimization cannot be run in parallel. To run iterations of the optimization in parallel, use the Fixed-Point Tool to isolate unsupported blocks in the prepare stage, save the model, then run fxpopt with 'UseParallel' enabled.

Lookup Table Block Implementation

Many blocks that are not supported by the Fixed-Point Tool can be approximated with a lookup table block. Design an efficient fixed-point implementation of an unsupported block by using the Lookup Table Optimizer. For an example, see Convert Floating-Point Model to Fixed Point.

User-Authored Blocks

You can create your own block which is supported by the Fixed-Point Tool from one of the blocks in the User-Defined Functions Library.

See Also

Related Topics