Main Content

Model Configuration Parameters: Code Generation Interface

The Code Generation > Interface category includes parameters for configuring the interface of the generated code. These parameters require a Simulink® Coder™ license. Additional parameters available with an ERT-based target require an Embedded Coder® license. Generating code for deep learning models using NVIDIA® CUDA® deep neural network library (cuDNN) or TensorRT™ high performance inference libraries for NVIDIA GPUs requires a GPU Coder™ license.

On the Configuration Parameters dialog box, the following configuration parameters are on the Code Generation > Interface pane.

ParameterDescription

Code replacement library

Specify a code replacement library the code generator uses when producing code for a model.

Code replacement libraries (Embedded Coder)

Specify multiple code replacement libraries the code generator use when producing code for a model.

Shared code placement

Specify the location for generating utility functions, exported data type definitions, and declarations of exported data with custom storage class.

Support: floating-point numbers (Embedded Coder)

Specify whether to generate floating-point data and operations.

Support: non-finite numbers

Specify whether to generate non-finite data and operations on non-finite data.

Support: complex numbers (Embedded Coder)

Specify whether to generate complex data and operations.

Support: absolute time (Embedded Coder)

Specify whether to generate and maintain integer counters for absolute and elapsed time values.

Support: continuous time (Embedded Coder)

Specify whether to generate code for blocks that use continuous time.

This parameter does not apply when you use Embedded Coder for a component model that is configured with a service interface.

Support: variable-size signals (Embedded Coder)

Specify whether to generate code for models that use variable-size signals.

Code interface packaging

Select the packaging for the generated C or C++ code interface.

Multi-instance code error diagnostic

Select the severity level for diagnostics displayed when a model violates requirements for generating multi-instance code.

Pass root-level I/O as (Embedded Coder)

Control how root-level model input and output are passed to the reusable model_step function.

Remove error status field in real-time model data structure (Embedded Coder)

Specify whether to log or monitor error status.

Include model types in model class (Embedded Coder)

Specify whether to generate model type definitions in a model class.

Array layout

Specify layout of array data for code generation as column-major or row-major

External functions compatibility for row-major code generation

Select diagnostic action if Simulink encounters a function that has no specified array layout

Generate C API for: signals

Generate C API data interface code with a signals structure.

Generate C API for: parameters

Generate C API data interface code with parameter tuning structures.

Generate C API for: states

Generate C API data interface code with a states structure.

Generate C API for: root-level I/O

Generate C API data interface code with a root-level I/O structure.

ASAP2 interface

Generate code for the ASAP2 data interface.

External mode

Generate code for the external mode data interface. When using Embedded Coder for a component model that is configured with a service interface, this parameter is not relevant and, therefore, is not supported.

Transport layer

Specify the transport protocol for communications.

MEX-file arguments

Specify arguments to pass to an external mode interface MEX-file for communicating with executing targets.

Static memory allocation

Control memory buffer for external mode communication.

Static memory buffer size

Specify the memory buffer size for external mode communication.

Automatically allocate static memory

Automatically allocate static memory for buffers used in external mode communication.

Maximum duration

Specify, in base rate steps, maximum duration that software must consider when determining size of static memory required for external mode communication.

Log signals to MDF file

Log signal and output data from generated code to MDF file.

Target library

Specify the target deep learning library used during code generation.

cuDNN or TensorRT requires a GPU Coder license.

Learnables Compression

Specify the compression type, "none" or "bfloat16".

ARM Compute Library version

Specify the version of ARM® Compute Library.

ARM Compute Library architecture

Specify the ARM architecture supported in the target hardware.

Deep Learning Data Type

Specify the data type to be used by TensorRT library for deep learning code generation.

This parameter requires a GPU Coder license.

Auto tuning

Use auto tuning for cuDNN library. Enabling auto tuning allows the cuDNN library to find the fastest convolution algorithms.

This parameter requires a GPU Coder license.

These configuration parameters are under the Advanced parameters.

ParameterDescription

Support non-inlined S-functions (Embedded Coder)

Specify whether to generate code for non-inlined S-functions.

This parameter does not apply when you use Embedded Coder for a component model that is configured with a service interface.

Maximum word length

Specify a maximum word length, in bits, for which the code generation process generates system-defined multiword type definitions.

Buffer size of dynamically-sized string (bytes)

Number of bytes of the character buffer generated for dynamic string signals without maximum length.

Multiword type definitions (Embedded Coder)

Specify whether to use system-defined or user-defined type definitions for multiword data types in generated code.

Use dynamic memory allocation for model initialization (Embedded Coder)

Control how the generated code allocates memory for model data.

Single output/update function

Specify whether to generate the model_step function.

This parameter does not apply when you use Embedded Coder for a component model that is configured with a service interface.

Terminate function required (Embedded Coder)

Specify whether to generate the model_terminate function.

Combine signal/state structures (Embedded Coder)

Specify whether to combine global block signals and global state data into one data structure in the generated code

You cannot clear this parameter when you use Embedded Coder for a component model that is configured with a service interface.

Generate separate internal data per entry-point function (Embedded Coder)Generate a model's block signals (block I/O) and discrete states (DWork) acting at the same rate into the same data structure.

MAT-file logging

Specify MAT-file logging.

This parameter does not apply when you use Embedded Coder for a component model that is configured with a service interface.

MAT-file variable name modifier (Embedded Coder)

Select the text to add to MAT-file variable names.

Existing shared code (Embedded Coder)

Specify folder that contains existing shared code

Suppress generation of fixed-point word size checks

Control generation of preprocessor directives that perform fixed-point word size checks

Remove disable function (Embedded Coder)

Remove unreachable (dead-code) instances of the disable functions from the generated code for ERT-based systems that include model referencing hierarchies.

Remove reset function (Embedded Coder)

Remove unreachable (dead-code) instances of the reset functions from the generated code for ERT-based systems that include model referencing hierarchies.

LUT object struct order for even spacing specification

Change the order of the fields in the generated structure for a lookup table object whose specification parameter is set to even spacing.

LUT object struct order for explicit value specification

Change the order of the fields in the generated structure for a lookup table object whose specification parameter is set to explicit value.

Generate destructor (Embedded Coder)

Specify whether to generate a destructor for the C++ model class.

Use dynamic memory allocation for model block instantiation (Embedded Coder)

Specify whether generated code uses the operator new, during model object registration, to instantiate objects for referenced models configured with a C++ class interface.

Ignore custom storage classes (Embedded Coder)

Specify whether to apply or ignore custom storage classes.

Ignore test point signals (Embedded Coder)

Specify allocation of memory buffers for test points.

Implement each data store block as a unique access point (Embedded Coder)

Create unique variables for each read/write operation of a Data Store Memory block.

Generate full file banner

Generate full header banner including time stamp.

The following parameters under the Advanced parameters are infrequently used and have no other documentation.

ParameterDescription
GenerateSharedConstants

Control whether the code generator generates code with shared constants and shared functions. Default is on. When turned off, the code generator does not generate shared constants.

InferredTypesCompatibility

For compatibility with legacy code including tmwtypes.h, specify that the code generator creates a preprocessor directive #define __TMWTYPES__ inside model.h.

TargetLibSuffix
character vector - ''

Control the suffix used for naming a target's dependent libraries (for example, _target.lib or _target.a). If specified, the character vector must include a period (.). (For generated model reference libraries, the library suffix defaults to _rtwlib.lib on Windows® systems and _rtwlib.a on UNIX® systems.).

This parameter does not apply for model builds that use the toolchain approach, see Library Control Parameters

TargetPreCompLibLocation
character vector - ''

Control the location of precompiled libraries. If you do not set this parameter, the code generator uses the location specified in rtwmakecfg.m.

IsERTTarget

Indicates whether or not the currently selected target is derived from the ERT target.

CPPClassGenCompliant

Indicates whether the target supports the ability to generate and configure C++ class interfaces to model code.

ConcurrentExecutionCompliant

Indicates whether the target supports concurrent execution

UseToolchainInfoCompliant

Indicate a custom target is toolchain-compliant.

ModelStepFunctionPrototypeControlCompliant

Indicates whether the target supports the ability to control the function prototypes of initialize and step functions that are generated for a Simulink model.

This parameter does not apply when you use Embedded Coder for a component model that is configured with a service interface.

ParMdlRefBuildCompliant

Indicates if the model is configured for parallel builds when building a model that includes referenced models.

CompOptLevelCompliant
off, on

Set in SelectCallback for a target to indicate whether the target supports the ability to use the Compiler optimization level parameter to control the compiler optimization level for building generated code.

Default is off for custom targets and on for targets provided with the Simulink Coder and Embedded Coder products.

ModelReferenceCompliant
character vector - off, on
Set in SelectCallback for a target to indicate whether the target supports model reference.

The following parameters are for MathWorks use only.

ParameterDescription
ExtModeTestingFor MathWorks use only.
ExtModeIntrfLevelFor MathWorks use only.
ExtModeMexFileFor MathWorks use only.

Related Topics