Rebuild

Description

Select the method to determine when to rebuild simulation and Simulink® Coder™ targets for referenced models before updating, simulating, or generating code from the model.

Category: Model Referencing

Settings

Default: If any changes detected

Always

Always rebuild targets for referenced models. This setting requires the most processing time because it can trigger unnecessary builds. To make all model reference targets up to date, use this setting before you deploy a model.

If any changes detected

Conditionally rebuild targets for referenced models when Simulink detects a change that could affect simulation results. To perform extensive change detection on dependencies of referenced models, use this setting.

If Simulink finds no changes in known dependencies, it computes the structural checksum of the model. The structural checksum detects changes that occur in user-created dependencies that are not specified using the Model dependencies configuration parameter. If the structural checksum has changed, Simulink rebuilds the model reference target.

If any changes in known dependencies detected

Conditionally rebuild targets for referenced models when Simulink detects a change that could affect simulation results. To reduce the time required for change detection, use this setting.

If Simulink finds no changes in known or potential dependencies, it does not compute the structural checksum of the model and does not rebuild the model reference target. To avoid invalid simulation results, you must list all user-created dependencies in the Model dependencies parameter.

Never

Do not rebuild targets for referenced models. This setting requires the least processing time and, when available, uses Simulink cache files for faster simulations. To avoid rebuilds when developing a model, use this setting.

If model reference targets are out of date, the simulation may present invalid results. To have Simulink check for changes in known target dependencies and report if the model reference targets may be out of date, use the Never rebuild diagnostic parameter. To manually rebuild model reference targets, use the slbuild function.

For information on using and sharing Simulink cache files, see Share Build Artifacts for Faster Simulation and Code Generation.

Definitions

Known target dependencies

Known target dependencies are files and data external to model files that Simulink examines for changes when checking if a model reference target is up to date. Simulink automatically computes a set of known target dependencies. Examples of known target dependencies are:

  • Changes to the model workspace, if its data source is a MAT-file or MATLAB® file

  • Enumerated type definitions

  • User-written S-functions and their TLC files

  • Files specified in the Model dependencies parameter

  • External files used by Stateflow®, a MATLAB Function block, or a MATLAB System block

Potential target dependencies

Potential target dependencies are files and data external to model files and model configuration settings that Simulink examines for changes when checking if a model reference target is up to date. Simulink automatically computes a set of potential target dependencies. Examples of potential target dependencies are:

  • Changes to global variables

  • Changes to targets of models referenced by this model

  • The Configuration Parameters > Diagnostics > Data Validity > Signal resolution parameter when set to either Explicit and implicit or Explicit and warn implicit

Simulink examines each potential target dependency to determine whether its state triggers a structural checksum check.

User-created dependencies

User-created dependencies are files that Simulink does not automatically identify, in spite of their potential impact on simulation results. Examples of user-created dependencies are:

  • MATLAB files that contain code executed by callbacks

  • MAT-files that contain definitions for variables used by the model that are loaded as part of a customized initialization script

You can add user-created dependencies to the set of known target dependencies by using the Model dependencies parameter.

Structural checksum

A structural checksum is a computation used to detect changes in the model that can affect simulation results. When Simulink computes the structural checksum, it loads and compiles the model. To compile the model, Simulink must execute callbacks and access all variables that the model uses. The structural checksum detects changes in user-created dependencies, regardless of whether you have specified those user-created dependencies in the Model dependencies parameter.

For more information about the kinds of changes that affect the structural checksum, see Simulink.BlockDiagram.getChecksum.

Tips

  • Models in a model hierarchy can have different rebuild settings. When you update, simulate, or generate code for a model, the rebuild setting for that model applies to all its referenced models.

  • Models that execute in normal mode do not generate simulation targets and are unaffected by Rebuild settings.

  • To improve rebuild detection speed and accuracy, use the Model dependencies configuration parameter to specify user-created dependencies.

  • This flow chart describes the processing Simulink performs when you set Rebuild to either If any changes detected or If any changes in known dependencies detected.

  • This example explains the difference between the If any changes detected and If any changes in known dependencies detected settings.

    If you change a MATLAB file that is executed as part of a callback script that you have not listed in the Model dependencies parameter:

    • If any changes detected causes a rebuild because the change affects the structural checksum of the model.

    • If any changes in known dependencies detected does not cause a rebuild because no known target dependency has changed.

Dependency

Selecting Never enables the Never rebuild diagnostic parameter.

Command-Line Information

Parameter: UpdateModelReferenceTargets
Value: 'Force' | 'IfOutOfDateOrStructuralChange' | 'IfOutOfDate' | 'AssumeUpToDate'
Default: 'IfOutOfDateOrStructuralChange'
UpdateModelReferenceTargets ValueEquivalent Rebuild Value
'Force'Always
'IfOutOfDateOrStructuralChange'If any changes detected
'IfOutOfDate'If any changes in known dependencies detected
'AssumeUpToDate'Never

Recommended Settings

ApplicationSetting
DebuggingNo impact
TraceabilityNo impact
EfficiencyNo impact
Safety precaution

If any changes detected or Never

If you use the Never setting, then set the Never rebuild diagnostic parameter to Error if rebuild required.

Compatibility Considerations

Starting in R2019b, If any changes detected ignores cosmetic changes, such as repositioning a block.

See Also

Related Topics