メインコンテンツ

Atan2

CORDIC 近似手法を使用して Atan2 演算を計算し、レイテンシを加味してシミュレートする

  • HDL Math Atan2 Block

ライブラリ:
HDL Coder

説明

Atan2 ブロックは、COordinate Rotation DIgital Computer (CORDIC) の近似手法を使用して、実数値の入力信号の 4 象限逆正接を実行します。詳細については、アルゴリズムの CORDIC 近似手法を参照してください。このブロックには入出力データが有効かどうかを示す制御信号があります。また、アルゴリズムの反復回数およびレイテンシ手法も指定できます。

Simulink® モデルでこのブロックを使用するには、MATLAB® コマンド ウィンドウで以下のコマンドを入力して HDLMathLib ライブラリを開きます。

open_system("HDLMathLib")

Atan2 ブロックをレイテンシを加味してシミュレートできます。詳細については、レイテンシの考慮事項を参照してください。

端子

入力

すべて展開する

y 座標のデータ。スカラーまたはベクトルとして指定します。入力信号は実数値データでなければなりません。

データ型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

x 座標のデータ。スカラーまたはベクトルとして指定します。入力信号は実数値データでなければなりません。

データ型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

入力信号が有効かどうかを示す入力制御信号。スカラーとして指定します。

データ型: Boolean

出力

すべて展開する

x 座標と y 座標の入力信号の 4 象限逆正接。スカラーまたはベクトルとして返されます。この信号は x_dataIn 信号または y_dataIn 信号の値からのベクトルと正の x 軸がなす角度です。

データ型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

出力信号が有効かどうかを示す出力制御信号。スカラーとして返されます。

データ型: Boolean

パラメーター

すべて展開する

ブロック パラメーターを対話形式で編集するには、プロパティ インスペクターを使用します。Simulink ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

CORDIC アルゴリズムの反復回数を指定します。

プログラムでの使用

ブロック パラメーター: iter
: 文字ベクトル
: Integer values
既定の設定: '11'

最小レイテンシ、最大レイテンシ、カスタム レイテンシ、ゼロ レイテンシのいずれかから、使用するレイテンシを指定します。詳細については、レイテンシ手法を参照してください。

ブロックにカスタム レイテンシを使用するには、[Latency strategy][Custom] に設定し、[Custom latency] フィールドにレイテンシ値を入力します。

反復アルゴリズムのパイプライン ステージ数を制御することもできます。反復アルゴリズムのレイテンシをカスタマイズするには、[Latency strategy][Custom(PerIteration)] に設定し、[IterationsPerPipeline] フィールドにパイプラインあたりの反復回数の値を入力します。 (R2025a 以降)

プログラムでの使用

ブロック パラメーター: latencyMode
: 文字ベクトル
: 'Max' | 'Min' | 'Custom' | 'Custom(PerIteration)' | 'Zero'
既定の設定: 'Max'

カスタム レイテンシ値を指定します。レイテンシは範囲 [0, L] の非負の整数でなければなりません。ここで、L は Atan2 ブロックの最大レイテンシ値です。詳細については、レイテンシの考慮事項を参照してください。

依存関係

このパラメーターを有効にするには、[レイテンシ手法][カスタム] に設定します。

プログラムでの使用

ブロック パラメーター: customLatencyValue
: 整数
: 0 to Max latency
既定の設定: 0

R2025a 以降

アルゴリズムの各パイプライン ステージで使用する反復回数を指定します。

依存関係

このパラメーターを有効にするには、[Latency strategy][Custom(PerIteration)] に設定します。

プログラムでの使用

ブロック パラメーター: iterationsPerPipelineValue
: 整数
: Positive integer
既定の設定: 1

アルゴリズム

すべて展開する

参照

[1] Volder, Jack E., “The CORDIC Trigonometric Computing Technique.” IRE Transactions on Electronic Computers EC-8 (1959); 330–334.

[2] Andraka, Ray “A Survey of CORDIC Algorithm for FPGA Based Computers.” Proceedings of the 1998 ACM/SIGDA Sixth International Symposium on Field Programmable Gate Arrays. Feb. 22–24 (1998): 191–200.

[3] Walther, J.S., “A Unified Algorithm for Elementary Functions,” Proceedings of the Spring Joint Computer Conference, May 18-20, 1971: 379–386.

[4] Schelin, Charles W., “Calculator Function Approximation,” The American Mathematical Monthly 90, no. 5 (1983): 317–325.

拡張機能

すべて展開する

バージョン履歴

R2020b で導入

すべて展開する