HDL コード アドバイザー チェック
HDL コード アドバイザーおよび HDL Coder™ のモデル アドバイザー チェックを使用して、HDL コード生成との互換性について Simulink® モデルまたはサブシステムを検証および更新します。コード アドバイザーでは、次に対するチェックを実行します。
モデル コンフィギュレーション設定
端子とサブシステム
ブロックとブロック設定
ネイティブ浮動小数点のサポート
業界標準のガイドライン
チェックを実行すると、コード アドバイザーは結果をパスまたはエラーで表示します。モデル アドバイザーの推奨設定を使用して、警告またはエラーを修正できます。
モデル コンフィギュレーションのチェック
HDL コード生成との互換性についてモデルを準備するために、このフォルダーのチェックを使用します。このフォルダーには、モデルのパラメーターが HDL 互換か、設計に代数ループが含まれているかなどについて確認するチェックが含まれています。
チェック名 | 説明 |
---|---|
HDL コード生成用のモデル パラメーター設定をチェックします。 | |
Xilinx デバイスと Altera デバイスのグローバル リセット設定をチェック | Altera® デバイスに対する非同期リセット設定と、Xilinx® デバイスに対する同期リセット設定をチェックします。 |
インライン コンフィギュレーション設定のチェック | InlineConfigurations を有効にしているかどうかをチェックします。 |
代数ループをチェック | 代数ループについてモデルをチェックします。 |
可視化設定のチェック | モデルの表示設定 (端子のデータ型とサンプル時間の色分け) をチェックします。 |
遅延の均衡化の設定をチェック | [遅延の均衡化] が有効になっているかチェックします。 |
端子とサブシステムのチェック
このフォルダーには、モデル内の端子とサブシステムが HDL コード生成と互換性のある設定であるかどうかを確認するチェックが含まれています。このチェックには、有効な最上位レベルの DUT サブシステムがあるかどうか、Enabled Subsystem ブロックおよび Triggered Subsystem ブロックの初期条件が指定されているかどうかについての確認が含まれます。
チェック名 | 説明 |
---|---|
無効な最上位サブシステムをチェック | HDL コード生成で最上位に配置できないサブシステムをチェックします。 |
ブロックおよびブロック設定をチェック
これらのチェックは、モデル内のブロックが HDL コード生成をサポートしているか、そのブロックが HDL 互換の設定であるかを確認します。このチェックには、モデル内のソース ブロックに連続サンプル時間が含まれているかどうか、Stateflow® チャートおよび MATLAB Function ブロックが HDL 互換の設定であるかどうかなどの確認が含まれています。
チェック名 | 説明 |
---|---|
無限大および連続サンプル時間ソースをチェック | 連続サンプル時間をもつソース ブロックをチェックします。 |
サポートされていないブロックのチェック | HDL コード生成でサポートされていないブロックをチェックします。 |
大規模行列演算のチェック | 大規模行列演算をチェックします。 |
接続されていないライン、入力端子、出力端子を特定 | 接続されていないラインや端子をチェックします。 |
無効なライブラリ リンクを特定 | モデルの無効なライブラリ リンクを検索します。 |
未解決のライブラリ リンクを特定 | 指定のライブラリ ブロックが見つからない、関連付けられていないライブラリ リンクのモデルを検索します。 |
MATLAB Function ブロックの設定をチェック | MATLAB Function ブロックの HDL 互換設定をチェックします。 |
Stateflow チャートの設定をチェック | Stateflow Chart ブロックの HDL 互換設定をチェックします。 |
レート変換の実行用に Delay ブロック、Unit Delay ブロックおよび Zero-Order Hold ブロックをチェック | レート変換に使用されている Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックを特定します。これらのブロックを実際の Rate Transition ブロックに置き換えます。 |
出力レイテンシが非ゼロのブロックをチェック | 固定小数点とネイティブ浮動小数点で出力レイテンシが非ゼロのブロックをチェックします。 |
信号オブジェクトでサポートされていないストレージ クラスのチェック | 信号オブジェクトのストレージ クラスが 'ExportedGlobal' 、'ImportedExtern' または 'ImportedExternPointer' かどうかをチェックします。 |
Check for Trigonometric Function block for LUT-based approximation method | ルックアップ テーブル (LUT) ベースの近似法を使用しているモデル内の Trigonometric Function ブロックをチェックします。 |
HDL Reciprocal ブロックの使用をチェック | モデルで HDL Reciprocal ブロックを使用しているかどうかをチェックします。 |
メモ
モデル アドバイザーを使用する場合、Simulink フォルダーの 接続されていないライン、入力端子、出力端子を特定、無効なライブラリ リンクを特定、未解決のライブラリ リンクを特定、および レート変換の実行用に Delay ブロック、Unit Delay ブロックおよび Zero-Order Hold ブロックをチェック を確認します。
ネイティブ浮動小数点のチェック
これらのチェックは、モデルが Native Floating Point
モードでの HDL コード生成と互換性があるかどうかを確認します。このチェックには、Simulink モデル内のブロックが Native Floating Point
での HDL コード生成をサポートしているかどうか、モデルが single データ型を使用しているかどうかなどの確認が含まれています。HDL Coder のネイティブ浮動小数点サポートによって、単精度浮動小数点モデルからターゲットに依存しない HDL コードが生成されます。詳細については、ネイティブ浮動小数点を使用したターゲットに依存しない HDL コードの生成を参照してください。
チェック名 | 説明 |
---|---|
モデルで single のデータ型をチェック | モデルで single データ型をチェックします。 |
モデルで double のデータ型をチェック | モデルで double データ型をチェックします。 |
互換性のない設定をもつ Data Type Conversion ブロックをチェック | Data Type Conversion ブロックの変換モードをチェックします。 |
HDL Reciprocal ブロックの使用をチェック | HDL Reciprocal ブロックが浮動小数点型を使用していないことをチェックします。 |
Relational Operator ブロックの使用をチェック | 浮動小数点型を使用する Relational Operator ブロックが boolean 出力をもつことをチェックします。 |
ネイティブ浮動小数点でサポートされていないブロックをチェック | ネイティブ浮動小数点をもつサポートされないブロックをチェックします。 |
ULP 誤差が非ゼロのブロックをチェック | ネイティブ浮動小数点をもつ ULP 誤差が非ゼロのブロックをチェックします。 |
業界標準チェック
これらのチェックでは、Simulink モデルが業界標準のルールに従っているかどうかを検証します。業界標準のルールでは、特定の HDL コーディング ガイドラインを使用することを推奨します。コードを生成するときに、HDL Coder は、生成されたコードが業界標準のガイドラインにどの程度従っているかを示す HDL コーディング標準レポートを表示します。
チェック名 | 説明 |
---|---|
ファイル拡張子のチェック | エンティティを含む VHDL ファイルの拡張子をチェックします。 |
命名規則をチェック | EDA ツールで使用される標準キーワードをチェックします。 |
最上位サブシステム/端子名をチェック | 最上位モジュール/エンティティおよび端子の名前をチェックします。 |
モジュール/エンティティ名をチェック | モジュール/エンティティ名をチェックします。 |
信号と端子の名前をチェック | 信号と端子の名前の長さをチェックします。 |
パッケージ ファイル名をチェック | パッケージを含むファイル名をチェックします。 |
ジェネリックをチェック | 最上位のサブシステム上のジェネリックをチェックします。 |
クロック、リセット、イネーブル信号をチェック | クロック信号、リセット信号およびイネーブル信号の命名規則をチェックします。 |
アーキテクチャ名をチェック | 生成された HDL コード内の VHDL アーキテクチャ名をチェックします。 |
エンティティとアーキテクチャをチェック | VHDL のエンティティとアーキテクチャが同じファイル内で記述されているかどうかをチェックします。 |
クロック設定をチェック | クロック信号の制約をチェックします。 |
詳細は、以下を参照してください。