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

Vivado IP Flows - synth_ip command results in: CRITICAL WARNING: [BD 41-1715] Block design 'bd_54be.bd' is set for out-of-context synthesis mode Hierarchical (Out of context per IP).


When using the non-project flow and running synth_ip, I receive the following Critical Warning:

CRITICAL WARNING: [BD 41-1715] Block design 'my_block.bd' is set for out-of-context synthesis mode Hierarchical (Out of context per IP). This is not supported in a non-project flow and
will be ignored. Please set the mode to None (Global Synthesis), or use Save Project As to save your work in a project flow to use this mode.

I subsequently receive errors like the following:

INFO: [Synth 8-638] synthesizing module 'debug_bridge_0' [/proj/.srcs/sources_1/ip/debug_bridge_0_5/synth/debug_bridge_0.v:58]
INFO: [Synth 8-638] synthesizing module 'bd_54be' [/proj//.srcs/sources_1/ip/debug_bridge_0_5/bd_0/hdl/bd_54be.v:13]
ERROR: [Synth 8-439] module 'bd_54be_xsdbm_0' not found [/proj/.srcs/sources_1/ip/debug_bridge_0_5/bd_0/hdl/bd_54be.v:68]
ERROR: [Synth 8-285] failed synthesizing module 'bd_54be' [/proj//.srcs/sources_1/ip/debug_bridge_0_5/bd_0/hdl/bd_54be.v:13]
ERROR: [Synth 8-285] failed synthesizing module 'debug_bridge_0' [/proj/.srcs/sources_1/ip/debug_bridge_0_5/synth/debug_bridge_0.v:58]


This is due to a Scoped Block Design (SBD) being synthesized, but not as an out of context (OOC) module in non-project mode. 'synth_ip' is not intended to work with OOC_NONE and is unsupported in Vivado 2016.x.

To work around this issue you can do the following:

1) Set out-of-context mode to None as instructed by the CRITICAL WARNING. For example:

set_property generated_synth_checkpoint false [get_files .xci])

OOC is unsupported for SBD IP in disk-less project mode.

2) Replace the 'synth_ip' command in Vivado script(s) with the synth_design command where applicable to avoid errors stating that the synth_ip command does not support OOC_MODE==NONE.

synth_ip supports OOC enabled IP only

Note: When using Vivado IDE, the GUI handles the synth_ip vs synth_design /launch_runs as needed.

In Vivado 2016.3 calling 'synth_ip' on an IP with OOC disabled (for example, SBD IP) will result in the following error:

ERROR: [Vivado 12-3437] This command only supports sub-design files marked for netlist generation. To enable this functionality, set the GENERATE_SYNTH_CHECKPOINT property to true. If the GENERATE_SYNTH_CHECKPOINT property is marked read-only, then select 'Report IP Status' from the 'Tools' menu, or run the 'report_ip_status' Tcl command to see why the sub-design is locked.

AR# 67849
Date 09/22/2016
Status Active
Type General Article
  • Vivado Design Suite - 2016.1