AN 817: Static Update Partial Reconfiguration Tutorial: for Intel® Arria® 10 GX FPGA Development Board

ID 683428
Date 7/15/2019
Public

1.5.3. Step 3: Allocate Placement and Routing Regions

For every base revision that you create, the Compiler uses the PR partition region allocation to place the corresponding persona core in the reserved region. Follow these steps to locate and assign a PR region in the device floorplan for your base revision:
  1. In the Project Navigator Hierarchy tab, right-click the u_blinking_led instance, and then click Logic Lock Region > Create New Logic Lock Region. The region appears in the Logic Lock Regions window.
  2. Specify a region Width of 5 and Height of 4.
  3. Specify the placement region coordinates for u_blinking_led in the Origin column. The origin corresponds to the lower-left corner of the region. Specify the Origin as X57_Y6. The Compiler calculates (X62_Y9) as the top-right coordinate.
  4. Enable the Reserved and Core-Only options for the region.
  5. Double-click the Routing Region option. The Logic Lock Routing Region Settings dialog box appears.
  6. For the Routing Type, select Fixed with expansion. This option automatically assigns an Expansion length of one.
  7. Repeat the previous steps to allocate the following resources for the u_top_counter partition:
    • Height4
    • Width5
    • OriginX64_Y6
    • Routing RegionFixed with expansion with Expansion length of one.
    Note: The routing region must be larger than the placement region, to provide extra flexibility for the Compiler's routing stage, when the Compiler routes different personas.
  8. Your placement region must enclose the blinking_led logic. To select the placement region by locating the node in Chip Planner, right-click the u_blinking_led region name in the Logic Lock Regions window, and then click Locate Node > Locate in Chip Planner.
  9. Under Partition Reports, double-click Report Design Partitions. The Chip Planner highlights and color codes the region.

    Alternatively, adding the following lines to blinking_led.qsf creates these regions:

    set_instance_assignment -name PARTITION supr_partition -to u_top_counter
    set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON -to \
         u_top_counter
    set_instance_assignment -name PLACE_REGION "X64 Y6 X68 Y9" -to \
         u_top_counter
    set_instance_assignment -name RESERVE_PLACE_REGION ON -to u_top_counter
    set_instance_assignment -name CORE_ONLY_PLACE_REGION ON -to u_top_counter
    set_instance_assignment -name ROUTE_REGION "X63 Y5 X69 Y10" -to \
         u_top_counter
    set_instance_assignment -name PARTITION pr_partition -to u_blinking_led
    set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON -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 PLACE_REGION "X57 Y6 X62 Y9" -to \ 
         u_blinking_led
    set_instance_assignment -name ROUTE_REGION "X56 Y5 X61 Y10" -to \
         u_blinking_led