cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
vgimonkar
Visitor
Visitor
1,241 Views
Registered: ‎07-06-2018

merge two microblaze elf files into one bit file

Jump to solution

Hello,

I am using Xilinx SDK2017.4. I have a system consisting of 3 microblazes. In the SDK I create 3 elf files. I want to know if there is a way to create one bitstream file by combing all the 3 elf files.

 

 

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
stephenm
Moderator
Moderator
1,252 Views
Registered: ‎09-12-2007

Yes,  you can use the vivado Associate ELF in tools to do this, then when you implement, this will place your elf into bram. However, everytime you need to update your elf, you will need to re-implement.

 

Or, you can use updatemem to place the elf for each mb into bram. The updatemem uses a file called MMI file. If you created your   design using the block design in vivado, then the mmi file will be created for you automatically ( or call write_mem_info test.mmi from the tcl console). The mmi file describes your bram topology. If you have 3 mb, then you likely have 3 lmb/dlmb bram. Each lmb section will have an instpath. You would use this instpath info to steer your relevant elf into its bram range using the -proc as shown below. 

 

Note, your instpath is likely, design-1/microblaze_0 for example...

 

so for example:

updatemem -meminfo test.mmi -data test1.elf -proc mb_0 -data test2.elf -proc mb_1 -data test3.elf -proc mb_2 -bit design_1_wrapper.bit -out download.bit

 

everytime you want to update the elf, just re-run the command above. 

 

Reference:

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

View solution in original post

0 Kudos
1 Reply
stephenm
Moderator
Moderator
1,253 Views
Registered: ‎09-12-2007

Yes,  you can use the vivado Associate ELF in tools to do this, then when you implement, this will place your elf into bram. However, everytime you need to update your elf, you will need to re-implement.

 

Or, you can use updatemem to place the elf for each mb into bram. The updatemem uses a file called MMI file. If you created your   design using the block design in vivado, then the mmi file will be created for you automatically ( or call write_mem_info test.mmi from the tcl console). The mmi file describes your bram topology. If you have 3 mb, then you likely have 3 lmb/dlmb bram. Each lmb section will have an instpath. You would use this instpath info to steer your relevant elf into its bram range using the -proc as shown below. 

 

Note, your instpath is likely, design-1/microblaze_0 for example...

 

so for example:

updatemem -meminfo test.mmi -data test1.elf -proc mb_0 -data test2.elf -proc mb_1 -data test3.elf -proc mb_2 -bit design_1_wrapper.bit -out download.bit

 

everytime you want to update the elf, just re-run the command above. 

 

Reference:

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

View solution in original post

0 Kudos