The µPD70732 (a.k.a. V810) microprocessor is NEC’s first microprocessor of the V810 familyTM for embedded
control applications.
The V810 employs a RISC architecture for embedded control applications. This product has high-speed real
time response, high-speed integer operation instruction, bit string instruction, floating-point operation instruction,
and significantly high cost performance is realized for applications such as facsimile, digital PPC, word processor,
image processor, real time control device, etc.
The functions are described in detail in the following User’s Manuals, which should be read before
starting design work.
TM
• V805
• V810 Family User’s Manual Architecture : U10082E
Features
, V810 User’s Manual Hardware: U10661E
High-performance 32-bit architecture for embedded control application
• 32-bit separate address/data bus
• 1-Kbyte cache memory
• Pipeline structure of 1 clock pitch
• 16-bit fixed instructions (with some exceptions)
• 32-bit general-purpose registers: 32
• 4-Gbyte linear address space
• Register/flag hazard interlocked by hardware
Dynamic bus sizing function (16 bits)
16-bit bus fixing function
16-bit bus system can be configured.
Instructions ideal for various application fields
• Floating-point operation instructions (based upon IEEE754 data format)
• Bit string instructions
16 levels of high-speed interrupt responses
Clock can be stopped by internal static operation
Maximum operating frequency: 16/20/25 MHz
Low voltage: VDD = 2.7 to 3.6 V (Max. 16 MHz)
V
DD = 2.2 to 3.6 V (Max. 10 MHz)
Small package versions available (14 x 14 mm fine-pitch TQFP)
★
The information in this document is subject to change without notice.
Document No. U10691EJ3V0DS00 (3rd edition)
Date Published September 1996 P
Printed in Japan
ADRSERROutputIndicates that data alignment is illegalNotHH
(Address Error)affected
DD—Positive power supply———
V
(Power Supply)
GND—Ground potential (0 V)———
(Ground)
IC1—Internally connected (Leave this pin open.)———
(Internally Connected 1)
IC2—Internally connected (Ground this pin.)———
(Internally Connected 2)
status
during
operation
Bus hold Bus idle
at reset at reset
IC3—Internally connected (Connect this pin to power supply.)———
(Internally Connected 3)
9
★
1.2 Pin I/O Circuits and Recommended Connection of Unused Pins
The I/O circuit type of each pin and recommended connection of unused pins are shown in Table 1-1. Figure
1-1 shows the I/O circuit of each type.
Table 1-1. Pin I/O Circuit Types and Recommended Connection Method of Unused Pins
PinI/O Circuit TypeRecommended Connection Method
D31 to D05Open
A31 to A14
BE3 to BE0
ST1, ST0
DA
MRQ
R/W
BCYST
READY1Connect to GND via resistor
HLDRQConnect to VDD via resistor
HLDAK4Open
SZRQ1Connect to VDD via resistor
SIZ16BConnect to GND via resistor
BLOCK4Open
ICHEEN1Connect to VDD via resistor
INTConnect to GND via resistor
INTV3 to INTV0Connect to VDD via resistor
NMI
CLK—
RESET
ADRSERR4Open
IC1—
IC2—Connect to GND
IC3—Connect to VDD
µPD70732
10
Figure 1-1. Pin I/O Circuit
µPD70732
Type 1
V
DD
P-ch
IN
N-ch
Type 4
V
DD
data
output
disable
Push-pull output that can be output high impedance
(both P-ch and N-ch are off).
P-ch
N-ch
OUT
Type 5
output
disable
enable
data
input
V
DD
P-ch
N-ch
IN/OUT
11
★
2. REGISTER SET
The registers of the V810 can be classified into two types: general-purpose program register set and dedicated
system register set. All registers are 32 bits wide.
Program register setsSystem register sets
310310
r0Zero RegisterEIPCException/Interrupt PC
r1Reserved for Address GenerationEIPSWException/Interrupt PSW
r2Handler Stack Pointer (hp)
r3Stack Pointer (sp)310
r4Global Pointer (gp)FEPCFatal Error PC
r5Text Pointer (tp)FEPSWFatal Error PSW
r6
r7310
r8ECRException Cause Register
r9
r10310
r11PSWProgram Status Word
r12
r13310
r14PIRProcessor ID Register
r15
r16310
r17TKCWTask Control Word
r18
r19310
r20CHCWCache Control Word
r21
r22310
r23ADTREAddress Trap Register
r24
r25
r26String Destination Bit Offset
r27String Source Bit Offset
r28String Length
r29String Destination
r30String Source
r31Link Pointer (lp)
µPD70732
12
310
PCProgram Counter
µPD70732
2.1 Program Register Set
The program register set is composed of general-purpose registers and a program counter.
(1)General-purpose registers
Thirty-two general-purpose registers, r0 to r31, are available. All these registers can be used as data
registers or address registers.
Of these registers, r0 and r26 through r30 are implicitly used by some instructions, and r1 through r5 and
r31 are implicitly used by the assembler and C compiler. Therefore, when using these registers, it is
necessary to take special care such as saving these registers’ contents to different areas before using
these registers and restoring the contents after using them.
Table 2-1. Program Registers
RegisterApplicationOperation
r0Zero registerAlways holds zeros.
r1Register reserved for assemblerUsed as a working register to generate a 32-bit immediate data.
r2Handler stack pointerUsed as the stack pointer for the handler.
r3Stack pointerUsed to generate a stack frame at a function call.
r4Global pointerUsed to access a global variable in the data area.
r5Text pointerPoints the start address of the text area.
r6 to r25—Stores address or data variables.
r26String destination bit offsetUsed in a bit-string instruction execution.
r27String source bit offset
r28String length register
r29String destination address register
r30String address register
r31Link pointerStores the return address at execution of a JAL instruction.
(2)Program Counter
The program counter (PC) indicates the address of the instruction currently executed by the program.
Bit 0 of the PC is fixed to 0, and execution cannot branch to an odd address. The contents of the PC
are initialized to FFFFFFF0H at reset.
13
µPD70732
2.2 System Register Set
The system register set is composed of the following registers that perform operations such as CPU-status
control and interrupt information holding.
Table 2-2. System Register Number
Number Register NameApplicationOperation
0EIPCStatus saving registersThe EIPC and EIPSW registers save the PC and PSW,
for exception/interruptrespectively, when an exception or interrupt occurs. Because in
the V810 the registers incorporated for this purpose are
1EIPSWthese registers only, save the contents of these registers by means
of programming if your application set can cause multiple interrupt
requests to be issued in the V810.
2FEPCStatus saving registers forThe FEPC and FEPSW registers save the PC and PSW,
3FEPSW
4ECRException cause registerThis register, when an exception, maskable interrupt, or NMI
5PSWProgram status wordThis register, also called the program status word, is a set of flags
6PIRProcessor ID registerThis register identifies the CPU type number.
7TKCWTask control wordThis register controls floating-point operations.
8 to 23Reserved
24CHCWCache control wordThis register controls the on-chip instruction cache.
25ADTREAddress trap registerThis register holds an address and is used for address trapping.
26 to 31 Reserved
NMI/duplexed exceptionrespectively, when an NMI or duplexed exception occurs.
occurs, holds its cause. This register consists of 32 bits. Its higher
16 bits, called FECC, hold the exception code for an NMI or
duplexed exception, while the lower 16 bits, called EICC, hold the
exception code for an exception or maskable interrupt.
indicating the statuses of the CPU and program (instruction execution
results).
When the address in this register matches the PC value, the
execution jumps to a predefined address.
To read or write one of the registers shown above, specify a system register number with the system register
load (LDSR) or system register store (STSR) instruction.
14
µPD70732
3. DATA TYPES
3.1 Data Types
The data types supported by the V810 are as follows:
• Integer (8, 16, 32 bits)
• Unsigned integer (8, 16, 32 bits)
• Bit string
• Single-precision floating-point data (32 bits)
3.1.1 Data type and addressing
The V810 uses the little-endian data addressing. In this addressing, if a fixed-length data is located in a memory
area, the data must be either of the data types shown below.
(1)Byte
A byte is a consecutive 8-bit data whose first-bit address is aligned to a byte boundary. Each bit in a
byte is numbered from 0 to 7: LSB (the least significant bit) is bit 0 and MSB (the most significant bit)
is bit 7. To access a byte, specify address A. (See diagram below.)
70
A
★
(2)Halfword
A halfword is a consecutive 16-bit (= 2 bytes) data whose first-bit address is aligned to a halfword
boundary. Each bit in a halfword is numbered from 0 to 15: LSB (the least significant bit) is bit 0 and
MSB (the most significant bit) is bit 15. To access a halfword, specify the address A only (lowest bit must
be 0).
158 7
A + 1
0
A
(3)Word/short real
A word, also called short real, is a consecutive 32-bit (= 4 bytes) data whose first-bit address is aligned
to a word boundary. Each bit in a word is numbered from 0 to 31: LSB (the least significant bit) is bit
0 and MSB (the most significant bit) is bit 31. To access a word or short real, specify the address A only
(lower two bits must be 0).
3124 23
A + 3
16 15
A + 2
A + 1
87
0
A
15
µPD70732
3.1.2 Integer
In the V810, all integers are expressed in the two’s-complement binary notation, and are composed of either
8 bits, 16 bits, or 32 bits. Regardless of the data length, bit 0 is the least significant bit, and higher-numbered
bits express higher digits of the integer with the highest bit expressing its sign.
Data LengthRange
Byte8 bits–128 to +127
Halfword16 bits–32768 to +32767
Word32 bits–2147483648 to +2147483647
3.1.3 Unsigned integer
An unsigned integer is either zero or a positive integer unlike the integer explained in section 3.1.2 which can
be negative as well as zero and positive. Unsigned integers are expressed in the binary notation in the same way
as integers, and are either 8 bits, 16 bits, or 32 bits long. Regardless of the data length, the bit assignments are
the same as in the case of integers except that unsigned integers do not include a sign bit; the highest bit is also
a part of the integer.
Data LengthRange
Byte8 bits0 to 255
Halfword16 bits0 to 65535
Word32 bits0 to 4294967295
3.1.4 Bit string
32
A bit string is a type of data whose bit length is variable from 0 to 2
– 1. To specify a bit-string data, define
the following three attributes.
• A : address of the string data’s first word (lower two bits must be 0.)
• B : in-word bit offset in the string data (0 to 31)
• M: bit length of the string data (0 to 2
32
– 1)
The above three attributes may vary depending on the bit-string data manipulation direction: upward or
downward, as shown below. The former is the direction from lower addresses to higher addresses while the latter
is the direction from higher to lower addresses.
M– 10
M
A + 8
D
AttributeUpwardDownward
First-word address (0s in bits 1 and 0)AA + 4
In-word bit offset (0 to 31)BD
Bit length (0 to 2
32
– 1)MM
A + 4A (Word boundary)
B
16
µPD70732
3.1.5 Single-precision floating-point data
This data type is 32 bits long and its bit allocation complies with the IEEE single format. A single-precision
floating-point data consists of 1-bit mantissa sign bit, 8-bit exponent, and 23-bit mantissa. The exponent is offsetexpressed from the bias value – 127, and the mantissa is binary-expressed with the integer part omitted.
312330
sexp (8)mantissa (23)
3.2 Data Alignment
In the V810, a word data must be aligned to a word boundary (with the lowest two bits of the address fixed
to 0s), and a halfword data to a halfword boundary (with the lowest bit of the address fixed to 0). If a data is not
aligned as specified, the lowest one bit (in the case of word) or two bits (in the case of halfword) of its address
will forcibly be masked with 0s when the data is accessed.
220
17
4. ADDRESS SPACE
★
The V810 supports 4 Gbytes of linear memory space and I/O space. The CPU outputs 32-bit addresses to
32
the memory and I/Os; therefore, the addresses are from 0 to 2
– 1.
Bit number 0 of each byte data is defined as the LSB (Least Significant Bit), and bit number 7 is the MSB (Most
Significant Bit). Unless otherwise specified, the byte data at the lower address side of data consisting of two or
more bytes is the LSB, and the byte data at the higher address side is the MSB (little endian).
Data consisting of 2 bytes is called a halfword, and data consisting of 4 bytes is called a word. The lower address
of memory or I/O data of two or more bytes, here, is shown on the right, and the higher address is shown on the
left, as follows:
µPD70732
Byte of address A
Halfword of address A
Word/short real of address A
70
A (address)
70158
A (address)A + 1
7015823163124
AA + 1A + 2A + 3
18
Figure 4-1 shows the memory map of the V810, and Figure 4-2 shows the I/O map.
Figure 4-1. Memory Map
FFFFFFFFH
µPD70732
FFFFFE00H
FFFFFDFFH
Interrupt handler table
General use
Note
00000000H
NoteFor the details, refer to Table 6-1 Exception Codes.
19
FFFFFFFFH
µPD70732
Figure 4-2. I/O Map
General use
00000000H
20
Loading...
+ 46 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.