XE8801A – SX8801R
3.1 CPU description
The CPU of the XE8000 series is a low power RISC core. It has 16 internal registers for efficient implementation of
the C compiler. Its instruction set is made up of 35 generic instructions, all coded on 22 bits, with 8 addressing
modes. All instructions are executed in one clock cycle, including conditional jumps and 8x8 multiplication. The
circuit therefore runs on 1 MIPS on a 1MHz clock.
The CPU hardware and software description is given in the document “Coolrisc816 Hardware and Software
Reference Manual”. A short summary is given in the following paragraphs.
The good code efficiency of the CPU core makes it possible to compute a polynomial like
Z = ( A0 + A1 ⋅ Y ) ⋅ X + B0 + B1 ⋅ Y in less than 300 clock cycles (software code generated by the XEMICS C-
compiler, all numbers are signed integers on 16 bits).
3.2 CPU internal registers
As shown in Figure 3-1, the CPU has 16 internal 8-bit registers. Some of these registers can be concatenated to a
16-bit word for use in some instructions. The function of these registers is defined in Table 3-1. The status register
stat (Table 3-2) is used to manage the different interrupt and event levels. An interrupt or an event can both be
used to wake up after a HALT instruction. The difference is that an interrupt jumps to a special interrupt function
whereas an event continues the software execution with the instruction following the HALT instruction.
The program counter (PC) is a 16 bit register that indicates the address of the instruction that has to be executed.
The stack (STn) is used to memorise the return address when executing subroutines or interrupt routines.
program counter stack
Instruction
memory
22bit
Figure 3-1. CPU internal registers
© Semtech 2005
CPU
r0
r1
r2
r3
i0h
i0l
i1h
i1l
i2h
i2l
i3h
i3l
iph
ipl
stat
a
3-2
Data memory
www.semtech.com