FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6352 Discussions

Reading/Writing EPCS (MT25QU01G) with IP

jlats2
New Contributor I
1,327 Views

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?

jlats2_0-1634735252262.png

jlats2_1-1634735282575.png

 

Thank you for taking time to read this and for all of your help.

 

0 Kudos
1 Solution
jlats2
New Contributor I
1,211 Views

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.

View solution in original post

0 Kudos
8 Replies
NurAiman_M_Intel
Employee
1,299 Views

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


0 Kudos
jlats2
New Contributor I
1,286 Views

Hi,

Thank you for your reply.

I am using Micron Flash (https://media.digikey.com/pdf/Data%20Sheets/Micron%20Technology%20Inc%20PDFs/MT25QU01GBBB_DS.pdf).

 

To be clear, you are saying that I need to be using the 'Generic Serial Flash Interface' IP?

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-gen-sfi.pdf

 

Can you also verify that the process I am using to generate the hexout files is correct?

 

Best Regards,

James

 

 

0 Kudos
jlats2
New Contributor I
1,283 Views

Also, in addition to the above, is it required that I switch from the ASMII Parallel Intel FPGA IP to properly interface with the Micron flash memory?

I am able to erase, read and write the micron flash with the ASMII Parallel Intel FPGA. I'm not seeing what the benefit will be switching to the 'Generic Serial Flash Interface Intel FPGA IP.'

 

Thank you again for all of your help.

0 Kudos
NurAiman_M_Intel
Employee
1,252 Views

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


0 Kudos
jlats2
New Contributor I
1,223 Views

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

0 Kudos
NurAiman_M_Intel
Employee
1,216 Views

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


0 Kudos
jlats2
New Contributor I
1,212 Views

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.

0 Kudos
NurAiman_M_Intel
Employee
1,188 Views

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


0 Kudos
Reply