If a RM has sub-module netlists, it can be difficult for the Vivado tools to process the sub-module netlists. This is
because in the DFX flow the RM netlists are added to a design that is already open in
memory. This means the update_design -cells
command must
be used, which requires the cell name for every EDIF file, which can be troublesome to
get.
There are two ways to make loading RM sub-module netlists easier in the Vivado Design Suite.
Method 1: Create a Single RM Checkpoint (DCP)
Create an RM checkpoint (DCP) that includes all netlists. Use
add_files
to add all of the EDIF (or NGC) files, and use
link_design
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
close_project
Then this newly-created RM checkpoint can be used in the DFX 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 RM's Top-Level Netlist
When the top-level RM netlist is read into the DFX design using update_design
-cell
, make sure that all sub-module netlists are in the same directory
as the RM top-level netlist. In this case, the lower-level netlists do not need to
be specified, but they are 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
are picked up automatically if they are in the same directory as
rm_v#.edf.