I am seeing a weird issue where data is read in properly by the FX3. So IN_DATA is able to capture 32 bits per clock cycle. However, when DR_DATA is called on the GPIF bus only the lower 16 bits of the GPIF bus are asserted. As an example, I have sent a data packet consisting of incrementing bytes "\x00\x01\x02\0x03" to the FX3 via USB. Instead of seeing a single 0x00010203 bus write, I see it come out across 2 separate bus cycles as 0x00000001 and 0x00000203.
I pass the following arguments to CyU3PDeviceConfigureIOMatrix():