There is a design limitation in the Intel® Arria® 10 and Intel Cyclone® 10 GX PCIe* Hard IPs which do not have a bypass buffer to store memory read TLPs. If there is no credit to send any memory read TLPs, these TLPs will stay in the queue, which causes memory write completion TLPs to be head-of-line blocked. Intel® Arria® 10 and Intel Cyclone® 10 GX PCIe* Hard IPs do not allow any memory write completion TLP to pass a memory read TLP because the Hard IP does not have a bypass buffer to put memory read TLPs aside and give way to memory write completion TLP to go ahead of these memory read TLPs.
There is no workaround for this problem. The user application and software should be aware of the limitation and take care of this scenario.
This problem will not be fixed in any future versions of the IP software release.