cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
spencer.williams
Observer
Observer
662 Views
Registered: ‎12-30-2018

Partial reconfiguration - Shared IP sources missing in second reconfigurable module

Hello,

I'm working on a design which includes a partial reconfiguration component. The default RM is called STANDARD_SIGNAL and the second variant is called NON_OPERATIONAL. With only STANDARD_SIGNAL in the project I have successfully completed a full design run. Adding NON_OPERATIONAL into the project is where I am running into trouble. Specifically the IP sources which are common to both RMs appear missing in the NON_OPERATIONAL. In the partition definition when I expand the hierarchy for NON_OPERATIONAL the instances of IP sources appear with "?" icons indicating that those sources are missing. Attempting to synthesize the design results in an error for the NON_OPERATIONAL ooc synth run due to an IP module not being found.

I generate the project including the reconfigurable partition and both RMs using a TCL script. The IP sources are locked and are added to each RM using the 'add_files' command to add the .xci file into each RM fileset. An identical command is used to add IP sources to both RMs. The specific IP called out in the error which is causing synthesis to fail is added to the project by these commands:

add_files -quiet ${origin_dir}/../src/ip_cores/gty_wrapper/gty_wrapper.xci -of_objects [get_reconfig_modules STANDARD_SIGNAL]
add_files -quiet ${origin_dir}/../src/ip_cores/gty_wrapper/gty_wrapper.xci -of_objects [get_reconfig_modules NON_OPERATIONAL]

I have attempted to use the partial reconfiguration wizard to manually add the IP source files to NON_OPERATIONAL. The result is a couple of critical warnings that tell me the IP is already in the project.

CRITICAL WARNING: [IP_Flow 19-3389] Failed to import IP file '[PATH REMOVED]/src/ip_cores/gty_wrapper/gty_wrapper.xci': IP name 'gty_wrapper' is already in use in this project.  Please choose a different name.
CRITICAL WARNING: [Vivado 12-1464] The source file '[PATH REMOVED]/src/ip_cores/gty_wrapper/gty_wrapper.xci' cannot be added to the fileset 'NON_OPERATIONAL'.

I am not commanding Vivado to create separate filesets nor libraries for each reconfigurable module. The IP sources used in both RMs are contained within xil_defaultlib.

0 Kudos
3 Replies
davidd
Xilinx Employee
Xilinx Employee
590 Views
Registered: ‎11-17-2008

@spencer.williams,

One requirement of IP in a DFX (was: Partial Reconfiguration) project flow is that each IP instance must be unique, even if the IP functionality is identical in each case.  So as the critical warning states, a new .xci instance is required if the next IP is to be instantiated in a different partition in the design.  This is documented in Chapter 4 of UG909.  It is a restriction we would like to remove in a future Vivado release, but it is not currently scheduled.

To most easily work around this limitation, copy the existing IP to make a new IP with the same customization, then move that new IP to the target RM.  Example Tcl code to do this would look something like this (with adjustments for paths, etc.):

copy_ip -name gty_wrapper2 -dir ${origin_dir}/../src/ip_cores/gty_wrapper [get_ips gty_wrapper] 
move_files -of_objects [get_reconfig_modules NON_OPERATIONAL] [get_files ${origin_dir}/../src/ip_cores/gty_wrapper2.xci]

 thanks,

david.

0 Kudos
spencer.williams
Observer
Observer
577 Views
Registered: ‎12-30-2018

Does changing the name of the XCI file not change the component name? If it does then that would mean that any HDL source using that IP component would have to be duplicated and modified to reflect the new name of the copied IP in the component declaration and instance. 

0 Kudos
davidd
Xilinx Employee
Xilinx Employee
539 Views
Registered: ‎11-17-2008

That is correct.

0 Kudos