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# 61144

Vivado - OOC related files (dcp/stub/funcsim files) are not generated after upgrade_ip and generate_target script commands


I have a Vivado project with an IP core.

This IP core had OOC related files under the IP directory.

I use the upgrade_ip command to get the latest version of the IP (for example if I've moved to a new version of Vivado or I've edited a user IP with the IP Packager)

I then regenerate the output products with the generate_target command, but the OOC related files (dcp/stub/funcsim files) are not generated in the IP directory.

they are also NOT displayed in the IP Sources window. 


If the user runs "upgrade_ip" from the Tcl console the IP is successfully upgraded and the IP remains in an OOC context.

If the user then goes on to generate the IP, the flow correctly delivers the HDL files and invokes an OOC synthesis run which runs to completion.

However the outputs are not subsequently registered with the IP.

The sequence of Tcl commands here is:

upgrade_ip <ip> 
generate_target all [get_files <ip.xci>]
reset_run <ip>_synth_1
launch_run <ip>_synth_1

At the completion of these commands:
  1. The newly generated .dcp file *IS NOT* copied into the IP directory nor are the funcsim models.
  2. The BOM file does not refer to them (which is correct given the situation).
  3. The old funcsim models are left in the IP directory.

Using the Vivado GUI completes successfully. 

Looking at the Tcl console output after updating and regenerating from the GUI you will see the following Tcl commands:
upgrade_ip -srcset <ip> -vlnv [get_ips <ip>] 
delete_ip_run [get_ips <ip>]
generate_target all [get_files <ip>.xci]
create_ip_run [get_files -of_objects [get_fileset sources_1] <ip>.xci]
launch_run <ip>_synth_1

The key difference is the delete_ip_run/create_ip_run commands.

Add these steps to the user Tcl commands and then the flow will work as expected.

AR# 61144
Date 06/20/2014
Status Active
Type General Article
  • FPGA Device Families
  • Vivado Design Suite - 2013.4