AN 954: Hierarchical Partial Reconfiguration Tutorial: for the Intel Agilex® 7 FPGA Development Board

ID 683687
Date 1/16/2024
Public

Step 9: 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 specify the correct child persona source file for each implementation revision, click Project > Add/Remove Files in Project. Verify that blinking_led_child.sv appears in the file list.
    Figure 11. Add/Remove Files in Project
  3. Repeat steps 1 through 2 to specify the following child persona source files for the other implementation revisions:
    Table 8.  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 12. Specify Partition Database 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 pr_parent_partition and specify the respective .qdb file in the project directory.
    Table 9.  Specify the Parent PR Partition .qdb File
    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 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 13. Entity Rebinding Assignment
    #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. 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
  8. Repeat the above steps 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.
  9. Inspect the bitstream files generated to the output_files directory.
    Note: Since you imported the parent PR partition as a finalized .qdb file, and used entity-rebinding only on the child PR region, the software generates the PR bitstream only for the child PR partition.

    Verify that the output_files directory contains the following generated .rbf files after compiling all the implementation revisions:

    • 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