Accelerating the pace of engineering and science

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 ビット以上まで、アプリケーションに固有の語長がサポートされています。 さらに、センサーやアクチュエーターで必要とされる2進小数スケーリングと、任意の勾配とバイアスのスケーリングもサポートされており、 丸めやオーバーフローの処理方法など、数学演算の詳細をコントロールすることもできます。

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

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

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

A data-type-independent FIR filter algorithm in MATLAB.
浮動小数点による応答と固定小数点による応答の両方を提供する、データ型に依存しない MATLAB の FIR フィルター アルゴリズム。 プロットは、元の浮動小数点のベースラインの出力信号と、16 ビットの語長と推奨された小数部の長さを使用するデータ型で実装されたアルゴリズムの出力信号の比較を示しています。 両方の信号が重ねて表示されています (左)。差は 10-6 程度です (右)。 (例を参照)

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

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

Using the Simulation Data Inspector to compare floating-point simulation to fixed-point simulation.
シミュレーション データ インスペクターを使用した、浮動小数点のシミュレーション結果と固定小数点のシミュレーション結果の比較。 (例を参照)

設計を固定小数点データ型で行ってから性能をシミュレーションすることにより、固定小数点組み込みシステムに対する有限のデータ範囲と精度に関する実装トレードオフを検討できます。

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

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

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

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

MATLAB では、固定小数点コンバーター アプリを使用して、シミュレーションまたは範囲解析から最小値と最大値を収集し、データ型の自動推奨を行うことができます。 ヒストグラムは、コード内の名前付き変数と中間変数および式に対してそれぞれ生成されます。 このヒストグラムを使用して、固定小数点変数の語長と小数部の長さを最適化できます。 固定小数点コンバーター アプリを使用すると、固定小数点変換でサポートされていない関数をa href="/help/fixedpoint/ug/replace-the-exp-function-with-a-lookup-table.html">ルックアップ テーブル近似関数に置き換えることができます。

Fixed-Point Converter app showing range of proposed data type and percentage of simulation values.
固定小数点コンバーター アプリを用いて、自動推奨されたデータ型範囲がシミュレーション結果をどれぐらいカバーするかを示すヒストグラムを作成できます。 このアプリを使用して、ロギング、最小値と最大値の収集、シミュレーションからのヒストグラムのプロット、データ型の自動推奨を実行できます。

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

浮動小数点から固定小数点への変換に対する波及範囲解析
Fixed-Point Designer の Fixed-Point Tool では、シミュレーションを実行して範囲情報をロギングするか、波及範囲解析を行うことで範囲データを収集できます。このビデオでは、Fixed-Point Tool でモデルの個々の計算の範囲を静的に解析する波及範囲解析について説明しています。

Fixed-Point Designer にはデバッグ機能が装備されており、モデルを浮動小数点の表現に切り替えて、設計のベンチマークの実行、モデリング エラーの特定、理想的な最小値と最大値の決定を行うことができます。 Fixed-Point Designer では、MATLAB または Simulink に基づくワークフローのほか、MATLAB Function ブロックを使用した MATLAB と Simulink の両方に基づく統合ワークフローをサポートします。

Fixed-Point Conversion of MATLAB Function Blocks in Simulink
Collect and display simulation ranges for variables inside a MATLAB® Function block using the Fixed-Point Tool. Use this simulation range analysis to propose data types for the variables based on the simulation data

Fixed-Point Tool を使用して、MATLAB Function ブロック内の変数の範囲を収集および表示し、その範囲情報に基づいて変数のデータ型の自動推奨を行います。

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

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

Code showing how to accelerate a numerical filter fixed-point algorithm.
関数 fiaccel を使用してデータの時間的な変化を表現できます。

コードの生成

Fixed-Point Designer を MATLAB Coder™ または EEmbedded Coder® と共に使用すると、固定小数点の MATLAB コードから純粋な整数 C コードを生成できます。生成された HTML レポートで、潜在的なデータ型の問題を特定できます。このレポートでは、単精度、倍精度または高コストの固定小数点演算を必要とする MATLAB コードが強調表示されます。

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® コードを生成できます。

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

制御モデルを活用した量産/組み込みソフト開発ソリューション

Web セミナーを表示する