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.
1. Overview
2. Quick Start Guide
3. Configuring and Generating the IP
4. Integrating the GTS Dynamic Reconfiguration Controller IP With Your Application
5. Designing with the IP Core
6. Designing the IP Solution
7. Sharing Clocking and Applying SDC Constraints
8. Runtime Flow
9. Simulating the IP
10. Validating the IP
11. Appendix A: Functional Description
12. Registers
13. Document Revision History for the GTS Dynamic Reconfiguration Controller IP User Guide
3.1. Configuring the Quartus® Prime Pro Edition Project
3.2. Generating Dynamic Reconfiguration Design and Configuration Profiles
3.3. Generating HDL for Synthesis and Simulation
3.4. Using the Dynamic Reconfiguration Assignment Editor
3.5. Generating HSSI Dynamic Reconfiguration IP
3.6. Generating the Design Example
3.7. Compiling the Design Example
4.1. High-Level Interface Types
4.2. Dependent/Supporting IPs
4.3. Implementing Required Clocking
4.4. Implementing Required Resets
4.5. Implementing Required AVMM Interface
4.6. Control and Status Interface
4.7. Implementing Mux Selector Interface
4.8. Implementing SRC Interface
4.9. Implementing Local AVMM Interface
4.10. Connecting the Interfaces
4.11. Signal Functions
4.12. Integrating the IP With User Logic
4.13. Integrating the IP With Your Board
4.14. Integrating the IP on the Stack With a Software Driver
12.1.1. Register Next ID Configuration 0
12.1.2. Register Next ID Configuration 1
12.1.3. Register Next ID Configuration 2
12.1.4. Register Next ID Configuration 3
12.1.5. Register Next ID Configuration 4
12.1.6. Register Next ID Configuration 5
12.1.7. Register Next ID Configuration 6
12.1.8. Register Next ID Configuration 7
12.1.9. Register Next ID Configuration 8
12.1.10. Register Next ID Configuration 9
12.1.11. Register Next ID Configuration 10
12.1.12. Register Next ID Configuration 11
12.1.13. Register Next ID Configuration 12
12.1.14. Register Next ID Configuration 13
12.1.15. Register Next ID Configuration 14
12.1.16. Register Next ID Configuration 15
12.1.17. Register Next ID Configuration 16
12.1.18. Register Next ID Configuration 17
12.1.19. Register Next ID Configuration 18
12.1.20. Register Next ID Configuration 19
12.1.21. Register Trigger
12.1.22. Register Trigger Status
12.1.23. Register Error Configuration
12.1.24. Register Error Status
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.