AN 806: Hierarchical Partial Reconfiguration Tutorial: for Intel® Arria® 10 GX FPGA Development Board

ID 683278
Date 2/04/2021
Public

Step 10: Preparing the PR Implementation Revisions for Child PR Partitions

This setup includes adding the static region .qdb file as the source file for each implementation revision. In addition, you must import the parent PR partition .qdb file and specify the corresponding entity of the PR region.
  1. To set the current revision, click Project > Revisions, select hpr_child_default as the Revision name, and then click Set Current.
  2. To verify the correct source for each implementation revision, click Project > Add/Remove Files in Project. Confirm that the blinking_led_child.sv file appears in the file list.
    Figure 16. Confirming Source File
  3. Repeat steps 1 through 2 to verify the other implementation revision source files:
    Implementation Revision Name Child Persona Source File
    hpr_child_default blinking_led_child.sv
    hpr_child_slow blinking_led_child_slow.sv
    hpr_child_empty blinking_led_child_empty.sv
    hpr_parent_slow_child_slow blinking_led_child_slow.sv
  4. To verify the .qdb file associated with the root partition, click Assignments > Design Partitions Window. Specify the .qdb file associated with the static region by double-clicking the Partition Database File cell and navigating to the blinking_led_static.qdb file.
    Figure 17. Specifying the QDB File
    Alternatively, the following command assigns this file:
    set_instance_assignment -name QDB_FILE_PARTITION \
    		blinking_led_static.qdb -to |
  5. To specify the parent PR partition .qdb file, click Assignments > Design Partitions Window. Double-click the Partition Database File for the parent_pr_partition and specify the respective .qdb file in the project directory.
    Table 7.  Implementation Revisions
    Implementation Revision Name Parent Persona .qdb File
    hpr_child_default pr_parent_partition_default_final.qdb
    hpr_child_slow pr_parent_partition_default_final.qdb
    hpr_child_empty pr_parent_partition_default_final.qdb
    hpr_parent_slow_child_slow pr_parent_partition_slow_final.qdb

    Verify that the following line exists in the .qsf:

    # To use the default parent PR persona:
    set_instance_assignment -name QDB_FILE_PARTITION \
          pr_parent_partition_default_final.qdb -to u_blinking_led
    
    # To use the slow parent PR persona:
    set_instance_assignment -name QDB_FILE_PARTITION \
          pr_parent_partition_slow_final.qdb -to u_blinking_led
  6. In the Entity Re-binding cell, specify the entity name of the child PR partition. For the default persona, the entity name is blinking_led. For this implementation revision, blinking_led_child is the name of the entity that you are partially reconfiguring. u_blinking_led|u_blinking_led_child is the name of the instance that your entity overwrites during PR. Verify that the following line now exists in the .qsf:
    Figure 18. Entity Rebinding
    #hpr_child_default.qsf
    set_instance_assignment -name ENTITY_REBINDING \
          blinking_led_child -to u_blinking_led|u_blinking_led_child
    
    #hpr_child_slow.qsf and hpr_parent_slow_child_slow.qsf
    set_instance_assignment -name ENTITY_REBINDING \
          blinking_led_child_slow -to u_blinking_led|u_blinking_led_child
    
    #hpr_child_empty.qsf
    set_instance_assignment -name ENTITY_REBINDING \
          blinking_led_child_empty -to u_blinking_led|u_blinking_led_child
  7. Before compiling the implementation revision, ensure that the corresponding .qsf file contains the following assignments:
    
    set_global_assignment -name GENERATE_PR_RBF_FILE ON
    set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION OFF
    These assignments allow the Assembler to automatically generate the required PR bitstreams.
  8. To compile the design, click Processing > Start Compilation. Alternatively, the following command compiles this project:
    quartus_sh --flow compile blinking_led –c hpr_child_default
  9. Repeat the steps 1-8 to prepare hpr_child_slow, hpr_child_empty, and hpr_parent_slow_child_slow revisions.
    Note: You can specify any Fitter specific settings that you want to apply during the PR implementation compilation. Fitter specific settings impact only the fit of the persona, without affecting the imported static region.
  10. Inspect the bitstream files generated to the output_files directory. Verify that the output_files directory contains the following generated .rbf files after compiling all the implementation revisions:
    • hpr_child_default.pr_parent_partition.rbf
    • hpr_child_slow.pr_parent_partition.rbf
    • hpr_child_empty.pr_parent_partition.rbf
    • hpr_parent_slow_child_slow.pr_parent_partition.rbf
    • hpr_child_default.pr_parent_partition.pr_partition.rbf
    • hpr_child_slow.pr_parent_partition.pr_partition.rbf
    • hpr_child_empty.pr_parent_partition.pr_partition.rbf
    • hpr_parent_slow_child_slow.pr_parent_partition.pr_partition.rbf