Jump to content
  • 0

cmod A7-35T SPI Memory Programming


FPGAtor

Question

Dear All,

Is it possible to load a simple program in verilog on the cmod a7-35t so that you don't have to program the device after each power on-off cycle without using Microblaze firmware set-up?

The process described in here (https://digilent.com/reference/learn/programmable-logic/tutorials/htsspisf/start) assumes that user implements the microblaze, sth that I do not need.

Does the memory requires an SPI module implementation in your FPGA dedicated to communicate with the external memory in order to load the project of your design and the FPGA?

Thank you.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Hi @FPGAtor

Quote

Is it possible to load a simple program in verilog on the cmod a7-35t so that you don't have to program the device after each power on-off cycle without using Microblaze firmware set-up?

The process described in here (https://digilent.com/reference/learn/programmable-logic/tutorials/htsspisf/start) assumes that user implements the microblaze, sth that I do not need.

Yes, you can use the flash without Microblaze. See here: https://digilent.com/reference/learn/programmable-logic/tutorials/cmod-a7-programming-guide/start

Quote

Does the memory requires an SPI module implementation in your FPGA dedicated to communicate with the external memory in order to load the project of your design and the FPGA?

A project only needs to implement an SPI controller if you want to access SPI flash after the bitstream is loaded. Microblaze requires this in order to fetch the stored program using a bootloader. If you just want to store a bitstream in flash and don't need other data, you can use the Hardware Manager, as in the link above. Storing other application data is also possible, but may require writing data into flash with another bitstream, or somehow adding your own data to the end of the bin file, or similar. It would usually be easier to bake data into the bitstream, if there's room.

Thanks,

Arthur

Link to comment
Share on other sites

  • 0

I followed that procedure (maybe with slightly different settings) before I made the post and it did not work for me.

I ll give a try to this: https://digilent.com/reference/learn/programmable-logic/tutorials/cmod-a7-programming-guide/start but I still do not understand, if there is not any part of my code that is handling the spi communication and program loading on the fpga side, how the firmware is loaded from the memory during the power-on.

Thank you all, I ll give a try and let you know.

Link to comment
Share on other sites

  • 0

There's dedicated hardware in the FPGA part that is capable of reading the bitstream out of quad SPI flash through a fixed set of pins and putting the bitstream into the fabric, which occurs as long as the programming mode pins on the part are tied off correctly, which is what the programming mode select jumper does.

There's a bit more info in the board's manual: https://digilent.com/reference/programmable-logic/cmod-a7/reference-manual#quad-spi_configuration

Thanks,

Arthur

Link to comment
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
×
×
  • Create New...