Got my answer by opening a service ticket....
"After further study, I found that it's optional to implement the credit checking mechanism. Sorry for the previous confusion.
From reading the PCIe user guide, it has some statements in multiple locations.
- bullet point# 1, pg77: " The IP core uses [...] tx_cred[35:0] for the hard IP implementation. The application layer may choose to ignore this information."
- bullet point# 3, pg77: " The IP core verifies that sufficient flow control credits exist, and acknowledges or postpones the request"
The PCIe core will always checks for sufficient credits before acknowledging a request.
However, by checking available credits with this signal, the application can improve system performance by dividing a large transaction layer packet
into smaller transaction layer packets based on available credits or arbitrating among different types of transaction layer packets.
The only reason for application layer to implement credit checking is if user wants (optionally) to perform an additional layer of optimization.
The Altera design example ignore credit checking because it doesn't perform this level of transmit optimization for application.
I sincerely hope the responses in this service request have addressed the questions."