BTPipeOut module for wrong version of Spartan-6 on XEM6001

I have been trying use a a BTPipeOut to read data from a FIFO on the XEM6001. The code has previously been successfully used on a XEM6310, and I have went through and modified the code based on the differences in the okHost interface for the XEM6001. I have also switched to the HDL modules from the XEM6001 directory. Unfortunately, it seems that when I run readfromblockpipeout (I use MATLAB, this part of the code has not been modified from my usage with the XEM6310), the ep_read signal is never asserted by the BTPipeOut (verified by scope probing the signal on a GPIO pin).

I have tried removing the BTPipeOut.ngc module from my project and replacing, and get a warning message that the .ngc file is for a xc6slx45-2fgg484 (the device on a XEM6310), but it is from the XEM6001 module directory. Is this warning okay, or is there likely problem with the module? The other modules in the directory give similar warnings, but they seem to operate as expected.

Using the module should work despite ISE’s complaining about it being built for the xc6slx45. Is there a chance that perhaps your FIFO is overflowing due to the decrease in transfer rate when going from USB3 to USB2? This could cause a problem with ep_ready signal going high depending on how you are determining when the FIFO is ready to send a block of data.

You may also want to try building the DES sample to see if it has any similar issues. It uses normal pipes but the functionality should be similar (you should be able to replace the pipes with BTPipes by holding the ep_ready signal high).

As mentioned in the README in the samples folder, you shouldn’t need to add the ngc files to your ISE project.