06-10-2014 08:42 AM
06-10-2014 05:51 PM
I tried stephenm's artix_data2mem.pdf which suggests adding the SDK's resulting .elf file to the Sources in Vivado which works - it embeds the .elf contents in Vivado's .bit output - but it's slow because I think a synth & imp & bitstream needs to be done each time the .elf is changed. 'Slow' meaning it takes about 20 minutes to change and test code vs 20 seconds. Maybe there's a shortcut I don't know about.
The PDF mentions running data2mem from the command line but I haven't tried that yet because I'm thinking that data2mem still won't know how to handle a xc7a35t.
By coincidence, 2014.2 was announced today - I tried it and got the same results.
06-10-2014 06:24 PM
I have tried to check the supported list of devices for data2mem in Vivado 2014.2 and it looks that xc7a35t is not included
So the work-around is to use the procedure mentioned by stephen
06-11-2014 12:10 AM
10-29-2014 02:43 AM
I'm having the same issue on xc7a35tcsg324.
I followed the guide (including the elf in the Vivado project) but it doesn't seem to work:
I tryed both the write_bitstream command and the full rebuild of the project.
My microblaze has only bram ram (no external bram) and the program fit in it.
Do I need to specify something in the linker script or add in some way the bootloop to the program?
10-29-2014 11:21 AM
We didn't need to touch the linker script to get this to work. Assuming that Vivado can download the configuration and the SDK can download the .elf, the steps to 'commit to flash' involve adding the .elf to the Vivado project and then running write_cfgmem to generate an MCS file. I've included an excerpt from my project notes below.
Rem copy .elf from SDK to project sources.
copy .\project.sdk\software\Debug\software.elf .\project.srcs\sources_1\imports\Debug\software.elf
# Generate an MCS file for this project, to be downloaded to SPI Flash.
# 2014-06-13 Jim Fred
# Within the Vivado IDE, execute this script using menu: 'Tools / Run Tcl Script...'
# Get the project's directory, .bit file and destination .mcs file paths.
set prjDir [get_property DIRECTORY [current_project]]
set bitFile100t $prjDir/[current_project].runs/impl_100t/TOP.bit
set mcsFile100t $prjDir/outputs/AdtiDpcaFpga100t.mcs
set bitFile35t $prjDir/[current_project].runs/impl_35t/TOP.bit
set mcsFile35t $prjDir/outputs/AdtiDpcaFpga35t.mcs
# Perform the work.
write_cfgmem -force -format mcs -size 32 -interface SPIx4 -loadbit "up 0x0 $bitFile100t" $mcsFile100t
write_cfgmem -force -format mcs -size 32 -interface SPIx4 -loadbit "up 0x0 $bitFile35t" $mcsFile35t
# End of file