PIC16CR54C
The PIC16CR54C device contains an 8-bit ALU and
3.0
ARCHITECTURAL OVERVIEW
working register. The ALU is
a general purpose
The high performance of the PIC16CR54C can be
attributed to number of architectural features
arithmetic unit. It performs arithmetic and Boolean
functions between data in the working register and any
register file.
a
commonly found in RISC microprocessors. To begin
with, the PIC16CR54C uses a Harvard architecture in
which program and data are accessed on separate
buses. This improves bandwidth over traditional von
Neumann architecture where program and data are
fetched on the same bus. Separating program and data
memory further allows instructions to be sized
differently than the 8-bit wide data word. Instruction
opcodes are 12-bits wide making it possible to have all
The ALU is 8-bits wide and capable of addition,
subtraction, shift and logical operations. Unless
otherwise mentioned, arithmetic operations are two's
complement in nature. In two-operand instructions,
typically one operand is the W (working) register. The
other operand is either a file register or an immediate
constant. In single operand instructions, the operand
is either the W register or a file register.
single word instructions.
A 12-bit wide program
memory access bus fetches a 12-bit instruction in a
single cycle. A two-stage pipeline overlaps fetch and
execution of instructions. Consequently, all instructions
(33) execute in a single cycle (200ns @ 20MHz) except
for program branches.
The W register is an 8-bit working register used for
ALU operations. It is not an addressable register.
Depending on the instruction executed, the ALU may
affect the values of the Carry (C), Digit Carry (DC),
and Zero (Z) bits in the STATUS register. The C and
DC bits operate as a borrow and digit borrow out bit,
respectively, in subtraction. See the SUBWFand ADDWF
instructions for examples.
The PIC16CR54C address 512 x 12 of program
memory. All program memory is internal.
The PIC16CR54C can directly or indirectly address its
register files and data memory. All special function
registers including the program counter are mapped in
the data memory. The PIC16CR54C has a highly
orthogonal (symmetrical) instruction set that makes it
possible to carry out any operation on any register
using any addressing mode. This symmetrical nature
and lack of ‘special optimal situations’ make
programming with the PIC16CR54C simple yet
efficient. In addition, the learning curve is reduced
significantly.
A simplified block diagram is shown in Figure 3-1, with
the corresponding device pins described in Table 3-1.
1998 Microchip Technology Inc.
Preliminary
DS40191A-page 9