AN 784: PCI Express* リファレンス・デザインを使用した インテル® Arria® 10 デバイスのパーシャル・リコンフィグレーション

ID 683856
日付 11/06/2017
Public
ドキュメント目次

1.6. カスタムのペルソナを使用したリファレンス・デザインの拡張

このリファレンス・デザインは PCIe* を介したPRに向けて独自のペルソナを作成するテンプレート例を提供します。独自のペルソナを使用してリファレンス・デザインを拡張するには次を実行します。
  1. a10_pcie_devkit_cvp フォルダーに移動します。
    cd a10_pcie_devkit_cvp
  2. pr_logic_impl_template.qsf.template実装リビジョンファイルとpr_logic_synth_template.qsf.template合成ファイルのコピーを作成します。
    cp pr_logic_impl_template.qsf.template <persona_impl_revision_name>.qsf
    cp pr_logic_synth_template.qsf.template <persona_synth_revision_name>.qsf
  3. フォルダーを作成し、そのフォルダーにペルソナ固有のRTLをコピーします。
    mkdir <persona_name>
    cp <custom_persona>.sv <persona_name>/
  4. カスタムのトップレベル・エンティティーは、source/templates/pr_logic_template.svファイルで定義されるcustom_personaモジュールのポートに一致しなければいけません。次の例は、PCIeレジスターファイルを介して制御されるAvalon-MMインターフェイスを備えたデザインとのインターフェイス接続を示しています。
    module custom_persona #(
    parameter REG_FILE_IO_SIZE = 8
    )(
    //clock
    input wire clk,
    
    //active low reset, defined by hardware
    input wire rst_n, 
    //Persona identification register, used by host in host program
    output wire [31:0] persona_id, 
    //Host control register, used for control signals.
    input wire [31:0] host_cntrl_register, 
    // 8 registers for host -> PR logic communication
    input wire [31:0] host_pr [0:REG_FILE_IO_SIZE-1], 
    // 8 Registers for PR logic -> host communication
    output wire [31:0] pr_host [0:REG_FILE_IO_SIZE-1]
    );

    カスタマイズに向けて任意のパラレルI/Oポート (PIO) レジスターを使用します。host_prレジスターはペルソナからのデータをホストマシーンに送信します。pr_hostレジスターはホストマシーンからのデータをペルソナに送信します。

  5. トップレベル・エンティティー・ファイル内で、ペルソナIDを任意の32ビットの値に指定します。
    assign persona_id  = 32'h0000_aeed;
    注: テンプレート例では、8ビットだけを使用していますが、32ビットまでであれば任意の値を指定できます。
  6. pr_hostレジスターの未使用出力ポートを0に設定します。
    generate
    genvar i;
    //Tying unused output ports to zero.
    for (i = 2; i < REG_FILE_IO_SIZE; i = i + 1) begin
     assign pr_host [i] = 32'b0;
    end
    endgenerate
  7. 次のアサインメントを含むようにpersona_synth_revision_name.qsfを変更します。
    set_global_assignment -name TOP_LEVEL_ENTITY <custom_persona>
    set_global_assignment -name SYSTEMVERILOG_FILE <persona_name>/<custom_persona>.sv
    set_global_assignment -name QSYS_FILE <persona_specific_qsys_file>
    set_global_assignment -name IP_FILE <persona_specific_ip_file>
  8. 新しいPR実装を定義するために、パーシャル・リコンフィグレーション・フローのスクリプトを更新します。
  9. 合成リビジョンと実装リビジョンを含めるようにa10_pcie_devkit_cvp.qpfプロジェクトファイルを更新します。
    PROJECT_REVISION = "<persona_synth_revision_name>"
    PROJECT_REVISION = "<persona_impl_revision_name>
  10. リビジョンをコンパイルします。

    PRデザインにカスタムのペルソナを追加する場合の詳細については、アプリケーション・ノートPartially Reconfiguring a Design on インテル® Arria® 10 GX FPGA Development BoardAdding a New Persona to the Designの項を参照してください。