I am starting with working design for the CMOD S7 where I program the device through SDK and all functionality works as intended. Now where I am falling short is getting the program to run out of the SPI Flash.

I have been following the "How To Store Your SDK Project in SPI Flash" guide from Digilent in order to put a Microblaze design into SPI Flash on the CMOD S7 located at the link here:

There is a recommended offset of 0x00300000 for the CMOD A7 -

My question is what is the recommended offset for CMOS S7?

I tried both 0x00000000 and 0x0030000 and could not get the design to work.

Kind Regards,





Share this post

Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Hello @TeslaCrytpo,

Cmod S7 doesn't have DDR and because of that you won't have an application to store in the DDR. Through the offset address the boot-loader knows from which address to load the application from DDR.

Some steps should be skipped from the tutorial.I think it would be easier to write for you all the steps here:

1. When your design is ready to be generated into a bitstream select Open Implemented Design, then Settings

2.Then check bin_file box in Bistream tab

3.Configure additional bistream settings.

4.General -> Enable bitstream compresion- TRUE

5.Configuration -> Bus width - > 4 

6.Ok -> Apply

7.If you will look into the xdc constraint file, at the end of the file it should appear 2 lines of code, one with COMPRESS TRUE and another with SPI_BUSWIDTH 4

8. In SDK, after you created you application and verified that it's working, go to Program FPGA and beside microblaze_0 select <yourapplicationname>.elf instead of bootloop

9. Go to Xilinx -> Program Flash, then select the download.bit located inside of your hardware platform folder and leave the Offset box empty, then choose the right flah memory type. (part number is MX25L3233F )

The flash has now been programmed and you can test it.



Edited by Ana-Maria Balas

Share this post

Link to post
Share on other sites
  • 0

Thanks for the feedback Ana-Maria, and I was able to successfully program the CMODS7 this way as you described.

Additionally, I also approached it by attached the .ELF file in Vivado and programming the configuration flash directly from the hardware manager. Both ways work. The main difference is that once you have a working design in SDK you have to go back to Vivado to use hardware manager as shown below versus programming the flash directly in SDK.

I think the key factor or point to mention is that the Microblaze program is running out of block RAM on the CMOD S7, versus running out of Flash (XIP) or like the DDR configuration that was the initial example related to Arty or A7 devices. (I think A7 has external SRAM instead of DDR as well.)



Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now