FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5744 Discussions

On-Chip Flash IP can Erase but not Write

GDagi1
New Contributor I
192 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
149 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#pa...

 

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-operati...

GDagi1
New Contributor I
149 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.

RichardTanSY_Intel
149 Views

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

Reply