NOR Flash Controller

Hi all,

I have a requirement to implement a NOR flash controller in a Spartan-3E. The interface will be 32-bits and will address 1GB of flash. This means using 16 off 512Mb components connected in 8 banks of 2.

I understand that most designs interface the flash directly to an MCU or CPU that controls the protocol conversion and polling etc. In my case the MCU is outside of the system and is only acting as a system controller. I have two high bandwidth datapaths from USB and to an internal FIFO that need servicing from flash. Ideally, these interfaces would connect directly to a flash controller within the FPGA with no connection to the MCU.

Can anyone point me at any IP blocks for hardware NOR flash controllers? Or am I going to have to bite the bullet and write it myself.

Thanks.

Reply to
shareef.jalloq
Loading thread data ...

A NOR flash memory controller is a standard asynchronous memory interface, and there are lots of those around. One issue you will run into is capacitive loading on the bus - check the datasheets.

Cheers

PeteS

Reply to
PeteS

Sorry, I should have said. This is going to be using synchronous burst mode components.

Reply to
lbo_user

That makes the interface simpler (once in synchronous mode), but if you read the datasheet, the devices power up (and end up after reset) in

**asynchronous** mode. You have to write the control register to get them to operate in synchronous mode.

I use these devices (and have for some time), and all this is in the datasheet.

Either get a core (there are a number of them around) or roll your own FSM taking into account the current mode of the flash device.

Cheers

PeteS

Reply to
PeteS

Let me correct myself here:

The majority of parallel flash devices (NOR), even when listed as synchronous devices, actually start up in asynchronous burst mode.

Intel Strata flash (which sets the standard, whether we like it or not, and therefore most other players are 'compatible') start in this mode - asynchronous, burst of [up to] 8. As I noted, read the datasheet for the device type you want to use.

Cheers

PeteS

Reply to
PeteS

Thanks Pete,

I'm happy with the functionality of the flash, I'm more concerned with the amount of effort needed to write my own controller. The majority of the work looks to be in the program/erase polling state machines. I'm just really short on time and have been looking for faster alternatives to writing my own controller. It's looking more and more like that's the way I'll have to go though.

Ta.

Reply to
lbo_user

I am sure there are cores out there; this is not a new area. Have you asked the FPGA vendors or checked the third party links?

Cheers

PeteS

Reply to
PeteS

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.