主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

固定小数点の自动変换

固定小数点への自動変換機能

浮动小数点のMATLAB®コードを固定小数点コードに変換するには,固定小数点コンバーターアプリを使用するか,コマンドラインで関数fiaccel-float2fixedオプションを使用します。シミュレーション範囲データまたは派生(静的とも呼ばれる)範囲データのいずれかまたは両方に基づいてデータ型を推奨するよう選択できます。

静的範囲を手動で入力できます。手動で入力された範囲はシミュレーション範囲より優先され,アプリはデータ型を推奨する際にこれらの範囲を使用します。さらに,アプリによって変更されないように推奨型を変更してロックすることができます。詳細は,推奨されたデータ型のロックを参照してください。

サポートされているMATLABの機能と関数のリストは,固定小数点の自动変换でサポートされるMATLAB言语机能を参照してください。

固定小数点の変換では,以下を実行できます。

  • コードカバレッジの结果により,テストファイルが目的のアルゴリズムの动作范囲のすべてに対応していることを确认。

  • 既定既定语长に基于小小数部の长さのの推奨。

  • 既定の小数部の長さに基づいた語長の推奨。

  • 0または正の分数のの化。

  • シミュレーションの最小値/最大値データに対する安全余裕の指定。

  • 推奨されたデータ型でプロジェクトをビルドできるかどうかの検証。

  • 固定小数点型を适用してテストファイルを実行し,数値をテスト。

  • 各変数で使用されるビットのヒストグラムの表示。

  • オーバーフローの検出。

コードカバレッジ

既定では,アプリはコードカバレッジ结果を表示します。テストファイルは,シミュレーション范囲が正确になるよう,动作范囲全体に対してアルゴリズムを実行しなければなりません。推奨される固定小数点データ型の性质は,テストファイルが适切な精度でアルゴリズムの动作范囲をどの程度カバーしているかによって决まります。

コードカバレッジの结果を确认すると,テストファイルがアルゴリズムを适切に実行しているか検证できます。コードカバレッジが适切でない场合,テストファイルを変更するか,テストファイルを追加してカバレッジを大きくします0.1回の実行で复数のテストファイルをシミュレートすると,累积カバレッジが表示されます。一方,复数のテストファイルを指定して1つずつ実行すると,最后に実行したファイルのカバレッジが表示されます。

コードの左侧に色色れたカバレッジががれれれます。

次の表では色分けを説明します。

カバレッジバーの色 意味
绿

以下のいずれかに该当します。

  • エントリポイント关节,コードが1回超えささささささ実実実実実実実実

  • エントリエントリ关节1回実行さ,コードが1回実行。

さまざまな緑の色調は,行の実行回数の各範囲を示しています。最も濃い緑の色調は,最大の範囲を示しています。

オレンジ エントリポイント关数が复数回実行され,コードが1回実行される。
コードが行行されない。

カバレッジバーの上にカーソルを置くと,色の强调表示がコード上に拡大されます。コードの各セクションにそのセクションの実行回数が表示されます。

テストファイルが目的の動作範囲全体でアルゴリズムをテストしていることを検証するには,コードカバレッジの結果を確認します。

カバレッジバーの色 作业
绿 コードのセクションがカバレッジの表示よりも频繁に実行されることを想定する场合,MATLABコードまたはテストファイルを変更します。
オレンジ これは初期化コード(永続変数の初期化など)の想定された动作です。コードが1回を超えて実行されることを想定する场合,MATLABコードまたはテストファイルを変更します。
レッド 実行されないコードがエラー条件である场合,これは许容できる动作です。コードが実行されることを想定する场合,MATLABコードまたはテストファイルを変更します。コードが保守的に作成されていて上限と下限があり,テストファイルを変更してもこのコードにアクセスできない场合は,静的最小値と静的最大値を追加します。派生范囲の计算を参照してください。

既定の设定では,コードカバレッジはオンです。テストファイルのカバレッジが适切であると确认できた场合のみオフにしてください。コードカバレッジをオフにするとシミュレーションの速度が向上します。コードカバレッジをオフにするには,[固定小数点に変换]ページで,次の操作を実行します。

  1. [解析]矢印をクリックします。

  2. [コードカバレッジを表示]チェックボックスをオフにします。

データ型の推奨

アプリは,计算された范囲,语长または小数部のさのに基因て小数点データ型を推奨ますますます范囲とと派派ます范囲データいずれいずれいずれかまたはまたは方向基因て计算されます。シミュレーションを実行し派生物范囲を计算た场场场场マージ范囲と派生物

メモ

MATLABクラスには,派生范囲に基づいてデータ型を推奨することはできません。

派生範囲の解析は非スカラー変数ではサポートされていません。

静的范囲を手动で入力できます。手动で入力された范囲はシミュレーション范囲より优先され,アプリはデータ型を推奨する际にこれらの范囲を使用します。推奨された型を変更し,ツールによって変更されないようにロックすることもできます。详细は,推奨されたデータ型のロックを参照してください。

シミュレーションシミュレーション実行

固定小数点の変換中,エントリポイントMATLABファイル用にインストルメント化された墨西哥人関数がアプリによって生成されます。エラーが発生せずにビルドが完了すると,アプリによりコード内の関数と変数のコンパイルされた情報(型,サイズおよび実数/複素数)が表示されます。ローカル関数に移動するには,[关数]タブをクリックします。ビルドエラーが発生すると,ビルドの問題が発生したコード行へのリンクを示すエラーメッセージが表示されます。シミュレーションを実行する前にこれらのエラーに対処しなければなりません。MATLABエディターでリンクを使用して問題のコード行に移動し、コードを変更して問題を修正します。固定小数点変換でサポートされない関数がコードに使用されている場合、それらが[关键词]タブに表示されます。関数の置換を参照してください。

シミュレーションを実行する前に,実行するテストファイル(复数可)を指定します。シミュレーションを実行すると,アプリはテストファイルを実行し,インストルメント化された墨西哥人関数を呼び出します。MATLABの設計コードを変更した場合,アプリはテストファイルを実行する前に更新されたMEX关数を自动的に生成します。

テストファイルが正常に実行された场合,シミュレーションの最小値と最大値および推奨された型が[変数]タブに表示されます。手动で変数の静的范囲を入力する场合,手动で入力した范囲がシミュレーション范囲より优先されます。推奨された型を手动で入力するかヒストグラムを使用して変更すると,アプリによって変更されないようにデータ型がロックされます。

テストファイルが正常に実行されなかった场合,エラーが[出力]タブに表示されます。

テストファイルによってアルゴリズムが動作範囲全体にわたって実行されなければなりません。推奨される固定小数点データ型の品質は,テストファイルが适切な精度でアルゴリズムの动作范囲をどの程度カバーしているかによって决まります。テストファイルを追加して,シミュレーション中に1つを超えるテストファイルを選択して実行できます。複数のテストファイルを実行する場合,シミュレーションの結果はアプリによってマージされます。

オプションで,ヒストグラムのデータを記録するよう選択できます。シミュレーションの実行後,各変数のヒストグラムを表示できます。詳細は,ヒストグラムのデータの記録を参照してください。

派生范囲の计算

派生範囲に基づいてデータ型を推奨すると,動作範囲全体にわたってアルゴリズムを実行するテストファイルを提供する必要がないというメリットがあります。一般に,このようなテストファイルの実行には時間がかかります。アプリでは,スカラー変数のみについて派生範囲を計算できます。

派生範囲を計算し,これらの範囲に基づいてデータ型を推奨するには,すべての入力変数に対して,静的最小値と最大値または推奨データ型を指定します。解析結果を向上させるために,他の変数にはできるだけ多くの静的範囲情報を入力してください。範囲を手動で入力するか,シミュレーション範囲をプロモートして静的範囲として使用できます。手動で入力した静的範囲は常にシミュレーション範囲より優先されます。

ハードウェアターゲットの使用するデータ型が既知の場合,この型と一致するように推奨されるデータ型を設定します。手動で入力されたデータ型は,アプリで変更されないようにロックされます。アプリはこれらのデータ型を使用して入力の最小値と最大値を計算し、他の変数の範囲を派生させます。詳細は、推奨されたデータ型のロックを参照してください。

[派生范囲の计算]を選択した場合,アプリは派生範囲の解析を実行してMATLABアルゴリズムの変数の静的範囲を計算します。解析が完了すると,[変数]タブに静的范囲が表示されます。実行により,派生范囲として+/- INF.が作成された场合は,すべての永続変数の范囲を定义することを検讨してください。

オプションで,(派生範囲のクイック解析]を選択できます。このオプションを使用すると,アプリはより高速に静的解析を実行します。計算された範囲は必要以上に大きい場合があります。このオプションは,静的解析に時間がかかりすぎる場合に選択してください。

プロジェクトの派生范囲にがかかっているは,オプションでタイムアウト设定设定でき。タイムアウト时间にに达するとは解析を中间しします。

推奨されたデータ型のロック

推奨されたデータ型をロックすることで,アプリによる変更を防げます。次のいずれかの方法で行います。

  • アプリで,推奨データ型を手设定。

  • ツールによって推奨された型を右クリックして[计算値をロック]を選択。

ロックされたデータ型は識別しやすいように太字で表示されます。以下のいずれかの方法で型のロックを解除できます。

  • 手動で上書き。

  • 右クリックして[変更を元に戻す]を选択。この场合,选択された型のみロックが解除されます。

  • 右クリックして[すべての変数の変更を元に戻す]を選択。これにより,ロックされているすべての推奨されたデータ型のロックが解除されます。

关数の表示

固定小数点変换プロセスの[固定小数点に変换]のステップでは,プロジェクトの关数のリストを左ペインで表示できます。このリストには关数の特殊化とクラスメソッドも含まれます。リストから关数を选択すると,その关数またはクラスメソッドのMATLABコードがコードウィンドウに表示され,使用する変数が[変数]タブに表示されます。

変换后,左侧のペインに,元のアルゴリズムの固定小数点バージョンを含むれファイルのリスト表示されますのがも表示ますますいないないさ场ない场场场场场小はははははははははははははははははははははははははははははははははははははははははははははははははははははははファイルははははファイルははははははははははははははははははははははははははははははははははははははははははファイル名はははははははははははははははははははははははははははははははははははははははははははファイルははははははははははファイルはははははファイルははははファイルははははファイルはははたとえば,固定小数点点を示す接尾辞を付けたものなりなりなりなりなりなりなりなり。ex_2ndOrder_filter.mの固定小数点バージョンはex_2ndOrder_filter_fixpt.mです。

クラス

アプリでは,クラスとそのメソッドのそれぞれについての情報が表示されます。たとえば,静的メソッドMAX_VALUEとメソッド下一个をもつクラス柜台ををます。

クラスを选択する场合,[変数]タブにクラスとそのプロパティがアプリによって表示されます。

メソッドを选択する场合,メソッドによって使用される変数のみがアプリによって表示されます。

特殊化

关数が特殊化されている场合,アプリは特殊化をそれぞれリストし,顺番に番号を付けます。たとえば,サブ关数Fooおよび酒吧を异なる入力の型を使用して复数回呼び出す关数dutををます。

功能Y = DUT(U,V)= TT1 FOO(U);TT2 = FOO([U,V,]);TT3 = FOO(复合物(U,V));SS1 =巴(U);SS2 =巴([U,V,]);SS3 =巴(复合物(U,V));Y =(TT1 + SS1)+ SUM(TT2 + SS2)+实(TT3)+实(SS3);结尾功能y = foo(u)y = u * 2;结尾功能Y =巴(U)Y = U * 4;结尾

最上位の关数を选択する场合,アプリは[変数]タブにすべての変数を表示します。

ツリーツリーを选択する综合,アプリは各特性化学へ呼び出しの行。

特殊化の1つを選択すると,その特殊化が使用する変数だけが表示されます。

生成された固定小数点コードでは,固定小数点の各特殊化の番号が[ソースコード]リストにある番号に一致しているので,コードの浮动小数点バージョンと固定小数点バージョンを简単に比较できます。たとえば,FOO> 1に対して生成される固定小数点関数にはfoo_s1という名前が付きます。

変数の表示

[変数]タブには[ナビゲーション]ペインで选択した关数の各変数に关する以下の情报が表示されます。

  • [型]- MATLABアルゴリズムで使用される変数の元のデータ型。

  • [シミュレーションの最小値)[シミュレーションシミュレーションの大値]——シミュレーション中に変数に代入される最小値と最大値。

    シミュレーションの最小値と最大値は編集できます。編集されたフィールドは太字で表示されます。これらのフィールドを編集しても静的な範囲解析は開始されませんが,その後の解析では編集された値が使用されます。アプリによって推奨された型に戻すことができます。

  • [静的最小値][静的最大値]- 静的最小値と最大値。

    派生範囲を計算し,これらに基づいてデータ型を推奨するには,すべての入力変数に静的最小値および最大値を指定します。解析結果を向上させるために,他の変数にはできるだけ多くの静的範囲情報を入力してください。

    派生範囲の計算時,アプリは静的解析を実行してコード内の変数の静的範囲を計算します。解析が完了すると静的範囲が表示されます。計算結果は編集できます。編集されたフィールドは太字で表示されます。これらのフィールドを編集しても静的な範囲解析は開始されませんが,その後の解析では編集された値が使用されます。アプリによって推奨された型に戻すことができます。

  • [0または正の整数]- シミュレーション中に変数に代入される値がすべて整数かどうか。

    アプリは変数が常に0または正の整数であるかどうかを判定します。このフィールドは変更できます。編集されたフィールドは太字で表示されます。これらのフィールドを編集しても静的な範囲解析は開始されませんが,その後の解析では編集された値が使用されます。アプリによって推奨された型に戻すことができます。

  • 指定された語長(または小数部の長さ)の推奨された固定小数点データ型。推奨されたデータ型ではnumerictype.表记が使用されます。たとえば,numerictype(1,16,12)は語長が16で小数部の長さが12の符号付き固定小数点型を表します。Numerictype(0,16,12)は语长が16で小数部の长が12のの号なし固定小数点型を表し。

    アプリはデータ型を式に適用しないので,式に対する推奨型は表示されません。代わりに,元のデータ型が表示されます。

コードペインでカーソルを変数名に移動させて,変数の情報を表示および編集することもできます。

Ctrl + F.キーを使用してMATLABコード内および[変数]タブ上で変数を検索できます。アプリによってコード内の出现场所が强调表示され,[変数]タブ上に指定された名称で変数のみが表示されます。

MATLABクラスの情報の表示

アプリによって以下が表示されます。

  • MATLABクラスのコードおよびクラスメソッドのコードカバレッジ(コードウィンドウ内)。[固定小数点に変换]ページの[ソースコード]リストを使用して表示するクラスまたはクラスメソッドを选択します。クラスメソッドを选択する场合,アプリはコードウィンドウでメソッドを强调表示します。

  • matlabクラスについての情[変数]タブ内)。

ヒストグラムのデータの記録

ヒストグラムのデータを记录するには,次の手顺に従います。

  • [固定小数点に変换]ページで[解析]矢印をクリックします。

  • [ヒストグラムデータを记录]を选択します。

  • [范囲の解析]をクリックします。

シミュレーションの終了後に変数のヒストグラムを表示するには,[変数]タブで,その変数の[推奨された型]フィールドをクリックします。

ヒストグラムは,推奨されるデータ型および推奨されるデータ型がカバーするシミュレーション値の割合を示します。ビットの重みがX軸出現割合がY軸に沿って表示されます。ヒストグラムの各ビンはバイナリワード中のビットに対応しています。たとえば,このヒストグラムではnumerictype(1,16,14)型の変数の范囲を表示します。

以下の操作により,推奨されるデータ型の変更による影响を表示することもできます。

  • ヒストグラムウィンドウ内で境界ボックスの端をドラッグして,推奨されるデータ型を変更。

  • [符号付き]を选択または选択解除。

自动変换変换によって推奨された型に戻すために,ヒストグラムヒストグラムウィンドウ内をクリックします。

関数の置換

MATLABコードで固定小数点に対応していない关数を使用している场合,これらの关数が[关键词]タブに一覧表示されます。サポートされていない关数を,カスタム关数とルックアップテーブルのどちらに置き换えるかを指定できます。

このリストから关数の置换を追加したり削除したりできます。关数に対して关数の置换を入力すると,プロジェクトの作成时に置换关数が使用されます。置换を入力しない场合,关数には元のMATLABコード内で指定された型が使用されます。

メモ

このテーブルを使用して関数名を置換することが可能ですが,引数パターンを置換することはできません。

コード生成の準備状態のスクリーニングが無効になっている場合,[关键词]タブでサポートされていない关数が不完全または正しくならない场合があります。この场合,手动で关数を追加します。を参照してください。

型の検証

コードを固定小数点に変换すると,推奨される固定小数点データ型を使用してビルドが検证されます。検证に合格すると,固定小数点型MATLABアルゴリズムの数値的な动作のテストの准备が整います。

検証時にエラーまたは警告が発生した場合は,[出力]タブに表示されます。エラーまたは警告が発生した場合,以下を行ってください。

  • [変数]タブで,推奨される型および手作業で修正した型を確認し,それらが有効であることを検証します。

  • [关键词]タブで,サポートされていない関数に対して関数の置換を行ったことを確認します。

数値のテスト

固定小数点へのコードの変换と推奨される固定小数点データ型の検证の后,[テスト]をクリックし,固定小数点MATLABアルゴリズムの動作を検証します。既定では,テストファイルを追加して入力を定義した場合またはシミュレーションを実行した場合は,アプリはこのテストファイルを使用して数値をテストします。オプションで,テストファイルを追加し,1つを超えるテストファイルを選択して実行することもできます。アプリは生成された固定小数点MATLABコードを元の浮动小数点MATLABコードの数値的な动作と比较します。比较プロットの入力と出力を记录するように选択した场合は,アプリは各スカラー出力の追加プロットを生成します。このプロットは浮动小数点と固定小数点の结果およびこれらの差を示します。非スカラー出力についてはエラー情报のみを示します。

固定小数点シミュレーション後に数値的な結果が所要の精度を満たさない場合は,固定小数点データ型の設定を修正し,型の検証と数値的なテストの手順を繰り返します。必要な結果を得るには,これらのステップを複数回繰り返す必要がある場合があります。

オーバーフローの検出

数値のテストを行う场合,[スケーリングされた双を使用してオーバーフローを検出)を选択するとオーバーの検出ががになりますオプションオプション选択さてている场场変换アプリは推奨された固定点型ののスケーリングれたバージョンを用ししてシミュレーションををしししししししししししししたししししたたたたたたたたたたたは,倍精选驾驶小数点データデータを格式する,演算を全全で実します,固定小数设定も保持ため,计算が固定小数点型范囲范囲范囲た场にに范囲するた场。詳細は,スケーリングされた双を参照してください。

アプリによってオーバーフローが検出された场合,[オーバーフロー]タブタブに次がが表示されれ

  • オーバーフローした変数と式のリスト

  • 各変数のオーバーフローの量に关する情报

  • コードウィンドウ内の変数または式へのリンク

元のアルゴリズムがスケーリングされた双を使用している场合,それらの式のオーバーフロー情报もアプリによって提供されます。

参考

オーバーフローの検出