Quartus® Prime プロ・エディションのユーザーガイド: パーシャル・リコンフィグレーション

ID 683834
日付 10/23/2024
Public
ドキュメント目次

2.3.10. インテルArria 10または Cyclone® 10 GXデザイン向け外部ホストのコンフィグレーション

外部ホストのコンフィグレーションを使用する場合、外部ホストは、パーシャル・リコンフィグレーションを開始し、PRステータスの監視をユーザーモード中に外部PR専用ピンを使用して行います。このモードの場合、外部ホストでは、パーシャル・リコンフィグレーションを正常に行うためにハンドシェイク信号に対して適切に応答する必要があります。外部ホストは、外部メモリーからのパーシャル・ビットストリーム・データを Arria® 10または Cyclone® 10 GXデバイスに書き込みます。システムレベルのパーシャル・リコンフィグレーションを調整するために、パーシャル・リコンフィグレーション用に正しいPR領域を準備するようにします。リコンフィグレーション後、PR領域を動作状態に戻します。

デザインに外部ホストを使用するには、次を実行します。

  1. Assignments > Device > Device & Pin Optionsをクリックします。
  2. Device & Pin Options ダイアログボックスでEnable PR Pinsオプションを選択します。このオプションによって、特殊なパーシャル・リコンフィグレーション・ピンが自動作成され、デバイスのピンアウトにピンが定義さます。また、このオプションでにより、ピンはPR制御ブロックの内部パスに自動的に接続されます。
    注: このオプションを選択しない場合は、内部ホストまたはHPSホストを使用してください。ピンの定義は、デザインの最上位エンティティーで行う必要はありません。
  3. この最上位ピンを PR制御ブロック内の特定のポートに接続します。

次の表は、Enable PR Pinsをオンにしたときに自動的に制約されるPRピンと、そのピンに対する特定のPR制御ブロックのポート接続の一覧です。

表 32.  パーシャル・リコンフィグレーション専用ピン
ピン名 タイプ 制御ブロックのポート名 説明
PR_REQUEST 入力 prrequest このピンのロジックHighは、PRホストがパーシャル・リコンフィグレーションを要求していることを示します。
PR_READY 出力 ready このピンのロジックHighは、PRホストがパーシャル・リコンフィグレーションを開始する準備ができていることを示します。
PR_DONE 出力 done このピンのロジックHighは、パーシャル・リコンフィグレーションが完了したことを示します。
PR_ERROR 出力 error このピンのロジックHighは、パーシャル・リコンフィグレーション中にデバイスでエラーが発生したことを示します。
DATA[31:0] 入力 data このピンは、PR_DATA への接続性を提供し、PRビットストリームをPRコントローラーに転送します。
DCLK 入力 clk 同期 PR_DATA を受け取ります。
注:
  1. PR_DATA の幅は8、16、または32ビットにすることができます。
  2. PR制御ブロックの corectl ポートを0に接続していることを確認してください。

外部ホストPRのVerilog RTL

module top(
     // PR control block signals
     input  logic        pr_clk,
     input  logic        pr_request,
     input  logic [31:0] pr_data,
     output logic        pr_error,
     output logic        pr_ready,
     output logic        pr_done,

     // User signals
     input  logic i1_main,
     input  logic i2_main,
     output logic o1
);

// Instantiate the PR control block
twentynm_prblock m_prblock
(
    .clk(pr_clk),
    .corectl(1'b0),
    .prrequest(pr_request),
    .data(pr_data),
    .error(pr_error),
    .ready(pr_ready),
    .done(pr_done)
);


// PR Interface partition
pr_v1 pr_inst(
   .i1(i1_main),
   .i2(i2_main),
   .o1(o1)
);

endmodule

外部ホストPRのVHDL RTL

library ieee;
use ieee.std_logic_1164.all;

entity top is
port(
      -- PR control block signals
      pr_clk: in std_logic;
      pr_request: in std_logic;
      pr_data: in std_logic_vector(31 downto 0);
                
      pr_error: out std_logic;
      pr_ready: out std_logic;
      pr_done: out std_logic;
                
      -- User signals
      i1_main: in std_logic;
      i2_main: in std_logic;
      o1: out std_logic
);
end top;

architecture behav of top is

component twentynm_prblock is
port(      
      clk: in std_logic;
      corectl: in std_logic;
      prrequest: in std_logic;
      data: in std_logic_vector(31 downto 0);
      error: out std_logic;
      ready: out std_logic;
      done: out std_logic
);
end component;

component pr_v1 is
port(     
      i1: in std_logic;
      i2: in std_logic;
      o1: out std_logic
);
end component;

signal pr_gnd : std_logic;

begin

pr_gnd <= '0';

-- Instantiate the PR control block
m_prblock: twentynm_prblock port map
(
    pr_clk,
    pr_gnd,
    pr_request,
    pr_data,
    pr_error,
    pr_ready,
    pr_done
);


-- PR Interface partition
pr_inst : pr_v1 port map
(
   i1_main,
   i2_main,
   o1
);

end behav;