Set Configuration Parameters for Code Generation of Model Hierarchies - MATLAB & Simulink (original) (raw)

A model reference hierarchy must satisfy various Simulink® Coder™ requirements, as described in this topic. A model referencing hierarchy to be processed by the Simulink Coder software must also satisfy:

Configuration Parameter Requirements

A referenced model uses a configuration set in the same way a top model does. By default, every model in a hierarchy has its own configuration set, which it uses in the same way that it would if the model executed independently.

Because each model can have its own configuration set, configuration parameter values can be different in different models. Furthermore, some parameter values are intrinsically incompatible with model referencing. The response of the code generator to an inconsistent or unusable configuration parameter depends on the parameter:

When a model reference hierarchy contains many referenced models that have incompatible parameter values, or a changed parameter value must propagate to many referenced models, manually eliminating configuration parameter incompatibilities can be time-consuming. You can control or eliminate such overhead by using configuration references to assign an externally stored configuration set to multiple models. For more information, see Share a Configuration with Multiple Models.

To select a code generation target for a model reference hierarchy without modifying the individual models, use a configuration reference in the Simulink data dictionary. For more information, see Use Configuration Reference to Select Code Generation Target (Embedded Coder).

The following tables list configuration parameters that can cause problems if set in certain ways, or if set differently in a referenced model than in a parent model. Where possible, the code generator resolves violations of these requirements, but most cases require you to make changes to parameters in your models.

Configuration Requirements for Model Referencing with System Target Files

Dialog Box Pane Option Requirement
Solver Start time Some system target files require that the start time is zero.
Enable zero-crossing detection for fixed-step simulation For code generation, the setting must be the same for the parent and referenced models.
Math and Data Types Application lifespan (days) For code generation, the setting must be the same for the parent and referenced models.
Hardware Implementation All options Values must be the same for top and referenced models.
Code Generation System target file Must be the same for top and referenced models.
Language Must be the same for top and referenced models.
Generate code only Must be the same for top and referenced models.
Optimization Default parameter behavior When a parent model has this parameter set toInlined, the parent model does not support referenced models that set the parameter to Tunable.
Identifiers Maximum identifier length Cannot be longer for a referenced model than for its parent model.
Header guard prefix Must be the same for top and referenced models.
Interface Code replacement library Must be the same for top and referenced models.
ASAP2 interface Can be on oroff in a top model, but must beoff in a referenced model. If it is not off, the code generator temporarily sets it to off during code generation.

Configuration Requirements for Model Referencing with ERT System Target Files (Requires Embedded Coder)

Dialog Box Pane Option Requirement
Identifiers Global variablesGlobal typesSubsystem methodsLocal temporary variablesConstant macros $R token must be included.
Signal naming Must be the same for top and referenced models.
M-function If specified, must be the same for top and referenced models.
Parameter naming Must be the same for top and referenced models.
#define naming Must be the same for top and referenced models.
Interface Ignore custom storage classes Must be the same for top and referenced models.
Support floating-point numbers Must be the same for top and referenced models.
Support non-finite numbers If off for top model, must beoff for referenced models.
Support complex numbers If off for top model, must beoff for referenced models.
Remove error status field in real-time model data structure If on for top model, must beon for referenced models.
Code Style Preserve extern keyword in function declarations Must be the same for top and referenced models.
Code Placement Use owner from data object for data definition placement Must be the same for top and referenced models.
Signal display level Must be the same for top and referenced models.
Parameter tune level Must be the same for top and referenced models.

Configuration Parameters Changed During Code Generation

For referenced models, if these > > parameters have settings that do not contain a $R token (which represents the name of the referenced model), code generation prepends the $R token to the identifier format:

You can use the Model Advisor to identify models in a model referencing hierarchy for which code generation changes configuration parameter settings.

  1. In the Simulink Editor, from the tab, select .
  2. Expand > .
  3. Run the Check code generation identifier formats used for model reference check.

If a script that operates on generated code uses identifier formats that code generation changes, then update the script to use the updated identifier format (which includes an appended $R token).

For more information about identifiers, see Identifier Format Control (Embedded Coder).

Naming Requirements

Within a model that uses model referencing, names of the constituent models cannot collide. When you generate code from a model that uses model referencing, theMaximum identifier length parameter must be large enough to accommodate the root model name and the name-mangling text. A code generation error occurs if Maximum identifier length is not large enough.

When a name conflict occurs between a symbol within the scope of a higher-level model and a symbol within the scope of a referenced model, the symbol from the referenced model is preserved. The code generator performs name mangling on the symbol from the higher-level model.

Embedded Coder Naming Requirements

The Embedded Coder® product lets you control the formatting of generated symbols in much greater detail. When generating code with an ERT target from a model that uses model referencing:

For more information, see Model Configuration Parameters: Code Generation Identifiers.

Custom Target Requirements

If you have Embedded Coder, a custom target must meet various requirements to support model referencing. For details, see Support Model Referencing.

Miscellaneous Considerations

Minimize occurrences of algebraic loops by selecting the Minimize algebraic loop occurrences parameter on the Model Referencing pane. The setting of this option affects only generation of code from the model. For more information about direct feed through, see Algebraic Loop Concepts.

Use the Integer rounding mode parameter on your model's blocks to simulate the rounding behavior of the C compiler that you intend to use to compile code generated from the model. This setting appears on theSignal Attributes pane of the parameter dialog boxes of blocks that can perform signed integer arithmetic, such as the Product, Matrix Multiply and n-D Lookup Table blocks.

For most blocks, the value of Integer rounding mode completely defines rounding behavior. For blocks that support fixed-point data and the Simplest rounding mode, the value of Signed integer division rounds to also affects rounding. For details, see Rounding Modes (Fixed-Point Designer).

See Also

Topics