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.