1) Yes, GPIF Interface is needed, if it is a parallel SRAM. For serial SRAMs the serial interfaces of FX3 can be used (say SPI)
2) The GPIF Lines can drive out address. In the example project, A counter is initialized with address staring from 0 upto 255 and driven out on address lines. Please refer to the state machine project (SRAM.cydsn) which can be opened using GPIF Designer tool.
3) ARM9 (FX3) is a slave. The PC is the USB Master. The PC can send EP0 commands for read/write as per this example. Note that EP0 commands are control requests that have a Data phase (it can be either read or write). So only when the given date has been completely sent from PC to SRAM or SRAM to PC, the PC can send the next command.
The PC cannot send Read command when write is still going on and vice versa.
4) Yes, it can do of it's own without the USB. You just need to call the appropriate APIs for GPIF Initialization.
5) SRAM cannot come between USB and ARM9. Only PC <> ARM9 <> SRAM is possible
- Madhu Sudhan