The core resets the system using sys_reset,
an asynchronous, active-Low reset signal asserted during the PCI Express Fundamental Reset.
Asserting this signal causes a hard reset of the entire core, including the GTH transceivers.
After the reset is released, the core attempts to link train and resume normal operation. In a
typical Endpoint application, for example an add-in card, a sideband reset signal is normally
present and should be connected to sys_reset. For Endpoint applications that
do not have a sideband system reset signal, the initial hardware reset should be generated
locally. Four reset events can occur in PCI Express:
- Cold Reset
- A Fundamental Reset that occurs at the application of power. The
sys_resetsignal is asserted to cause the cold reset of the core. - Warm Reset
- A Fundamental Reset triggered by hardware without the removal and reapplication of
power. The
sys_resetsignal is asserted to cause the warm reset to the core. - Hot Reset
- In-band propagation of a reset across the PCI Express Link through the protocol,
resetting the entire Endpoint device. In this case,
sys_resetis not used. In the case of Hot Reset, thecfg_hot_reset_outsignal is asserted to indicate the source of the reset. - Function-Level Reset
- In-band propagation of a reset across the PCI Express Link through the protocol,
resetting only a specific function. In this case, the core asserts the bit of either
cfg_flr_in_processand/orcfg_vf_flr_in_processthat corresponds to the function being reset. Logic associated with the function being reset must assert the corresponding bit ofcfg_flr_doneorcfg_vf_flr_doneto indicate it has completed the reset process.
Before FLR is initiated, the software temporarily disables the traffic targeting the specific functions. When the FLR is initiated, Requests and Completions are silently discarded without logging or signaling an error.
After an FLR has been initiated by writing a 1b to the Initiate Function Level Reset bit, the function must complete the FLR and any function-specific initialization within 100 ms.
The User Application interface of the core has an output
signal, user_reset. This signal is deasserted synchronously with respect to
user_clk. The user_reset signal is asserted as a result of
any of these conditions:
- Fundamental Reset
- Occurs (cold or warm) due to assertion of
sys_reset. - PLL within the Core Wrapper
- Loses lock, indicating an issue with the stability of the clock input.
- Loss of Transceiver PLL Lock
- Any transceiver loses lock, indicating an issue with the PCI Express Link.
The user_reset signal is deasserted
synchronously with user_clk after all of the listed conditions are resolved,
allowing the core to attempt to train and resume normal operation.