Hi Martin,
it looks as if test_out[199:144] contains the flow control information for the receiver. You cannot easily find out how the root is counting credit. Check whether that changes along the process of accessing your device. If credit gets lower over time, there is something wrong with the soft IP or the application interface. If it stays high there might still be something wrong with the soft IP but on a lower level, and it could be another hardware issue together with the root side of the PCIe link.
Still, I think it might be an issue with posted requests sent to your IP that get dropped somewhere, most probably in your application. Try to make sure that you don’t just drop such packets but respond accordingly, i.e. with a Completer Abort TLP. Otherwise, the root port’s receive credit will be eaten up, not allowing it to issue new requests until the requests time out. I don’t know precisely how a root port deviates in acting on a timeout event, but it might lead to lockup or reboot.
I’m on Arria II GX using hard IP AST (125 MHz, 64 bit), and there is little trouble with handling unsupported requests, though.