In case of FX3 the address lines are pointing to the GPIF II threads not the buffers. A GPIF thread is a dedicated data path in the GPIF II block that connects the external data pins to a socket. EZ-USB FX3 provides four physical hardware threads for data transfer over the GPIF II. At a time, any one socket is mapped to a physical thread. By default, PIB socket 0 is mapped to thread 0, PIB socket 1 is mapped to thread 1, PIB socket 2 is mapped to thread 2, and PIB socket 3 is mapped to thread 3.
The address signals A1:A0 on the interface indicate the thread to be accessed. FX3’s DMA fabric then routes the data to the socket mapped to that thread. Therefore, when A1:A0 = 0, thread 0 is accessed, and any data that is transferred over thread 0 is routed to socket 0. Similarly, when A1:A0 = 1, data is transferred in and out of socket 1.
To enable data transfer between GPIF and USB, a DMA channel needs to be created from GPIF II socket to USB socket. The no . of DMA buffers and size of the DMA buffer is configurable.