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

On-Chip Flash IP can Erase but not Write

GDagi1
New Contributor I
512 Views

Hi all,

 

I am using the On-Chip Flash Intel FPGA IP and following the Intel® MAX® 10 User Flash Memory User Guide here. I am trying to simply write test data.

 

I have followed the guide's steps for erasing and writing to the memory and have only had success when erasing. I can see this by the status register reads '1' in bit 4.

 

However, I follow the process for writing and the status register reads 2'b10 (BUSY_WRITE) but a few clock cycles later, when these bits are 2'b00 (IDLE), bit 3 (write-successful) is a '0'. I expect bit 3 to be a '1' after this write operation.

 

The user guide suggests 3 reasons for this issue

  • The burst count is not equal to 1 (parallel mode) or 32 (serial mode).
  • The given address is out of range
  • The sector protection mode or write protection mode of the corresponding sector is not clear (the value is not 1'b0).

 

  1. I have set the burst count to '1' because I am in parallel mode.
  2. I have tried both address 0x00000 and 0x7000, both are valid addresses in Sector 1 (which is the sector I disable write-protection for).
  3. I am writing to sector 1, the same sector I had erased in the prior steps. This is confirmed by the status register reading from the control register. [23] (sector ID 1 write protection) is set to '0', and [22:20] (sector erase address) is set to 3'b001 for sector ID 1.

 

I have attached my waveform and Platform Designer design / IP Parameters.

 

Thanks everyone in advance

0 Kudos
3 Replies
RichardTanSY_Intel
469 Views

Do you make sure to erase the flash location before you perform a program (write) operation?

Do you able to duplicate the figure no. 8 diagram in the UG?

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/ug_m10_ufm.pdf#page14

 

You can refer to the example design below from the link below.

https://fpgacloud.intel.com/devstore/platform/17.1.0/Standard/max-10-user-flash-memory-write-operation/

0 Kudos
GDagi1
New Contributor I
469 Views

Yes, I make sure to erase the flash location before writing.

In my original design I did not hold the write signal for long, though after modifying the code, writing still fails.

 

I'll work off the example design, I couldn't find that from the design store.

 

Thank you.

0 Kudos
RichardTanSY_Intel
469 Views

Try again with the design store. The link should be fixed by now.

0 Kudos
Reply