cancel
Showing results for 
Search instead for 
Did you mean: 
Observer
Observer
797 Views
Registered: ‎06-07-2010

ELF file association in Vivado non-project flow and ISE migration

Jump to solution

Hi,

While migrating a Microblaze design from ise 14.4 to Vivado 2017.4, I have stumbled through a couple of problems that gave rise to the following questions:

 

1. bitgen had an option to (-bd) to associate an ELF file to a bitstream.

In verbose mode it used to be possible to get a confirmation that design data were correctly locked to the BRAM locations, such as:

 

INFO::100 - BRAM 'embeddedProcessor/interface/microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_24' at 'RAMB16_X3Y76' location successfully updated with design data.

 

Such an option seems not to be available in write_bitstream, although it is possible to associate an ELF file in Vivado IDE by clicking on associate ELF to an existing project. Is there a corresponding Tcl command for that purpose?

I am using SDK command updatemem at present (as described here: https://forums.xilinx.com/t5/Vivado-TCL-Community/Post-implement-Loading-an-ELF-file-and-compressing-the-bitstream/td-p/701095), which is fine. Just asking if there is a Tcl alternative for the non-project flow.

 

2. In Xilinx EDK there used to be a command called elfcheck to check the consistency of the ELF file. Any replacement in Vivado?

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
846 Views
Registered: ‎09-12-2007

Re: ELF file association in Vivado non-project flow and ISE migration

Jump to solution
There are two ways to add the elf to memory. Using the memdata flow, or updatemem

Memdata uses the scoped_to_ref (str), and scoped_to_cells (stc) properties on the elf file to direct the tools to the correct processor instance. The stc is the microblaze cell name, ie microblaze_0, the str is the module where the cell resides, ie design_1_i for example. You can get this by looking at the net list. When you set the stc/str this will populate the bram during implementation, meaning if you change the elf, then you must re-run implementation.

Updatemem is the replacement to Data2mem that you might be familiar to in edk/ise. Updatemem uses an mmi file instead of the bmm file you might be familiar with in Data2mem. The syntax for the mmi is seen in chapter 7

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_1/ug898-vivado-embedded-design.pdf

The command line would look like
updatemem meminfo test.mmi -data test.elf -bit test.bit -proc microblaze_0 -out download.bit

Where the proc is similar to tag used in Data2mem. You can use the Instpath info from the mmi file

View solution in original post

0 Kudos
2 Replies
Highlighted
Moderator
Moderator
847 Views
Registered: ‎09-12-2007

Re: ELF file association in Vivado non-project flow and ISE migration

Jump to solution
There are two ways to add the elf to memory. Using the memdata flow, or updatemem

Memdata uses the scoped_to_ref (str), and scoped_to_cells (stc) properties on the elf file to direct the tools to the correct processor instance. The stc is the microblaze cell name, ie microblaze_0, the str is the module where the cell resides, ie design_1_i for example. You can get this by looking at the net list. When you set the stc/str this will populate the bram during implementation, meaning if you change the elf, then you must re-run implementation.

Updatemem is the replacement to Data2mem that you might be familiar to in edk/ise. Updatemem uses an mmi file instead of the bmm file you might be familiar with in Data2mem. The syntax for the mmi is seen in chapter 7

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_1/ug898-vivado-embedded-design.pdf

The command line would look like
updatemem meminfo test.mmi -data test.elf -bit test.bit -proc microblaze_0 -out download.bit

Where the proc is similar to tag used in Data2mem. You can use the Instpath info from the mmi file

View solution in original post

0 Kudos
Highlighted
Moderator
Moderator
739 Views
Registered: ‎09-12-2007

Re: ELF file association in Vivado non-project flow and ISE migration

Jump to solution
Also the command line for memdata flow

set_property SCOPED_TO_REF {value} [get_files test.elf]
set_property SCOPED_TO_CELLS {value} [get_files test.elf]

However, there is no advantage to this flow for you. You should use updatemem.

0 Kudos