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

ID 683687
Date 1/16/2024
Public

Step 8: Preparing the PR Implementation Revisions for Parent PR Partition

You must prepare the parent and child PR implementation revisions before you can generate the PR bitstream for device programming. This setup includes mapping the new PR logic to the preexisting parent PR partition.
  1. To set the current revision, click Project > Revisions, select hpr_parent_slow_child_default as the Revision name, and then click Set Current.
  2. To verify the correct source for this implementation revision, click Project > Add/Remove Files in Project. The blinking_led_child.sv file appears in the file list.
    Figure 8. Add/Remove Files in Project
  3. Use Add/Remove Files in Project to add the appropriate parent and child persona source files for each implementation revision. Remove any source files that don't apply to the implementation.
    Implementation Revision Name Parent Persona Source File Child Persona Source File
    hpr_parent_slow_child_default blinking_led_slow.sv blinking_led_child.sv
  4. To specify 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 9. Specify Partition Database File
    Alternatively, the following command assigns this file:
    set_instance_assignment -name QDB_FILE_PARTITION \
    	blinking_led_static.qdb -to |
  5. In the Entity Re-binding cell, specify the entity name for the PR parent partition. For this implementation revision, the entity name is blinking_led_slow. blinking_led_slow is the name of the entity that you are partially reconfiguring. u_blinking_led is the name of the instance that your entity overwrites during PR.
  6. Verify that the following line now exists in the .qsf:
    #hpr_parent_slow_child_default.qsf
    set_instance_assignment -name ENTITY_REBINDING \
          blinking_led_slow -to u_blinking_led
    Note: Because the child PR logic is already defined by the parent PR partition, whose entity name is rebound, do not use an entity rebinding assignment for the child PR partition.
    Figure 10. Entity Re-binding
  7. To compile the design, click Processing > Start Compilation. Alternatively, the following command compiles this project:
    quartus_sh --flow compile blinking_led –c hpr_parent_slow_child_default
  8. To export this new parent PR partition as a finalized .qdb file, click Project > Export Design Partition. Specify the following options for the partition:
    Table 6.  Export Design Partition Options
    Option Setting
    Partition name pr_parent_partition
    Partition database file <project>/pr_parent_partition_slow_final.qdb
    Include entity-bound SDC files Enable
    Snapshot Final

    Alternatively, the following command exports the parent PR region:

    quartus_cdb -r blinking_led -c blinking led --export_block root_partition \
      --snapshot final --file --include_sdc_entity_in_partition \
      pr_parent_partition_slow_final.qdb
  9. Inspect the files generated to the output_files directory:
    Table 7.  Generated Files
    Name Type Description
    hpr_parent_slow_child_default.pr_parent_partition.rbf PR bitstream file for parent PR partition For programing the default persona for the parent PR region. Causes the led_two_on to blink at a lower rate.
    hpr_parent_slow_child_default.pr_parent_partition.pr_partition.rbf PR bitstream file for child PR partition For programming the default persona for the child PR region. Causes the led_three_on to blink at the default rate.
    pr_parent_partition_slow_final.qdb Finalized .qdb database file For import of the slow parent PR partition.