Fixed-Point Designer

主な機能

  • MATLAB、Simulink および Stateflow における固定小数点データ型の仕様
  • 固定小数点アルゴリズムのビットトゥルー で、高速なシミュレーション
  • 語長およびデータ型のスケーリングに関する推奨
  • 浮動小数点と固定小数点の結果の比較
  • 固定小数点データ型の倍精度または単精度への上書き
  • C コード、HDL コードおよび PLC コードの生成をサポート
Using Fixed-Point Designer to specify and view data types and scaling for MATLAB, Simulink, and Stateflow.
Fixed-Point Designer を使用した MATLAB、Simulink および Stateflow のためのデータ型およびスケーリングの指定と表示。

固定小数点による仕様

Fixed-Point Designer では、MATLAB コード、Simulink モデルおよび Stateflow チャートのすべての固定小数点プロパティを指定できます。また、符号の有無、語長、スケーリングを完全にコントロールできるほか、1 ビットから少なくとも 128 ビットまで、アプリケーションに特定の語長がサポートされています。さらに、センサーやアクチュエーターで必要とされるバイナリポイント スケーリングと、任意の勾配とバイアスのスケーリングもサポートされており、丸めやオーバーフローの処理方法など、数学演算の詳細をコントロールすることもできます。

Simulink model demonstrating the effect of limited range and precision on a signal.
スコープに表示されているように(右上)、有限のデータ範囲と精度が信号に与える影響を示す Simulink モデル。パラメーターのダイアログ ボックス (左上) では、すべての固定小数点属性を含むブロックのパラメーターを完全にコントロール可能。

Fixed-Point Designer には、固定小数点演算をサポートするために、数学演算、ビット演算、行列演算と配列演算、CORDIC 実装、三角関数などの多くの関数が用意されています。

Fixed-Point Designer では固定小数点の演算をコントロールできます。固定小数点変数では、単一の算術属性のセットを共有するか、各変数に独自の算術属性を関連付けることができます

A data-type-independent MATLAB algorithm that provides both a floating-point response and a fixed-point response.
浮動小数点による応答と固定小数点による応答の両方を提供する、データ型に依存しない MATLAB アルゴリズム。 プロットが示しているのは、データ型を 16 ビット固定小数点と倍精度浮動小数点に指定した場合のアルゴリズム出力。

ビットトゥルーの設計ワークフロー

Fixed-Point Designer は、モデルベース デザインを使用するワークフロー全体にビットトゥルーの一致性を提供します。固定小数点アルゴリズムの応答は、高速化とソフトウェアインザループを含むすべてのシミュレーションとコード生成に対してビットトゥルーに一致します。固定小数点アルゴリズムの解析と検証は、ビットトゥルーの表現に基づいています。ビットトゥルーの一致性により、モデルベース デザインの利点を最大限に活用できます。たとえば、問題点をワークフロー初期において発見できるため、簡単に修正できるほか、コストも削減できます。

Comparison of output with original baseline output using Fixed-Point Designer.
16 ビットの語長と推奨された小数部の長さを使用するデータ型の出力と、元の浮動小数点のベースライン出力の比較。両方の信号を重ねて表示 (左)。差は 10-6 程度 (右)。

Simulink モデルでは、モデルを固定小数点データ型で構成した後、パフォーマンスをシミュレーションして、固定小数点組み込みシステムにおける有限のデータ範囲と精度間の実装のトレードオフを検討できます。

Fixed-Point Designer のツールを利用して、これらの値にアクセスしたり、信号のデータ型を変更したりして、範囲がカバーされていることを確認しながら精度を最適化できます。データ型の範囲は、設計における最大値/最小値、シミュレーション結果、または導出された最大値/最小値の結果を使用して指定できます。出力データ型は、変更を防ぐためにロックできます。

Fixed-point simulation of a fuel rate control system designed using Simulink and Stateflow.
Simulink と Stateflow を使用して設計した燃料比制御装置の固定小数点シミュレーション。Fixed-Point Designer のツールでは Simulink モデルでのデータの範囲と精度のトレードオフを検討可能 (下)。

浮動小数点から固定小数点への変換

Fixed-Point Designer には、設計を浮動小数点の表現から固定小数点の表現に効率的に変換するための解析ツールが用意されています。これらのツールではデータの最小値と最大値を記録して、固定小数点演算中にオーバーフローが発生する部分を正確に特定できます。データ型の上書き機能では、固定小数点と浮動小数点の間でデータ型を切り替えて、固定小数点アルゴリズムを解析できます。この解析では、設計で使用されている変数のダイナミック レンジを確認して、アルゴリズムが浮動小数点の表現と固定小数点の表現で変わらずに動作することを確認できます。

MATLAB では、シミュレーションから最小値と最大値を収集して、データ型の自動推奨を行うことができます。計測関数では log2 ヒストグラムを生成できます。ヒストグラムは、コード内の名前付き変数と中間変数、および式に対してそれぞれ生成されます。このヒストグラムを使用して、固定小数点値の語長と小数部の長さを決定できます。

Fixed-Point Converter app showing range of proposed data type and percentage of simulation values.
固定小数点に変換した有限インパルス応答 (FIR) フィルターの MATLAB コード生成レポート。ロギング、最小値と最大値の収集、シミュレーションからのヒストグラムのプロット、自動推奨されたデータ型。

Simulink モデルでは、Communications System Toolbox™ および DSP System Toolbox™ を含むSimulink、Stateflow およびシステム ツールボックスで作成した浮動小数点の設計を、Fixed-Point Tool を使用して自動的に固定小数点の設計に変換できます。

Fixed-Point Advisor を使用した浮動小数点から固定小数点への変換
より最適化された結果を得るために、Fixed-Point Advisor に装備された自動ログ記録ツールとスケーリング ツールを利用して固定小数点データ タイプを調整します。

Fixed-Point Designer にはデバッグ機能が装備されており、モデルを浮動小数点の表現に切り替えて、設計のベンチマークの実行、モデリングエラーの特定、理想的な最小値と最大値の決定を行うことができます。

Fixed-Point Tool を使用した固定小数点の最適化
Fixed-Point Tool は、浮動小数点モデルを固定小数点モデルに変換する場合や、固定小数点データ タイプの初期スケーリングを取得する場合に使用します。

シミュレーションの高速化

Fixed-Point Designer では、MEX ファイルの生成を通じて固定小数点アルゴリズムを高速化できます。関数fiaccel を使用して MATLAB コードを MEX 関数に変換することで、固定小数点アルゴリズムの実行速度が高速化されます。

Code showing how to accelerate a numerical filter fixed-point algorithm.
関数 fiaccel を使用した数値フィルターの固定小数点アルゴリズムの高速化コード例。

コードの生成

Fixed-Point Designer を MATLAB Coder™ または Embedded Coder® とともに使用すると、固定小数点の MATLAB コードから純粋な整数 C コードを生成できます。

Fixed-point MATLAB code for a FIR filter and efficient C code generated using MATLAB Coder with Fixed-Point Designer.
FIR フィルターの固定小数点 MATLAB コード (上) と、MATLAB Coder と Fixed-Point Designer を使用して生成した効率的な C コード (下)。

Fixed-Point Designer を Simulink Coder™ または Embedded Coder とともに使用すると、固定小数点の Simulink モデルおよび Stateflow チャートから純粋な整数 C コードを生成できます。

Model incorporating wide integer and fixed-point operations and generated multiword C code.
長整数型と固定小数点の演算を取り入れたモデル (上) と、生成されたマルチワード C コード (下)。 ※マルチワード コードは通常、C よりも大きなデータ型のパラメーターまたは信号を用いた際に使用されます。

生成されたコードは、シミュレーションと同じ動作をするようにモデルとビットトゥルーで一致します。生成したコードは、スケーリングの調整、丸め、高度な固定小数点演算などのすべての固定小数点設計が反映されます。また、ワード サイズが 1 ~ 128 ビットの信号およびパラメーターのためのコードを生成できます。生成したコードは、高速シミュレーション、ラピッド プロトタイピング、量産実装など、さまざまなアプリケーションに使用できます。

Fixed-Point Designer を HDL Coder™ とともに使用すると、固定小数点の MATLAB コード、Simulink モデルおよび Stateflow チャートからビットトゥルーの合成可能な Verilog® コードおよび VHDL® コードを生成できます。

製品評価版の入手
または製品の購入

FPGA/ASIC開発期間を短縮するHDLコード生成と検証

Web セミナーを表示する