Tips
For each Priority and Level parameter value, there
are corresponding values for the parameters in the
Details section. These are
some important differences among these various settings:
If you set the Level parameter to Minimum
(debugging), the parameters in the Details section are
set to off. The code generator does not implement optimizations that remove variables or
code making it easier to debug the generated code.
The parameter settings for Balanced
with Readability and Balance
RAM and speed are the same except for
these three parameters:
Reuse buffers of different sizes
and dimensions
Optimize global data
access
Optimize block operation order in
the generated code
The above optimizations can
potentially hurt readability because they cross
atomic subsystem boundaries and Optimize
block operation order in the generated
code might change the block execution
order in the generated code so that it is
different than in simulation.
If you have limited RAM, choose the
Minimize RAM setting. This
setting enables these optimizations that reduce
RAM at the expense of a potential slow-down in
execution speed:
Pack Boolean data into
bitfields
Reuse buffers of different sizes
and dimensions
Use bitsets for storing state
configuration
Use bitsets for storing Boolean
data
This setting also changes the
Optimize block operation order in the
generated code from Improved
Code Execution Speed to
off.
For each Priority and
Level parameter value, this
table lists the corresponding values for the
parameters in the Details
section.
ParametersSettingsExampleLevelMinimum
(debugging)Balanced with
readabilityMaximum
PriorityNot Applicable (N/A)N/ABalance RAM and
speedMaximize execution
speedMinimize RAM
Details
Use memcpy for vector
assignmentOffOnOnOnOn
Memcpy threshold
(bytes)Off64646464
Enable local block
outputsOffOnOnOnOn
Reuse local block
outputsOffOnOnOnOn
Eliminate superfluous local
variables (expression folding)OffOnOnOnOn
Reuse global block
outputsOffOnOnOnOn
Perform in-place updates for
Assignment and Bus Assignment blocksOffOnonOnOn
Reuse buffers for Data Store Read
and Data Store Write blocksOffOnOnOnOn
Simplify array
indexingOffOffOffOnOff
Pack Boolean data into
bitfieldsOffOffOffOffOn
Reuse buffers of different sizes
and dimensionsOffOffOnOffOn
Optimize global data
accessNoneNoneUse global to hold temporary
resultsNoneUse global to hold temporary
results
Optimize block operation order in
the generated codeOffOffImproved Code Execution
SpeedImproved Code Execution
SpeedOff
Use bitsets for storing state
configurationOffOffOffOffOn
Use bitsets for storing Boolean
dataOffOffOffOffOn
If you plan on upgrading your software, be aware that:
Setting the Level and
Priority parameters enables
the latest optimizations corresponding with the
above parameter settings for each subsequent
release.
Selecting the Specify custom optimizations parameter enables you
to select individual parameters in the Details section. When you load
a model in a future release, optimization parameters that were introduced in releases
after you adopted the software to when you upgrade are set to off. If
you want to reduce the number of changes in the generated code when you upgrade your
software, this option can be a good choice.