CPC700 User’s Manual—Preliminary
10-9
10.5.9 UICVR — UIC Vector Register
Figure 64. UICVR -- UIC Vector Register
The UICVR is a read-only register, which contains the interrupt vector. This value is the sum of the vector
base address programmed in the UICVCR and the interrupt vector offset. This interrupt vector offset is the
difference in bit positions between the highest priority interrupt and the set interrupt bit, multiplied by 512
(0x200). As an example, if bit 31 is the highest priority interrupt, and interrupt bit 20 sets, then the interrupt
vector offset is (31 - 20) x (512) = (11 x 512) = 0x1600. The interrupt vector offset is generated dynamically
by combinational logic and is not stored in a register. The 512 multiplication factor is set in hardware and is
not programmable. The value of the UICVR register is set to the sum of the Interrupt Vector Base Address
(UICVCR[0:29]) plus the interrupt vector offset (in this case 0x1600).
The UICVR can be read by a general interrupt service routine and used to jump directly to the actual inter-
rupt service routine for the particular interrupt taken. When using this method, the interrupt service routines
should be placed 512 (0x200) bytes apart.
The interrupt vector is generated for the highest priority interrupt which is currently enabled, active and pro-
grammed as INT to generate an external interrupt to the processor. For the following scenarios assume all
interrupts to be enabled and programmed as INT unless otherwise specified since disabled or MCP pro-
grammed interrupts have no affect on this vector. This sequence will help describe several possible scenar-
ios in the vector generation logic.
1.
A middle priority interrupt goes active — the vector for the middle interrupt is generated.
2.
A low priority interrupt goes active — no change in the vector for the middle interrupt.
3.
Software reads the vector — no change in the vector.
4.
Software resets the middle priority interrupt — the vector changes to the low priority interrupt.
5.
A high priority interrupt goes active — the vector changes to the high priority interrupt.
6.
The software resets the high priority interrupt — the vector changes to the low priority interrupt.
7.
The software resets the enable bit for the low priority interrupt — the vector goes to all 0s.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
31
MSB
LSB
Interrupt Vector
30
Summary of Contents for CPC700
Page 10: ...Table of Contents x Table of Contents...
Page 16: ...Tables xvi List of Tables...
Page 28: ...1 12 CPC700 User s Manual Preliminary...
Page 72: ...3 36 Processor Interface...
Page 132: ...4 60 Memory Controller...
Page 184: ...5 52 PCI Interface...
Page 194: ...6 10 Clock Power Management and Reset...
Page 224: ...8 18 IIC...
Page 244: ...10 10 Interrupt Controller...
Page 246: ...I 11 2 JTAG...
Page 250: ...12 4 Processor Local Bus PLB...
Page 262: ...14 10 Register Summary...
Page 267: ...CPC700 User s Manual Preliminary...