CPU subsystem_Vectored interrupt controller (VIC)
RM0082
Doc ID 018672 Rev 1
Figure 5.
VIC block diagram
8.3
Main functions description
8.3.1 Interrupt
request
logic
The interrupt request logic block receive the interrupt requests from peripheral and
combines them with the software interrupt requests (see
). After that, it masks
out the requests that are not enabled (through VICINTENABLE register,
) and roots the others to either IRQSTATUS or FIQSTATUS
depending on VICINTSELECT (see
Section 8.6.6: VICINTSELECT register
).
FIQ interrupts have the highest priority, followed by vectored interrupts (0-15) and, finally,
non vectored interrupts.
8.3.2
Non-vectored FIQ interrupt logic
The non-vectored FIQ interrupt logic block generates the FIQ interrupt signal by combining
the FIQ interrupt requests coming from the interrupt request logic and any requests from
daisy-chained interrupt controllers.
VICINTSOURCE[31:0]
nVICRQIN
VICVECTADDRIN
nVICFIQIN
VICVECTADDROUT
HRESP[1:0]
HCLK
HSELVIC
HRESETn
HWRITE
HREADYIN
HREADYOUT
nVICFIQ
nVICIRQ
HTRANS
HADDR[11:2]
HRDATA[31:0]
HWDATA[31:0]
HSIZE[2:0]
HPROT
FIQSTATUS
[31:0]
IRQSTATUS
[31:0]
Interrupt
request
logic
IRQ
Daisy
Chain
IRQ
vector
address
and
priority
logic
Non-vectored IRQ
interrupt logic
VectAddrIn
VectAddrOut
AHB slave
interface
Control logic
Non-vectored FIQ
interrupt logic
IRQ0
VectAddr0
IRQ1
IRQn
IRQ15
VectAddr1
VectAddrn
VectAddr15
Vector interrupt 0
Vector interrupt 1
Vector interrupt 15