このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
コード生成でサポートされるブロックと製品の使用
モデルを作成するときに、開発プロセスの後半で問題が生じないように、使用する製品とブロックが 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 Limiter | Triggered Subsystem の階層内では使用できません。 |
Rate Limiter Dynamic | コード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。 |
Relay | コード生成をサポートします。 |
Saturation | |
Saturation Dynamic | コード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。 |
Wrap To Zero |
Discrete
ブロック | サポート メモ |
---|---|
Delay | コード生成をサポートします。 |
Difference |
|
Discrete Derivative |
|
Discrete Filter | コード生成をサポートします。 |
Discrete FIR Filter | |
Discrete PID Controller |
|
Discrete PID Controller (2DOF) | |
Discrete State-Space | コード生成をサポートします。 |
Discrete Transfer Fcn | |
Discrete Zero-Pole | |
Discrete-Time Integrator | Triggered 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 |
Logic and Bit Operations
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
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 |
Ports & Subsystems
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 |
|
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 | |
Merge | Merge ブロックに接続された複数の信号が 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 Noise | Triggered Subsystem の階層内では使用できません。 |
Chirp Signal | 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。 |
Clock | |
Constant | コード生成をサポートします。 |
Counter Free-Running | 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。 |
Counter Limited |
|
Digital Clock | 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。 |
Enumerated Constant | コード生成をサポートします。 |
From File | 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。 |
From Spreadsheet | |
From Workspace | コード生成をサポートします。 |
Ground | コード生成をサポートします。 |
Inport (In1) | コード生成をサポートします。 |
Pulse Generator | Triggered Subsystem の階層内では使用できません。サンプルベースの演算用に設定される場合は絶対時間を参照しません。時間ベースの演算の場合は絶対時間に依存します。 |
Ramp | 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。 |
Random Number | コード生成をサポートします。 |
Repeating Sequence |
|
Repeating Sequence Interpolated |
|
Repeating Sequence Stair | コード ジェネレーターは、生成されたコード内で非アトミックなマスク Subsystem ブロックを構成する初期ブロックを明示的にグループ化しません。この柔軟さのために、コード生成がより効率化されます。ブロック パラメーター [Atomic サブシステムとして扱う] を選択して、マスク Subsystem ブロックがアトミック単位として実行されるように設定することでグループ化できる場合もあります。 |
Signal Builder | 量産コードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境でコードが機能的に有効で全般的に許容できるのに、小規模な組み込みターゲットがそのコードをサポートできないことはよくあります。通常、ブロックは量産コードに適する方向に展開します。このため、量産コードに適したブロックはそのままにしておきます。 |
Signal Generator | |
Sine Wave |
|
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-Function | MATLAB を呼び出す S-Function はコード生成時はサポートされません。 |
S-Function Builder | |
Simulink Function | コード生成をサポートします。 |
Terminate Function |
Embedded Coder サービス インターフェイスのブロックおよびブロック パターンの制約と制限
サービス インターフェイスで構成されたモデルに Embedded Coder を使用する場合、次のブロックおよびブロック パターンは意味をもたないか、まだサポートされていません。
連続状態を使用するブロック
オプション
SS_OPTION_ASYNCHRONOUS
、SS_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
と入力するか、あるいはブロックの参照ページを開いてください。
コード生成用ブロック セットのサポート
コード生成を検討する場合に、ブロックを含むいくつかの製品を使用できます。しかし、これらの製品でブロックを使用する前に、製品のドキュメンテーションを参照して、コード生成をサポートしているブロックを確認してください。