Quartus® Prime Pro Edition User Guide: Design Constraints

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

2.2.3.1. Defining a Dynamic Reconfiguration Group

You can define a dynamic reconfiguration group to declare the tree structure that defines how dynamic reconfiguration operates for all of the IP instances that you assign to the group. The reconfiguration group can be either Exclusive (only one DR group IP instance is active at any time), or Inclusive (any combination of DR group IP instances can be active at any time).

You define the members and properties of the group, and then assign the tile placement of the group members. The Tile Assignment Editor allows you to easily create a dynamic reconfiguration group scheme in a unified GUI. You can then visualize and interactively place the dynamic reconfiguration group in the Tile Interface Planner floorplan.

When you place or unplace any member IPs of a multirate DR group, Tile Interface Planner also appropriately places or unplaces the children and sibling IPs in the DR group automatically. You can then expand and refine the placement of member IPs individually.

  1. Define and add to your project all of the dynamically reconfigurable IP instances to be included in the dynamic reconfiguration group or groups, as Step 1: Instantiate IP and Run Design Analysis describes. Connect the IP instances in a manner that is compatible with the dynamic reconfiguration scheme that you want to create.
    Figure 45. Dynamically Reconfigurable IP In Project Navigator
  2. To run the Design Analysis stage of the Compiler, double-click Design Analysis on the Compilation Dashboard. Design Analysis discovers your project's dynamically reconfigurable IP instance information for use in Tile Assignment Editor and Tile Interface Planner.
  3. To open Tile Assignment Editor, click Assignments > Tile Assignment Editor. Tile Assignment Editor displays the Name, Type, and other Properties of the ungrouped and any grouped IP instances that are valid for dynamic reconfiguration grouping within your project.
    Figure 46. Tile Assignment Editor GUI
  4. To define a new DR group, double-click <<new DR group>> in the Tile Assignment Editor Name column. The Create New DR Group dialog box appears.
  5. In the Group name box, specify a name for the DR group, along with the following options:
    Table 24.  Create New DR Group Options
    Option Description
    Group parent Specifies that the DR group is the <root> (parent), or allows you to select an existing DR group as the parent to newly created dynamic reconfiguration group..
    Group type Specifies that the group is Exclusive (only one IP instance is active at any given time) or Inclusive (Any combination of IP instances may be active at any given time). Default value is Exclusive.
    Reconfig controller Allows you to select the appropriate reconfiguration controller for the group. You may have multiple reconfiguration controllers in your project.2
    Has master clock channel By default, the group inherits this value from the Specifies On if your IP group has a master clock channel, or Off if your IP group does not have a master clock channel. When On, you can also specify the Building block instance name and the Clock port of the master clock channel.
    Figure 47. Create New DR Group Dialog Box
  6. To add IP instances to a DR group, right-click the DR instance name and then click Move IP Instance. In Move to group, select the DR group to add the IP instance and click OK.
    Figure 48. Move Item To Group
  7. To specify the startup instance, right click any instance and then click Toggle as startup IP instance.
    Figure 49. Moved Item Within DR Group
  8. Once you are done defining the DR groups for the project, click Save Tile Assignment Editor to save the tile assignments to the project .qsf.
    Figure 50. DR Group Assignments in QSF
  9. Use the DR groups to place DR groups in Tile Interface Planner, as Assigning Dynamic Reconfiguration Group Placement describes.
2 If you do not specify this option child DR groups inherit this value from the parent.