Using Simulink | ![]() ![]() |
Simulink AcceleratorでのS-ファンクションの実行の制御
Target Language Compilerを使ったS-ファンクションのインライン化は、Simulink Acceleratorと共に用いたときに性能を向上させます。しかし、デフォルトでは、AcceleratorはS-ファンクションに対してインライン化されたTLCファイルが存在していても無視します。
このデフォルトが選択された理由の例の1つは、I/Oボードに対するデバイスドライバS-Functionブロックです。S-ファンクションTLCファイルは、典型的にI/Oボードの特定のハードウェアレジスタにアクセスするために作成されます。Acceleratorはターゲットシステム上では実行しておらず、ホストシステム上のシミュレーションなので、S-ファンクションに対してインライン化されたTLCファイルの利用を避けなければなりません。
その他の例は、TLCファイルとS-ファンクションのMEX-ファイルバージョンが作業ベクトル、パラメータの利用、初期化において非互換であることです。
インライン化されたS-ファンクションがこれらの問題によって複雑化されていない場合、S-ファンクションの mdlInitializeSizes
関数の SS_OPTION_USE_TLC_WITH_ACCELERATOR
を指定することによって、S-ファンクションMEX-ファイルの代わりにTLCファイルを使うことができます。設定時にAcceleratorは、インライン化されたファイルを利用し、完全な性能の向上が実現されます。
static void mdlInitializeSizes(SimStruct *S)
{
/* Code deleted */
ssSetOptions(S, SS_OPTION_USE_TLC_WITH_ACCELERATOR
);
![]() | Simulink Acceleratorビルドプロセスのカスタマイズ | sim | ![]() |