Forum Discussion

jlats2's avatar
jlats2
Icon for Occasional Contributor rankOccasional Contributor
4 years ago
Solved

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.

  • jlats2's avatar
    jlats2
    4 years ago

    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.

8 Replies

  • Hi,


    Thank you for contacting Intel community.


    MT25QU01G is a Micron flash which is listed as Intel 3rd party configuration device. EPCS is Intel flash which has been obsolete and replace with EPCQ-A. Which of the flash are you using? Micron or EPCS?


    https://www.intel.com/content/www/us/en/programmable/support/support-resources/support-centers/configuration-support.html#intel-config-devices -3rd party configuration devices supported by Intel


    If you are using MT25QU01G(Micron), you will need to refer to Generic Serial Flash Interface Intel FPGA IP Core User Guide. This is mention in the ASMI Parallel IP UG page 3 as below;


    The ASMI Parallel Intel FPGA IP core only supports the EPCS, EPCQ, EPCQ-L, and EPCQ-A devices. If you are using third-party flash devices, refer to the Generic Serial Flash Interface Intel FPGA IP Core User Guide.


    Regards,

    Aiman


  • Hi,


    You should be using Generic Serial Interface IP if you are using 3rd party flash device such as Micron.


    However, if you wanted to continue with ASMI Parallel IP, please be noted that we are not able to support if there is further problem in the future as this will be beyond our support.


    To generate Hexout file;

    Assignments -->Compilation Process Settings --> Device/Board -->Device and Pin Options --> Programming Files, tick to the box "Hexadecimal (Intel-Format) Output File (.hexout)


    Regards,

    Aiman


    • jlats2's avatar
      jlats2
      Icon for Occasional Contributor rankOccasional Contributor

      Hi Aiman,

      Thank you for clarifying how to generate the hexout files.

      My next questions is with regards to the clock speed for the 'Generic Serial Flash Interface.' All of the ASMI IP indicate what the max clock should be, but I do not see this listed for the 'Generic Serial Flash Interface' IP. Am I to understand that the clock rate is entirely dependent on the flash chip and not the IP core?

      For example, the micron flash chip can support >90Mhz clock rate, so I should be able to have clkin set to 50 Mhz without any issues, right?

      Thank you

  • Hi,


    Yes, you can follow the clock limit set by the flash. Should not be any issue if it is set within the limit.


    Regards,

    Aiman


    • jlats2's avatar
      jlats2
      Icon for Occasional Contributor rankOccasional Contributor

      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.

  • Hi,


    Thank you for sharing your tips and answer with us. I believed it will benefit others.


    With this, I now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.


    Regards,

    Aiman