Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

コード生成でサポートされるブロックと製品の使用

モデルを作成するときに、開発プロセスの後半で問題が生じないように、使用する製品とブロックが Simulink® Coder™ および Embedded Coder® コード ジェネレーターでサポートされているかどうかを確認します。

関連製品

次の表は、Simulink Coder ソフトウェアの機能を拡張、補足する MathWorks® 製品をまとめています。これらの製品と、コード生成による製品のサポートの詳細については、製品のドキュメンテーション (www.mathworks.com) を参照してください。

製品コード生成機能拡張の対象

Aerospace Blockset™

航空機、宇宙船、ロケット、推進システム、無人航空機本体

Audio Toolbox™

オーディオ処理システム
Automated Driving Toolbox™ ADAS および自動運転システムの設計、シミュレーションおよびテスト
AUTOSAR Blockset AUTOSAR Classic および Adaptive ECU ソフトウェアのモデリングとシミュレーション

Communications Toolbox™

通信システムの物理層

Computer Vision Toolbox™

映像処理、イメージ処理、コンピューター ビジョン システム

Control System Toolbox™

線形制御システム

DSP System Toolbox™

信号処理システム
Embedded Coder 組み込みシステム、ラピッド プロトタイピング ボードおよび量産型マイクロプロセッサ

Fixed-Point Designer™

固定小数点システム

Fuzzy Logic Toolbox™

ファジィ論理に基づくシステム設計
HDL Verifier™

Simulink からの Direct Programming Interface (DPI) コンポーネントおよび Transaction Level Model (TLM) の生成

IEC Certification Kit

ISO 26262 および IEC 61508 認定

Model-Based Calibration Toolbox™

エンジン性能、排気、燃費の最適なバランスを体系的に識別するためのプロセスを開発し、制御設計、ハードウェアインザループ (HIL) テスト、パワートレイン シミュレーションのための統計モデルを再利用する

Model Predictive Control Toolbox™

モデル予測コントローラー
Deep Learning Toolbox™ ニューラル ネットワーク
Parallel Computing Toolbox™ 大規模な Simulink モデルの並列ビルド
Phased Array System Toolbox™ レーダー、ソナー、ワイヤレス通信、医療画像アプリケーションのセンサー アレイ システム
Polyspace® Bug Finder™

生成されたコードの MISRA-C への準拠と静的解析

Polyspace Code Prover™

生成されたコードの形式的解析

Powertrain Blockset™

パワートレイン アプリケーションのリアルタイム テスト

Robotics System Toolbox™

ロボティクス アプリケーションの設計、シミュレーション、テスト

ROS Toolbox

ROS ベースのアプリケーションの設計、シミュレーション、展開

Simscape™

物理ネットワークとしての機械、電気、油圧、その他の物理的ドメインにまたがるシステム

Simscape Driveline™

動力伝達装置 (ドライブトレイン) システム
Simscape Electrical™ 電子、電気機械および電力システム

Simscape Fluids™

水力および制御システム

Simscape Multibody™

3 次元の機械システム

Simulink 3D Animation™

3 次元可視化をもつシステム
Simulink Check™ モデリング標準準拠チェックおよびメトリクス
Simulink Code Inspector™

生成されたコードの自動レビュー

Simulink Control Design™ PID コントローラーの自動調整と周波数応答のオンライン推定
Simulink Coverage™ モデルおよびコードの構造カバレッジ解析

Simulink Design Optimization™

適応型ルックアップ テーブルの調整と信号特性のチェック

Simulink Desktop Real-Time™

ラピッド プロトタイピングまたは制御システムと信号処理アルゴリズムのハードウェアインザループ (HIL) シミュレーション

Simulink Real-Time™

ラピッド制御プロトタイピング、ハードウェアインザループ (HIL) シミュレーション、および他のリアルタイム テスト アプリケーション

Simulink Report Generator™

プロジェクト ドキュメンテーションを自動的に標準形式で生成する
Requirements Toolbox™ 設計およびコードのオーサリングおよびトレーシング要件
Simulink Test™

生成されたコードのソフトウェアインザループ (SIL)、プロセッサインザループ (PIL) およびリアルタイム ハードウェアインザループ (HIL) テスト

SoC Blockset™ SoC ハードウェアおよびソフトウェアのアーキテクチャの設計、評価、実装
Stateflow® ステート マシンとフロー チャート

System Identification Toolbox™

測定された入出力データから特定されるシステム
Vehicle Dynamics Blockset™ 3 次元環境での車両運動のモデリングとシミュレーション

Vehicle Network Toolbox™

Windows® でのアクセラレータとラピッド アクセラレータのシミュレーションとコード展開のための CAN ブロック

コード生成をサポートする Simulink 組み込みブロック

次の表に、Simulink ブロックに対するコード ジェネレーターのサポートの概要を示します。ブロック ライブラリごとに表があります。各ブロックがサポートするデータ型を含む詳細については、MATLAB® コマンド ウィンドウで showblockdatatypetable と入力するか、ブロックのリファレンス ページを参照してください。一部のブロックでは、生成されるコードは memcpy または memset (string.h) に依存します。

サービス インターフェイスで構成されたモデルに Embedded Coder を使用する場合にサポートされないブロックおよびブロック パターンの一覧については、Embedded Coder サービス インターフェイスのブロックおよびブロック パターンの制約と制限 (Embedded Coder)を参照してください。

Additional Math and Discrete:Additional Discrete

ブロックサポート メモ
Fixed-Point State-Space

コード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。

Transfer Fcn Direct Form II
Transfer Fcn Direct Form II Time Varying

Additional Math and Discrete:Increment/Decrement

ブロックサポート メモ
Decrement Real Worldコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Decrement Stored Integer
Decrement Time To Zeroコード生成をサポートします。
Decrement To Zeroコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Increment Real World
Increment Stored Integer

Continuous

ブロックサポート メモ
Derivative

量産品質のコードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。

一般的に、Simulink の [モデルの離散化] を使用して、連続ブロックを量産コードの生成をサポートする離散系の等価なブロックにマップする事例を考えてみましょう。[モデルの離散化] アプリを使用します。例外は Second-Order Integrator ブロックで、[モデルの離散化] はこのブロックに対しては近似的な離散化を行います。

Integrator
Integrator
PID Controller
PID Controller (2DOF)
Second-Order Integrator
State-Space
Transfer Fcn
Transport Delay
Variable Transport Delay
Zero-Pole

Discontinuities

ブロックサポート メモ
Backlashコード生成をサポートします。
Coulomb and Viscous Frictionコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Dead Zoneコード生成をサポートします。
Dead Zone Dynamicコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Hit Crossing量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Quantizerコード生成をサポートします。
Rate LimiterTriggered Subsystem の階層内では使用できません。
Rate Limiter Dynamicコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Relayコード生成をサポートします。
Saturation
Saturation Dynamicコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Wrap To Zero

Discrete

ブロックサポート メモ
Delayコード生成をサポートします。
Difference
  • コード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。

  • 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。

Discrete Derivative
  • Triggered Subsystem の階層内で使用される場合は絶対時間に依存します。

  • コード生成をサポートします。

Discrete Filterコード生成をサポートします。
Discrete FIR Filter
Discrete PID Controller
  • Triggered Subsystem の階層内で使用される場合は絶対時間に依存します。

  • コード生成をサポートします。

Discrete PID Controller (2DOF)
Discrete State-Spaceコード生成をサポートします。
Discrete Transfer Fcn
Discrete Zero-Pole
Discrete-Time IntegratorTriggered Subsystem の階層内で使用される場合は絶対時間に依存します。
Delayコード生成をサポートします。
First Order Hold量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Memoryコード生成をサポートします。
Resettable Delay
Tapped Delay
Transfer Fcn First Orderコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Transfer Fcn Lead or Lag
Transfer Fcn Real Zero
Unit Delayコード生成をサポートします。
Variable Integer Delay
Zero-Order Hold

Lookup Tables

ブロックサポート メモ
Sine, Cosineコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。[Atomic サブシステムとして扱う] チェック ボックスをオンにして、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Direct Lookup Table (n-D)コード生成をサポートします。
Interpolation Using Prelookup
1-D Lookup Table
2-D Lookup Table
n-D Lookup Table
Lookup Table Dynamic
Prelookup
Sineコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。

Math Operations

ブロックサポート メモ
Absコード生成をサポートします。
Add
Algebraic Constraint コード生成時には無視されます。
Assignmentコード生成をサポートします。
Bias
Complex to Magnitude-Angle
Complex to Real-Imag
Divide
Dot Product
Find Nonzero Elements
Gain
Magnitude-Angle to Complex
Math Function (10^u)
Math Function (conj)
Math Function (exp)
Math Function (hermitian)
Math Function (hypot)
Math Function (log)
Math Function (log10)
Math Function (magnitude^2)
Math Function (mod)
Math Function (pow)
Math Function (reciprocal)
Math Function (rem)
Math Function (square)
Math Function (transpose)
Vector Concatenate, Matrix Concatenate
MinMax
MinMax Running Resettable
Permute Dimensions
Polynomial
Product, Matrix Multiply
Product of Elements
Real-Imag to Complex
Sqrt
Reshape
Rounding Function
Sign
Sqrt
Sine Wave Function
  • サンプルベースの演算用に設定される場合は絶対時間を参照しません。時間ベースの演算の場合は絶対時間に依存します。

  • Triggered Subsystem の階層内で使用される場合は絶対時間に依存します。

Slider Gainコード生成をサポートします。
Sqrt
Squeeze
Add
Trigonometric Function関数 asinhacosh、および atanh はコンパイラによりサポートされない場合もあります。これらの関数をサポートしないコンパイラを使用する場合、ソフトウェアはそのブロックに対して警告を出し、生成されるコードのリンクは失敗します。
Unary Minusコード生成をサポートします。
Vector Concatenate, Matrix Concatenate
Weighted Sample Time Math

Messages & Events

ブロックサポート メモ
Hit Crossing

量産コードには推奨しません。ert ターゲットでは浮動小数点でないデータ型はサポートされません。

Queueコード生成は、イベント アクションおよび統計ではサポートされません。
Receiveコード生成をサポートします。
Sendコード生成をサポートします。
Sequence Viewerこのブロックはシミュレーション中のメッセージの遷移を可視化するために使用できますが、生成されたコードには含まれません。

Model Verification

ブロックサポート メモ
Assertionコード生成をサポートします。
Check Discrete Gradient

量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。

Check Dynamic Gapコード生成をサポートします。
Check Dynamic Lower Bound
Check Dynamic Range
Check Dynamic Upper Bound
Check Input Resolution量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Check Static Gap
Check Static Lower Bound
Check Static Range
Check Static Upper Bound

Model-Wide Utilities

ブロックサポート メモ
Block Support Tableコード生成時には無視されます。
DocBlock[Embedded Coder Flag] ブロック パラメーターで指定したテンプレートの記号を使用して、生成されたコードにコメントを追加します。Embedded Coder ライセンスが必要です。詳細については、Use a Simulink DocBlock to Add a Comment (Embedded Coder)を参照してください。
Model Infoコード生成時には無視されます。
Timed-Based Linearization
Trigger-Based Linearization

Signal Attributes

ブロックサポート メモ
Bus to Vectorコード生成をサポートします。
Data Type Conversion
Data Type Conversion Inherited
Data Type Duplicate
Data Type Propagation
Data Type Scaling Strip
IC量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Probeコード生成をサポートします。
Rate Transition
  • コード生成をサポートします。

  • Triggered Subsystem の階層内では使用できません。

Signal Conversionコード生成をサポートします。
Signal Specification
Unit Conversion
Weighted Sample Time
Width

Signal Routing

ブロックサポート メモ
Bus Assignmentコード生成をサポートします。
Bus Creator
Bus Selector
Data Store Memory
Data Store Read
Data Store Write
Demux
Environment Controller量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Fromコード生成をサポートします。
Goto
Goto Tag Visibility
Index Vector
Manual Switch量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Manual Variant Sinkコード生成をサポートします。
Manual Variant Source
MergeMerge ブロックに接続された複数の信号が Auto 以外のストレージ クラスをもつ場合、そのブロックに接続されたすべての Auto 以外の信号は、"同じ名前" で "同じストレージ クラス" をもたなければなりません。Merge ブロック同士が直接接続される場合、そのグループの Merge ブロックに接続されるすべての信号にこれらのルールが適用されます。
Multiport Switchコード生成をサポートします。
Mux
Selector
State Reader
State Writer
Switch
Variant Sink
Variant Source
Vector Concatenate, Matrix Concatenate

Sinks

ブロックサポート メモ
Displayコード生成時には無視されます。
Floating Scope and Scope Viewer
Outport (Out1)コード生成をサポートします。
Scopeコード生成時には無視されます。
Stop Simulation
  • 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。

  • 停止条件が真の場合、生成されたコードは実行を停止します。

Terminatorコード生成をサポートします。
To File量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
To Workspaceコード生成時には無視されます。
Record, XY Graph

Sources

ブロックサポート メモ
Band-Limited White NoiseTriggered Subsystem の階層内では使用できません。
Chirp Signal量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Clock
Constantコード生成をサポートします。
Counter Free-Running量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Counter Limited
  • コード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。

  • 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。

Digital Clock量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Enumerated Constantコード生成をサポートします。
From File量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
From Spreadsheet
From Workspaceコード生成をサポートします。
Groundコード生成をサポートします。
Inport (In1)コード生成をサポートします。
Pulse GeneratorTriggered Subsystem の階層内では使用できません。サンプルベースの演算用に設定される場合は絶対時間を参照しません。時間ベースの演算の場合は絶対時間に依存します。
Ramp量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Random Numberコード生成をサポートします。
Repeating Sequence
  • 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。

  • 代わりに、Repeating Sequence Stair ブロックまたは Repeating Sequence Interpolated ブロックの使用を検討してください。

Repeating Sequence Interpolated
  • コード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。

  • Triggered Subsystem の階層内では使用できません。

Repeating Sequence Stairコード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。
Signal Builder量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Signal Generator
Sine Wave
  • Triggered Subsystem の階層内で使用される場合は絶対時間に依存します。

  • サンプルベースの演算用に設定される場合は絶対時間を参照しません。時間ベースの演算の場合は絶対時間に依存します。

Step量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。
Uniform Random Numberコード生成をサポートします。
Waveform Generator量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。

ユーザー定義

ブロックサポート メモ
Simulink Functionコード生成をサポートします。
Initialize Function
Interpreted MATLAB Function代わりに、MATLAB Function ブロックの使用を検討してください。
Level-2 MATLAB S-Function対応する TLC ファイルが使用できる場合、Level-2 MATLAB S-Function ブロックは TLC ファイルを使用してコードを生成し、それ以外の場合は、コード生成でエラーがスローされます。
MATLAB Functionコード生成をサポートします。
MATLAB System
S-FunctionMATLAB を呼び出す S-Function はコード生成時はサポートされません。
S-Function Builder
Simulink Functionコード生成をサポートします。
Terminate Function

Embedded Coder サービス インターフェイスのブロックおよびブロック パターンの制約と制限

サービス インターフェイスで構成されたモデルに Embedded Coder を使用する場合、次のブロックおよびブロック パターンは意味をもたないか、まだサポートされていません。

  • 連続状態を使用するブロック

  • オプション SS_OPTION_ASYNCHRONOUSSS_OPTION_ASYNCHRONOUS_INTERRUPT、または SS_OPTION_ASYNCHRONOUS_CUSTOM を指定して低速のタスクの ID を高速のタスクの ID に変更する S-Function ブロック

  • データと関数呼び出しの要素が混在した出力端子をもつ S-Function ブロック

  • 状態端子を使用するブロック

  • 初期化値に classic 初期化モードを使用する Conditional Subsystem ブロック

  • 複数のレートを使用するグローバル データ ストア

  • 共有の制御信号と異なるレートを使用する Enabled Subsystem ブロック

  • 複数のレートを使用する S-Function ブロック

  • [バリアント制御モード] パラメーターが [sim/codegen の切り替え] に設定されたバリアント ブロック

  • Rate Transition ブロックと Reinitialize Function ブロック

  • 参照モデルの Simulink Function ブロックを別の参照モデルから呼び出す関数端子の使用

  • 出力端子に接続された State Reader ブロックと State Writer ブロックの使用、またはそれらのブロックの初期化関数、リセット関数、終了関数以外の関数での使用

  • ルートレベルの入力端子および出力端子と Send ブロックおよび Receive ブロックの間の信号の接続に関連するメッセージベースの通信

  • ExportedGlobal などのグローバル ストレージ クラスで構成されたグローバル データストアとローカル データストア

  • [関数の可視性] パラメーターが [グローバル] に設定された Simulink Function ブロック

  • ルートレベルの Inport ブロックが次の条件に当てはまるコンポーネント モデル:

    • データ通信方法が [During Execution] に設定された受信側サービス インターフェイスに Inport ブロックがマッピングされている

    • 関数インターフェイスが [引数を許可 (グラフィカル インターフェイスとの一致)] に設定されていないサブシステムを Inport ブロックの分岐の 1 つで駆動している

  • ルートレベルの入力端子または出力端子に接続されていて、その入力端子または出力端子が次の条件のいずれかに当てはまる Merge ブロック:

    • During Execution のデータ通信を使用している。

    • Outside Execution のデータ通信を使用していて、信号がスカラー データ型である。

  • Function-Call Subsystem のトリガーをフィードする Mux ブロックに接続された複数の関数呼び出し入力端子に適用される受信側および送信側サービス インターフェイスはサポートされない

  • 異なるエクスポート関数からの信号タイプの組み合わせに対するデータ転送サービス インターフェイス

  • Discrete-Time Integrator ブロックおよび Weighted Sample Time ブロック以外の時間を必要とする離散ブロックに対するタイマー サービス インターフェイス

Simulink ブロックのデータ型サポート テーブル

Simulink ブロックのデータ型のサポート テーブルは、Simulink と Fixed-Point Designer のブロック ライブラリに含まれるブロックの特性をまとめたもので、各ブロックが量産コード生成での使用に推奨されるかどうかも記載されています。このテーブルを表示するには、MATLAB コマンド ウィンドウで showblockdatatypetable と入力するか、あるいはブロックの参照ページを開いてください。

コード生成用ブロック セットのサポート

コード生成を検討する場合に、ブロックを含むいくつかの製品を使用できます。しかし、これらの製品でブロックを使用する前に、製品のドキュメンテーションを参照して、コード生成をサポートしているブロックを確認してください。