PLL Dynamic Reconfiguration Core User Guide
The PLL Dynamic Reconfiguration core allows users to change the PLL settings on an Efinix FPGA, without changing the settings in the Interface Designer, re-compiling, and re-generating the bitstream file. This IP core provides an efficient way to change the PLL settings on the fly after initial boot-up, without having to re-configure the FPGA.
Use the IP Manager to select IP, customize it, and generate files. The PLL Dynamic Reconfiguration core has an interactive wizard to help you set parameters. The wizard also has options to create a testbench and/or example design targeting an Efinix® development board.
This help gives you an overview of the PLL Dynamic Reconfiguration core and how to configure it with the IP Manager. For detailed information, refer to PLL Dynamic Reconfiguration Core User Guide in the Support Center.
Features
The PLL Dynamic Reconfiguration core includes the following features:
- Allows up to 85 PLL settings to be stored and reconfigure the PLL
- Allows the FPGA to revert to the original PLL settings in the bitstream file1
- Single configuration and multiple configuration mode
Functional Description
The PLL Dynamic Reconfiguration core is positioned between the user's logic and the PLL to facilitate the dynamic reconfiguration scheme.
Interface Designer Settings
Before generating the PLL Dynamic Reconfiguration core in the Efinity IP Manager, you must set up a PLL Block and generate a RAM Hex File in the Interface Designer. The RAM Hex File contains one or more PLL configuration settings to be stored in the built-in RAM in the PLL Dynamic Reconfiguration core.
Set Up the PLL and Enable the Dynamic Reconfiguration
- In the Interface Designer, add a PLL block.
- Click Automated Clock Calculation to open the PLL Clock Calulator.
- Specify a reference clock frequency.
- Turn on the Reset Pin option and enter
the name
user_pll_en. - Turn on the Locked Pin option and enter
the name
pll_lock. - Click Finish to close the PLL Clock Calculator.
- Click the Advanced Settings tab.
- Turn on Enable under Dynamic Reconfiguration.
- Enter the reference clock names.
- Create GPIO blocks for any external clocks and core clocks as needed. All clock names should be the same as the ones that you are using in your design. Names are case sensitive.
Generate the RAM Hex File
- Click to open the PLL Dynamic Reconfiguration Wizard.
- Click Add. In the Record Name
box, a new configuration setting names would appear, along with the numbering on
the left column.Note: The numbering on the left column is the ID of the configuration settings. During the Dynamic Reconfiguration with Multiple Configuration, you need to drive the signal
mif_selectionbased on this ID. - Click on the configuration file that you have just added and start customizing the configuration settings.
- Once you finish customizing the configuration settings, click Verify.
- Repeat steps 2, 3, and 4 to add as many configurations (up to 85 configurations) as desired.
- Enter a filename in the PLL Dynamic Reconfiguration File box or use the default filename.
- Finally, click Export.
IP Manager
The Efinity® IP Manager is an interactive wizard that helps you customize and generate Efinix® IP cores. The IP Manager performs validation checks on the parameters you set to ensure that your selections are valid. When you generate the IP core, you can optionally generate an example design targeting an Efinix development board and/or a testbench. This wizard is helpful in situations in which you use several IP cores, multiple instances of an IP core with different parameters, or the same IP core for different projects.
The IP Manager is included with the Efinity software v2020.2 and higher.
- IP Catalog—Provides a catalog of IP cores you can select. Open the IP Catalog using the toolbar button or using .
- IP Configuration—Wizard to customize IP core parameters, select IP core deliverables, review the IP core settings, and generate the custom variation.
- IP Editor—Helps you manage IP, add IP, and import IP into your project.
Generating the PLL Dynamic Reconfiguration Core with the IP Manager
- Open the IP Catalog.
- Choose core and click Next. The IP Configuration wizard opens.
- Enter the module name in the Module Name box.Note: You cannot generate the core without a module name.
- Customize the IP core using the options shown in the wizard. For detailed information on the options, refer to the Customizing the PLL Dynamic Reconfiguration Core section.
- In the Initial Reference Clock Setting, key in the
reference clock setting.Note: This reference clock setting must match the clock source of the PCR setting to prevent unintended clock switching during the FPGA power up. Refer to Reference Clock Selection.
- (Optional) In the Deliverables tab, specify whether to generate an IP core example design targeting an Efinix® development board and/or testbench. These options are turned on by default.
- (Optional) In the Summary tab, review your selections.
- Click Generate to generate the IP core and other selected deliverables.
- In the Review configuration generation dialog box,
click Generate. The Console in the
Summary tab shows the generation status.Note:
-
The PLL instance name is the same name you have created for the targeted PLL in Interface Designer.
-
Ensure that the Initial Reference Clock Setting is the same with what you have selected in the interface designer.
-
You can disable the Review configuration generation dialog box by turning off the Show Confirmation Box option in the wizard.
-
- When generation finishes, the wizard displays the Generation Success dialog box. Click OK to close the wizard.
The wizard adds the IP to your project and displays it under IP in the Project pane.
Generated Files
- <module name>_define.svh—Contains the customized parameters.
- <module name>_tmpl.sv—Verilog HDL instantiation template.
- <module name>_tmpl.vhd—VHDL instantiation template.
- <module name>.sv—IP source code.
- settings.json—Configuration file.
- <kit name>_devkit—Has generated RTL, example design, and Efinity® project targeting a specific development board.
- Testbench—Contains generated RTL and testbench files.
Instantiating the IP
- <module name>.v_tmpl.sv is the Verilog HDL module.
- <module name>.v_tmpl.vhd is the VHDL component declaration and instantiation template.
Customizing the PLL Dynamic Reconfiguration Core
The core has parameters so you can customize its function. You set the parameters in the General tab of the core's IP Configuration window.
| Parameter | Options | Description |
|---|---|---|
| Configuration Mode | Multi Configuration, Single Configuration | Multi
Configuration:
Select
multi-configuration
if
you
want to use more than one PLL
configuration setting. Single
Configuration:
Select single configuration
to
optimize the
resources
if you are only uisng one
configuration. |
| RAM Hex File Path | – | For multiple configuration, browse
to the
RAM
Hex file path. Refer to
Generate the RAM Hex File
topic
to create a RAM Hex file if
it
is unavailable. To generate the IP successfully, make sure
you
select the correct
file. |
| Configuration Setting | – | For single configuration, you need to
enter
the configuration
setting
(which is a string) into
this
box. To obtain the configuration
setting
string,
open
the <generated
RAM
Hex
file>.dyn_cfg.rpt
file. This report file
is
generated when the <generated
RAM
Hex
file>.hex
is
generated. |
| PLL Instance Name | – | Enter the PLL block name you created in the Interface Designer for the PLL you want to reconfigure. |
| Reference Clock Setting | External Clock 0, External Clock
1, Core Clock 0, Core Clock 1 |
Initial reference clock. Default: External clock
0 This option is the same as the Interface Designer's
reference clock settings. |