Vectored Interrupt Controller Port
ARM DDI 0301H Copyright © 2004-2009 ARM Limited. All rights reserved. 12-5
ID012310 Non-Confidential, Unrestricted Access
12.3 Timing of the VIC port
Figure 12-2 shows a timing example of VIC port operation. In this example IRQC is received
followed by IRQB having a higher priority. The waveforms in Figure 12-2 show an
asynchronous relationship between CLKIN and HCLK, and the delays marked Sync cater for
the delay of the synchronizers. When this interface is used synchronously, these delays are
reduced to being a single cycle of the receiving clock.
Figure 12-2 VIC port timing example
Figure 12-2 illustrates the basic handshake mechanism that operates between the processor and
a PL192 VIC:
1. An IRQC interrupt request occurs causing the PL192 VIC to set the processor nIRQ
input.
2. The processor samples the nIRQ input LOW and initiates an interrupt entry sequence.
3. Another IRQB interrupt request of higher priority than IRQC occurs.
4. Between B3 and B4, the processor decides that the pending interrupt is an IRQ rather than
a FIQ and asserts the IRQACK signal.
5. At B4 the VIC samples IRQACK HIGH and starts generating IRQADDRV. The VIC
can still change IRQADDR to the IRQB vector address while IRQADDRV is LOW.
6. At B6 the VIC asserts IRQADDRV while IRQADDR is set to the IRQB vector address.
IRQADDR is held until the processor acknowledges it has sampled it, even if a higher
priority interrupt is received while the VIC is waiting.
7. Around B8 the processor samples the value of the IRQADDR input bus and deasserts
IRQACK.
8. When the VIC samples IRQACK LOW, it stacks the priority of the IRQB interrupt and
deasserts IRQADDRV. It also deasserts nIRQ if there are no higher priority interrupts
pending.
9. When the processor samples IRQADDRV LOW, it knows it can sample the nIRQ input
again. Therefore, if the VIC requires some time for deasserting nIRQ, it must ensure that
IRQADDRV stays HIGH until nIRQ has been deasserted.
Processor
clock
Peripheral port
HCLK
IRQC vector address IRQB vector address IRQADDR[31:2]
nIRQ
IRQACK
IRQADDRV
IRQC
IRQB
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12
Sync
Sync
Sync
Sync
Address sampled