pcbeng25
Newbie level 4

- Joined
- May 20, 2011
- Messages
- 6
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Location
- Northwest, USA
- Activity points
- 1,351
I'm currently writing an interface for a 2.5GSPS 8-bit ADC connecting to an Altera Stratix III FPGA via 32 LVDS lines. The data rate is 625MHz on the input to the FPGA, and it is deserialized 1:4 for an internal data rate of 156.25MHz. I am currently feeding this data into a FIFO. My dilemma is that I need to process this data at 187.5MHz inside the FPGA and it takes 5 clocks for every read out of the FIFO to get a DPRAM updated (read, increment, write back). I am running into an overflow condition on the FIFO as the data is continuous, meaning it is constantly writing into the FIFO. I tried to establish a number of samples required for reliable data processing and then just write that many samples into the FIFO, but my PHB seems to think we need to keep our sampling going and we shouldn't have to stop. I'm wondering if there are any other options so I am not losing data. Currently I have already reduced the data to processing one of every 4 samples coming in, but without stopping the writes to the FIFO, I cannot process the data fast enough to keep the FIFO from overflowing, no matter how big I make it.
I've searched and searched for techniques on how people do this, but haven't come up with anything useful. If anyone can suggest some techniques for continuous sampling data processing in an FPGA, I would appreciate it. Thanks in advance.
I've searched and searched for techniques on how people do this, but haven't come up with anything useful. If anyone can suggest some techniques for continuous sampling data processing in an FPGA, I would appreciate it. Thanks in advance.