AN 954: Hierarchical Partial Reconfiguration Tutorial: for the Intel® Agilex® F-Series FPGA Development Board

ID 683687
Date 8/04/2021
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Step 4: Allocating Placement and Routing Region for PR Partitions

When you create the base revision, the PR design flow uses your PR partition region allocation to place the corresponding persona core in the reserved region. To locate and assign the PR region in the device floorplan for your base revision:
  1. Right-click the u_blinking_led_child instance in the Project Navigator and click Logic Lock Region > Create New Logic Lock Region. The region appears on the Logic Lock Regions Window.
  2. Specify a region Width of 4 and Height of 3.
  3. Specify the placement region coordinates for blinking_led_child in the Origin column. The origin corresponds to the lower-left corner of the region. Specify the Origin as X163_Y4. The Compiler calculates (X166_Y6) as the top-right coordinate.
    Note: This tutorial uses the (X1 Y1) co-ordinates - (163 4), a height of 3 and a width of 4 for the placement region. Define any value for the placement region. Ensure that the region covers the blinking_led_child logic.
  4. Enable the Reserved and Core-Only options.
  5. Double-click the Routing Region option. The Logic Lock Routing Region Settings dialog box appears.
  6. Select Fixed with expansion for the Routing type. Selecting this option automatically assigns an expansion length of 2. The routing region must be larger than the placement region to accommodate the routing of different personas.
  7. Repeat steps 1-6 for the u_blinking_led instance. The parent-level placement region must fully enclose the corresponding child-level placement and routing regions, while allowing sufficient space for the parent-level logic placement. Specify a Height of 9, and Width of 10. Specify the Origin as X160 Y1. The Compiler calculates the top-right coordinate.
    Figure 5. Logic Lock Regions Window
Verify that the blinking_led.qsf contains the following assignments, corresponding to your floorplanning:
set_instance_assignment -name PLACE_REGION "X163 Y4 X166 Y6" -to \
     u_blinking_led|u_blinking_led_child
set_instance_assignment -name RESERVE_PLACE_REGION ON \
     -to u_blinking_led|u_blinking_led_child
set_instance_assignment -name CORE_ONLY_PLACE_REGION ON -to \
     u_blinking_led|u_blinking_led_child
set_instance_assignment -name REGION_NAME u_blinking_led_child -to \
     u_blinking_led|u_blinking_led_child
set_instance_assignment -name ROUTE_REGION "X161 Y2 X168 Y8" -to \
     u_blinking_led|u_blinking_led_child
set_instance_assignment -name RESERVE_ROUTE_REGION OFF -to \
     u_blinking_led|u_blinking_led_child
set_instance_assignment -name PLACE_REGION "X160 Y1 X169 Y9" \
     -to u_blinking_led
set_instance_assignment -name RESERVE_PLACE_REGION ON -to \
     u_blinking_led
set_instance_assignment -name CORE_ONLY_PLACE_REGION ON -to \
     u_blinking_led
set_instance_assignment -name REGION_NAME u_blinking_led -to \
     u_blinking_led
set_instance_assignment -name ROUTE_REGION "X159 Y0 X170 Y10" -to \
     u_blinking_led