主な機能

  • MATLAB、Simulink および Stateflow における固定小数点データ型の仕様
  • 固定小数点アルゴリズムのビットトゥルーかつ高速なシミュレーション
  • 範囲データに基づく浮動小数点から固定小数点への自動変換
  • 浮動小数点と固定小数点の結果の比較
  • 固定小数点データ型の倍精度または単精度への上書き
  • C コード、HDL コードおよび PLC コードの生成をサポート
Fixed-Point Designer を使用した MATLAB、Simulink および Stateflow 用データ型とスケーリングの設定・表示。

固定小数点による仕様

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

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

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

ギャラリーを閲覧する (2 イメージ)


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

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

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

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

ギャラリーを閲覧する (2 イメージ)


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

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

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

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 の両方に基づく統合ワークフローをサポートします。

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 関数に変換することで、固定小数点アルゴリズムの実行時間を短縮できます。

関数 fiaccel を使用してデータの時間的な変化を表現できます。

コードの生成

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

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

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

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

ギャラリーを閲覧する (2 イメージ)