Reading/Writing EPCS (MT25QU01G) with IP
Hi,
Thank you for taking time to read this question.
I am using a C10GX FPGA with a MT25QU01G serial flash memory. The overall goal is to be able to update the flash using the 'ASMI' IP. I believe that I am able to read and write data on the EPCS however I am having a few issues which I have addressed below:
1) I notice that there is an ASMI and an ASMI II. Which IP should I be using? Its not clear to me what the differences are. The ASMII II can support a 50 MHz clock rate and has a better interface with NIOS (which I do not need), but that is all I see.
2) What clock speed should I be using? The ASMII datasheet recommends a maximum read clock speed of 20 MHz, but it does not suggest what an appropriate range should be. The EPCS chip itself can support +90 MHz r/w so I am not sure why the IP is choosing such a low clock rate (maybe because of the SPI)?
3) During compilation, my Quartus project will generate a .hexout file. Whenever I create a JIC and flash the FPGA, I expect to find the contents of the EPCS to match the contents of the hexout file. When I compare these, they have similar but not exact values. Furthermore, all of the the flash written by the JIC appears to be shifted by 32 addresses when compared with the hexout file.
Is it wrong to assume that the processed used by the JIC to write the EPCS should not exactly the same as the hexout?
Do my below settings look correct for generating the hexout file?
Thank you for taking time to read this and for all of your help.
Sounds good, thank you for answering my questions.
For future readers using cyclone 10GX with MICON MT25QU01G:
1) You can reliably use "ASMII Parallel Intel FPGA IP" for single read writes (and use a slow, less than 20 Mhz clock).
2) Use the "Generic Serial Flash Interface IP" if you would like to use a faster clock OR perform page writes.
3) Ensure that bytes being written from the hexout data to the micron/epcs be byte reversed. Use https://en.wikipedia.org/wiki/Intel_HEX#Record_types for how to understand the record types.
Best Regards.