Fixed-Point Designer

固定小数点アルゴリズムと浮動小数点アルゴリズムをモデル化して最適化

 

Fixed-Point Designer™ には、固定小数点および単精度アルゴリズムを開発し、組み込みハードウェアの最適なパフォーマンスを実現するためのデータ型とツールが用意されています。設計の解析を行い、推奨の語長やスケーリング等のデータ型や属性を提示します。丸めモードやオーバーフロー アクションなどの詳細なデータ属性を指定したり、単精度データと固定小数点データを混合したりすることができます。ビット精度のシミュレーションを実行することで、ハードウェアにデザインを実装することなく、限られたデータ範囲と精度において、その影響を確認できます。

Fixed-Point Designer では倍精度アルゴリズムを単精度または固定小数点に変換できます。また、数値精度の要件やターゲット ハードウェアの制限を満たすデータ型を設定して最適化できます。数学的解析またはシミュレーションの計測によって、設計における範囲要件を判断することができます。また、データ変換プロセスをガイドし、固定小数点の結果を浮動小数点のベースラインと比較するためのアプリとツールを提供します。

Fixed-Point Designerは C コード、HDL コードおよび PLC コードの生成をサポートしています。

詳細を見る:

データ型の探索

浮動小数点データ型と固定小数点データ型を調査して、数値精度に関するトレードオフを解析します。

固定小数点による仕様

アプリケーション別の語長、2 進小数点スケーリング、任意の勾配とバイアスのスケーリング、丸めモードやオーバーフローモードなどの詳細な設定を行い、デザインの固定小数点プロパティを指定します。

丸めモードなど、固定小数点データ型とそのすべてのプロパティを指定します。

浮動小数点シミュレーション

シミュレーションおよびコード生成で、flush-to-zero など、非正規の浮動小数点数に関するターゲット ハードウェアの動作をエミュレートします。MATLAB® で 16ビット 半精度浮動小数点データ型を使用して、限られた精度を持つ浮動小数点をシミュレーションします。

単精度のシミュレーションと倍精度のベースラインの比較。

計測と可視化

モデル全体の自動計測によってシミュレーション データと統計を収集します。可視化を使用して、デザインの探索および解析を行います。

信号範囲とヒストグラムデータの可視化

派生範囲の解析

デザインを数学的な解析を行うことで信号範囲を派生させ、すべてを網羅するシミュレーション テスト ベンチを作成することなく、最悪の場合の範囲またはエッジケースを決定します。派生範囲を使用することで、あらゆるオーバーフローの可能性を確実に防いだり、対処したりすることができるようになります。

設計範囲を使用した範囲の派生。

データ入力の自動化

固定小数点データ型と浮動小数点データ型を使用してデザインを量子化し、最適化します。

固定小数点の量子化

ガイド付きワークフローを使用して、さまざまな固定小数点データ型を調査し、それらがシステムの数値動作に与える量子化の影響を調査します。デザイン内の変数のダイナミックレンジを確認して、変換後のアルゴリズムが浮動小数点の表現と固定小数点の表現で変わらずに動作することを確認します。

固定小数点ツールを使用した浮動小数点モデルの変換。

浮動小数点の量子化

デザインを自動的に倍精度から単精度に変換して、限られた精度を持つ浮動小数点の表現と量子化の効果を単精度で解析します。

単精度コンバーターを使用した自動変換

データ型の最適化

システムの数値動作に関する許容誤差の制約を満たしながら、さまざまな固定小数点の設定を自動的に繰り返し実行して、最適な異種のデータ型を選択します。最適化では、固定小数点データ型を使用して合計ビット幅を最小化し、デザインの効率化を図ります。

組み込み実装

実装のトレードオフを調査し、効率的な組み込みアルゴリズムを使用してデザインを最適化します。

関数近似とルックアップテーブルの圧縮

最適なルックアップテーブルを使用して、sqrt、exp、複雑なサブシステムなど、複雑な関数の近似値を数学的に計算します。データポイントとデータ型を削減することで、既存のルックアップテーブルのメモリ使用量を圧縮します。

ビット精度コードの生成

アクセラレーション、プロセッサインザループ シミュレーション、ソフトウェアインザループ シミュレーションなど、シミュレーションからコード生成まで、モデルベースデザイン全体でのビット精度を実現します。固定小数点アルゴリズムの解析と検証は、ビット精度の表現に基づいています。

シミュレーターで生成されたコードのビットトゥルーの動作の検証。

HDL 最適化行列ブロック

FPGA のハードウェア効率の高い実装のために、QR 分解などの 1 次方程式およびコア行列演算のシステムに対する設計パターンをモデル化する Simulink® ブロック。

QR 分解に対する HDL 最適化設計パターンを提供するライブラリブロック。 

テストとデバッグ

アルゴリズムの数値動作を解析、テスト、デバッグします。

オーバーフローおよび桁落ちの検出

オーバーフロー、桁落ち、無駄な範囲または精度の発生源を素早く特定、追跡、デバッグして、理想的な浮動小数点の動作と比較します。ビット精度の一致性により、問題点をワークフロー初期において発見するなど、モデルベース デザインの多くの利点を最大限に活用できます。

オーバーフローの根本原因の追跡。

数値エッジケースをテスト

アルゴリズムの数値的一貫性のために、数値的に豊かな固定小数点値および浮動小数点値を生成し、境界に近い値や非正規数などのエッジケースをテストします。変化する次元や実数/複素数、整数、浮動小数点、固定小数点データタイプの信号の組み合わせを生成します。 

データ ジェネレーター API によるテストデータの生成。

新機能

固定小数点ツール

固定小数点ツールで複数のシミュレーション シナリオに基づいてデータ型を提案

復元点

モデルを元の構造に復元

ルックアップテーブルの最適化

最適化されたルックアップテーブルで曲線外のテーブル値を許可

データ型の最適化

データ型の最適化のための複数シミュレーション シナリオを指定

精度制限機械学習

学習済み SVM モデルの固定小数点 C/C++ コードを量子化して生成

ビットパターンのテスト

シミュレーション入力を生成し、設計の全動作ビット範囲をテスト

半精度データ型

MATLAB で半精度システムを設計してシミュレーション

これらの機能および対応する関数の詳細については、リリースノートを参照してください。

無料評価版を入手する

30 日間の無料評価版はこちら

今すぐダウンロード

あなたは学生ですか?

MATLAB および Simulink 学生向けソフトウェアの入手

詳細を見る