Legacy Interrupt Mode - 4.4 English

UltraScale Devices Gen3 Integrated Block for PCI Express LogiCORE IP Product Guide (PG156)

Document ID
PG156
Release Date
2023-11-24
Version
4.4 English

The user application first asserts cfg_interrupt_int and cfg_interrupt_pending to assert the interrupt.

The core then asserts cfg_interrupt_sent to indicate the interrupt is accepted. If the Interrupt Disable bit in the PCI Command register is set to 0 , the core sends an assert interrupt message (Assert_INTA). After the interrupt has been serviced, the user application deasserts cfg_interrupt_int .

After the user application deasserts cfg_interrupt_int, the core sends a deassert interrupt message (Deassert_INTA). This is indicated by the assertion of cfg_interrupt_sent a second time.

cfg_interrupt_int must be asserted until the user application receives confirmation of the assert interrupt message (Assert_INTA), which is indicated by the assertion of cfg_interrupt_sen t , and the interrupt has been serviced/cleared by the Root's Interrupt Service Routine (ISR). Deasserting cfg_interrupt_int causes the core to send the deassert interrupt message (Deassert_INTA). cfg_interrupt_pending must be asserted along with the assertion of cfg_interrupt_int until the interrupt has been serviced, otherwise, the interrupt status bit in the status register is not updated correctly. cfg_interrupt_pending can be deasserted along with the deassertion of cfg_interrupt_int after the first assertion of cfg_interrupt_sent . When the software/Root's ISR receives an assert interrupt message, it reads this interrupt status bit to determine whether there is an interrupt pending for this function.

Figure 3-72: Legacy Interrupt Signaling

X-Ref Target - Figure 3-72

legacy-TrjgDXvW_t.jpg