Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

FIL インターフェイス生成用に DUT を準備する

FIL 生成に必要なファイルと情報

FILウィザードの場合

次のアイテムまたは情報を準備してください。

  • テストする設計用の HDL コード (手動で記述されたもの、またはソフトウェアで生成されたもののいずれか) を提供します。

  • HDL ファイルを選択し、最上位モジュール名を指定します。

  • ポート設定を確認し、FIL ウィザードが入力信号と出力信号、および信号サイズを期待どおりに識別したことを確認します。

  • Simulink®を使用している場合は、生成された FIL ブロックを受け取る準備ができているSimulinkモデルを提供します。

次のステップ

HDL ワークフロー アドバイザーの場合

コードを生成し、適切なSimulinkモデルから FIL を実行できます。

次のステップ

FIL システム オブジェクト要件の適用

System object の FIL プロセス

FIL ウィザードとHDL Coder™ HDL ワークフロー アドバイザーはそれぞれ、次のアクションを実行します。

  • HDL コードをSystem object入力および出力に変換します。

  • 以下を特定する手順を説明します。FPGA デバイス、ソース ファイル、I/O ポート、およびポート情報。

  • MATLAB®と通信するためのロジックをテスト対象デバイス (DUT) に追加します。

    一般に、このロジックは小さく、FPGA へのデザインの適合性への影響は最小限です。

  • プログラミング ファイルと FIL System objectを作成します。

メモ

デザインがデバイスに適合しない場合、またはタイミング目標を満たさない場合、ソフトウェアはプログラミング ファイルを作成しないことがあります。この状況では、デザインがタイミング目標を満たしていないにもかかわらずプログラミング ファイルが生成されるか、エラーが発生してプログラミング ファイルが生成されないという警告が表示されることがあります。設計を変更するか、別の開発ボードを使用してください。

FIL インターフェイスの生成が完了したら、メソッドprogramFPGAを使用してプログラミング ファイルを FPGA ボードにロードできます。この方法を使用して、ランタイム オプションと信号属性を調整することもできます。

開始する準備ができたら、次のトピックを読み、DUT が各セクションで説明されているルールとガイドラインに従っていることを確認してください。

これらのセクションを完了したら、次にFIL ウィザードによるシステム オブジェクトの生成またはMATLABの HDL ワークフロー アドバイザーを使用した FIL シミュレーションに進みます。

FIL システム オブジェクトの HDL コードに関する考慮事項

FIL System objectを生成するためにレガシーまたは自動生成された HDL コードを使用する場合は、次のルールに従ってください。

カテゴリ考慮事項
HDLファイルすべての HDL 名は、 VHDL® 1993 標準で定義されているように正当なものである必要があります。
トップレベルの設計
  • 最上位デザインはVHDLまたはVerilog®である必要があります。

  • 最上位の HDL ファイルには、ファイル名と同じ名前のエンティティ/モジュールが含まれている必要があります。

  • FIL ブロックの生成は、組み合わせロジックと順次ロジックの両方をサポートします。組み合わせロジックの場合、CLK、CLK_ENABLE、RESET は必要ありません。

入出力
  • 入力ポートと出力ポートは次のタイプである必要があります。

    • std_logic (VHDL)

    • std_logic_vector (VHDL)

    • 登録、ワイヤー (Verilog)

  • ベクター ポートの範囲は次のようにする必要があります。

    • 降順 (例: 9 DOWNTO 0、9:0)

    • リテラル。ジェネリックス (VHDL) またはパラメーター(Verilog) の使用はサポートされていません。 (例: DOWNTO b または a:b はサポートされていません)

      降順の TO 構文はサポートされていません

  • Verilogの場合、ポート名は小文字である必要があります。モジュール名も小文字にする必要があります。

  • すべての入力ポートと出力ポートを含める必要があります。

  • 少なくとも 1 つの出力ポートが必要です。

時計
  • シーケンシャル HDL デザインでは、最上位エンティティにクロックが 1 つだけ必要です。クロックとリセットが必要です。組み合わせ HDL デザインの場合、クロック バンドルは必要ありません。

  • クロック信号に clockまたはclkという名前を付けます。クロックの名前がclockまたはclkでない場合は、FIL ウィザードでどの信号がクロック信号であるかを指定します。

  • クロック ポートは 1 ビットである必要があります。VHDLの場合、タイプ std_logic である必要があります。

リセット
  • HDL デザインには、シミュレーション前に FPGA をリセットできるようにリセットが必要です。

  • シーケンシャル デザインの場合、リセットは 1 回だけ行う必要があります。クロックとリセットが必要です。組み合わせ HDL デザインの場合、クロック バンドルは必要ありません。

  • リセット信号にresetまたはrstという名前を付けます。リセットの名前がresetまたはrstでない場合は、FIL ウィザードでどの信号がリセット信号であるかを指定します。

  • リセットポートは 1 ビットである必要があります。VHDLの場合、これらのポートのタイプはstd_logicである必要があります。

クロックイネーブル
  • シーケンシャル デザインの場合、クロック イネーブルを選択する場合、クロック イネーブルは 1 つだけである必要があります。

  • クロック イネーブル ポートは 1 ビットである必要があります。VHDLの場合、これらのポートのタイプはstd_logicである必要があります。

  • クロック イネーブルがある場合は、次のいずれかの名前を付けます: clock_enableclock_enbclock_enclk_enableclk_enbclk_ence。クロック イネーブルにこれらの名前が付けられていない場合は、FIL ウィザードでどの信号がクロック イネーブル信号であるかを指定します。

DUT エンティティDUT レベルのすべてのポートはビット幅を指定する必要があります。ビット幅として変数を使用することはできません。
クロック エッジDUT の入力ポートと出力ポートをポジティブエッジでクロックします。マイナスエッジは許可されません。
サポートされていないデータ型
  • 双方向ポート

  • 配列、レコードタイプ

サポートされていない構造
  • VHDL構成ステートメント

  • Verilogインクルード ファイル

  • マクロ

  • エスケープされた名前

  • 重複したポート名 (Verilog)

システム オブジェクトの FIL 固有のルール

FIL 入力および出力データ セットの制限
  • 入力データの合計サイズは 1467 バイト未満である必要があります。入力データのサイズは、入力ビットの合計を最も近いバイトに切り上げたものです。

  • 出力データのサイズも 1467 バイト未満である必要があります。出力データ サイズは、出力ビットの合計を最も近いバイトに切り上げたものです。

出力フレームサイズ

出力フレームサイズ = 入力フレームサイズ × OverclockingFactor / OutputDownsample

MATLAB FIL System object のコードに関する考慮事項

MATLABの互換性

HDL Verifier™ FIL シミュレーションは、次のデータ型のみをサポートします。

  • 整数

  • 論理値

  • 固定小数点

FIL ブロック要件を適用する

ブロックの FIL プロセス

FIL ウィザードとHDL Coder HDL ワークフロー アドバイザーはそれぞれ、次のアクションを実行します。

  • HDL コードをタイミングを適用してブロック信号に変換します。

  • 以下を特定する手順を説明します。FPGA デバイス、ソース ファイル、I/O ポート、およびポート情報。

  • Simulinkと通信するためのロジックをテスト対象デバイス (DUT) に追加します。

    一般に、このロジックは小さく、FPGA へのデザインの適合性への影響は最小限です。

  • プログラミング ファイルと FIL シミュレーション ブロックを作成します。

メモ

デザインがデバイスに適合しない場合、またはタイミング目標を満たさない場合、ソフトウェアはプログラミング ファイルを作成しないことがあります。この状況では、デザインがタイミング目標を満たしていないにもかかわらずプログラミング ファイルが生成されるか、エラーが発生してプログラミング ファイルが生成されないという警告が表示されることがあります。設計を変更するか、別の開発ボードを使用してください。

FIL インターフェイスの生成が完了したら、FIL ブロック マスクを使用してプログラミング ファイルを FPGA ボードにロードします。実行時オプションと信号属性を調整することもできます。

開始する準備ができたら、次のトピックを読み、DUT が各セクションで説明されているルールとガイドラインに従っていることを確認してください。

これらのセクションを完了したら、次にFILウィザードによるブロック生成またはSimulinkの HDL ワークフロー アドバイザーを使用した FIL シミュレーションに進みます。

FIL ブロックの HDL コードに関する考慮事項

FIL ブロックの生成にレガシーまたは自動生成された HDL コードを使用する場合は、次のルールに従ってください。

カテゴリ考慮事項
HDLファイルすべての HDL 名は、 VHDL 1993 標準で定義されているように正当なものである必要があります。
トップレベルの設計
  • 最上位デザインはVHDLまたはVerilogである必要があります。

  • 最上位の HDL ファイルには、ファイル名と同じ名前のエンティティ/モジュールが含まれている必要があります。

  • FIL ブロックの生成は、組み合わせロジックと順次ロジックの両方をサポートします。組み合わせロジックの場合、CLK、CLK_ENABLE、RESET は必要ありません。

入出力
  • 入力ポートと出力ポートは次のタイプである必要があります。

    • std_logic (VHDL)

    • std_logic_vector (VHDL)

    • 登録、ワイヤー (Verilog)

  • ベクター ポートの範囲は次のようにする必要があります。

    • 降順 (例: 9 DOWNTO 0、9:0)

    • リテラル。ジェネリックス (VHDL) またはパラメーター(Verilog) の使用はサポートされていません。 (例: DOWNTO b または a:b はサポートされていません)

      降順の TO 構文はサポートされていません

  • Verilogの場合、ポート名は小文字である必要があります。モジュール名も小文字にする必要があります。

  • すべての入力ポートと出力ポートを含める必要があります。

  • 少なくとも 1 つの出力ポートが必要です。

時計
  • シーケンシャル HDL デザインでは、最上位エンティティにクロックが 1 つだけ必要です。クロックとリセットが必要です。組み合わせ HDL デザインの場合、クロック バンドルは必要ありません。

  • クロック信号に clockまたはclkという名前を付けます。クロックの名前がclockまたはclkでない場合は、FIL ウィザードでどの信号がクロック信号であるかを指定します。

  • クロック ポートは 1 ビットである必要があります。VHDLの場合、タイプ std_logic である必要があります。

リセット
  • HDL デザインには、シミュレーション前に FPGA をリセットできるようにリセットが必要です。

  • シーケンシャル デザインの場合、リセットは 1 回だけ行う必要があります。クロックとリセットが必要です。組み合わせ HDL デザインの場合、クロック バンドルは必要ありません。

  • リセット信号にresetまたはrstという名前を付けます。リセットの名前がresetまたはrstでない場合は、FIL ウィザードでどの信号がリセット信号であるかを指定します。

  • リセットポートは 1 ビットである必要があります。VHDLの場合、これらのポートのタイプはstd_logicである必要があります。

クロックイネーブル
  • シーケンシャル デザインの場合、クロック イネーブルを選択する場合、クロック イネーブルは 1 つだけである必要があります。

  • クロック イネーブル ポートは 1 ビットである必要があります。VHDLの場合、これらのポートのタイプはstd_logicである必要があります。

  • クロック イネーブルがある場合は、次のいずれかの名前を付けます: clock_enableclock_enbclock_enclk_enableclk_enbclk_ence。クロック イネーブルにこれらの名前が付けられていない場合は、FIL ウィザードでどの信号がクロック イネーブル信号であるかを指定します。

DUT エンティティDUT レベルのすべてのポートはビット幅を指定する必要があります。ビット幅として変数を使用することはできません。
クロック エッジDUT の入力ポートと出力ポートをポジティブエッジでクロックします。マイナスエッジは許可されません。
サポートされていないデータ型
  • 双方向ポート

  • 配列、レコードタイプ

サポートされていない構造
  • VHDL構成ステートメント

  • Verilogインクルード ファイル

  • マクロ

  • エスケープされた名前

  • 重複したポート名 (Verilog)

Simulink FIL ブロックのモデルの考慮事項

FIL ブロックをSimulinkモデルに統合するには、次のルールに従ってください。

カテゴリ考慮事項
モデルの一般的なルール
  • シングル タスク ソルバー モードを使用します (コンフィギュレーションパラメーターで設定)。HDL Verifier FIL はマルチタスク ソルバー モードをサポートしていません。

  • 離散的な固定ステップ ソルバーまたは可変ステップ ソルバーを選択します。HDL Verifier FIL は両方のタイプのソルバーをサポートします。

Simulinkとの非互換性

HDL Verifier FIL シミュレーションは現在、次のものをサポートしていません。

  • トリガーされたサブシステムでの FIL ブロックのインスタンス化

  • 非同期関数呼び出しサブシステムでの FIL ブロックのインスタンス化

  • 連続サンプル時間

  • ゼロ以外のサンプル時間オフセット

初期化

RAM の初期化: Simulink は毎回時間 0 から開始します。これは、 Simulinkモデルの RAM が実行ごとに 0 に初期化されることを意味します。ただし、この仮定はハードウェアでは当てはまりません。FPGA 内の RAM は、1 つのシミュレーションの終了から次のシミュレーションの開始までその値を保持します。デザインに RAM がある場合、最初のシミュレーションはSimulinkと一致しますが、その後の実行は一致しない可能性があります。回避策は、シミュレーションを再実行する前に FPGA ビットストリームをリロードすることです。ビットストリームをリロードするには、FIL ブロック マスクのLoadをクリックします。

ブロックの FIL 固有のルール

FIL ブロック設定ルール
  • 入力フレーム サイズは、出力フレーム サイズの整数倍である必要があります。

  • すべての信号は、ハードウェアの対応するポートと同じビット幅である必要があります。

  • フレーム モードでは、すべての入力は同じフレーム サイズを持つ必要があり、すべての出力は同じフレーム サイズを持つ必要があります (ただし、入力とは異なる可能性があります)。

  • フレームとして処理する場合、すべての入力信号は同じサンプル時間を持つ必要があり、すべての出力信号は同じサンプル時間を持つ必要があります。出力サンプル時間は入力サンプル時間と異なる場合があります。

  • サンプルとして処理する場合、スカラーのみがサポートされます。フレームとして処理する場合、列ベクトル (N 行 1 列) のみがサポートされます。

  • サポートされているデータ型は、組み込みデータ型と固定小数点データ型です。

  • 出力フレーム サイズは入力フレーム サイズより小さくなければなりません。この要件により、出力フレームには時間 0 での値を駆動するのに十分なデータが確実に含まれます。このエラーは、出力フレーム サイズまたはサンプル時間を減らすか、入力フレーム サイズまたはサンプル時間を増やすことで回避できます。

FIL バイト サイズ制限
  • 入力データの合計サイズは 1467 バイト未満である必要があります。入力データのサイズは、入力ビットの合計を最も近いバイトに切り上げたものです。

  • 出力データのサイズも 1467 バイト未満である必要があります。出力データ サイズは、出力ビットの合計を最も近いバイトに切り上げたものです。