Forum Discussion

GDagi1's avatar
GDagi1
Icon for Occasional Contributor rankOccasional Contributor
5 years ago

On-Chip Flash IP can Erase but not Write

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

3 Replies