I'm starting a new design that requires the quick transfer of a few megabytes of data between a FPGA and a microcontroller.
The FPGA is the Altium Cyclone IV processor (EP4CE15F17I8L), and the microcontroller is the AT91SAM9RL64-CU microcontroller, which is an ARM9 chip with external EBI bus.
Attached to the FPGA is a SDR SDRAM from Micron (MT48LC16M16A2BG-75 IT
TR).
I would like to transfer data between the FPGA and the microcontroller using the microcontroller EBI bus.
The idea is to have the FPGA emulate a NOR flash. The microcontroller then reads the FPGA as if it were a NOR flash over the EBI bus. I would write logic code in Verilog (or VHDL) to fetch data from the SDRAM and then transfer the data over the EBI to the microcontroller.
I have two questions:
(1) Is this data transfer scheme reasonable?
(2) Since the microcontroller uses the EBI bus during booting, will the FPGA interfere with the ability for the microcontroller to boot?
Must I tri-state the FPGA bus pins before the FPGA loads its configuration from a serial flash device?
I am afraid that the FPGA will take too long to load its configuration file, thereby interfering with the ability for the microcontroller to boot.
Could anyone comment on these two questions?