AN 813: Hierarchical Partial Reconfiguration over PCI Express* Reference Design: for Intel® Arria® 10 Devices

ID 683730
Date 1/20/2021
Public
Document Table of Contents

1.5. Compiling the Reference Design

  1. Ensure that the project's a10_pcie_devkit_cvp.qsf file includes the following assignment:
    set_instance_assignment -name EXPORT_PARTITION_SNAPSHOT_FINAL 
       a10_pcie_devkit_cvp_static.qdb -to \
       u_top|design_core|pr_region_wrapper|pr_persona_wrapper|u_pr_logic \
       -entity a10_pcie_ref_design
  2. To compile the base revision of the reference design, run the following command from the project directory level:
    quartus_sh --flow compile a10_pcie_devkit_cvp -c a10_pcie_devkit_cvp
    All the implementation revisions except the base revision contain the following QDB file partition assignment in their respective .qsf files:
    set_instance_assignment -name QDB_FILE_PARTITION \
          a10_pcie_devkit_cvp_static.qdb -to |
    This assignment imports the .qdb file representing the reference design static region logic into the subsequent PR persona implementation compile. Each implementation revision also contains one or two ENTITY_REBINDING assignment. This assignment links the hierarchy of the static region and the hierarchy of the PR persona. For example, a10_pcie_devkit_cvp_ddr4_access.qsf contains the following entity rebinding assignment:
    set_instance_assignment -name ENTITY_REBINDING \
          parent_persona_top -to \
          u_top|design_core|pr_region_wrapper|pr_persona_wrapper|u_pr_logic
    For more information, please refer to the Partial Reconfiguration Design Flow section in the Partial Reconfiguration User Guide.
  3. To compile all the non-HPR personas, run the following commands:
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_normal_ddr4_access
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_normal_basic_arithmetic
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_normal_basic_dsp
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_normal_gol
  4. Ensure that this revision defines the child Logic Lock region with the same settings as the base revision.
  5. To compile the HPR parent persona, run the following command:
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_ddr4_access
  6. Export the parent PR partition's .qdb file by clicking Project > Export Design Partition. Specify the following options for the partition:
    Table 6.  Parent PR Partition Option Values
    Option Value
    Partition name pr_partition
    Partition database file <project>/a10_pcie_devkit_cvp_ddr4_access_pr_partition_final.qdb
    Include entity-bound SDC files Disable
    Snapshot Final
    All the HPR child implementation revisions contain an additional QDB FILE PARTITION assignment:
    set_instance_assignment -name QDB_FILE_PARTITION \
        a10_pcie_devkit_cvp_ddr4_access_pr_partition_final.qdb -to \
        u_top|design_core|pr_region_wrapper|pr_persona_wrapper|u_pr_logic
    This assignment imports the .qdb file representing the HPR parent region into the subsequent HPR child region compilation. Because the HPR child revisions comprise of two child regions, they contain two ENTITY REBINDING assignments.
    set_instance_assignment -name ENTITY_REBINDING \
        basic_arithmetic_persona_top -to \
        u_top|design_core|pr_region_wrapper| \
        pr_persona_wrapper|u_pr_logic|u0|child_region_0|u_child_pr_logic
     
    set_instance_assignment -name ENTITY_REBINDING \
        basic_arithmetic_persona_top -to \
        u_top|design_core|pr_region_wrapper|pr_persona_wrapper| \
        u_pr_logic|u0|child_region_1|u_child_pr_logic
  7. To compile the HPR child personas, run the following commands:
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_basic_arithmetic
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_basic_dsp
    quartus_sh --flow compile a10_pcie_devkit_cvp -c \
          a10_pcie_devkit_cvp_gol