Due to a bug in Quartus® II 10.0 software and previous versions, the statement in TX Datapath on page 64 in the PCI Express® user guide suggests the following for Avalon®-ST interface:
"..the user exhausts tx_cred before waiting for more credits to free"
This issue is fixed in Quartus II 10.1 and later versions, and the above statement should not be applied. Hence, application layer doesn't need to drive non-posted credits to zero in order for it to get updated correctly. Each TX credit type is updated automatically when its corresponding UpdateFC DLLP is received.