このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
固定小数点関数の共有ユーティリティ コードの生成
モデルのビルドで共有ユーティリティ フォルダーに配置される重要な一連の生成関数は、固定小数点サポートの関数です。モデルおよびブロック プロパティに基づいて、固定小数点ユーティリティ関数には有効なバージョンが多数あり、そこで静的ファイルの完全なセットを提供することは現実的ではありません。コード生成プロセス中は、必要な固定小数点ユーティリティ関数のみを生成すると効率的です。
共有ユーティリティ チェックサム メカニズムは、いくつかの重要なプロパティが共有ユーティリティを使用するモデルと同一であることを保証します。固定小数点関数には、関数の動作を決定する追加のプロパティがあります。このメカニズムでは、これらのプロパティが要件を保持するために関数とファイル名にコード化されます。追加のプロパティには、以下が含まれます。
カテゴリ | 関数/プロパティ |
---|---|
ブロック プロパティ |
|
モデル プロパティ | get_param(bdroot, 'NoFixptDivByZeroProtection') |
固定小数点ユーティリティのプロパティベースの命名規則は次のとおりです。
operation + [zero protection] + output data type + output bits + [input1 data] + input1 bits + [input2 data type + input2 bits] + [shift direction] + [saturate mode] + [round mode]
記載されているファイル名は、生成された固定小数点ユーティリティ ファイルの例です。ファイル内の関数名またはマクロ名は、拡張子が付いていないファイルの名前と同じです。
FIX2FIX_U12_U16.c FIX2FIX_S9_S9_SR99.c ACCUM_POS_S30_S30.h MUL_S30_S30_S16.h div_nzp_s16s32_floor.c div_s32_sat_floor.c
これらの例について、以下の表に各対応フィールドを示しています。
ACCUM_POS
の例では、出力変数を入力変数の 1 つとして使用しています。そのため、ファイルおよびマクロ名には、出力および 2 番目の入力のみが含まれます。
2 番目の div
の例では、出力と入力の両方が同じデータ型とビットになります。そのため、ファイルおよび関数名には出力のみが含まれます。
演算 | FIX2FIX | FIX2FIX | ACCUM_POS | MUL | div | div |
---|---|---|---|---|---|---|
ゼロ保護 | NULL | NULL | NULL | NULL | _nzp | NULL |
出力データ型 | _U | _S | _S | _S | _s | _s |
出力ビット | 12 | 9 | 30 | 30 | 16 | 32 |
入力データ型 | _U | _S | _S | _S [and _S] | s | NULL |
入力ビット | 16 | 9 | 30 | 30 [and 16] | 32 | NULL |
シフト方向 | NULL | SR99 | NULL | NULL | NULL | NULL |
飽和モード | NULL | NULL | NULL | NULL | NULL | _sat |
丸めモード | NULL | NULL | NULL | NULL | _floor | _floor |