Good afternoon everyone,
I have a few questions on FIFO logic blocks.
Here's a description of my project: I'll be syncing two high speed, 12 bit ADC's to a raspberry-pi. Due to the latency issues that the raspberry pi's SPI bus has, I want to have a FIFO memory block between the ADC's and the pi, to ensure no samples are lost. I want to run the FIFO's input and output at different clock speeds (Asynchronously)
Problem: While doing my initial research online it seems that running an FIFO logic block asynchronously can result in meta-stability. Which will result in inaccurate data acquisition.
1) Is meta-stability something I need to take into account or does the FIFO logic block designer account for it?
2) If I need to account for it, how can I so that no data is lost?
3) Besides meta-stability is there anything else I need to take into account when running data acquisition through these logic blocks?
Thanks in advance for any help
I have a few questions on FIFO logic blocks.
Here's a description of my project: I'll be syncing two high speed, 12 bit ADC's to a raspberry-pi. Due to the latency issues that the raspberry pi's SPI bus has, I want to have a FIFO memory block between the ADC's and the pi, to ensure no samples are lost. I want to run the FIFO's input and output at different clock speeds (Asynchronously)
Problem: While doing my initial research online it seems that running an FIFO logic block asynchronously can result in meta-stability. Which will result in inaccurate data acquisition.
1) Is meta-stability something I need to take into account or does the FIFO logic block designer account for it?
2) If I need to account for it, how can I so that no data is lost?
3) Besides meta-stability is there anything else I need to take into account when running data acquisition through these logic blocks?
Thanks in advance for any help