AN 805: Hierarchical Partial Reconfiguration of a Design on Intel® Arria® 10 SoC Development Board

ID 683409
Date 11/06/2017
Public

Step 8: Generating the Hierarchical Partial Reconfiguration Flow Script

To generate the hierarchical partial reconfiguration flow script:
  1. From the Intel® Quartus® Prime command shell, create a flow template by running the following command:
    quartus_sh --write_flow_template -flow a10_hier_partial_reconfig
    Intel® Quartus® Prime generates the a10_hier_partial_reconfig/flow.tcl file.
  2. Rename the generated a10_​hier_partial_​reconfig/​setup.tcl.example to a10_​hier_partial_​reconfig/​setup.tcl, and modify the script to specify your partial reconfiguration project details:
    1. To define the name of the project, update the following line:
      define_project blinking_led
    2. To define the base revision, update the following line:
      define_base_revision blinking_led
    3. To define each of the partial reconfiguration implementation revisions, along with the PR partition names and the source revision that implements the revisions, update the following lines:
      ###############################################################################
      # SETUP CONFIGURTION SCRIPT
      ###############################################################################
      # Define the name of the project.
      define_project blinking_led
      
      # Define the base revision name. This revision represents the static
      # region of the design
      define_base_revision blinking_led
      
      # Define each of the partial reconfiguration implementation revisions
      define_pr_impl_partition -impl_rev_name blinking_led_pr_alpha \
      	-partition_name pr_partition \
      	-source_rev_name blinking_led_default \
      	-source_partition root_partition \
      	-source_snapshot synthesized
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_alpha \
      	-partition_name pr_parent_partition \
      	-source_rev_name blinking_led_parent \
      	-source_partition root_partition \
      	-source_snapshot synthesized
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_bravo \
      	-partition_name pr_partition \
      	-source_rev_name blinking_led_child_slow \
      	-source_partition root_partition \
      	-source_snapshot synthesized
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_bravo \
      	-partition_name pr_parent_partition \
      	-source_rev_name blinking_led_pr_alpha \
      	-source_partition pr_parent_partition \
      	-source_snapshot final
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_charlie \
      	-partition_name pr_partition \
      	-source_rev_name blinking_led_child_empty \
      	-source_partition root_partition \
      	-source_snapshot synthesized
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_charlie \
      	-partition_name pr_parent_partition \
      	-source_rev_name blinking_led_pr_alpha \
      	-source_partition pr_parent_partition \
      	-source_snapshot final
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_delta \
      	-partition_name pr_partition \
      	-source_rev_name blinking_led_child_slow \
      	-source_partition root_partition \
      	-source_snapshot synthesized
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_delta \
      	-partition_name pr_parent_partition \
      	-source_rev_name blinking_led_parent_slow \
      	-source_partition root_partition \
      	-source_snapshot synthesized
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_emma \
      	-partition_name pr_partition \
      	-source_rev_name blinking_led_child_empty \
      	-source_partition root_partition \
      	-source_snapshot synthesized
      
      define_pr_impl_partition -impl_rev_name blinking_led_pr_emma \
      	-partition_name pr_parent_partition \
      	-source_rev_name blinking_led_pr_delta \
      	-source_partition pr_parent_partition 
      
      Note: All the revision projects must be in the same directory as blinking_led.qpf. Otherwise, update the flow script accordingly.