Intel® Quartus® Prime Standard Edition User Guide: Partial Reconfiguration

ID 683499
Date 9/24/2018
Public
Document Table of Contents

1.3.3. Programming File Sizes for a Partial Reconfiguration Project

The programming file size for a partial reconfiguration bitstream is proportional to the area of the PR region.

A partial reconfiguration programming bitstream for AND/OR mode makes two passes on the PR region; the first pass clears all relevant bits, and the second pass sets the necessary bits. Due to this two-pass sequence, the size of a partial bitstream can be larger than a full FPGA programming bitstream depending on the size of the PR region.

When using the AND/OR mode for partial reconfiguration, the formula which describes the approximate file size within ten percent is:

PR bitstream size = ((Size of region in the horizontal direction) /(full horizontal dimension of the part)) * 2 * (size of full bitstream)

The way the Fitter reserves routing for partial reconfiguration increases the effective size for small PR regions from a bitstream perspective. PR bitstream sizes in designs with a single small PR region will not match the file size computed by this equation.

Note: The PR bitstream size is approximately half of the size computed above when using single-pass SCRUB mode. When you use the SCRUB mode with Use clear/set method turned on, the bitstream size is comparable to the size calculated for the AND/OR mode.
You can limit expansion of the routing regions in the LogicLock Regions Properties dialog box. Alt+L opens the LogicLock Regions Window, then right-click on a LogicLock region and click LogicLock Region Properties.
Figure 6. LogicLock Regions Properties dialog box

Turn on Partial reconfiguration, Reserved, Enabled, and Constrain routing to stay within region boundaries.

You can also control expansion of the routing regions by adding the following two assignments to your Intel® Quartus® Prime Settings file (.qsf):

set_global_assignment -name LL_ROUTING_REGION Expanded -section_id <region name> set_global_assignment -name LL_ROUTING_REGION_EXPANSION_SIZE 0 -section_id <region name>

Adding these to your .qsf disables expansion and minimizes the bitstream size.