The core uses the trn_tdst_rdy_n signal to let the user know that it is not ready for more data.There are instances where trn_tdst_rdy_n deasserts for long periods of time or indefinitely.
This signal deasserts once the internal block transmit buffers are full and it can accept no more packets from the user application. This normally happens when the link partner either stops returning flow control credit updates. When the link partner stops returning flow control updates the endpoint cannot send any more packets until more credits are released.
The link partner may stop returning credits due to some type of error condition, for example,make sure that the TLPs you generate are not malformed. If you're interfacing with a switch and it receives a malformed TLP, then the switch may not update it's flow control credits. This will eventually lead the core to stop sending packets due to flow control.
07/29/2011 - Initial Release