AlexA Posted April 17, 2012 Report Share Posted April 17, 2012 Hi Guys, I currently have an issue where I'm feeding a relativeley large data set into the FPGA FFT (524288 points) which are computed as 512 1024 sample length transforms (rows of image data). Despite receiving the correct number of valid inputs (I've checked), the FPGA only returns 522240 points (it's two rows short), can anyone illuminate why this is happening? The code snippet is shown below. Quote Link to comment
JamesMc86 Posted April 17, 2012 Report Share Posted April 17, 2012 On first glances there are two sections of the code I would want to double check the logic of, not sure if its wrong, but looks like a potential source of data loss. One is where you and output valid of the FFT with less than 512. I am not sure exactly what this is doing yet but if those two disagree then data would be lost. I am also trying to work out your logic for writing to the Frequency Spectrum FIFO. It looks like you are enabling everything off ready for output rather than output valid. Typically I would check first for Number of Elements to Write for the queue and use that as the ready for output flag. EDIT: I think I see what you are doing now and it looks like it should work but the counts will tell you. I guess your Valid FFT Out vs Elements loaded vs Valid outputs counts should suggest which of those is the problem. Quote Link to comment
AlexA Posted April 27, 2012 Author Report Share Posted April 27, 2012 So for anyone that's interested. The FFT will not finish a computation when input valid goes false, even if it has previously received the correct amount of data points to do so. I'm not sure why this decision was made, and frankly find it to be more than a little stupid but that was the reason for my problem. Quote Link to comment
AlexA Posted January 26, 2014 Author Report Share Posted January 26, 2014 Just to bump this, because I happened to run up against the same problem (which I had forgotten about). I can't believe the FPGA IP was written in such a way that it would leave computations half finished. Now I have to hack up some sort of stupid counter logic to ensure all the data gets processed. Quote Link to comment
AlexA Posted January 26, 2014 Author Report Share Posted January 26, 2014 I can't edit, but I've since found out that the issue was because for a computation to complete without a continuous stream of data equal to or greater in length than the FFT latency, the Throughput can not be 1. Which incidentally, cripples the rate of computation. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.