Main Content

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

FILインターフェース生成のためのDUTの準備

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

FILウィザードの場合

以下の項目または情報を用意してください。

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

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

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

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

次のステップ

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

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

次のステップ

FILシステムオブジェクト要件を適用する

システムオブジェクトの 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 ファイルすべての HDL 名は、VHDL® 1993 標準で定義されているとおりに有効である必要があります。
トップレベルのデザイン
  • トップレベルのデザインは VHDL または Verilog® である必要があります。

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

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

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

    • std_ロジック (VHDL)

    • std_logic_vector (VHDL)

    • レジ、ワイヤー(Verilog)

  • ベクトル ポートの範囲は次のようになります:

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

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

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

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

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

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

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

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

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

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

  • シーケンシャル設計の場合、リセットは 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 システム オブジェクトのコードに関する考慮事項

MATLAB 互換性

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

  • 整数

  • logical

  • 固定小数点

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 ファイルすべての HDL 名は、VHDL 1993 標準で定義されているとおりに有効である必要があります。
トップレベルのデザイン
  • トップレベルのデザインは VHDL または Verilog である必要があります。

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

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

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

    • std_ロジック (VHDL)

    • std_logic_vector (VHDL)

    • レジ、ワイヤー(Verilog)

  • ベクトル ポートの範囲は次のようになります:

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

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

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

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

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

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

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

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

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

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

  • シーケンシャル設計の場合、リセットは 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 は実行ごとにゼロに初期化されます。ただし、この仮定はハードウェアでは当てはまりません。FPGA 内の RAM は、1 つのシミュレーションの終了から次のシミュレーションの開始までその値を保持します。設計に RAM がある場合、最初のシミュレーションは Simulink と一致しますが、その後の実行は一致しない可能性があります。回避策としては、シミュレーションを再実行する前に FPGA ビットストリームを再ロードします。ビットストリームを再ロードするには、FIL ブロック マスクの Load をクリックします。

ブロックに関する FIL 固有のルール

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

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

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

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

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

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

  • 出力フレーム サイズは入力フレーム サイズより小さくする必要があります。この要件により、出力フレームに時刻 0 の値を駆動するのに十分なデータがあることが保証されます。このエラーを回避するには、出力フレーム サイズまたはサンプル時間を減らすか、入力フレーム サイズまたはサンプル時間を増やします。

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

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

関連するトピック