The signal trn_reset_n (user_reset_out for AXI)indicates the reset sequence is complete and assertion of(user_lnk_up_n for AXI) indicates the link is trained. If trn_reset_n is not deasserted, then go back to
(Xilinx Answer 34873).
Iftrn_reset_n (user_reset_out for AXI)is deasserted andtrn_lnk_up_n (user_lnk_up_n for AXI) is not asserted, then the link training process is failing. There are many things to investigate when this happens.
First, verify if a warm reset solves the problem as described in
(Xilinx Answer 34800).
Link training issues are almost always board and signal integrity related. It could be that the MGT options that control the Pre-Emphasis and Swing need to be adjusted, or you can also try using the RX Equalization options.
If this is a multi-lane link, the problem might be due to cross talk or noise with multiple lanes being active at the same time. Test for this by electrically isolating the upper lanes and allow it to train as a x1 link only. You can do this with an add-in card by taping off the upper lanes on the card using Scotch tape (see the
PCI Express Card Electromechanical Specification for information on the definitions of the pins on the connector so you know what to tape off). Also, you could use a x1 adapter that fits between the slot and the card to force it to a x1 link only. If this solves the problem, the issue is most likely one of Signal Integrity (see the "Board Design Guidelines" chapter in the User Guide).
A link analyzer is also helpful to determine why link training is failing. Using a link analyzer, such as from Lecroy or Agilent, you can monitor the link training process and see at what point in the LTSSM the link is failing to train.
Revision History
10/11/2010 - Added AXI signal names
08/13/2010 - Initial Release