インテルのロゴAN 987: 静的更新部分
再構成チュートリアル

Intel® ™ Agilex F シリーズ FPGA 開発ボードの静的更新部分再構成チュートリアル

このアプリケーション ノートでは、Intel ® F シリーズ FPGA 開発ボードでの静的更新部分的再構成 (SUPR) について説明します。部分的再構成 (PR) を使用すると、Intel FPGA の一部を動的に再構成しながら、残りの FPGA の動作を継続できます。PR は、設計内の特定の領域に複数のペルソナを実装しますが、この領域外の領域の動作には影響しません。この方法論は、次の利点を提供します。tag複数の機能が同じ FPGA リソースを時間共有するシステムの場合:

  • 実行時の再構成が可能
  • 設計の拡張性の向上
  • システムのダウンタイムを削減
  • デザインで動的時分割機能をサポート
  • ボードスペースを効率的に使用することでコストと消費電力を削減

静的更新部分再構成とは何ですか?

従来の PR では、静的領域を変更すると、すべてのペルソナを再コンパイルする必要があります。ただし、SUPR を使用すると、ペルソナの再コンパイルを必要とせずに変更を許可する特殊な領域を定義できます。この手法は、リスク軽減のために変更する可能性があるが、実行時の再構成を必要としない設計部分に役立ちます。

1.1. チュートリアルの要件
このチュートリアルには次のものが必要です。

  • Intel Quartus® Prime Pro Edition FPGA実装フローとプロジェクトに関する基本的な知識 files.
  •  Intel Agilex デバイスをサポートする Intel Quartus Prime Pro Edition バージョン 22.3 のインストール。
  • FPGA実装では、JTAG ベンチ上の Intel Agilex F シリーズ FPGA 開発ボードとの接続。
  • リファレンスデザインをダウンロード File関連情報
  • 部分再構成ユーザーガイド
  • 部分的な再構成のチュートリアル
  • パーシャル リコンフィギュレーション オンライン トレーニング

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。
ISO 9001:2015登録
1.2. リファレンスデザイン終了view
このリファレンス デザインは、32 つの 50 ビット カウンターで構成されています。ボード レベルでは、デザインはクロックを XNUMX MHz ソースに接続し、出力をボード上の XNUMX つの LED に接続します。カウンター ビットからの出力を特定のシーケンスで選択すると、LED が特定の周波数で点滅します。top_counter モジュールは SUPR 領域です。
図1. フラットリファレンスデザイン

インテルのロゴ1.3. 静的更新領域オーバーview
次の図は、SUPR 領域を含む PR 設計のブロック図を示しています。ブロック A はトップ静的領域です。ブロック B は SUPR 領域です。ブロック C は PR パーティションです。
図2. SUPR領域を備えたPR設計

intel Agilex Fシリーズ FPGA開発ボード - 地域

  • トップ静的領域 - 変更されない設計ロジックが含まれます。この領域を変更するには、関連するすべてのペルソナを再コンパイルする必要があります。静的領域には、どのペルソナに対しても変更されない設計部分が含まれます。この領域には、周辺デバイス リソースとコア デバイス リソースを含めることができます。静的領域では、SUPR パーティションと PR パーティション間のすべての通信を登録する必要があります。この要件は、静的領域に関して、すべてのペルソナのタイミング クロージャを保証するのに役立ちます。
  • B SUPR 領域 - リスク軽減のために変更される可能性のあるコアのみのロジックが含まれますが、ランタイム再構成は必要ありません。SUPR 領域には、PR パーティションと同じ要件と制限があります。SUPR パーティションには、コア リソースのみを含めることができます。したがって、SUPR パーティションは、設計周辺装置とクロックを含む最上位のルート パーティションの子パーティションである必要があります。SUPR 領域を変更すると、SRAM オブジェクトが生成されます。 File (.sof)は、既存のすべてのコンパイル済みRaw Binaryと互換性があります。 File (.rbf) filePR パーティション C の場合は s です。
  • C PR パーティション - コンパイル時に適合しタイミング クロージャを達成する任意の設計ロジックを使用して実行時に再プログラムできる任意のロジックが含まれます。

1.4. リファレンスデザインのダウンロード Files
部分的な再構成のチュートリアルは、次の場所にあります。 https://github.com/intel/fpga-partial-reconfig
チュートリアルをダウンロードするには:

  1. [複製またはダウンロード] をクリックします。
  2. 「ZIP をダウンロード」をクリックします。 fpga-partial-reconfig-master.zip を解凍します。 file.
  3. リファレンス デザインにアクセスするには、tutorials/agilex_pcie_devkit_blinking_led_supr サブフォルダーに移動します。
    フラットフォルダは以下で構成されています files:
    表 1. リファレンス デザイン Files
File 名前 説明
トップ。 トップレベル file デザインのフラットな実装が含まれています。このモジュールは、blinking_led サブパーティションと top_counter モジュールをインスタンス化します。
t op_counter . sv LED [32]を直接制御するトップレベルの1ビットカウンタ。カウンタの登録された出力はLED [0]を制御し、blinking_ledモジュールを介してLED [2]とLED [3]に電力を供給します。
点滅LED.sdc プロジェクトのタイミング制約を定義します。
点滅LED.sv このチュートリアルでは、このモジュールを親PRパーティションに変換します。モジュールは、LED [2]とLED [3]を制御するtop_counterモジュールの登録された出力を受け取ります。
点滅_led.qpf インテル Quartus Prime プロジェクト file プロジェクト内のすべてのリビジョンのリストが含まれています。
点滅LED . qs f インテル Quartus Prime 設定 file プロジェクトの割り当てと設定が含まれています。

注記: suprフォルダには、 fileこのアプリケーションを使用して作成した 注記。 これらを参考に fileウォークスルー中の任意の時点で。
1.5. リファレンス設計のウォークスルー
次の手順では、フラット デザインによる SUPR の実装について説明します。

  • ステップ1: 開始する
  • ステップ2: デザインパーティションを作成する
  • ステップ3: 配置と配線領域を割り当てる
  • ステップ4: ペルソナを定義する
  • ステップ5: リビジョンを作成する
  • ステップ6: ベースリビジョンをコンパイルする
  • ステップ7: PR実装リビジョンの設定
  • ステップ8: SUPRロジックを変更する
  • ステップ9: ボードをプログラムする

図3. SUPRコンパイルフロー

intel Agilex Fシリーズ FPGA 開発ボード - フロー

1.5.1. ステップ1: 開始
参照設計をコピーするには files を作業環境に追加し、blinking_led フラット デザインをコンパイルします。

  1. 始める前に、リファレンスデザインをダウンロードしてください Files(5ページ)。
  2. 作業環境に agilex_pcie_devkit_blinking_led_supr ディレクトリを作成します。
  3. ダウンロードした tutorials/agilex_pcie_devkit_blinking_led/flat サブフォルダを agilex_pcie_devkit_blinking_led_supr ディレクトリにコピーします。
  4. インテル Quartus Prime プロ・エディション ソフトウェアで、 File ➤ プロジェクトを開き、/flat/blinking_led.qpf を開きます。
  5. ベース デザインをコンパイルするには、[処理] ➤ [コンパイルの開始] をクリックします。コンパイルが完了すると、タイミング アナライザー レポートが自動的に開きます。今のところ、タイミング アナライザーを閉じてもかまいません。

1.5.2. ステップ 2: デザイン パーティションを作成する
部分的に再構成する各領域のデザイン パーティションを作成します。プロジェクトには、任意の数の独立したパーティションまたは PR 領域を作成できます。次の手順に従って、PR パーティションとして u_blinking_led インスタンスのデザイン パーティションを作成し、SUPR 領域として u_top_counter インスタンスのデザイン パーティションを作成します。

  1. プロジェクトナビゲータでu_blinking_ledインスタンスを右クリックし、デザインパーティションをクリックします。
    ➤ 再構成可能。パーティションとして設定されている各インスタンスの横に、デザイン パーティション アイコンが表示されます。
    図4. デザインパーティションの作成intel Agilex Fシリーズ FPGA 開発ボード - パーティション
  2. 手順 1 を繰り返して、u_top_counter インスタンスのパーティションを作成します。
  3. [割り当て] ➤ [パーティションのデザイン] ウィンドウをクリックします。 ウィンドウには、プロジェクト内のすべてのデザイン パーティションが表示されます。
    図 5. デザイン パーティション ウィンドウ
    intel Agilex Fシリーズ FPGA 開発ボード - ウィンドウ
  4. blinking_led パーティション名セルをダブルクリックして、名前を pr_partition に変更します。同様に、top_counter パーティションの名前を supr_partition に変更します。
    あるいは、blinking_led.qsf に次の行を追加すると、これらのパーティションが作成されます。
    set_instance_assignment -name PARTITION pr_partition \ -to u_blinking_led -entity top
    set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_blinking_led -entity top
    set_instance_assignment -name PARTITION supr_partition \ -to u_top_counter -entity top
    set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_top_counter -entity top

1.5.3. ステップ3: 配置および配線領域の割り当て
作成するすべてのベース リビジョンについて、コンパイラは PR パーティション領域割り当てを使用して、対応するペルソナ コアを予約済み領域に配置します。ベース リビジョンのデバイス フロアプランで PR 領域を見つけて割り当てるには、次の手順に従います。

  1. プロジェクト ナビゲータの階層タブで、u_blinking_led インスタンスを右クリックし、Logic Lock Region ➤ Create New Logic Lock Region をクリックします。Logic Lock Regions ウィンドウに領域が表示されます。
  2. 領域の幅を 5、高さを 5 に指定します。
  3. Origin 列に u_blinking_led の配置領域座標を指定します。原点は領域の左下隅に対応します。Origin を X166_Y199 として指定します。コンパイラは (X170 Y203) を右上の座標として計算します。
  4. リージョンの予約済みおよびコアのみのオプションを有効にします。
  5. [ルーティング領域] オプションをダブルクリックします。 [Logic Lock ルーティング領域設定] ダイアログ ボックスが表示されます。
  6. ルーティング タイプには、拡張による固定を選択します。このオプションでは、拡張長さが 1 に自動的に割り当てられます。
  7. 前の手順を繰り返して、u_top_counter パーティションに次のリソースを割り当てます。
    • 高さ—5
    • 幅—5
    • 起源—X173_Y199
    • ルーティング領域 - 拡張長さが 1 の拡張で固定されます。
    • 予約済み—オン
    • コアのみ - オン
    図6. ロジックロック領域ウィンドウ
    intel Agilex F シリーズ FPGA 開発ボード - リージョン ウィンドウ
    注記: コンパイラの配線にさらなる柔軟性を与えるために、配線領域は配置領域よりも大きくなければなりません。tage、コンパイラが異なるペルソナをルーティングする場合など。
  8. 配置領域は blinking_led ロジックを囲む必要があります。Chip Planner でノードを見つけて配置領域を選択するには、[Logic Lock Regions] ウィンドウで u_blinking_led 領域名を右クリックし、[Locate Node] ➤ [Locate in Chip Planner] をクリックします。
  9.  [パーティション レポート] で、[レポート デザイン パーティション] をダブルクリックします。チップ プランナーは領域を強調表示し、色分けします。

図 7. blinking_led のチップ プランナー ノードの場所
intel Agilex F シリーズ FPGA 開発ボード -blinking_ledあるいは、blinking_led.qsf に次の行を追加すると、これらの領域が作成されます。
set_instance_assignment -name PARTITION pr_partition -to \ u_blinking_led -entity top
set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_blinking_led -entity top
set_instance_assignment -name PARTITION supr_partition -to u_top_counter \ -entity top
set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON -to \ u_top_counter -entity top
set_instance_assignment -name PLACE_REGION “X166 Y199 X170 Y203” -to \ u_blinking_led
set_instance_assignment -name RESERVE_PLACE_REGION ON -to u_blinking_led
set_instance_assignment -name CORE_ONLY_PLACE_REGION ON -to u_blinking_led
set_instance_assignment -name REGION_NAME pr_partition -to u_blinking_led
set_instance_assignment -name ROUTE_REGION “X165 Y198 X171 Y204” -to \ u_blinking_led
set_instance_assignment -name RESERVE_ROUTE_REGION OFF -to u_blinking_led
set_instance_assignment -name PLACE_REGION “X173 Y199 X177 Y203” -to \ u_top_counter
set_instance_assignment -name RESERVE_PLACE_REGION ON -to u_top_counter
set_instance_assignment -name CORE_ONLY_PLACE_REGION ON -to u_top_counter
set_instance_assignment -name REGION_NAME supr_partition -to u_top_counter
set_instance_assignment -name ROUTE_REGION “X172 Y198 X178 Y204” -to \ u_top_counter
set_instance_assignment -name RESERVE_ROUTE_REGION OFF -to u_top_counter
1.5.4. ステップ4: ペルソナを定義する

このリファレンスデザインでは、単一のPRパーティションに3つの個別のペルソナを定義し、SUPR領域に1つのSUPRペルソナを定義します。これらのペルソナを定義してプロジェクトに含めるには、次の手順に従ってください。インテルQuartus Primeテキストエディターを使用する場合は、 file
現在のプロジェクトを保存するときに files.

  1. 新しいblinking_led_slow.sv、blinking_led_empty.sv、top_counter_fast.sv SystemVerilogを作成します。 file作業ディレクトリに blinking_led.sv がすでに存在することを確認します。
  2.  SystemVerilogに次の内容を入力します files:
    表2. リファレンスデザインペルソナ SystemVerilog
    File 名前 説明 コード
    点滅LEDが遅い。 LEDの点滅が遅くなる タイムスケール 1 ps / 1 ps 'default_nettype なし
    モジュール blinking_led_slow // クロック
    入力線クロック、入力線リセット、入力線[31:01カウンタ、
    // LED 出力ワイヤの制御信号 led_two_on,
    出力ワイヤ led_three_on ローカルパラメータ COUNTER_TAP = 27;
    reg led_two_on_r; leg led_three_on_r; assignment led_two_on = led_two_on_r; assignment led_three_on = led_three_on_r; always_ff @(posedge clock) begin led_two_on_r <= counter[COUNTER_TAP]; led_three_on_r <= counter[COUNTER_TAP]; end endmodule
    点滅LED空。 LEDは点灯したまま timescale 1 ps / 1 ps 'default_nettype none module blinking_led_empty( // クロック入力ワイヤ clock、入力ワイヤ reset、入力ワイヤ [31:01 counter、 // LEC の制御信号 - 出力ワイヤ led_two_on、出力ワイヤ led_three_on
    続き…
    File 名前 説明 コード
    // LEDはアクティブローです。assign led_two_on = l'IDO;assign led_three_on = 11b0;endmodule
    トップカウンタ高速.sv 2番目のSUPR 'タイムスケール 1 ps / 1 ps
    ペルソナ Thdefault_nettype なし モジュール top_counter_fast
    // LEDの制御信号出力線led_one_on、出力線[31:0] count、// クロック入力線clock
    ) ; ローカルパラメータ COUNTER TAP = 23; reg [31:0] count_d; 割り当て count = count_d; 割り当て led_one_on = ount_d[COUNTER_TAP]; always_ff @(posedge clock) begin count_d <= count_d + 2; 終了
    .:モジュール
  3.  クリック File ➤ 名前を付けて保存し、.svを保存します。 file現在のプロジェクト ディレクトリ内にあります。

1.5.5. ステップ5: リビジョンの作成
PR デザインフローは、インテル Quartus Prime ソフトウェアのプロジェクト リビジョン機能を使用します。最初のデザインはベース リビジョンで、FPGA 上の静的領域境界と再構成可能な領域を定義します。ベース リビジョンから追加のリビジョンを作成します。これらのリビジョンには、PR 領域のさまざまな実装が含まれます。ただし、すべての PR 実装リビジョンは、ベース リビジョンからの同じトップレベルの配置配線結果を使用します。PR デザインをコンパイルするには、各ペルソナの PR 実装リビジョンを作成します。さらに、各リビジョンに、部分的再構成 - ベースまたは部分的再構成 - ペルソナ実装のいずれかのリビジョン タイプを割り当てる必要があります。次の表に、各リビジョンのリビジョン名とリビジョン タイプを示します。impl_blinking_led_supr_new.qsf リビジョンは、SUPR ペルソナ実装です。
表3. リビジョン名とタイプ

リビジョン名 リビジョンタイプ
点滅LED パーシャル リコンフィギュレーション – ベース
点滅_LED_デフォルト 部分的な再構成 – ペルソナの実装
点滅_LED_遅い 部分的な再構成 – ペルソナの実装
点滅_LED_空 部分的な再構成 – ペルソナの実装
実装_点滅_led_supr_new 部分的な再構成 – ペルソナの実装

1.5.5.1. ベースリビジョンの設定
blinking_led をベースリビジョンとして設定するには、次の手順に従います。

  1. [プロジェクト] ➤ [リビジョン]をクリックします。
  2. リビジョン タイプとして、部分再構成 - ベースを選択します。

intel Agilex F シリーズ FPGA 開発ボード - 改訂この手順では、blinking_led.qsf に次の内容を追加します。
##blinking_led.qsf set_global_assignment -name REVISION_TYPE PR_BASE
1.5.5.2. 実装リビジョンの作成
実装リビジョンを作成するには、次の手順に従います。

  1. 「変更履歴」ダイアログボックスで、< >。
  2. [リビジョン名] で、blinking_led_default を指定し、[リビジョンに基づく] で [blinking_led] を選択します。
  3. リビジョン タイプとして、[部分的な再構成 - ペルソナ実装] を選択します。
  4. [現在のリビジョンとして設定] オプションを無効にします。
  5. 手順 2 ~ 5 を繰り返して、他の実装リビジョンのリビジョン タイプを設定します。
リビジョン名 リビジョンタイプ Revisioに基づくn
点滅_LED_遅い 部分的な再構成 – ペルソナの実装 点滅LED
点滅_LED_空 部分的な再構成 – ペルソナの実装 点滅LED
実装_点滅_led_supr_new 部分的な再構成 – ペルソナの実装 点滅LED

図8. 実装リビジョンの作成

intel Agilex F シリーズ FPGA 開発ボード - 実装リビジョン各.qsf file 現在、次の割り当てが含まれています。
set_global_assignment -name REVISION_TYPE PR_IMPL
set_instance_assignment -name ENTITY_REBINDING place_holder -to u_top_counter
set_instance_assignment -name ENTITY_REBINDING place_holder -to u_blinking_led
1.5.6. ステップ6: ベースリビジョンをコンパイルする
次の手順に従って、ベース リビジョンをコンパイルし、静的領域と SUPR 領域をエクスポートして、後で新しい PR ペルソナの実装リビジョンで使用します。

  1. まだ設定されていない場合は、blinking_led を現在のリビジョンとして設定します。
  2. デザインパーティションウィンドウで、一番右の列の横にある(…)をクリックし、最終エクスポート後のオプションを有効にします。 File 列。列を無効にしたり、列の順序を変更したりすることもできます。
  3. 各コンパイル後にPR実装設計パーティションの最終スナップショットを自動的にエクスポートするには、最終エクスポート後に以下を指定します。 File ルートおよびSUPRパーティションのオプション。.qdb fileデフォルトではプロジェクト ディレクトリにエクスポートされます。
    • ルートパーティション - blinking_led_static.qdb
    • supr_partition—blinking_led_supr_partition_final.qdb
    図9. デザインパーティションウィンドウでの自動エクスポートintel Agilex F シリーズ FPGA 開発ボード - パーティション ウィンドウあるいは、次の .qsf 割り当ては、各コンパイル後にパーティションを自動的にエクスポートします。
    set_instance_assignment -name EXPORT_PARTITION_SNAPSHOT_FINAL \ blinking_led_static.qdb -to | -entity top
    set_instance_assignment -name EXPORT_PARTITION_SNAPSHOT_FINAL \ blinking_led_supr_partition_final.qdb -to u_top_counter \ -entity top
  4. blinking_ledベースリビジョンをコンパイルするには、処理➤開始をクリックします。
    コンパイル。または、次のコマンドを使用してこのリビジョンをコンパイルすることもできます。
    quartus_sh –flow compile blinking_led -c blinking_led コンパイルが成功すると、次のようになります。 fileプロジェクトディレクトリに次のものが表示されます:
    • 点滅LED.sof
    • 点滅LED.pr_partition.rbf
    • 点滅LED.supr_partition.rbf
    • 点滅LED静的.qdb
    • 点滅LED_supr_partition_final.qdb

1.5.7. ステップ7: PR実装リビジョンの設定
デバイスプログラミング用のPRビットストリームを生成する前に、PR実装リビジョンを準備する必要があります。このセットアップには、静的領域.qdbの追加が含まれます。 file ソースとして file 各実装リビジョンごとに、さらに以下を指定する必要があります。
PR リージョンの対応するエンティティ。PR 実装リビジョンを設定するには、次の手順に従います。

  1.  現在のリビジョンを設定するには、[プロジェクト] ➤ [リビジョン] をクリックし、リビジョン名として blinking_led_default を選択して、[現在のリビジョンを設定] をクリックします。または、メインの Intel Quartus Prime ツールバーで現在のリビジョンを選択することもできます。
  2. この実装リビジョンの正しいソースを確認するには、プロジェクト➤追加/削除をクリックします。 Fileプロジェクトのs。blinking_led.svが file に登場 file リスト。intel Agilex F シリーズ FPGA 開発ボード - パーティション ウィンドウ 1
  3. 正しい情報源を確認するには file 実装リビジョンについては、プロジェクト➤追加/削除をクリックします。 fileプロジェクトに次のソースを追加します file実装リビジョンのs。存在する場合は、プロジェクトのリストからblinking_led.svを削除します。 files.
    I実装リビジョン名 ソース File
    点滅_LED_空 点滅_LED_空.sv
    点滅_LED_遅い 点滅_led_slow.sv
  4. blinking_led_default を現在のリビジョンとして設定します。
  5. .qdbを指定するには file root_partitionのソースとして割り当てるには、「割り当て」➤「パーティションウィンドウのデザイン」をクリックします。パーティションデータベースをダブルクリックします。 File セルを指定してblinking_led_static.qdbを指定します file.
  6. 同様に、パーティションデータベースとしてblinking_led_supr_partition_final.qdbを指定します。 File supr_partition の場合。

    図10.インテル Agilex F シリーズ FPGA 開発ボード - 指定または、次の .qsf 割り当てを使用して .qdb を指定します。
    set_instance_assignment -name QDB_FILE_PARTITION \ 点滅_led_static.qdb -to |
    set_instance_assignment -name QDB_FILE_PARTITION \ blinking_led_supr_partition_final.qdb -to u_top_counter

  7. デザイン パーティション ウィンドウで、右端の列の横にある (…) をクリックし、エンティティの再バインディング列を有効にします。
  8.  エンティティ再バインディング セルで、現在の実装リビジョンで変更する PR パーティションの新しいエンティティ名を指定します。blinking_led_default 実装リビジョンの場合、エンティティ名は blinking_led です。この場合、ベース リビジョン コンパイルからの u_blinking_led インスタンスを新しいエンティティ blinking_led で上書きします。他の実装リビジョンについては、次の表を参照してください。

    リビジョン エンティティの再バインディング値
    点滅_LED_遅い 点滅_LED_遅い
    点滅_LED_空 点滅_LED_空

    図11. エンティティの再バインドintel Agilex Fシリーズ FPGA 開発ボード - 再バインドあるいは、各リビジョンの .qsf で次の行を使用して割り当てを設定することもできます。
    ##点滅LEDデフォルト.qsf
    set_instance_assignment -name ENTITY_REBINDING blinking_led \ -to u_blinking_led
    ##点滅LEDが遅い.qsf
    set_instance_assignment -name ENTITY_REBINDING blinking_led_slow \ -to u_blinking_led
    ##点滅LEDが空です.qsf
    set_instance_assignment -name ENTITY_REBINDING blinking_led_empty \ -to u_blinking_led

  9. supr_partition のエンティティ再バインド セルから place_holder テキストを削除します。
  10. デザインをコンパイルするには、[処理] ➤ [コンパイルの開始] をクリックします。または、次のコマンドを使用してこのプロジェクトをコンパイルします: quartus_sh –flow compile blinking_led –c blinking_led_default
  11. 手順 4 から 11 を繰り返して、blinking_led_slow および blinking_led_empty 実装リビジョンを準備してコンパイルします。

1.5.8. ステップ8: SUPRロジックを変更する
SUPR パーティション内のロジックの機能を変更するには、SUPR パーティション ソースを変更する必要があります。SUPR パーティション内の u_top_counter インスタンスを top_counter_fast エンティティに置き換えるには、次の手順に従います。

  1. SUPR実装リビジョンを現在のリビジョンに設定するには、プロジェクト ➤ リビジョンをクリックし、impl_blinking_led_supr_newを現在のリビジョンとして設定するか、
    Intel Quartus Prime メインツールバーのリビジョン。
  2. 正しい情報源を確認するには file 実装リビジョンについては、プロジェクト➤をクリックしてください。
    追加/削除 fileプロジェクトにtop_counter_fast.svがあることを確認し、impl_blinking_led_supr_new実装リビジョンのソースがtop_counter.svであることを確認します。存在する場合は、プロジェクトリストからtop_counter.svを削除します。 files.intel Agilex F シリーズ FPGA 開発ボード - 課題
  3. .qdbを指定するには file ルートパーティションに関連付けられた割り当て➤パーティションデザインウィンドウをクリックし、パーティションデータベースをダブルクリックします。 File blinking_led_static.qdb を指定するセル。
    または、次のコマンドを使用してこれを割り当てる file: set_instance_assignment -name QDB_FILE_PARTITION \ 点滅_led_static.qdb -to |
  4. pr_partitionのエンティティ再バインドセルに適切なエンティティ名を指定します。この例ではample で、blinking_led_empty エンティティを指定します。この場合、ベース リビジョン コンパイルからの u_blinking_led インスタンスを、新しいエンティティ linking_led_empty で上書きします。これで、.qsf に次の行が存在するようになります。
    ##impl_blinking_led_supr_new.qsf set_instance_assignment -name ENTITY_REBINDING blinking_led_empty \ -to u_blinking_led
  5. supr_partition のエンティティ再バインド セルで、top_counter_fast エンティティを指定します。top_counter_fast は、SUPR を完了したときに u_top_counter を置き換える静的エンティティの名前です。intel Agilex F シリーズ FPGA 開発ボード - SUPR##impl_blinking_led_supr_new.qsf set_instance_assignment -name ENTITY_REBINDING top_counter_fast \ -to u_top_counter
  6. デザインをコンパイルするには、[処理] ➤ [コンパイルの開始] をクリックします。または、次のコマンドを使用してこのプロジェクト リビジョンをコンパイルします: quartus_sh –flow compile blinking_led –c \ impl_blinking_led_supr_new

1.5.9. ステップ9: ボードをプログラムする
Intel Agilex F シリーズ FPGA 開発ボードを接続してプログラムするには、次の手順に従います。

  1. 電源をインテル Agilex F シリーズ FPGA 開発ボードに接続します。
  2. PC の USB ポートと開発ボード上の USB プログラミング ハードウェアの間に USB ケーブルを接続します。
  3. Intel Quartus Prime ソフトウェアを開き、[ツール] ➤ [プログラマー] をクリックします。開発ボードのプログラミングを参照してください。
  4. プログラマーで、「ハードウェア設定」をクリックし、「USB-Blaster」を選択します。
  5. [自動検出] をクリックし、AGFB014R24B デバイスを選択します。
  6.  「OK」をクリックします。 インテル Quartus Prime ソフトウェアは、ボード上の XNUMX つの FPGA デバイスを使用してプログラマーを検出し、更新します。
  7.  AGFB014R24Bデバイスを選択し、変更をクリックします File、blinking_led_default.sofをロードします。 file.
  8. blinking_led_default.sofのプログラム/構成を有効にする file.
  9. [開始] をクリックし、プログレス バーが 100% になるまで待ちます。
  10.  ボード上の LED が点滅するのを観察します。
  11. PR 領域のみをプログラムするには、blinking_led_default.sof を右クリックします。 file Programmer で、Add PR Programming をクリックします。 Fileblinking_led_slow.pr_partition.rbfを選択します file.
  12. blinking_led_default.sof のプログラム/構成を無効にする file.
  13.  blinking_led_slow.pr_partition.rbfのプログラム/構成を有効にする fileをクリックし、[開始] をクリックします。ボード上で、LED[0] と LED[1] が点滅し続けるのを確認します。進行状況バーが 100% に達すると、LED[2] と LED[3] の点滅が遅くなります。
  14. PR領域を再プログラムするには、.rbfを右クリックします。 file プログラマーで、PRプログラミングの変更をクリックします。 File.
  15.  .rbfを選択します file他の2人のペルソナがボード上の動作を観察できるようにblinking_led_default.pr_partition.rbfをロードします。 file LEDが元の周波数で点滅し、blinking_led_empty.pr_partition.rbfがロードされます。 file LEDが点灯したままになります。17. SUPRロジックを変更するには、上記の手順7を繰り返して、impl_blinking_led_supr_new.sofを選択します。これを変更した後、 file、LED [0:1] は以前よりも速い速度で点滅するようになりました。他の PR .rbf fileは新しい .sof とも互換性があります。
    注記: アセンブラは.rbfファイルを生成する。 file SUPR領域用。ただし、これを使用しないでください file SUPRパーティションはフリーズブリッジ、PRリージョンコントローラ、およびシステム全体のその他のロジックをインスタンス化しないため、実行時にFPGAを再プログラムする必要があります。SUPRパーティションロジックに変更を加える場合は、.sof全体を再プログラムする必要があります。 file SUPR 実装リビジョンのコンパイルから。

図12. 開発ボードのプログラミング
intel Agilex Fシリーズ FPGA 開発ボード - ボード1.5.9.1. PRプログラミングエラーのトラブルシューティング
Intel Quartus Prime Programmer と接続されたハードウェアが適切にセットアップされていることを確認すると、PR プログラミング中のエラーを回避できます。
PR プログラミング エラーが発生した場合は、Intel Quartus Prime Pro Edition ユーザー ガイド: 部分的リコンフィグレーションの「PR プログラミング エラーのトラブルシューティング」を参照して、手順ごとのトラブルシューティングのヒントを参照してください。
関連情報

PRプログラミングエラーのトラブルシューティング

1.5.10. SUPR パーティションの変更
既存のSUPRパーティションを変更することができます。SUPRパーティションを変更した後は、コンパイルして.sofを生成する必要があります。 file、他のペルソナをコンパイルせずにボードをプログラムします。例:ampたとえば、top_counter_fast.sv モジュールを変更してカウント速度を上げるには、次の手順に従ってください。

  1. impl_blinking_led_supr_new を現在のリビジョンとして設定します。
  2.  top_counter_fast.svで filecount_d + 2 ステートメントを count_d + 4 に置き換えます。
  3.  次のコマンドを実行してSUPRブロックを再合成し、新しい.sofを生成します。 file: quartus_sh –flow コンパイル blinking_led \ -c impl_blinking_led_supr_new
    結果として得られる .sof には新しい SUPR 領域が含まれ、デフォルト (電源オン) ペルソナに blinking_led が使用されます。

1.6. AN 987: 静的更新部分再構成チュートリアルのドキュメント改訂履歴

ドキュメントバージョン インテル Quartus Prime バージョン 変更点
2022.10.24 22. ドキュメントの最初のリリース。

Intel® Quartus®Prime デザインスイート 22.3 に更新

よくある質問への回答:

フィードバックを送信

Q 静的更新部分再構成とは何ですか

静的更新部分再構成(3ページ)

Q このチュートリアルには何が必要ですか?

チュートリアルの要件(3ページ目)

Q リファレンスデザインはどこで入手できますか?

リファレンスデザインのダウンロード File5ページ

Q SUPR デザインを作成するにはどうすればよいですか?

6ページのリファレンスデザインウォークスルー

Q PRペルソナとは何ですか?

10 ページでペルソナを定義する

Q SUPRロジックを変更するにはどうすればいいですか? A 16ページのSUPRロジックの変更

16ページのSUPRロジックの変更

Q ボードをプログラムするにはどうすればいいですか?

18ページの理事会プログラム

Q PR の既知の問題と制限は何ですか?

Intel FPGA サポート フォーラム: PR

intel Agilex Fシリーズ FPGA 開発ボード - アイコン オンライン版
intel Agilex F シリーズ FPGA 開発ボード - Icon 154 フィードバックを送信

ID: 749443
AN-987
バージョン: 2022.10.24

ドキュメント / リソース

インテル Agilex F シリーズ FPGA 開発ボード [pdf] ユーザーガイド
Agilex Fシリーズ、Agilex Fシリーズ FPGA開発ボード、FPGA開発ボード、開発ボード、ボード

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *