Fixed-Point Designer

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

 

Fixed-Point Designer™ には、固定小数点アルゴリズムおよび浮動小数点アルゴリズムを最適化して組み込みハードウェアに実装するためのデータ型とツールが用意されています。これには、固定小数点データ型、浮動小数点データ型、およびターゲット固有の数値設定が含まれます。 Fixed-Point Designer を使用すると、ターゲットを意識したシミュレーション (固定小数点の場合、ビットトゥルー シミュレーション) を実行することができます。そして、その設計をハードウェアに実装する前に、オーバーフローや桁落ちなどの量子化の影響をテストしてデバッグできます。

Fixed-Point Designer には、倍精度アルゴリズムを解析して、単精度や半精度の浮動小数点または固定小数点に変換するためのアプリとツールが用意されています。また、最適化ツールを使用して、数値精度の要件やターゲット ハードウェアの制約を満たすデータ型を選択できます。効率的な実装にするために、計算量が多い設計構造を、圧縮ルックアップ テーブルなどのハードウェアに最適なパターンに置き換えることもできます。

C および HDL の量産コードは、固定小数点および浮動小数点に最適化されたモデルから直接生成できます。

今すぐ始める:

データ型の探索

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

固定小数点の指定

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

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

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

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

計測と可視化

モデル全体の自動計測によってシミュレーション データと統計情報を収集します。範囲データを収集して、設計を探索および解析します。可視化を使用して、ハードウェア リソースを効率的に利用するために、設計を最適化します。

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

派生範囲解析

すべてを網羅するシミュレーション テスト ベンチを作成する必要なく、設計の数学的な解析を行うことで信号範囲を導き出し、最悪の場合の範囲またはエッジケースを決定します。導き出された範囲を使用することで、あらゆる起こり得るオーバーフローを防止または処理することを確認できます。

設計範囲を使用した範囲の導出。

データ入力の自動化

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

固定小数点の量子化

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

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

浮動小数点の量子化

設計を自動的に倍精度から単精度に変換して、有限精度の浮動小数点の表現と量子化の効果を単精度で解析します。

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

データ型の最適化

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

組み込み実装

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

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

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

ビットトゥルーコードの生成

アクセラレーション、プロセッサインザループ シミュレーション、ソフトウェアインザループ シミュレーションなど、シミュレーションからコード生成まで、モデルベースデザイン全体でのビットトゥルーを実現します。ビットトゥルー表現に基づく固定小数点アルゴリズムの解析と検証を行います。半精度データ型を含む、最適化された精度のデータ型から効率的なコードを生成します。

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

HDL 最適化行列ブロック

FPGA上での ハードウェア効率の高い実装のために、QR 分解などの線形方程式およびコア行列演算の設計パターンをモデル化する Simulink ブロックの固定小数点 HDL ライブラリ[HM1] にアクセスします。HDL Coder™ を使用して、これらのブロックを組み込んだ設計の HDL コードを生成します。

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

テストとデバッグ

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

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

オーバーフロー、桁落ち、無駄な範囲や精度の発生源を素早く特定、追跡、デバッグし、理想的な浮動小数点の動作とその設計を比較します。モデルとコードのビットトゥルー一致により、開発の早期段階で問題点の検出を可能にするモデルベース デザインの多くの利点を最大限に活用できます。

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

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

アルゴリズムのエッジ ケースをテストして数値的一貫性を確保するために、境界に近い値や非正規数などの数値的に沢山の固定小数点値および浮動小数点値を生成します。さまざまな次元と複雑度を持つ信号の組み合わせを、整数型、浮動小数点型、または固定小数点型で生成します。

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

新機能

固定小数点ツールの機能強化

設計での信号範囲を調査し、データ型最適化を用いてSimulink モデルを変換

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

ルックアップテーブルの再設計と圧縮をバッチで繰り返し行い、ルックアップテーブルの最適化を並列で実行

データ型の最適化

既知のデータ型および安全マージンを追加制約として指定することを含む機能強化

技術プレビュー

Simulink で、半精度データ型の設計、シミュレーション、およびコード生成

固定小数点ライブラリ

ハードウェア効率の良い数学演算と行列演算のための Simulink ブロック ライブラリ

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