I'm designing a PCI Express board with an Artix-7 from Xilinx. I'm reading through the PCIe block description and on page 199 it says:

Section 6.6 of PCI Express Base Specification, rev 1.1 states “A system must guarantee that all components intended to be software visible at boot time are ready to receive Configuration Requests within 100 ms of the end of Fundamental Reset at the Root Complex.”

This is fine. It seems I can easily sequence the power supplies and config the FPGA in 100ms, but I'd like to understand how much time I have anyway.

The document then shows this:Power Up

and says:

Section 2.6.2 of the PCI Express Card Electromechanical Specification, v1.1 [Ref 2] defines TPVPREL as a minimum of 100 ms, indicating that from the time power is stable the system reset is asserted for at least 100 ms

Lastly, on page 201 it says:

Figure 3-92 shows that power is valid before PWR_OK is asserted High. This is represented by T3 and is the PWR_OK delay. The ATX 12V Power Supply Design Guide defines PWR_OK as 100 ms < T3 < 500 ms, indicating that from the point at which the power level reaches 95% of nominal, there is a minimum of at least 100 ms but no more than 500 ms of delay before PWR_OK is asserted. Remember, according to the PCI Express Card Electromechanical Specification [Ref 2], the PERST# is guaranteed to be asserted a minimum of 100 ms from when power is stable indicated in an ATX system by the assertion of PWR_OK.

So it seems I should have at lest 300ms from when the power is within 95% of nominal:

  • 100ms until PWR_OK - TPWRVLD
  • 100ms from PWR_OK to end of PERST# - TPVPERL
  • and then finally I have to be ready to respond 100ms after end of PERST#.

However, Equation 3-1 in the document says:

FPGA Configuration Time ≤ TPWRVLD + TPVPERL

What am I missing?

  • \$\begingroup\$ What's your question? The equation gives you a constraint on the FPGA configuration time. If you can meet that, you should be OK. If you can't, it won't work :( \$\endgroup\$ – Martin Thompson Feb 21 at 11:04
  • \$\begingroup\$ My question is why the time they give is 200ms when there are at least 3 periods of 100ms before it needs to receive configuration requests. \$\endgroup\$ – lnowak Feb 21 at 16:13
  • 1
    \$\begingroup\$ Ahh, I see... so you mean that the equation should be FPGA Configuration Time ≤ TPWRVLD + TPVPERL + 100ms \$\endgroup\$ – Martin Thompson Feb 21 at 16:18
  • 1
    \$\begingroup\$ Can you do anything before PWR_OK? or do you actually lose that time because you don't have a guaranteed power supply? \$\endgroup\$ – Martin Thompson Feb 21 at 16:22
  • 1
    \$\begingroup\$ Let us continue this discussion in chat. \$\endgroup\$ – Martin Thompson Feb 21 at 16:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.