We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 60908

Vivado Partial Reconfiguration - How to add Reconfigurable Modules with multiple netlists into the design


How can I add Reconfigurable Modules (RM) with multiple netlists into my design?


If a Reconfigurable Module has sub-module netlists, it can be difficult for the Vivado tools to process the sub-module netlists.

This is because in the Partial Reconfiguration (PR) flow the RM netlists are added to a design that is already open in memory.

This means that the update_design -cells command must be used, which requires the cell name for every EDIF file, which can be difficult to get.  

There are two ways to make loading RM sub-module netlists easier in Vivado Design Suite.

Method 1: Create a Single RM Checkpoint (DCP)
Create an RM checkpoint (DCP) that includes all netlists.

In this case all of the EDIF (or NGC) files can be added using add_files, and link_design can be used to resolve the EDIF files to their respective cells.
Here is an example of the commands used in this process:

add_files [list rm.edf ip_1.edf ip_n.edf]
# Run if RM XDC exists
add_files rm.xdc
link_design -top <rm_module> -part <part>
write_checkpoint rm_v#.dcp

Then this newly-created RM checkpoint can be used in the PR flow.

In the commands below, the single read_checkpoint -cell command replaces what could be many update_design -cell commands.

add_files static.dcp
link_design -top <top> part <part>
lock_design -level routing
read_checkpoint -cell <rm_inst> rm_v#.dcp

Method 2: Place the Sub-Module Netlists in the Same Directory as the RMs Top-Level Netlist

When the top-level RM netlist is read into the PR design using update_design -cell, make sure that all sub-module netlists are in the same directory as the RM's top-level netlist.
In this case the lower level netlists do not need to be specified, but they will be picked up automatically by the update_design -cells command.
This is less explicit than Method 1, but requires fewer steps.
In this case the commands to load the RM netlist would look like the following:

add_files static.dcp
link_design -top <top> part <part>
lock_design -level routing
update_design -cells <rm_inst> -from_file rm_v#.edf

In the last (update_design) command above, the lower level netlists will get picked up automatically if they are in the same directory as rm_v#.edf.


AR# 60908
Date Created 06/02/2014
Last Updated 03/06/2015
Status Active
Type General Article
  • Kintex-7
  • Artix-7
  • Virtex-7
  • Vivado Design Suite
  • Vivado Design Suite - 2014.2
  • Vivado Design Suite - 2014.3
  • Vivado Design Suite - 2014.4