AR# 53064


Vivado/XPS - Vivado designs containing XPS projects added as netlists cannot associate ELF in the tool


The XMP flow is recommended to add Embedded Sources to Vivado projects. Some designers prefer to add the Embedded Sources as netlist due to their third-party synthesis tools, however, in this flow the user cannot associate the ELF file to the processor using the Vivado tool.

How can I work around this problem?


If the designer cannot use the recommended XMP flow, then use the flow below.

Add the system.bmm and ELF files from the XPS/SDK project as source files in Vivado and use the following Tcl commands:

1) First, Associate the ELF file to the Processor.

For example:


The processor instance can be obtained by opening the implemented design (Ctrl+F) and search for the MicroBlaze processor:


The processor Instance will be shown in the find results, similar to below:


2) Next, the level of hierarchy where the BRAM exists needs to be specified. 

This is done with the Tcl command below:

set_property SCOPED_TO_REF "<XPS_MODULE_NAME>" [get_files <BMM_NAME>.bmm]

This instructs the Vivado tool to look for the XPS module (which will be the name of the XPS project added in Vivado) and apply the contents of the BMM file to that level of hierarchy.


For example, in the project above, this command will be:

set_property SCOPED_TO_REF "system" [get_files system.bmm]

if the back-annotated BMM file is required (BMM file with BRAM location defined), then run the command below with the implemented design open:

write_bmm <BMM File Name>_bd.bmm

3) Implement the design, and open the implemented design and run the command below:

write_bitstream <location to place .bit file>

For information on the Device Configuration Bitstream Settings, see page 64 of (UG908).

AR# 53064
Date 09/12/2017
Status Active
Type General Article
Tools More Less
People Also Viewed