Main Content

固定小数点関数の共有ユーティリティ コードの生成

モデルのビルドで共有ユーティリティ フォルダーに配置される重要な一連の生成関数は、固定小数点サポートの関数です。モデルおよびブロック プロパティに基づいて、固定小数点ユーティリティ関数には有効なバージョンが多数あり、そこで静的ファイルの完全なセットを提供することは現実的ではありません。コード生成プロセス中は、必要な固定小数点ユーティリティ関数のみを生成すると効率的です。

共有ユーティリティ チェックサム メカニズムは、いくつかの重要なプロパティが共有ユーティリティを使用するモデルと同一であることを保証します。固定小数点関数には、関数の動作を決定する追加のプロパティがあります。このメカニズムでは、これらのプロパティが要件を保持するために関数とファイル名にコード化されます。追加のプロパティには、以下が含まれます。

カテゴリ関数/プロパティ
ブロック プロパティ
  • ブロックが実行する固定小数点演算

  • 関数の入力と出力の固定小数点データ型およびスケーリング ([勾配][バイアス])

  • オーバーフロー処理モード ([飽和][ラップ])

  • 丸めモード ([負方向][正方向][ゼロ方向])

モデル プロパティ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 の例では、出力と入力の両方が同じデータ型とビットになります。そのため、ファイルおよび関数名には出力のみが含まれます。

演算FIX2FIXFIX2FIXACCUM_POSMULdivdiv
ゼロ保護NULLNULLNULLNULL_nzpNULL
出力データ型 _U_S_S_S_s_s
出力ビット 12930301632
入力データ型 _U_S_S_S [and _S] sNULL
入力ビット 1693030 [and 16]32NULL
シフト方向 NULL SR99NULLNULLNULLNULL
飽和モード NULLNULLNULLNULLNULL_sat
丸めモードNULLNULLNULLNULL_floor_floor

関連するトピック