MATLAB System - Include System object in model - Simulink (original) (raw)

Include System object in model

Description

The MATLAB System block brings existing System objects (based on matlab.System) into Simulink®. It also enables you to use System object APIs to develop new blocks for Simulink. For more information on this block, see Create Custom Blocks Using MATLAB System Block and System objects.

For interpreted execution, the model simulates the block using the MATLAB® execution engine.

For code generation, the model simulates the block using code generation (using the subset of MATLAB code supported for code generation). The MATLAB System block supports only a subset of the functions available in MATLAB. See Functions and Objects Supported for C/C++ Code Generation for a complete list of functions. These functions include those in common categories, such as:

By default, the block recognizes 1-D input signals and propagates 1-D output signals as 2-D. Use the supports1DVectorsImpl method to enable the block to recognize and propagate 1-D inputs and outputs as 1-D signals.

Examples

Ports

Output

expand all

Out — Signal output of a MATLAB System block

scalar | vector | matrix

Signal output of a MATLAB System block that the System object returns.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Parameters

expand all

System Object Name — Name of the System object

cell array (default)

Specify the full name of the user-defined System object class without the file extension. This entry is case sensitive. The class name must exist on the MATLAB path.

You can specify a System object name in one of these ways:

If you need to create a System object, you can create one from a template by clickingNew.

After you save the System object, the name appears in the System object name text box.

Use the full name of the user-defined System object class name. The block does not accept a MATLAB variable that you have assigned to a System object class name.

Programmatic Use

Block Parameter: System
Type: character vector
Value: name of the System object
Default: ' '

New — Create a System object from a template

Basic (default) | Advanced | Simulink Extension

Select one of the options for a System object template.

Basic

Starts MATLAB Editor and displays a template for a simple System object using the fewest System object methods.

Advanced

Starts MATLAB Editor and displays a template for a more advanced System object using most of the System object methods.

Simulink Extension

Starts MATLAB Editor and displays a file that contains utilities for customizing the block for Simulink. This is the same file available in MATLAB when you select > > .

After you save the System object, you can enter the name in the System object name text box.

Simulate using — Select the simulation mode

Code generation (default) | Interpreted Execution

Select the simulation mode.

Code generation

On the first model run, simulate and generate code forMATLAB System block using only MATLAB functions supported for code generation. If the structure of the block does not change, subsequent model runs do not regenerate the code.

If the simulation mode is Code generation, System Objects accept a maximum of 32 inputs.

Interpreted execution

Simulate model using all supported MATLAB functions. Choosing this option can slow simulation performance.

Dependency — Dependency parameter for MATLAB System block

auto (default)

After you assign a valid System object class name to the block, the next time you open the block dialog box, the parameter is visible. This parameter appears for everyMATLAB System block. You cannot remove it.

Saturate on integer overflow — Specify whether overflows saturate

Off (default) | On

On

Overflows saturate to either the minimum or maximum value that the data type can represent. For example, an overflow associated with a signed 8-bit integer can saturate to -128 or 127.

Off

Overflows wrap to the appropriate value that the data type can represent. For example, the number 130 does not fit in a signed 8-bit integer and wraps to -126.

Tips

Dependency

This check box appears when you use the showFiSettingsImpl method in the System object.

Programmatic Use

**Block Parameter:**SaturateOnIntegerOverflow
Type: character vector
Values: 'off' | 'on'
Default: 'off'

Fixed-point (default) | Fixed-point & Integer

Select which inherited data types to treat fi data types,

Fixed-point

Treat fixed-point data types as fi data types.

Fixed-point & Integer

Treat fixed-point and integer data types asfi data types.

Dependency

This check box appears when you use the showFiSettingsImpl method in the System object.

MATLAB System fimath — Specify fixed-point settings to use

Same as MATLAB (default) | Specify Other

Select which fixed-point math settings to use.

Same as MATLAB

Use the current MATLAB fixed-point math settings.

Specify Other

Enable the edit box for specifying the desired fixed-point math settings. For information on setting fixed-point math, seefimath (Fixed-Point Designer).

Dependency

This check box appears when you use the showFiSettingsImpl method in the System object.

Block Characteristics

Data Types Booleana | busba doublea enumerateda fixed pointa halfa integera singlea stringa
Direct Feedthrough no
Multidimensional Signals yesa
Variable-Size Signals yesca
Zero-Crossing Detection no
a Actual data type or capability support depends on block implementation.b See Nonvirtual Buses and MATLAB System Block for more information.c See Variable-Size Signals for more information.

Extended Capabilities

C/C++ Code Generation

Generate C and C++ code using Simulink® Coder™.

Actual code generation support depends on block implementation.

HDL Code Generation

Generate VHDL, Verilog and SystemVerilog code for FPGA and ASIC designs using HDL Coder™.

HDL Coder™ provides additional configuration options that affect HDL implementation and synthesized logic.

You can define a System object and use it in a MATLAB System block for HDL code generation.

Tunable Parameter Support

HDL Coder supports tunable parameters with the following data types:

When using tunable parameters with the MATLAB System block, the tunable parameter should be a Simulink.Parameter object with the StorageClass set toExportedGlobal.

x = Simulink.Parameter x.Value = 1 x.CoderInfo.StorageClass = 'ExportedGlobal'

For details, seeGenerate DUT Ports for Tunable Parameters (HDL Coder).

HDL Architecture

This block has one default HDL architecture.

HDL Block Properties

If you use a predefined System object, the HDL block properties available are the same as the properties available for the corresponding block.

By default, the following HDL block properties are available.

ConstMultiplierOptimization Canonical signed digit (CSD) or factored CSD optimization. The default is none. See also ConstMultiplierOptimization (HDL Coder).
ConstrainedOutputPipeline Number of registers to place at the outputs by moving existing delays within your design. Distributed pipelining does not redistribute these registers. The default is0. For more details, see ConstrainedOutputPipeline (HDL Coder).
DistributedPipelining Pipeline register distribution, or register retiming. The default is inherit. See also DistributedPipelining (HDL Coder).
InputPipeline Number of input pipeline stages to insert in the generated code. Distributed pipelining and constrained output pipelining can move these registers. The default is0. For more details, see InputPipeline (HDL Coder).
LoopOptimization Unroll, stream, or do not optimize loops. The default is none. See also LoopOptimization (HDL Coder).
MapPersistentVarsToRAM Map persistent arrays to RAM. The default is off. See also MapPersistentVarsToRAM (HDL Coder).
OutputPipeline Number of output pipeline stages to insert in the generated code. Distributed pipelining and constrained output pipelining can move these registers. The default is0. For more details, see OutputPipeline (HDL Coder).
ResetType Suppress reset logic generation. The default is default, which generates reset logic. See also ResetType (HDL Coder).
SharingFactor Number of functionally equivalent resources to map to a single shared resource. The default is 0. See also Resource Sharing (HDL Coder).
VariablesToPipeline WarningVariablesToPipeline is not recommended. Use coder.hdl.pipeline (HDL Coder) instead.Insert a pipeline register at the output of the specified MATLAB variable or variables. Specify the list of variables as a character vector, with spaces separating the variables.

Fixed-Point Conversion

Design and simulate fixed-point systems using Fixed-Point Designer™.

Actual data type support depends on block implementation.

Version History

Introduced in R2013b

expand all

R2024a: Report runtime errors for MATLAB System blocks in rapid accelerator mode

Report runtime errors for MATLAB System blocks when simulating in rapid accelerator mode by setting the Enable memory integrity checks configuration parameter to Always on.