Quartus® Prime Pro Edition User Guide: Partial Reconfiguration

ID 683834
Date 4/01/2024
Public
Document Table of Contents

1.7.3.2. Method 2: Set QSF Assignment for a Parameterized PR Persona

In PR file management method 2, you specify an assignment in the .qsf file that sets a parameter or generic to a targeted PR region. The following apply to this method:

  • The parameter change applies to the top-level instance of a PR partition.
  • Supports application to multiple PR partitions.
  • Supports both VHDL and Verilog HDL.

For example, consider the design that Method 1 (Preferred): Specify Unique Entity and File Names for Each Persona describes, with two PR regions, each with three possible personas for each PR region.

In the following example, u_fruit_0 and u_fruit_1 are set as the PR partitions and regions in the base compile. The FRUIT_TYPE parameter of 0 generates the apple entity for the PR personas.

Figure 25. Setting the PR Partitions and Regions in the Base Compile

You can then change the parameter values to change the personas.

For example, to set orange as the persona for both PR regions, specify the following in the PR implementation revision’s .qsf file:

  1. Add the following lines to set the FRUIT_TYPE parameter to 1:
    set_instance_assignment -name RTL_PARAMETER "FRUIT_TYPE=1" -to u_fruit_0
    set_instance_assignment -name RTL_PARAMETER "FRUIT_TYPE=1" -to u_fruit_1
    
  2. Specify the entity rebinding assignment to associate the fruit entity with instances of u_fruit_0 and u_fruit_1:
    set_instance_assignment -name ENTITY_REBINDING fruit -to u_fruit_0 
    set_instance_assignment -name ENTITY_REBINDING fruit -to u_fruit_1

The following additional example sets orange as the persona for the first PR region, and banana as the persona for the second PR region. Similarly, specify the following in the PR implementation revision’s .qsf file:

  1. Add the following lines to set the FRUIT_TYPE parameter to 1 for the first PR region, u_fruit_0 and 2 for the second PR region, u_fruit_1:
    set_instance_assignment -name RTL_PARAMETER "FRUIT_TYPE=1" -to u_fruit_0
    set_instance_assignment -name RTL_PARAMETER "FRUIT_TYPE=2" -to u_fruit_1
  2. Specify the entity rebinding assignment to associate the fruit entity with instances of u_fruit_0 and u_fruit_1:
    set_instance_assignment -name ENTITY_REBINDING fruit -to u_fruit_0
    set_instance_assignment -name ENTITY_REBINDING fruit -to u_fruit_1