English
Language : 

PIC18F87K22 Datasheet, PDF (137/548 Pages) Microchip Technology – 64/80-Pin, High-Performance, 1-Mbit Enhanced Flash Microcontrollers with 12-Bit A/D and nanoWatt XLP Technology
PIC18F87K22 FAMILY
10.0 8 x 8 HARDWARE MULTIPLIER
10.1 Introduction
All PIC18 devices include an 8 x 8 hardware multiplier
as part of the ALU. The multiplier performs an unsigned
operation and yields a 16-bit result that is stored in the
product register pair, PRODH:PRODL. The multiplier’s
operation does not affect any flags in the STATUS
register.
Making multiplication a hardware operation allows it to
be completed in a single instruction cycle. This has the
advantages of higher computational throughput and
reduced code size for multiplication algorithms and
allows PIC18 devices to be used in many applications
previously reserved for digital-signal processors. A
comparison of various hardware and software multiply
operations, along with the savings in memory and
execution time, is shown in Table 10-1.
10.2 Operation
Example 10-1 shows the instruction sequence for an 8 x
8 unsigned multiplication. Only one instruction is
required when one of the arguments is already loaded in
the WREG register.
Example 10-2 shows the sequence to do an 8 x 8
signed multiplication. To account for the sign bits of the
arguments, each argument’s Most Significant bit (MSb)
is tested and the appropriate subtractions are done.
EXAMPLE 10-1:
MOVF ARG1, W
MULWF ARG2
8 x 8 UNSIGNED MULTIPLY
ROUTINE
;
; ARG1 * ARG2 ->
; PRODH:PRODL
EXAMPLE 10-2: 8 x 8 SIGNED MULTIPLY
ROUTINE
MOVF ARG1, W
MULWF ARG2
BTFSC ARG2, SB
SUBWF PRODH, F
MOVF
BTFSC
SUBWF
ARG2, W
ARG1, SB
PRODH, F
; ARG1 * ARG2 ->
; PRODH:PRODL
; Test Sign Bit
; PRODH = PRODH
;
- ARG1
; Test Sign Bit
; PRODH = PRODH
;
- ARG2
TABLE 10-1: PERFORMANCE COMPARISON FOR VARIOUS MULTIPLY OPERATIONS
Routine
Multiply Method
Program
Memory
(Words)
Cycles
(Max)
@ 64 MHz
Time
@ 48 MHz @ 10 MHz
@ 4 MHz
8 x 8 unsigned Without hardware multiply
13
Hardware multiply
1
8 x 8 signed
Without hardware multiply
Hardware multiply
33
6
16 x 16
Without hardware multiply
21
unsigned
Hardware multiply
28
16 x 16 signed
Without hardware multiply
Hardware multiply
52
35
69
4.3 s
5.7 s
27.6 s
69 s
1
62.5 ns
83.3 ns
400 ns
1 s
91
5.6 s
7.5 s
36.4 s
91 s
6
375 ns
500 ns
2.4 s
6 s
242
15.1 s
20.1 s
96.8 s 242 s
28
1.7 s
2.3 s
11.2 s
28 s
254
15.8 s
21.2 s 101.6 s 254 s
40
2.5 s
3.3 s
16.0 s
40 s
 2010 Microchip Technology Inc.
Preliminary
DS39960B-page 137