Specify options for data type optimization
The fxpOptimizationOptions
object enables you to specify options
and constraints to use during the data type optimization process.
creates a
opt
= fxpOptimizationOptions()fxpOptimizationOptions
object with default values.
creates an opt
= fxpOptimizationOptions(Name,Value
) fxpOptimizationOptions
object with property values
specified by one or more Name,Value
pair arguments.
Name
must appear inside single quotes (''
).
You can specify several name-value pair arguments in any order as
Name1,Value1,...,NameN,ValueN
.
MaxIterations
— Maximum number of iterations to performMaximum number of iterations to perform, specified as a scalar integer. The optimization process iterates through different solutions until it finds an ideal solution, reaches the maximum number of iterations, or reaches another stopping criteria.
Example: opt.MaxIterations = 75;
Data Types: double
MaxTime
— Maximum amount of time for the optimization to run (in seconds)Maximum amount of time for the optimization to run, specified in seconds as a scalar number. The optimization runs until it reaches the time specified, an ideal solution, or another stopping criteria.
Example: opt.MaxTime = 1000;
Data Types: double
Patience
— Maximum number of iterations where no new best solution is foundMaximum number of iterations where no new best solution is found, specified as a scalar integer. The optimization continues as long as the algorithm continues to find new best solutions.
Example: opt.Patience = 15;
Data Types: double
Verbosity
— Level of information displayed at the command line during the optimization'Moderate'
(default) | 'High'
| 'Silent'
The level of information displayed at the command line during the
optimization process, specified as either 'High'
,
'Moderate'
, or 'Silent'
.
'Silent'
- Nothing is displayed at the
command line until the optimization process is finished
'Moderate'
- Information is displayed at
each major step of the optimization process, including when the
process is in the preprocessing, modeling, and optimization
phases.
'High'
- Information is displayed at the
command line at each iteration of the optimization process,
including whether a new best solution was found, and the cost of
the solution.
Example: opt.Verbosity = 'High';
Data Types: char
| string
AllowableWordLengths
— Word lengths that can be used in your optimized system under design[2:128]
(default) | scalar integer | vector of integersSpecify the word lengths that can be used in your optimized system under
design. Use this property to target the neighborhood search of the
optimization process. The final result of the optimization uses word lengths
in the intersection of the AllowableWordLengths
and
word lengths compatible with hardware constraints specified in the
Hardware Implementation pane of your model.
Example: opt.AllowableWordLengths =
[8:11,16,32];
Data Types: double
ObjectiveFunction
— Objective function to use during optimization search'BitWidthSum'
(default) | 'OperatorCount'
Objective function to use during optimization search, specified as one of these values:
'BitWidthSum'
— Minimize total bit width
sum.
'OperatorCount'
— Minimize estimated count
of operators in generated C code.
This option may result in a lower program memory size for C
code generated from Simulink® models. The 'OperatorCount'
objective function is not suitable for FPGA or ASIC
targets.
Note
To use 'OperatorCount'
as the objective
function during optimization, the model must be ready for
code generation. For more information about determining code
generation readiness, see Check Model and Configuration for Code Generation (Embedded Coder).
Data Types: char
UseParallel
— Whether to run iterations in parallelfalse
(default) | true
Whether to run iterations of the optimization in parallel, specified as a
logical. Running the iterations in parallel requires a Parallel Computing Toolbox™ license. If you do not have a Parallel Computing Toolbox license, or if you specify false
, the
iterations run in serial.
Data Types: logical
AdvancedOptions
— Additional options for optimizationAdditional optimization options. AdvancedOptions
is a
struct containing four additional properties that can affect the
optimization.
Property | Description |
---|---|
PerformNeighborhoodSearch |
|
EnforceLooseCoupling | Some blocks have a parameter that forces inputs to share a data type, or forces the output to share the same data type as the input.
|
UseDerivedRangeAnalysis |
Depending on the model configuration, derived range analysis may take longer than simulation of the model. |
SimulationScenarios | Define additional simulation scenarios to consider
during optimization using a Simulink.SimulationInput object. For an
example, see Optimize Data Types Using Multiple Simulation Scenarios. |
SafetyMargin | Enter a safety margin, specified as a positive scalar value indicating the percentage increase in the bounds of the collected range. The safety margin is applied to the union of all collected ranges, including simulation ranges, derived ranges, and design ranges. |
DataTypeOverride | Override data types specified in the model when simulating during the range collection phase of optimization.
|
HandleUnsupported | Some blocks are not supported for fixed-point conversion. For more information, see Blocks That Do Not Support Fixed-Point Data Types.
|
PerformSlopeBiasCancellation |
|
addSpecification | Specify known data types in a system |
addTolerance | Specify numeric tolerance for optimized system |
showSpecifications | Show specifications for a system |
showTolerances | Show tolerances specified for a system |
Handle. To learn how handle classes affect copy operations, see Copying Objects.
Create an fxpOptimizationObject
with default property values.
options = fxpOptimizationOptions();
Edit the properties after creation using dot syntax.
options.Patience = 15; options.AllowableWordLengths = [8,16,32]
options = fxpOptimizationOptions with properties: MaxIterations: 50 MaxTime: 600 Patience: 15 Verbosity: High AllowableWordLengths: [8 16 32] ObjectiveFunction: BitWidthSum UseParallel: 0 Advanced Options AdvancedOptions: [1x1 struct]
You have a modified version of this example. Do you want to open this example with your edits?