coder.FixPtConfig - Floating-point to fixed-point conversion configuration object - MATLAB (original) (raw)
Namespace: coder
Floating-point to fixed-point conversion configuration object
Description
A coder.FixptConfig
object contains the configuration parameters that the MATLAB® Coder™ codegen
function requires to convert floating-point MATLAB code to fixed-point MATLAB code during code generation. Use the -float2fixed
option to pass this object to the codegen
function.
Creation
`fixptcfg` = coder.config('fixpt')
creates acoder.FixPtConfig
object for floating-point to fixed-point conversion.
Properties
Enable derived range analysis, specified as true
orfalse
.
Enable collection and reporting of simulation range data, specified astrue
or false
. If you need to run a long simulation to cover the complete dynamic range of your design, consider disabling simulation range collection and running derived range analysis instead.
Default fixed-point fraction length, specified as a positive integer.
Default signedness of variables in the generated code, specified as'Automatic'
, 'Signed'
, or'Unsigned'
.
Default fixed-point word length, specified as a positive integer.
Enable detection of overflows using scaled doubles, specified astrue
or false
.
fimath
properties to use for conversion, specified as a fimath (Fixed-Point Designer) object.
Suffix for fixed-point file names, specified as a string.
View the numeric types report after the software has proposed fixed-point types, specified as true
or false
.
Enable simulation data logging to plot the data differences introduced by fixed-point conversion, specified as true
orfalse
.
Optimize the word lengths of variables whose simulation min/max logs indicate that they are always whole numbers, specified astrue
or false
.
Name of function to use for comparison plots.
LogIOForComparisonPlotting
must be set to true to enable comparison plotting. This option takes precedence overPlotWithSimulationDataInspector
.
The plot function should accept three inputs:
- A structure that holds the name of the variable and the function that uses it.
- A cell array to hold the logged floating-point values for the variable.
- A cell array to hold the logged values for the variable after fixed-point conversion.
Use the Simulation Data Inspector for comparison plots, specified astrue
or false
.
LogIOForComparisonPlotting
must be set to true to enable comparison plotting. The PlotFunction
option takes precedence overPlotWithSimulationDataInspector
.
Propose fixed-point types based on DefaultWordLength
, specified as true
or false
.
By default (false
), propose data types with the minimum word length needed to represent the value. When set to true, propose data type with the smallest word length that can represent the range and is suitable for C code generation ( 8, 16, 32, 64, … ). For example, for a variable with range [0..7], propose a word length of 8 rather than 3.
Propose fixed-point types based on DefaultFractionLength
, specified as true
or false
.
Propose data types based on simulation range data, derived ranges, or both, specified as 'BothSimulationAndDerivedRanges'
,'SimulationRanges'
, or 'DerivedRanges'
.
Safety margin percentage by which to increase the simulation range when proposing fixed-point types, specified as a real number greater than-100
.
Data Types: double
Perform faster static analysis, specified as true
orfalse
.
Abort analysis if timeout is reached, specified as a positive integer.
Test bench function name or names, specified as a string or cell array of strings. You must specify at least one test bench. If you do not explicitly specify input parameter data types, the conversion uses the first test bench function to infer these data types.
Data Types: string
| cell
Enable numerics testing, specified as true
orfalse
.
Methods
Examples
This example shows how to convert a floating-point MATLAB function to fixed-point C code.
Create a coder.FixPtConfig
object, fixptcfg
, with default settings.
fixptcfg = coder.config('fixpt');
Set the test bench name. In this example, the test bench function name is dti_test
.
fixptcfg.TestBenchName = 'dti_test';
Create a code generation configuration object to generate a standalone C static library.
cfg = coder.config('lib');
Convert a floating-point MATLAB function to fixed-point C code. In this example, the MATLAB function name is dti
.
codegen -float2fixed fixptcfg -config cfg dti
This example shows how to convert a floating-point MATLAB function to fixed-point MATLAB code.
Create a coder.FixPtConfig
object, fixptcfg
, with default settings.
fixptcfg = coder.config('fixpt');
Set the name of the test bench to use to infer input data types. In this example, the test bench function name is dti_test
. The conversion process uses the test bench to infer input data types.
fixptcfg.TestBenchName = 'dti_test';
Select to propose data types based on derived ranges.
fixptcfg.ProposeTypesUsing = 'DerivedRanges'; fixptcfg.ComputeDerivedRanges = true;
Add design ranges. In this example, the dti
function has one scalar double input, u_in
. Set the design minimum value for u_in
to -1
and the design maximum to 1
.
fixptcfg.addDesignRangeSpecification('dti','u_in',-1.0,1.0);
Convert the floating-point MATLAB function, dti
, to fixed-point MATLAB code.
codegen -float2fixed fixptcfg dti
When you select to detect potential overflows, codegen
generates a scaled double version of the generated fixed-point MEX function. Scaled doubles store their data in double-precision floating-point, so they carry out arithmetic in full range. They also retain their fixed-point settings, so they are able to report when a computation goes out of the range of the fixed-point type.
Create a coder.FixPtConfig
object, fixptcfg
, with default settings.
fixptcfg = coder.config('fixpt');
Set the test bench name. In this example, the test bench function name is dti_test
.
fixptcfg.TestBenchName = 'dti_test';
Enable numerics testing with overflow detection.
fixptcfg.TestNumerics = true; fixptcfg.DetectFixptOverflows = true;
Create a code generation configuration object to generate a standalone C static library.
cfg = coder.config('lib');
Convert a floating-point MATLAB function to fixed-point C code. In this example, the MATLAB function name is dti
.
codegen -float2fixed fixptcfg -config cfg dti
Version History
Introduced in R2014b