Step 5: Adding IP in the Reconfigurable Module - 2022.1 English

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
Release Date
2022.1 English

Looking back at the Partition Definitions tab, expand the added RM math_rp to see that there are three submodules that must be added to complete its functionality, as indicated by the question mark icons.

Figure 1. Partition Definitions Tab with Missing Sources for add

All three of these missing modules are IP. The IP instances must be unique within each RM, so the same ILA core instance cannot be used from static or another RM.

  1. Right-click the ila_mult instance within the mult RM and select Copy IP.
  2. Set the Destination IP Name to ila_add and leave the Destination IP Location as is, then click OK.
    Figure 2. Copying the ILA from math to add

    This copied IP will be placed in the main Sources hierarchy window in the primary design fileset, so it must be moved to the add RM blockset.

  3. In the Hierarchy tab, right-click on the ila_add instance and select Move to Reconfigurable Module. Select the add RM and click OK.
    Figure 3. Moving IP to an RM

    If you navigate back to the partitions definitions tab, you’ll see the ILA IP instance was properly moved under the add RM.

  4. Open the IP Catalog and search on add to find the Adder/Subtracter IP. Open this IP and customize it with these non-default options, leaving the name set to c_addsub_0:
    • Input Type: Unsigned (for both A and B)
    • Input Width: 5 (for both A and B)
    • Output Width: 6
    • Latency: 0
    • Uncheck the Clock Enable on the Control tab
  5. Click OK.
    Figure 4. Customizing the Adder/Subtracter IP

  6. Click Skip to complete IP generation.

    Like with the ILA IP, this has been added to the main source set, so follow the same procedure to move it to the add RM.

  7. In the Hierarchy tab of the Sources window, right-click on the c_addsub_0 instance and select Move to Reconfigurable Module.

    Select the add RM and click OK.

Note that this IP is used for both adder function instances within the add RM. At this point, the entire design has been loaded, and you are ready to move on to implementation.