GPIF II slave fifo interface with slower clocks

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
alex_swan
Level 1
Level 1
10 sign-ins 5 sign-ins First reply posted

Hello everyone,

In my current project, I am required to send 16 bits data from a FIFO inside FPGA (Cyclone  IV E) to PC through FX3.

I followed AN65974 note and ran the given example code for Stream IN Transfer, which I assume is appropriate for the application here. It seemed to work without failures on streamer GUI at 100MHz.

Since the FIFO in FPGA is being written at much slower speed, I wanted to slow down GPIF interface as well. However, when I tried slower clocks, says 50 MHz, the transfer failed. I only changed PLL on FPGA side which drives pclk.

Am I required to change anything from firmware side for the slower clock speed?

Also, since I am clearly a novice in this area, I appreciate any pointers on how I should read the FIFO inside FPGA to send data over GPIF.

Thank you very much for your time.

 

 

 

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello,

Please enable the following UART prints in the SlFifoAppThread_Entry firmware and let me know if the data is being received (glDMATxCount) on FX3 from the FPGA with slower clock.

CyU3PDebugPrint (6, "Data tracker: buffers received: %d, buffers sent: %d.\n",
glDMARxCount, glDMATxCount);*/

If the data is received as expected, please try to reduce the Packets per Xfer, Xfer per Queue parameters in the streamer application and let me know is the failures are reduced

Regards,
Rashi

View solution in original post

0 Likes
3 Replies
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello,

Please enable the following UART prints in the SlFifoAppThread_Entry firmware and let me know if the data is being received (glDMATxCount) on FX3 from the FPGA with slower clock.

CyU3PDebugPrint (6, "Data tracker: buffers received: %d, buffers sent: %d.\n",
glDMARxCount, glDMATxCount);*/

If the data is received as expected, please try to reduce the Packets per Xfer, Xfer per Queue parameters in the streamer application and let me know is the failures are reduced

Regards,
Rashi
0 Likes

Hello Rashi,

I enabled CyU3PDebugPrint () and received a strange prints with both glDMARxCount and glDMATxCount == 0

Capture2.PNG

glDMARxCount and glDMATxCount are incremented in CyFxSlFifoUtoPDmaCallback() and CyFxSlFifoPtoUDmaCallback() functions which are not enabled in AUTO DMA mode in the example code. Can I enable it?

I tried to reduce the Packets per Xfer, Xfer per Queue parameters in the streamer and saw no improvement. 

Thank You.

0 Likes

Hello,

Yes, please enable #define MANUAL and share the UART prints

Regards,

Rashi

Regards,
Rashi
0 Likes