Forum Discussion
Hi,
We do not receive any response from you to the previous answer that I have provided. This thread will be transitioned to community support. If you have a new question, feel free to open a new thread to get support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you
Regards,
WeiChuan_C_Intel
First of all sorry for the delay in my response , I switched to another urgent short mission.
I checked the FIFO management and found that everything is fine in terms of the reason you mentioned.
Can you tell me the size of the FIFO that other developers have had to place in order to absorb the volatility of the ready signal coming from the PCIe4 core?
If there is not yet enough data for gen 4 , I would happy to get an answer even for gen 3.
Thanks
Avi
- Wincent_Altera3 years ago
Regular Contributor
Hi Avi,
Thanks for your reply. To accommodate PCIe gen3 protocol requirements and to compensate for clock frequency differences of up to ±300 ppm between source and termination equipment, receiver channels have a rate match FIFO. The rate match FIFO adds or deletes four SKP characters (32 bits) to keep the FIFO from becoming empty or full. It monitors the block synchronizer for a skip_found signal. If the rate match FIFO is almost full, the FIFO deletes four SKP characters. If the rate match FIFO is nearly empty, the FIFO inserts an SKP character at the start of the next available SKP ordered set.
Hope this answers your question, let me know if it is helpful.
Regards,
WeiChuan_C_Intel
- Avi_V_8883 years ago
New Contributor
Hi,
The FIFO is to absorb the writing to the PCIe core due to the delay resulting from the processing of the ready signal coming from the PC, and not due to clock frequency differences.
The PC seems to be responding to the change in the rate of the data I am transferring to it.
Initially a change from a state of non-data transfer to a state of high rate transfer.
So, it seems that the PC does not allow ready at the desired rate, until it "realizes" that there is a high demand of data transferring as a result of which the ready signal becomes more and more valid.Indeed, at first the FIFO overflows, and then only a small part of it is occupied.
Have you encountered a similar case?
And what can be done to cause constant readiness for a high rate of data transfer from the PC and as a results of it from the PCIe core?Thanks
Avi
- Wincent_Altera3 years ago
Regular Contributor
Hi,
Below is some analysis and thoughts that I have.
If the PCI Express bus is unable to accept data at a rate at least as fast as the incoming rate from the DUT,
the onboard memory will eventually fill up and the FIFO overflow error is generated. When the device is full, it doesn’t have a way to tell the device that it is full. New image data keep coming, but there is nowhere to store it so the board returns the FIFO overflow error to notify the user. This is different from the user experience when other devices run out of memory. For example, on an Ethernet device, the user doesn’t even know that the device filled its memory. Like an image acquisition board the Ethernet TCP/IP protocol checks for missing data. However, when missing data is found on Ethernet, a request is sent to the sending device to retransmit the data. Usually, by the time that the data is re-transmitted, there is space to hold it and the application continues with only a minor delay.Check and ensure the memory installed in your system is paired correctly. Most modern chipsets can simultaneously access two memory modules if they are installed in the correct memory slots. Also, you can try to check your motherboard documentation to verify that your memory is installed in the correct slots. Otherwise, your memory throughput will be halved. Besides that, you can try to Upgrade to the latest BIOS for your motherboard.