GTS Dynamic Reconfiguration Controller IP User Guide: Agilex™ 5 FPGAs and SoCs

ID 849710
Date 4/18/2025
Public

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

Document Table of Contents

6.2. Defining DR Combinations

DR combinations include combinations of IP variants that can be enabled simultaneously. Each variant must be in at least one combination, with the startup state being the only required combination. Defining other combinations is optional and prompts Quartus to perform additional legality checks.

An example of this assignment is shown below:

set_instance_assignment -name DR_COMBINATION <N> -to
 <instance name> -section_id <DR Group name> 
The above QSF assignment specifies that this variant IP instance is part of combination N. Combinations can start at 0 (and they do by default). The following QSF assignment specifies that combination N is the startup combination.
set_global_assignment -name DR_GROUP_STARTUP_COMBINATION <N> -section_id <DR Group name>
Here is an example of the .qsf settings for a DR Group with two variant IP instances:
set_instance_assignment -name DR_IP_INSTANCE ip_variant_1 
            -to ip_variant_1_inst -section_id dr_top 
set_instance_assignment -name DR_IP_INSTANCE ip_variant_2 -to 
            ip_variant_2_inst -section_id dr_top
set_instance_assignment -name DR_GROUP_RECONFIG_ID 1 -to 
            ip_variant_1_inst -section_id dr_top
set_instance_assignment -name DR_GROUP_RECONFIG_ID 2 -to 
          ip_variant_2_inst -section_id dr_top
set_instance_assignment -name DR_IP_INSTANCE_RELATIVE_LOCATION 0 -to
          ip_variant_1_inst -section_id dr_top
set_instance_assignment -name DR_IP_INSTANCE_RELATIVE_LOCATION 0 -to 
         ip_variant_2_inst -section_id dr_top
set_instance_assignment -name DR_COMBINATION 1 -to 
            ip_variant_1_inst -section_id dr_top
set_instance_assignment -name DR_COMBINATION 2 -to 
ip_variant_2_inst -section_id dr_top
set_global_assignment -name DR_GROUP_STARTUP_COMBINATION 1 -section_id dr_top

Finally, configure the system_pll_clock and system_pll_lock signals for each hard IP instance as shared pins to ensure proper handling by the dynamic reconfiguration IP generation tool, as follows:

set_instance_assignment -name DR_SHARED_CLOCK i_system_pll_clk[0] -to 
          ip_variant_1_inst|i_system_pll_clk[0] -section_id dr_top
set_instance_assignment -name DR_SHARED_CLOCK i_system_pll_clk[0] -to 
          ip_variant_2_inst|i_system_pll_clk[0] -section_id dr_top
set_instance_assignment -name DR_SHARED_CLOCK i_system_pll_lock[0] -to
          ip_variant_1_inst|i_system_pll_lock[0] -section_id dr_top
set_instance_assignment -name DR_SHARED_CLOCK i_system_pll_lock[0] -to 
          ip_variant_2_inst|i_system_pll_lock[0] -section_id dr_top
set_instance_assignment -name DR_SHARED_CLOCK i_pma_cu_clk[0] -to 
          ip_variant_1_inst|i_pma_cu_clk[0] -section_id dr_top
set_instance_assignment -name DR_SHARED_CLOCK i_pma_cu_clk[0] -to
         ip_variant_2_inst|i_pma_cu_clk[0] -section_id dr_top
Note: Separate the i_pma_cu_clk signal per bank based on the final IP placement, as detailed in the GTS Transceiver PHY User Guide. If two variants share the reference clock, configure it as DR_SHARED_CLOCK:
set_instance_assignment -name DR_SHARED_CLOCK i_shared_rx_cdr_refclk[0] -to 
            ip_variant_1_inst|i_rx_cdr_refclk_p[0] -section_id dr_top
set_instance_assignment -name DR_SHARED_CLOCK i_shared_rx_cdr_refclk[0] -to
           ip_variant_2_inst|i_rx_cdr_refclk_p[0] -section_id dr_top
Note: This creates new pins named i_shared_rx_cdr_refclk and i_shared_tx_pll_refclk on the generated DR Group module, replacing the variant-specific rx_cdr_refclk and tx_pll_refclk pins. You can specify any pin names you prefer; these are just examples.