このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Sin
制御信号ベースの正弦関数を実装する
説明
![]()
Sin ブロックは入力信号の正弦を計算します。このブロックは COordinate Rotation DIgital Computer (CORDIC) の近似手法を使用します。詳細については、アルゴリズムの CORDIC 近似手法を参照してください。このブロックには入出力データが有効かどうかを示す制御信号があります。また、アルゴリズムの反復回数およびレイテンシ手法も指定できます。
Simulink® モデルでこのブロックを使用するには、MATLAB® コマンド ウィンドウで以下のコマンドを入力して HDLMathLib ライブラリを開きます。
open_system('HDLMathLib')レイテンシの考慮事項
Sin ブロックをレイテンシを加味してシミュレートできます。このブロックは、MATLAB Function ブロック LumpLatency を含むマスク サブシステムです。このサブシステムはこの MATLAB Function ブロックを使用して、[反復回数] に基づいてレイテンシを計算します。ブロックのレイテンシを計算する関数を表示するには、マスク サブシステムの LumpLatency ブロックを開きます。マスク内を表示するには、ブロックの ⇩ アイコンをクリックします。
Sin ブロックの最大レイテンシ LMax は、以下の方程式によって計算されます。
LMax = N + 1
ここで、N は [反復回数] パラメーターの値です。
[反復回数] が 2 以下の場合、Sin ブロックの最小レイテンシ LMin は 2 です。反復回数が 2 より大きい場合、最小レイテンシは、以下の方程式によって計算されます。
LMin = 2 + ceil((N -1) / 3)
このブロックでは 4 つのレイテンシ モードがサポートされています。[レイテンシ手法] パラメーターを [カスタム] に設定して、カスタム レイテンシ値を指定できます。詳細については、Custom latencyを参照してください。
例
制限
このブロックには以下の制限があります。
half、single、doubleなどの浮動小数点データ型はサポートされない。Synchronous Subsystem では使用できない。
リソース共有最適化はサポートされない。
端子
入力
出力
パラメーター
ヒント
このブロックでは、HDL Coder™ を使用した HDL コード生成がサポートされています。HDL Coder には、HDL の実装および合成されたロジックに影響する追加の構成オプションがあります。詳細については、HDL ブロック プロパティを参照してください。
アルゴリズム
参照
[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 で導入