Cirrus CL-PS7500FE System-on-a chip for internet appliance Datasheet

CL-PS7500FE
Advance Data Book
FEATURES
System-on-a Chip for
Internet Appliance
■ Available in 56- and 40-MHz speed grades
■ System-on-a-chip solution
—
—
—
—
—
—
—
—
—
—
—
32-bit ARM7 processor with MMU
4K unified cache
FPU (floating point unit)
Graphics controller drives CRT or LCD
CD-quality sound audio controller
DRAM controller
ROM/Flash controller
Three-channel DMA for video, cursor, and sound
PC-style I/O bus
Two-state power management
Eight general-purpose I/O lines
OVERVIEW
The Cirrus Logic CL-PS7500FE is designed to be
used in internet appliances such as the network
computer, smart-TV, intranet terminal, screen
phones, DVD players, and so on.
The massively integrated CL-PS7500FE offers a
complete system-on-a-chip solution that includes a
32-bit ARM CPU with cache and MMU, CRT and
LCD controller, memory controller, FPU, CD-quality
sound controller, interface to the Cirrus Logic DSP
device for 56K modem and speakerphone, and a
PC-type I/O bus. To handle streaming of audio and
video data on the Internet, the CL-PS7500FE
includes a double-precision FPU to accelerate
software codecs.
■ Performance
— 50 Vax-MIPS (Dhrystone) at 56 MHz
— Up to 12 Mflops, double-precision FP (LINPACK)
■ FPU
— Implements ANSI/IEEE Std 754-1985
— Single, double, and extended precision
(cont.)
Functional
Block Diagram
COLOR LCD
ROM
(cont.)
SVGA MONITOR
TV
ENCODER
PAL/NTSC
HEADPHONES
CD-DAC
CS4333
56k MODEM
CL-MD34XX
DRAM
(4 MBYTE, TYP)
CONFIG. MEMORY
(NON-VOL.)
MEMORY BUS
ETHERNET
CS89XX
VIDEO O/P
(RGB)
AUDIO O/P
(32 BIT)
I/O PORT
REALTIME CLOCK
ISA-STYLE
BUS
CL-PS7500FE
240-PIN PQFP
FRONT PANEL:
STATUS LEDs
RUN/STANDBY SW
2*PS/2 PORTS
KEYBOARD
Version 2.0
MOUSE
2 ANALOG
INPUTS
GAMES DEVICE
(ANALOG)
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
FEATURES (cont.)
■ CRT or color/monochrome LCDs
— Resolutions up to 1024 × 768
— 256-entry 28-bit video palette
— Single- and dual-scan panel LCDs (16-bit grayscale)
■ Serial CD digital sound (32-bit) output
■ Supports EDO and Fast page mode DRAMs
— Up to 132 Mbytes/sec. (peak) using 64-MHz memory
clock and 32-bit-wide DRAM
— Programmable 16- or 32-bit-wide memory system
— Speed-critical paths are pipelined
■ PC-style I/O bus (40-MHz) for connection to any
Cirrus Logic peripheral device
— 56k fax/modem chipset
— CS89XX Ethernet controller
— Can be expanded to 32 bits with external transceivers
■ ROM/FLASH
—
—
—
—
Supports two 16-Mbyte banks
Individual read timings
Burst mode reads
Allows for writes under register control for FLASH
OVERVIEW (cont.)
The video controller features RGB drive of a SVGA
monitor or a color LCD. It also incorporates various
sync inputs, which when combined with an external
encoder, permit the use of interlaced TV displays.
The device incorporates a digital audio controller
with a 32-bit serial interface for connection to the
Cirrus Logic, CS4333 CD-DAC device. The
CL-PS7500FE can also interface to the Cirrus Logic
56K, FastPath modem chipset ideal for Internet
access over a POTS line.
The CL-PS7500FE supports UMA (unified memory
architecture); EDO DRAMs can be used to achieve
high-memory bandwidth.
The CL-PS7500FE is the main computing engine in
the NC platform defined by Oracle, and runs the
NC operating system and applications.
The device is available in a 240-pin PQFP (plastic
quad flat pack) package.
The CL-PS7500FE is available in two speed grades:
2
●
ARM CPU running at 40 MHz; memory clock
running up to 64 MHz
●
ARM CPU running at 56 MHz; memory clock
running up to 64 MHz
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
TABLE OF CONTENTS
1.
CONVENTIONS.....................................................................................................................12
PIN INFORMATION ...............................................................................................................13
1.1
1.2
2.
PIN DESCRIPTIONS .............................................................................................................15
2.1
2.2
2.3
3.
3.7
3.8
3.9
3.10
Functional Block Diagram.................................................................................................................27
ARM Processor Macrocell ................................................................................................................27
FPA Macrocell...................................................................................................................................27
Video and Sound Macrocell..............................................................................................................29
Clock Control and Power Management ............................................................................................29
Memory System ...............................................................................................................................29
3.6.1
DMA..................................................................................................................................30
3.6.2
I/O Control ........................................................................................................................30
Other Features .................................................................................................................................31
Test Modes .......................................................................................................................................31
Structure of the CL-PS7500FE.........................................................................................................31
3.9.1
Register Programming......................................................................................................32
3.9.2
Interaction Between Macrocells........................................................................................32
Resetting CL-PS7500FE Systems ...................................................................................................32
THE ARM PROCESSOR MACROCELL ..............................................................................33
4.1
4.2
4.3
4.4
5.
CL-PS7500FE Pin Descriptions .......................................................................................................15
Power and Ground Pins....................................................................................................................22
Numerical Pin Listing........................................................................................................................24
FUNCTIONAL DESCRIPTION..............................................................................................27
3.1
3.2
3.3
3.4
3.5
3.6
4.
Pin Diagram......................................................................................................................................13
Block Diagram ..................................................................................................................................14
Architecture ......................................................................................................................................33
Instruction Set ..................................................................................................................................33
Memory Interface..............................................................................................................................34
Clocks and Synchronous/Asynchronous Modes ..............................................................................34
IDC .........................................................................................................................................35
5.1
5.2
5.3
5.4
5.5
June 1997
Cacheable Bit ...................................................................................................................................35
IDC Operation...................................................................................................................................35
5.2.1
IDC Validity .......................................................................................................................35
5.2.2
Software IDC Flush...........................................................................................................35
5.2.3
Doubly-Mapped Space .....................................................................................................35
5.2.4
Read-Locked-Write...........................................................................................................36
IDC Enable/Disable and Reset .........................................................................................................36
5.3.1
Enable the IDC .................................................................................................................36
5.3.2
Disable the IDC.................................................................................................................36
Write Buffer (WB) .............................................................................................................................36
5.4.1
Bufferable Bit ....................................................................................................................36
5.4.2
Write Buffer Operation ......................................................................................................36
5.4.3
Enable the Write Buffer.....................................................................................................37
5.4.4
Disable the Write Buffer ....................................................................................................37
Coprocessors ...................................................................................................................................37
ADVANCE DATA BOOK v2.0
TABLE OF CONTENTS
3
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.
ARM PROCESSOR MMU .................................................................................................... 38
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
7.
REGISTER DESCRIPTIONS................................................................................................ 52
7.1
7.2
7.3
7.4
7.5
7.6
4
MMU Program-Accessible Registers................................................................................................38
6.1.1
Translation Table Base Register ......................................................................................39
6.1.2
Domain Access Control Register......................................................................................39
6.1.3
Fault Status Register ........................................................................................................39
6.1.4
Fault Address Register .....................................................................................................39
Address Translation ..........................................................................................................................39
Translation Process ..........................................................................................................................40
6.3.1
TTB (Translation Table Base)............................................................................................40
6.3.2
Level One Fetch................................................................................................................40
6.3.3
Level One Descriptor ........................................................................................................41
6.3.4
Page Table Descriptor.......................................................................................................41
6.3.5
Section Descriptor ............................................................................................................42
Translating Section References ........................................................................................................42
6.4.1
Level Two Descriptor.........................................................................................................42
Translating Small Page References..................................................................................................44
Translating Large Page References .................................................................................................45
MMU Faults and CPU Aborts ...........................................................................................................47
Fault Address and Fault Status Registers (FAR, FSR).....................................................................47
Domain Access Control ....................................................................................................................48
Fault-Checking Sequence ................................................................................................................48
6.10.1
Alignment Fault.................................................................................................................49
6.10.2
Translation Fault................................................................................................................50
6.10.3
Domain Fault ....................................................................................................................50
6.10.4
Permission Fault ...............................................................................................................50
External Aborts.................................................................................................................................50
6.11.1
Interaction of the MMU, IDC, and Write Buffer..................................................................51
Register Configuration......................................................................................................................52
7.1.1
Big and Little Endian (the Bigend Bit) ...............................................................................52
7.1.2
Configuration Bits for Backward Compatibility ..................................................................53
Operating Mode Selection ................................................................................................................54
Registers ..........................................................................................................................................55
7.3.1
PSRs (Program Status Registers) ....................................................................................56
Exceptions ........................................................................................................................................57
7.4.1
FIQ....................................................................................................................................57
7.4.2
IRQ ...................................................................................................................................58
7.4.3
Abort .................................................................................................................................58
7.4.4
Software Interrupt .............................................................................................................59
7.4.5
Undefined Instruction Trap ................................................................................................60
7.4.6
Vector Summary ...............................................................................................................60
7.4.7
Exception Priorities...........................................................................................................61
7.4.8
Interrupt Latencies............................................................................................................61
7.4.9
Reset ................................................................................................................................61
Configuration Control Registers .......................................................................................................62
7.5.1
Backward Compatibility ....................................................................................................62
7.5.2
Internal Coprocessor Instructions.....................................................................................62
7.5.3
Registers ..........................................................................................................................63
Register 1: Control (Write only) ........................................................................................................64
TABLE OF CONTENTS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.7
7.8
7.9
7.10
7.11
7.12
7.13
8.
9.
Register 2: Level One Page Table (Write only) .................................................................................64
Register 3: Domain Access Control (Write only) ..............................................................................64
Register 4: Reserved ........................................................................................................................64
Register 5: Fault Status/Translation Lookaside Buffer Flush ............................................................65
Register 6: Fault Address/TLB Purge ...............................................................................................65
Register 7: IDC Flush (Write only) ....................................................................................................65
Registers 8–15: Reserved ................................................................................................................65
MEMORY MAP ......................................................................................................................66
MEMORY SUBSYSTEMS .....................................................................................................67
9.1
9.2
9.3
ROM Interface ..................................................................................................................................67
9.1.1
ROM Bank Configuration and Timing ...............................................................................68
DRAM Interface ................................................................................................................................69
9.2.1
DRAM Control Registers ..................................................................................................69
9.2.2
DRAM Address Multiplexing ............................................................................................70
9.2.3
Selection Between 16- and 32-bit DRAM .........................................................................70
9.2.4
EDO and Timing Mode Selection .....................................................................................71
9.2.5
DRAM Refresh..................................................................................................................72
9.2.6
DRAM Self-Refresh ..........................................................................................................73
9.2.7
Non-Sequential Access Time and RAS Precharge ..........................................................73
DMA Channels .................................................................................................................................74
9.3.1
Video DMA.......................................................................................................................74
9.3.2
Cursor DMA .....................................................................................................................75
9.3.3
Sound DMA .....................................................................................................................75
9.3.4
The Sound DMA State Machine .......................................................................................76
10. MEMORY AND I/O PROGRAMMERS’ MODEL...................................................................78
10.1
10.2
10.3
June 1997
Introduction.......................................................................................................................................78
Register Summary............................................................................................................................78
Register Descriptions .......................................................................................................................81
10.3.1
IOCR (0x00) — I/O Control...............................................................................................81
10.3.2
KBDDAT (0x04) — Keyboard Data ...................................................................................81
10.3.3
KBDCR (0x08) — Keyboard Control.................................................................................82
10.3.4
IOLINES (0x0C) — IOP[7:0] Port Control.........................................................................83
10.3.5
IRQSTA (0x10) — IRQ A Interrupts Status.......................................................................83
10.3.6
IRQRQA (0x14) — IRQ A Interrupts Request/Clear.........................................................84
10.3.7
IRQMSKA (0x18) — IRQ A Interrupts Mask.....................................................................84
10.3.8
SUSMODE (0x1C) — SUSPEND Mode...........................................................................85
10.3.9
IRQSTB (0x20) — IRQ B Interrupts Status ......................................................................85
10.3.10 IRQRQB (0x24) — IRQ B Interrupts Request ..................................................................86
10.3.11 IRQMSKB (0x28) — IRQ B Interrupts Mask.....................................................................86
10.3.12 STOPMODE (0x2C) — STOP Mode ................................................................................87
10.3.13 FIQST (0x30) — FIQ Interrupts Status .............................................................................87
10.3.14 FIQRQ (0x34) — FIQ Interrupts Request .........................................................................87
10.3.15 FIQMSK (0x38) — FIQ Interrupts Mask ...........................................................................88
10.3.16 CLKCTL (0x3C) — Clock Control .....................................................................................88
10.3.17 T0low (0x40) — Timer 0 Low Bits.....................................................................................89
10.3.18 T0high (0x44) — Timer 0 High Bits...................................................................................89
10.3.19 T0GO (0x48) — Timer 0 Go Command............................................................................89
10.3.20 T0LAT (0x4C) — Timer 0 Latch Command.......................................................................89
ADVANCE DATA BOOK v2.0
TABLE OF CONTENTS
5
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.21
10.3.22
10.3.23
10.3.24
10.3.25
10.3.26
10.3.27
10.3.28
10.3.29
10.3.30
10.3.31
10.3.32
10.3.33
10.3.34
10.3.35
10.3.36
10.3.37
10.3.38
10.3.39
10.3.40
10.3.41
10.3.42
10.3.43
10.3.44
10.3.45
10.3.46
10.3.47
10.3.48
10.3.49
10.3.50
10.3.51
10.3.52
10.3.53
10.3.54
10.3.55
10.3.56
10.3.57
10.3.58
10.3.59
10.3.60
10.3.61
10.3.62
10.3.63
10.3.64
10.3.65
10.3.66
6
T1low (0x50) — Timer 1 Low Bits.....................................................................................89
T1high (0x54) — Timer 1 High Bits ..................................................................................89
T1GO (0x58) — Timer 1 Go Command............................................................................90
T1LAT (0x5C) — Timer 1 Latch Command ......................................................................90
IRQSTC (0x60) — IRQ C Interrupts Status......................................................................90
IRQRQC (0x64) — IRQ C Interrupts Request..................................................................90
IRQMSKC (0x68) — IRQ C Interrupts Mask ....................................................................90
VIDMUX (0x6C) — Video LCD and Serial Sound MUX Control.......................................91
IRQSTD (0x70) — IRQ D Interrupts Status......................................................................91
IRQRQD (0x74) — IRQ D Interrupts Request..................................................................92
IRQMSKD (0x78) — IRQ D Interrupts Mask ....................................................................92
ROMCR1:0 (0x80 and 0x84) — ROM Control..................................................................93
REFCR (0x8C) — Refresh Period ....................................................................................94
ID0 (0x94) — Chip ID Number (Low Byte) .......................................................................94
ID1 (0x98) — Chip ID Number (High Byte) ......................................................................94
VERSION (0x9C) — Chip Version Number ......................................................................94
MSEDAT (0xA8) — Mouse Data.......................................................................................94
MSECR (0xAC) — Mouse Control....................................................................................95
IOTCR (0xC4) — I/O Timing Control ................................................................................95
ECTCR (0xC8) — I/O Expansion Card Timing Control ....................................................95
ASTCR (0xCC) — I/O Asynchronous Timing Control.......................................................96
DRAMCR (0xD0) — DRAM Control .................................................................................96
SELFREF (0xD4) — DRAM Self-Refresh Control ............................................................97
ATODICR (0xE0) — A-to-D Interrupt Control ...................................................................97
ATODSR (0xE4) — A-to-D Status ....................................................................................98
ATODCC (0xE8) — A-to-D Convertor Control ..................................................................98
ATODCNT1 (0xEC) — A-to-D Counter 1 ..........................................................................99
ATODCNT2 (0xF0) — A-to-D Counter 2...........................................................................99
ATODCNT3 (0xF4) — A-to-D Counter 3...........................................................................99
ATODCNT4 (0xF8) — A-to-D Counter 4...........................................................................99
SDCURA (0x180) — Sound DMA Current A ....................................................................99
SDENDA (0x184) — Sound DMA End A........................................................................100
SDCURB (0x188) — Sound DMA Current B ..................................................................100
SDENDB (0x18C) — Sound DMA End B .......................................................................101
SDCR (0x190) — Sound DMA Control...........................................................................102
SDST (0x194) — Sound DMA Status.............................................................................102
CURSCUR (0x1C0) — Cursor DMA Current .................................................................103
CURSINIT (0x1C4) — Cursor DMA INIT........................................................................103
VIDCURB (0x1C8) — Duplex LCD Video DMA Current B .............................................103
VIDCURA (0x1D0) — Video DMA Current A..................................................................104
VIDEND (0x1D4) — Video DMA End .............................................................................104
VIDSTART (0x1D8) — Video DMA Start ........................................................................104
VIDINITA (0x1DC) — Video DMA INIT A........................................................................105
VIDCR (0x1E0) — Video DMA Control...........................................................................106
VIDINITB (0x1E8) — Duplex LCD Video DMA INIT B....................................................107
DMAST/DMARQ/DMAMSK (0x1F0,0x1F4,0x1F8) — DMA Interrupt Control................108
TABLE OF CONTENTS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
11. I/O SUBSYSTEMS ..............................................................................................................109
11.1
11.2
11.3
11.4
11.5
11.6
11.7
11.8
11.9
11.10
11.11
11.12
11.13
11.14
11.15
Introduction.....................................................................................................................................109
I/O Address Space Usage ..............................................................................................................109
Additional I/O Chip Select Decode Logic........................................................................................110
Simple 8-MHz I/O ...........................................................................................................................111
Module I/O ......................................................................................................................................111
PC Bus-Style I/O ............................................................................................................................111
DMA During I/O Cycles ..................................................................................................................114
Clock Synchronization Conditions ..................................................................................................114
Keyboard/mouse Interface..............................................................................................................114
Analog-to-Digital Converter Interface .............................................................................................116
11.10.1 Counters .........................................................................................................................116
11.10.2 Interrupt Control..............................................................................................................116
11.10.3 Status of Interface...........................................................................................................117
11.10.4 Control ............................................................................................................................118
11.10.5 Comparators ...................................................................................................................118
11.10.6 Converter Operation .......................................................................................................118
Timers.............................................................................................................................................119
11.11.1 Programming the Timers ................................................................................................120
11.11.2 Timer interrupts ..............................................................................................................120
General-Purpose, 8-bit-wide, I/O Port ............................................................................................120
ID and OD Open-Drain I/O Pins .....................................................................................................121
Version and ID Registers................................................................................................................121
Interrupt Control .............................................................................................................................121
12. VIDEO FEATURES..............................................................................................................124
12.1
12.2
12.3
12.4
12.5
12.6
12.7
June 1997
Pixel Clock ......................................................................................................................................124
Palette ............................................................................................................................................126
12.2.1
Palette Updating .............................................................................................................126
Cursor.............................................................................................................................................126
12.3.1
Cursor in HiRes Mode ....................................................................................................127
12.3.2
Cursor in LCD Mode .......................................................................................................127
HiRes Support ................................................................................................................................127
12.4.1
CL-PS7500FE Support for HiRes Mode .........................................................................127
Liquid Crystal Displays ...................................................................................................................129
12.5.1
LCD Grayscaling.............................................................................................................129
12.5.2
Dual-Panel LCDs (Duplex Mode)....................................................................................129
12.5.3
Single-Panel Color LCDs ................................................................................................130
External Support.............................................................................................................................130
12.6.1
ECLK ..............................................................................................................................131
12.6.2
Power Saving Considerations .........................................................................................131
12.6.3
Vertical and Horizontal Synchronization .........................................................................131
12.6.4
GENLOCK ......................................................................................................................131
Analog Outputs...............................................................................................................................131
12.7.1
DAC Control....................................................................................................................131
12.7.2
Pedestal Current .............................................................................................................132
12.7.3
Video DAC Currents .......................................................................................................132
12.7.4
Monochrome Output .......................................................................................................132
ADVANCE DATA BOOK v2.0
TABLE OF CONTENTS
7
CL-PS7500FE
System-on-a-Chip for Internet Appliance
13. SOUND FEATURES ........................................................................................................... 133
13.1
13.2
13.3
Sound .............................................................................................................................................133
The Sound FIFO.............................................................................................................................133
The Digital Serial Sound Interface..................................................................................................133
13.3.1
Timing Formats...............................................................................................................133
14. VIDEO AND SOUND MACROCELL .................................................................................. 135
14.1
Features .........................................................................................................................................135
14.1.1
Flexible Video System ....................................................................................................135
14.1.2
Hardware Cursor ............................................................................................................135
14.1.3
Palette.............................................................................................................................135
14.1.4
Pixel Clock ......................................................................................................................136
14.1.5
Display Modes ................................................................................................................136
14.1.6
Power Management........................................................................................................136
14.1.7
On-chip Sound System...................................................................................................136
15. VIDEO MACROCELL INTERFACE.................................................................................... 138
15.1
15.2
Bus Interface ..................................................................................................................................138
Setting the FIFO Preload Value ......................................................................................................138
15.2.1
Example..........................................................................................................................139
16. THE VIDEO SOUND AND PROGRAMMER’S MODEL .................................................... 140
16.1
16.2
16.3
16.4
16.5
16.6
16.7
16.8
16.9
16.10
16.11
16.12
16.13
16.14
16.15
16.16
16.17
16.18
16.19
16.20
16.21
16.22
16.23
16.24
16.25
16.26
16.27
16.28
16.29
16.30
8
The Video and Sound Macrocell Registers ....................................................................................140
Video Palette: Address 0x0 ............................................................................................................142
Video Palette Address Pointer: Address 0x1 ..................................................................................142
LCD Offset Registers: Addresses 0x30 and 0x31 ..........................................................................143
Border Color Register: Address 0x4...............................................................................................144
Cursor Palette: Addresses 0x5–0x7 ...............................................................................................144
Horizontal Cycle Register (HCR): Address 0x80 ............................................................................145
Horizontal Sync Width Register (HSWR): Address 0x81................................................................145
Horizontal Border Start Register (HBSR): Address 0x82 ...............................................................145
Horizontal Display Start Register (HDSR): Address 0x83 ..............................................................146
Horizontal Display End Register (HDER): Address 0x84 ...............................................................146
Horizontal Border End Register (HBER): Address 0x85 ................................................................146
Horizontal Cursor Start Register (HCSR): Address 0x86 ...............................................................147
Horizontal Interlace Register (HIR): Address 0x87.........................................................................147
Horizontal Test Registers: Addresses 0x88 and 0x8H....................................................................147
Vertical Cycle Register (VCR): Address 0x90 ................................................................................147
Vertical Sync Width Register (VSWR): Address 0x91 ....................................................................148
Vertical Border Start Register (VBSR): Address 0x92....................................................................148
Vertical Display Start Register (VDSR): Address 0x93...................................................................148
Vertical Display End Register (VDER): Address 0x94 ....................................................................149
Vertical Border End Register (VBER): Address 0x95 .....................................................................149
Vertical Cursor Start Register (VCSR): Address 0x96....................................................................149
Vertical Cursor End Register (VCER): Address 0x97.....................................................................150
Vertical Test Registers: Addresses 0x98, 0x9A and 0x9C..............................................................150
External Register (EREG): Address 0xC........................................................................................151
Frequency Synthesizer Register (FSYNREG): Address 0xD .........................................................152
Control Register (CONREG): Address 0xE ....................................................................................153
Data Control Register (DCTL): Address 0xF ..................................................................................154
Sound Frequency Register (SFR): Address 0xB0 ..........................................................................154
Sound Control Register (SCTL): Address 0xB1 .............................................................................155
TABLE OF CONTENTS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
17. FPA COPROCESSOR MACROCELL ................................................................................156
17.1
FPA Functional Blocks....................................................................................................................157
17.1.1
Coprocessor Interface ....................................................................................................157
17.1.2
Instruction Issuer ............................................................................................................157
17.1.3
The Load-Store Unit .......................................................................................................157
17.1.4
The Register Bank ..........................................................................................................157
17.1.5
The Arithmetic Unit .........................................................................................................158
18. FLOATING-POINT COPROCESSOR PROGRAMMER’S MODEL ...................................160
18.1
18.2
18.3
18.4
18.5
Overview.........................................................................................................................................160
18.1.1
Floating-Point Status Register ........................................................................................160
18.1.2
Floating-Point Control Register.......................................................................................160
Floating-Point Operation.................................................................................................................160
ARM Integer and Floating-Point Number Formats .........................................................................161
18.3.1
Integer.............................................................................................................................161
18.3.2
IEEE Single Precision (S) ...............................................................................................161
18.3.3
IEEE Double Precision (D) .............................................................................................161
18.3.4
IEEE Extended Double Precision (E) .............................................................................162
18.3.5
Packed Decimal (P) ........................................................................................................163
18.3.6
Expanded Packed Decimal (EP).....................................................................................163
The Floating-Point Status Register (FPSR)....................................................................................164
18.4.1
System ID Byte ...............................................................................................................164
18.4.2
Exception Trap Enable Byte............................................................................................165
18.4.3
System Control Byte .......................................................................................................165
18.4.4
Cumulative Exception Flags Byte ...................................................................................166
The Floating-Point Control Register (FPCR) ..................................................................................168
19. FLOATING-POINT INSTRUCTION SET.............................................................................170
19.1
19.2
19.3
19.4
19.5
19.6
June 1997
Coprocessor Data Transfer .............................................................................................................170
19.1.1
LDF/STF — Load and Store Floating .............................................................................170
19.1.2
Assembler Syntax...........................................................................................................171
19.1.3
Load and Store Multiple Floating Instructions ................................................................172
19.1.4
Assembler Syntax — Form 1..........................................................................................173
19.1.5
Assembler Syntax — Form 2..........................................................................................174
Coprocessor Data Operations ........................................................................................................174
19.2.1
Dyadic Operations ..........................................................................................................174
19.2.2
Monadic Operations........................................................................................................175
19.2.3
Library Calls....................................................................................................................175
19.2.4
Backwards Compatibility.................................................................................................175
Coprocessor Register Transfer .......................................................................................................178
19.3.1
Compare Operations ......................................................................................................179
FPA Instruction Set ........................................................................................................................180
19.4.1
Infinities and NaNs..........................................................................................................180
19.4.2
Exceptional Conditions ...................................................................................................180
Floating-point Support Code ..........................................................................................................182
19.5.1
IEEE Standard Conformance .........................................................................................182
Instruction Cycle Timing .................................................................................................................183
19.6.1
Instruction Classification .................................................................................................184
19.6.2
Performance Tuning ........................................................................................................185
ADVANCE DATA BOOK v2.0
TABLE OF CONTENTS
9
CL-PS7500FE
System-on-a-Chip for Internet Appliance
20. BUS INTERFACE................................................................................................................ 187
20.1
20.2
20.3
20.4
Bus Arbitration ................................................................................................................................187
Bus Cycle Types .............................................................................................................................187
Video DMA Bandwidth....................................................................................................................188
Video DMA Latency........................................................................................................................188
21. CLOCKS, POWER SAVING, AND RESET........................................................................ 191
21.1
21.2
21.3
Clock Control ..................................................................................................................................191
21.1.1
Video and Sound Subsystem Clocks..............................................................................191
21.1.2
I/O Clock Outputs ...........................................................................................................191
21.1.3
Synchronous/Asynchronous Mode for the ARM Processor............................................191
21.1.4
Clock Prescalars.............................................................................................................192
21.1.5
Clocking Schemes ..........................................................................................................192
Power Management........................................................................................................................192
21.2.1
SUSPEND Mode ............................................................................................................193
21.2.2
STOP Mode ....................................................................................................................194
Reset ..............................................................................................................................................195
22. ELECTRICAL SPECIFICATIONS ...................................................................................... 196
22.1
22.2
22.3
22.4
22.5
22.6
22.7
22.8
Absolute Maximum Ratings............................................................................................................196
DC Specifications ...........................................................................................................................197
22.2.1
DC Specifications — Digital Values ................................................................................197
Derating ..........................................................................................................................................198
AC Parameters — List of Timing Figures .......................................................................................199
System Reset Timing .....................................................................................................................200
Memory Subsystems......................................................................................................................201
I/O Subsystems ..............................................................................................................................209
System Timing (Clocks)..................................................................................................................222
23. PACKAGE ........................................................................................................................... 225
23.1
240-Pin PQFP Package Example...................................................................................................225
24. ORDERING INFORMATION EXAMPLE............................................................................ 226
10
TABLE OF CONTENTS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendixes
A.
INITIALIZATION AND BOOT SEQUENCE ........................................................................227
1.
2.
3.
B.
DUAL-PANEL LIQUID CRYSTAL DISPLAYS...................................................................229
1.
2.
3.
4.
C.
Introduction.....................................................................................................................................236
Clock Sources ................................................................................................................................236
Using the Phase Comparator .........................................................................................................237
Phase Comparator Reset ...............................................................................................................240
4.1
Reset Procedure.............................................................................................................240
CL-PS7500FE TEST MODES..............................................................................................241
1.
2.
G.
32-Bit I/O ........................................................................................................................................234
CL-PS7500FE VIDEO CLOCK SOURCES.........................................................................236
1.
2.
3.
4.
F.
Using ASTCR .................................................................................................................................232
ASTCR I/O Cycle Type and Hold Times .........................................................................................233
Example..........................................................................................................................................233
EXPANDING PC-STYLE I/O TO 32 BITS ..........................................................................234
1.
E.
Programming the Video Subsystem ...............................................................................................229
Configuring DMA within the CL-PS7500FE....................................................................................230
Cursor.............................................................................................................................................230
Video Frame Buffer Restrictions.....................................................................................................231
USING ASTCR AT HIGH MEMCLK FREQUENCIES........................................................232
1.
2.
3.
D.
Introduction.....................................................................................................................................227
Sample Boot Sequence..................................................................................................................227
Other Methods................................................................................................................................228
Introduction.....................................................................................................................................241
Test Modes Description ..................................................................................................................241
CL-PS7500FE PINOUT DIFFERENCES FROM THE ARM7500 ......................................243
1.
Introduction.....................................................................................................................................243
INDEX .................................................................................................................................245
June 1997
ADVANCE DATA BOOK v2.0
TABLE OF CONTENTS
11
CL-PS7500FE
System-on-a-Chip for Internet Appliance
CONVENTIONS
Acronym
Abbreviations
Symbol
Units of measure
Definition (cont.)
DRAM
dynamic random-access memory
DVD
digital video disk
EDO
extended data out
bpp
bits-per-pixel
FIFO
first in/first out
°C
degree Celsius
FPA
floating point accelerator
Hz
hertz (cycles per second)
FPU
floating point unit
kilobyte (1,024 bytes)
GPIO
general-purpose IO
kHz
kilohertz
HBM
human body model
kΩ
kilohm
IC
integrated circuit
Mbyte
megabyte (1,048,576 bytes)
IDC
instruction and data cache
MHz
megahertz (1,000 kilohertz)
ISA
industry standard architecture
µF
microfarad
LSB
least-significant bit
µs
microsecond (1,000 nanoseconds)
LUT
lookup table
mA
milliampere
MFLOPS
million floating points per second
ms
millisecond (1,000 microseconds)
MMU
memory management unit
ns
nanosecond
MSB
most-significant bit
pV
picovolt
MUX
multiplexer
quad word
NaN
not a number
PC
program counter
PLL
phased-locked loop
PQFP
plastic quad-flat pack
RAM
random-access memory
RISC
reduced instruction set computer
ROM
read-only memory
Kbyte
qword
The use of ‘tbd’ indicates values that are ‘to be
determined’; ‘n/a’ designates ‘not available’; ‘n/c’
indicates a pin that is a ‘no connect’.
Acronyms
Acronym
Definition
AC
alternating current
R/W
read/write
ALU
arithmetic logic unit
SRAM
static random-access memory
AP
access permissions
SWI
software interrupt instruction
A-to-D
analog-to-digital
TLB
translation look-aside buffer
BIOS
basic input/output system
TTB
translation table base
CISC
complex instruction set computer
UMA
unified memory architecture
CMOS
complementary metal-oxide semiconductor
VCO
voltage-controlled oscillator
VRAM
video random-access memory
CRT
cathode ray tube
WB
write buffer
DAC
digital-to-analog converter
XIP
execute-in-place
DC
direct current
DMA
direct memory access
12
CONVENTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
1. PIN INFORMATION
The CL-PS7500FE is available in a 240-pin PQFP (plastic quad flat pack) configuration.
180
179
178
177
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
ID
IOP0
IOP1
IOP2
IOP3
IOP4
IOP5
IOP6
IOP7
nPOR
VSS
KBDATA
KBCLK
MSDATA
VDD
MSCLK
BD0
BD1
BD2
BD3
BD4
VSS
BD5
BD6
BD7
BD8
BD9
VDD_CORE
MEMCLK
VSS_CORE
BD10
VDD
BD11
BD12
BD13
nEVENT2
VSS
I_OCLK
BD14
BD15
nROMCS
nRESET
RESET
SnA
OSCDELAY
OSCPOWER
nWE
nCAS0
VDD
nCAS1
VSS
nCAS2
nCAS3
VSS_ATOD
ATOD0
ATOD1
ATOD2
ATOD3
ATODREF
VDD_ATOD
1.1 Pin Diagram
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
CL-PS7500FE
240-Pin PQFP
Pin 1 indicator
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
nRAS0
nRAS1
nRAS2
VDD
nRAS3
VSS
RA0
RA1
RA2
RA3
RA4
RA5
RA6
RA7
VDD
RA8
VSS
RA9
RA10
RA11
INT7
nINT6
nINT3
nINT8
nTEST
VSS_ANALOG
GOUT
BOUT
ROUT
VDD_ANALOG
VIREF
VDD_CORE
HSYNC
VSS_CORE
VSYNC
VSS
ED0
ED1
ED2
ED3
ED4
VDD
ED5
ED6
ED7
HCLK
VSS
ECLK
SYNC
WS
SDCLK
SCLK
SDO
VSS_CORE
VSS
VDD_CORE
VSS
VSS
VDD
VDD
LA15
LA16
LA17
LA18
LA19
LA20
LA21
VDD
LA22
VSS
LA23
LA24
LA25
LA26
LA27
LA28
D31
D30
D29
D28
VSS
D27
D26
VDD
D25
D24
D23
D22
D21
VSS_CORE
D20
VDD_CORE
D19
D18
VSS
D17
D16
D15
D14
D13
VDD
D12
D11
D10
D9
D8
VSS
D7
D6
D5
D4
D3
D2
D1
D0
VDD
PCOMP
VSS
VCLKI
VCLKO
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
OD1
OD0
SETCS
INT9
nINT4
INT5
READY
nIOGT
nBLI
nXIPMUX16
nINT1
INT2
VSS
nEVENT1
nXIPLATCH
TC
nSIOCS2
VDD
nSIOCS1
nEASCS
nMSCS
nBLO
nRBE
nWBE
CLK2
REF8M
CLK8
CLK16
nIORQ
VSS
nIOR
VSS_CORE
CPUCLK
VDD_CORE
nIOW
VDD
nCCS
nCDACK
IORNW
nPCCS2
nPCCS1
LNBW
LA0
LA1
LA2
VSS
LA3
LA4
LA5
LA6
LA7
LA8
VDD
LA9
LA10
LA11
LA12
VSS
LA13
LA14
June 1997
ADVANCE DATA BOOK v2.0
PIN INFORMATION
13
CL-PS7500FE
System-on-a-Chip for Internet Appliance
1.2 Block Diagram
MAIN
CLOCKS/CONTROL
RESET
VIDEO
CLOCKS AND
CONTROL
SNA
CPUCLK
MEMCLK
I_OCLK
LA[28:0]
LNBW
nPOR
nRESET
RESET
HCLK
VCLKI
VCLKO
LATCHED
ADDRESS
BUS AND
DATA
BUS
D[31:0]
nROMCS
nWE
RA[11:0]
PCOMP
SCLK
nCAS[3:0]
WS
SOUND
SYSTEM
nRAS[3:0]
SDO
CLK2
SDCLK
REFERENCE
CURRENT
VIDEO
OUTPUTS
CLK8
VIREF
REF8M
HSYNC
VSYNC
ECLK
CLK16
IOP[7:0]
ED[7:0]
BD[15:0]
RGB OUTPUTS
nEVENT1
nEVENT2
OSCDELAY
OSCPOWER
SETCS
nCCS
nCDACK
TC
nPCCS2
nPCCS1
nSIOCS1
nMSCS
nEASCS
nINT6
nSIOCS2
nTEST
OD[1:0]
SYNC
ID
POWER
MANAGEMENT
EXTERNAL
INTERRUPT
SOURCES
A-TO-D
CONVERTORS
KBD/MOUSE
INTERFACE
14
PIN INFORMATION
CL-PS7500FE
nINT3
nINT8
INT7
INT9
nINT4
INT5
nINT1
INT2
ATODREF
nBLO
nWBE
nRBE
nBLI
nIORQ
nIOGT
nIOR
nIOW
ATOD[3:0]
MSECLK
MSEDAT
KBCLK
KBDAT
I/O CHIP
SELECTS
IORNW
I/O R/W
CONTROL
nXIPLATCH
nXIPMUX16
READY
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2. PIN DESCRIPTIONS
This chapter gives the name, type, and relevant details of each of the CL-PS7500FE signals.
NOTE: When output signals are placed in the high-impedance state for long periods, ensure that they do not ‘float’
to an undefined logic level.
The following abbreiviations are used to indicate signal types.
IC
Input, CMOS threshold
OCZ
Output, CMOS levels, tristate
IT
Input, TTL threshold
ICS
Input, CMOS Schmitt
IA
Input, analog
OA
Output, analog
BTZ
Bidirectional, CMOS output, TTL threshold input level
TOD
Open-drain, TTL input
CSOD
Open-drain, CMOS schmitt input
IAOD
Input, analog with programmable internal pull-down transistor
For outputs and bidirectional signals, drive strength is classified 1, 2, or 3. See Chapter 22 for DC and AC
characteristics.
2.1 CL-PS7500FE Pin Descriptions
Type
Drive
Strength
LA[28:0]
OCZ
2
LATCHED ADDRESS BUS: This bus is the latched version of the
ARM address for memory accesses, changing on the falling edge of
the internal MCLK signal.
LNBW
OCZ
2
LATCHED NOT BYTE WORD: This is a latched version of the internal NBW signal from the ARM processor, changing on the falling
edge of the internal MCLK signal.
D[31:0]
BTZ
2
DATA: The main data bus for the CL-PS7500FE. All external data
transfers happen through this bus. When the CL-PS7500FE is configured for operation in 16-bit mode, only the lower 16 bits are used.
Name
SnA
IC
Description
SYNCHRONOUS/NOT ASYNCHRONOUS: This pin is set according to the relationship required between the internal clock signals,
MCLK and FCLK, for the ARM.
If this pin is set high, both the memory system and the CPU are
driven from the MEMCLK pin, and the required synchronous timing
relationship between the ARM processor clocks is generated automatically on-chip. If different clocks are to be used for the MEMCLK
and CPUCLK inputs, the SnA pin must be set low.
June 1997
ADVANCE DATA BOOK v2.0
PIN DESCRIPTIONS
15
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1 CL-PS7500FE Pin Descriptions (cont.)
Name
Type
Drive
Strength
Description
BOUT
AO
BLUE ANALOG OUTPUT: The video signal analog outputs are
designed to drive doubly-terminated 75-Ω lines.
ECLK
OCZ
3
EXTERNAL CLOCK: When enabled, this clock validates the data
on ED[7:0]. In normal video mode, it runs at the pixel rate, but when
LCD data is being produced, it runs at a quarter of the pixel rate.
ED[7:0]
OCZ
2
EXTERNAL DATA: This is the digital video output port of the
CL-PS7500FE. From this, the digital equivalent of the analog output
can be produced in any color, or data from the external palette may
be produced. This can be used for a variety of purposes such as
fading or supremacy. Also, data for driving LCD panels is output
from this port. Data produced is validated by ECLK.
GOUT
AO
GREEN ANALOG OUTPUT: The video signal analog outputs are
designed to drive doubly-terminated 75-Ω lines.
HCLK
IT
HIGH SPEED CLOCK: This is the clock used with video subsystem.
HSYNC
OCZ
3
HORIZONTAL SYNCHRONIZATION: There are two synchronization outputs on the CL-PS7500FE, HSYNC and VSYNC. Dependent
on the state of bits 17 and 16 in the video External register, either a
horizontal or a composite (NOR) sync can be output on this pin, in
either polarity. The width of the HSYNC pulse is definable in units of
2 pixels.
PCOMP
OCZ
1
PHASE COMPARATOR OUTPUT: Used with VCLK pins.
ROUT
AO
RED ANALOG OUTPUT: The video signal analog outputs are
designed to drive doubly-terminated 75-Ω lines.
SCLK
IT
SOUND CLOCK: This signal can be used to clock the sound system, when a clock asynchronous to the internal video reference
clock is required.
SDCLK
OCZ
2
SERIAL DATA CLOCK: This clock validates serial sound data on its
rising edge.
SDO
OCZ
2
SERIAL DATA OUT: Serial sound data is output from this pin.
SYNC
IT
EXTERNAL SYN: This signal is used to synchronize CL-PS7500FE
with another video system.
VCLKI
IC
PHASE COMPARATOR CLOCK IN (for video subsystem).
VCLKO
OCZ
16
PIN DESCRIPTIONS
2
PHASE COMPARATOR CLOCK OUT (for video subsystem).
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1 CL-PS7500FE Pin Descriptions (cont.)
Name
Type
Drive
Strength
Description
VIREF
IA
VSYNC
OCZ
3
VERTICAL SYNCHRONIZATION: Dependent on the state of bits
19 and 18 in the external register, either a vertical or a composite
(XNOR) sync can be output on this pin, in either polarity. The width
of the VSYNC pulse can be defined in units of a raster.
WS
OCZ
2
WORD SELECT: This signal denotes whether the output serial data
is for the left-hand or right-hand stereo channel.
nTEST
VIDEO REFERENCE CURRENT: The video DACs need a reference current to calibrate them. A constant current source is recommended, although a resistor up to V DD is sufficient for many
applications. This current also generates the constant source for the
A-to-D comparators.
IT
TEST MODE INPUT: This pin should be held permanently high. It
is only intended to be used during production test of the
CL-PS7500FE. An on-chip pull-up resistor is included, but it is
advised to apply an external pull-up resistor to this pin.
nWE
OCZ
2
WRITE ENABLE: This is a active-low signal.
RA[11:0]
OCZ
2
DRAM ROW/COLUMN MULTIPLEXED ADDRESS BUS:
Addresses for this bus are decoded from the ARM processor
address for normal memory accesses, and are generated by the
DMA controller for DMA.
nRAS[3:0]
OCZ
3
DRAM ROW ADDRESS STROBES: Each of these selects one of
the four banks of DRAM available.
nCAS[3:0]
OCZ
3
DRAM COLUMN ADDRESS STROBES: These select the byte
within the word for DRAM accesses.
ATOD[3:0]
IAOD
ANALOG-TO-DIGITAL: These are the four A-to-D channel input
voltages.
ATODREF
IA
ANALOG-TO-DIGITAL REFERENCE: This is the reference voltage
for the A-to-D converter comparators.
OSCPOWER
OCZ
1
OCILLATOR POWER: This is the enable signal for the system oscillator(s). When low, this signal can be used to disable the external
oscillator(s).
OSCDELAY
CSOD
1
OCILLATOR DELAY: This signal requires an RC network to generate a fixed delay when restarting the system oscillator(s) on exit
from STOP mode.
June 1997
ADVANCE DATA BOOK v2.0
PIN DESCRIPTIONS
17
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1 CL-PS7500FE Pin Descriptions (cont.)
Type
Drive
Strength
RESET
OCZ
2
RESET OUTPUT: This is the synchronized version of internal system reset signal.
nRESET
CSOD
2
RESET: This is an open-drain output and a ‘soft’ reset input. This pin
is sampled every 1µs for reset events, so to guarantee a successful
reset, a reset pulse applied to this pin must be longer than 1µs (1µs,
assuming the internal I/O clock is 32 MHz).
nROMCS
OCZ
1
ROM CHIP SELECT: This signal goes low to indicate a ROM
access.
Name
Description
I_OCLK
IC
I/O SYSTEM CLOCK: This clock input should always be 32 MHz
when in Divide-by-1 mode, and 64 MHz in Divide-by-2 mode.
MEMCLK
IC
MEMORY SYSTEM CLOCK: In synchronous mode, the ARM processor FCLK is also driven from this clock.
CPUCLK [MHz]
MEMCLK [MHz]
SnA
Low
40
High
40
56
Low
40
64
Low
Low
56
High
56
64
Low
Notes
Recommended
CPUCLK
IC
BD[15:0]
BTZ
2
This is the main external 16-bit I/O bus.
MSCLK
TOD
2
MOUSE CLOCK: An open-drain pin for the mouse PS/2 interface.
MSDATA
TOD
2
MOUSE DATA: An open-drain pin for the mouse PS/2 interface.
KBCLK
TOD
2
KEYBOARD CLOCK: An open-drain pin for the keyboard PS/2
interface.
KBDATA
TOD
2
KEYBOARD DATA: An open-drain pin for the keyboard PS/2 interface.
nPOR
ICS
18
PIN DESCRIPTIONS
This clock creates FCLK for the ARM CPU in asynchronous mode.
When SnA is high, this signal should be permanently tied high or
low.
POWER ON RESET: Any low transitions on this pin are detected
and stretched to ensure a full reset.
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1 CL-PS7500FE Pin Descriptions (cont.)
Type
Drive
Strength
IOP[7:0]
TOD
1
I/O PORT: This is the 8-bit-wide I/O port. Each bit is directly controllable through an CL-PS7500FE register, and can be used as an
interrupt source if required.
ID
TOD
1
ID: This pin activates a system ID chip. It is forced low during the
power-on reset sequence.
OD[1:0]
TOD
1
OPEN DRAIN 1:0: These are the two open-drain pins, which (unlike
the IOP[7:0] bus) cannot be used to generate interrupts, but can be
used as general-purpose I/O pins (for example to communicate with
a realtime clock chip).
SETCS
IC
This signal selects between two address decoding options for the
three main I/O chip selects. It affects the outputs nEASCS, nMSCS,
and nSIOCS2.
nINT1
IT
This is a falling-edge-triggered interrupt. The nINT1 value can be
read directly in the IOCR I/O control register.
INT2
IT
This is a rising-edge-triggered interrupt pin that can generate an
IRQ interrupt.
nINT3
IT
This is an active-low interrupt that can generate an IRQ interrupt.
nINT4
IT
This is an active-low interrupt that can generate an IRQ interrupt.
INT5
IT
This is an active-high interrupt that can generate either an IRQ or a
FIQ interrupt, depending on the status of the relevant mask register
bits.
nINT6
IT
This is an active-low interrupt that can generate either an IRQ or a
FIQ interrupt, depending on the programming of the mask registers.
INT7
IT
This is an active-high interrupt that can generate an IRQ interrupt.
nINT8
IT
This is an active-low interrupt that can generate either a FIQ or an
IRQ interrupt.
INT9
IT
This is an active-high interrupt that can only generate a FIQ (highest
priority) interrupt.
nEVENT1
IT
This is the active-low asynchronous event pin 1. A falling edge terminates the STOP or SUSPEND power-saving modes.
nEVENT2
IT
This is the active-low asynchronous event pin 2. A falling edge terminates the STOP or SUSPEND power-saving modes.
Name
June 1997
ADVANCE DATA BOOK v2.0
Description
PIN DESCRIPTIONS
19
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1 CL-PS7500FE Pin Descriptions (cont.)
Name
Type
Drive
Strength
Description
READY
IT
READY: This pin can stretch I/O accesses when set low during a
16-MHz PC-type I/O cycle.
nIORQ
OCZ
nIOGT
IT
I/O GRANT: This signal is for the module-type I/O for handshaking,
together with nIORQ.
nBLI
IT
This input is used during module-type I/O reads to cause the latching of data from the BD port.
nBLO
OCZ
1
This signal is the latching signal for use with external latches on the
upper 16 bits of the external datapath to create a 32-bit-wide I/O
bus.
nRBE
OCZ
1
This active-low read enable is used to create a 32-bit-wide I/O bus
for an external transceiver attached to the upper 16 bits of the I/O
bus.
nWBE
OCZ
1
This active-low write enable is used to create a 32-bit-wide I/O bus
for an external transceiver attached to the upper 16 bits of the I/O
bus.
2
I/O REQUEST: This signal is for the module-type I/O for handshaking, together with nIOGT.
nXIPMUX16
IT
This signal is for XIP (execute in place) support. This signal multiplexes 16 bits of data from the upper or lower halfword of the
CL-PS7500FE internal data bus to the 16-bit I/O bus, depending on
its state during writes.
nXIPLATCH
IT
This signal is for XIP support and latches the upper 16 bits of data
from the I/O bus while the lower 16 bits are being read. This signal
is used in conjunction with nXIPMUX16 to enable XIP (for example,
from a 16-bit PCMCIA card).
nSIOCS1
OCZ
1
This is the active-low chip select for simple I/O.
nSIOCS2
OCZ
1
This is the active-low chip select for simple I/O, with address decode
modified according to the state of SETCS.
nMSCS
OCZ
2
This is the active-low chip select for module-type I/O, with address
decode modified according to the state of SETCS.
nEASCS
OCZ
1
This is the active-low chip select for extended 16-MHz PC-type I/O,
with address decode modified according to the state of SETCS.
nCCS
OCZ
1
NOT COMBO CHIP SELECT: This is the chip select signal for a PC
Combo chip.
20
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1 CL-PS7500FE Pin Descriptions (cont.)
Type
Drive
Strength
nCDACK
OCZ
1
NOT COMBO DACK: This is the chip select and DACK signal for a
PC Combo chip.
TC
OCZ
1
TERMINAL COUNT: This active-high signal is used in conjunction
with the nCDACK signal for pseudo DMA to a PC Combo chip.
nPCCS1
OCZ
1
This is the active-low chip select for an area of 16-MHz PC-type I/O
space.
nPCCS2
OCZ
1
This is the active-low chip select for an area of 16-MHz PC-type I/O
space.
LNBW
OCZ
2
LATCHED NOT BYTE WORD: This is a latched version of the internal NBW signal from the ARM processor, which transitions on the
falling edge of the internal MCLK signal.
IORNW
OCZ
2
I/O READ/NOT WRITE: This signal goes high during an I/O read,
and low during an I/O write.
nIOR
OCZ
2
NOT I/O READ: This signal has two functions:
Name
Description
1) It transitions low during simple and PC-type I/O reads; not used for
module-type I/O.
2) It is asserted low during ROM read cycles to act as an output
enable.
nIOW
OCZ
2
NOT I/O WRITE: This signal has two functions:
1) It transitions low during simple and PC-type I/O reads; not used for
module-type I/O.
2) It is asserted low during writes to ROM space, to act as a write
enable, if writes are enabled in the ROMCR register.
CLK2
OCZ
2
This is the 2-MHz I/O clock output.
CLK8
OCZ
2
This is the 8-MHz I/O clock output, the inverted version of REF8M.
REF8M
OCZ
2
This is the 8-MHz I/O clock output.
CLK16
OCZ
2
This is the 16-MHz I/O clock output, for PC-type I/O.
June 1997
ADVANCE DATA BOOK v2.0
PIN DESCRIPTIONS
21
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.2 Power and Ground Pins
Name
Pin No.
Description
VDD
8
24
41
56
61
62
79
106
117
132
149
166
198
216
233
These 15 pins supply +5 volts to the digital logic of the CL-PS7500FE. Each pin
must be connected to the VCC plane.
VSS
10
21
35
47
58
63
64
66
74
85
104
115
130
144
159
170
193
210
226
238
These 20 pins supply the ground reference to the digital logic of the
CL-PS7500FE. Each pin must be connected to the ground plane.
VDD_CORE
32
65
89
153
214
These five pins supply +5 volts to the core logic of the CL-PS7500FE. Each pin
must be connected to the VCC plane.
22
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.2 Power and Ground Pins (cont.)
Name
Pin No.
Description
VSS_CORE
30
67
87
151
212
These five pins supply the ground reference to the core logic. Each pin must be
connected to the ground plane.
VDD_ATOD
121
This pin is the positive (+5V) supply for the A-to-D converter comparators. This
pin must be connected directly to the VCC plane.
VSS_ATOD
127
This pin is the analog ground for the A-to-D converter comparators. This pin
must be connected to the ground plane.
VDD_Analog
91
This pin supplies the positive (+5V) supply for analog video system. This pin
must be connected directly to the VCC plane.
VSS_Analog
95
This pin supplies ground for analog video system. This pin must be connected
to the ground plane.
June 1997
ADVANCE DATA BOOK v2.0
PIN DESCRIPTIONS
23
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.3 Numerical Pin Listing
The following table is a numeric listing of the pins of the CL-PS7500FE.
24
Pin number
Signal name
Pin number
Signal name
Pin number
Signal name
1
LA[15]
30
VSS_CORE
59
VCLKI
2
LA[16]
31
D[20]
60
VCLKO
3
LA[17]
32
VDD_CORE
61
VDD
4
LA[18]
33
D[19]
62
VDD
5
LA[19]
34
D[18]
63
VSS
6
LA[20]
35
VSS
64
VSS
7
LA[21]
36
D[17]
65
VDD_CORE
8
VDD
37
D[16]
66
VSS
9
LA[22]
38
D[15]
67
VSS_CORE
10
VSS
39
D[14]
68
SDO
11
LA[23]
40
D[13]
69
SCLK
12
LA[24]
41
VDD
70
SDCLK
13
LA[25]
42
D[12]
71
WS
14
LA[26]
43
D[11]
72
SYNC
15
LA[27]
44
D[10]
73
ECLK
16
LA[28]
45
D[9]
74
VSS
17
D[31]
46
D[8]
75
HCLK
18
D[30]
47
VSS
76
ED[7]
19
D[29]
48
D[7]
77
ED[6]
20
D[28]
49
D[6]
78
ED[5]
21
VSS
50
D[5]
79
VDD
22
D[27]
51
D[4]
80
ED[4]
23
D[26]
52
D[3]
81
ED[3]
24
VDD
53
D[2]
82
ED[2]
25
D[25]
54
D[1]
83
ED[1]
26
D[24]
55
D[0]
84
ED[0]
27
D[23]
56
VDD
85
VSS
28
D[22]
57
PCOMP
86
VSYNC
29
D[21]
58
VSS
87
VSS_CORE
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Pin number
Signal name
Pin number
Signal name
Pin number
Signal name
88
HSYNC
120
nRAS[0]
152
MEMCLK
89
VDD_CORE
121
VDD_ATOD
153
VDD_CORE
90
VIREF
122
ATODREF
154
BD[9]
91
VDD_ANALOG
123
ATOD[3]
155
BD[8]
92
ROUT
124
ATOD[2]
156
BD[7]
93
BOUT
125
ATOD[1]
157
BD[6]
94
GOUT
126
ATOD[0]
158
BD[5]
95
VSS_ANALOG
127
VSS_ATOD
159
VSS
96
nTEST
128
nCAS[3]
160
BD[4]
97
nINT8
129
nCAS[2]
161
BD[3]
98
nINT3
130
VSS
162
BD[2]
99
nINT6
131
nCAS[1]
163
BD[1]
100
INT7
132
VDD
164
BD[0]
101
RA[11]
133
nCAS[0]
165
MSCLK
102
RA[10]
134
nWE
166
VDD
103
RA[9]
135
OSCPOWER
167
MSDATA
104
VSS
136
OSCDELAY
168
KBCLK
105
RA[8]
137
SnA
169
KBDATA
106
VDD
138
RESET
170
VSS
107
RA[7]
139
nRESET
171
nPOR
108
RA[6]
140
nROMCS
172
IOP[7]
109
RA[5]
141
BD[15]
173
IOP[6]
110
RA[4]
142
BD[14]
174
IOP[5]
111
RA[3]
143
I_OCLK
175
IOP[4]
112
RA[2]
144
VSS
176
IOP[3]
113
RA[1]
145
nEVENT2
177
IOP[2]
114
RA[0]
146
BD[13]
178
IOP[1]
115
VSS
147
BD[12]
179
IOP[0]
116
nRAS[3]
148
BD[11]
180
ID
117
VDD
149
VDD
181
OD[1]
118
nRAS[2]
150
BD[10]
182
OD[0]
119
nRAS[1]
151
VSS_CORE
183
SETCS
June 1997
ADVANCE DATA BOOK v2.0
PIN DESCRIPTIONS
25
CL-PS7500FE
System-on-a-Chip for Internet Appliance
26
Pin number
Signal name
Pin number
Signal name
184
INT9
216
VDD
185
nINT4
217
nCCS
186
INT5
218
nCDACK
187
READY
219
IORNW
188
nIOGT
220
nPCCS2
189
nBLI
221
nPCCS1
190
nXIPMUX16
222
LNBW
191
nINT1
223
LA[0]
192
INT2
224
LA[1]
193
VSS
225
LA[2]
194
nEVENT1
226
VSS
195
nXIPLATCH
227
LA[3]
196
TC
228
LA[4]
197
nSIOCS2
229
LA[5]
198
VDD
230
LA[6]
199
nSIOCS1
231
LA[7]
200
nEASCS
232
LA[8]
201
nMSCS
233
VDD
202
nBLO
234
LA[9]
203
nRBE
235
LA[10]
204
nWBE
236
LA[11]
205
CLK2
237
LA[12]
206
REF8M
238
VSS
207
CLK8
239
LA[13]
208
CLK16
240
LA[14]
209
nIORQ
210
VSS
211
nIOR
212
VSS_CORE
213
CPUCLK
214
VDD_CORE
215
nIOW
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3. FUNCTIONAL DESCRIPTION
The CL-PS7500FE is a high-performance, low-power RISC-based single-chip computer built around an
ARM microprocessor core. To maximize the potential of the ARM processor macrocell, the CL-PS7500FE
contains memory and I/O control on-chip, enabling the direct connection of external memory devices and
peripherals with the minimum of external components. The FPA (floating-point accelerator) is also integrated, resulting in outstanding math performance.
NOTE: The CL-PS7500FE is based on the ARM7500FE architecture from ARM Ltd., U.K. (http://www.arm.com).
The CL-PS7500FE includes features that make it particularly suitable for low-power portable applications.
Both 32- and 16-bit-wide memory systems are supported, allowing the design of a lower-cost 16-bitbased system. The CL-PS7500FE drives color CRT or color LCD panels. Monochrome single- or dualpanel LCDs with 16 levels of greyscaling can also be driven. Power-management circuitry is included with
two power-saving states. The high level of integration achieved allows significant PCB area saving, and
results in a very cost-competitive system.
The CL-PS7500FE is also particularly suited to any application requiring high-quality video, sound, and
general I/O requirements, such as multimedia. The video controller provides up to 16 million colors from
a 256-entry palette, running at up to a 120-MHz pixel clock rate. The sound subsystem includes a serial
sound interface for CD-quality 32-bit sound. Four on-chip A-to-D converters allow the connection of analog joysticks or similar control devices. The clocking scheme is very flexible, allowing either a very cheap
system to be built using a single oscillator, or separate asynchronous clocks to be used for the CPU, memory and I/O subsystems, which gives an extremely flexible system, able to take advantage of the fastest
available DRAM memory.
3.1
Functional Block Diagram
Figure 3-1 on page 28 presents a more detailed view of the functionality of the CL-PS7500FE single-chip
computer.
3.2
ARM Processor Macrocell
The ARM processor contains an ARM7 core with MMU, 4-Kbyte cache, and write buffer.
3.3
FPA Macrocell
The FPA is a fully IEEE-754 compliant floating-point accelerator, and supports single, double, and
extended precision formats. It is connected to the ARM through the coprocessor interface and provides
the same floating-point functionality as the FPA11.
Concurrent load/store and arithmetic units, and speculative execution are employed to give good floatingpoint performance.
June 1997
ADVANCE DATA BOOK v2.0
FUNCTIONAL DESCRIPTION
27
CL-PS7500FE
System-on-a-Chip for Internet Appliance
FPA
LATCHED ADDRESS
ADDRESS LATCH
ADDRESS
BUFFER
ARM PROCESSOR
INTERNAL
ADDRESS
MMU
WRITE BUFFER
D
A
T
A
P
A
T
H
4-KBYTE
CACHE
ADDRESS
DECODE
I/O
CONTROL
INTERRUPTS
AND TIMERS
ARM7
CPU
DATA BUFFER
INTERNAL DATA
DATA
BUFFER
VIDEO AND SOUND
DATA LATCH
HORIZONTAL AND
VIDEO FIFO
CURSOR FIFO
VERTICAL TIMING
AND
AND
AND
SERIALIZER
SERIALIZER
CLOCK CONTROL
SOUND
VIDEO
PALETTES
FIFO
DIGITAL
SOUND
CURSOR
PALETTES
MUX
ANALOG
RGB
OUTPUTS
EXTERNAL
LCD
OUTPUTS
SERIAL
PORT 1
SERIAL
PORT 2
BUS CONTROL
AND
ARBITRATION
CLOCK CONTROL,
POWER MANAGEMENT,
AND
RESET
DMA
CONTROL
DRAM
CONTROL
ROM CONTROL
4 A-TO-D
CONVERTORS
Figure 3-1. Functional Block Diagram of the CL-PS7500FE
28
FUNCTIONAL DESCRIPTION
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3.4
Video and Sound Macrocell
The video and sound macrocell gives the CL-PS7500FE the flexibility to drive high analog CRT or low
power LCD displays, and features the following:
●
●
Up to 120-MHz pixel clock rate
Resolutions of up to 1024 × 768 pixels are directly supported
(greater if external serialization is used)
●
Fully programmable display parameters
●
256-entry by 28-bit video palette
●
Red, green and blue 8-bit linear DACs to drive CRT
●
1-, 2-, 4-, 8-, 16-, and 32-bpp CRT modes
●
Up to 16 million colors
●
External bits in palette for supremacy, fading, HiRes
●
Single- or dual-panel LCD driving
●
16-level gray scalar for LCD
●
Power management features
●
Hardware cursor for all display modes
●
Sound system — serial CD digital output
3.5
Clock Control and Power Management
The clocking strategy for CL-PS7500FE has been designed for maximum flexibility, and includes separate
clock inputs for the:
●
CPU core clock
●
Memory system clock
●
I/O system clock (in addition to the video clock inputs).
Each of the three clock inputs has a selectable divide-by-two prescalar to generate an internal 50/50
mark-space ratio if required. Throughout this data book, all timing diagrams assume that CPUCLK, MEMCLK, and I_OCLK are divided by one.
There are two levels of power management included:
3.6
●
SUSPEND mode: The clock to the CPU is stopped, but the display continues to work normally, that is, DMA
unaffected.
●
STOP mode: All clocks are stopped. Two asynchronous wake-up event pins are provided to terminate stop
mode. Circuitry is included on-chip to stop external oscillators and restart them cleanly when required.
Memory System
The memory system interface control logic is completely asynchronous in operation to the I/O control
logic. This means that the clock to the memory controller can be increased in frequency to allow faster
memory to be used. This implementation gives maximum system flexibility.
June 1997
ADVANCE DATA BOOK v2.0
FUNCTIONAL DESCRIPTION
29
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The CL-PS7500FE can control a 32- or 16-bit-wide memory system. The width of each bank of ROM or
DRAM is selectable by programming appropriate register bits. Fast page mode or EDO DRAMs are supported.
A DRAM controller is included that can directly drive up to four banks of DRAM. Four nRAS strobes individually select one of the four banks, and four nCAS strobes provide individual byte selection. The DRAM
address multiplexing option provided allows a wide variety of DRAM sizes to be used – from 256 Kbytes
to beyond 16 Mbytes. Up to 256 page mode transfers can occur in one sequential burst. When configured
for operation with a 16-bit-DRAM system, the DRAM controller converts the access into two DRAM cycles
to access the two halves of the 32-bit word. Byte transfers only take one DRAM access cycle, even in 16bit mode.
A programmable register allows one of four DRAM refresh rates to be selected. In addition, a register is
provided to enable direct software control of the nCAS and nRAS lines for setting DRAM into a self-refresh
state.
A ROM controller supports two 16-Mbyte banks of ROM with individually programmable read cycle timings. Support is provided for burst mode reads. Each ROM bank can be programmed to operate in 16-bitwide mode and, like the DRAM controller, converts accesses into two ROM cycles for the two halves of
the 32-bit word. The ROM controller can be programmed to allow write cycles through this interface, allowing FLASH to be programmed.
3.6.1 DMA
Three fully programmable DMA channels are included, for video, cursor, and sound data. The DMA controller includes additional support for dual-panel LCDs.
3.6.2 I/O Control
The I/O bus of the CL-PS7500FE is 16-bits wide, but for some types of access can be expanded to 32
bits by the use of external transceivers. The input clock I_OCLK provides a reference for the I/O subsystem nominally 32 MHz. The I/O features of this device can be separated into three distinct cycle types:
●
Simple I/O with fixed 8-MHz timings
●
Module I/O with variable length 8-MHz timings
●
PC bus style I/O with fixed 16-MHz timings and support for 32-bit data
Simple I/O
The Simple I/O type of access is 16-bit-only and has a selection of four different cycle speeds selectable
by address. When writing, the upper half-word of the ARM data bus is written out on the I/O bus. When
reading, the I/O bus data is read back onto the lower half-word of the ARM data bus. During these
accesses, a chip select is asserted with the appropriate nIOR/nIOW read or write strobe, based on the
8-MHz clock CLK8.
Module I/O
The Module I/O type of access is 16 bits only and timing is controlled by a handshake mechanism with
the external hardware. The signals nIORQ (output) and nIOGT (input) are used for this handshaking and
are referenced to REF8M. When writing, the upper half-word of the ARM data bus is written out on the
I/O bus. When reading, the I/O bus data is read back onto the lower half-word of the ARM data bus.
30
FUNCTIONAL DESCRIPTION
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
During these accesses, a chip select is asserted but the nIOR/nIOW read and write strobes are not used,
although the IORNW signal is active.
PC Bus Style I/O
The PC bus style I/O type of access routes the lower half-word of the ARM bus through the device providing a direct 16-bit interface. Signals are generated to support the addition of external latches/drivers to
extend the I/O data by 16 bits. The upper half-word of the ARM data bus is routed through these external
devices if present.
There are five different address areas that generate five different chip selects using the same type of
access. There are four fixed-cycle types based on the 16-MHz clock, although the largest area only supports two of these cycle types. Any access can be held up by external circuitry removing the READY signal before the end of the cycle.
During these accesses, the relevant chip select is asserted, as well as the appropriate read or write
strobes.
Two special inputs are provided to allow external circuitry to route the full 32 bits through the 16-bit I/O
bus using multiplexing. This allows, for example, the execution of code from a 16-bit PCMCIA card with
suitable external controller. On a read I/O, if this latching signal is used, the data read back onto the ARM
data bus comes from the I/O bus instead of the external extension latches.
3.7
Other Features
The CL-PS7500FE includes four analog comparators used to create four A-to-D converter channels, and
two serial keyboard/mouse ports.
There are eight general-purpose, open-drain I/O lines that can be used as inputs or open drain outputs
and, if required, as interrupt sources.
An interrupt handler processes a variety of internal and external interrupt sources to generate the IRQ
and FIQ interrupts for the ARM processor.
3.8
Test Modes
The CL-PS7500FE has an nTEST pin used to invoke various test modes. When nTEST is set low, the
functionality of many of the pins change depending on the values applied to the nINT3, nINT6 and nINT8
pins. The nTEST pin includes an on-chip pull-up resistor, but it is recommended that the pin be also pulled
up to VDD externally. See Appendix F.
NOTE: The nTEST pin should never be forced low during normal operation.
3.9
Structure of the CL-PS7500FE
The CL-PS7500FE includes three modified ARM macrocells:
●
ARM processor
●
FPA
●
Video and sound macrocells
These macrocells are self-contained and the relevant control registers are contained within them. This
has the effect that there are four sets of programmable registers within the CL-PS7500FE, which are
accessed in different ways depending on their location.
June 1997
ADVANCE DATA BOOK v2.0
FUNCTIONAL DESCRIPTION
31
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3.9.1 Register Programming
ARM processor register programming is described in Chapter 4. FPA register programming is described
in Chapter 18.
The video and sound macrocell registers are programmed using only the internal CL-PS7500FE data bus
(the address bus is not passed to the macrocell). The address 0x03400000 is decoded to provide a write
strobe for the video macrocell registers, and the addressing of registers within the macrocell is decoded
from the upper four or eight bits of the data word. This system is described in more detail in Chapter 16.
The remaining CL-PS7500FE registers, associated with Memory, I/O, and general miscellaneous control,
form a separate group and are programmed between addresses 0x03200000 and 0x032001F8. The
majority of the registers are only 8 bits wide, although all register addresses are word-aligned. These registers are described in Chapter 7.
3.9.2 Interaction Between Macrocells
Interaction between the macrocells occurs mainly across the internal 32-bit data bus of the
CL-PS7500FE, which is routed to the ARM and video/sound macrocells, and most of the other memory
and I/O control logic. The address bus of the ARM processor is routed to an internal address decoder
where memory space is decoded to determine required cycle types and register addresses. The same
address bus is latched and exported from the device as the LA[28:0] bus. Only these 29 bits of the
address bus are available externally.
3.10 Resetting CL-PS7500FE Systems
The CL-PS7500FE is designed to operate with both 16- and 32-bit-wide ROMs, which means that it must
be capable of booting from either. To achieve this, the device is always reset into 16-bit mode, which might
be expected to cause difficulty when the device is being booted up from 32-bit ROM. However,
Appendix A describes a simple code sequence that allows the device to be started up without difficulty
under these circumstances.
32
FUNCTIONAL DESCRIPTION
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
4. THE ARM PROCESSOR MACROCELL
The CL-PS7500FE contains a 32-bit RISC ARM processor, similar to the ARM710C macrocell. It has a
4-Kbyte cache, write buffer, and an MMU. The ARM processor macrocell offers high-level RISC performance, yet its fully static design ensures minimal power consumption. This makes it ideal for incorporation
into the CL-PS7500FE. The CL-PS7500FE aims to make maximum use of the performance and flexibility
offered by the ARM processor.
This section describes the features of the ARM processor macrocell available to the user in its embedded
state within the CL-PS7500FE single-chip computer.
4.1 Architecture
The ARM processor architecture is based on RISC principles, and the instruction set and related decode
mechanism are greatly simplified compared with microprogrammed CISCs.
The mixed data and instruction cache, together with the write buffer, substantially raise the average execution speed and reduce the average amount of memory bandwidth required by the processor. This
allows the CL-PS7500FE bus structure to support DMA channels with minimal performance loss.
The MMU supports a conventional two-level page-table structure and a number of extensions, making it
ideal for embedded control, UNIX, and object-oriented systems.
4.2 Instruction Set
The instruction set comprises ten basic instruction types:
●
Two instruction types make use of the on-chip ALU, barrel shifter, and multiplier to perform high-speed operations on the data in a bank of 31 registers, each 32 bits wide.
●
Three classes of instruction control data transfers between memory and the registers:
— one optimized for flexibility of addressing,
— another for rapid context switching, and
— the third for swapping data.
●
Two instructions control the flow and privilege level of execution.
●
Three instruction types are dedicated to the control of coprocessors that allow the functionality of the instruction set to be extended in an open and uniform way; the on-chip FPA is one such processor.
However, the facility to add external coprocessors to the CL-PS7500FE is not available, and software emulation of coprocessor activity is required if instructions, other than those for the on-chip FPA or control coprocessor #15, are to perform a defined function.
The ARM instruction set is a good target for compilers of many different high-level languages. Where
required for critical code segments, assembly code programming is also straightforward, unlike some
RISC processors that depend on sophisticated compiler technology to manage complicated instruction
interdependencies.
June 1997
ADVANCE DATA BOOK v2.0
THE ARM PROCESSOR MACROCELL
33
CL-PS7500FE
System-on-a-Chip for Internet Appliance
4.3 Memory Interface
The memory interface has been designed to allow the performance potential to be realized without incurring high costs in the memory system. Speed-critical control signals are pipelined to allow system control
functions to be implemented in standard low-power logic, and these control signals permit the
CL-PS7500FE to exploit the page mode access offered by industry-standard DRAMs.
4.4 Clocks and Synchronous/Asynchronous Modes
The ARM processor uses two independent clock sources, MCLK and FCLK. Both are generated internally
to the CL-PS7500FE from MEMCLK and CPUCLK. The ARM7 core CPU switches between MCLK and
FCLK according to the operation being carried out. For example, if the ARM7 core CPU is reading data
from the cache, it is clocked by FCLK; if the core CPU is reading data from uncached memory then it is
clocked by MCLK. The control logic of the ARM processor ensures that the correct clock is used internally
and switches between the two clocks automatically.
When SnA is tied high, MEMCLK creates both FCLK and MCLK; MCLK has half the frequency of FCLK.
This synchronous mode ensures that there are no synchronization penalties whenever the ARM 7 core
is switched between FCLK and MCLK.
When SnA is tied low, MEMCLK creates MCLK and CPUCLK must be driven to supply FCLK. MEMCLK
and CPUCLK can be of unrelated frequency. There is a synchronization penalty whenever the ARM7 core
clock switches between MCLK and FCLK. This penalty is symmetric, and varies between nothing and a
whole period of the clock where the core resynchronized. Thus, when changing there is an average resynchronization penalty of one-half a clock period, MCLK or FCLK as appropriate.
A[31:0]
NR/W
NB/W
MCLK SNA FCLK
NRESET
NMREQ
ADDRESS BUFFER
CLOCK
INTERNAL ADDRESS BUS
CONTROL
NIRQ
NFIQ
4-KBYTE
CACHE
MMU
ARM7
CPU
INTERNAL DATA BUS
WRITE
BUFFER
CONNECTION TO
FPA COPROCESSOR
CONTROL
COPROC
DBE
D[31:0]
Figure 4-1. ARM Processor Block Diagram
34
THE ARM PROCESSOR MACROCELL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
5. IDC
ARM processor contains a 4-Kbyte mixed-instruction and data cache. The IDC has 256 lines of 16 bytes
(4 words), organized as a four-way set associative cache, and uses the virtual addresses generated by
the processor core. The IDC is always reloaded one line at a time (four words). It can be enabled or disabled through the ARM processor Control register and is disabled on nRESET.
The operation of the cache is further controlled by the cacheable or C bit stored in the Memory Management Page table (see the Section 6 on page 38). For this reason, to use the IDC the MMU must be
enabled. However, the two functions can be enabled simultaneously with a single write to the Control register.
5.1 Cacheable Bit
The C bit determines whether data being read can be placed in the IDC and used for subsequent read
operations. Typically, main memory is marked as cacheable to improve system performance, and I/O
space as non-cacheable to stop the data being stored in the cache of the CL-PS7500FE. (For example,
if the processor is polling a hardware flag in I/O space, it is important that the processor is forced to read
data from the external peripheral, and not a copy of initial data held in the cache.) The Cacheable bit can
be configured for both pages and sections.
5.2 IDC Operation
In the ARM processor the cache is searched regardless of the state of the C bit, only reads that miss the
cache are affected.
●
Cacheable reads
— C = 1: A line fetch of 4 words is performed and randomly placed in a cache bank.
●
Uncacheable reads
— C = 0: An external memory access is performed and the cache is not written.
5.2.1 IDC Validity
The IDC operates with virtual addresses, so ensure that the contents remain consistent with the virtualto-physical mappings performed by the MMU. If the memory mappings are changed, the IDC validity must
be ensured.
5.2.2 Software IDC Flush
The entire IDC can be marked as invalid by writing to the ARM processor IDC Flush register (register 7).
The cache is flushed immediately the register is written, but note that the next two instruction fetches may
come from the cache before the register is written.
5.2.3 Doubly-Mapped Space
Since the cache works with virtual addresses, it is assumed that every virtual address maps to a different
physical address. If the same physical location is accessed by more than one virtual address, the cache
cannot maintain consistency, since each virtual address has a separate entry in the cache, and only one
entry is updated on a processor write operation. To avoid any cache inconsistencies, both doubly-mapped
virtual addresses should be marked as uncacheable.
June 1997
ADVANCE DATA BOOK v2.0
IDC
35
CL-PS7500FE
System-on-a-Chip for Internet Appliance
5.2.4 Read-Locked-Write
The IDC treats the Read-Locked-Write instruction as a special case. The read phase always forces a read
of external memory, regardless of whether the data is contained in the cache. The write phase is treated
as a normal write operation (and if the data is already in the cache, the cache is updated). Externally the
two phases are flagged as indivisible by asserting the LOCK signal.
5.3 IDC Enable/Disable and Reset
The IDC is automatically disabled and flushed on nRESET. Once enabled, cacheable read accesses
cause lines to be placed in the cache.
5.3.1 Enable the IDC
To enable the IDC, make sure that the MMU is enabled first by setting Control register, bit 0, then enable
the IDC by setting Control register, bit 2. The MMU and IDC can be simultaneously enabled with a single
control register write.
5.3.2 Disable the IDC
To disable the IDC, clear Control register, bit 2 and perform a flush by writing to the flush register.
5.4 Write Buffer (WB)
The ARM processor WB is provided to improve system performance. It can buffer up to 8 words of data,
and four independent addresses. It can be enabled or disabled through the W bit (bit 3) in the ARM processor Control register and the buffer is disabled and flushed on reset.
The operation of the write buffer is further controlled by one bit, B or bufferable, stored in the Memory Management Page Tables. For this reason, to use the write buffer the MMU must be enabled.
The two functions may, however, be enabled simultaneously, with a single write to the Control register. For
a write to use the write buffer, both the W bit in the Control register, and the B bit in the corresponding
page table must be set.
5.4.1 Bufferable Bit
This bit controls whether a write operation may or may not use the write buffer. Typically main memory is
bufferable and I/O space unbufferable. The B bit can be configured for both pages and sections.
5.4.2 Write Buffer Operation
When the CPU performs a write operation, the translation entry for that address is inspected and the state
of the B bit determines the subsequent action. If the write buffer is disabled through the ARM processor
Control register, bufferable writes are treated in the same way as unbuffered writes.
Bufferable Write
If the write buffer is enabled and the processor performs a write to a bufferable area, the data is placed in
the write buffer at FCLK speeds and the CPU continues execution. The write buffer then performs the
external write in parallel. If the write buffer is full (either because there are already 8 words of data in the
buffer, or because there is no slot for the new address) then the processor is stalled until there is sufficient
space in the buffer.
36
IDC
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Unbufferable Writes
If the write buffer is disabled or the CPU performs a write to an unbufferable area, the processor is stalled
until the write buffer empties and the write completes externally. This process may require synchronization
and several external clock cycles.
Read-Locked Write
The write phase of a read-locked-write sequence is treated as an unbuffered write, even if it is marked as
buffered.
NOTE: A single write requires one address slot and one data slot in the write buffer; a sequential write of n words
requires one address slot and n data slots. The entire eight data slots in the buffer can be used as required.
So for instance there could be three non-sequential writes and one sequential write of 5 words in the buffer,
and the processor could continue as normal: a fifth write or a sixth word in the fourth write would stall the
processor until the first write is complete.
5.4.3 Enable the Write Buffer
To enable the WB, ensure the MMU is enabled by setting Control register, bit 0, then enable the write
buffer by setting Control register, bit 3. The MMU and write buffer can be enabled simultaneously with a
single write to the Control register.
5.4.4 Disable the Write Buffer
To disable the WB, clear the control register, bit 3.
NOTE: Any writes already in the write buffer completes normally.
5.5 Coprocessors
The on-chip FPA is a coprocessor and its operation are described later in this manual.
The ARM processor also has an internal coprocessor designated #15 for internal control of the device.
However, the CL-PS7500FE has no external coprocessor bus, so it is not possible to add further external
coprocessors to this device. All coprocessor operations, other than those implemented by the FPA, MRC,
or MCR to registers 0–7 on coprocessor #15, cause the undefined instruction trap to be taken.
June 1997
ADVANCE DATA BOOK v2.0
IDC
37
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6. ARM PROCESSOR MMU
The MMU performs two primary functions: it translates virtual addresses into physical addresses, and it
controls memory access permissions. The MMU hardware required to perform these functions consists
of a TLB, access control logic, and translation table walking logic.
The MMU supports memory accesses based on Sections or Pages:
●
Sections are comprised of 1-Mbyte blocks of memory.
●
Pages – two different page sizes are supported:
— Small pages consist of 4-Kbyte blocks of memory. Additional access control mechanisms are extended
within small pages to 1-Kbyte subpages.
— Large pages consist of 64-Kbyte blocks of memory. Additional access control mechanisms are extended
within large pages to 16-Kbyte subpages. Large pages are supported to allow mapping of a large region
of memory while using only a single entry in the TLB.
The MMU also supports the concept of domains — areas of memory that can be defined to possess individual access rights. The Domain Access Control register specifies access rights for up to 16 separate
domains.
The TLB caches 64 translated entries. During most memory accesses, the TLB provides the translation
information to the access control logic. If the TLB contains a translated entry for the virtual address, the
access control logic determines whether access is permitted. If access is permitted, the MMU outputs
the appropriate physical address corresponding to the virtual address. If access is not permitted, the
MMU signals the CPU to abort.
If the TLB misses (that is, it does not contain a translated entry for the virtual address), the translation
table walk hardware is invoked to retrieve the translation information from a translation table in physical
memory. Once retrieved, the translation information is placed into the TLB, possibly overwriting an existing
value. The entry to be overwritten is chosen by cycling sequentially through the TLB locations.
When the MMU is turned off (for example, on reset), the virtual address is output directly onto the physical
address bus.
6.1
MMU Program-Accessible Registers
The ARM processor provides several 32-bit registers that determine the operation of the MMU. The format
for these registers and a brief description is shown in Figure 6-1 on page 39. Each register is discussed
in more detail within the section that describes its use.
Data is written to and read from the MMU registers using the ARM CPU MRC and MCR coprocessor
instructions.
38
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
REGISTER
1 WRITE
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
0
5 READ
7
6
S B
5
4
1 D
3
2
1
0
P W C A M
TRANSLATION TABLE BASE
2 WRITE
3 WRITE
8
R
CONTROL
15
14
13
12
11
10
DOMAIN ACCESS CONTROL
9
8
7
6
FAULT STATUS
5
0
5 WRITE
FLUSH TLB
6 READ
FAULT ADDRESS
4
0
0
3
0
2
DOMAIN
1
0
STATUS
TLB PURGE ADDRESS
6 WRITE
Figure 6-1. MMU Register Summary
6.1.1
Translation Table Base Register
The Translation Table Base register contains the physical address of the base of the translation table
maintained in main memory. Note that this base must reside on a 16-Kbyte boundary.
6.1.2
Domain Access Control Register
The Domain Access Control register consists of sixteen 2-bit fields, each defines the access permissions
for one of the sixteen domains (D[15:0]).
NOTE: The registers not shown are reserved and should not be used.
6.1.3
Fault Status Register
The Fault Status register indicates the domain and type of access being attempted when an abort
occurred. Bits 7:4 specify the accessed of the sixteen domains (D[15:0]) during a fault. Bits 3:1 indicate
the type of access being attempted. The encoding of these bits is different for internal and external faults
(as indicated by bit 0 in the register) and is shown in Table 6-4 on page 47. A write to this register flushes
the TLB.
6.1.4
Fault Address Register
The Fault Address register holds the virtual address of the access attempted when a fault occurred. A
write to this register causes the data written to be treated as an address and, if it is found in the TLB, the
entry is marked as invalid. (This operation is known as a TLB ‘purge’.) The Fault Status and Fault Address
registers are only updated for data faults, not for prefetch faults.
6.2
Address Translation
The MMU translates virtual addresses generated by the CPU into physical addresses to access external
memory, and also derives and checks the access permission. Translation information, consisting of both
the address translation data and the access permission data, resides in a translation table located in
physical memory. The MMU provides the logic needed to traverse this translation table, obtain
the translated address, and check the access permission.
June 1997
ADVANCE DATA BOOK v2.0
ARM PROCESSOR MMU
39
CL-PS7500FE
System-on-a-Chip for Internet Appliance
There are three routes for address translation and permission checking. The selected route depends on
if the address in question is marked as a section-mapped access or a page-mapped access; there are
two sizes of page-mapped access (large pages and small pages). However, the translation process
always starts out in the same way, as described in Section 6.3.2, with a Level One fetch. A sectionmapped access only requires a Level One fetch, but a page-mapped access also requires a Level Two
fetch.
6.3
Translation Process
6.3.1
TTB (Translation Table Base)
The translation process is initiated when the on-chip TLB does not contain an entry for the requested virtual address. The TTB register points to the base of a table in physical memory that contains Section
and/or Page descriptors. The 14 low-order bits of the TTB register are set to zero as illustrated in
Figure 6-2, the table must reside on a 16-Kbyte boundary.
31
14 13
0
TRANSLATION TABLE BASE
Figure 6-2. Translation Table Base Register
6.3.2
Level One Fetch
Bits 31:14 of the TTB register are concatenated with bits 31:20 of the virtual address to produce a 30-bit
address, as illustrated in Figure 6-3. This address selects a 4-byte translation table entry that is a First
Level descriptor for either a Section or a Page (bit 1 of the descriptor returned specifies if it is for a Section
or Page).
VIRTUAL ADDRESS
20 19
31
TABLE INDEX
0
SECTION INDEX
TRANSLATION TABLE BASE
31
0
14 13
TRANSLATION BASE
18
12
31
2 1
14 13
TRANSLATION BASE
TABLE INDEX
0 0
FIRST LEVEL DESCRIPTOR
31
0
0
Figure 6-3. Accessing the Translation Table First Level Descriptors
40
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.3.3
Level One Descriptor
The Level One descriptor returned is either a Page Table descriptor or a Section descriptor, and the format
varies accordingly. Figure 6-4 illustrates the format of Level One descriptors.
31
20 19
12 11 10 9 8
PAGE TABLE BASE ADDRESS
AP
SECTION BASE ADDRESS
5 4 3 2 1
0
0 0
FAULT
0 1
PAGE
DOMAIN
1
DOMAIN
1 C B 1 0
1 1
SECTION
RESERVED
Figure 6-4. Level One Descriptors
The two least-significant bits indicate the descriptor type and validity, and are interpreted as in Table 6-1.
Table 6-1.
Interpreting Level One Descriptor Bits 1:0
Value
Meaning
00
Invalid
Generates a Section Translation fault.
01
Page
Indicates that this is a Page descriptor.
10
Section
11
Reserved
6.3.4
Indicates that this is a Section descriptor.
Reserved for future use.
Page Table Descriptor
Bit
Description
3:2
Always write as ‘0’.
4
Notes
Write as ‘1’ for backward compatibility.
8:5
Specify one of the sixteen possible domains (held in the Domain Access Control register) that contain the primary
access controls.
31:10
Form the base for referencing the Page Table entry. (The page table index for the entry is derived from the virtual
address as illustrated in Figure 6-7 on page 45.)
If a Page Table descriptor is returned from the Level One fetch, a Level Two fetch is initiated, as described
in the following section.
June 1997
ADVANCE DATA BOOK v2.0
ARM PROCESSOR MMU
41
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.3.5
Section Descriptor
Bit
Description
3:2
(C, B)
4
●
C – Cacheable: data at this address is placed in the cache (if the cache is enabled).
●
B – Bufferable: data at this address is written through the write buffer (if enabled).
Write as ‘1’ for backward compatibility.
8:5
Specify one of the sixteen possible domains (held in the Domain Access Control register) that contain the primary access controls.
11:10
(AP)
Specify the access permissions for this section (see Table 6-2). The interpretation depends upon the setting of
the S and R bits (control register bits 8 and 9). Note that the Domain Access Control specifies the primary
access control; the AP bits only have an effect in Client mode. Refer to Section 6.9.
19:12
Always write as ‘0’.
31:20
Form the corresponding bits of the physical address for the 1-Mbyte section.
Table 6-2.
a
Control the cache- and write-buffer-related functions as follows:
Interpreting Access Permission (AP) Bits
AP
S
R
Supervisor
Permissions
User
Permissions
00
0
0
No access
No access
Any access generates a permission fault.
00
1
0
Read only
No access
Supervisor read-only permitted.
00
0
1
Read only
Read only
Any write generates a permission fault.
00
1
1
Reserved
01
Xa
X
Read/write
No access
Access allowed only in Supervisor mode.
10
X
X
Read/write
Read only
Writes in User mode cause permission fault.
11
X
X
Read/write
Read/write
All access types permitted in both modes.
XX
1
1
Reserved
Notes
‘X’ indicates a don’t care state.
6.4
Translating Section References
Figure 6-6 on page 44 illustrates the complete Section translation sequence. Note that the access permissions contained in the Level One descriptor must be checked before the physical address is generated. The sequence for checking access permissions is described in Section 6.10.4 on page 50.
6.4.1
Level Two Descriptor
If the Level One fetch returns a Page Table descriptor, this provides the base address of the page table
to be used. The page table is then accessed as described in Figure 6-7 on page 45, and a Page Table
42
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
entry, or Level Two descriptor, is returned. This in turn may define either a small page or large page
access. Figure 6-5 shows the format of Level Two descriptors.
31
20 19
16 15
12 11 10 9 8 7 6
5 4 3 2 1
0
0 0
FAULT
LARGE PAGE BASE ADDRESS
AP3
AP2
AP1
AP0 C B 0 1
LARGE PAGE
SMALL PAGE BASE ADDRESS
AP3
AP2
AP1
AP0 C B 1 0
SMALL PAGE
1 1
RESERVED
Figure 6-5. Page Table Entry (Level Two Descriptor)
The two least-significant bits indicate the page size and validity, and are interpreted as shown in Table 6-3.
Table 6-3.
Interpreting Page Table Entry Bits 1:0
Value
Meaning
00
Invalid
01
Large Page
Indicates that this is a 64-Kbyte page.
10
Small Page
Indicates that this is a 4-Kbyte page.
11
Reserved
June 1997
Notes
Generates a Page Translation fault.
Reserved for future use.
ADVANCE DATA BOOK v2.0
ARM PROCESSOR MMU
43
CL-PS7500FE
System-on-a-Chip for Internet Appliance
VIRTUAL ADDRESS
31
20 19
0
TABLE INDEX
SECTION INDEX
TRANSLATION TABLE BASE
14 13
31
0
TRANSLATION BASE
12
18
14 13
31
2 1
TRANSLATION BASE
TABLE INDEX
0
0 0
FIRST LEVEL DESCRIPTOR
31
20 19
12 11 10 9 8
AP
SECTION BASE ADDRESS
5 4 3 2 1
DOMAIN
0
1 C B 1 0
20
12
PHYSICAL ADDRESS
20 19
31
SECTION BASE ADDRESS
0
SECTION INDEX
Figure 6-6. Section Translation
Bit
Description
2
(B – Bufferable) Indicates that data at this address is written through the WB (if the write buffer is enabled).
3
(C – Cacheable) Indicates that data at this address is placed in the IDC (if the cache is enabled).
11:4
Specify the access permissions (AP[3:0]) for the four subpages and interpretation of these bits is described earlier in
Table 6-1 on page 41.
15:12 For large pages, these bits are programmed as ‘0’.
Bits 31:12 (small pages) or bits 31:16 (large pages) form the corresponding bits of the physical address — the physical page
number. (The page index is derived from the virtual address as illustrated in Figure 6-7 and Figure 6-8.)
6.5
Translating Small Page References
Figure 6-7 illustrates the complete translation sequence for a 4-Kbyte small page. Page translation
involves one additional step beyond that of a section translation: the Level One descriptor is the Page
Table descriptor, and this is used to point to the Level Two descriptor, or Page Table entry. (Note that the
access permissions are now contained in the Level Two descriptor and must be checked before the physical address is generated. The sequence for checking access permissions is described in Section 6.10.4
on page 50.)
44
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
VIRTUAL ADDRESS
31
20 19
0
12 11
L2 TABLE INDEX
TABLE INDEX
PAGE INDEX
12
8
12
TRANSLATION TABLE BASE
31
14 13
0
TRANSLATION BASE
18
31
2 1
14 13
TABLE INDEX
TRANSLATION BASE
FIRST LEVEL DESCRIPTOR
31
10 9 8
PAGE TABLE BASE ADDRESS
0 0
5 4
2 1
DOMAIN
31
2 1
L2 TABLE INDEX
SECOND LEVEL DESCRIPTOR
12 11 10 9 8 7 6
31
PAGE BASE ADDRESS
AP3
AP2
AP1
0
0 1
10 9
PAGE TABLE BASE ADDRESS
0
0 0
5 4 3 2 1
AP0
0
0
C B 1 0
PHYSICAL ADDRESS
31
12 11
PAGE BASE ADDRESS
0
PAGE INDEX
Figure 6-7. Small Page Translation
6.6
Translating Large Page References
Figure 6-8 illustrates the complete translation sequence for a 64-Kbyte large page. Note that since the
upper 4 bits of the Page Index and low-order 4 bits of the Page Table index overlap, each Page Table entry
for a large page must be duplicated 16 times (in consecutive memory locations) in the Page Table.
June 1997
ADVANCE DATA BOOK v2.0
ARM PROCESSOR MMU
45
CL-PS7500FE
System-on-a-Chip for Internet Appliance
VIRTUAL ADDRESS
31
20 19
TABLE INDEX
12 11
16 15
0
PAGE INDEX
L2 TABLE INDEX
12
8
12
TRANSLATION TABLE BASE
14 13
31
0
TRANSLATION BASE
18
2 1
14 13
31
TABLE INDEX
TRANSLATION BASE
FIRST LEVEL DESCRIPTOR 10 9 8
31
PAGE TABLE BASE ADDRESS
31
0 0
5 4
2 1
DOMAIN
2 1
L2 TABLE INDEX
SECOND LEVEL DESCRIPTOR
16 15
12 11 10 9 8 7 6
31
PAGE BASE ADDRESS
AP3
AP2
AP1
PHYSICAL ADDRESS
16 15
31
PAGE BASE ADDRESS
0
0 1
10 9
PAGE TABLE BASE ADDRESS
0
0 0
5 4 3 2 1
AP0
0
0
C B 0 1
0
PAGE INDEX
Figure 6-8. Large Page Translation
46
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.7
MMU Faults and CPU Aborts
The MMU generates four types of faults:
●
Alignment
●
Translation
●
Domain
●
Permission
The access control mechanisms of the MMU detect the conditions that produce these faults. If a fault is
detected as the result of a memory access, the MMU aborts the access and signal the fault condition to
the CPU. The MMU is also capable of retaining status and address information about the abort. The CPU
recognizes two types of abort, data and prefetch, and these are treated differently by the MMU.
If the MMU detects an access violation, it detects it before the external memory access occurs, and inhibit
the access.
6.8
Fault Address and Fault Status Registers (FAR, FSR)
Aborts resulting from data accesses (data aborts) are acted upon by the CPU immediately, and the MMU
places an encoded 4-bit value FS[3:0], along with the 4-bit encoded Domain number, in the FSR. In addition, the virtual processor address that caused the data abort is latched into the FAR. If an access violation simultaneously generates more than one source of abort, they are encoded in the priority given in
Table 6-4.
On the other hand, CPU instructions are prefetched so a prefetch abort simply flags the instruction as it
enters the instruction pipeline. Only when (and if) the instruction is executed does it cause an abort; an
abort is not acted upon if the instruction is not used (that is, it is branched around). Because instruction
prefetch aborts may or may not be acted upon, the MMU status information is not preserved for the resulting CPU abort; for a prefetch abort, the MMU does not update the FSR or FAR.
The following sections describe the various access permissions and controls supported by the MMU and
detail how these are interpreted to generate faults.
In Table 6-4 X indicates a don’t care state and can read as ‘0’ or ‘1’.
NOTE: Any abort masked by the priority encoding can be regenerated by fixing the primary abort and restarting the
instruction. In fact, this register contains bits 8:5 of the Level One entry, which are undefined, but would
encode the domain in a valid entry.
Table 6-4.
Priority
Highest
Lowest
June 1997
Priority Encoding of Fault Status Register
Source
FS[3:0]
Domain [3:0]
FAR
Alignment
00x1
X
Valid
Translation (Section)
0101
Note 2
Valid
Translation (Page)
0111
Valid
Valid
Domain (Section)
1001
Valid
Valid
Domain (Page)
1011
Valid
Valid
Permission (Section)
1101
Valid
Valid
Permission (Page)
1111
Valid
Valid
ADVANCE DATA BOOK v2.0
ARM PROCESSOR MMU
47
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.9
Domain Access Control
MMU accesses are primarily controlled through domains. There are 16 domains, and each has a 2-bit
field to define it. Two basic kinds of users are supported:
●
Clients use a domain, and
●
Managers control the behavior of the domain.
The domains are defined in the Domain Access Control register. Figure 6-9 illustrates how the 32 bits of
the register are allocated to define the sixteen 2-bit domains.
31
30
29
15
28
27
14
26
13
25
24
12
23
22
11
21
20
10
19
18
9
17
16
8
15
14
7
13
12
11
6
10
5
9
8
7
4
6
3
5
4
2
3
2
1
1
0
0
Figure 6-9. Domain Access Control Register Format
Table 6-5 defines how the bits within each domain are interpreted to specify the access permissions.
Table 6-5.
Interpreting Access Bits in Domain Access Control Register
Value
Meaning
Notes
00
No access
Any access generates a Domain fault.
01
Client
Accesses are checked against the access permission bits in the Section or Page descriptor.
10
Reserved
Reserved. Currently behaves like the No Access mode.
11
Manager
Accesses are not checked against the access Permission bits, so a Permission fault cannot be generated.
6.10 Fault-Checking Sequence
The sequence used by the MMU to check for access faults is slightly different for Sections and Pages.
Figure 6-9 illustrates the sequence for both types of accesses. The following sections and figures describe
the conditions that generate each of the faults.
48
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
VIRTUAL ADDRESS
CHECK ADDRESS ALIGNMENT
SECTION
TRANSLATION
FAULT
INVALID
MISALIGNED
GET LEVEL ONE DESCRIPTOR
SECTION
PAGE
GET PAGE
TABLE ENTRY
SECTION
DOMAIN
FAULT
ALIGNMENT
FAULT
NO ACCESS (‘00’)
RESERVED (‘10’)
CHECK DOMAIN STATUS
SECTION
PAGE
CLIENT(‘01’)
CLIENT(‘01’)
INVALID
NO ACCESS (‘00’)
RESERVED (‘10’)
PAGE
TRANSLATION
FAULT
PAGE
DOMAIN
FAULT
MANAGER(‘11’)
SECTION
PERMISSION
FAULT
VIOLATION
CHECK ACCESS
PERMISSIONS
CHECK ACCESS
PERMISSIONS
VIOLATION
SUB-PAGE
PERMISSION
FAULT
PHYSICAL ADDRESS
Figure 6-10. Sequence for Checking Faults
6.10.1 Alignment Fault
When Alignment fault is enabled (bit 1 in Control register is set), the MMU generates an Alignment fault
on any data word access where the address is not word-aligned irrespective of whether the MMU is
enabled or not; in other words, if either of virtual address bits 1:0 are not ‘0’.
An Alignment fault is not generated on any instruction fetch or on any byte access. Note that if the access
generates an Alignment fault, the access sequence aborts without reference to further permission
checks.
June 1997
ADVANCE DATA BOOK v2.0
ARM PROCESSOR MMU
49
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.10.2 Translation Fault
There are two types of Translation fault:
●
Section is generated if the Level One descriptor is marked as invalid. This happens if bits 1:0 of the descriptor
are both ‘0’ or both ‘1’.
●
Page is generated if the Page Table entry is marked as invalid. This happens if bits 1:0 of the entry are both
‘0’ or both ‘1’.
6.10.3 Domain Fault
There are two types of Domain fault:
●
Section
●
Page
In both cases the Level One descriptor holds the 4-bit Domain field that selects one of the sixteen 2-bit
domains in the Domain Access Control register. The two bits of the specified domain are then checked
for access permissions as detailed in Table 6-2 on page 42. For a Section fault, the domain is checked
once the Level One descriptor is returned. For a Page fault, the domain is checked once the Page Table
entry is returned.
If the specified access is either ‘no access’ (‘00’) or ‘reserved’ (‘10’), then either a Section Domain or Page
Domain fault occurs.
6.10.4 Permission Fault
There are two types of Permission fault:
●
Section
●
Subpage
Permission faults are checked at the same time as Domain faults. If the 2-bit domain field returns Client
(01), then the permission access check is invoked as follows:
1) Section
If the Level One descriptor defines a section-mapped access, then the AP bits of the descriptor define whether
or not the access is allowed according to Table 6-2. Their interpretation is dependent upon the setting of the S
bit (Control register, bit 8). If the access is not allowed, a Section Permission fault is generated.
2) Subpage
If the Level One descriptor defines a page-mapped access, then the Level Two descriptor specifies four access
permission fields (AP3–AP0) each corresponding to one quarter of the page. For small pages, AP3 is selected
by the top 1 Kbyte of the page, and AP0 is selected by the bottom 1 Kbyte of the page; for large pages, AP3 is
selected by the top 16 Kbytes of the page, and AP0 is selected by the bottom 16 Kbyte of the page. The selected
AP bits are then interpreted in exactly the same way as for a section (see Table 6-2), the only difference is that
the fault generated is a Subpage Permission fault.
6.11 External Aborts
The CL-PS7500FE does not support external aborts.
50
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.11.1 Interaction of the MMU, IDC, and Write Buffer
The MMU, IDC, and WB can be enabled/disabled independently. However there are only five valid combinations. There are no hardware interlocks on these restrictions, so invalid combinations cause undefined results.
Table 6-6.
Valid MMU, IDC, and WB Combinations
MMU
IDC
WB
Off
Off
Off
On
Off
Off
On
On
Off
On
Off
On
On
On
On
The following procedures must be observed.
Enable the MMU
1. Program the TTB and Domain Access Control registers.
2. Program Level One and Level Two page tables as required.
3. Enable the MMU by setting bit 0 in the Control register.
NOTE: Care must be taken if the translated address differs from the untranslated address as the two instructions
following the enabling of the MMU are fetched using ‘flat translation’ and enabling the MMU may be considered as a branch with delayed execution. A similar situation occurs when the MMU is disabled. Consider the
following example code sequence:
MOV
R1, #0x1
MCR
15,0,R1,0,0
; Enable MMU
Fetch Flat
Fetch Flat
Fetch Translated
Disable the MMU
1. Disable the WB by clearing bit 3 in the Control register.
2. Disable the IDC by clearing bit 2 in the Control register.
3. Disable the MMU by clearing bit 0 in the Control register.
NOTE: If the MMU is enabled, then disabled, then subsequently re-enabled the contents of the TLB are preserved.
If these are now invalid, the TLB should be flushed before re-enabling the MMU.
Disabling of all three functions can be done simultaneously.
June 1997
ADVANCE DATA BOOK v2.0
ARM PROCESSOR MMU
51
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7. REGISTER DESCRIPTIONS
The CL-PS7500FE supports a variety of operating configurations. Some are controlled by register bits
and are known as the configurations. Other configurations can be controlled by software and are known
as operating modes.
7.1
Register Configuration
The CL-PS7500FE provides three register configuration settings that can be changed while the processor
is running. These are discussed below.
7.1.1 Big and Little Endian (the Bigend Bit)
The Bigend bit in the Control register sets whether the CL-PS7500FE treats words in memory as being
stored in big endian or little endian format. Memory is viewed as a linear collection of bytes numbered
upwards from zero. Bytes 0–3 hold the first stored word; bytes 4–7 the second, and so on.
Little Endian
In the little endian scheme, the lowest-numbered byte in a word is considered to be the least-significant
byte of the word; the highest-numbered byte is the most-significant byte.
In this scheme, byte 0 of the memory system should be connected to D[7:0] (data lines 7 through 0).
LITTLE ENDIAN
HIGHER
ADDRESS
31
24
23
16
15
8
7
0
WORD
ADDRESS
11
10
9
8
8
7
6
5
4
4
3
2
1
0
0
LOWER
ADDRESS
●
LEAST-SIGNIFICANT BYTE IS AT LOWEST ADDRESS
●
WORD IS ADDRESSED BY BYTE ADDRESS OF LEAST-SIGNIFICANT BYTE
Figure 7-1. Little Endian Addresses of Bytes within Words
52
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Big Endian
In the big endian scheme, the most-significant byte of a word is stored at the lowest-numbered byte, and
the least-significant byte is stored at the highest-numbered byte.
Byte 0 of the memory system should therefore be connected to D[31:24] (data lines 31 through 24).
Load and store are the only instructions affected by the endianism.
Big Endian
HIGHER
ADDRESS
31
24
23
16
15
8
7
0
WORD
ADDRESS
8
9
10
11
8
4
5
6
7
4
0
1
2
3
0
LOWER
ADDRESS
●
Most-significant byte is at lowest address
●
Word is addressed by byte address of most-significant byte
Figure 7-2. Big Endian Addresses of Bytes within Words
7.1.2 Configuration Bits for Backward Compatibility
Two register bits, PROG32 and DATA32, select one of three processor configurations:
1) 26-bit program and data space
PROG32 LOW, DATA32 LOW
This configuration forces the ARM processor to operate like the earlier ARM processors with 26-bit address
space. The programmer’s model for these processors applies, but the new instructions to access the CPSR and
SPSR registers operate as detailed in the CL-PS7500FE Programmer’s Guide. In this configuration, it is impossible to select a 32-bit operating mode, and all exceptions (including address exceptions) enter the exception
handler in the appropriate 26-bit mode.
2) 26-bit program space and 32-bit data space
PROG32 LOW, DATA32 HIGH
This is the same as the 26-bit program and data space configuration, but with address exceptions disabled to
allow data transfer operations to access the full 32-bit address space.
3) 32-bit program and data space
PROG32 HIGH, DATA32 HIGH
This configuration extends the address space to 32 bits, introduces major changes in the programmer’s model
and provides support for running existing 26-bit programs in the 32-bit environment.
NOTE: Do not select the fourth processor configuration, 26-bit data space and 32-bit program space.
June 1997
ADVANCE DATA BOOK v2.0
REGISTER DESCRIPTIONS
53
CL-PS7500FE
System-on-a-Chip for Internet Appliance
26-bit Program Space
When configured for 26-bit program space, the CL-PS7500FE is limited to operating in one of four modes
known as the 26-bit modes. These modes correspond to the modes of the earlier ARM processors and
are known as:
●
User26
●
FIQ26
●
IRQ26
●
Supervisor26
NOTE: The PROG32 and DATA32 bits are only used for backward compatibility with earlier ARM processors and
should normally be set to ‘1’. The 32-bit mode is recommended for compatibility with future ARM processors
and all new code should be written to use only the 32-bit operating modes.
Because the original ARM instruction set is modified to accommodate 32-bit operation, there are certain
additional restrictions that programmers must note. The following sections discuss these restrictions.
7.2
Operating Mode Selection
The ARM processor has a 32-bit data bus and a 32-bit address bus. However, only 29 of the address bits
are available at the CL-PS7500FE pins. The data types the processor supports are:
●
Bytes (8-bits)
●
Words (32-bits) that must be aligned to 4-byte boundaries.
Instructions are exactly one word, and data operations (for example ADD) are only performed on word
quantities. Load and store operations can transfer either bytes or words.
ARM processor supports six modes of operation:
●
User mode (usr)
The normal program execution state.
●
FIQ mode (fiq)
Designed to support a data transfer or channel process.
●
IRQ mode (irq)
Used for general-purpose interrupt handling.
●
Supervisor mode (svc)
A protected mode for the operating system.
●
Abort mode (abt)
Entered after a data or instruction prefetch abort.
●
Undefined mode (und)
Entered when an undefined instruction is executed.
Mode changes can be made under software control or brought about by external interrupts or exception
processing. Most application programs execute in User mode. The other modes, known as Privileged
modes, are entered to service interrupts or exceptions, or to access protected resources.
54
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.3
Registers
The processor macrocell has a total of 37 registers made up of:
●
31 general 32-bit registers
●
Six status registers
At any one time, 16 general registers (R0 to R15) and one or two status registers are visible to the programmer. The visible registers depend on the processor mode, and the other registers (the banked registers) are switched in to support IRQ, FIQ, Supervisor, Abort, and Undefined mode processing.
The register bank organization is shown in Figure 7-3. The banked registers are shaded.
General Registers and Program Counter Modes
User32
FIQ32
Supervisor32
Abort32
IRQ32
Undefined32
R0
R0
R0
R0
R0
R0
R1
R1
R1
R1
R1
R1
R2
R2
R2
R2
R2
R2
R3
R3
R3
R3
R3
R3
R4
R4
R4
R4
R4
R4
R5
R5
R5
R5
R5
R5
R6
R6
R6
R6
R6
R6
R7
R7
R7
R7
R7
R7
R8
R8_fiq
R8
R8
R8
R8
R9
R9_fiq
R9
R9
R9
R9
R10
R10_fiq
R10
R10
R10
R10
R11
R11_fiq
R11
R11
R11
R11
R12
R12_fiq
R12
R12
R12
R12
R13
R13_fiq
R13_svc
R13_abt
R13_irq
R13_und
R14
R14_fiq
R14_svc
R14_abt
R14_irq
R14_und
R15 (PC)
R15 (PC)
R15 (PC)
R15 (PC)
R15 (PC)
R15 (PC)
Program Status Registers
CPSR
CPSR
CPSR
CPSR
CPSR
CPSR
SPSR_fiq
SPSR_svc
SPSR_abt
SPSR_irq
SPSR_und
Figure 7-3. Register Organization
June 1997
ADVANCE DATA BOOK v2.0
REGISTER DESCRIPTIONS
55
CL-PS7500FE
System-on-a-Chip for Internet Appliance
In all modes, 16 registers (R0 to R15) are directly accessible. All registers except R15 are general-purpose and can be used to hold data or address values. Register R15 holds the PC. When R15 is read, bits
1:0 are ‘0’, and bits 31:2 contain the PC. A seventeenth register, CPSR (Current Program Status register),
is also accessible. It contains condition code flags and the current mode bits and can be thought of as an
extension to the PC.
R14 is used as the subroutine link register and receives a copy of R15 when a Branch and Link instruction
is executed. It can be considered a general-purpose register at all other times. R14_svc, R14_irq,
R14_fiq, R14_abt, and R14_und are used to hold the return values of R15 when interrupts and exceptions
arise, or when Branch and Link instructions are executed within interrupt or exception routines.
FIQ mode has seven banked registers mapped to R8–14 (R8_fiq–R14_fiq). Many FIQ programs do not
need to save any registers.
User mode, IRQ mode, Supervisor mode, Abort mode, and Undefined mode each have two banked registers mapped to R13 and R14. The two banked registers allow these modes to each have a private stack
pointer and link register.
Supervisor, IRQ, Abort, and Undefined mode programs require more than these two banked registers and
are expected to save some or all of the caller’s registers (R0 to R12) on their respective stacks. They are
then free to use these registers that they restore before returning to the caller.
In addition, there are also five SPSRs (Saved Program Status registers) that are loaded with the CPSR
when an exception occurs. There is one SPSR for each privileged mode.
7.3.1 PSRs (Program Status Registers)
The format of the PSRs is shown in Figure 7-4.
FLAGS
CONTROL
31
30
29
28
27
N
Z
C
V
.
.
8
7
6
5
4
3
2
1
0
.
I
F
.
M4
M3
M2
M1
M0
Overflow
Carry / Borrow / Extend
Zero
Negative / Less Than
Mode bits
FIQ disable
IRQ disable
Figure 7-4. Format of the PSRs
7.3.1.1 Condition Code Flags
The N, Z, C, and V bits are the condition code flags. The condition code flags in the CPSR can be changed
as a result of arithmetic and logical operations in the processor and can be tested by all instructions to
determine if the instruction is to be executed.
Interrupt Disable Bits
The I and F bits are the interrupt disable bits. The I bit disables IRQ interrupts when set; the F bit disables
FIQ interrupts when set.
56
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.3.1.2 Mode Bits
Bits M[4:0] are the mode bits that determine the processor operating mode. The interpretation of the mode
bits is shown in Table 7-1. Not all combinations of the mode bits define a valid processor mode. Only those
explicitly described are used.
Table 7-1.
M[4:0]
Mode Bits
Mode
Accessible Register Set
10000
User
PC, R14–R0
CPSR
10001
FIQ
PC, R14_fiq–R8_fiq, R7–R0
CPSR, SPSR_fiq
10010
IRQ
PC, R14_irq–R13_irq, R12–R0
CPSR, SPSR_irq
10011
Supervisor
PC, R14_svc–R13_svc, R12–R0
CPSR, SPSR_svc
10111
Abort
PC, R14_abt–R13_abt, R12–R0
CPSR, SPSR_abt
11011
Undefined
PC, R14_und–R13_und, R12–R0
CPSR, SPSR_und
7.3.1.3 Control Bits
The bottom 28 bits of a PSR (incorporating I, F, and M[4:0]) are known collectively as the control bits. The
control bits change when an exception arises and, in addition, can be manipulated by software when the
processor is in a privileged mode. Unused bits in the PSRs are reserved and their state must be preserved
when changing the flag or control bits. Programs must not rely on specific values from the reserved bits
when checking the PSR status, since they can read as ‘1’ or ‘0’ in future processors.
7.4
Exceptions
Exceptions arise whenever there is a need to break the normal flow of program execution. For example,
the processor can be diverted to handle an interrupt from a peripheral. The processor state just prior to
handling the exception must be preserved so that the original program can be resumed when the exception routine is complete. Many exceptions can arise at the same time.
The ARM processor handles exceptions by making use of the banked registers to save state. The old PC
and CPSR contents are copied into the appropriate R14 and SPSR, and the PC and mode bits in the
CPSR bits are forced to a value that depends on the exception. Interrupt disable flags are set where
required to prevent otherwise unmanageable nestings of exceptions. In the case of a re-entrant interrupt
handler, R14 and the SPSR should be saved onto a stack in main memory before re-enabling the interrupt.
NOTE: When transferring the SPSR to and from a stack, it is important to transfer the whole 32-bit value, and not
just the flag or control fields.
When simultaneous multiple exceptions arise, a fixed priority determines their order. The priorities are
listed in Section 7.4.7 on page 61.
7.4.1 FIQ
The FIQ (Fast Interrupt reQuest) exception is generated by the interrupt handler within the CL-PS7500FE.
This input is delayed by one clock cycle for synchronization before it can affect the processor execution
flow. It is designed to support a data transfer or channel process, and has sufficient private registers to
June 1997
ADVANCE DATA BOOK v2.0
REGISTER DESCRIPTIONS
57
CL-PS7500FE
System-on-a-Chip for Internet Appliance
remove the need for register saving in such applications (thus minimizing the overhead of context switching).
NOTE: The FIQ exception can be disabled by setting the F flag in the CPSR (but note that this is not possible from
User mode).
If the F flag is clear, the ARM processor checks for a low level on the output of the FIQ synchronizer at
the end of each instruction. When a FIQ is detected, the ARM processor performs the following:
1) Saves the address of the next instruction to be executed plus 4 in R14_fiq; saves CPSR in SPSR_fiq.
2) Forces M[4:0]=10001 (FIQ mode) and sets the F and I bits in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x1C.
Returning from FIQ
To return normally from FIQ, use SUBS PC, R14_fiq, #4 to restore both the PC (from R14) and the CPSR
(from SPSR_fiq) and resume execution of the interrupted code.
7.4.2 IRQ
The IRQ (Interrupt ReQuest) exception is a normal interrupt caused by the interrupt handler within the
CL-PS7500FE. It has a lower priority than FIQ, and is masked out when a FIQ sequence is entered. Its
effect can be masked out at any time by setting the I bit in the CPSR (but note that this is not possible
from User mode).
If the I flag is clear, the ARM processor checks for a low level on the output of the IRQ synchronizer at the
end of each instruction. When an IRQ is detected, the ARM processor performs the following:
1) Saves the address of the next instruction to be executed plus 4 in R14_irq; saves CPSR in SPSR_irq.
2) Forces M[4:0]=10010 (IRQ mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x18.
Returning from IRQ
To return normally from IRQ, use SUBS PC,R14_irq, #4 to restore both the PC and the CPSR and resume
execution of the interrupted code.
7.4.3 Abort
An abort is signalled by the internal MMU and indicates that the current memory access cannot be completed. For instance, in a virtual memory system the data corresponding to the current address may have
been moved out of memory onto a disk, and considerable processor activity may be required to recover
the data before the access can be performed successfully.
The abort mechanism allows a demand paged virtual memory system to be implemented when suitable
memory management software is available. The processor is allowed to generate arbitrary addresses,
and when the data at an address is unavailable, the MMU signals an abort. The processor traps into system software that must then work out the cause of the abort, make the requested data available, and retry
the aborted instruction. The application program needs no knowledge of the amount of memory available
to it, nor is its state in any way affected by the abort.
58
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The ARM processor checks for ABORT during memory access cycles. When successfully aborted the
ARM processor responds in one of two ways:
●
a prefetch abort
●
a data abort
Prefetch Abort
If the abort occurred during an instruction prefetch (a prefetch abort), the prefetched instruction is marked
as invalid but the abort exception does not occur immediately. If the instruction is not executed, for example, as a result of a branch being taken while it is in the pipeline, no abort occurs. An abort takes place if
the instruction reaches the head of the pipeline and is about to be executed.
Data Abort
If the abort occurred during a data access (a data abort), the action depends on the instruction type:
●
Single data transfer instructions (LDR and STR) write back modified base registers and the Abort handler
must be aware of this.
●
The swap instruction (SWP) is aborted as though it had not executed, though externally the read access can
occur.
●
Block data transfer instructions (LDM and STM) complete and, if write-back is set, the base updates. If the
instruction would normally have overwritten the base with data (such as, LDM with the base in the transfer
list), this overwriting is prevented. All register overwriting is prevented after the abort is indicated, which particularly means that R15 (always last to transfer) is preserved in an aborted LDM instruction.
Abort Sequence
When either a prefetch or data abort occurs, the ARM processor performs the following:
1) Saves the address of the aborted instruction plus four (for prefetch aborts) or eight (for data aborts) in
R14_abt; saves CPSR in SPSR_abt.
2) Forces M[4:0]=10111 (Abort mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from either:
a) address 0x0C (prefetch abort), or
b) address 0x10 (data abort).
Returning from an Abort
To return after fixing the reason for the abort, use SUBS PC, R14_abt, #4 (for a prefetch abort) or SUBS
PC, R14_abt, #8 (for a data abort). This restores both the PC and the CPSR, and retry the aborted instruction.
7.4.4 Software Interrupt
The SWI gets into Supervisor mode, usually to request a particular supervisor function. When a SWI is
executed, the ARM processor performs the following:
1) Saves the address of the SWI instruction plus four in R14_svc; saves CPSR in SPSR_svc.
2) Forces M[4:0]=10011 (Supervisor mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x08.
June 1997
ADVANCE DATA BOOK v2.0
REGISTER DESCRIPTIONS
59
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Returning from a SWI
To return from a SWI, use MOVS PC, R14_svc. This restores the PC and CPSR, and return to the instruction following the SWI.
7.4.5 Undefined Instruction Trap
When the ARM processor comes across an instruction that it cannot manage, it takes the undefined
instruction trap. This includes all coprocessor instructions, except MCR and MRC operations that access
the internal control coprocessor.
The trap can be used for software emulation of a coprocessor in a system that does not have the coprocessor hardware, or for general-purpose instruction set extension by software emulation.
When the ARM processor takes the undefined instruction trap, it performs the following:
1) Saves the address of the Undefined or coprocessor instruction plus 4 in R14_und; saves CPSR in
SPSR_und.
2) Forces M[4:0]=11011 (Undefined mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x04.
Returning from an Undefined Instruction Trap
To return from this trap after emulating the failed instruction, use MOVS PC,R14_und. This restores the
CPSR and returns to the instruction following the undefined instruction.
7.4.6 Vector Summary
These are byte addresses and normally contain a branch instruction pointing to the relevant routine.
The FIQ routine might reside at 0x1C onwards, thereby avoiding the need for (and execution time of) a
branch instruction.
Table 7-2.
Vector Summary
Address
Exception
Mode on Entry
0x00000000
Reset
Supervisor
0x00000004
Undefined instruction
Undefined
0x00000008
Software interrupt
Supervisor
0x0000000C
Abort (prefetch)
Abort
0x00000010
Abort (data)
Abort
0x00000014
Reserved
–
0x00000018
IRQ
IRQ
0x0000001C
FIQ
FIQ
60
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.4.7 Exception Priorities
When simultaneous multiple exceptions arise, a fixed-priority system determines their order as:
1) Reset (highest priority)
2) Data abort
3) FIQ
4) IRQ
5) Prefetch abort
6) Undefined instruction, software interrupt (lowest priority)
NOTE: Not all exceptions can occur at once. Undefined instruction and software interrupt are mutually exclusive
since they each correspond to particular (non-overlapping) decodings of the current instruction.
If a data abort occurs at the same time as a FIQ and FIQs are enabled (that is, the F flag in the CPSR is
clear), the ARM processor enters the data abort handler and then immediately proceed to the FIQ vector.
A normal return from FIQ causes the data abort handler to resume execution. Placing data abort at a
higher priority than FIQ is necessary to ensure that the transfer error does not escape detection; the time
for this exception entry should be added to worst-case FIQ latency calculations.
7.4.8 Interrupt Latencies
Calculating the worst-case interrupt latency for the ARM processor is quite complex due to the cache,
MMU and write buffer and is dependent on the configuration of the whole system.
7.4.9 Reset
When the CL-PS7500FE is reset, the ARM processor abandons the executing instruction and then performs idle cycles from incrementing word addresses.
When the CL-PS7500FE comes out of reset, the ARM processor does the following:
1) Overwrites R14_svc and SPSR_svc by copying the current values of the PC and CPSR into them. The value
of the saved PC and CPSR is not defined.
2) Forces M[4:0] = 10011 (Supervisor mode) and sets the I and F bits in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x00.
End of Reset Sequence
At the end of the reset sequence:
●
The MMU disabled and the TLB flushed, forcing ‘flat’ translation (that is, the physical address is the virtual
address, and there is no permission checking)
●
Alignment faults also disabled
●
The cache disabled and flushed
●
The write buffer disabled and flushed
●
The ARM7 CPU core placed into 26-bit Data and Address mode, with early abort timing and Little Endian
mode
June 1997
ADVANCE DATA BOOK v2.0
REGISTER DESCRIPTIONS
61
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.5
Configuration Control Registers
The operation and configuration of the ARM processor is controlled both directly via coprocessor instructions and indirectly through the Memory Management Page tables.
The coprocessor instructions manipulate a number of on-chip registers that control the configuration of
the Cache, write buffer, MMU, and several other configuration options.
7.5.1 Backward Compatibility
To ensure backward compatibility of future CPUs:
●
Program all reserved or unused bits in registers and coprocessor instructions to ‘0’.
●
Invalid registers must not be read/written.
●
Program the following bits to ‘0’:
— register 1, bits 31:11
— register 2, bits 13:0
— register 5, bits 31:0
— register 6, bits 11:0
— register 7, bits 31:0
NOTE: Program the areas marked ‘reserved’ in the register and translation diagrams to ‘0’ for future compatibility.
7.5.2 Internal Coprocessor Instructions
The on-chip registers can be read using MRC instructions and written using MCR instructions. These
operations are only allowed in non-user modes and the undefined instruction trap is taken if accesses are
attempted in user mode. Refer to the CL-PS7500FE Programmer’s Guide.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
Cond
1 1 1 0
ARM condition codes
n
CRn
Rd
9
8
7
6
1 1 1 1
5
4
3
2
1
0
1
ARM register
ARM register
1 = MRC register read
0 = MCR register write
Figure 7-5. Format of Internal Coprocessor Instructions MRC and MCR
62
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.5.3 Registers
The ARM processor contains registers that control the cache and MMU operation. These registers are
accessed using CPRT instructions to coprocessor #15 with the processor in a privileged mode.
Only some of registers 0–7 are valid:
●
An access to an invalid register causes neither the access or an undefined instruction trap, and therefore
should never be carried out.
●
An access to any of the registers 8–15 cause the undefined instruction trap to be taken.
Table 7-3.
Register
Cache and MMU Control Registers
Register Reads
Register Writes
0
CPU ID
Reserved
1
Reserved
Control
2
Reserved
Translation Table Base
3
Reserved
Domain Access Control
4
Reserved
Reserved
5
Fault Status
Flush TLB
6
Fault Address
Purge TLB
7
Reserved
Flush IDC
8–15
Reserved
Reserved
June 1997
ADVANCE DATA BOOK v2.0
REGISTER DESCRIPTIONS
63
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.6
MSB
Register 1: Control (Write only)
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
R
S
B
1
D
P
W
C
A
M
LSB
This register is write-only and contains control bits. All bits in this register are forced low at reset.
M Bit 0
ENABLE/DISABLE: When this bit is ‘0’, the on-chip MMU is turned off. When this
bit is ‘1’, the on-chip MMU is turned on.
A Bit 1
ADDRESS FAULT ENABLE/DISABLE: When this bit is ‘0’, the alignment fault is
disabled. When this bit is ‘1’, the alignment fault is enabled.
C Bit 2
CACHE ENABLE/DISABLE: When this bit is ‘0’, the instruction/data cache is
turned off. When this bit is ‘1’, the instruction/data cache is turned on
W Bit 3
WRITE BUFFER ENABLE/DISABLE: When this bit is ‘0’, the WB is turned off.
When this bit is ‘1’, the WB is turned on.
P Bit 4
ARM 32/26-BIT PROGRAM SPACE: When this bit is ‘0’, the 26-bit program space
is selected. When this bit is ‘1’, the 32-bit program space is selected.
D Bit 5
ARM 32/26-BIT DATA SPACE: When this bit is ‘0’, the 26-bit data space is
selected. When this bit is ‘1’, the 32-bit data space is selected.
B Bit 7
BIG/LITTLE ENDIAN: When this bit is ‘0’, the CL-PS7500FE is in little-endian operation. When this bit is ‘1’, the CL-PS7500FE is in big-endian operation.
S Bit 8
This system bit controls the ARM processor permission system.
R Bit 9
This ROM bit controls the ARM processor permission system.
7.7
Register 2: Level One Page Table (Write only)
This register is write only and holds the base of the currently active Level One page table.
7.8
MSB
Register 3: Domain Access Control (Write only)
31
30
15
29
28
14
27
26
13
25
24
12
23
22
11
21
20
10
19
18
9
17
16
8
15
14
7
13
12
6
11
10
5
9
8
4
7
6
3
5
4
3
2
2
1
1
0
LSB
0
This register is write only and holds the current access control for domains 0–15. See Section 6.9 on
page 48 for the access permission definitions and other details.
7.9
Register 4: Reserved
This register is reserved. Access of this register has no effect and should never be attempted.
64
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.10 Register 5: Fault Status/Translation Lookaside Buffer Flush
MSB
31
12
Read: Fault Status
11
10
9
8
7
0
0
0
0
4
Domain
3
0
LSB
Status
A read of this register returns the status of the last data fault.
It is not updated for a prefetch fault. (See Section 6 on
page 38 for more details.)
Note that only the bottom 12 bits are returned. The upper 20
bits are the last value on the internal data bus, and therefore
have no meaning. Bits 11:8 are always returned as zero.
Write: Translation Look-aside Buffer Flush
A write to this register flushes the TLB. The data written is
discarded.
7.11 Register 6: Fault Address/TLB Purge
MSB
31
0
LSB
Fault address
Read: Fault Address
MSB
A read of this register returns the virtual address of the last data fault.
31
14
13
0
LSB
Purge address
Write: TLB Purge
A write of this register purges the TLB; the data is treated as an address,
and the TLB is searched for a corresponding page table descriptor. If a
match is found, the corresponding entry is marked as invalid. This allows
the page table descriptors in main memory to be updated and invalid
entries in the on-chip TLB to be purged without requiring the entire TLB to
be flushed.
7.12 Register 7: IDC Flush (Write only)
This register is write only. Data written to this register is discarded and the IDC is flushed.
7.13 Registers 8–15: Reserved
An access of any of these registers causes the undefined instruction trap to be taken.
June 1997
ADVANCE DATA BOOK v2.0
REGISTER DESCRIPTIONS
65
CL-PS7500FE
System-on-a-Chip for Internet Appliance
8. MEMORY MAP
All addresses featured in the CL-PS7500FE memory map table are physical addresses.
Table 8-1.
CL-PS7500FE Memory Map Table
Memory
(Mbytes)
66
Address
(Hex)
To (Hex)
Device
0
00000000
00FFFFFF
ROM bank 0
16
01000000
01FFFFFF
ROM bank 1
32
02000000
02FFFFFF
Reserved
48
03000000
0300FFFF
Module I/O space
03010000
0302BFFF
16-MHz PC-style I/O
0302C000
0302FFFF
Reserved
03030000
0303FFFF
Further module I/O space
03040000
031FFFFF
Reserved
03200000
0320FFFF
CL-PS7500FE registers
03210000
033FFFFF
Simple I/O space
03400000
034FFFFF
Video registers
03500000
03FFFFFF
Reserved
64
04000000
07FFFFFF
Reserved
128
08000000
0FFFFFFF
Extended I/O space
256
10000000
DRAM bank 0
320
14000000
DRAM bank 1
384
18000000
DRAM bank 2
448
1C000000
DRAM bank 3
512
20000000
ROM bank 0
(repeated)
MEMORY MAP
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
9. MEMORY SUBSYSTEMS
9.1 ROM Interface
The CL-PS7500FE ROM interface supports both non sequential and burst mode read and write cycles,
with a range of programmable timings for each type. A single chip select signal, nROMCS, is generated
for addresses between 0x00000000 and 0x01FFFFFF that can be split externally to provide separate chip
selects for two 16-Mbyte banks of ROM. Each bank of ROM can be 16- or 32-bits wide. The ROM access
time depends on the MEMCLK frequency and to enable slow ROMs to be used with a high-frequency
MEMCLK, there is a half-speed bit available that causes all ROM timings to slow to twice as many MEMCLK cycles, when the half-speed bit is set to ‘0’.
The ROM interface of CL-PS7500FE can also support write cycles with the generation of an output and
write enable. The feature is disabled on reset so that write cycles do not:
●
produce a chip select – nROMCS,
●
write enable, or
●
drive the data out onto the external data bus
When this feature is disabled, an output enable is still generated on read cycles.
The ability to write data to ROM space devices is primarily intended to allow the programming of FLASH
devices directly. With only one write enable, byte writes to 16- or 32-bit-wide devices are not handled
directly. External logic can decode address bits LA[1:0], and the write enable can enable a full SRAM
interface to be generated (if required). However, the interface is not designed to provide a high-performance interface to SRAM.
Assuming a MEMCLK frequency of 32 MHz, the access time for a non-sequential cycle can be varied from
220 to 62.5 ns in 31.25-ns increments. For burst mode cycles, the two LSBs of the latched address from
the CL-PS7500FE increment to allow up to four sequential reads. The access time for burst mode cycles
can be programmed from 125 ns down to 62.5 ns, again in 31.25-ns increments.
NOTE: Due to the timing of the write enable, the smallest cycle length for a write cycle is three MEMCLK cycles –
that is, 93.75 ns.
If a frequency other than 32 MHz is used for MEMCLK, these timings scale accordingly.
Support for 16-bit-wide ROMs is provided through a programmable bit in each of the ROM control registers. If a 16-bit-wide device is selected, then two memory system cycles are required to fetch the full 32bit word required by the ARM. If burst mode is disabled for that bank, then CL-PS7500FE performs two
non-sequential fetches using the programmed non-sequential timing, latch the intermediate 16-bit value,
and present the full 32-bit word to the ARM processor macrocell.
If the burst mode timing bits are programmed into an enabled state, then the first 16-bit read is a standard
non-sequential cycle, but the second is a burst mode cycle to minimize the total access time.
When a 16-bit-wide ROM bank is being addressed, the ROM address is shifted up by one bit such that
the LSB appears on LA[2], thus allowing the same PCB layout to be used for 16-bit or 32-bit ROM banks.
June 1997
ADVANCE DATA BOOK v2.0
MEMORY SUBSYSTEMS
67
CL-PS7500FE
System-on-a-Chip for Internet Appliance
When using a 16-bit-wide ROM device, data must be stored so that the least-significant bytes of a 32-bit
word are stored at the lower memory address:
Address
Contents
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x00000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0x00000001
When this is read, the ARM sees:
MSB
LSB
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
9
8
7
6
5
4
3
2
1
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9.1.1 ROM Bank Configuration and Timing
There are two identical registers that control the configuration and timing of the two ROM banks. Both
registers default to read-only 16-bit mode and the slowest possible non-sequential timings on reset. This
means that one of the first actions when using 32-bit-wide ROM must be to reprogram these registers for
32-bit-wide operation. A detailed description of how to boot up a CL-PS7500FE system using 32-bit-wide
ROM is contained in Appendix A, “Initialization and Boot Sequence”.
7
6
5
4
3
2
1
0
W S H B B N N N
To program these registers, write a byte to 0x03200080 for the ROMCR0 register (address range
0x00000000 to 0x00FFFFFF) or to 0x03200084 for the ROMCR1 register (address range 0x01000000 to
0x0FFFFFFF). The details of these registers are shown below.
N
B
H
S
W
Write
68
MEMORY SUBSYSTEMS
non-sequential access time (H = 1):
000
7 MEMCLK cycles
001
6 MEMCLK cycles
010
5 MEMCLK cycles
011
4 MEMCLK cycles
100
3 MEMCLK cycles
101
2 MEMCLK cycles
burst mode access time (H = 1):
00
Burst Off
01
4 MEMCLK cycles
10
3 MEMCLK cycles
11
2 MEMCLK cycles
half-speed select, that is, double the above cycle time when H=0
16/32-bit mode
Write enable
bit[7]
0
writes disabled
1
writes enabled
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Read
Reset
bit[6]
0
32-bit
1
16-bit
bit[5]
0
half speed mode
1
normal speed
return above values
set to 0x40, that is, 16-bit, slowest access time, and writes disabled.
The output and write enable signals are output on the pins nIOR and nIOW respectively. This reuse of I/O
signals is not expected to cause any difficulties since I/O chip selects is not active during accesses to
ROM space.
9.2 DRAM Interface
The DRAM interface can directly drive four banks of DRAM to give a maximum of 64 Mbytes in each
DRAM bank:
●
Four nRAS strobes to select the bank
●
Four nCAS strobes to select the byte within the word
●
Twelve multiplexed row/column address lines RA[11:0]
The nRAS strobes are decoded directly from bits 27 and 26 of the address. This means that the DRAM
address space is non-contiguous if the entire 64 Mbytes is not used for each bank.
The DRAM controller supports page mode burst cycles with up to 255 sequential accesses in a burst.
Each of the four banks can be a 16- or 32-bit-wide device.
The interface can be programmed to support either Fast Page or EDO type DRAMs. When EDO DRAM
has been selected, the data is latched into CL-PS7500FE one cycle later, taking advantage of the data
latches resident in the output stage of the DRAM. The memory clock frequency can then be increased to
realize the greater sequential access bandwidth available with EDO DRAMs.
NOTE: With a lower frequency memory clock, the interface may support EDO DRAM even without the configuration
bit being set.
Support is provided for CAS-before-RAS refresh, and direct programmability of the nRAS and nCAS outputs through a special register allows software to directly control self-refresh DRAM.
DRAM cycle speed is controlled by the frequency of MEMCLK. Non-sequential DRAM cycles require
between five and nine MEMCLK cycles, depending on the selected mode and RAS pre-charge requirements. Page mode sequential cycles require two MEMCLK cycles.
9.2.1 DRAM Control Registers
There are three registers associated with DRAM control:
DRAMCR has seven bits, including four (one for each bank) to allow selection between 16- and 32-bit
modes of operation for each bank. Of the three remaining bits:
●
One selects EDO memory support
●
One inserts an extra wait state between falling nRAS and falling nCAS on read cycles to preserve tRAC
June 1997
ADVANCE DATA BOOK v2.0
MEMORY SUBSYSTEMS
69
CL-PS7500FE
System-on-a-Chip for Internet Appliance
●
The final bit selects between 3 and 4 MEMCLK cycles of minimum nRAS[x] precharge time, tRP
SELFREF allows direct forcing of the nRAS and nCAS outputs. The default state of each of these bits is
‘0’, allowing normal operation of the nRAS and nCAS outputs. But, when a bit is set high, the relevant
nCAS or nRAS output is immediately forced active (low).
REFCR controls the refresh rate for CAS-before-RAS refresh. There are four possible refresh periods
from 128–16 µs.
9.2.2
DRAM Address Multiplexing
The multiplexing of the DRAM address onto the RA[11:0] outputs is slightly different for 32- and 16-bit
modes. The DRAM address requested by the ARM or DMA controller must be shifted up by one bit in 16bit mode, to enable two locations to be accessed to read or write one 32-bit word. The row/column
address multiplexing arrangements are shown below, where the numbers in the table refer to the address
bits provided by the ARM or DMA controller.
32-bit-wide DRAM Bank
RA[11:0]
11 10 9
8
7
6
5
4
3
2
1
Row address
24 22 19 18 17 16 15 14 13 12 11 10
Column address
25 23 21 20 9
8
7
6
5
4
RA[11:0]
11 10 9
6
5
4
3
2
Row address
23 21 18 17 16 15 14 13 12 11 10 9
Column address
24 22 20 19 8
3
0
2
16-bit-wide DRAM Bank
●
8
7
7
6
5
4
3
1
2
0
•
This bit is generated separately by DRAM controller to access each 16-bit half-word sequentially.
9.2.3 Selection Between 16- and 32-bit DRAM
7
6
5
4
3
2
1
0
X P R E S S S S
The DRAMCR at address 0x032000D0 allows the width of each of the four DRAM banks to be defined
for CL-PS7500FE. On reset, all banks are defined as 32-bits wide, so if a 16-bit system is being used it
is necessary to program this register before any writes to DRAM occur. It is not possible to write to DRAM
in 16-bit mode and read back from the same bank in 32-bit mode, or vice versa.
S
Write
70
MEMORY SUBSYSTEMS
16- or 32-bit mode select, one for each bank
bit[3] bank 3 DRAM width
0
32-bit
1
16-bit
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Read
Reset
bit[2] bank 2 DRAM width
0
32-bit
1
16-bit
bit[1] bank 1 DRAM width
0
32-bit
1
16-bit
bit[0] bank 0 DRAM width
0
32-bit
1
16-bit
reads above values
set bits to zero (32-bit)
9.2.4 EDO and Timing Mode Selection
7
6
5
4
3
2
1
0
X P R E S S S S
The DRAMCR at address 0x032000D0 also controls EDO mode and some other timing features. On reset
all these bits are set low, that is, inactive. To ensure reliable operation in many systems after reset, these
register bits must be correctly programmed before the DRAM is used.
Write:
P
R
E
Read
Reset
Precharge RAS control
0
3 MEMCLK cycles minimum RAS precharge
1
4 MEMCLK cycles minimum RAS precharge
RAS to CAS delay
0
2 MEMCLK cycles RAS to CAS delay on reads
1
3 MEMCLK cycles RAS to CAS delay on reads
EDO Control
0
Fast Page DRAMs selected
1
EDO DRAMs selected
reads above values
set all bits to zero (Fast page, no extra delays)
To take advantage of the faster page mode accesses of EDO DRAMs, the memory clock frequency
should be increased accordingly. For example, a system using 80-ns Fast Page DRAMs require a memory
clock of ~32 MHz; 80-ns EDO DRAMs could use a memory clock of ~50 MHz. This improves the asymptotic DRAM bandwidth from 64 to 100 Mbytes for a 32-bit-wide system.
However, the increase in memory clock may cause the Trac time and the Trp times to be violated at 4 and
3 MEMCLK cycles respectively (when EDO selected). The register configuration bits R and P allow each
of these to be increased by one MEMCLK cycle when appropriate.
16-bit Mode
In 16-bit mode CL-PS7500FE must perform two reads or writes for each 32-bit word DRAM access
requested by the ARM processor or the DMA controller. Only nCAS[1] and nCAS[0] are used, to access
the two bytes of each word. nCAS[3:2] are held at logic one. In 16-bit mode, the same number of physical
June 1997
ADVANCE DATA BOOK v2.0
MEMORY SUBSYSTEMS
71
CL-PS7500FE
System-on-a-Chip for Internet Appliance
addresses are available as for 32-bit mode, meaning that only 32 Mbytes of DRAM is supported per bank.
Words are stored in DRAM with the upper half-word at the lower address.
ADDRESS
CONTENTS
15 14 13 12 11 10
9
8
7
6
4
5
3
2
0
1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0X10000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0X10000001
When this is read, the ARM sees:
MSB
LSB
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9
8
7
6
5
4
3
2
1
0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
In 16-bit mode, byte reads and writes only require a single DRAM access, and the LSB of the column
address is decoded in conjunction with the nCAS[1:0] outputs to select a single byte from four. For this
reason byte reads and writes for 16-bit-wide DRAMs have the same timing as for the non-sequential 32bit case.
16-bit mode word accesses involve a non-sequential access for the upper halfword, followed by a sequential access for the lower half word at the next memory location. A non sequential 16-bit mode word access
thus requires 7 MEMCLK cycles, then sequential accesses can continue until a page boundary is
reached, taking two cycles for each half word.
9.2.5 DRAM Refresh
DRAM refresh is controlled by a small state machine and counter within CL-PS7500FE. The refresh interval timer is clocked by a clock derived from the fixed frequency I_OCLK, and thus the refresh intervals
remain the same even if the frequency of MEMCLK is increased for use with faster DRAM. There are four
timings available for refresh, controlled by the REFCR refresh control register at address 0x0320008C.
During reset, the refresh timer is reset to the fastest value (16 µs), and the counter and state machine are
clocked such that refresh continues even during reset.
7
6
5
4
3
2
1
0
X X X X R R R R
72
R
Write
refresh period
bit[3:0]
0000 refresh off
0001 16 µs
0010 32 µs
0100 64 µs
1000 128 µs
all others are undefined
Read
Reset
return above values
set to ‘0001’ (fastest available refresh rate)
MEMORY SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
9.2.6 DRAM Self-Refresh
7
6
5
4
3
2
1
0
C C C C R R R R
The nCAS and nRAS lines can be forced active by programming bits in the SELFREF register at address
0x032000D4. This is intended for use with self refresh DRAM, and particularly in conjunction with STOP
mode so that DRAM can retain state when all the CL-PS7500FE clocks have been stopped. All DMA must
be stopped and the code that writes to this register must be executing from ROM.
C
R
Write
Read
Reset
force all nCAS low
force all nRAS low
bits[7:4]
0
normal
1
force to zero
bits[3:0]
0
normal
1
force to zero
reads above values
set bits to zero (normal)
9.2.7 Non-Sequential Access Time and RAS Precharge
At the end of one DRAM access, the earliest the next access can start is two memory clock cycles later.
The new access must be to a different DRAM bank than the previous for this to be allowed. If the new
access is to the same bank as the previous, to maintain the RAS precharge time (tRP), an extra clock cycle
is inserted before the nRAS[x] signal is asserted again.
Thus, the minimum RAS precharge time is guaranteed to be 3 MEMCLK cycles. This can be increased
to 4 MEMCLK cycles by setting DRAMCR[7] high. These wait states increase the access time of a nonsequential DRAM access by 1 or 2 cycles.
To provide adequate RAS access delay (tRAC) at higher memory clock frequencies, DRAMCR[6] can be
set. This inserts a wait state between the falling nRAS and the first falling nCAS of a read cycle.
Setting bit 5 of the DRAMCR delays the latching of data into CL-PS7500FE by one cycle to support EDO
DRAMs and so increases non-sequential access time by one cycle.
Table 9-1 shows how to calculate the non-sequential DRAM read access time:
Table 9-1.
Non-Sequential DRAM Read Access Times
DRAMCR
Bit 6 = 0
Bit 6 = 1
Fast Page (bit 5 = 0)
5
6
EDO (bit 5 = 1)
6
7
The non-sequential write access remains at 5 cycles for the above conditions.
June 1997
ADVANCE DATA BOOK v2.0
MEMORY SUBSYSTEMS
73
CL-PS7500FE
System-on-a-Chip for Internet Appliance
To preserve minimum RAS precharge times when one access closely follows another to the same DRAM
bank, the following must be added to these values
if bit 7 is low
0 or 1 cycles
if bit 7 is high
0, 1, or 2 cycles
9.3 DMA Channels
The CL-PS7500FE supports video, cursor and sound DMA to enable direct transfer of qwords of data
from DRAM to the video and sound processing interfaces. All DMA is in units of four words (qwords) and
data can be read from any of the four banks of DRAM in either 16- or 32-bit mode. CL-PS7500FE contains
a DMA address generator that has a number of programmable control registers associated with each
channel. Most of these registers contain 28-bit physical addresses. The DMA controller also includes support for DMA to dual-panel LCD screens.
All three of the DMA channels have at least one CURRENT register that contains the address in memory
of the next data to be fetched from DRAM on that channel. Each channel uses START, INIT, and END
registers to define the size and location of the buffer in memory where DMA occurs. However, all three
channels have slightly different methods of using these registers. Exact details of the contents of all these
registers can be found in Chapter 10, “MEMORY AND I/O PROGRAMMERS’ MODEL”.
9.3.1
Video DMA
The video DMA channel can be used in two modes. Duplex mode fetches DMA data for use with a dualpanel LCD display, and involves fetching a qword of data for the top half of the display, followed by a qword
of data for the bottom half of the display, then the next qword for the top half and so on. This is implemented using two parallel sets of registers that must be programmed accordingly. A description of how to
use the CL-PS7500FE with a dual panel LCD display can be found in Appendix B, “Dual-Panel
Liquid Crystal Displays”.
Normal mode is used for standard CRT and LCD displays and data is fetched sequentially from the frame
buffer. Selection between normal and duplex mode of operation is achieved through VIDCR[7] at location
0x032001E0. VIDCR[5] enables the video DMA channel and should not be enabled until the other
address registers are programmed to sensible values.
The registers associated with video DMA should only be programmed during the FLYBACK period, to
avoid corrupting data while DMA is in progress or while the display is half way through a raster. The state
of the internal FLYBACK signal is available for polling in the IOCR, and can create an interrupt by programming the IRQA mask register appropriately.
There is a single VIDSTART register that should be programmed with the location in memory of the first
qword of video data at the start of the frame buffer. The VIDEND register is programmed with the location
in memory of the start of the last qword in the frame buffer image.
For normal mode operation, the VIDINITA register should be programmed with the address in memory of
the data that creates the pixels at the top-left corner of the display. This need not necessarily be at the
same address as that programmed into the VIDSTART register, thus allowing hardware scrolling by moving the address in the VIDINITA register through the frame buffer. The value in the VIDINITA register is
automatically transferred into the VIDCURA register during the FLYBACK period, so there is no need to
program the current register separately.
74
MEMORY SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
For normal operation, the VIDINITB register should be programmed to 0x00000000, so that the value in
the VIDCURB register is defined. All video channel registers should be programmed with addresses that
are qword aligned (that is, bits 3:0 are ‘0’).
There is an extra bit (30) in the VIDINITA register that must be programmed high if the address in the
VIDINITA register is the same as the address in the VIDEND register. At all other times it should be programmed low.
Once all bits have been programmed, the enable bit in the VIDCR can be written to, and the video DMA
channel becomes operational. The channel is then controlled by a video request signal from the video
controller part of CL-PS7500FE. When a request for more video data arrives and the current bus cycle
finishes, the bus controller arbitrates in favor of the DMA (having the highest priority on the bus) to fetch
a qword of data for the video sub system. Immediately after each DMA access, the address in the current
register is incremented by 16 (one qword) and the address is compared with the address in the VIDEND
register. If they are the same, the DMA controller knows that the next DMA is the last one in the buffer,
and after the next DMA, the current register is reloaded from the VIDSTART register. During the FLYBACK
period, the current register is automatically reloaded with the value in the VIDINITA register.
Programming of the DMA and video subsystem for use with dual panel LCDs is described in full in
Appendix B, “Dual-Panel Liquid Crystal Displays”, and uses identical principles, except there are two Current registers and two Init registers – one for each panel. On each successive DMA access, the
CL-PS7500FE toggles between the two sets of registers providing data first for the upper panel and then
from the lower panel. This means that the two init registers should always be programmed with addresses
with are equidistantly spaced through the wrapped-around frame buffer.
9.3.2
Cursor DMA
There are only two registers associated with the cursor channel, the CURSCUR current register and the
CURSINIT register. The channel is enabled under the control of the video enable bit in the VIDCR. The
operation of the channel is the same for normal or duplex modes, but it is necessary to program the cursor
differently depending on the mode being used. Details of the programming required can be found in
Appendix B, “Dual-Panel Liquid Crystal Displays”.
The CURSINIT register should be programmed with the address of the first word of cursor data in memory. There is no END register as the width of the cursor is predetermined (32 pixels) and the height of the
cursor is defined by programming the VCSR and VCER in the video subsystem. Each qword fetches
results in two rasters worth of cursor data being transferred (except in HiRes mode). At the end of each
fetch, the value in the CURSCUR is increased by 16, to address the start of the next qword. The value
programmed into the CURSINIT register must be qword-aligned.
9.3.3
Sound DMA
The Sound DMA channel provides data for the CL-PS7500FE sound interface. There are two sets of
pointer registers so that data transfers can be double buffered to ensure that DMA data is always available
even when the data in one buffer is exhausted. One set of registers can be reprogrammed while the others
are being used.
Sound DMA transfers are constrained to a single 4-Kbyte page, as only the lowest 12 bits of the DMA
address are incremented and compared to check for the end of the buffer. All sound DMA is qword and
must be from qword aligned addresses, so the lowest four bits of the registers are not used and should
be programmed to zero. Bit 30 of each of the END registers is the ‘last’ bit and must be programmed high
if the initial value in the current register is the same as the end register for that buffer (that is, for a single
transfer).
June 1997
ADVANCE DATA BOOK v2.0
MEMORY SUBSYSTEMS
75
CL-PS7500FE
System-on-a-Chip for Internet Appliance
There is also an interrupt mask and status bit for the sound channel that allows the status of the sound
DMA state machine to be monitored. The state machine generates an interrupt when the end of the current buffer is reached, and it is up to the system software to take appropriate action to reprogram that
channel as required while DMA continues from the location pointed to by the other set of buffers.
Sound data is requested by the CL-PS7500FE sound subsystem that asserts a request signal, and the
bus controller arbitrates in favor of the sound DMA when the current bus cycle has completed as long as
there is not an outstanding video or cursor DMA request.
9.3.4 The Sound DMA State Machine
The sound DMA channel is controlled by a simple state machine. The state machine remains in an idle
state when the enable bit in the sound DMA control register has not been set. The state bits of the state
machine are directly mapped to the Sound DMA status register, where they are named Overrun, Int and
A/B. On reset, the state machine is set to ‘110’, setting the Overrun and Int bits. The Overrun bit indicates
when a channel has stopped because it has finished a transfer and the other pointer pair is not programmed. The Int bit indicates when the channel is requesting an interrupt. The A/B bit indicates the pair
of current/end pointers in use.
The state machine diagram in Figure 9-1 on page 77 shows how the state machine transfers between
buffers A and B to allow DMA to continue uninterrupted when both sets of DMA address registers have
been programmed. The transitions between states occur either when the ARM processor programs an
pointer register pair, or when a buffer is completed. To ensure correct operation, the current pointer must
be programmed before the end pointer as it is the action of programming the end pointer that causes the
state transition. The ‘stop’ bit in the end register terminates a sequence of DMA, by forcing the state
machine back into one of the idle states at the end of the last buffer.
During operation of the state machine, when the end of one buffer is reached, an interrupt is generated
that can be used to signal to the ARM processor that it is time to reprogram that pair of pointers. If one
buffer’s address pointers have not been reprogrammed before the other buffer is exhausted, then both the
Int and Overrun bits are set, and DMA cannot continue until the pointers are reprogrammed.
76
MEMORY SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
IDLE OR WRITE BUFF B
BUSY (BUFF A ACTIVE)
WRITE BUFF A
BUSY (BUFF A ACTIVE)
WRITE BUFF B
OR
INT
BUFF A
INT
BUFF A
BUFF A
FINISHED
(110)
FINISHED
FINISHED
(010)
(NOT STOPB)
FINISHED
(STOPA)
(000)
(NOT STOPA)
FINISHED
FINISHED
(STOPB)
INT
BUFF B
WRITE BUFF A
(001)
BUSY (BUFF B ACTIVE)
BUFF B
OR
INT
WRITE BUFF B
(011)
BUFF B
(111)
BUSY (BUFF B ACTIVE)
IDLE OR WRITE BUFF A
Figure 9-1. Hardware DMA State Machine Diagram
June 1997
ADVANCE DATA BOOK v2.0
MEMORY SUBSYSTEMS
77
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10. MEMORY AND I/O PROGRAMMERS’ MODEL
10.1 Introduction
The CL-PS7500FE contains over 100 programmable registers (in addition to those in the ARM processor
and the 256 video palette entries), grouped into three sets. Registers inside the ARM processor are
described in Those inside the video and sound macrocell are all programmed by writing to memory locations 0x03400000 to 0x034FFFFF, with the upper bits of the programmed data determining which
video/sound register is to be programmed. All these registers are write-only, and are described in
Chapter 12 and Chapter 13. The remaining CL-PS7500FE registers are programmed by writing a full 32bit data word to an address between 0x03200000 and 0x032001F8. Although most of these registers are
only 8- or 16-bits wide, all the register addresses are word-aligned. All the CL-PS7500FE registers that
do not form part of the ARM processor or the video and sound macrocell are described in the following
sections.
10.2 Register Summary
In Table 10-1, all addresses are hex and relative to the base address 0x03200000.
Table 10-1. CL-PS7500FE Registers
Address
Size
(Bits)
Read
Write
IOCR
00
8
✓a
✓
I/O control
81
KBDDAT
04
8
✓
✓
Keyboard data
81
KBDCR
08
8
✓
✓
Keyboard control
82
IOLINES
0C
8
✓
✓
General-purpose I/O lines
83
IRQSTA
10
8
✓
✗b
IRQA status
83
IRQRQA
14
8
✓
✓
IRQA request/clear
84
IRQMSKA
18
8
✓
✓
IRQA mask
84
SUSMODE
1C
8
✓
SUSPEND
Enter SUSPEND mode
85
IRQSTB
20
8
✓
✗
IRQB status
85
IRQRQB
24
8
✓
✗
IRQB request
86
IRQNSKB
28
8
✓
✓
IRQB mask
86
STOPMODE
2C
8
✗
STOP
Enter STOP mode
87
FIQST
30
8
✓
✗
FIQ status
87
FIQRQ
34
8
✓
✗
FIQ request
87
FIQMSK
38
8
✓
✓
FIQ mask
88
CLKCTL
3C
8
✓
✓
Clock divider control
88
T0low
40
8
✓
✓
Timer 0 low bits
89
Name
78
MEMORY AND I/O PROGRAMMERS’ MODEL
Function
ADVANCE DATA BOOK v2.0
Page
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 10-1. CL-PS7500FE Registers (cont.)
Address
Size
(Bits)
Read
Write
T0high
44
8
✓
✓
T0GO
48
8
✗
GO
T0LAT
4C
8
✗
LATCH
T1low
50
8
✓
T1high
54
8
T1GO
58
T1LAT
Name
Function
Page
Timer 0 high bits
89
Timer 0 go command
89
Timer 0 latch command
89
✓
Timer 1 low bits
89
✓
✓
Timer 1 high bits
89
8
✗
GO
Timer 1 go command
90
5C
8
✗
LATCH
Timer 1 latch command
90
IRQSTC
60
8
✓
✗
IRQC status
90
IRQRQC
64
8
✓
✗
IRQC request
90
IRQMSKC
68
8
✓
✓
IRQC mask
90
VIDMUX
6C
8
✓
✓
LCD and IIS control bits
91
IRQSTD
70
8
✓
✗
IRQD status
91
IRQRQD
74
8
✓
✗
IRQD request
92
IRQMSKD
78
8
✓
✓
IRQD mask
92
ROMCR0
80
8
✓
✓
ROM control bank 0
93
ROMCR1
84
8
✓
✓
ROM control bank 1
93
REFCR
8C
8
✓
✓
Refresh period
94
ID0
94
8
✓
✗
Chip ID number low byte
94
ID1
98
8
✓
✗
Chip ID number high byte
94
VERSION
9C
8
✓
✗
Chip version number
94
MSEDAT
A8
8
✓
✓
Mouse data
94
MSECR
AC
8
✓
✓
Mouse control
95
IOTCR
C4
8
✓
✓
I/O timing control
95
ECTCR
C8
8
✓
✓
Expansion card timing control
95
ASTCR
CC
8
✓
✓
Asynchronous I/O timing
control
96
DRAMCR
D0
8
✓
✓
DRAM control
96
SELFREF
D4
8
✓
✓
Force CAS/RAS lines low
individually for self refresh
97
June 1997
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
79
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 10-1. CL-PS7500FE Registers (cont.)
Address
Size
(Bits)
Read
Write
ATODICR
E0
8
✓
✓
A-to-D interrupt control
97
ATODSR
E4
8
✓
✗
A-to-D status
98
ATODCC
E8
8
✓
✓
A-to-D convertor control
98
ATODCNT1
EC
16
✓
✗
A-to-D counter 1
99
ATODCNT2
F0
16
✓
✗
A-to-D counter 2
99
ATODCNT3
F4
16
✓
✗
A-to-D counter 3
99
ATODCNT4
F8
16
✓
✗
A-to-D counter 4
99
SD0CURA
180
32
✓
✓
Sound DMA 0 current A
99
SD0ENDA
184
32
✓
✓
Sound DMA 0 end A
100
SD0CURB
188
32
✓
✓
Sound DMA 0 current B
100
SD0ENDB
18C
32
✓
✓
Sound DMA 0 end B
101
SD0CR
190
8
✓
✓
Sound DMA control
102
SD0ST
194
8
✓
✗
Sound DMA status
102
CURSCUR
1C0
32
✓
✓
Cursor DMA current
103
CURSINIT
1C4
32
✓
✓
Cursor DMA INIT
103
VIDCURB
1C8
32
✓
✓
Duplex LCD video current B
103
VIDCURA
1D0
32
✓
✓
Video DMA current A
104
VIDEND
1D4
32
✓
✓
Video DMA end
104
VIDSTART
1D8
32
✓
✓
Video DMA start
104
VIDINITA
1DC
32
✓
✓
Video DMA INIT A
105
VIDCR
1E0
8
✓
✓
Video cursor DMA control
106
VIDINITB
1E8
32
✓
✓
Duplex LCD video INIT B
107
DMAST
1F0
8
✓
✗
DMA interrupt status
108
DMARQ
1F4
8
✓
✗
DMA interrupt request
108
DMASK
1F8
8
✓
✓
DMA interrupt mask
108
Name
a
b
Function
Page
‘✓’ indicates read/writable
‘✗’ indicates do not write or read
80
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3 Register Descriptions
10.3.1
IOCR (0x00) — I/O Control
7
6
5
4
3
F N 1 1 I
2
1
0
1 C D
This register controls various I/O functions. The value of the FLYBACK signal from the video subsystem
can be examined by reading bit 7 of this register, this is important for GENLOCK as FLYBACK provides
information about the vertical timing of the display. The FLYBACK bit also gives information about when
the video palette registers can safely be reprogrammed without causing any visual effects. This can only
be done during the FLYBACK period, when this bit is set high. Control of the open drain OD[1:0] and ID
pins is provided from this register. It is also possible to read the status of the nINT1 pin.
F
FLYBACK value
N
nINT1 value
I
ID open drain pin control
C
OD[1] open drain pin control
D
OD[0] open drain pin control
Write
bits[7:4, 2] ignored
bit[3, 1:0] open drain pin controls:
0
force pin low
1
pin is input only
Read
bit[7] reads current FLYBACK value from video and sound macrocell
bit[6] reads current nINT1 pin value
bits[5:4, 2] read one
bit[3] reads current ID pin value
bit[1] reads current OD[1] pin value
bit[0] reads current OD[0] pin value
Reset
10.3.2
bits[3, 1:0] set as inputs (high)
KBDDAT (0x04) — Keyboard Data
7
6
5
4
3
2
1
0
D D D D D D D D
June 1997
D
keyboard data
Write
next byte to be sent over serial interface to keyboard
Read
last byte of data received from keyboard
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
81
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.3
KBDCR (0x08) — Keyboard Control
7
6
5
4
3
2
1
0
T T R R E P D C
T
transmit status
R
receive status
E
enable
P
received parity
D
data pin status
C
clock pin status
Write
bits[7:4, 2] ignored
bit[3] enable:
0
state machine cleared
1
state machine enabled
bit[1] force KBDATA pin low:
0
don't force low
1
force low
bit[0] force KBCLK pin low:
0
don't force low
1
force low
Read
bit[7] TXE shift register empty:
0
not ready
1
enabled and ready to transmit
bit[6] TXB, transmitter busy:
0
not busy
1
currently sending data
bit[5] RXF, receive shift register full:
0
not full
1
ready to read
bit[4] RXB, receiver busy:
0
not busy
1
currently receiving data
bit[3] ENA, state machine enable:
0
disabled
1
enabled
bit[2] RXP, receive parity bit, odd parity bit for last received data
bit[1] SKD, KBDATA pin value after synchronization
bit[0] SKC, KBCLK pin value after synchronization
82
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.4
IOLINES (0x0C) — IOP[7:0] Port Control
7
6
5
4
3
2
1
0
I I I I I I I I
This register is the control for the 8-bit I/O port included in the CL-PS7500FE. Each bit independently controls the state of one of the open drain I/O pins IOP[7:0]. On reset, all the bits are configured to be inputs.
10.3.5
I
IOP open drain pin
Write
corresponding pin:
0
force corresponding pin low
1
corresponding pin becomes an input
Read
read value on corresponding pin
Reset
set all as inputs
IRQSTA (0x10) — IRQ A Interrupts Status
7
6
5
4
3
2
1
0
1 T U R F N 0 P
This is the first of four sets of IRQ interrupt control, masking and status registers in CL-PS7500FE. Not
all the bits in each register are used. Note that this status register contains a bit (7) that is always active,
and can force an interrupt from software by programming the corresponding bit in the IRQA mask register
high.
1
always active bit
T
2-MHz timer 1, rising-edge triggered
U
2-MHz timer 0, rising-edge triggered
R
power on reset
F
FLYBACK, rising-edge triggered
N
nINT1, falling-edge triggered
P
INT2, rising-edge triggered
Write
ignored
Read
status
bit[7] is always ‘1’
bits[6:2, 0]
0
not triggered since last cleared
1
triggered since last cleared
bit[1] is always 0
Reset
June 1997
clear bits[6:5, 3:2, 0] to ‘0’
power on reset sets bit[4] to ‘1’
push button reset maintains the current bit[4] value
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
83
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.6
IRQRQA (0x14) — IRQ A Interrupts Request/Clear
7
6
5
4
3
2
1
0
1 T U R F N X P
10.3.7
1
always active bit
T
2-MHz timer 1, rising-edge triggered
U
2-MHz timer 0, rising-edge triggered
R
power on reset
F
FLYBACK, rising edge triggered
N
nINT1, falling-edge triggered
P
INT2, rising-edge triggered
Write
clear triggered interrupts
0
do not clear interrupt
1
clear interrupt
Read
requests, as status, but bitwise AND’ed with mask
IRQMSKA (0x18) — IRQ A Interrupts Mask
7
6
5
4
3
2
1
0
1 T U R F N 0 P
84
1
always active bit
T
2-MHz timer 1, rising-edge triggered
U
2-MHz timer 0, rising-edge triggered
R
power on reset
F
FLYBACK, rising-edge triggered
N
nINT1, falling-edge triggered
P
INT2, rising-edge triggered
Write
set mask for each interrupt source
0
do not form part of nIRQ
1
form part of nIRQ
Read
value set by write
Reset
set all ‘0’ (none affect nIRQ)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.8
SUSMODE (0x1C) — SUSPEND Mode
7
6
5
4
3
2
1
0
X X X X X X X S
This register allows the CPU to set the CL-PS7500FE into SUSPEND mode. Only one bit (0) is used, and
a write to this bit causes SUSPEND mode to be entered. The value written to bit 0 determines if the external I/O clocks, normally output from the device, are also disabled during SUSPEND mode. The value programmed depends on the peripherals being driven by these clocks.
10.3.9
S
SUSPEND mode control of external I/O clocks.
Enter SUSPEND mode with MEMCLK, FCLK, I/O clocks, and some internal
clocks stopped. DMA continues and the write to this location completes on
either wakeup event, nIRQ or nFIQ or reset.
Write
turn off external I/O clocks when in this mode
0
turn off
1
do not turn off
Read
return above value
Reset
set to ‘0’
IRQSTB (0x20) — IRQ B Interrupts Status
7
6
5
4
3
2
1
0
K J P T I S C F
June 1997
K
keyboard receive interrupt
J
keyboard transmit interrupt
P
nINT3, active-low
T
nINT4, active-low
I
INT5, active-high
S
nINT6, active-low
C
INT7, active-high
F
nINT8, active-low
Write
ignored
Read
status
0
1
ADVANCE DATA BOOK v2.0
inactive
active
MEMORY AND I/O PROGRAMMERS’ MODEL
85
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.10 IRQRQB (0x24) — IRQ B Interrupts Request
7
6
5
4
3
2
1
0
K J P T I S C F
K
keyboard receive interrupt
J
keyboard transmit interrupt
P
nINT3, active-low
T
nINT4, active-low
I
INT5, active-high
S
nINT6, active-low
C
INT7, active-high
F
nINT8, active-low
Write
ignored
Read
request, status bitwise AND’ed with mask
10.3.11 IRQMSKB (0x28) — IRQ B Interrupts Mask
7
6
5
4
3
2
1
0
K J P T I S C F
86
K
keyboard receive interrupt
J
keyboard transmit interrupt
P
nINT3, active-low
T
nINT4, active-low
I
INT5, active-high
S
nINT6, active-low
C
INT7, active-high
F
nINT8, active-low
Write
set mask for each interrupt source:
0
do not form part of nIRQ
1
form part of nIRQ
Read
value set by write
Reset
set all ‘0’ (none affect nIRQ)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.12 STOPMODE (0x2C) — STOP Mode
7
6
5
4
3
2
1
0
X X X X X X X X
This register exists only as an address decode and is used to enter STOP mode. It is very important that
DMA activity is stopped before this register is written to. The value written to the register is permanently
forced out on the main data bus during STOP mode, and for most systems it is desirable to ensure that
this value is 0xFFFFFFFF. The address bus is automatically forced high during STOP mode.
Write
(any value), enter STOP mode with OSCPOWER set low. The write to this
register completes on either wakeup event, nEVENT, nEVENT2, or reset
Read
ignored
10.3.13 FIQST (0x30) — FIQ Interrupts Status
7
6
5
4
3
2
1
0
1 F 0 S 0 0 I D
The FIQ control registers take a similar form to the IRQ registers previously described. Again, bit 7 is
always active so that a FIQ interrupt can be forced via software.
1
always active
F
nINT8, active-low
S
nINT6, active-low
I
INT5, active-high
D
INT9, active-high
Write
ignored
Read
status
0
1
inactive
active
10.3.14 FIQRQ (0x34) — FIQ Interrupts Request
7
6
5
4
3
2
1
0
1 F 0 S 0 0 I D
June 1997
1
always active
F
nINT8, active-low
S
nINT6, active-low
I
INT5, active-high
D
INT9, active-high
Write
ignored
Read
request, status bitwise AND’ed with mask
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
87
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.15 FIQMSK (0x38) — FIQ Interrupts Mask
7
6
5
4
3
2
1
0
1 F 0 S 0 0 I D
1
always active
F
nINT8, active-low
S
nINT6, active-low
I
INT5, active-high
D
INT9, active-high
Write
set mask for each interrupt source:
0
do not form part of nFIQ
1
form part of nFIQ
Read
value set by write
Reset
set all ‘0’ (none affect nFIQ)
10.3.16 CLKCTL (0x3C) — Clock Control
7
6
5
4
3
2
1
0
X X X X X F M I
On system power up, the clock control register is reset so that all three main clocks have a Divide-by-2
prescale at the inputs to the chip. This register sometimes needs to be reprogrammed as part of the initial
tasks of the operating system, to set the prescalars into Divide-by-1 mode.
Divide-by-2 mode allows faster oscillators to be used with less rigorous mark-space requirements.
F
FCLK divide control
M
MEMRFCK divide control
I
I/O clock divide control
Write
bit[2]
0
1
FCLK × 2 = CPUCLK
FCLK = CPUCLK
bit[1]
0
1
MEMRFCK × 2 = MEMCLK
MEMRFCK = MEMCLK
bit[0]
0
1
IOCK32 × 2 = I_OCLK
IOCK32 = I_OCLK
Read
return above value
Power On Reset only
set all to ‘0’, that is, the Divide-by-2 clocks
Push button reset does not affect this register
88
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.17 T0low (0x40) — Timer 0 Low Bits
7
6
5
4
3
2
1
0
L L L L L L L L
There are eight registers associated with the two 16-bit timers in CL-PS7500FE.
L
low byte of timer
Write
set low byte latch value that is loaded into timer when it reaches end count
Read
read value of low count latched by the ‘Latch’ command T0LAT
10.3.18 T0high (0x44) — Timer 0 High Bits
7
6
5
4
3
2
1
0
H H H H H H H H
H
high byte of timer
Write
set high byte latch value that is loaded into timer when it reaches end count
Read
read value of high count latched by the ‘Latch’ command T0LAT
10.3.19 T0GO (0x48) — Timer 0 Go Command
Write
load counter with high and low latch values and start to decrement (value
ignored)
Read
ignored
10.3.20 T0LAT (0x4C) — Timer 0 Latch Command
Write
latch timer value in high and low count latches (value ignored)
Read
ignored
10.3.21 T1low (0x50) — Timer 1 Low Bits
7
6
5
4
3
2
1
0
L L L L L L L L
L
low byte of timer
Write
set low byte latch value loaded into timer when it reaches end count
Read
read value of low count latched by the ‘Latch’ command T1LAT
10.3.22 T1high (0x54) — Timer 1 High Bits
7
6
5
4
3
2
1
0
H H H H H H H H
June 1997
H
high byte of timer
Write
set high byte latch value that is loaded into timer when it reaches end count
Read
read value of high count latched by the ‘Latch’ command T1LAT
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
89
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.23 T1GO (0x58) — Timer 1 Go Command
Write
load counter with high and low latch values and start to decrement (value
ignored)
Read
ignored
10.3.24 T1LAT (0x5C) — Timer 1 Latch Command
Write
latch timer value in high and low count latches (value ignored)
Read
ignored
10.3.25 IRQSTC (0x60) — IRQ C Interrupts Status
7
6
5
4
3
2
1
0
I I I I I I I I
The IRQC set of control registers control the effect of the IOP[7:0] I/O port bits on the main interrupts.
Their functionality is identical to that described for IRQB.
I
IOP[7:0] pins, active-low
Write
ignored
Read
status
0
1
inactive
active
10.3.26 IRQRQC (0x64) — IRQ C Interrupts Request
7
6
5
4
3
2
1
0
I I I I I I I I
I
IOP[7:0] pins, active-low
Write
ignored
Read
request, status bitwise AND’ed with mask
10.3.27 IRQMSKC (0x68) — IRQ C Interrupts Mask
7
6
5
4
3
2
1
0
I I I I I I I I
90
I
IOP[7:0] pins, active-low
Write
set mask for each interrupt source
0
do not form part of nIRQ
1
form part of nIRQ
Read
value set by write
Reset
set all ‘0’ (none affect nIRQ)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.28 VIDMUX (0x6C) — Video LCD and Serial Sound MUX Control
7
6
5
4
3
2
1
0
X X X X X X I L
This register has two functions:
Bit 1
allows selection of the type of serial sound interface to be supported.
The timing of the two possibilities is shown in the Chapter 13.
Bit 0
controls the color LCD multiplexer used with the video pixel clock to double the
available bandwidth of color LCD data provided.
Further details of how to use this feature can be found in the video and sound macrocell chapters.
L
color LCD support MUX control
I
Serial Sound Format selection
Write
bit[0]
0
1
ESEL[0] = EREG[0]
ESEL[0] = ECLK
bit[1]
0
1
normal format
Japanese format
Read
return above value
Reset
set to ‘0’ (normal)
10.3.29 IRQSTD (0x70) — IRQ D Interrupts Status
7
6
5
4
3
2
1
0
X X X 2 1 A T R
The IRQD control registers are used in an identical way to the IRQB and C registers.
2
nEVENT2, reads back high during an active-low wakeup event 2
1
nEVENT1, reads back high during an active-low wakeup event 1
A
A-to-D, active-high
T
mouse transmit active-high
R
mouse receive active-high
Write
ignored
Read
status
bits[7:5] unused
bits[4:0]
0
1
June 1997
ADVANCE DATA BOOK v2.0
inactive
active
MEMORY AND I/O PROGRAMMERS’ MODEL
91
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.30 IRQRQD (0x74) — IRQ D Interrupts Request
7
6
5
4
3
2
1
0
X X X 2 1 A T R
2
nEVENT2, active-low wakeup event 2
1
nEVENT1, active-low wakeup event 1
A
A-to-D, active-high
T
mouse transmit active-high
R
mouse receive active-high
Write
ignored
Read
request, status bitwise AND’ed with mask
10.3.31 IRQMSKD (0x78) — IRQ D Interrupts Mask
7
6
5
4
3
2
1
0
X X X 2 1 A T R
92
2
nEVENT2, active-low wakeup event 2
1
nEVENT1, active-low wakeup event 1
A
A-to-D, active-high
T
mouse transmit active-high
R
mouse receive active-high
Write
set mask for each interrupt source
0
do not form part of nIRQ
1
form part of nIRQ
Read
value set by write
Reset
set all ‘0’ (none affect nIRQ)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.32 ROMCR1:0 (0x80 and 0x84) — ROM Control
7
6
5
4
3
2
1
0
W S H B B N N N
The ROM interface is very flexible, allowing the length of non sequential and burst cycles to be programmed. These two registers allow this programming to take place.
The half-speed select bit is included so the interface can be used with slow ROMs when fast DRAM is
being used, and the memory system clock is running at a higher frequency. When the half-speed bit is set
low, CL-PS7500FE doubles the length of all the timings and allows the ROM interface to function correctly
with slower ROMs. In normal operation with sufficiently fast ROM devices, this bit should be programmed
to ‘1’.
Each register also contains a bit (6) that, when set, allows a 16-bit wide ROM device to be used for that
bank, by performing two 16-bit fetches to form the 32-bit word required by the CL-PS7500FE. Bit 7 allows
writes to occur to this address space; the data is driven out, and a write enable generated, if enabled.
June 1997
N
non-sequential access time (H = 1)
000
7 MEMCLK cycles
001
6 MEMCLK cycles
010
5 MEMCLK cycles
011
4 MEMCLK cycles
100
3 MEMCLK cycles
101
2 MEMCLK cycles
B
burst mode access time (H = 1)
00
Burst Off
01
4 MEMCLK cycles
10
3 MEMCLK cycles
11
2 MEMCLK cycles
H
half-speed select, that is, double the above delays when H = 0.
Normally, the H bit should be programmed to ‘1’ (normal speed)
S
16- or 32-bit mode
W
Write Enable
Write
bit[7]
0
1
writing disabled
writing enabled
bit[6]
0
1
32-bit
16-bit
bit[5]
0
1
half-speed mode
normal speed
Read
return the above values
Reset
set to 0x40, that is, the 16-bit, slowest access time, to ensure all systems can
be booted from reset.
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
93
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.33 REFCR (0x8C) — Refresh Period
7
6
5
4
3
2
1
0
X X X X R R R R
This register programs the DRAM refresh period. It is set to the fastest available rate during reset, as
refresh continues during reset to ensure that the requirements of DRAM specification can be fully met.
R
refresh period
Write
bit[3:0]
0000
0001
0010
0100
1000
refresh off
16 µs
32 µs
64 µs
128 µs
all others are undefined
Read
return the above values
Reset
set to ‘0001’ (fastest available refresh rate)
10.3.34 ID0 (0x94) — Chip ID Number (Low Byte)
7
6
5
4
3
2
1
0
0 1 1 1 1 1 0 0
The ID registers and the version register read back the CL-PS7500FE ID and version numbers. These
registers are read-only and must not be written to, as they are used to set the CL-PS7500FE into special
modes during production test.
Write
do not write to this location
Read
low byte of chip ID: 0x7C
10.3.35 ID1 (0x98) — Chip ID Number (High Byte)
7
6
1 0
5
4
3
2
1
0
1 0 1 0 1 0
Write
do not write to this location
Read
high byte of chip ID: 0xAA
10.3.36 VERSION (0x9C) — Chip Version Number
Write
ignored
Read
chip version number byte
10.3.37 MSEDAT (0xA8) — Mouse Data
The Mouse Data and Control registers are identical to the keyboard data and control registers, and are
written to and read from in exactly the same way.
94
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.38 MSECR (0xAC) — Mouse Control
As KBDCR register.
10.3.39 IOTCR (0xC4) — I/O Timing Control
7
6
5
4
3
2
1
0
X X X X C C S S
This register sets up the cycle types for two areas of I/O space.
C
combo area access speed
S
NPCCS 1/2 area access speed
Write
bits[7:4] reserved
Read
bits[3:2]
00
01
10
11
Type A (slowest)
Type B
Type C
Type D (fastest)
bits[1:0]
00
01
10
11
Type A (slowest)
Type B
Type C
Type D (fastest)
read back the above values
10.3.40 ECTCR (0xC8) — I/O Expansion Card Timing Control
7
6
5
4
3
2
1
0
E E E E E E E E
This register sets up the access speed for eight portions of extended address space within the area of I/O
space from 08FFFFFF to 0FFFFFFF. (Types A and C only.)
E
expansion card area access speed
Write
bit[7] (0F00 0000..0FFF FFFF)
0
Type A
1
Type C
bit[0] (0800 0000..08FF FFFF)
0
Type A
1
Type C
Read
June 1997
read back above values
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
95
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.41 ASTCR (0xCC) — I/O Asynchronous Timing Control
7
6
5
4
3
2
1
0
A X X X X X X X
This register is used where I/O is being used with a very fast memory system clock. Normally it is programmed to ‘0’ to give the minimum delay for these cycles; however, in some configurations it may be necessary to program the register bit to ‘1’ to slow down the internal synchronization between I/O clocks and
memory clocks and thus ensure sufficient address hold time for the I/O address.
A
asynchronous timing control
0
minimal delay to I/O cycles
1
wait states to ensure address hold time
10.3.42 DRAMCR (0xD0) — DRAM Control
7
6
5
4
3
2
1
0
X P R E S S S S
This register selects between 16- and 32-bit modes of operation for each of the four available banks of
DRAM. Each bank can be individually selected for 16 or 32-bit operation. This allows a mixed 16/32-bitwide system to be built. It also controls EDO support and some timing options.
P
RAS precharge time
0
3 memory clock cycles guaranteed RAS precharge
1
4 memory clock cycles guaranteed RAS precharge
R
RAS-to-CAS delay on read cycles
0
2 memory clock cycles from falling nRAS to falling nCAS
1
3 memory clock cycles from falling nRAS to falling nCAS
E
EDO memory
0
Fast Page memory
1
EDO memory
S
16- or 32-bit mode select, one for each bank
Write
bit 3, bank 3 DRAM width
0
32-bit
1
16-bit
bit 2, bank 2 DRAM width
0
32-bit
1
16-bit
bit 1, bank 1 DRAM width
0
32-bit
1
16-bit
bit 0, bank 0 DRAM width
0
32-bit
1
16-bit
96
Read
reads above values
Reset
set bits to ‘0’ (32-bit)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.43 SELFREF (0xD4) — DRAM Self-Refresh Control
7
6
5
4
3
2
1
0
C C C C R R R R
Direct software control of the external nRAS[3:0] and nCAS[3:0] lines is provided by this register. This is
intended for use with self-refresh DRAMs, so that before the CL-PS7500FE is forced into STOP mode,
the banks of DRAM can be set into a self-refresh state from software by forcing the nRAS and nCAS lines
as specified in the DRAM data sheet.
C
force all nCAS low
R
force all nRAS low
Write
bits[7:4]
0
1
normal
force to ‘0’
bits[3:0]
0
1
normal
force to ‘0’
Read
reads above values
Reset
set bits to ‘0’ (normal)
10.3.44 ATODICR (0xE0) — A-to-D Interrupt Control
7
6
5
4
3
2
1
0
S F A C 4 3 2 1
The A-to-D convertor interface is designed so that various combination of interrupts from the channels
can be used to generate an interrupt request in the IRQD interrupt request register. Note that the logical
OR of all four basic enables powers up the comparators. As the comparators consume static current, they
must be powered down by disabling all the A-to-D channels using this register before STOP mode is
entered.
1
channel 1 interrupt enable
2
channel 2 interrupt enable
3
channel 3 interrupt enable
4
channel 4 interrupt enable
C
any combination of channels generates nIRQ
A
only all channels enabled generates nIRQ
F
first pair enabled generates nIRQ
S
second pair enabled generates nIRQ
Write
bit[7:0]
0
1
disabled
enabled
Read
return above values
Reset
reset to 0x0F
NOTE: The OR of bit[3:0] powers up all the comparators. Thus they reset to the powered-up state.
June 1997
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
97
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.45 ATODSR (0xE4) — A-to-D Status
7
6
5
4
3
2
1
0
R R R R S S S S
This register shows which of the A-to-D channels were triggered and can have their counters read to
ascertain the analog value at the input to the channel. The interrupt request status bits are generated from
the stop flags logically AND’ed with the interrupt enables from the interrupt control register.
R[3:0]
interrupt request state for channels 4–1
S[3:0]
stop flag for channels 4–1
Write
ignored
Read
bit[7:4]
0
1
not requesting
requesting
bit [3:0]
0
1
not stopped
stopped
Reset
set all ‘0’ (not requesting or stopped)
10.3.46 ATODCC (0xE8) — A-to-D Convertor Control
7
6
5
4
3
2
1
0
D D D D C C C C
The lower 4 bits of this register directly reset each of the four counters, so that the counters can be set
back to ‘0’ before a new analog to digital conversion cycle takes place. The counter starts counting as
soon as the relevant clear bit is set back to ‘0’. The discharge transistor controls causes the channel comparator input to be pulled firmly down to VSS, thus discharging an external capacitor and ensuring zero
volts across the capacitor until the discharge bit is programmed low again. With the system connected
conventionally, the external capacitor begins charging as soon as the discharge bit is reset. The discharge
bit should be reset at the same time as the counter clear bit for that channel to be re-enabled.
98
D[3:0]
discharge transistor control for channels 4–1
C[3:0]
clear counter for channels 4–1
Write
bit[7:4]
0
1
transistor off
transistor on (discharge)
bit[3:0]
0
1
clear counter
enable counter
Read
return above values
Reset
set all ‘0’ (clear counters and don't discharge)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.47 ATODCNT1 (0xEC) — A-to-D Counter 1
Write
ignored
Read
returns 16-bit counter value
10.3.48 ATODCNT2 (0xF0) — A-to-D Counter 2
Write
ignored
Read
returns 16-bit counter value
10.3.49 ATODCNT3 (0xF4) — A-to-D Counter 3
Write
ignored
Read
returns 16-bit counter value
10.3.50 ATODCNT4 (0xF8) — A-to-D Counter 4
Write
ignored
Read
returns 16-bit counter value
10.3.51 SDCURA (0x180) — Sound DMA Current A
29 28
31
X
X
X
12 11
P P P P P P P P P P P P P P P P P
4
F F F F F F F F
3
0
0 0 0 0
The operation of the sound DMA channel is described in Chapter 9. The sound current registers are programmed with a page address and the offset within that page to describe the precise location of the first
DMA fetch. The value in the register is then increased by 16 following each DMA access.
P
page[16:0]
F
offset[11:0]
Write
bits[31:29] unused
bits[28:12] page of next DMA fetch
bits[11:4] offset within page of next DMA fetch
bits[3:0] ignored
Read
bits[31:29] undefined
bits[28:4] current DMA fetch location
bits[3:0] always ‘0’
June 1997
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
99
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.52 SDENDA (0x184) — Sound DMA End A
31
30
29
S
L
X X X X X X X X X X X X X X X X X X
12 11
4
E E E E E E E E
3
0
0 0 0 0
Program this register with the offset within the page of the final qword. Bit 30 should always be programmed to ‘0’, unless the channel is being initialized for a single transfer – when it must be programmed
high.
S
stop bit
L
last bit
E
end[11:0]
Write
bit[31] stop bit:
0
do not stop after reaching End
1
stop after reaching End
bit[30] last bit
0
not last transfer
1
last qword transfer
bits[11:4] last DMA location within page selected
bits[3:0] ignored
Read
bits[31:30, 11:4] value written
bits[3:0] always ‘0’
10.3.53 SDCURB (0x188) — Sound DMA Current B
29 28
31
X
X
X
12 11
P P P P P P P P P P P P P P P P P
4
F F F F F F F F
3
0
0 0 0 0
The B pair of registers for the sound DMA channel are used in exactly the same way as the A pair, to
enable DMA to continue from the page addressed by one set of registers while the other set are being
reprogrammed.
P
page[16:0]
F
offset[11:0]
Write
bits[31:29] unused
bits[28:12] page of next DMA fetch
bits[11:4] offset within page of next DMA fetch
bits[3:0] ignored
Read
bits[31:29] undefined
bits[28:4] current DMA fetch location
bits[3:0] always ‘0’
100
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.54 SDENDB (0x18C) — Sound DMA End B
31
30
29
S
L
X X X X X X X X X X X X X X X X X X
12 11
4
E E E E E E E E
3
0
0 0 0 0
This register is used in the same way as the SDENDA register.
S
stop bit
L
last bit
E
end[11:0]
Write
bit[31] stop bit
0
do not stop after reaching end
1
stop after reaching end
bit[30] last bit
0
not last transfer
1
last qword transfer
bits[11:4] last DMA location within page selected
bits[3:0] ignored
Read
June 1997
bits[31:30, 11:4] value written
bits[3:0] always ‘0’
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
101
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.55 SDCR (0x190) — Sound DMA Control
7
6
5
4
3
2
1
0
C 0 E 1 0 0 0 0
This register controls the sound DMA channel and its state machine. Only two bits can be written to:
¥
bit 7 clears the state machine into a state where it has overrun and is requesting an interrupt.
¥
bit 6 enables the sound DMA channel.
C
clear
E
enable
Write
bit[7] clear
0
do not clear state machine
1
clear state machine. Self clearing
bit[6] not used
bit[5] enable
0
disabled
1
enabled
bits[4:0] not used
Read
bit[7] always reads ‘0’
bit[6] always reads ‘0’
bit[5] enable
0
disabled
1
enabled
bits[4:0] read as ‘10000’ (binary), indicating a qword transfer
Reset
enable set to ‘0’
10.3.56 SDST (0x194) — Sound DMA Status
7
6
5
4
3
2
1
0
X X X X X O I W
The sound DMA status register shows the status of the state machine that controls sound DMA accesses.
It cannot be written to.
O
overrun
I
interrupt request
W
A or B buffer indication
Write
ignored
Read
bits[7:3] unused
bits[2:0] direct state machine state
Reset
102
set to ‘110’ (binary)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.57 CURSCUR (0x1C0) — Cursor DMA Current
29 28
31
X
X
X
4
C C C C C C C C C C C C C C C C C C C C C C C C C
3
0
0 0 0 0
The cursor current register need not normally be written to as the value in the Init register is transferred
into it during the FLYBACK period. It is then updated automatically in qword increments during DMA.
C
Current fetch location
Write
bits[31:29] unused
bits[28:4] cursor current DMA fetch location
bits[3:0] ignored
Read
bits[31:29] undefined
bits[28:4] cursor current DMA fetch location
bits[3:0] always ‘0’
10.3.58 CURSINIT (0x1C4) — Cursor DMA INIT
29 28
31
X
X
X
4
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
3
0
0 0 0 0
This register is written with the initial location of the cursor data buffer.
I
initial fetch location
Write
bits[31:29] unused
bits[28:4] cursor initial DMA fetch location
bits[3:0] ignored
Read
bit[31:29] undefined
bits[28:4] cursor initial DMA fetch location
bits[3:0] always ‘0’
10.3.59 VIDCURB (0x1C8) — Duplex LCD Video DMA Current B
29 28
31
X
X
X
4
C C C C C C C C C C C C C C C C C C C C C C C C C
3
0
0 0 0 0
The B Video DMA Address registers are for use with dual-panel LCDs. The current registers do not normally need to be programmed as the value in the relevant INIT register is loaded into the current register
during the FLYBACK period. This register gives the current location of the DMA data for the lower panel.
C
current fetch location B
Write
bits[31:29] unused
bits[28:4] video current B DMA fetch location
bits[3:0] ignored
Read
bits[31:29] undefined
bits[28:4] video current B DMA fetch location
bits[3:0] always ‘0’
June 1997
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
103
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.60 VIDCURA (0x1D0) — Video DMA Current A
29 28
31
X
X
X
4
C C C C C C C C C C C C C C C C C C C C C C C C C
C
current fetch location A
Write
bits[31:29] unused
3
0
0 0 0 0
bits[28:4] video current A DMA fetch location
bits[3:0] ignored
Read
bits[31:29] undefined
bits[28:4] video current A DMA fetch location
bits[3:0] always ‘0’
10.3.61 VIDEND (0x1D4) — Video DMA End
31
4
X X X X X X X X
E E E E E E E E E E E E E E E E E E E E E
3
0
0 0 0 0
Load the Video End register with the address of the final qword of the video frame buffer within memory
E
end location
Write
bits[31:24] unused
bits[23:4] video end location
bits[3:0] ignored
Read
bits[31:24] undefined
bits[23:4] video end location
bits[3:0] always ‘0’
10.3.62 VIDSTART (0x1D8) — Video DMA Start
29 28
31
X
X
X
4
S S S S S S S S S S S S S S S S S S S S S S S S S
3
0
0 0 0 0
Load the Video Start register with the location of the first qword at the start of the video frame buffer. All
the DMA control registers can only be loaded with qword-aligned values.
S
start location
Write
bits[31:29] unused
bits[28:4] video DMA start fetch location
bits[3:0] ignored
Read
bit[31:29] undefined
bits[28:4] video DMA start fetch location
bits[3:0] always ‘0’
104
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.63 VIDINITA (0x1DC) — Video DMA INIT A
31
30
X
L
29 28
E
4
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
3
0
0 0 0 0
For normal CRT displays and single-panel LCD data, only the A registers are used. Load the INIT register
with the address within the frame buffer of the first qword to be displayed in the first raster at the top of
the screen. For dual-panel displays, load this register with the address of the first qword in the frame buffer
to be displayed at the top left of the upper panel.
Set the last bit (30) only if the INIT A register is programmed to the same value as the VIDEND register.
Using an INIT register allows hardware scrolling to be implemented by moving the position of the init register within the frame buffer.
I
initial fetch location A
Write
bits[31, 29] unused
bit[30] last bit
0
not last fetch location
1
last fetch location
bits[28:4] video initial A DMA fetch location
bits[3:0] ignored
Read
bit[31] ‘0’
bit[30] last bit
0
not last fetch location
1
last fetch location
bit[29] ‘equal’ – output of comparator
bits[28:4] video initial A DMA fetch location
bits[3:0] always ‘0’
June 1997
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
105
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.64 VIDCR (0x1E0) — Video DMA Control
7
6
5
4
3
2
1
0
D 1 E 1 0 0 0 0
This register allows overall control for video DMA. Bit 7 selects between dual- and single-panel modes for
LCD driving; bit 5 enables video DMA.
NOTE: For driving normal CRT displays, set bit 7 to ‘0’.
D Dual-panel mode
E enable video/cursor DMA
Write
bit[7]
0
1
normal
Dual-panel mode
bit[6] ignored
bit[5]
0
1
disable
enable DMA
bits[4:0] ignored
Read
bits[7, 5] return above values
bit[6] always reads back ‘1’, DRAM mode
bits[4:0] reads as ‘10000’ (binary), indicates qword transfer
Reset
106
set to ‘0’ (disabled, Normal mode)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.65 VIDINITB (0x1E8) — Duplex LCD Video DMA INIT B
31
30
X
L
29 28
E
I
4
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
3
0
0 0 0 0
For normal CRT displays and single-panel LCD data, only the A registers are used. Program this register
with to ‘0’s. For dual-panel displays, load this register with the address of the first qword in the frame buffer
to be displayed at the top left of the lower panel. Set the last bit (30) only if the INIT B register is programmed to the same value as the VIDEND register.
I
initial fetch location B
Write
bits[31,29] unused
bit[30] last bit
0
not last fetch location
1
last fetch location
bits[28:4] video initial B DMA fetch location
bits[3:0] ignored
Read
bit[31] ‘0’
bit[30] last bit
0
not last fetch location
1
last fetch location
bit[29] ‘equal’ – output of comparator
bits[28:4] video initial B DMA fetch location
bits[3:0] always ‘0’
June 1997
ADVANCE DATA BOOK v2.0
MEMORY AND I/O PROGRAMMERS’ MODEL
107
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.66 DMAST/DMARQ/DMAMSK (0x1F0,0x1F4,0x1F8) — DMA Interrupt Control
The following three registers each contain only one bit relating to the status of the interrupt generated from
the sound DMA state machine.
DMAST (0x1F0) -— Sound DMA Interrupt Status
7
6
5
4
3
2
1
0
X X X S X X X X
S
sound interrupt status
Write
ignored
Read
status
bits[7:5, 3:0] unused
bit[4]
0
1
inactive
active
DMARQ (0x1F4) — Sound Interrupt Request
7
6
5
4
3
2
1
0
X X X S X X X X
S
sound interrupt request
Write
ignored
Read
request, status AND’ed with mask
bits[7:5, 3:0] unused
bit[4]
0
1
inactive
active
DMAMSK (0x1F8) — Sound Interrupt Mask
7
6
5
4
3
2
1
0
X X X S X X X X
S
sound interrupt mask
Write
bits[7:5, 3:0] unused
bit[4]
0
1
Read
do not affect nIRQ
affect nIRQ
mask
bits[7:5, 3:0] unused
bit[4] read value written above
108
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
11. I/O SUBSYSTEMS
11.1
Introduction
CL-PS7500FE has a 16-bit-wide general I/O port, BD[15:0]. This allows slow I/O access to continue independently of DMA activity on the CL-PS7500FE data bus. There are three types of I/O access supported
over the I/O bus:
●
16-MHz, PC-style I/O
●
8-MHz request/grant-based I/O
●
simple 8-MHz-based fixed timing I/O
CL-PS7500FE also has a separate 8-bit-wide, general-purpose, open-drain I/O port, each bit of which can
be configured as an interrupt source. There are four analog comparators, each with a 16-bit, 2-MHz timer
that can be a four channel analog joystick interface. Two identical PS/2 serial mouse/keyboard ports are
included. There are two general-purpose, 2-MHz, 16-bit counter timers that can be programmed to produce interrupts at timed intervals.
CL-PS7500FE includes an interrupt handler, with enable and mask bits for each interrupt source that can
process potential interrupts from a number of internal and external sources.
The 16-MHz, PC-style I/O provides all the signals required to interface with a standard PC Combo chip,
enabling an industry standard part to be used to complete the I/O interfaces to devices such as a floppy
disc.
The facility is available to expand the width of the I/O bus externally by adding latches and buffers to the
upper 16 bits of the main external data bus and control signals for these devices are provided from
CL-PS7500FE.
Support is provided for XIP (execute-in-place) from a 16-bit-wide PCMCIA card attached to the I/O bus,
using an external PCMCIA controller.
Because the I/O clocks can be completely asynchronous to the memory system clock (that controls the
main bus arbitration state machine), there are additional synchronization penalties at the start and end of
the I/O cycle. The exact additional delay depends on the actual phase of the clocks at the point in question. The timing diagrams do not attempt to show detail, however, worst-case synchronization delays are
indicated.
11.2
I/O Address Space Usage
The main I/O address space is defined as being from address 0x03000000 to 0x03FFFFFF, as shown in
Table 11-1.
In addition, there is an extended I/O address space for 16-MHz, PC-style I/O from address 0x08000000
up to 0x0FFFFFFF, divided into eight 16-Mbyte areas. The chip select generated throughout this area is
nEASCS.
June 1997
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
109
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 11-1. I/O Address Space Usage
I/O address
Contents
0x03000000
Module space — asserts nMSCS
0x03010000
16-MHz I/O
— asserts nCCS (Combo chip select)
0x03012000
16-MHz I/O
— asserts nCDACK (Combo DACK)
0x0302A000
16-MHz I/O
— asserts nCDACK and TC (Combo DACK and TC)
0x0302B000
16-MHz I/O
— asserts nPCCS2
0x0302B800
16-MHz I/O
— asserts nPCCS1
0x0302C000
Reserved
0x03030000
Module space — asserts nMSCS
0x03040000
Reserved
0x03200000
CL-PS7500FE internal I/O and memory control registers
0x03210000
Simple I/O space — asserts nSIOCS1/2
0x03400000
CL-PS7500FE internal video and sound control registers
0x03500000
Reserved
11.3
Additional I/O Chip Select Decode Logic
The SETCS input selects additional decode logic for some of the chip select outputs.
●
When SETCS is high:
nMSCS
is asserted only in the following ranges of Module I/O space:
0x03000000 -> 0x03003FFF
0x03030000 -> 0x03033FFF
nEASCS
is asserted only in the following range of Extended I/O space:
0x08000000 -> 0x08FFFFFF
nSIOCS2
is asserted only in the following ranges of Simple I/O space:
0x03240000 -> 0x03243FFF
0x032C0000 -> 0x032C3FFF
0x03340000 -> 0x03343FFF
0x033C0000 -> 0x033C3FFF
●
When SETCS is low:
nMSCS
is asserted over the whole of Module space
nEASCS
is asserted over the whole of Extended I/O address space
nSIOCS2
is asserted only in the following ranges of simple I/O space:
0x03240000 -> 0x0324FFFF
0x032C0000 -> 0x032CFFFF
0x03340000 -> 0x0334FFFF
0x033C0000 -> 0x033CFFFF
110
I/O SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
11.4
Simple 8-MHz I/O
The Simple I/O type of access is 16-bit only and has a selection of 4 different cycle speeds selectable by
bits 20 and 19 of the address. This type of I/O is selected for addresses in the range 0x3210000 to
0x32FFFFFF. When writing, the upper halfword of the CL-PS7500FE data bus is written out on the I/O
bus. When reading, the I/O bus data is read back onto the lower halfword of the CL-PS7500FE data bus.
This type of I/O cycle is not affected by the READY signal.
During these accesses, the signal nSIOCS1 is always asserted with a read or write strobe as appropriate
based on the CLK8, 8-MHz clock. nSIOCS2 is asserted according to the decoding in the section above.
The read and write strobes are the nIOR and nIOW output pins respectively. The four timings of the Simple
8-MHz I/O accesses are shown below:
Table 11-2. Timings of the Simple 8-MHz I/O accesses
Address [20:19]
Name
MIN CLK8 Cycles
00
Slow
7
01
Medium
6
10
Fast
5
11
Sync
5
The ‘sync’ timing is referenced to the 2-MHz CLK2 output, and there is an additional possible synchronization penalty of up to three CLK8 cycles, depending on the phase of CLK2 and CLK8 at the commencement of the I/O cycle. This is in addition to synchronization between the I/O and memory subsystem
signals.
11.5
Module I/O
The Module I/O type of access is 16-bit only and its speed is controlled by a handshake mechanism with
the external hardware. The signals nIORQ (output) and nIOGT (input) are used for this handshaking.
When writing, the upper half-word of the CL-PS7500FE data bus is written out on the I/O bus. When reading, the I/O bus data is read back onto the lower half-word of the CL-PS7500FE data bus. The module
type of I/O is initiated for addresses in the ranges 0x03000000 to 0x0300FFFF and 0x03030000 to
0x0303FFFF.
During these accesses, the signal nMSCS is asserted but read and write strobes are not used, although
the IORNW signal is active. READY does not affect this type of access.
The nBLI is driven by the external hardware to indicate when the read or write data should be latched from
the BD I/O bus.
The I/O cycle terminates when both nIORQ and nIOGT are low at the rising edge of REF8M.
11.6
PC Bus-Style I/O
This type of I/O is designed to function in conjunction with a standard PC Combo chip, and cycles are
generated from a 16-MHz clock.
The PC bus-style I/O type of access routes the lower halfword of the CL-PS7500FE bus through the
device providing a direct 16-bit interface. Additionally, signals are generated to support the addition of
June 1997
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
111
CL-PS7500FE
System-on-a-Chip for Internet Appliance
external latches/drivers to extend the I/O data by 16 bits. The upper halfword of the CL-PS7500FE data
bus is routed through these external devices if present. This type of I/O access is used for the address
space from 03010000 to 0302CFFF (five sections), and in the larger extended address space from
0x08000000 to 0x0FFFFFFF (eight sections). There are four fixed cycle types based on the 16-MHz
clock, although the larger extended address area only supports two of these cycle types. Any access may
be held up by external circuitry removing the READY signal before the end of the cycle.
The signals that control the external buffers and latches required to implement 32-bit-wide I/O are:
●
nWBE
●
nRBE
●
nBLO
For full details of the external circuitry and connections required to implement a 32-bit-wide I/O system
using the CL-PS7500FE, refer to Appendix D.
Two additional inputs are provided to allow external circuitry to route a full 32-bit data word through the
16-bit I/O bus using multiplexing:
●
nXIPLATCH
●
nXIPMUX16
This would allow, for example, the execution of ARM code from a 16-bit-wide PCMCIA card with a suitable
external controller. The nXIPMUX16 signal directly controls an internal multiplexer that maps either the
upper or lower 16 bits of the internal data bus through to the 16-bit-wide I/O bus, for writes to an I/O peripheral.
When nXIPMUX16 is low, the upper 16 bits of the data bus are passed to BD[15:0], and when
nXIPMUX16 is high, the lower 16 bits of the data bus are passed to BD[15:0].
For reads from an I/O peripheral, the falling edge of the nXIPLATCH signal causes the first 16 bits provided on the BD[15:0] bus to be latched as the upper halfword for the main internal data bus, then the
lower 16 bits can be output from the peripheral and the I/O cycle can be allowed to complete normally. If
nXIPLATCH has been driven low, the upper halfword of data is driven to the ARM processor internally and
not from the external transceivers if present.
Depending on the cycle timing, it is usually necessary for the external controller to use the READY signal
to stretch the I/O access to give sufficient time for both half words to be read or written as appropriate. If
an I/O access is to be stretched, the READY signal must be set low before the end of the cycle as shown
in the timing diagrams. This causes the nIOR or nIOW strobe and the chip select to be held low until
READY is set back to high, when the I/O cycle complete as normal. READY is sampled on the rising edge
of the first 16-MHz cycle before the I/O cycle is due to complete.
The four address areas for 16-MHz I/O within the main I/O address space can support any of the four
available cycle types A-to-D. The IOTCR register can be programmed (at address 0x032000C4) to determine the type of cycle for each group of addresses. The addresses are grouped so that the nCCS and
pseudo DMA address spaces form one group, and the nPCCS1 and nPCCS2 address area forms another
group.
112
I/O SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7
6
5
4
3
2
1
0
X X X X C C N N
C
N
Write
Read
Reset
nCCS + pseudo DMA access speed
nPCCS1 and nPCCS2 area access speed
bits[7:6] unused
bits[5:4] unused
bits[3:2]
00
Type A (slowest)
01
Type B
10
Type C
11
Type D (fastest)
bits[1:0]
00
Type A (slowest)
01
Type B
10
Type C
11
Type D (fastest)
read back above values
set to ‘0’ (slowest)
The extended address space from address 0x08000000 up for 16-MHz I/O accesses supports only cycle
types A and C, and the ECTCR register should be programmed to specify the cycle type required for each
of the eight 16-Mbyte areas within the extended address space. The details of this register, at address
0x032000C8, are shown below:
7
6
5
4
3
2
1
0
E E E E E E E E
E = expansion card area access speed
Write
bit[7] (0F00 0000..0FFF FFFF)
0
Type A
1
Type C
bit[0] (0800 0000..08FF FFFF)
0
Type A
1
Type C
Read
read back above values
Reset
set to ‘0’ (slowest)
This type of I/O asserts a single chip select according to the area, except in Combo DACK + TC space,
where both the nCDACK and TC outputs are asserted to signal to the PC Combo chip that the end of a
pseudo DMA sequence has been reached. In the extended address space the nEASCS chip select is
asserted.
June 1997
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
113
CL-PS7500FE
System-on-a-Chip for Internet Appliance
11.7
DMA During I/O Cycles
DMA to the Video and Sound Macrocell can continue during I/O cycles. Write data from the ARM processor is latched early, so that the data bus can be used freely for DMA data. Thus, only the start of an I/O
cycle needs to be added to any DMA latency calculations.
11.8
Clock Synchronization Conditions
7
6
5
4
3
2
1
0
A X X X X X X X
In a system using a MEMCLK frequency greater than I_OCLK, it may be necessary to insert an extra I/O
clock cycle to allow sufficient address hold time before the chip select is taken away. The problem arises
because the chip select is generated from the fixed frequency I/O world clock, whereas the address
changes according to the memory system clock. When a faster MEMCLK is used, it is possible for
the synchronization to the memory clock to occur rapidly at the end of the cycle, and thus for the I/O
address to change before the chip select has been removed. This may be a problem for some peripherals.
To avoid this, there is a register bit in the ASTCR register (address 0x032000CC) that is normally set to
‘0’, but can be programmed to ‘1’ to add an extra I/O clock period, ensuring that the address does not
change before the chip select is deasserted.
A
asynchronous timing control
0
minimal delay
1
wait states to ensure address hold time
See Appendix C for more information on the use of this register with high MEMCLK frequencies.
11.9
Keyboard/mouse Interface
7
6
5
4
3
2
1
0
T T R R E P D C
The keyboard and mouse interfaces are identical, differing only in the names of the external pins. The
interfaces are designed to communicate with a standard PS/2 keyboard or mouse, through a 2 pin serial
link.
The keyboard interface uses the pins KBDATA, KBCLK, and the mouse interface uses the pins MSDATA
and MSCLK, all are open-drain.
There is an 8-bit control register for each interface, providing direct access to the CLK and DATA outputs,
an enable bit to enable the interface, and five status flags. The KBDCR is programmed at address
0x03200008, and the MSECR (mouse control register) at address 0x032000AC.
T
R
E
P
D
C
114
I/O SUBSYSTEMS
transmit status
receive status
enable
received parity
data pin status
clock pin status
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Write
Read
bits[7:4, 2] ignored
bit[3] enable
0
state machine cleared
1
state machine enabled
bit[1] force KBDATA/MSDATA pin low
0
do not force low
1
force low
bit[0] force KBCLK/MSCLK pin low
0
do not force low
1
force low
bit[7] TXE, shift register empty
0
not ready
1
enabled and ready to transmit
bit[6] TXB, transmitter busy
0
not busy
1
currently sending data
bit[5] RXF, receive shift register full
0
not full
1
ready to read
bit[4] RXB, receiver busy
0
not busy
1
currently receiving data
bit[3] ENA, state machine enable
0
disabled
1
enabled
bit[2] RXP, receive parity bit, odd parity bit for last received data
bit[1] KBDATA/MSDATA pin value after synchronization
bit[0] KBCLK/MSCLK pin value after synchronization
There is also a data register (KBDAT) used for write bytes to be transmitted across the serial link and to
read bytes received. The KBDAT register is programmed at address 0x03200004, and the MSEDAT
(Mouse Data register) is programmed at address 0x032000A8.
The interfaces generate two interrupts each, one to indicate that the transmit buffer is empty and thus that
another byte can be transmitted, and one to indicate that a byte has been received by the interface. These
interrupt bits are processed by the IRQB register set (for keyboard) and the IRQD register set (for mouse).
The keyboard interface is held in reset until the enable bit in the control register is set. The interface can
be controlled on the basis of the interrupts generated, or by polling the status flags in the control register.
The Tx interrupt is generated when the transmit buffer has been emptied and the interface is ready to be
programmed with another character for transmission. The Rx interrupt is set when a complete character
has been received in the receive buffer, and the byte is ready to be read from the register. The received
data parity bit, RXP, is available in the control register at bit 2. Odd parity is used. The keyboard and
mouse interface state machines are clocked by the 8-MHz I/O system clock.
The KCLK/MSCLK signal is always driven by the keyboard/mouse, unless CL-PS7500FE wishes to prevent the peripheral from transmitting (because it is about to transmit some data itself). When data is
June 1997
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
115
CL-PS7500FE
System-on-a-Chip for Internet Appliance
received from the peripheral, the KDATA/MSDATA line is pulled low as a start bit. Each data bit is set up
to the falling edge of the clock. Eight data bits are transmitted from the keyboard/mouse, followed by a
parity bit (odd parity) and a high stop bit.
When CL-PS7500FE transmits a byte to the peripheral, the KCLK/MSCLK line is pulled low, then allowed
to float and the KDATA/MSDATA line is pulled low, as a request to send. The keyboard/mouse then drives
the clock, causing CL-PS7500FE to put eight bits of serial data out onto the KDATA/MSDATA line. A parity
bit is driven out, followed by a stop bit, and the stop bit may be acknowledged by the peripheral
(the CL-PS7500FE does not check on the acknowledge).
11.10 Analog-to-Digital Converter Interface
CL-PS7500FE contains four analog comparators with 16-bit timers, designed primarily for the implementation of an analog joystick interface. Each converter is of the slope integration type, using an external RC
network attached to the appropriate ATOD[3:0] pin to generate a variable ramp delay.
The time taken for the voltage at the input to the comparator to reach the comparator’s threshold is measured by a 16-bit counter that stopped when the threshold of the comparator is reached. At this point an
internal ‘stop’ flag for that channel is set. The value is held in the counter until it has been read and the
channel is then reset.
Discharge transistors on the analog inputs are used to discharge the external capacitor and to initiate a
new integration cycle.
11.10.1 Counters
Each of the four counters can be reset by programming one of four bits in the ATODCR register. The four
counters cannot be written to but can be read at addresses as follows:
CNT1 (0x032000EC)
counter 1
CNT2 (0x032000F0)
counter 2
CNT3 (0x032000F4)
counter 3
CNT4 (0x032000F8)
counter 4
The four counters are implemented as simple asynchronous ripple counters, and it is therefore important
that they should not be read until the ‘stop’ flag for that particular channel is set, as indicated in the status
register, to indicate that the counter stopped and the read back value is stable.
11.10.2 Interrupt Control
There is a single bit in the main CL-PS7500FE interrupt handling registers (bit 2 of the IRQD set) that can
accept an interrupt from the A-to-D converters. Thus, some interrupt pre-processing is done to determine
how this main interrupt is to be generated. An interrupt control register is provided so that various combinations of channels can generate the final interrupt.
There are four possible interrupt sources, one for each channel, and each channel attempts to generate
an interrupt when the comparator threshold is reached and the ‘stop’ flag is set internally.
Each of these interrupt sources can be individually enabled using the lower four bits of the Interrupt Control register, and the upper four bits determine the combination of bits that create the main interrupt
passed to the IRQD registers.
116
I/O SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Address 0x032000E0 — Interrupt Control
7
6
5
4
3
2
1
0
S F A C 4 3 2 1
1
2
3
4
C
A
F
S
Write
Read
Reset
channel 1 interrupt enable
channel 2 interrupt enable
channel 3 interrupt enable
channel 4 interrupt enable
any combination of channels generates nIRQ
only all channels enabled generates nIRQ
first pair enabled generates nIRQ
second pair enabled generates nIRQ
bit[7:0]
0
disabled
1
enabled
return above values
reset to 0x0F
NOTE: The OR of bit[3:0] powers up all the comparators. Thus they reset to the powered-up state.
11.10.3 Status of Interface
The status of the ‘stop’ flag for each channel can be read directly from bits 0–3 of the status register, as
can the interrupt status that is the logical AND of the ‘stop’ flag values and the corresponding channel
enables from the interrupt control register.
This register should be read by the system software in a polled system to check whether a channel has
reached its final count value and is thus waiting to be read before another conversion cycle can be initiated.
Address 0x032000E4 — Status
7
6
5
4
3
2
1
0
R R R R S S S S
R[3:0]
S[3:0]
Write
Read
Reset
June 1997
interrupt request state for channels 4 to 1
stop flag for channels 4 to 1
ignored
bit[7:4]
0
not requesting
1
requesting
set all zero (not requesting)
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
117
CL-PS7500FE
System-on-a-Chip for Internet Appliance
11.10.4 Control
The converter control register allows the discharge transistors and counters for each channel to be
enabled and disabled, to give full control over the resetting of the counter and the timing of the start of a
conversion cycle. Before a conversion can be started, the discharge bit and the counter clear bit for the
channel in question should be forced one and zero respectively, and then the bits should be returned to
zero and one respectively to actually initiate a conversion cycle. This causes the analog voltage across
the external capacitor to begin to ramp up, and simultaneously the 2-MHz clock to the counters is enabled,
thus starting the count.
Synchronization between the memory system clock used to program the registers, and the 2-MHz I/O
world clock results in a small extra delay before the counter is really enabled, but this is negligible against
the 0.5-µs period of the 2-MHz clock.
Address 0x032000E8 — Converter Control
7
6
5
4
3
2
1
0
D D D D C C C C
D[3:0]
C[3:0]
Write
Read
Reset
discharge transistor control for channels 4–1
clear counter for channels 4–1
bit[7:4]
0
transistor off
1
transistor on (discharge)
bit[3:0]
0
clear counter
1
enable counter
return above values
set all zero (clear counters and don’t discharge)
11.10.5 Comparators
The comparators are accurate to 2.5-mV resolution and require a stable reference voltage of less than
2.5 V to function correctly. The reference voltage is applied at the ATODREF pin. The same reference voltage is routed to all four comparators.
In order for the comparators to function correctly, it is essential that the reference current to the Video
DACs on the VIREF pin is present, as this current is used to generate the operating current used by the
gain stages in the comparator. The comparator reference currents are disabled to save power if all the
interrupt enables (bits 3:0 of the interrupt control register) are set to ‘0’. So, at least one channel must be
enabled for any of the channels to function correctly.
11.10.6 Converter Operation
The values of the capacitance and variable resistance used in the external RC circuit determine the range
of time delays seen from the moment the capacitor begins to charge to the moment that the comparator
threshold is crossed.
The 16-bit counters are clocked by the 2-MHz internal clock (derived from the 32-MHz I_OCLK), and thus
the counter counts for 65536 values over 32.7 ms before returning to zero. To provide a meaningful reading from the converter, it is important that the capacitor and variable resistor values are such that this time
118
I/O SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
is not exceeded under the worst case conditions. The A-to-D converter is effectively providing a digital
count directly related to the value of the resistance in the RC circuit.
11.11 Timers
The CL-PS7500FE includes two general-purpose timers used as interrupt sources. Each timer is implemented as a 16-bit down counter, and has an input latch and an output latch associated with it. The
counter decrements continuously, clocked at 2 MHz. When it reaches zero, it is reloaded from the input
latch and the down count restarts.
There are four 8-bit-wide registers associated with the two timers. Each timer has:
●
two eight bit registers corresponding to the 16-bits of the timer
●
two further write-only registers that cause the GO and LATCH commands to be issued to the appropriate
timer when written to
Figure 11-1 shows the timer configuration.
LATCH LOW
LATCH HIGH
CONTROL
LOGIC
2 MHZ
16-BIT COUNTER
GO
COUNT HIGH
COUNT LOW
LATCH
DATA[7:0]
Figure 11-1. Timer Configuration
June 1997
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
119
CL-PS7500FE
System-on-a-Chip for Internet Appliance
11.11.1 Programming the Timers
The locations of the registers can be found in Chapter 10.
A write to the following registers updates the values as described below:
T0low
updates the value in the lower half of the timer 0 input latch
T0high
updates the value in the upper half of the timer 0 input latch with the
written value.
T0GO
loads the counters immediately with the value programmed into the
input latch. If the counter is loaded with ‘0’ it is continuously reload.
T0LAT
places the current count value in the output latch.
A read of the following registers updates the values as described below:
T0high
returns the upper 8 bits of the count value
T0low
returns the lower 8 bits of the count value.
11.11.2 Timer interrupts
Each timer generates an interrupt when it reaches zero and is reloaded. These interrupts are handled by
the IRQA set of interrupt processing registers (bits 5 and 6).
The timers can be used to generate timed interrupts at regular intervals, T, where:
T = (T0low + (256 × T0high)) × 0.5 µs
Equation 11-1
11.12 General-Purpose, 8-Bit-Wide I/O Port
A general-purpose 8-bit-wide I/O port is included in the CL-PS7500FE. The eight open drain output pins
IOP[7:0] can be driven low or monitored as inputs by using the IOLINES register at address 0x0320000C.
When read, this register returns the current value seen at the IOP[7:0] pins. When written to, each bit controls the status of the corresponding IOP pin. When a one is written to a bit, that pin's output enable is
switched off and it can be driven as an input. When a ‘0’ is written to a bit, the corresponding output pin
is forced low.
There is a complete set of three interrupt control and status registers (IRQD) for the IOP pins that allow
any bit to generate a unique interrupt. The interrupt is generated when the corresponding IOP bit is low.
120
I/O SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
11.13 ID and OD Open-Drain I/O Pins
There are three further open-drain I/O pins:
ID
OD[1:0]
Intended for use with an ID chip that outputs a unique system ID when the ID
pin is forced low. During power-on reset, the ID output is forced low, and it then
becomes tristate on leaving reset.
Could implement a simple serial link.
These are written to through the IOCR and are not capable of generating interrupts. Each pin is forced
low by programming ‘0’ to the appropriate bit in the IOCR. Programming ‘1’ to any bit causes the corresponding pin to tristate, and the value of the input level applied to the pin can then be read back from the
same bit of the IOCR.
NOTE: These three pins do not have pull-up resistors on-chip; be advised that to fit pull-up resistors externally if the
pins are not connected to another device.
11.14 Version and ID Registers
The ID register is composed of two read-only, 8-bit hardwired registers. The lower byte is accessed at
location 0x03200094, and the upper byte at location 0x03200098. Together they should return the value
0xAA7C.
The Version register is accessed at location 0x0320009C, and this is read back the version number of
the device.
NOTE: Under no condition should either of these registers be written; this can cause the chip to enter a test mode.
11.15 Interrupt Control
The CL-PS7500FE interrupt handler takes interrupts from a variety of sources and generates the IRQ or
FIQ interrupt signals required by the ARM processor, depending on the settings of the control and enable
bits in the five sets of interrupt registers. The five sets are:
●
FIQ
●
IRQA
●
IRQB
●
IRQC
●
IRQD
Each of these has a status, mask and request register associated with it, for a total of 15 registers.
Table 11-3 shows the interrupt sources featuring in each set of registers. The polarity entry refers to the
level required at the external pin to set the interrupt. ‘Internal’ means that the interrupt is generated as a
result of an internal state change, as opposed to change on an external pin.
When an interrupt signal is received from one of the interrupt sources, it causes the corresponding bit in
the status register to go high. This bit is then logically AND’ed with the appropriate bit in the mask register,
to create a value in the appropriate bit of the request register. If any of the bits in any of the IRQ request
registers are high, then the CL-PS7500FE generates an internal IRQ interrupt to the ARM processor macrocell, causing the IRQ exception to be taken. If any of the bits in the FIQ request register are high, the
CL-PS7500FE generates an internal FIQ interrupt to the ARM processor, causing the FIQ exception to
be taken.
June 1997
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
121
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The system software can then read the request registers to determine the sources that requested an interrupt. Reading the status registers indicate the sources that requested interrupts, even if they were
masked.
The IRQA request register is slightly different in that some of the interrupt flags are edge triggered and
thus need to be cleared after they are read. All other request registers are read-only, but the IRQRQA
register can be written to clear triggered interrupts. A write of ‘1’ to a bit clears that interrupt. A write of ‘0’
causes no action to be taken.
Table 11-3. Interrupts
Register
FIQ
Bit
Polarity/Type
7
Name/Function
Always active for software generated FIQ
6
Low
nINT8 interrupt pin
Low
nINT6 interrupt pin
1
High
INT5 interrupt pin
0
High
INT9 interrupt pin
5
4
3
2
IRQA
7
Always active for software generated IRQ
6
Internal
2-MHz timer 1
5
Internal
2-MHz timer 0
4
Falling edge
3
Internal
2
Falling edge
nINT1 interrupt pin
0
Rising edge
INT2 interrupt pin
7
Internal
Keyboard Rx buffer full
6
Internal
Keyboard Tx buffer empty
5
Low
nINT3 interrupt pin
4
Low
nINT4 interrupt pin
3
High
INT5 interrupt pin
2
Low
nINT6 interrupt pin
1
High
INT7 interrupt pin
0
Low
nINT8 interrupt pin
7
Low
IOP[7] interrupt pin
6
Low
IOP[6] interrupt pin
5
Low
IOP[5] interrupt pin
4
Low
IOP[4] interrupt pin
nPOR power on reset
Flyback from video subsystem
1
IRQB
IRQC
122
I/O SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 11-3. Interrupts (cont.)
Register
IRQD
Bit
Polarity/Type
Name/Function
3
Low
IOP[3] interrupt pin
2
Low
IOP[2] interrupt pin
1
Low
IOP[1] interrupt pin
0
Low
IOP[0] interrupt pin
4
Low
nEVENT2 wake-up event
3
Low
nEVENT1 wake-up event
2
Internal
A-to-D convertor interrupt
1
Internal
Mouse Tx buffer empty
0
Internal
Mouse Rx buffer full
7
6
5
June 1997
ADVANCE DATA BOOK v2.0
I/O SUBSYSTEMS
123
CL-PS7500FE
System-on-a-Chip for Internet Appliance
12. VIDEO FEATURES
This section discusses the video and sound macrocell video functionality including clocks, palette, cursor,
synchronization, display support, and DACs.
12.1 Pixel Clock
The video and sound macrocell is capable of generating a display at any pixel rate up to 120 MHz. The
pixel clock may be selected from one of three sources, and the frequency of this clock may be further
divided down by a factor of between 1 and 8. These attributes are programmed by the lower 5 bits of the
control register, CONREG.
If a maximum of three master frequencies are sufficient, then the clock inputs can be used directly. However, it is often a requirement to have many different master clock frequencies. In order to obviate the need
for many crystals on the PCB, the video and sound macrocell is designed to drive a voltage controlled
oscillator (VCO) to provide the master frequency. The VCO and filter are external to CL-PS7500FE, but
everything else is built into the chip. Operation is described below:
An internal reference frequency of 32 MHz is supplied via the I_OCLK input of CL-PS7500FE. The signal
from the VCO is input into CL-PS7500FE on the pin VCLKI. VCLKO is simply the inverse of VCLKI, and
this may be used to bias the input signal about the threshold if the VCO output is not a full amplitude signal. To achieve operation at 120 MHz, the mark-space ratio of the VCO output should be as close as possible to 50-50.
The reference clock is divided by a programmable number set by the r-modulus in the fsynreg. The VCO
clock is divided by a programmable number set by the v-modulus in the fsynreg. Each of the moduli can
be a 6-bit number. The output of each of these dividers is routed into a phase comparator, and the result
is output from CL-PS7500FE as PCOMP. This pin should then be filtered and used to control the VCO
output frequency. In this way, the VCO can be set to have a frequency of v/r × Fref.
The phase comparator is of the phase-frequency type. The output PCOMP is normally tristate, but when
the VCO frequency needs to decrease, the output is low and when the VCO frequency needs to increase,
the output is high. When the two frequencies are in lock, PCOMP is be tristate, but is driven to the midpoint
for a very short time (a few ns) every r/Fref + period. The output impedance of this pin when it is driven,
is approximately 50 Ω (see Figure 12-1).
Filter and VCO selection is left to the user. It is important to avoid any low-frequency modulation of the
VCO frequency. A suitable VCO is a 74AC04-inverter element with feedback, with the supply voltage controlled by the PCOMP output (see Appendix E).
With this approach, an enormous number of frequencies are possible. The 32-MHz reference frequency
generated within CL-PS7500FE can be used to yield the common VCO frequencies shown in Table 12-1.
There are many possible values of r and v. Select a set of values that favors filter response.
NOTE: Large moduli yield a lower comparison frequency.
Limit the VCO range and use the prescaler within the video and sound macrocell to obtain a lower pixel
rate than the VCO frequency. The VCO range may require constrainment so much that it cannot provide
the highest frequencies for operation of the video and sound macrocell. For this scenario, a single highfrequency clock can be fed into CL-PS7500FE on the HCLK pin and selected for the pixel clock.
124
VIDEO FEATURES
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 12-1. Synthesized VCO Frequency Settings
r-Modulus
v-Modulus
VCO Frequency
(MHz)
8
2
8.0
16
6
12.0
4
2
16.0
8
6
24.0
2
2
32.0
8
9
36.0
16
35
70.0
4
15
120.0
CONREG[1:0]
HCLK
VCLKIN
VCLKOUT
/v
PIXCLK
PCOMP
RCLK
/n
/r
CONREG[4:2]
Figure 12-1. CL-PS7500FE Internal Subsystems for Pixel Clock Generation
June 1997
ADVANCE DATA BOOK v2.0
VIDEO FEATURES
125
CL-PS7500FE
System-on-a-Chip for Internet Appliance
12.2 Palette
The CL-PS7500FE has a 28-bit-wide, 256-entry palette constructed out of three 8-bit-wide LUTs, each
has 256 entries, named Red, Green, and Blue and one 4-bit-wide LUT with 16 entries, named Ext. The
Red, Green, and Blue LUTs each drive their respective DACs. The Ext LUT is normally configured to drive
the ED[3:0] output port, except when HiRes mode or LCD mode is selected. These bits may be used outside the chip for a variety of purposes such as supremacy, fading, HiRes, and LCD driving. The ED[7:4]
output port is normally driven from the External register – EREG[7:4] – that can be written at any time.
These bits can be used as a DC control port.
The mapping of the logical colors through the LUTs is dependent on the mode in use, as follows:
●
In 1-, 2-, 4-bits/pixel modes, the logical data is fed simultaneously to all four LUTs. This allows a completely
flexible palette with any logical color mapped to any physical color and any ED[3:0] value. The palette gives
16 colors from a selection of 224.
●
In 8-bits/pixel modes, the logical data is fed simultaneously to all 4 LUTs. This allows a completely flexible
palette with any logical color being mapped to any physical color. Logical colors 0–15 access the Next LUT;
logical colors 16–255 access location 0 of the Ext LUT. The Ext LUT again drives ED[3:0]. The palette gives
256 colors from a selection of 224.
●
In 16-bpp mode, a patented technique has been developed. This approach is highly flexible and allows many
different addressing modes (for example, 5:5:5, 5:6:5, and so on). In this mode, 216 colors are available from
a selection of 224.
●
In 32-bpp mode, 24 bits from the logical field drive the 256 entries in each of the color LUTs (8 bits to each
LUT); 4 bits drive the Ext LUT; the upper 4 bits are discarded.The palette gives the full range of 224 colors.
NOTE: Where a logical field does not drive all the palette entries (for example, in 4-bpp mode), only the lower portion of the palette is used. Unused sections need not be programmed.
When HiRes or LCD mode is selected, the palette must be set up in a predetermined configuration. This
is explained in Section 12.4 and Section 12.5.
12.2.1 Palette Updating
The FLYBK signal is an output in the CL-PS7500FE from the video and sound macrocell. FLYBK goes
high at the start of the first raster that is not displayed, and goes low at the start of the first raster that is
displayed. The rising edge of this signal can cause an interrupt through the CL-PS7500FE IRQA interrupt
registers and the palette is updated at this time for flicker-free updating.
12.3 Cursor
The CL-PS7500FE has a hardware cursor 32-pixels wide and N pixels high. The 2-bpp allow four colors,
including ‘transparent’, plus three other colors from a selection of 224. The cursor is displayable in the horizontal border, but not in the vertical border.
The cursor is a 28-bit-wide, three-entry palette, allowing each cursor logical color to be any physical color.
There is also a 28-bit-wide border color register.
At the start of every frame, 16 bytes of cursor data transfer to the video subsystem during the horizontal
retrace period. This is enough data for two rasters worth of cursor. After they are displayed, a request is
made for another 16 bytes. In Normal mode, requests are made on every other raster where there is a
cursor and enough data transfers for two rasters each. In HiRes mode, a request is made every raster.
NOTE: The cursor data always transfers in 4-word bursts.
126
VIDEO FEATURES
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
12.3.1 Cursor in HiRes Mode
To allow µ-pixel resolution of the cursor in HiRes mode when operating at 4-µ-pixels-per-normal-pixel,
define 2-bits-per-µ-pixel or 8-bits-per-normal-pixel. The 16 bytes of cursor data available for each raster
can then generate 64 µ-pixels of cursor. In HiRes mode the cursor palette is not used (though the border
may be programmed). Refer to Section 12.4 for more details on HiRes support.
The cursor is always positioned to align with a normal pixel. To position the cursor to a µ-pixel horizontally,
four different copies of the cursor are required: each copy defines the cursor offset by a single µ-pixel. It
is possible to define transparency to a resolution of a µ-pixel; selecting the correct cursor image, can
achieve the required position.
12.3.2 Cursor in LCD Mode
The video subsystem is capable of displaying the hardware cursor in LCD mode. However, because of
the split-screen nature of duplex LCDs, the cursor requires special attention. If the cursor is entirely in the
upper or lower half-screen, program the cursor normally, but program VCSR[14:13] as:
●
0x10 = upper half-screen
●
0x01 = lower half-screen)
If the cursor straddles the split screen, the cursor image in memory must start at the top of the lower halfscreen and end with the bottom of the upper half-screen. In this way, two contiguous images of the cursor
image are required and the start pointer moves accordingly. Four images of the cursor are required to
ensure that the resolution of one raster is maintained across the boundary. As the cursor moves from one
panel to the other, the pointer to the cursor image in memory must move. For more details, refer to
Appendix B.
When the cursor straddles the split screen, the meaning of the VCSR and VCER change. The VCER now
defines the start of cursor in the upper half-screen; the VCSR defines the end of the cursor in the lower
half-screen. The cursor actually displays in the lower half-screen from the start of display until VCSR, then
again in the upper half-screen from VCER until the end of display. This mode is selected by programming
VCSR[14:13] = 0x11. For more discussion on how to use CL-PS7500FE with dual-panel LCD screens,
refer to Appendix B.
12.4 HiRes Support
The CL-PS7500FE can support color screens with resolutions above 1024 × 768 pixels. For higher resolutions, externally serializing the data is required to produce monochrome (or gray-level) pictures. In this
scheme, one 16-ns pixel could theoretically be serialized to make eight 2-ns pixels (that is, approximately
500 MHz). This is dependent on the availability of external hardware capable of generating a serial bitstream at this frequency.
12.4.1 CL-PS7500FE Support for HiRes Mode
When the hrm bit (EREG[14]) is set and EREG[1:0] is set to the value ‘0x10’, the CL-PS7500FE outputs
8 bits of data for every normal pixel on the ED[7:0] port. These bits can then be serialized to form a highfrequency, monochrome pixel stream; alternatively they can be serialized to 2 or 4 bits able to drive a highspeed, monochrome DAC for gray-level displays. With the pixel clock running at a fundamental frequency
of approximately 100 MHz, the external serial clock can run at up to several hundred MHz. For the external
circuit to be able to synchronize to the CL-PS7500FE output data, the CL-PS7500FE also outputs a pixel
clock synchronous to the data stream when EREG[14] is set.
June 1997
ADVANCE DATA BOOK v2.0
VIDEO FEATURES
127
CL-PS7500FE
System-on-a-Chip for Internet Appliance
In this mode, with EREG[1:0] set to ‘0x10’, the video data is driven from the Blue LUT, then outputting data
BPD[7:0]. Depending on how the external serializer circuit is arranged, the LUT must be set up to give a
one-one correlation between the logical address and the physical data value. For example, if 4 bits are
externally serialized into a single bitstream, then select 4-bpp mode and use ED[6, 4, 2, 0]. Program the
lower 16 words of the Blue LUT to give all 16 combinations of BPD[6, 4, 2, 0]. If 8 bits are externally serialized to give a single bitstream, then select 8-bpp mode and program all 256 values of the Blue LUT as
a one–one mapping.
Hardware cursor support is:
●
The cursor palette is not used, although the Blue border may be programmed.
●
Eight bits of cursor data (CD[7:0]) are defined for each normal pixel. The 8 bits are divided into 4 pairs, with
the LSB of each pair defining whether the video data (BPD) or the MSB of the cursor pair is displayed.
●
Each cursor bit-pair operates on 2 bits of the BPD, according to Table 12-2 through Table 12-5.
If the external circuit serializes ED[6, 4, 2, 0] into a single bitstream or ED[7:0] into a 2-bit data stream,
the cursor can be positioned and defined to any µ-pixel: in each case the cursor can be transparent, black,
or white. If all 8 bits are serialized into a single very high-frequency bitstream, the cursor can only be positioned and defined to units of 2 µ-pixels.
Table 12-2. Deriving High-Speed 2-bit Cursor Data from the Normal 8-bit Output — CD[7:6]
CD[7]
CD[6]
ED[7]
ED[6]
0
0
BPD[7]
BPD[6]
0
1
0
0
1
0
BPD[7]
BPD[6]
1
1
1
1
Table 12-3. Deriving High-Speed 2-bit Cursor Data from the Normal 8-bit Output — CD[5:4]
CD[5]
CD[4]
ED[5]
ED[4]
0
0
BPD[5]
BPD[4]
0
1
0
0
1
0
BPD[5]
BPD[4]
1
1
1
1
Table 12-4. Deriving High-Speed 2-bit Cursor Data from the Normal 8-bit Output — CD[3:2]
CD[3]
CD[2]
ED[3]
ED[2]
0
0
BPD[3]
BPD[2]
0
1
0
0
1
0
BPD[3]
BPD[2]
1
1
1
1
128
VIDEO FEATURES
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 12-5. Deriving High-Speed 2-bit Cursor Data from the Normal 8-bit Output — CD[1:0]
CD[1]
CD[0]
ED[1]
ED[0]
0
0
BPD[1]
BPD[0]
0
1
0
0
1
0
BPD[1]
BPD[0]
1
1
1
1
12.5 Liquid Crystal Displays
The CL-PS7500FE can drive single-panel LCDs at 1-, 2-, 4-, 8-, 16-, or 32-bpp and dual-panel LCDs at
1-, 2-, or 4-bpp. Grayscaling is provided at up to 16 shades. The CL-PS7500FE can also drive singlepanel color LCDs with no grayscaling in the Normal (video) mode. Two bits control LCD operation:
●
lcd (EREG[13]): configures the external data port ED[7:0] for LCD operation and enables the grayscaling
logic (EREG[1:0] must be set to ‘0x01’)
●
dup (CONREG[13]): enables Duplex mode and should be set for dual-panel LCDs.
12.5.1 LCD Grayscaling
To obtain a grayscaled output from the CL-PS7500FE, EREG[13] must be set. This configures the External port for LCD operation. Disable the DACs to save power since the CL-PS7500FE cannot simultaneously drive both CRT and LCD displays. To obtain this data out of the ED[7:0] port, EREG[1:0] must be
set to value ‘0x01’.
The CL-PS7500FE provides a grayscaling algorithm that modulates the data output. Grayscaling is possible at 1-, 2-, or 4-bpp. The data is output from the device as one or two 4-bit quantities, depending on
whether single- or dual-panel LCDs are used, at one quarter the pixel rate. The lower 4 bits of the Green
LUT control the upper panel (ED[7:4]) and the 4 bits of the Ext LUT control the lower panel (ED[3:0]). The
palette can still provide a mapping of logical-to-physical color. The cursor palette is similar, though the programming of the cursor position needs special treatment (refer to Appendix B). If a single-panel LCD is
used, use ED[7:4] and program the Green LUT accordingly (ED[3:0] held low in this mode). The grayscaling logic lies between the output of the video MUX and the external port and works as described below.
There are effectively 16 physical gray levels available and, in 1-, 2-, or 4-bpp mode, the palettes are programmed to give a mapping of the logical color-to-physical shade. The resultant 4-bit pixel value out of
the video MUX is modulated according to its value, the raster number, and the point on the raster where
it is generated. The result is a single bit that is, on average, high for a time equal to the actual 4-bit value.
For a single-panel screen, four of these bits are collected together and output as a nibble at one quarter
the pixel rate on ED[7:4]. ED[4] represents the fourth pixel; and ED[7] represents the first pixel.
If Duplex mode is selected, the pixel stream for the upper half-screen is obtained from the Green LUT;
that for the lower half-screen is obtained from the Ext LUT. Both pixel streams are simultaneously passed
through the grayscale logic and output as two nibbles on ED[7:4] (upper half-screen) and ED[3:0] (lower
half-screen).
12.5.2 Dual-Panel LCDs (Duplex Mode)
Duplex mode is configured by setting CONREg[13] and EREG[13]. The screen parameters are set
according to the requirements of the LCD panel.
June 1997
ADVANCE DATA BOOK v2.0
VIDEO FEATURES
129
CL-PS7500FE
System-on-a-Chip for Internet Appliance
NOTE: Since the upper and lower panels are simultaneously driven, the CL-PS7500FE only produces data for half
the total number of lines on the dual panel. The vertical registers must be programmed as if there were only
one panel.
The CL-PS7500FE requests data in two qword units. The first qword the memory controller delivers is for
the upper half-screen; the second qword is for the lower half-screen. The ARM processor then serializes
the data into two simultaneous bitstreams, as previously described. One-, 2-, or 4-bpp can be selected.
For details of the CL-PS7500FE register programming requirements for duplex DMA, see Chapter 10.
12.5.3 Single-Panel Color LCDs
If neither CONREG[13] nor EREG[13] are set, then the ED[7:0] port can be used to gain access to all of
the physical bits out of the video MUX. This allows many other types of display to be driven.
12.6 External Support
The CL-PS7500FE has an 8-bit output port, ED[7:0], and a synchronous clock, ECLK, that have different
functions in different modes. The port is controlled by EREG[1:0] in the control register, that select the
bytes from the video MUX. Additionally, an CL-PS7500FE register bit (bit 1 of the VIDMUX register — see
Section 10.3.28 on page 91) can cause the data selection for the ED port to be modified according to the
state of the ECLK output. This feature is intended to increase the bandwidth for driving color LCD screens.
When this control bit is set low, the behavior of the ED port is as shown below. The bit is intended to be
used with EREG[13] set low. When the VIDMUX bit is high and EREG[1:0] is set low:
●
if ECLK is also low – the Red LUT is output on ED[7:0]
●
if ECLK is high – the Green LUT is output on ED[7:0]
EREG[1:0] = 0
The Red LUT is output on ED[7:0].
EREG[1:0] = 1
If EREG[13] = 0, the Green LUT is output on ED[7:0].
If EREG[13] = 1, the grayscaled LCD signals are output. ED[7:4] carries the data for the upper halfscreen from the Green LUT, and ED[3:0] carries the data for the lower half-screen from the Ext LUT.
NOTE: Since the data output actually represents 4 pixels for each half-screen, if EREG[13] = 1, data is output at
one quarter of the ARM processor pixel rate.
When EREG[1:0] = 2
if EREG[14] = 0, the Blue LUT is output on ED[7:0].
If EREG[14] = 1, the multiplexed Blue LUT and HiRes cursor data is output on ED[7:0]. See
Section 12.4. Also ED[7:0] is re-timed and delayed by one extra pixel.
When EREG[1:0] = 3
If EREG[12] = 0, ED[3:0] are driven by the Ext LUT and ED[7:4] are driven by the value of
EREG[7:4]. This is intended as a DC control port in this mode.
If EREG[12] = 1, ED[3:0] are delayed by one pixel, so that they are exported from the CL-PS7500FE
in the same pixel as the corresponding analog data. In this configuration, ED[3:0] bits can be used
for supremacy to overlay pictures on a pixel-by-pixel basis. Because several bits are output, analog
fading and mixing on a pixel basis is also possible.
130
VIDEO FEATURES
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
12.6.1 ECLK
ECLK is output along with the data ED[7:0], so that the data can be externally latched and MUX’ed. ECLK
is controlled by EREG[13] and EREG[2]. If EREG[2] is ‘0’, then ECLK is output as logic 0. This is the
power-saving configuration whenever ECLK is not required. If EREG[2] is ‘1’ and EREG[13] is ‘0’, ECLK
is the PIXCLK output synchronously with the data stream. If EREG[13] is ‘1’, then ECLK is the LCD clock
that runs at one quarter the pixel rate. The LCD clock is only enabled while horizontal display data is being
output and is synchronous to the data stream.
12.6.2 Power Saving Considerations
The External port can be configured to minimize power usage. It is very important not to load the signals
heavily, especially ECLK that can clock at the pixel rate. When it is not in use, ECLK should not output the
raw pixel data, but should output static signals. This is done by selecting EREG[1:0] = 3 and setting all
entries of the Ext LUT to be one value. Turn off ECLK by setting EREG[2] to ‘0’.
If an LCD is fitted, but not operated, it may be necessary to power down the input signals to it. This can
be achieved by setting EREG[13] low, disabling the grayscaler, and by disabling the external port as
described above.
12.6.3 Vertical and Horizontal Synchronization
Software control over the polarities of the synchronization pulses is provided. Two types of composite sync
signals can be output, each of either polarity. The logical OR of the horizontal and vertical syncs can be
output on the HSYNC pin; the XOR of can be output on the VSYNC pin. Equalization pulses in the composite synchronization signal are supported for Interlace mode. When LCD mode is selected, the external
HSYNC and VSYNC pulses are modified to the requirements of an LCD screen.
The HSYNC and VSYNC pins are programmed with EREG[19:16].
12.6.4 GENLOCK
GENLOCK is supported by the CL-PS7500FE. The SYNC pin can reset the vertical counter to the first
raster (SYNC).
12.7 Analog Outputs
The CL-PS7500FE outputs analog R, G, and B signals. It is designed to drive doubly-terminated, 75-Ω
lines directly.
12.7.1 DAC Control
There are four control bits in the Ext register associated with the DACs. These are EREG[12] and
EREG[10:8] (pedon[2:0]).
Power-Save Mode
When EREG[12] is high, the DACs are enabled and generate a current proportional to the digital values
from the video MUX. When EREG[12] is low, the reference current into all three DACs is turned off, so the
DACs generate no output current, consuming much less power. This is useful when operating in LCD
mode or at any time the screen should be blanked.
June 1997
ADVANCE DATA BOOK v2.0
VIDEO FEATURES
131
CL-PS7500FE
System-on-a-Chip for Internet Appliance
12.7.2 Pedestal Current
The DACs can be programmed to generate a pedestal offset of 20 LSB-equivalent currents. These are
controlled individually with pedon[2:0] (EREG[10:8]), though they are typically programmed on or off
together, depending on the monitor characteristics: pedon[0] controls the red pedestal; pedon[1] the
green pedestal; pedon[2] the blue pedestal. If pedon[n] is high, the pedestal current switches on as the
border starts and turns off as the border ends.
12.7.3 Video DAC Currents
The DACs are each 8-bit resolution and source 256 units of current according to the digital value from the
video MUX. The current step is set by a common reference current, VIREF. The recommended reference
current is 0.56 mA. This allows a DAC step of 69 µA. The digital value 0 gives 0 current and the digital
value ‘0xFF’ gives an output current of 255 × 69 = 17.6 mA. If EREG[10:8] is set during display time, the
digital value 0 generates 20 × 69 = 1.38 mA, and the digital value ‘0xFF’ generates 275 × 69 = 18.98 mA.
A 4.3-kΩ resistor connected between VIREF and VDD provides the desired 0.56 mA at 2.6 V.
DAC Accuracy
At 120 MHz, the DACs are accurate to 8-bits absolute resolution. They are always monotonic.
12.7.4 Monochrome Output
The CL-PS7500FE does not generate a separate composite monochrome signal. If required, this can be
generated by resistively mixing the R, G, and B externally.
132
VIDEO FEATURES
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
13. SOUND FEATURES
13.1 Sound
The video and sound macrocell has a digital sound system. This is a 32-bit serial sound interface suitable
for driving external CD DACs.
13.2 The Sound FIFO
At the core of the sound system is a 4-word FIFO and a byte-wide latch. When empty, the FIFO fills completely by a DMA request. Data is then clocked out of the FIFO, one byte at a time, through the latch.
13.3 The Digital Serial Sound Interface
The serial sound interface offers a high quality 32-bit stereo sound, needing only a small amount of external circuitry. The serial sound system consists of a three-pin serial interface:
●
SDCLK is the Serial Data Clock output
●
SDO is the Serial Data output
●
WS is the Word Select output
When no sound is required (SCTL[2:1] = 0), these outputs are stable (SDCLK = 0, SDO = 0, WS = 1).
In this mode, bytes from the sound FIFO are output in most-significant-first order. This is because the
serial sound output must be MSB-first to be compatible with other serial sound devices. Each byte of data
is loaded into a parallel-in, serial-out register and clocked out under control of the bit clock.
13.3.1 Timing Formats
There are two timing formats available for the interface:
●
Normal
●
Japanese
This selection is controlled by bit 0 of the VIDMUX register in the main part of the CL-PS7500FE.
Normal Format
When configured for Normal mode (VIDMUX bit 0 = low), each 32-bit sample consists of 16 bits for the
left-hand channel and 16 bits for the right-hand channel. To distinguish between them, a WS signal is produced. This signal changes when the LSB of the previous word is output. When WS is high, the right-hand
channel is being output.
Japanese Format
In Japanese format, the WS signal changes when the MSB of the new word is output. In addition, the
polarity of WS is reversed.
The serial sound output can be used with any DAC with a serial sound input. Many DACs require a
11.2896-MHz input clock and, to reduce the required number of on-board crystals, the video and sound
macrocell can cope with this frequency on the SCLK input. When using this configuration, the following
parameters must be programmed in the registers:
June 1997
ADVANCE DATA BOOK v2.0
SOUND FEATURES
133
CL-PS7500FE
System-on-a-Chip for Internet Appliance
●
Serial sound (SCTL[1]) = 1
●
clksel (SCTL[0]) = 1
●
Sound Frequency register = 2
The sound system is not limited to operating with this frequency. However, the Sound Frequency register
must be set accordingly to produce the necessary bit rate.
134
SOUND FEATURES
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
14. VIDEO AND SOUND MACROCELL
The CL-PS7500FE single-chip computer contains a high-performance video and sound controller, capable of meeting the requirements of a wide range of configurations.
The video and sound macrocell handles all the video processing aspects of the CL-PS7500FE functionality, making the CL-PS7500FE suitable for incorporation into a wide range of end products ranging from
portable hand-held LCD systems through to higher performance Super VGA desktop products.
The flexible bus interface provides hardware support for interfacing to DRAM memory systems in conjunction with the CL-PS7500FE memory controller. The video and sound macrocell obtains data from external
DRAM under DMA control. The macrocell also incorporates a stereo digital sound system, with a serial
sound output port suitable for connection to an external CD DAC.
These features include:
●
VGA, Super VGA, XGA resolution
●
Three 8-bit DACs giving 16M colors
●
Direct driving of LCD or CRT screens
●
1-, 2-, 4-, 8-, 16-, 32-bpp modes
●
Up to 120-MHz pixel rate
●
Very low power consumption
14.1 Features
14.1.1 Flexible Video System
The video and sound macrocell contains 288 write-only registers that offer a high degree of flexibility to
the system programmer. Two hundred fifty-six of these registers are used as the 28-bit video palette
entries. These registers are programmed through an auto-incrementing address pointer. The remaining
registers are specific control registers and allow the user to program display parameters.
14.1.2 Hardware Cursor
The video and sound macrocell has a hardware cursor for all display modes:
●
Normal
●
HiRes
●
LCD
By offering cursor support on chip, the designer benefits in speed and lower software overhead. The cursor is 32-pixels wide and any number of pixels high, and can be displayed in four colors, including transparent from its own 28-bit-wide palette. A cursor of any shape and size can be defined within the
32-pixel-wide limit.
14.1.3 Palette
The video subsystem has a 28-bit-wide, 256-entry palette where each entry uses 8 bits for Red, Green
and Blue and 4 bits for external data. These external bits can be used outside the device for a variety of
purposes (such as supremacy, fading, HiRes, and LCD driving).
June 1997
ADVANCE DATA BOOK v2.0
VIDEO AND SOUND MACROCELL
135
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The LUTs allow for logical-to-physical translation and gamma correction. The Red, Green, and Blue LUTs
each drive respective DACs and the Ext LUT is normally configured to drive the 4-bit output port.
There are three 8-bit, linear monotonic DACs (Red, Green, and Blue), giving a total of 16 M possible colors. The DACs are designed to operate up to 120 MHz and directly drive doubly-terminated, 75-Ω lines.
14.1.4 Pixel Clock
The CL-PS7500FE is capable of generating a display at any pixel rate up to 120 MHz. The pixel clock can
be selected from one of three sources, then the selected frequency of this clock can be further divided by
a factor between 1 and 8.
The video and sound macrocell contains an on-chip phase comparator that, when used in conjunction
with an external VCO, forms a PLL. This configuration allows a single reference clock to generate all
required frequencies for any display mode, obviating the need for multiple external crystals.
14.1.5 Display Modes
Irrespective of the memory configuration used, the video subsystem is capable of many different display
formats. In addition to the normal linear CRT display, the video subsystem can generate a display suitable
for either very high resolution displays, single or dual-panel LCDs.
For CRT displays, the video and sound macrocell is capable of operating in a variety of pixel modes: 1-,
2-, 4-, 8-, 16-, 32-bpp, and can also directly drive LCD displays in 1-, 2-, or 4-bpp through a patented,
internal, 16-level gray scalar algorithm.
14.1.6 Power Management
The macrocell is designed for power-sensitive applications and incorporates design features to minimize
power consumption. Power-down mode allows power savings when the device is not in use (for example,
in conjunction with a battery powered LCD system). Additional power-sensitive features include the powering down of functions currently not in use by the device (such as, the video DACs and the LCD gray
scalar). The palette design is segmented so that only one-eighth of the palette is enabled and clocked at
any one time. Power down mode can be used in conjunction with the STOP mode of the CL-PS7500FE
to ensure minimum power consumption when clocks are stopped.
14.1.7 On-chip Sound System
The CL-PS7500FE supports a 32-bit serial sound output suitable for driving external CD DACs. Enhanced
32-bit stereo sound is offered by the serial sound output, consisting of a three-pin serial interface. Each
32-bit sample consists of 16 bits for the left channel and 16 bits for the right channel.
136
VIDEO AND SOUND MACROCELL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
HS
DIN[31:0]
BUS
INTERFACE
HORIZONTAL
VERTICAL
TIMING
TIMING
CHAIN
CHAIN
VS
32
32
32
DIGITAL
32
SOUND CONTROL
SOUND FIFO
SOUND
OUTPUT
VIDEO PALETTE
256 × 32
8
RED
4
VIDEO
VIDEO
FIFO
SERIALIZER
32 × 32
GREEN
1, 2,
4, 8,
16, 32
BLUE
8
8
8
EXT
8
R
RED
G
GREEN
B
BLUE
8
VIDEO
32
8
MUX
CURSOR PALETTE
8
4 × 32
CURSOR
CURSOR
FIFO
SERIALIZER
4 × 32
2
ED[7:0]
RED
EXT
GREEN
CONTROL
BLUE
LCD
EXT
CONTROL
32
8
REGISTER
CONTROL
CLOCK GENERATOR
Figure 14-1. Video and Sound Macrocell Block Diagram
June 1997
ADVANCE DATA BOOK v2.0
VIDEO AND SOUND MACROCELL
137
CL-PS7500FE
System-on-a-Chip for Internet Appliance
15. VIDEO MACROCELL INTERFACE
15.1 Bus Interface
The video macrocell does not use the ARM address bus. The address for programming video and sound
registers (0x03400000 to 0x034FFFFF) is decoded elsewhere in CL-PS7500FE and the internal nPROG
signal is generated as a general register write strobe. The specific register to be programmed is selected
according to the state of the upper bits of the 32-bit input data bus.
All video and sound data is then obtained by DMA under the control of the nVIDRQ internal request signal.
This signals to the main CL-PS7500FE bus arbitration logic that a DMA request is pending, and the
request will be serviced at the first available opportunity. All DMA is qword, so four complete data words
will be read from memory and stored in the appropriate video, cursor, or sound FIFO for each DMA burst.
Note that video DMA may be read from memory in bursts of more than 4 words allowing almost continuous DRAM page mode access to occur.
The system software should create a video frame buffer in DRAM memory, and program the DMA address
pointers to the start, end, and desired initial location within the buffer. All DMA pointer addresses should
be qword aligned. Once the display is enabled, the video registers should only be programmed during the
FLYBACK period to ensure flicker free updating of the screen. See Chapter 10 for details of how to program the DMA controller.
15.2 Setting the FIFO Preload Value
The video FIFO is a 32-entry, 32-bit-wide FIFO. Words of video data are clocked into the top of the FIFO
under control of the internal CL-PS7500FE signals, BUSCLK and nVIDAK. Words are clocked out of the
bottom of the FIFO as the video system displays the data, controlled by the pixel clock.
The FIFO is flushed during vertical flyback time, so before the start of the frame the FIFO is empty. At the
start of the frame a video request is made to the memory subsystem by asserting the internal
CL-PS7500FE signal, nVIDRQ. When a predetermined number of words have been loaded into the FIFO
the request is removed. As the data in the FIFO is displayed, further video requests are made to refill the
FIFO to the desired level.
The Control register (CONREG) includes a 3-bit field (CONREG[10:8]) to set the preload value of the
video FIFO. In this way the FIFO can be programmed to load 4, 8, 12, 16, 20, 24, or 28 words of data into
the FIFO at the start of a frame. After the start of a frame, the FIFO will request more data when the number of words it contains falls below the preloaded value.
The point where the FIFO requests more data to be loaded is dependent upon system considerations:
●
If the FIFO is reloaded too late, there is a danger that it will run out of data (underflow)
●
If the FIFO is reloaded too early, then there is a danger that the data will not fit into the FIFO (overflow)
In general, the higher the bandwidth of the screen, the more words required to preload into the FIFO. In
a low bandwidth screen mode, it is not always desirable to have a large preload value, as the bus traffic
has long bursts of data transferred at the start of the frame.
The optimum value to preload depends upon the screen mode in use (that is, the rate the data is read
from the FIFO), and both the latency of the memory controller and the rate that data is provided to the
CL-PS7500FE. It is generally prudent to program the minimum value possible to keep the bus traffic even.
138
VIDEO MACROCELL INTERFACE
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
For Equation 15-1, let:
n is the value programmed into the control register
v (words/µs) is the rate the video data is displayed
Lmax (µs) is the maximum latency in the memory system (this is the maximum time between the CL-PS7500FE requesting
more video data and the memory system delivering the first word of that data)
If the FIFO is almost empty, it takes 0.025 µs for a word of data to reach the bottom of the FIFO before it
can be used. The minimum value for n is deduced from the following condition to avoid the FIFO underflowing: There are four n words in the FIFO when the FIFO requests more data and, if not refilled, the
FIFO is empty in 4n/v µs. Therefore, n must be set as in Equation 15-1.
4n/v > (Lmax + 0.025)
Equation 15-1
The maximum value for n is deduced from the following condition to avoid the FIFO overflowing: n can
have a maximum value of 7 and the FIFO can never overflow as there are always 4 words available in the
top of the FIFO, even if the video request is serviced immediately.
15.2.1 Example
For the CL-PS7500FE, the value of v (words/µs) changes depending on the video mode and the pixel
clock rate selected. In the worst-case DMA latency, Lmax alters depending on if ROM, DRAM accesses,
or internal programming bursts are slowest, and the MEMCLK frequency used.
Chapter 9 discusses how to calculate worst-case DMA latencies for a particular system using the
CL-PS7500FE. The value calculated should be imported as Lmax into Equation 15-2.
Assume an 8-bpp mode with a pixel clock rate of 60 MHz (period = 16.7 ns). In each pixel clock tick, 1/4
of a word is used – in a whole µs, 0.25 × 1 ÷ 0.0167 = 14.9 words are required.
Hence the value of n must be:
4n/v > (Lmax + 0.025)
Equation 15-2
So, assuming an Lmax value of 1.0 µs:
n > 3.74 × (1.0 + 0.025) ≥ n > 3.83
Equation 15-3
So in this case the minimum value for n to prevent FIFO underflow is four.
June 1997
ADVANCE DATA BOOK v2.0
VIDEO MACROCELL INTERFACE
139
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16. THE VIDEO SOUND AND PROGRAMMER’S MODEL
16.1
The Video and Sound Macrocell Registers
The video and sound macrocell contains 296 write-only registers. These are split into 2 categories: the
256 28-bit video palette entries, and the remaining control registers. The video palette entries are written
through an auto-incrementing address pointer. All the other registers (including the 28-bit cursor palette)
are written directly with the address encoded in the top 4 or 8 bits of the data word. To program the registers, set the CL-PS7500FE address bus to between 0x03400000 and 0x034FFFFF and the data word
written should include the individual register address in the upper 4 or 8 bits, as appropriate.
To define the display format correctly, eleven registers must be programmed as shown in Figure 16-1.
VCR
VBSR
VDSR
VCSR
VBER
VDER
VCER
BORDER
DISPLAY
CURSOR
VSWR
HSYNC
HCR
HBSR
HSWR
HBER
HDSR
HDER
HCSR
HORIZONTAL BACK PORCH
HORIZONTAL FRONT PORCH
Figure 16-1. The Video and Sound Macrocell Display Format Definitions
140
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The register allocation is shown in Table 16-1. An ‘x’ denotes the actual data field, and any unused bit
should be programmed with a logic zero.
NOTE: Do not access any register at any location other than that shown as the actual register map is multiplemapped.
Table 16-1. The Video and Sound Macrocell Register Allocation
Address
(Hex)
Register Name
Page
Address
(Hex)
Register Name
0xxxxxxx
Video Palette
142
8C00xxxx
Test
147
100000xx
Video Palette Address
142
9000xxxx
Vertical Cycle
147
20000000
Reserved
9100xxxx
Vertical Sync Width
148
300000xx
LCD Offset 0
143
9200xxxx
Vertical Border Start
148
310000xx
LCD Offset 1
143
9300xxxx
Vertical Display Start
148
4xxxxxxx
Border Color
144
9400xxxx
Vertical Display End
149
5xxxxxxx
Cursor Palette Logical Color 1
144
9500xxxx
Vertical Border End
149
6xxxxxxx
Cursor Palette Logical Color 2
144
9600xxxx
Vertical Cursor Start
149
7xxxxxxx
Cursor Palette Logical Color 3
144
9700xxxx
Vertical Cursor End
150
8000xxxx
Horizontal Cycle
145
9800xxxx
Test
150
8100xxxx
Horizontal Sync Width
145
9A00xxxx
Test
150
8200xxxx
Horizontal Border Start
145
9C00xxxx
Test
150
8300xxxx
Horizontal Display Start
146
B00000x
Sound Frequency
154
8400xxxx
Horizontal Display End
146
B10000x
Sound Control
155
8500xxxx
Horizontal Border End
146
C00xxxxx
External
151
8600xxxx
Horizontal Cursor Start
147
D000xxxx
Frequency Synthesis
152
8700xxxx
Reserved
147
E00xxxxx
Control
153
8800xxxx
Test
147
F000xxxx
Data Control
154
Page
The External, Control, Sound Control, and Data Control registers all contain bits that are not initialized at
power up. These registers must be programmed before the video and sound macrocell can operate properly.
June 1997
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
141
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.2
Video Palette: Address 0x0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
0 0 0 0
E E E E
B B B B B B B B
9
8
7
G G G G G G G G
6
5
4
3
2
1
0
R R R R R R R R
Red physical color
Green physical color
Blue physical color
Ext physical color
All entries of the video palette are written at address 0. To write any or all of the palette locations, the
address pointer must first be written, as described below. The palette is programmed with a 28-bit word
representing the physical data field.
16.3
Video Palette Address Pointer: Address 0x1
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
0 0 0 1
7
6
5
4
3
2
1
0
X X X X X X X X
Palette location
The address pointer is programmed at address 1, and it can be programmed to any value from 0 to 255.
The first write to the palette then occurs at this location, and the address pointer post-increments so that
the next palette write occurs to the following location. The counter wraps around from 255 to 0.
Once the address pointer is written, any number of palette locations can be programmed, and the pointer
can be reprogrammed at any time if only part of the whole palette is to be updated.
142
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.4
LCD Offset Registers: Addresses 0x30 and 0x31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
0 0 1 1
9
8
0 0 0 0
7
6
5
4
3
2
1
0
0 0 0 0
X X X
X
7
3
0
test bit (must be zero)
msel[2:0] (test bits – must be zero)
Off_5
Off_2
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
0 0 1 1
0 0 0 1
9
8
6
5
4
2
1
X X X X X X X X
Off_15
Off_9
These two 8-bit registers define the offsets required for driving a dual panel LCD screen. Register 0
defines the offsets for the five and two frame duty cycle gray scales, as well as reset and test mode bits.
Register 1 defines the offsets for the nine- and fifteen-frame, duty-cycle grayscales.
The registers values are dependent upon the size of the LCD screen to be driven, and are calculated as
shown in Equation 16-1.
Off_15 = (3xL + 8) mod 15
Off_9 = (7xL + 4) mod 9
Off_5 = (1xL + 3) mod 5
Off_2 = 0
Equation 16-1
where,
L is the number of lines in the upper panel of the dual-panel LCD screen.
Bits 7:4 of register 0 are only used in test mode, and must all be set to ‘0’ in normal operation.
msel[2:0] are test bits and must be programmed low.
June 1997
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
143
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.5
Border Color Register: Address 0x4
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
0 1 0 0
E E E E
B B B B B B B B
9
8
7
G G G G G G G G
6
5
4
3
2
1
0
R R R R R R R R
Red physical color
Green physical color
Blue physical color
Ext physical color
This register defines the physical border color, and is programmed with a 28-bit word. Note that this register is programmed directly, independent of the value of the video palette address pointer.
16.6
Cursor Palette: Addresses 0x5–0x7
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
0 1 X X
E E E E
B B B B B B B B
9
8
G G G G G G G G
7
6
5
4
3
2
1
0
R R R R R R R R
Red physical color
Green physical color
Blue physical color
Ext physical color
Logical color
These three registers are programmed with the physical color of the three logical cursor colors. Note that
cursor logical color 00 is defined as being transparent (that is, no cursor display), and its location is used
for the Border Color register above.
144
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.7
Horizontal Cycle Register (HCR): Address 0x80
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 0
0 0 0 0
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X 0 0
HCR value
This register defines the period, in pixels, of the horizontal scan that is, display time + retrace time. This
is a 14-bit register of which the bottom 2 bits must be programmed to ‘0’. If N pixels are required in the
horizontal scan period, then value (N − 8) should be programmed into the HCR (N must be a multiple of 4).
16.8
Horizontal Sync Width Register (HSWR): Address 0x81
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 0
0 0 0 1
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X 0
HSWR value
This register defines the period, in pixels, of the HSYNC pulse. This is a 14-bit register of which the bottom
bit must be programmed to ‘0’. If N pixels are required in the HSYNC pulse, then value (N − 8) should be
programmed into the HSWR (N must be a multiple of 2).
16.9
Horizontal Border Start Register (HBSR): Address 0x82
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 0
0 0 1 0
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X 0
HBSR value
This register defines the time, in pixels, from the start of the HSYNC pulse to the start of the border display.
This is a 14-bit register of which the bottom bit must be programmed to ‘0’. If N pixels are required in this
time, then program the value (N − 12) into the HBSR (N must be a multiple of 2).
NOTE: This register must always be programmed, even when a border is not required. If a border is not required,
then the value in the HBSR must be set to start the border in the same place as the display starts (that is,
NHBSR = NHDSR).
June 1997
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
145
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.10 Horizontal Display Start Register (HDSR): Address 0x83
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 0
0 0 1 1
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X 0
HDSR value
This register defines the time, in pixels, from the start of the HSYNC pulse to the start of the video display.
This is a 14-bit register of which the bottom bit must be programmed to ‘0’. If N pixels are required in this
time, then program the value (N − 18) into the HBSR (N must be a multiple of 2).
16.11 Horizontal Display End Register (HDER): Address 0x84
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 0
0 1 0 0
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X 0
HDER value
This register defines the time, in pixels, from the start of the HSYNC pulse to the end of the video display
(that is, the first pixel that is not display). This is a 14-bit register of which the bottom bit must be programmed to 0. If N pixels are required in this time, then program the value (N − 18) into the HBER (N must
be a multiple of 2).
16.12 Horizontal Border End Register (HBER): Address 0x85
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 0
0 1 0 1
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X 0
HBER value
This register defines the time, in pixels, from the start of the HSYNC pulse to the end of the border display
(that is, the first pixel that is not border). This is a 14-bit register of which the bottom bit must be programmed to ‘0’. If N pixels are required in this time, then program the value (N − 12) into the HBER (N
must be a multiple of 2.) Again, if no border is required, this register must still be programmed so that N
HBER = NHDER.
146
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.13 Horizontal Cursor Start Register (HCSR): Address 0x86
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 0
0 1 1 0
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
HCSR value
This register defines the time, in pixels, from the start of the HSYNC pulse to the start of the cursor display.
This is a 14-bit register where all bits can be programmed. If N pixels are required in this time, then program the value (N − 17) into the HCSR. The cursor can thus be programmed to start on any pixel. In HiRes
mode, the cursor can still only be programmed to start on a normal pixel boundary. However, because the
resolution of the cursor can be defined to a µ-pixel, by using different cursor images it is possible to position the cursor to any µ-pixel.
NOTE: Only the cursor start position needs to be defined, as the cursor is automatically disabled after 32 pixels in
normal mode or 16 pixels in HiRes mode. If a smaller cursor is required, program the remaining bits in the
cursor pattern to logical color ‘00’ (transparent).
16.14 Horizontal Interlace Register (HIR): Address 0x87
Address 87H is reserved. Do not program this register.
16.15 Horizontal Test Registers: Addresses 0x88 and 0x8H
These two registers are provided for test purposes only. Neither of these registers are intended for use
during normal operation.
16.16 Vertical Cycle Register (VCR): Address 0x90
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 0 0 0
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VCR value
This 13-bit register defines the period, in units of a raster, of the ver tical scan (that is,
display time + FLYBACK time). If N rasters are required in a complete frame, then value (N − 2) should be
programmed into the VCR. If an interlaced display is selected, (N − 3) ÷ 2 must be programmed into the
VCR (N must be odd.) Here N is still the number of rasters in a complete frame, not a field.
June 1997
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
147
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.17 Vertical Sync Width Register (VSWR): Address 0x91
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 0 0 1
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VSWR value
This 13-bit register defines the width, in units of a raster, of the VSYNC pulse. If N rasters are required in
the VSYNC pulse, then program the value (N − 2) into the VSWR. The minimum value allowed for N is 2.
16.18 Vertical Border Start Register (VBSR): Address 0x92
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 0 1 0
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VBSR value
This 13-bit register defines the time, in units of a raster, from the start of the VSYNC pulse to the start of
the border display. If N rasters are required in this time, then program the value (N − 1) into the VBSR. If
no border is required, this register must still be programmed, in this case to the same value as the VDSR.
16.19 Vertical Display Start Register (VDSR): Address 0x93
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 0 1 1
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VDSR value
This 13-bit register defines the time, in units of a raster, from the start of the VSYNC pulse to the start of
the video display. If N rasters are required in this time, then program the value (N − 1) into the VDSR.
148
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.20 Vertical Display End Register (VDER): Address 0x94
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 1 0 0
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VDER value
This 13-bit register defines the time, in units of a raster, from the start of the VSYNC pulse to the end of
the video display. (that is, the first raster where the display is not present). If N rasters are required in this
time, then program the value (N − 1) into the VDER.
16.21 Vertical Border End Register (VBER): Address 0x95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 1 0 1
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VBER value
This 13-bit register defines the time, in units of a raster, from the start of the VSYNC pulse to the end of
the border display (that is, the first raster where the border is not present). If N rasters are required in this
time, then program the value (N − 1) into the VBER. If no border is required, then this register must be
programmed to the same value as the VDER.
16.22 Vertical Cursor Start Register (VCSR): Address 0x96
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 1 1 0
X X
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VCSR value
00 normal operation
01 upper half-screen only
10 lower half-screen only
11 split screen
This is a 15-bit register. The lower 13 bits define the time, in units of a raster, from the start of the VSYNC
pulse to the start of the cursor display. If N rasters are required in this time, then program the value (N −
1) into the VCSR. The upper 2 bits control the display of the cursor in duplex LCD mode. Program these
bits to ‘0’ in all other modes.
When the upper 2 bits are programmed to ‘11’ (split screen) the meaning of VCSR and VCER are altered
as follows: The cursor is displayed in the lower half-screen only from the value of VDSR to the value of
VCSR, and again in the upper half-screen only from the value of VCER to the value of VDER. This allows
a cursor to be positioned across the boundary of the upper and lower half-screens of an LCD.
June 1997
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
149
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.23 Vertical Cursor End Register (VCER): Address 0x97
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 0 1
0 1 1 1
9
8
7
6
5
4
3
2
1
0
X X X X X X X X X X X X X
VCER value
This 13-bit register defines the time, in units of a raster, from the start of the VSYNC pulse to the end of
the cursor display (that is, the first raster where the cursor is not present). If N rasters are required in this
time, then program the value (N − 1) into the VCER.
16.24 Vertical Test Registers: Addresses 0x98, 0x9A and 0x9C
These registers are provided for test purposes only. None are intended for use during normal operation.
150
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.25 External Register (EREG): Address 0xC
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 1 0 0
X X X X
X X
X
9
8
7
6
5
4
3
X X X X X X X
2
1
0
X XX
EREG[1:0]
0 ECLK off
1 ECLK on
EREG[7:4]
pedon[2:0]
Red pedestal on
Green pedestal on
Blue pedestal on
0 dac DACs power-down
1 dac DACs on
0 lcd grayscale off
1 lcd grayscale on
0 hrm HiRes mode off
1 hrm HiRes mode on
00 HSYNC
01 nHSYNC
10 CSYNCnor
11 nCSYNCnor
00 VSYNC
01 nVSYNC
10 CSYNCxnor
11 nCSYNCxnor
This register contains the control bits for the external functions of the video and sound macrocell. In particular, it controls the DACs, the configuration of the External port, ED[7:0], and the configuration of the
sync lines. EREG[1:0] are mapped internally to drive esel[1:0] by CL-PS7500FE. EREG[7:4] are exported
from the chip on ED[7:4] if EREG[1:0] = 3. Refer to Chapter 12. The use of EREG[10:8] (pedon[2:0]) and
DAC is defined in Chapter 12. The use of EREG[13] (lcd) and EREG[14] (hrm) are defined in Chapter 12.
CL-PS7500FE can export a variety of sync configurations on the pins HSYNC and VSYNC, as specified
by the bits 16–17 and 18–19, respectively. For further explanation see Chapter 12.
June 1997
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
151
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.26 Frequency Synthesizer Register (FSYNREG): Address 0xD
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 1 0 1
X X
9
X X X X X X
8
7
6
XX
5
4
3
2
1
0
X X X X X X
modulus r
(ref clock)
r test bits
modulus v
(VCO clock)
v test bits
The CL-PS7500FE can drive a VCO to provide a suitable input frequency for the pixel clock derived from
a reference clock. This is achieved by dividing the reference clock by modulus r, and the VCO clock by
modulus v, then comparing the resultant frequencies. Refer to Chapter 12 for a more detailed explanation.
The two moduli, r and v, are each 6-bit values, and are programmed in this register. Each counter has 2
associated test bits that are normally programmed to ‘0’.
Setting bit 6
forces the phase comparator high, which drives PCOMP high.
Setting bit 7
clears the r-modulus counter.
Setting bit 14
forces the phase comparator low, which drives PCOMP low.
Setting bit 15
clears the v-modulus counter.
To reduce power consumption, program this register with large values when the frequency synthesizer is
not in use. In particular, do not set bits 6 and 14 at the same time. To get a modulus of r, program the value
(r − 1) into FSYNREG. Do the same for the v modulus.
152
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.27 Control Register (CONREG): Address 0xE
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 1 1 0
0 0 0 0
X X X
9
8
7
6
5
X X X X X X
4
3
2
1
0
X X X XX
Pixel source 00VCLK
01 HCLK
10 RCLK
Pixel rate
000 CK
001 CK/2
010 CK/3
011 CK/4
100 CK/5
101 CK/6
110 CK/7
111 CK/8
BITS/pixel
000 1
001 2
010 4
011 8
100 16
101 N/S
110 32
111 N/S
000 N/S
001 4
010 8
011 12
100 16
101 20
110 24
111 28
INT (must be set to ‘0’)
DUP
Power down
FIFO loads
Test must be set to ‘0000’
This main control register determines the basic operation of the CL-PS7500FE. The pixel clock source,
the pixel rate, the number of bits/pixel, the control of the video FIFO, and the data format are programmed
in this register. In addition, there is a 4-bit test register that must be programmed to ‘0’ for normal operation.
NOTE: The INT bit must always be set to ‘0’.
The pixel clock (PIXCLK) is selected from one of three sources, corresponding to the respective input
pins, and the selected clock is then fed through a prescalar as defined by the 3 bits CONREG[4:2]. The
output of this prescalar is the actual pixel clock. See Chapter 12 for more details.
The video FIFO can be programmed to have any number of qwords loaded into it at the start of display.
The value chosen should take into account the bandwidth of the display, as well as the latency of the DMA
subsystem. Refer to Chapter 15 before programming these values. When CONREG[13] (DUP) is set, the
display for dual-panel LCDs is configured. This is further described in Chapter 12.
NOTE: After a reset, CONREG must be the first register programmed. CONREG[14] must then be immediately be
programmed low. The test registers bits (19:16) should also be programmed low, as any other setting inhibits
normal operation.
The video macrocell uses dynamic logic structures for maximum performance. When CONREG[14] is set
high, the main video data path is set into a state where it does not consume static current. This must be
done before the CL-PS7500FE is set into STOP mode.
June 1997
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
153
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.28 Data Control Register (DCTL): Address 0xF
The horizontal display width is also defined in this register, and should be programmed to be the number
of words of data in a displayed raster. It must be programmed in most configurations of the device, as it
inhibits a DMA request near the end of a raster, when there are enough words in the video FIFO for that
raster. The request is uninhibited after the HSYNC at the start of the next raster. When driving a dual-panel
LCD screen, this register must be programmed with twice the number of words in a displayed raster.
DCTL[14] (Hdis) must normally be programmed to ‘0’. If DCTL[14] is programmed to one, the inhibition of
DMA requests is disabled.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
1 1 1 1
X X X X X X X X X X
0 0
0 1
X X
8
7
6
5
4
3
2
1
0
HDWR value
SnA — must be synchronous (1)
Hdis
1 disable
0 enable
NOTE: Bits 19:16 must be set to ‘0001’ (binary).
16.29 Sound Frequency Register (SFR): Address 0xB0
This 8-bit register specifies the byte sample rate of the sound data. It is defined in units of 1 µs. See
Chapter 13 for more details.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 1 1
9
8
7
0 0 0 0
6
5
4
3
2
1
0
X X X X X X X X
SFR value
If a sample rate of N µs is required, N − 2 should be programmed into SFR. N can have any value between
3 and 256.
154
THE VIDEO SOUND AND PROGRAMMER’S MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
16.30 Sound Control Register (SCTL): Address 0xB1
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
1 0 1 1
9
8
7
0 0 0 1
6
5
4
3
2
1
0
X X X X
sclr
sdac
dss
clksel
This 4-bit register defines various control bits for the sound system.
June 1997
Bit 3: sclr
This bit must always be programmed low.
Bit 2: sdac
This bit must be written as ‘0’.
Bit 1: dss
This bit selects Serial Sound mode.
Bit 0: clksel
This bit selects the clock used in the sound system. When this bit is
high, the internal CL-PS7500FE 32-MHz I/O reference clock is used;
when low the optional sound clock is used.
ADVANCE DATA BOOK v2.0
THE VIDEO SOUND AND PROGRAMMER’S MODEL
155
CL-PS7500FE
System-on-a-Chip for Internet Appliance
17. FPA COPROCESSOR MACROCELL
The FPA is a floating-point accelerator for the ARM family of CPUs. The FPA is designed to maximize the
performance/power, performance/cost, and performance/die size ratios while still providing a balanced
floating-point versus integer performance for ARM-based systems.
Typical performance, in the range 3–8 Mflops, is expected at a clock frequency of 40 MHz; actual performance is dependent upon:
●
the precision selected
●
the system configuration
●
the degree that the floating-point code is scheduled and otherwise optimized
The FPA in the CL-PS7500FE is an on-chip floating-point coprocessor connected to the ARM processor
core. It is a fully static design and its low power consumption, especially when in Standby mode, makes
it eminently suitable for portable and other power- and cost-sensitive applications. When used in conjunction with its support code, the FPA fully implements the IEEE Standard for binary floating-point arithmetic
(ANSI/IEEE Std. 754-1985).
The design of the FPA is based on an 81-bit internal datapath, with autonomous load/store and arithmetic
units that can operate concurrently. Single, double, and extended precision IEEE formats are all supported. The FPA achieves its high performance while remaining a low-cost and low-power solution, by
employing RISC and other advanced design techniques. It is interfaced to the ARM CPU over a simple,
high-performance coprocessor bus. The ARM instruction pipeline is mirrored on the FPA so that floatingpoint instructions can be executed directly with minimal communication overhead. Pipelining, concurrent
execution units, and speculative execution are all employed to improve performance without having a
great impact on power consumption.
A RISC approach has been taken in selecting between those floating-point instructions that are candidates for implementation in the FPA and those handled by software support. The FPA instruction repertoire includes only the basic operations plus compare, absolute value, round to integral value, and
floating-point to integer and integer to floating-point conversions. In addition, only normalized operands
and zeros are handled in hardware; operations on denormalized numbers, infinities, and NaNs are handled by the support code. Only the inexact exception is dealt with by hardware; all other exceptions cause
the software support code to be called, whether or not the associated trap is enabled. This approach has
helped to minimize the die size while having a negligible effect on performance in most applications.
156
FPA COPROCESSOR MACROCELL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
17.1 FPA Functional Blocks
FPA consists of five main functional blocks described in the following sections.
●
Coprocessor interface
●
Instruction issuer
●
Load-store unit
●
Register bank
●
ALU
17.1.1 Coprocessor Interface
This block is responsible for arbitrating instructions with the CPU and relating to the load-store unit when
to go ahead with data transfers.
Like ARM integer instructions, all ARM floating-point instructions are conditional, obviating the need for
branches for many common constructs. If a failed condition causes an instruction already issued to the
load-store unit or ALU to be skipped, that instruction is cancelled and any results calculated thus far are
discarded.
The same mechanism is used to cancel prefetched instructions if a branch is taken or if the ARM CPU
gets interrupted before an FPA instruction has been arbitrated.
17.1.2 Instruction Issuer
The instruction issuer is responsible for examining the incoming instruction stream and deciding if any
instructions are candidates for issuing to either the load-store unit or the ALU.
Instructions can be selected from the fetch, decode or execute stages of the ARM pipeline follower. Data
anti-dependency hazards (write-after-write and write-after-read) are dealt with by this unit by preventing
issuance until the hazard is cleared.
Instructions are issued strictly in order and only one can be issued per cycle.
17.1.3 Load-Store Unit
The load-store unit does the formatting and conversion necessary when moving data between the 32-bit
ARM data bus and the 81-bit internal register format. It is also responsible for checking all input operands
and flagging any that are not normalized numbers or zero.
Most subsequent operations on flagged data cause the instruction to be passed to software which will
then emulate the instruction. All internal operations are performed to the internal 81-bit format.
17.1.4 Register Bank
The register bank contains eight 81-bit dual read-access, dual write-access registers.
Data dependency hazards (read-after-write) are handled by the register control logic; read requests from
either unit are stalled until the hazard is cleared.
There is also a 33-bit temporary register, used by the FIX, FLT, and compare instructions to transfer intermediate results between the load-store unit and the ALU.
June 1997
ADVANCE DATA BOOK v2.0
FPA COPROCESSOR MACROCELL
157
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The register bank also contains logic for register-forwarding, allowing the result of one calculation to be
used directly as the source for the next.
17.1.5 Arithmetic Unit
The arithmetic unit has a four-stage pipeline (Prepare, Calculate, Align, and Round) and can speculatively
execute instructions up to, but not including, register writeback. Writeback can only occur once the instruction has been arbitrated with the ARM CPU.
An unusual feature of the pipeline is that each of the pipeline stages is offset by one half-cycle from the
previous stage, allowing some instructions to traverse the pipeline in 2 cycles.
The calculate stage includes a 67-bit adder, iterative array multiplier and divide unit. Fast barrel shifters
are used for pre-alignment and post-normalization.
Arithmetic operations are normally performed asynchronously to the ARM instruction stream so that an
instruction is arbitrated with the CPU before the FPA has detected whether an exception will occur. Arithmetic exceptions are therefore normally imprecise. If precise exceptions are required (for example, in
debugging), a mode bit (the SO bit in the FPSR) can be set. This forces arbitration to be delayed until
the arithmetic operation completes, at the expense of a reduction in performance.
158
FPA COPROCESSOR MACROCELL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
DATA BUS
CONTROL SIGNALS
FROM ARM
INSTRUCTION
ISSUER
LOAD-STORE UNIT
COPROCESSOR
INTERFACE
REGISTER BANK
TO/FROM ARM
ADD
MUL
CLOCK SIGNALS
FROM ARM
CLOCK
ARITHMETIC UNIT
DIVIDE
Figure 17-1. FPA Block Diagram
June 1997
ADVANCE DATA BOOK v2.0
FPA COPROCESSOR MACROCELL
159
CL-PS7500FE
System-on-a-Chip for Internet Appliance
18. FLOATING-POINT COPROCESSOR PROGRAMMER’S MODEL
18.1 Overview
The ARM IEEE floating-point system has:
●
8 high-precision floating point registers, F0 to F7
●
a working precision of 80 bits, comprising:
— 64-bit mantissa
— a 15-bit exponent
— a sign bit
18.1.1
Floating-Point Status Register
There is a floating-point status register (FPSR) which, like ARM's PSR, holds all the necessary status and
control information for the floating point system that an application should be able to access. It holds flags
which indicate various error conditions, such as overflow and division by zero. Each flag has a corresponding trap enable bit that can be used to enable or disable a trap associated with the error condition.
Bits in the FPSR allow a client to distinguish different implementations of the floating-point system and to
enable or disable special features of the system.
18.1.2
Floating-Point Control Register
The FPA also contains a floating-point control register (FPCR). This is used to communicate status and
control information between the FPA and the FPA support code.
NOTE: The definition of the FPCR may be different for other implementations of the ARM IEEE floating point system; the FPCR may not even exist in some implementations. Software outside the floating-point system
should therefore not use the FPCR directly.
18.2 Floating-Point Operation
All basic floating-point instructions operate as though the result were computed to infinite precision and
then rounded to the length and in the way specified by the instruction. The rounding is selectable from:
●
Round to nearest
●
Round to +infinity (P)
●
Round to -infinity (M)
●
Round to zero (Z)
The default is round to nearest: as required by the IEEE, this rounds to nearest even for the tie case. If
one of the other rounding modes is required it must be given in the instruction.
The floating-point system architecture is a load/store architecture (like the ARM CPU); the data-processing operations only refer to floating-point registers. Values can be stored into ARM memory in one of five
formats (only four are visible at any one time since P and EP are mutually exclusive):
●
IEEE Single Precision (S)
●
IEEE Double Precision (D)
●
IEEE Double Extended Precision (E)
160
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
●
Packed Decimal (P)
●
Expanded Packed Decimal (EP)
If it is required to preserve register contents exactly (including signalling NaNs), the LFM and SFM instructions should be used. Note however that LFM and SFM should only be used for register preservation
within programs and not for data which is to be transferred between programs and/or systems. The format
of data stored using SFM is implementation-dependent and can generally only be restored by an LFM
instruction from the same implementation.
Floating-point systems may be built from software only, hardware only, or some combination of software
and hardware and the results look the same to the programmer. However, the supervising operating system needs to be aware the implementation in use to extract the best performance.
Similarly, compilers can be tuned to generate bunched FP instructions for the FPE and dispersed FP
instructions for the FPA to improve overall performance. The manner that exceptions are signalled is at
the discretion of the surrounding operating system.
NOTE: In the case of the FPA system, an exception caused by a floating-point data operation or a FLT may be asynchronous (due to the nature of the ARM coprocessor interface.) Such an exception is raised some time after
the instruction has started, by which time the ARM may have executed a number of instructions following
the one that has failed. This means that the exact address of the instruction that caused the exception may
not be identifiable. However, all the information about the exception that the IEEE Standard recommends is
available.
Furthermore, in the FPA a fully synchronous, but slow mode of operation is available that allows the
address of the faulting instruction to be determined; this is described in bit 10 SO – Select Synchronous Operation of FPA on page 9-9.
18.3 ARM Integer and Floating-Point Number Formats
18.3.1
Integer
31
0
MSB
18.3.2
2’s complement
IEEE Single Precision (S)
31
30
sign
23
22
exponent
127
126
18.3.3
LSB
0
MSB
fraction
LSB
Normalized number exponent bias
Denormalized number exponent bias
IEEE Double Precision (D)
31
First
word
sign
30
20
exponent
MSB
0
fraction (ms part)
fraction (ls part)
MSB
1023
1022
June 1997
19
LSB
LSB
Normalized number exponent bias
Denormalized number exponent bias
ADVANCE DATA BOOK v2.0
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
161
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Single and Double Values
Table 18-1. Single and Double Values
Sign
Exponent
Fraction
Value represented
Quiet NaN
x
maximum
1xxxxxxxxx
IEEE Quiet NaN
Signalling NaN
x
maximum
0 non-zero
IEEE Signalling NaN
Infinity
sign
maximum
0000000000
(-1)sign × infinity
Zero
sign
0
0000000000
(-1)sign × 0
Denormalized no
sign
0
non-zero
(-1)sign × 0.fraction × 2-(denorm. bias)
Normalized no.
sign
not 0 and not maximum
xxxxxxxxxx
(-1)sign × 1.fraction × 2(exponent - norm. bias)
18.3.4
IEEE Extended Double Precision (E)
31
30
First
word
sign
Second
word
J
Third
word
MSB
15
zeros
14
0
fraction (ms part)
fraction (ms part)
MSB
fraction (ls part)
J
16383
LSB
LSB
LSB
is the bit to the left of the binary point
normalized and denormalized number exponent bias
Extended Values
Table 18-2. Extended Values
Sign
Exponent
J
Fraction
Value represented
Quiet NaN
x
maximum
x
1xxxxxxxxx
IEEE Quiet NaN
Signalling NaN
x
maximum
x
0 non-zero
IEEE Signalling NaN
Infinity
sign
maximum
0
0000000000
(-1)sign × infinity
Zero
sign
0
0
0000000000
(-1)sign × 0
Denormalized no
sign
0
0
non-zero
(-1)sign × 0.fraction × 2-(denorm.bias)
Normalized no.
sign
not max
1
xxxxxxxxxx
( - 1 )s i g n
norm.bias)
** Illegal value
x
not 0 and not max
0
xxxxxxxxxx
** Illegal value
x
maximum
1
0000000000
× 1 . f ra c t i o n × 2 ( ex p o n e n t -
NOTE: In general, illegal values must not be used, although specific floating-point implementations may use these
bit patterns for internal purposes.
162
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
18.3.5
Packed Decimal (P)
31
0
First
word
sign
Second
word
d15
Third
word
d7
e3
e2
e1
e0
d18
d17
d16
d14
d13
d12
d11
d10
d9
d8
d6
d5
d4
d3
d2
d1
d0
●
the value is ± d × 10^(± e)
●
d18 and e3 are the most significant digits of d and e respectively
●
sign contains both the number's sign (bit 31) and the exponent's sign (bit 30). The other bits (29,28) are 0
●
the value of d is arranged with the decimal point between d18 and d17, and is normalized so that for an ordinary number 1 ≤ d18 ≤ 9
●
the guaranteed ranges for d and e are 17 and 3 digits respectively: e3 and d0, d1 may always be zero in a
particular system.
●
the result is undefined if any of the packed digits is hexadecimal A through F
Packed Decimal Values
Table 18-3. Packed Decimal Values
Sign
(top bit)
Sign
(next bit)
Exponent
Quiet NaN
x
x
FFFF
d18 > 7, rest non-zero
Signalling NaN
x
x
FFFF
d18 < 8, rest non-zero
± Infinity
0,1
x
FFFF
all 0
± Zero
0,1
0
0000
all 0
Number
0,1
0,1
0000-9999
Digit values
1-9.999999999999999999
All other combinations are undefined.
18.3.6
Expanded Packed Decimal (EP)
31
0
First
word
sign
Second
word
d23
Third
word
d15
d7
e6
e5
e4
e3
e12
e1
e0
d22
d21
d20
d19
d18
d17
d16
d14
d13
d12
d11
d10
d9
d8
d6
d5
d4
d3
d2
d1
d0
●
Value is ± d × 10^(± e).
●
d23 and e6 are the most significant digits of d and e respectively.
●
Sign contains both the number's sign (bit 31) and the exponent's sign (bit 30). The other bits (29,28) are 0.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
163
CL-PS7500FE
System-on-a-Chip for Internet Appliance
●
The value of d is arranged with the decimal point between d23 and d22, and is normalized so that for an ordinary number 1 ≤ d23 ≤ 9.
●
The guaranteed ranges for d and e are 21 and 4 digits respectively: e6, e5, e4 and d2, d1, d0 may always be
zero in a particular system.
●
The result is undefined if any of the packed digits is hexadecimal A through F.
Expanded Packed Decimal Values
Table 18-4. Expanded Packed Decimal Values
Sign
(top bit)
Sign
(next bit)
Exponent
Digit values
Quiet NaN
x
x
FFFFFFF
d23 > 7, rest non-zero
Signalling NaN
x
x
FFFFFFF
d23 < 8, rest non-zero
+/- Infinity
0,1
x
FFFFFFF
all 0
+/- Zero
0,1
0
0000000
all 0
Number
0,1
0,1
0-9999999
1-9.99999999999999999999999
All other combinations are undefined.
18.4 The Floating-Point Status Register (FPSR)
The floating-point status register (FPSR) consists of:
●
a system ID byte
●
an exception trap enable byte
●
a system control byte
●
a cumulative exception flags byte
NOTE: The FPSR is not cleared on reset. It is typically cleared by the support code using an appropriate WFS.
18.4.1
System ID Byte
31
24
0
SysId
The 8-bit SysId allows a user or operating system to distinguish which floating-point system is in use. The
top bit (bit 31) is:
set
clear
for HARDWARE (i.e. fast) systems
for SOFTWARE (i.e. slow) systems
NOTE: The SysId is read-only.
164
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
List of System IDs
The following system IDs are defined:
Floating-point Emulator
01 (HEX) (Software only)
FPA System
81 (HEX)
The following system IDs are also defined for backwards compatibility:
00(HEX)
80(HEX)
18.4.2
for pre-FPA software systems
for pre-FPA hardware systems
Exception Trap Enable Byte
31
23
21
20
19
18
17
16
0
Reserved IXE UFEOFEDZE IOE
Each bit of the exception trap enable byte corresponds to one type of floating-point exception. The exception types (IX,UF,OF,DZ,IO) are described below.
A bit in the cumulative exception flags byte is set as a result of executing a floating-point instruction only
if the corresponding bit is not set in the exception trap enable byte; if the corresponding bit in the exception
trap enable byte is set, an exception trap will be taken instead of setting the exception flag. The trap handler code can then set the relevant cumulative exception bit if desired.
Normally, reserved FPSR bits should not be altered by user code. However, they can be initialized to zero.
18.4.3
System Control Byte
15
13
12
11 10
9
8
Reserved AC EP SO NE ND
These control bits determine which features of the floating-point system are in use. Because these control
bits are in the FPSR, their state will be preserved across context switches, allowing different processes
to use different features if necessary. The following five control bits are defined for the FPA system:
Bit 8
Bit 9
June 1997
ND - No Denormalized Numbers Bit
If this bit is set, the software forces all denormalized numbers to zero to reduce
lengthy execution times when dealing with denormalized numbers. (Also
known as abrupt underflow or flush to zero.) This mode is not IEEE-compatible
but may be required by some programs for performance reasons. If this bit is
clear, then denormalized numbers will be handled in the normal IEEEconformant way.
NE - NaN Exception Bit
When this bit is clear, extended format is regarded as an internal format for
conversions of signalling NaNs: only conversions between single and doubleprecision will produce an invalid operation exception because of a signalling
NaN operand. This is required for compatibility with old programs which use
STFE and LDFE to preserve register contents. When the NE bit is set, all
conversions between single, double and extended precision will produce an
invalid operation exception if the operand is a signalling NaN.
ADVANCE DATA BOOK v2.0
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
165
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Bit 10
Bit 11
Bit 12
SO - Select Synchronous Operation of FPA
If this bit is set, all floating-point instructions will execute synchronously and
ARM will be made to busy-wait until the instruction has completed. This will
allow precise exceptions to be reported but at the expense of increased
execution time. If this bit is clear, the class of floating-point instructions that can
execute asynchronously to ARM will do so. Exceptions that occur as a result of
these instructions may then be imprecise.
EP - Use Expanded Packed Decimal Format
If this bit is set, the expanded (four word) format will be used for Packed
Decimal numbers. Use of this expanded format allows conversion from
extended precision to packed decimal and back again to be carried out without
loss of accuracy. If this bit is clear, standard (three word) format is used for
Packed Decimal numbers.
AC - Use Alternative definition for C-flag on compare operations
If this bit is set, the ARM C-flag has the following interpretation after a compare:
C: Greater Than or Equal or Unordered
This interpretation of the C-flag allows more of the IEEE predicates to be
tested by means of single ARM conditional instructions than is possible using
the original interpretation of the C-flag as shown below.
If this bit is clear, the ARM C-flag has the following interpretation after a
compare:
C: Greater Than or Equal
Normally, reserved FPSR bits should not be altered by user code. However, they may be initialized to zero.
18.4.4
Cumulative Exception Flags Byte
31
7
5
4
3
2
1
0
Reserved IXC UFCOFCDZC IOC
Whenever an exception condition arises and the corresponding trap enable bit is not set, the appropriate
cumulative exception flag in bits 0–4 are set to ‘1’. If the relevant trap enable bit is set, an exception is
delivered to the user's program in a manner specific to the operating system.
NOTE: In the case of underflow, the state of the trap enable bit determines under which conditions the underflow
exception will arise.
These flags can only be cleared by a WFS instruction.
Normally, reserved FPSR bits should not be altered by user code. However, they may be initialized to zero.
IO -– Invalid Operation
The invalid operation exception arises when an operand is invalid for the operation to be performed. The
result (if the trap is not enabled) is a quiet NaN.
Invalid operations are:
●
Any operation on a signalling NaN, except an LDF, LFM or SFM, or an MVF, MNF, ABS or STF without change
of precision.
●
Magnitude subtraction of infinities, for example, + infinity + −infinity.
●
Multiplication of 0 by an infinity.
166
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
●
Division of 0/0 or infinity/infinity.
●
x REM y where x is infinity or y is 0.
●
Square root of any number less than zero (but SQT(−0) is −0).
●
Conversion to integer when overflow, infinity or NaN make it impossible. If overflow makes a conversion to
integer impossible, the largest positive or negative integer is produced (depending on the sign of the operand)
and Invalid Operation is signalled.
●
CMFE, CNFE when at least one operand is a NaN.
DZ – Division by Zero
The division-by-zero exception occurs if the divisor is zero and the dividend a finite, non-zero number. A
correctly-signed infinity is returned if the trap is disabled.
OF – Overflow
The OFC flag is set whenever the destination format's largest number is exceeded in magnitude by what
would have been the rounded result if the exponent range were unbounded. The untrapped result
returned is either:
●
the correctly signed infinity
●
the format's largest finite number
depending on the rounding mode.
UF - Underflow
Two correlated events contribute to underflow:
1) Tininess
The creation of a tiny non-zero result smaller in magnitude than the format's smallest normalized number.
2) Loss of accuracy
A loss of accuracy due to denormalization that may be greater than would be caused by rounding alone.
If the underflow trap enable bit is set, the underflow exception occurs when tininess is detected, regardless of loss of accuracy. If the trap is disabled, then tininess and loss of accuracy must both be detected
for the underflow flag to be set (in which case inexact will also be signalled).
IX – Inexact
The inexact exception occurs if:
●
the rounded result of an operation is not exact (different from the value computable with infinite precision)
●
overflow has occurred while the OFE trap was disabled
●
underflow has occurred while the UFE trap was disabled.
OFE or UFE traps take precedence over IXE.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
167
CL-PS7500FE
System-on-a-Chip for Internet Appliance
18.5 The Floating-Point Control Register (FPCR)
The Floating-Point Control register (FPCR) is an implementation-specific register: it may not exist in some
versions of the ARM floating-point system and, when it does exist, it may contain different information for
different versions of the system.
When present, it is used for internal communication within the floating point system and, in particular, to
allow software and hardware components of the system to communicate with each other.
Use of the WFC and RFC instructions outside the floating-point system itself is strongly discouraged. In
the case of User mode programs, it is actually prohibited: the WFC and RFC instructions will trap if executed in User mode.
The FPCR within the CL-PS7500FE has an FPCR. It enables and disables the device and communicates
information about instructions the hardware cannot handle to the support code.
The FPA FPCR bit allocation is as follows:
168
31 30
29
28
27 26
25
24
RU R
R
IE MO EO R
R
23 22
21
OP
31
30
29
28
27
26
25
24
23:20
19, 7
18:16
15
14:12
11
10
9
RU
8
6:5
4
3:0
DA
RM
OP
S2
IE
MO
EO
OP
PR
S1
OP
DS
SB
AB
RE
20
19
PR
18
17
S1
16
15 14
13
OP
DS
12
11 10
9
8
7
SB AB RE DA PR
6
5
RM
4
OP
3
2
1
0
S2
Rounded-up bit
Reserved
Reserved
Inexact bit
Mantissa overflow
Exponent overflow
Reserved
Reserved
AU operation code
AU precision
AU source register 1
AU operation code
AU destination register
Store bounce: decode (R14) to get opcode
Arithmetic bounce: opcode supplied in rest of word
Rounding Exception: Arithmetic bounce occurred during rounding stage
and destination register was written
Disable FPA
AU rounding mode
AU operation code
AU source register 2 (bit 3 set denotes a constant)
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
All defined bits are cleared on reset, except bits 8, 10, and 11 (DA, AB, and SB) which are set.
Apart from by using the WFC instruction, the AB bit can only be set by the arithmetic unit and the SB bit
can only be set by the load-store unit.
Only the arithmetic unit can write bits 31, 28:26, 23:12, 9, 7:0 of the FPCR.
The behavior of the FPCR when the RFC and WFC instructions are executed is as follows:
●
A read of the FPCR by RFC clears the SB, AB and DA bits of the FPCR, and leaves the other bits of the
FPCR unchanged.
●
A write of the FPCR by WFC writes the SB, AB, & DA bits of the FPCR, and leaves the other bits of the FPCR
unchanged.
NOTE: This information about the FPCR in the FPA is only supplied to aid with modifications to the FPA support
code. Using it for any other purpose is likely to lead to compatibility problems and is strongly discouraged.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT COPROCESSOR PROGRAMMER’S
MODEL
169
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19. FLOATING-POINT INSTRUCTION SET
NOTE: Not all of the instructions detailed in this chapter are implemented in hardware on the FPA; the remainder
are supported by software emulation. Details of the generic ARM coprocessor instruction set can be found
in Chapter 4.
19.1 Coprocessor Data Transfer
19.1.1
LDF/STF — Load and Store Floating
31
28
cond
27
24
110P
23 22
21
20
U/D Y Wb L/S
19
16
Rn
15
12
X Fd
11
8
0001
7
0
offset
Load or store the high-precision value from or to memory, using one of the five memory formats.
On store, the value is rounded using the round to nearest rounding method to the destination precision,
or is precise if the destination has sufficient precision. Thus, other rounding methods may be used by having applied a suitable floating-point data operation at some time before the store; this does not compromise the requirement of rounding once only since no additional rounding error is introduced by the store
instruction.
Cond
P
U/D
Y
Wb
L/S
Rn
X
Fd
offset
170
condition field
pre/post-indexing bit:
0
post-indexing
1
pre-indexing
up/down bit
0
down
1
up
transfer length (see below)
write-back bit
load/store bit
0
store to memory
1
load from memory
base register
transfer length (see below)
floating-point register number
unsigned 8-bit immediate offset
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The length field is encoded into bits 22 and 15 as shown in Table 19-1.
Table 19-1. Length Field
Precision
Bit
15
FPSR.EP
Data Format
Size
Note
Single
S
0
0
x
1 memory word
Double
D
0
1
x
2 memory word
Extended
E
1
0
x
3 memory word
Packed decimal
P
1
1
0
3 memory word
a
EP
1
1
1
4 memory word
a
Expanded packed decimal
a
Bit
22
LDFP and STFP are deprecated instructions and are intended for backwards compatibility only.
These functions should be implemented by appropriate calls to a C library.
The offset in bits [7:0] is specified in words and is added to (U/D = 1) or subtracted from (U/D = 0) a base
register (Rn), either before (P = 1) or after (P = 0) the base is used as the transfer address. The modified
base value may be written back into the base register (Wb = 1) or the old value of the base may be preserved (Wb = 0).
NOTE: Post-indexed addressing modes require explicit setting of the Wb bit, unlike LDR and STR that always writeback when post-indexed. The value of the base register, modified by the offset in a pre-indexed instruction,
is used as the address for the transfer of the first word. The second word (if more than one is transferred)
goes to or comes from an address one word (4 bytes) higher than the first transfer, and the address increments by one word for each subsequent transfer.
19.1.2
Assembler Syntax
<LDF|STF>{cond}<S|D|E|P> Fd,[Rn]
[Rn, <#expression>]{!}
[Rn],<#expression>
Pre-indexed Addressing Specification
[Rn]
offset of zero
[Rn, #<expression>]{!}
offset of <expression> bytes
{!}
Write back the base register (set the Wb bit) if ! is
present.
NOTE: If Rn is R15, writeback should not be specified.
Post-indexed Addressing Specification
[Rn],#<expression>
offset of <expression> bytes
NOTE: The assembler automatically sets the Wb bit in this case. R15 should not be used as the base register where
post-indexed addressing is used. The <expression> must be divisible by 4 and be in the range −1020 to
1020.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT INSTRUCTION SET
171
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19.1.3
Load and Store Multiple Floating Instructions
31
28
cond
27
24
110P
23 22
21
20
U/D Y Wb L/S
19
16
Rn
15
12
X Fd
11
8
0010
7
0
offset
The Load/Store Multiple Floating instructions allow between one and four floating-point registers to be
transferred from/to memory in a single operation. These operations allow groups of registers to be saved
and restored efficiently (for example, across context switches).
Cond
P
U/D
Y
Wb
L/S
Rn
X
Fd
Condition field
Pre/post-indexing bit:
0
post-indexing
1
pre-indexing
Up/down bit:
0
down
1
up
Register count (see below)
Write-back bit
Load/store bit
0
store to memory
1
load from memory
Base register
Register count (see below)
Floating-point register number offset – unsigned 8-bit immediate offset
The values are transferred as three words of data for each register (the data format used is not defined
(and may change in future implementations) and the only legal operation that can be performed on this
data is to load it back into the FPA using the same implementation’s LFM instruction. The data stored in
memory by an SFM instruction should not be used or modified by any user process.
NOTE: Coprocessor number 2 (bits 11:8 in the instruction field) rather than the usual FPA coprocessor number of
1 must be used for these instructions.
The offset in bits [7:0] is specified in words and is added to (U/D = 1) or subtracted from (U/D = 0) a base
register (Rn), either before (P = 1) or after (P = 0) the base is used as the transfer address. The modified
base value may be written back into the base register (Wb = 1) or the old value of the base may be preserved (Wb = 0). Note that post-indexed addressing modes require explicit setting of the Wb bit, unlike
LDR and STR that always write-back when post-indexed. The value of the base register, modified by the
offset in a pre-indexed instruction, is used as the address for the transfer of the first word. The second
word goes to or comes from an address one word (4 bytes) higher than the first transfer, and the address
increments by one word for each subsequent transfer.
172
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19.1.4
Assembler Syntax — Form 1
<LFM|SFM>{cond} Fd,<count>,[Rn]
[Rn, #<expression>]{!}
[Rn],#<expression>
The first register to transfer is specified as Fd.
The number of registers to transfer is specified in the <count> field and is encoded in bit 22 and bit 15 as
shown in Table 19-2.
Table 19-2. Count Field
Bit 22
Bit 15
No. of Registers to Transfer
0
1
1
1
0
2
1
1
3
0
0
4
Registers are always transferred in ascending order and wrap around at register F7. For example:
SFM F6,4,[R0]
transfers F6, F7, F0, and F1 to memory starting at the address contained in register R0.
Pre-Indexed Addressing Specification
[Rn]
offset of zero
[Rn, #<expression>]{!}
offset of <expression> bytes
{!}
Write back the base register (set the Wb bit) if ! is
present.
NOTE: If Rn is R15, writeback should not be specified.
Post-Indexed Addressing Specification
[Rn],#<expression>
offset of <expression> bytes
NOTE: The assembler automatically sets the Wb bit in this case. R15 should not be used as the base register where
post-indexed addressing is used.
The <expression> must be divisible by 4 and be in the range −1020 to 1020.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT INSTRUCTION SET
173
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19.1.5
Assembler Syntax — Form 2
<LFM|SFM>{cond}<FD,EA> Fd,<count>,[Rn]{!}
This form of the instruction is intended for stacking type operations on the floating-point registers.
Table 19-3 shows how the assembler mnemonics translate into bits in the instruction.
Table 19-3. Assembler Mnemonics
Name
Stack
L Bit
P Bit
U Bit
Post-increment load
LFMFD
1
0
1
Pre-decrement load
LFMEA
1
1
0
Post-increment store
SFMEA
0
0
1
Pre-decrement store
SFMFD
0
1
0
FD and EA define pre/post indexing and the up/down bit by reference to the form of stack required. The
F and E refer to a full or empty stack (that is, if a pre-index has to be done (full) before storing to the stack).
The A and D refer to whether the stack is ascending or descending. If ascending, an SFM goes up and
LFM down; if descending, vice-versa.
NOTE: Only EA and FD are permitted: the LFM/SFM instructions are not capable of supporting empty descending
or full ascending stacks.
Write back the base register (set the Wb bit) if ! is present.
{!}
If Rn is R15, writeback should not be speciÞed.
19.2 Coprocessor Data Operations
31
28
cond
27
24
1110
23 22
21
abcd
20
19
16
e Fn
15
12
Xj Fd
11
8
0001
7
4
3
j Fd
0
i Fm
where:
abcd
j
ef
gh
i
19.2.1
opcode
dyadic/monadic:
0
dyadic
1
monadic
destination size
rounding mode
constant /Fm
Dyadic Operations
<ADF|SUF|RSF|MUF|OVF|RDF|>{cond}<S|D|E>{P|M|Z} Fd, Fn, <Fm|#value>
<FML|FDV|FRD|RMF>
174
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19.2.2
Monadic Operations
<ABS|URD|NRM|MVF|MNF|SQT|RND>{cond}<S|D|E>{P|M|Z} Fd, Fn, <Fm|#value>
19.2.3
Library Calls
It is recommended that the following floating-point operators are implemented with calls to an appropriate
library (for example, the C library):
●
Power
●
Reverse power
●
Polar angle
●
Logarithm base 10
●
Logarithm base 0
●
Exponent
●
Sine
●
Cosine
●
Tangent
●
Arc sine
●
Arc cosine
●
Arc tangent
19.2.4
Backwards Compatibility
For backwards compatibility with existing floating-point code, the following floating-point mnemonics are
defined in the ARM floating-point instruction set. These opcodes are treated by the FPA as undefined
instructions, and must be handled by support code, less efficient than using library calls.
<POW|RPW|POL>
<LOG|LGN|EXP|SIN|COS|TAN|ASN|ACS|ATN>
abcdj
Mnemonic
Description
Operation
00000
ADF
Add
Fd := Fn + Fm
00010
MUF
Multiply
Fd := Fn × Fm
00100
SUF
Subtract
Fd := Fn − Fm
00110
RSF
Reverse Subtract
Fd := Fm − Fn
01000
DVF
Divide
Fd := Fn ÷ Fm
01010
RDF
Reverse Divide
Fd := Fm ÷ Fn
01100
POW
Power
Fd := Fn raised to the power of Fm
1
01110
RPW
Reverse Power
Fd := Fm raised to the power of Fn
1
10000
RMF
Remainder
Fd := IEEE remainder of Fn / Fm
10010
FML
Fast Multiply
Fd := Fn × Fm
June 1997
ADVANCE DATA BOOK v2.0
Note
FLOATING-POINT INSTRUCTION SET
175
CL-PS7500FE
System-on-a-Chip for Internet Appliance
abcdj
Mnemonic
Description
Operation
10100
FDV
Fast Divide
Fd := Fn ÷ Fm
10110
FRD
Fast Reverse Divide
Fd := Fm ÷ Fn
11000
POL
Polar angle (ArcTan2)
Fd := polar angle of (Fn, Fm)
11010
---
trap: undefined instruction
11100
---
trap: undefined instruction
11110
---
trap: undefined instruction
00001
MVF
Move
Fd := Fm
00011
MNF
Move Negated
Fd := - Fm
00101
ABS
Absolute value
Fd := ABS ( Fm )
00111
RND
Round to integral value
Fd := integer value of Fm
01001
SQT
Square root
Fd := square root of Fm
01011
LOG
Logarithm to base 10
Fd := log10 of Fm
1
01101
LGN
Logarithm to base e
Fd := loge of Fm
1
01111
EXP
Exponent
Fd := e ** Fm
1
10001
SIN
Sine
Fd := sine of Fm
1
10011
COS
Cosine
Fd := cosine of Fm
1
10101
TAN
Tangent
Fd := tangent of Fm
1
10111
ASN
Arc Sine
Fd := arcsine of Fm
1
11001
ACS
Arc Cosine
Fd := arccosine of Fm
1
11011
ATN
Arc Tangent
Fd := arctangent of Fm
1
11101
URD
Unnormalized Round
Fd := integer value of Fm, possibly in
abnormal form
11111
NRM
Normalize
Fd := normalized form of Fm
176
FLOATING-POINT INSTRUCTION SET
Note
ADVANCE DATA BOOK v2.0
1
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
ef
Suffix
Destination Rounding Precision
Note
gh
00
S
IEEE Single precision
2
00
01
D
IEEE Double precision
2
01
P
Round towards Plus Infinity
10
E
IEEE Double Extended precision
2
10
M
Round towards Minus Infinity
11
Z
Round towards Zero
11
trap: undefined instruction
suffix
Rounding Mode
Round to Nearest (default)
NOTES:
1) Deprecated instruction: included for backwards compatibility only.
i Fm
Value Assigned
Note
1000
0.0
3
2) The precision must be specified;
there is no default.
1001
1.0
3
1010
2.0
3
1011
3.0
3
1100
4.0
3
1101
5.0
3
1110
0.5
3
1111
10.0
3
3) These are specified when i = 1.
NOTES:
1) FML, FRD, and FDV are only defined to work with single precision operands. It is not guaranteed that any particular implementation executes the ‘fast’ instructions any quicker than their respective ‘normal’ versions (MUF,
DVF, and RDF).
2) Directed rounding is done only at the last stage of a SIN, COS, and so on; the intermediate calculations to compute the value are done with round-to-nearest using the full working precision.
3) The URD instruction performs the IEEE round-to-integer-value operation, but can leave its result in an abnormal
unnormalized form. The NRM instruction converts this abnormal result into a proper floating-point value.
4) Direct use of the result of a URD instruction by any instruction other than NRM can produce unexpected results
and should therefore not be done. However, there is an exception to this rule, where a URD result may safely
be preserved and restored by STFE/LDFE or SFM/LFM before being processed by NRM. So there is no need,
for instance, to disable interrupts around a URD/NRM instruction sequence.
5) Similarly, the NRM instruction should only be used on an URD result. Again, use of it on other values can produce unexpected results.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT INSTRUCTION SET
177
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19.3 Coprocessor Register Transfer
31
28
27
cond
24
1110
23 22
21
abc
20
19
L/S
FLT{cond}<S|D|E>{P|M|Z}
Fn, Rd
FIX{cond}{P|M|Z}
Rd, Fm
<WFS|RFS|WFC|RFC>{cond}
Rd
16
15
e Fn
12
11
Rd
8
7
0001
4
fgh1
3
0
i Fm
When L/S is:
1
0
the transfer is to an ARM register
the transfer is from an ARM register
abc L/S
Mnemonic
Description
Operation
0000
FLT
Convert integer to floating point
Fn : = Rd
0001
FIX
Convert floating point to integer
Rd : = Fm
0010
WFS
Write Floating Point Status register
FPSR : = Rd
0011
RFS
Read Floating Point Status register
Rd : = FPSR
0100
WFC
Write Floating Point Control register
FPCR: = Rd
1
0101
RFC
Read Floating Point Control register
Rd : = FPCR
1
011x
trap: undefined instruction
1000
trap: undefined instruction
1010
trap: undefined instruction
1100
trap: undefined instruction
1110
trap: undefined instruction
Note
NOTES:
1) Supervisor-only instructions.
Definition of the efgh Bits
The definition of the efgh bits is instruction-dependent:
FLT
ef
gh
destination size (Section 19.2)
rounding mode (Section 19.2)
ef
gh
these bits are reserved and should be zero.
rounding mode (Section 19.2)
FIX
178
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
WFS,RFS,WFC, and RFC
efgh
these bits are reserved and should be zero.
Constants
Constants cannot be specified in the Fm field for the FIX instruction, as there is no point FIXing a known
value into an ARM integer register; it would be quicker to use a MOV instruction.
19.3.1
Compare Operations
31
28
27
cond
24
1110
23 22
21
abc
20
1
19
16
15
e Fn
12
11
1111
8
7
0001
4
fgh1
3
0
i Fm
NOTE: These are special cases of the general CPRT instruction, with Rd = 15 and L/S = 1.
<CMF|CNF|CMFE|CNFE>{cond}
abc
i
efgh
Fn, Fm
operation
constant ROM/Fm (see Section 19.2)
are reserved and should be ‘0’
abc
Mnemonic
Description
Operation
100
CMF
Compare floating
compare Fn with Fm
101
CNF
Compare negated floating
compare Fn with -Fm
110
CMFE
Compare floating with exception
compare Fn with Fm
111
CNFE
Compare negated floating with exception
compare Fn with -Fm
Compares
Compares are provided with and without the exception that could arise if the numbers are unordered.
When testing IEEE predicates, the CMF instruction should be used to test for equality (that is, when a
BEQ or BNE is used afterwards) or to test for unorderedness (in the V flag). The CMFE instruction should
be used for all other tests (BGT, BGE, BLT, and BLE afterwards). CMFE produces an exception if the numbers are unordered (whenever at least one operand is a NaN). CMF only produces an exception when at
least one operand is a signalling NaN.
The ARM flags N, Z, C, and V refer to Table 19-4 after compares.
Table 19-4. Flag Settings When the AC Bit in the FPSR is Clear
Flag
Description
Example
N
Less Than
Fn less than Fm (or -Fm)
Z
Equal
C
Greater Than or Equal
V
Unordered
Fn greater than or equal to Fm
NOTE: That when two numbers are not equal N and C are not necessarily opposites: if the result is unordered they
are both false.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT INSTRUCTION SET
179
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 19-5. Flag Settings When the AC Bit in FPSR is Set
Flag
Description
N
Less than
Z
Equal
C
Greater than or equal or unordered
V
Unordered
NOTE: In this case, N and C are necessarily opposites.
19.4
FPA Instruction Set
The FPA and support software together implement the ARM floating point instruction set as defined in the
previous section. The FPA itself implements a subset of the instruction set as defined in Table 19-8.
The FPA does not however, execute arithmetic instructions in Section 19.2 if one or more of the operands
has one of the following exceptional values (also known as uncommon values):
●
Infinity
●
NaN
●
Denormalized
●
Illegal extended precision bit patterns
In this case the instruction is ‘bounced’ to the software support code for emulation.
19.4.1
Infinities and NaNs
Infinities and NaNs should occur very rarely in normal code. Although not common, there are a few ‘normal’ programs that frequently underflow and produce denormalized numbers. Handling of denormalized
operands in software can cause performance degradation. If necessary, this performance degradation
can be minimized by setting a bit in the Status register that disables support for denormalized numbers.
19.4.2
Exceptional Conditions
Certain other exceptional conditions that arise during an operation causes the FPA to transfer that operation to the support code. These conditions include all cases of the following IEEE exceptions:
●
Invalid operation
●
Division by zero
●
Overflow
●
Underflow
●
Inexact
If the Inexact condition is detected, operation is only transferred to the support code if the Inexact trap
enable bit is set in the Floating Point Status register. Some other rare cases (such as, mantissa overflow
that occurs during the rounding stage of a Store Floating instruction) that do not in fact produce an IEEE
exception also traps to the support software.
180
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 19-6. Instructions Implemented in FPA
Mnemonic
Instructions
LDF(S/D/E)
Load (Single/Double/Extended)
✓
STF(S/D/E)
Store (Single/Double/Extended)
✓
ADF
Add
✓
SUF
Subtract
✓
RSF
Reverse Subtract
MUF
Multiply
✓
DVF
Divide
✓
RDF
Reverse Divide
FML
Fast Multiply
FDV
Fast Divide
FRD
Fast Reverse Divide
ABS
Absolute
URD
Round to Integral Value, possibly producing abnormal value
NRM
Normalize result of URD
MVF
Move
MNF
Move Negated
FLT
Integer to floating point conversion
✓
FIX
Floating point to integer conversion
✓
WFS
Write Floating Point Status
✓
RFS
Read Floating Point Status
✓
WFC
Write Floating Point Control
RFC
Read Floating Point Control
CMF
Compare Floating
CNF
Compare Negated Floating
CMFE
Compare Floating with Exception
CNFE
Compare Negated Floating with Exception
LFM
Load Floating Multiple (new to FPA)
SFM
Store Floating Multiple (new to FPA)
June 1997
ADVANCE DATA BOOK v2.0
IEEE Required
✓
✓
✓
FLOATING-POINT INSTRUCTION SET
181
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 19-7. Instructions Supported by Software Support Code (FPASC)
Mnemonic
Instructions
IEEE Required
SQT
Square root
✓
RMF
Remainder
✓
RND
Round to integral value
✓
19.5 Floating-point Support Code
Software support for the FPA includes the FPA support code (FPASC) and a software-only floating-point
emulator (FPE).
The FPA system and the FPE produce identical results; both systems are fully IEEE-conformant. Both
systems seamlessly implement the ARM floating-point instruction set.
The purpose of the FPASC is to:
1) Emulate in software those instructions rejected by the FPA because they involve uncommon values.
2) Provide support for exception conditions reported by the FPA.
3) Emulate in software those instructions in the floating point instruction set that are not implemented in the FPA
(see list above).
4) Emulate in software any instructions that are included for backwards compatibility only; see Section 19.2.4.
19.5.1
IEEE Standard Conformance
The full name of the IEEE Floating Point Standard is as follows:
ÒIEEE Standard for Binary Floating Point Arithmetic - ANSI/IEEE Std 754-1985Ó
This is referred to as the IEEE standard or merely as IEEE in this data book.
NOTE: The FPA hardware on its own is not IEEE-conformant.
Support software (the FPASC - FPA Support Code) is required to:
1) Implement the IEEE-required operations not provided by the FPA.
2) Handle operations on uncommon values bounced by the FPA.
3) Provide exception trap-handling capability.
182
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19.6 Instruction Cycle Timing
The following table shows the number of cycles that FPA takes in executing each instruction. Two numbers
are given:
●
The instruction latency
●
The maximum instruction throughput
Table 19-8. FPA Cycle Time
Instruction
Precision
No. Registers
Throughput
Latency
LDF/STF
S
2
3
LDF/STF
D
3
4
LDF/STF
E
4
5
LFM/SFM
1
4
5
LFM/SFM
2
7
8
LFM/SFM
3
10
11
LFM/SFM
4
13
14
Note
MVF/MNF/ABS
S/D/E
1
2
ADF/SUF/RSF/URD/NRM
S/D/E
2
4
MUF
S/D/E
8
9
FML
S/D/E
5
6
DVF/RDF/FDV/FRD
S
30
31
2
DVF/RDF/FDV/FRD
D
58
59
2
DVF/RDF/FDV/FRD
E
70
71
2
S/D/E
6
8
FIX
8
9
CMF/CMFE/CNF/CNFE
5
6
RFS/RFC
3
4
WFS/WFC
3
3
FLT
1
3
NOTES:
1) Cannot be sustained for more than 2 cycles out of every 3 cycles.
2) May be less if the division comes out exactly, causing early termination of the division algorithm (minimum of 6
cycles throughput, 7 cycles latency).
3) May be 2 or 3 cycles, depending on the previous instruction.
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT INSTRUCTION SET
183
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Throughput
Throughput is the number of cycles between the start of an instruction and the start of a succeeding
instruction of the same type, both instructions occurring in a long sequence of instructions of the same
type; repeated use of the same register may only occur in a sequence of length greater than or equal to 8.
Latency
Latency is the number of cycles between the start of instruction execution and its completion. The number
of cycles taken by a sequence of floating point instructions, each depends on the result of the preceding
instruction in the sequence, can generally be found by adding the latencies of the individual instructions.
There can be minor discrepancies from this rule for particular sequences.
The exact definition is dependent on the type of instruction being executed:
Arithmetic instructions
From register read to register write.
LDF, LFM, FLT
From start of instruction arbitration to register write.
STF, SFM, CMF, FIX
From register read to start of next instruction
arbitration.
WFS, WFC
From start of instruction arbitration until the next
instruction would be deemed to start by these rules.
RFS, RFC
From the time that the previous instruction would be
deemed to end by these rules to the start of the next
instruction arbitration.
NOTE: Speculative execution, concurrent execution between arithmetic and load/store instructions and concurrent
execution between ARM integer instruction and FPA instructions can significantly reduce the effective timings shown.
19.6.1
Instruction Classification
Instructions can be classified into arithmetic, load/store, and joint instructions:
Arithmetic
Those instructions that execute completely within the arithmetic unit.
These include all the hardware-implemented coprocessor data
operations (see Section 19.2).
Load/store
Those instructions that execute completely within the load/store unit.
These include LDF, STF, LFM and SFM.
Joint Arithmetic and Load/Store Instructions
184
FIX, CMF,CNF,CMFE,CNFE
Arithmetic followed by load/store.
FLT
Load/store followed by arithmetic.
WFS,RFS,WFC,RFC
Occupy both arithmetic and load/store units, since the
arithmetic unit must be empty before any of these
instructions may be executed.
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
19.6.2
Performance Tuning
The FPA is capable of executing load/store and arithmetic instructions concurrently and is also capable
of executing instructions speculatively (that is, before they have been committed to execution by the ARM
CPU). Both of these features can be exploited to maximize the performance of the FPA. The code fragment shown below is an example of how to achieve this:
1
2
3
4
5
SFM
DVFS
SFM
MOV
MOV
F0,4,[R0],#48
F0,F1,#3
F4,4,[R0],#48
R1,R2
R3,R4
CPCLK
CPD[31:0]
Store_issue
1 2 3
4 5
A
C
Store_accepted
AU_issue
B
Prepare
Calculate
Align
Round
Figure 19-1. Performance Tuning
June 1997
ADVANCE DATA BOOK v2.0
FLOATING-POINT INSTRUCTION SET
185
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The labels 1, 2, 3, 4, and 5 indicate the cycles when these instructions are fetched on the CPD[31:0] bus,
while A, B, and C indicate the cycles when the floating-point instructions are issued to their respective
units in the FPA.
The first store multiple instruction (1) is issued (A) to the load/store unit, resulting in 12 words of data
being transferred on CPD[31:0] as shown by the shaded boxes on the timing diagram. Meanwhile, the
divide instruction (2) is issued (B) to the arithmetic unit (AU) that then begins execution speculatively; its
progress through the Prepare, Calculate, Align and Round stages of the AU pipeline is shown by the
shaded boxes on the timing diagram.
The second SFM instruction (3) is issued (C) to the load/store unit as soon as it is ready. This second SFM
then executes while the AU is still busy on the divide instruction; the second set of shaded boxes on the
CPD[31:0] bus indicates the 12 words of data being transferred for the second SFM instruction. This
example shows how the divide instruction’s execution time can effectively be hidden by other instructions.
NOTE: The concurrence between ARM integer unit execution and FPA execution can also be exploited. Contact
ARM Ltd. for further details on optimizing floating-point code for the FPA.
186
FLOATING-POINT INSTRUCTION SET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
20. BUS INTERFACE
20.1 Bus Arbitration
Arbitration for the main CL-PS7500FE data bus is carried out with the priorities shown below:
1) Video/cursor DMA
2) Sound DMA
3) DRAM refresh
4) ARM processor memory cycles
As the CL-PS7500FE contains a cached processor, ARM internal cycles can continue while DMA is in
progress, but the CPU stalls when it suffers a cache miss and requires to fill a cache line from memory.
Once an external memory cycle has started, DMA has to wait until it is completed. The exception is for
I/O reads or writes and SUSPEND mode, where the write data is latched internally at the start of the cycle,
then DMA requests can be serviced even though the I/O access or SUSPEND mode is under way. The
end of an I/O access is held up until the current DMA access is complete. I/O read data is latched internally when available, and is not enabled onto the CL-PS7500FE data bus until any DMA transfers have
completed.
20.2 Bus Cycle Types
There are a large number of different types of cycle that use of the CL-PS7500FE data bus. Except for
DMA accesses, the cycle type is decoded according to the address put out by the ARM processor macrocell, and the detailed timing is controlled by the relevant section of the I/O or memory controller subsystem.
The ARM processor supports two basic types of external cycle:
●
Non-sequential consists of an idle cycle followed by a memory cycle
●
Sequential
consists simply of a memory cycle
The idle cycle allows the memory and I/O controller subsystems time to prepare for a new cycle type.
These two cycles are used as the basic building block for the more complex I/O and memory access cycle
timings generated by the CL-PS7500FE. ARM processor external cycles are clocked by the internal
MEMCLK signal generated by the CL-PS7500FE memory controller according to the type of cycle.
Only the latched version of the ARM processor’s address is exported from the ARM processor, and this
can only change immediately after the falling edge of the internal MEMCLK signal that clocks the ARM
for external accesses. The timing diagrams in Chapter 22 include MEMCLK as a reference as it indicates
the end of a particular cycle. To save power, the CL-PS7500FE internal data bus is not always exported
during internal register programming.
The ARM processor requests an external memory access for a number of reasons:
●
A cache line fetch always consists of memory reads from four sequential addresses.
●
A Level 1 translation fetch consists of a read from memory followed by the address translation so that the
next address output by the ARM is the translated physical address as generated from the read-back section
descriptor.
●
A Level 2 translation fetch is always preceded by a Level 1 fetch, and returns the page table entry, then used
to create the physical address for the next cycle.
June 1997
ADVANCE DATA BOOK v2.0
BUS INTERFACE
187
CL-PS7500FE
System-on-a-Chip for Internet Appliance
External buffered and unbuffered write cycles occur with indistinguishable bus timing. When the ARM
needs to read from a location and the data is not in the cache or is uncacheable (for example, for I/O), an
external read access is performed.
20.3 Video DMA Bandwidth
The maximum video DMA bandwidth depends on the MEMCLK frequency and the DRAM width (16 or
32 bit), but can be calculated as follows. The length of the non-sequential cycle at the start of a DRAM
read varies. Assuming DRAMCR[5] is low:
●
In Page mode, each non-sequential cycle takes 5 cycles
●
In EDO mode, each non-sequential cycle takes 6 cycles
This increases by one if DRAMCR[5] is high, and again by one or two to preserve RAS precharge times,
depending on whether the access just finished was to the same bank as the current one and if
DRAMCR[6] is also set.
Assuming Fast Page mode without further non-sequential delays, each qword DMA requires 5 + 2 + 2 +
2 = 11 MEMCLK cycles to complete. It is possible for DMA requests for the video to be serviced sequentially such that the second and subsequent qword DMA bursts take only 2 + 2 + 2 + 2 = 8 MEMCLK
cycles each. However, all accesses is broken up at page boundaries (every 256 words). So every 64 DMA
bursts, three extra MEMCLK periods are required.
Therefore, at a 32 MHz MEMCLK with a 32-bit-wide DRAM, 64 qwords would be transferred approximately every 16 µs. The maximum theoretical DMA bandwidth is thus 63.6 Mbytes/sec. If a greater video
DMA bandwidth is required, a higher MEMCLK frequency must be used. In an actual system, the average
bandwidth does not achieve this theoretical maximum.
20.4 Video DMA Latency
DMA latency is defined as the time from the generation of the internal request for more data from the video
FIFO in the video macrocell, to the time that the first word of DMA data is clocked into the video macrocell.
There are several possible limiting factors that can determine the worst-case DMA latency. This depends
on the CL-PS7500FE memory system configuration. There are three possible limiting cases:
1) Internal register programming cycles.
2) Burst mode ROM accesses, or very long non-sequential ROM accesses.
3) DRAM accesses in 16-bit mode.
The following assumes that the internal MEMRFCK frequency is equal to the MEMCLK frequency (that
is, the prescalars are set to divide-by-one). The above cases determine the maximum period before arbitration for DMA occurs in different systems. In addition to the latency resulting from these sequences, the
worst-case DMA latency has a possible 5.5 MEMCLK cycles factor for synchronization, such that the synchronized request arrives just too late to be arbitrated for, and CL-PS7500FE commits to a memory cycle.
The 5.5 MEMCLK cycles also includes the ARM processor idle cycle where the arbitration (that was just
missed) occurs.
From the clock edge where arbitration finally occurs, to the time the first word of DMA data is clocked into
the video macrocell, is 5.5 MEMCLK cycles or 7.5 MEMCLK cycles if the preceding access was to DRAM
in the same bank. These values assume DRAMCR[7:5] are all set high (that is, EDO memory).
188
BUS INTERFACE
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Internal register programming bursts can occur in blocks of up to four before re-arbitration occurs; this
takes 16 MEMCLK cycles. Burst mode ROM cycles are re-arbitrated after every four, so are sequential
DRAM accesses. Successive non-sequential accesses always allows DMA onto the bus. For this reason,
it is unlikely that these accesses are the cause of the worst-case DMA latency. However, it is possible to
use the ROM interface in half-speed mode, with the slowest ROM timing and a 16-bit-wide ROM, in which
case an access could take 28 internal MEMRFCK cycles. Under these circumstances the ROM interface
could be the limiting factor.
To determine the limiting factor in a system, calculate the number of cycles required for a worst case ROM
access. The number of cycles for each programmed value in ROMCR is shown below:
For a non-sequential access, programming ROMCR[2:0] to:
‘000’ – 7 cycles
‘001’ – 6 cycles
For all:
‘010’ – 5 cycles
Multiply by 2 if 16-bit mode set
‘011’ – 4 cycles
Multiply by 2 if half-speed bit set
‘100’ – 3 cycles
‘101’ – 2 cycles
If the burst bits (ROMCR[4:3]) are programmed to a value other than ‘00’, then the total worst-case number of cycles is one multiplied by the non-sequential number above, plus three multiplied by the burst number from the following:
‘01’ – 4 cycles
For all:
‘10’ – 3 cycles
Multiply by 2 if 16-bit mode set
‘11’ – 2 cycles
Multiply by 2 if half-speed bit set
At this point calculate the number of cycles required for a worst-case DRAM access. This can be the only
limiting factor when 16-bit-wide DRAM is used, and in this case the delay is:
9 + (2 × 7) = 23 cycles
Equation 20-1
As described above, the worst-case delay for four sequential internal register programming cycles is 16
cycles. Therefore, the worst-case delay is caused by internal register access cycles, ROM or DRAM
according to the worst-case results of the above calculations.
DMA can continue over the top of I/O accesses, so these do not feature in the options for worst case delay.
So for a system that is limited by internal register access cycles, the worst case latency is:
3.5 + 2 + 16 + 5.5 = 27 MEMCLK cycles
Equation 20-2
So if MEMCLK is running at 32 MHz, the total worst-case DMA latency is 0.84 µs.
June 1997
ADVANCE DATA BOOK v2.0
BUS INTERFACE
189
CL-PS7500FE
System-on-a-Chip for Internet Appliance
As another example, consider a ROM interface where the non-sequential access time is programmed at
7 cycles and the sequential access is programmed to 4 cycles using 16-bit-wide ROM. The total latency is:
3.5 + 2 + 14 + 8 + 8 + 8 + 5.5 = 49 MEMCLK cycles
Equation 20-3
At 32 MHz this corresponds to 1.5 µs.
190
BUS INTERFACE
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
21. CLOCKS, POWER SAVING, AND RESET
21.1 Clock Control
CL-PS7500FE has a clocking scheme designed to allow maximum flexibility for the system designer.
There are three main clock inputs:
●
CPUCLK — CPU clock, used to generate the ARM processor’s FCLK
●
MEMCLK — Memory subsystem clock, used to generate the memory system clock, and the ARM processor
MCLK
●
I_OCLK — I/O system clock, this is fixed at 32 MHz and generates all the fixed-frequency I/O clocks and
refresh rates.
21.1.1
Video and Sound Subsystem Clocks
The video subsystem has two separate external clock inputs and includes a phase-locked loop to enable
the control of an external VCO.
The pixel clock source can be VCLKI (selected by using an external VCO), HCLK, driven directly in from
the HCLK pin, or IOCK32 (also referred to as RCLK), which is the internal I/O subsystem clock and is
generated directly from the main I_OCLK input pin as described below. The sound subsystem can be
clocked either from IOCK32 generated internally from I_OCLK, or by using an externally generated clock
connected to the SCLK pin.
Selection between these various clock sources is described in the video and sound sub-systems section
of this data sheet.
21.1.2
I/O Clock Outputs
Four fixed frequency I/O clocks are output by the CL-PS7500FE, all divided down from the fixed frequency
input I_OCLK, set to 32 MHz in Divide-by-1 mode. These are:
●
CLK16 (16 MHz)
●
REF8M (8 MHz)
●
CLK8 (An inverted version of REF8M)
●
CLK2 (2 MHz)
21.1.3
Synchronous/Asynchronous Mode for the ARM Processor
The ARM processor macrocell can be configured for synchronous or asynchronous mode, under the control of the SnA pin. Synchronous mode can only be used within the CL-PS7500FE if the internal ARM
processor clocks, FCLK and MCLK, are of exactly the same fundamental frequency and timing, and in
fact when SnA is set high, MEMCLK is routed straight through to drive both FCLK and MCLK, with a suitable delay to ensure the required phase relationship between FCLK and MCLK is held correctly, i.e. CPUCLK is ignored when SnA = 1. If the FCLK frequency is required to be different from the MEMCLK
frequency, the SnA pin must be held low, and a suitable frequency applied to CPUCLK.
June 1997
ADVANCE DATA BOOK v2.0
CLOCKS, POWER SAVING, AND RESET
191
CL-PS7500FE
System-on-a-Chip for Internet Appliance
21.1.4
Clock Prescalars
7
6
5
4
3
2
1
0
X X X X X C M I
Each of the three main clock inputs CPUCLK, I_OCLK and MEMCLK has a selectable divide by 2 prescalar available within CL-PS7500FE to enable a guaranteed 50:50 mark-space ratio internal clock to be
produced using a higher frequency external oscillator. The internal clocks, referred to elsewhere in this
data book, are called FCLK, IOCK32, and MEMRFCK, respectively.
At power on reset, all the prescalars is set to divide by 2. Prescaling is controlled by the CLKCTL register
at address 0x0320003C, and there is one bit to enable or disable each divide by 2 prescalar as required:
C
M
I
Write
CPUCLK divide control
MEMCLK divide control
I_OCLK divide control
bit[2]
0
FCLK × 2 = CPUCLK
1
FCLK = CPUCLK
bit[1]
0
MEMRFCK × 2 = MEMCLK
1
MEMRFCK = MEMCLK
bit[0]
0
IOCK32 × 2 = I_OCLK
1
IOCK32 = I_OCLK
Read
return above value
Power on reset
set all to ‘0’, that is, divide by 2 clocks
21.1.5
Clocking Schemes
The simplest mode of operation of the CL-PS7500FE has all three of the main clocks driven by a single
32-MHz oscillator, with the prescalars set to Divide-by-1 mode. However, it is possible to increase the
speed of the memory and CPU clocks, noting that if this causes CPUCLK and MEMCLK frequencies to
be different, the SnA input must be set low for asynchronous operation. The I_OCLK frequency must
remain at 32 MHz (or 64 MHz if the divide by 2 prescalars are enabled).
NOTE: Nearly all timings in this datasheet assume that both I_OCLK and MEMCLK are running at 32 MHz (or
64 MHz with the divide by 2 prescalars on).
Increasing the memory clock frequency allows the system designer to take advantage of faster DRAM
memory. The CL-PS7500FE includes full synchronization at the interface between the memory and I/O
sub-systems to ensure safe operation under asynchronous conditions.
21.2 Power Management
The CL-PS7500FE includes power management circuitry that greatly enhances its suitability for battery
powered portable applications where power consumption is of paramount importance. There are three
power management modes:
192
CLOCKS, POWER SAVING, AND RESET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
21.2.1
NORMAL
the default operating condition where all clocks are running and the
chip is functioning normally.
SUSPEND
the clocks to the CPU (FCLK and MCLK) are stopped, but all other
parts of the chip remain active so DMA can continue and the display
can continue to be refreshed. It s also possible to stop some of the
external I/O clock outputs to save more power if this can be done safely
without causing problems for I/O peripherals connected to these
clocks.
STOP
allows all the clocks to the CL-PS7500FE to be stopped, and the whole
device then draws only leakage currents if all required registers are
appropriately programmed. Outputs are provided from
the CL-PS7500FE to enable the oscillator(s) to be powered down, and
circuitry to allow the oscillator(s) to cleanly restart using an external
RC delay before the clocks inside the CL-PS7500FE are reenabled.
Before STOP mode is entered, a number of registers need to be
programmed appropriately in the video sub-system, and further details
of the full sequence of events required to make most effective use of
the power management features can be found in Section 21.2.2.
SUSPEND Mode
Entry into SUSPEND mode is achieved by writing to the register location 0x0320001C. Any value can be
used, but the value written to bit 0 determines whether the external I/O output clocks CLK16, CLK8,
REF8M and CLK2 are stopped. DMA can continue unaffected, allowing the display and DRAM data to
remain refreshed.
Exit from SUSPEND mode is achieved by a falling edge on either of the asynchronous input event pins,
nEVENT1 and nEVENT2, or by any enabled interrupt source generating a FIQ or IRQ interrupt for the
ARM processor. The assertion of nRESET also causes exit from SUSPEND mode. It is important that the
interrupt mask and enable registers are programmed appropriately before SUSPEND mode is entered if
it is intended that an interrupt source be used to terminate the power saving mode.
The CPU merely sees SUSPEND mode as a write to a location in the memory and I/O register area. It is
unaware of the duration of this write, as both MCLK and FCLK are frozen, and it is a fully static device.
The careful use of SUSPEND mode when no CPU operations are required has a significant effect on the
device‘s average power consumption. It could be used, for example, between key presses while waiting
for more user input. The keyboard controller is still clocked during SUSPEND mode and so is able to generate interrupts that cause the termination of the write cycle and then cause the CPU to take the interrupt
exception.
June 1997
ADVANCE DATA BOOK v2.0
CLOCKS, POWER SAVING, AND RESET
193
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Details of the SUSMODE register (address 0x0320001C) are shown below:
7
6
5
4
3
2
1
0
X X X X X X X S
S
Write
Read
Reset
21.2.2
SUSPEND mode control of external I/O clocks
turn off external I/O clocks when in this mode
0
turn off
1
don't turn off
Enter Suspend mode with MCLK,FCLK,I/O clocks and some internal clocks
stopped. DMA continues and instruction completes on either wake-up event,
nIRQ or nFIQ.
return above value
set to zero
STOP Mode
Entry into STOP mode is achieved by writing to the register location 0x0320002C. Any value can be written to the register to enter STOP mode, but the value written appears on the external data bus of the
CL-PS7500FE while the chip is in STOP mode. It is therefore recommended that the value 0xFFFFFFFF
be written to this register as this indicates that both D[31:0] and LA[28:0] are driven high during STOP
mode.
It is very important that all DMA activity is stopped, that all I/O activity is completed, and that the video
subsystem is powered down correctly before the STOP mode register is written to. The OSCPOWER output is controlled by the power management circuitry, and is forced low a short time after the write cycle
begins. This output can be used to disable the external oscillator(s).
Exit from STOP mode can only be achieved by the use of the asynchronous wake-up event pins nEVENT1
and nEVENT2. When either of these is forced low, a sequence of events are triggered that cause the oscillator(s) to be restarted cleanly.
During STOP mode, a zero is driven out from the OSCDELAY pin, ensuring that an external capacitor
forming part of an RC network attached to the OSCDELAY pin remains discharged. As soon as a wake
up event occurs the OSCPOWER pin is set high again, and the open drain OSCDELAY pin is allowed to
float and becomes an input.
At this point, the external capacitor starts to charge, until the schmitt threshold of the OSCDELAY input is
exceeded. From this point, a further two rising edges must be seen on the input clock from the oscillator
before the clock is allowed through to the internal CL-PS7500FE circuitry. The component values used in
the RC circuit should be chosen to ensure that the oscillator has sufficient time to stabilize before
the OSCDELAY input is triggered.
As the video subsystem is inherently dynamic for performance reasons, it is necessary to set it into a special Power down mode before STOP mode is entered. To do this, the video Ext register should be programmed with the data 0xC0000000, the Video Control register should be programmed with the data
0xE00040xx (the last byte depends on the clock source and configuration), and the Sound Control register should be programmed with the data 0xB1000000 (if the sound system is configured for use with the
SCLK pin as the clock source. If the sound system is being clocked from the CL-PS7500FE’s internal
32-MHz I/O clock, then the register should be programmed with the value 0xB1000001). These actions
disable the video data path and ensure the entire macrocell is forced into a static state. To ensure that the
194
CLOCKS, POWER SAVING, AND RESET
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
comparators in the A-to-D converters do not consume current, they should be shut down by programming
the value 0x00 to the ATODICR register at location 0x032000E0.
CL-PS7500FE includes support for self refresh DRAM, and it is intended that this feature should be used
during STOP mode to ensure that DRAM contents are preserved. This DRAM mode is activated by allowing direct software control of the nCAS and nRAS output pins. The SELFREF register (0x032000D4) can
be used to directly force the nRAS and nCAS output pins according to the protocol required for a particular
DRAM to enter self-refresh mode. This programming must be performed by code executing from ROM.
In STOP mode CL-PS7500FE consumes leakage currents only, and can be held indefinitely without corruption of the internal registers, CPU cache, etc.
21.3 Reset
The CL-PS7500FE has three pins associated with reset. The nPOR pin is intended for use with an external RC delay to generate a power-on-reset pulse when the chip is switched on. The nRESET pin is an
open drain I/O pin, intended to generate a ‘soft’ reset. Both nPOR and nRESET are active low schmitt
inputs. The active high RESET pin is a clean reset output, created from the synchronized version of the
nRESET input, and is also forced high during nPOR.
A low state on the nPOR input sets the POR bit in the IRQA status register. This bit can later be examined
to show that the reset that occurred was an nPOR type rather than nRESET. The POR bit in the IRQA
status register is not reset until the POR clear bit in the IRQA request register is written to. nPOR also
causes the prescalars on the clock inputs to be set to divide by 2. The nPOR input is passed through a
pulse stretcher that ensures that even a short pulse on the input guarantees a full reset of the whole of
CL-PS7500FE. During nPOR reset, nCAS is forced low throughout and the nRAS outputs are changed.
While nPOR is low, nRESET and ID (both open drain pins) are held low, and an incrementing address
value is output on the LA address bus.
A low state on the nRESET input is used to generate a ‘soft’ reset. This does not set any interrupt flags,
and the nRESET low state must exist for longer than 1us to guarantee that it is seen, as it is passed
through a synchronizer before being used by the internal circuitry. At the start of the nRESET active
period, the whole CL-PS7500FE (including the DRAM refresh state machine and counter) is reset for
1-µs, and for the remaining duration of the nRESET pulse, DRAM refresh takes place at the highest
selectable rate. During nRESET, the ARM processor outputs an incrementing address on the LA bus.
June 1997
ADVANCE DATA BOOK v2.0
CLOCKS, POWER SAVING, AND RESET
195
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22. ELECTRICAL SPECIFICATIONS
22.1 Absolute Maximum Ratings
Specification
Maximum Rating
Ambient temperature while operating (TA)
0°C to 70°C
Storage temperature
−65°C to 150°C
Voltage on any pin
VS S − 0.5 V to VD D + 0.5 V
Operating power dissipation
2 W (watts)
Power supply voltage
7.0 V
Injection current (latch-up testing)
100 mA
NOTES:
1) System components must be operated within the limits of the absolute maximum ratings. If system components
are run at conditions at or outside these limits, the system components can be permanently damaged.
2) Functional operation at or outside any of the conditions indicated in the absolute maximum ratings is not implied.
3) Exposure to absolute maximum rating conditions for extended periods can affect system reliability.
196
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22.2 DC Specifications — Digital Values
In the table below, VD D = 5.0 ± 0.25 V and TA = 0°C to 70°C, unless otherwise specified.
40 MHz
Symbol
a
b
c
d
e
f
g
56 MHz
Parameter
Units
MIN
MAX
MIN
MAX
Note
VD D
Power Supply Voltage (TTL)
4.75
5.25
4.75
5.25
V
VI H C
Input High Voltage (CMOS)
0.8 VD D
VD D + 5% VD D
0.8 VD D
VD D + 5% VD D
V
a,b
VI L C
Input Low Voltage (CMOS)
−0.5
0.2 VD D
−0.5
0.2 VD D
V
a, b
VI LT
Input Low Voltage (TTL)
0
0.8
0
0.8
V
a, c
VI H T
Input High Voltage (TTL)
2.2
VD D + 5% VD D
2.2
VD D + 5% VD D
V
a, c
VI L S
Input low voltage (SCHMITT)
0
0.8
0
0.8
V
a, d
VI H S
Input high voltage (SCHMITT)
2.0
VD D + 5% VD D
2.0
VD D + 5% VD D
V
a, d
VO H C
Output high voltage (CMOS)
V
a, e,f
VO L C
Output low voltage (CMOS)
a, c, f
II L
VD D − 0.8
VD D − 0.8
VS S + 0.8
VS S + 0.8
V
Input low current
−10
−10
µA
II H
Input high current
10
10
µA
IO Z
Output leakage current
10
µA
c
CI N
Input capacitance
10
10
pF
d
IO H 1
x1 Output high current
(Vout = VDD − 0.8 V)
4
4
mA
IO L 1
x1 Output low current
(Vout = VDD + 0.8 V)
−4
−4
mA
IO H 2
x2 Output high current
(Vout = VDD − 0.8 V)
10
10
mA
IO L 2
x2 Output low current
(Vout = VDD + 0.8 V)
−10
−10
mA
IO H 3
x3 Output high current
(Vout = VDD − 0.8 V)
20
20
mA
IO L 3
x3 Output low current
(Vout = VDD + 0.8 V)
−20
−20
mA
VI H S T
IS input rising voltage threshold
3.53
3.53
V
d
VI L S T
IS input falling voltage threshold
1.05
1.05
V
d
ESD
HBM ESD
2
2
kV
g
ICC
At maximum frequency
150
180
mA
−10
10
−10
Voltages measured with respect to VSS.
IC – CMOS inputs.
IT – TTL inputs (includes BTZ, TOD, and IT pin types).
IS – CMOS Schmitt inputs (includes ICS and CSOD pin types).
OCZ – Output, CMOS levels, tristateable (includes OCZ, BTZ, TOD, and CSOD pin types).
With 1×, 2×, 3× lead currents.
This does not apply to the video and sound analog pins: VIREF, ROUT, GOUT, and BOUT.
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
197
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22.3 Derating
The AC timings included with each timing diagram include only the intrinsic delay through the output pads.
In order to calculate actual delays when designing the CL-PS7500FE into a system, it is necessary to add
the load-dependent element of the output pad delay.
The output pads of CL-PS7500FE are CMOS drivers which exhibit a propagation delay that increases linearly with the increasing capacitance. An Output derating figure is provided for each of the three types of
output pads, showing the increase in output delay with increasing load capacitance.
Details about which driver is used for which output can be found in Chapter 2.
Derating figures are quoted for rising and falling edges.
Table 22-1.
Label
CL-PS7500FE Pad Derating
Pad Type
Rising
Falling
Units
x1
Low drive capability pad
0.18
0.16
ns/pF
x2
Medium drive capability pad
0.061
0.046
ns/pF
x3
High drive capability pad
0.029
0.019
ns/pF
198
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22.4 AC Parameters — List of Timing Figures
Figure
22-1
22-2
22-3
22-4
22-5
22-6
22-7
22-8
22-9
22-10
22-11
22-12
22-13
22-14
22-15
22-16
22-17
22-18
22-19
22-20
22-21
22-22
22-23
22-24
22-25
22-26
22-27
22-28
22-29
22-30
22-31
22-32
June 1997
Title
Page
System Reset Timing ........................................................................................ 201
ROM Read Access Timing without Burst Mode (32 Bit) .................................... 203
ROM Read Access Timing, Burst Mode (32 Bit) ............................................... 203
ROM Read Access Timing, Burst Mode (16 Bit) ............................................... 204
ROM Write Access Timing, Burst Mode (32 Bit)................................................ 204
ROM Write Access Timing, Burst Mode (16 Bit)................................................ 205
Fast Page Mode DRAM Read Timing (32 Bit) ................................................... 207
Fast Page Mode DRAM Write Timing (32 Bit) ................................................... 207
EDO DRAM Read Timing (32 Bit) ..................................................................... 208
EDO DRAM Write Timing — Single Word ......................................................... 208
DRAM Memory Refresh Timing......................................................................... 209
8-MHz Simple I/O Read Timing......................................................................... 211
‘Sync’ 8-MHz Simple I/O Read Cycle Timing .................................................... 211
8-MHz Simple I/O Write Timing ......................................................................... 212
‘Sync’ 8-MHz Simple I/O Write Cycle Timing..................................................... 212
8-MHz Module I/O Read Timing ........................................................................ 214
‘Sync’ 8-MHz Module I/O Write Cycle Timing .................................................... 214
16-MHz Type D I/O Write Cycle Timing ............................................................. 216
16-MHz Type D I/O Read Cycle Timing............................................................. 217
16-MHz Type C, B, and A I/O Read Cycle Timing ............................................. 218
16-MHz Type C, B, and A I/O Write Cycle Timing ............................................. 218
16-MHz Type B I/O Read Cycle Timing with PCMCIA....................................... 219
16-MHz Type B /O Write Cycle Timing with PCMCIA ........................................ 220
Keyboard/Mouse Timing.................................................................................... 221
Serial Sound Output Timing (Normal Format) ................................................... 222
Serial Sound Output Timing (Japanese Format) ............................................... 222
Clock Timing with Divide-by-1 Prescalars Selected .......................................... 224
Clock Timing with Divide-by-2 Prescalars Selected .......................................... 224
Video Clock Timing............................................................................................ 224
Sound Clock Timing .......................................................................................... 225
Timing Relationship Between ECLK and ED in LCD Grayscale Mode ............. 225
Timing Relationship Between ECLK and ED in All Other Modes...................... 225
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
199
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22.5 System Reset Timing
Table 22-2.
Reset Timing
40 MHz
Symbol
Units
MIN
t pr
56 MHz
Parameter
MAX
MIN
MAX
Time for which nPOR must be held low to guarantee a reset
20
Length of internal reset
2
tnr b, c
Time for which nRESET must be held low to guarantee reset
2
2
µs
trec
Length of internal reset
2
2
µs
tres
nRESET setup to I_OCLK rising
0
0
ns
treh
nRESET hold from I_OCLK rising
30
30
ns
tpre
a
20
4
2
ns
4
µs
tpre = 2 µs if I_OCLK is 64 MHz. tpre is 32 MHz; this reset forces Divide-by-2 mode on the clock inputs.
DMA or writes from the ARM processor prevent nRESET having any effect for their duration. Thus the ‘soft’ reset cannot
break write cycles or cause partial DRAM refresh.
c Assuming IOCK32 is 32 MHz.
a
b
nPOR
tp r
nRESET
RESET
tp r e
nRESET
tn r
RESET
tr e
I_OCLK
nRESET
tr e s
tr e h
Figure 22-1. System Reset Timing
200
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22.6 Memory Subsystems
Table 22-3.
ROM Timing
40 MHz
Symbol
56 MHz
Parameter
Units
MIN
MAX
MIN
t la
MEMCLK rising to LA[28:0] changing
tds_rom
Data setup to MEMCLK rising
trcsl
MEMCLK rising to nROMCS falling
trcsh
MEMCLK rising to nROMCS rising
tdh_rom
DATA hold from MEMCLK rising
trda1
MEMCLK rising to write DATA valid
22
22
ns
trda2
MEMCLK rising to write DATA valid
33
33
ns
trda3
MEMCLK rising to write DATA valid
16
16
ns
trdah
Write DATA hold after MEMCLK rising
troel
MEMCLK rising to nIOR (nOE) falling
14
14
ns
troeh
MEMCLK rising to nIOR (nOE) rising
14
14
ns
trwel
MEMCLK rising to nIOR (nOE) falling
14
14
ns
trweh
MEMCLK rising to nIOR (nOE) rising
13
13
ns
June 1997
ADVANCE DATA BOOK v2.0
23
MAX
23
ns
18
18
ns
20
20
ns
0
0
12
12
11
ns
11
ns
ELECTRICAL SPECIFICATIONS
201
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Address
LA[28:0]
Address + 4
tl a
tl a
MEMCLK
D[31:0]
td s _ r o m
td h _ r o m
nROMCS
tr c s h
tr c s l
nIOW (nWE)
nIOR (nOE)
tr o e h
tr o e l
Figure 22-2. ROM Read Access Timing without Burst Mode (32 Bit)
Address
LA[28:0]
Address + 4
Address + 8
tl a
tl a
MEMCLK
D[31:0]
td s _ r o m
td h _ r o m
nROMCS
tr c s h
tr c s l
nIOW (nWE)
nIOR (nOE)
Cycle Type
tr o e h
tr o e l
Non Sequential
Burst
Burst
Figure 22-3. ROM Read Access Timing, Burst Mode (32 Bit)
202
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Address
LA[28:0]
Address + 2
Address + 4
Address + 6
tl a
tl a
MEMCLK
D[31:0]
td s _ r o m
nROMCS
td h _ r o m
tr c s l
tr c s h
tr o e l
tr o e h
nIOW (nWE)
nIOR (nOE)
Cycle Type
Burst
Non Sequential
Burst
Burst
Figure 22-4. ROM Read Access Timing, Burst Mode (16 Bit)
Address
LA[28:0]
Address + 4
Address + 8
tl a
tl a
MEMCLK
D[31:0]
tr d a 2
tr d a 1
nROMCS
tr d a h
tr c s h
tr c s l
nIOW (nWE)
tr w e l
tr w e h
nIOR (nOE)
Cycle Type
Non Sequential
Burst
Burst
Figure 22-5. ROM Write Access Timing, Burst Mode (32 Bit)
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
203
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Address
LA[28:0]
Address + 2
Address + 4
Address + 8
tl a
tl a
MEMCLK
D[31:0]
tr d a 3
tr d a 1
nROMCS
tr d a 2
tr d a h
tr c s h
tr c s l
nIOW (nWE)
tr w e l
tr w e h
nIOR (nOE)
Cycle Type
Non Sequential
Burst
Burst
Burst
Figure 22-6. ROM Write Access Timing, Burst Mode (16 Bit)
204
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 22-4.
DRAM Timing
40 MHz
Symbol
Units
MIN
d
e
f
MAX
12
12
ns
tcash
MEMCLK rising to nCAS[3:0] rising
11
11
ns
tds_dram
Read DATA setup to MEMCLK rising
−5
−5
ns
tdh_dram
Read DATA hold from MEMCLK rising
16
16
ns
tcac_fp a
nCAS falling to data latched
21
21
ns
nCAS falling to data latched
25
25
ns
b
tda1
MEMCLK rising to write DATA valid
23
23
ns
tda2
MEMCLK rising to write DATA valid
33
33
ns
tda3
MEMCLK falling to write DATA valid
15
ns
twdh
Write DATA hold from MEMCLK rising
trash
MEMCLK rising to nRAS[x] rising
11
11
ns
trasl
MEMCLK rising to nRAS[x] falling
13
13
ns
tra1 c
MEMCLK rising to RA[11:0] valid (row address)
36
36
ns
d
MEMCLK rising to RA[11:0] valid (row address)
23
23
ns
tca1
MEMCLK rising to RA[11:0] valid (column address)
15
15
ns
tca2
MEMCLK falling to RA[11:0] valid (column address)
14
14
ns
tcah
Column address, RA[11:0] valid from MEMCLK rising
tnwel
MEMCLK rising to nWE falling
tnweh e
MEMCLK rising to nWE rising
tcas2l
MEMCLK falling to nCAS[3:0] falling
12
12
ns
tcas2h
MEMCLK falling to nCAS[3:0] rising
12
12
ns
trp
c
MIN
MEMCLK rising to nCAS[3:0] falling
tra2
b
MAX
tcasl
tcac_edo
a
56 MHz
Parameter
f
nRAS precharge time
1.0t − 6
15
9
1.0t − 6
9
12
12
12
10
3
ns
ns
12
ns
10
3
ns
MEMCLKs
Minimum nCAS access time for Fast Page mode DRAM across all conditions, with nCAS loading of ≤ 100 pF, when MEMCLK
= 32 MHz.
Minimum nCAS access time for EDO DRAM across all conditions, with nCAS loading of 100 pF or less.
CPU accesses.
DMA accesses.
nWE rising does not change while external nCAS signals are still low.
The minimum nRAS precharge time can be extended to four cycles by setting bit 6 of the DRAMCTL register.
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
205
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Address + 4
DRAM Address
LA[28:0]
t1 a
Address + 8
t1 a
MEMCLK
td s _ d r a m
td h _ d r a m
D[31:0]
nRAS[x]
tr p
tr a s l
tr a s h
nCAS[3:0]
Row Address
RA[11:0]
tr a 1
tc a c
tc a s h
tc a s l
Column Address
Column Address + 1 Column Address + 2
tc a l
tr a 2
tc a h
Figure 22-7. Fast Page Mode DRAM Read Timing (32 Bit)
Address + 4
DRAM Address
LA[28:0]
Address + 8
MEMCLK
D[31:0]
td a 1
td a 2
tw d h
td a 2
nRAS[x]
nCAS[3:0]
RA[11:0]
tr a s h
tr a s l
tc a s l
Row Address
tr a 1
tc a s h
tc a s 2 l
tc a s 2 h
Column Address Column Address + 1 Column Address + 2
tc a l
tc a h
tn w e l
tn w e h
nWE
Figure 22-8. Fast Page Mode DRAM Write Timing (32 Bit)
206
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Address + 4
DRAM Address
LA[28:0]
t1 a
Address + 8
t1 a
MEMCLK
td s _ d r a m
td h _ d r a m
D[31:0]
Word 1
nRAS[x]
Word 3
Word 2
tr a s l
tr a s h
nCAS[3:0]
Row Address
RA[11:0]
tr a 1
Column Address
tc a c
tc a s h
tc a s l
Column Address + 1 Column Address + 2
tc a l
tr a 2
tc a h
Figure 22-9. EDO DRAM Read Timing (32 Bit)
DRAM Address
LA[28:0]
MEMCLK
D[31:0]
td a l
nRAS[x]
tw d h
tr p
tr a s l
tr a s h
nCAS[3:0]
tc a s l
RA[11:0]
Row Address
tr a 1
tc a s h
Column Address
tc a l
tc a h
tn w e l
tn w e h
nWE
Figure 22-10. EDO DRAM Write Timing — Single Word
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
207
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 22-5.
DRAM Memory Refresh Timing
40 MHz
Symbol
56 MHz
Parameter
Units
MIN
MAX
MIN
MAX
trref1
MEMCLK rising to nRAS
12
12
ns
trref2
MEMCLK falling to nRAS
11
11
ns
tcrefl
MEMCLK rising to nCAS[3:0] falling
16
16
ns
tcrefh
MEMCLK rising to nCAS[3:0] rising
16
16
ns
trarf
MEMCLK rising to RA[11:0] changing
22
22
ns
Address for next instruction
LA[28:0]
MEMCLK
nRAS[0]
tr r e ß
nRAS[1]
tr r e f 2
nRAS[2]
tr r e f 1
nRAS[3]
tr r e f 2
nCAS[3:0]
0xF
0x0
0xF
tc r e ß
RA[11:0]
xxx
xxx
tc r e f h
xxx
tr a r f
tr a r f
tr a r f
Figure 22-11. DRAM Memory Refresh Timing
208
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22.7 I/O Subsystems
Table 22-6.
Simple 8-MHz I/O Timing
40 MHz
Symbol
Units
MIN
14
ns
tclk8h
I_OCLK rising to CLK8 rising
14
14
ns
tclk2l
I_OCLK rising to CLK2 falling
16
16
ns
tclk2h
I_OCLK rising to CLK2 rising
16
16
ns
tcsl_sio
I_OCLK rising to nSIOCS1/nSIOCS2 falling
19
19
ns
tcsh_sio
I_OCLK rising to nSIOCS1/nSIOCS2 rising
20
20
ns
tbd1 a
I_OCLK rising to BD write data valid
0
102
0
102
ns
I_OCLK rising to BD write data valid (SYNC cycles)
0
476
0
476
ns
b
c, d
I_OCLK rising to BD write data valid
133
152
133
152
ns
tbd2
c, e
I_OCLK rising to BD write data valid
149
168
149
168
ns
tbdh
DATA hold from I_OCLK rising
10
10
tbds
DATA setup to I_OCLK rising
0
0
tiornwh
I_OCLK falling to IORNW rising
13
13
ns
tiornwl
I_OCLK rising to IORNW falling
16
16
ns
tniorl
I_OCLK rising to nIOR falling
16
16
ns
tniorh
I_OCLK rising to nIOR rising
16
16
ns
tniowl
I_OCLK rising to nIOW falling
17
17
ns
tniowh
I_OCLK rising to nIOW rising
16
16
ns
g
g
h
0
143
0
143
ns
0
518
0
518
ns
LA[28:0] changing after I_OCLK rising after end
74
89
74
89
ns
e, h
LA[28:0] changing after I_OCLK rising after end
90
105
90
105
ns
tadd2
f
LA[28:0] changing after I_CLK rising before start
LA[28:0] changing after I_OCLK rising before start (SYNC cycle)
tadd2
e
ns
d, h
tadd1s
d
MAX
14
tadd1 f
c
MIN
I_OCLK rising to CLK8 falling
tbd2
b
MAX
tclk8l
tbd1s
a
56 MHz
Parameter
Synchronization penalty is between 0 and 3 I_OCLK cycles.
Synchronization penalty is between 0 and 15 I_OCLK cycles.
Delay includes 4 MEMCLK cycles.
Timings refer to the case where ASTCR bit = 0.
Timings refer to the worst case where ASTCR bit = 1 (see Appendix C ).
Synchronization penalty is between 0 and 4 I_OCLK cycles.
Synchronization penalty is between 0 and 16 I_OCLK cycles.
Delay includes 2 MEMCLK cycles.
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
209
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LA[28:0]
ta d d 2
ta d d 1
I_OCLK
tc l k 8 l
tc l k 8 h
CLK8
BD[15:0]
tb d s
tb d h
IORNW
nSIOCS1
ti o r n w h
ti o r n w l
tc s l _ s i o
tc s h _ s i o
nIOR
tn i o r l
tn i o r h
Figure 22-12. 8-MHz Simple I/O Read Timing
LA[28:0]
ta d d 2
ta d d 1
I_OCLK
tc l k 8 l
tc l k 8 h
CLK8
CLK2
tc l k 2 l
tc l k 2 l
BD[15:0]
tb d s
tb d h
IORNW
nSIOCS1
ti o r n w h
ti o r n w l
tc s l _ s i o
tc s h _ s i o
nIOR
tn i o r l
tn i o r h
Figure 22-13. ‘Sync’ 8-MHz Simple I/O Read Cycle Timing
210
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LA[28:0]
ta d d 2
ta d d 1
I_OCLK
CLK8
BD[15:0]
tb d 1
tb d 2
IORNW
nSIOCS1
tc s l _ s i o
tc s h _ s i o
nIOW
tn i o w l
tn i o w h
Figure 22-14. 8-MHz Simple I/O Write Timing
LA[28:0]
ta d d 2
ta d d 1
I_OCLK
tc l k 8 l
tc l k 8 h
CLK8
CLK2
tc l k 2 h
tc l k 2 l
BD[15:0]
tb d 1 s
tb d 2
IORNW
nSIOCS1
tc s l _ s i o
tc s h _ s i o
nIOW
tn i o w l
tn i o w h
Figure 22-15. ‘Sync’ 8-MHz Simple I/O Write Cycle Timing
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
211
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 22-7.
Module 8-MHz I/O Timing
40 MHz
Symbol
Units
MIN
a
b
c
d
e
f
56 MHz
Parameter
MAX
MIN
MAX
tbds1
DATA setup to nBLI falling
0
0
tbdh1
DATA hold from nBLI falling
2
2
tcsl_ms
I_OCLK falling to nMSCS falling
18
18
ns
tcsh_ms
I_OCLK falling to nMSCS rising
22
22
ns
tiornwh
I_OCLK falling to IORNW rising
14
14
ns
tiornwl
I_OCLK falling to IORNW falling
14
14
ns
tbd1 a
I_OCLK rising to BD write data valid
0
102
0
102
ns
tbd2 b, c
I_OCLK rising to BD write data valid
133
150
133
150
ns
tbd2
I_OCLK rising to BD write data valid
164
181
164
181
ns
tniorql
I_OCLK rising to nIORQ falling
15
15
ns
tniorqh
I_OCLK rising to nIORQ rising
15
15
ns
tr8ml
I_OCLK rising to REF8M falling
13
13
ns
tr8mh
I_OCLK rising to REF8M rising
12
12
ns
tgts
setup of nIOGT to I_OCLK rising
0
0
tgth
hold of nIOGT to I_OCLK rising
5
5
tadd1 d
LA[28:0] changing after I_OCLK rising before start
0
143
0
143
ns
tadd2 e, c
LA[28:0] changing after I_OCLK rising after end
74
89
74
89
ns
tadd2e, f
LA[28:0] changing after I_OCLK rising after end
105
120
105
120
ns
ns
Synchronization penalty is between 0 and 3 I_OCLK cycles.
Delay includes 4 MEMCLK cycles.
Timings refer to the case where ASTCR bit = 0.
Synchronization penalty is between 0 and 4 I_OCLK cycles.
Delay includes 2 MEMCLK cycles.
Timings refer to the worst case where ASTCR bit = 1 (see Appendix C ).
212
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LA[28:0]
ta d d 2
ta d d 1
I_OCLK
tc l k 8 l
REF8M
tr 8 h
tr 8 l
BD[15:0]
tb d s 1
tb d h 1
IORNW
ti o r n w h
nMSCS
ti o r n w l
tc s l _ m s
tc s h _ m s
nIORQ
tn i o r q l
nIOGT
tn i o r q h
tg t h
tg t s
nBLI
Figure 22-16. 8-MHz Module I/O Read Timing
LA[28:0]
ta d d 2
ta d d 1
I_OCLK
REF8M
BD[15:0]
tb d 1
tb d 2
tc s l _ m s
tc s h _ m s
IORNW
nMSCS
nIORQ
tn i o r q l
nIOGT
tn i o r q h
tg t s
tg t h
Figure 22-17. ‘Sync’ 8-MHz Module I/O Write Cycle Timing
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
213
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 22-8.
16-MHz I/O Timing
40 MHz
Symbol
56 MHz
Parameter
Units
MIN
MAX
MIN
MAX
tnmxl
nXIPMUX16 falling to upper data output on BD[15:0]
6
6
ns
tnmxh
nXIPMUX16 rising to lower data output on BD[15:0]
5
5
ns
txls
DATA setup to nXIPLATCH falling
1
1
ns
txlh
DATA hold from nXIPLATCH falling
2
2
ns
tc16l
I_OCLK rising to CLK16 falling
12
12
ns
tc16h
I_OCLK rising to CLK16 rising
12
12
ns
tbdh
DATA hold from I_OCLK rising
10
10
tbds
DATA setup to I_OCLK rising
0
0
tiornwh
I_OCLK falling to IORNW rising
13
14
ns
tiornwl
I_OCLK rising to IORNW falling
16
16
ns
tcsl_pc a
I_OCLK rising to PC I/O chip select falling
20
20
ns
tcsh_pca
I_OCLK rising to PC I/O chip select rising
22
22
ns
trds
READY setup to I_OCLK rising
0
0
trdh
READY hold from I_OCLK rising
8
8
ns
ns
tbd2 b, c
I_OCLK rising to BD write data valid
133
150
133
150
ns
b, d
I_OCLK rising to BD write data valid
164
181
164
181
ns
e
I_OCLK rising to BD write data valid
0
40
0
40
ns
tbd2
tbd3
tniorl
I_OCLK rising to nIOR falling
16
16
ns
tniorh
I_OCLK rising to nIOR rising
16
16
ns
tnoh1
I_OCLK rising to nBLO rising, read
18
18
ns
tnol1
I_OCLK rising to nBLO falling, read
20
20
ns
tnoh2
MEMCLK rising to nBLO rising, write
22
22
ns
tnol2
MEMCLK rising to nBLO falling, write
19
19
ns
tnwbeh
I_OCLK falling to nWBE rising
20
20
ns
tnwbel
I_OCLK rising to nWBE falling
17
17
ns
trbel
MEMCLK rising to nRBE falling
16
16
ns
trbeh
MEMCLK rising to nRBE rising
21
21
ns
tniowl
I_OCLK rising to nIOW falling
17
17
ns
tniowh
I_OCLK rising to nIOW rising
16
16
ns
tdu
MEMCLK rising to D[31:16] valid
35
35
ns
tadd3 f
LA[28:0] changing after I_OCLK rising before start
0
82
ns
tduh
MEMCLK rising to D[31:16] invalid
10
tadd2c, g
LA[28:0] changing after I_OCLK rising at end
74
89
74
89
ns
tadd2d, g
LA[28:0] changing after I_OCLK rising at end
105
120
105
120
ns
214
ELECTRICAL SPECIFICATIONS
82
0
10
ns
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
a
b
c
d
e
f
g
Timing is for all PC style I/O chip selects: nCCS, nCDACK, nPCCS1, nPCCS2, nEASCS, and TC.
Delay includes four MEMCLK cycles.
Timings refer to where ASTCR bit = 0.
Timings refer to where ASTCR bit = 1.
Synchronization penalty is between 0 and 1 I_OCLK cycles.
Synchronization penalty is between 0 and 2 I_OCLK cycles.
Delay includes two MEMCLK cycles.
LA[28:0]
ta d d 2
ta d d 3
MEMCLK
I_OCLK
CLK16
LA[28:0]
IORNW
tb d 2
tb d 3
nPCCS1
tc s h _ p c
tc s l _ p c
nIOW
tn i o w l
tn i o w h
nBLO
tn o h 2
tn o l 2
READY
tr d s
D[31:16]
tr d h
Upper 16-bits of external data bus valid for 32-bit I/O
td u
td u h
Figure 22-18. 16-MHz Type D I/O Write Cycle Timing
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
215
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LA[28:0]
ta d d 2
ta d d 3
MEMCLK
I_OCLK
CLK16
tc 1 6 l
tc 1 6 h
BD[15:0]
tb d s
tb d h
IORNW
ti o r n w l
ti o r n w l
nPCCS1
tc s h _ p c
tc s l _ p c
nIOR
tn i o r l
tn i o r h
nBLO
tn o h 1
tn o l 1
nWBE
tn w b e h
tn w b e l
nRBE
tn r b e l
tn r b e h
READY
tr d s
tr d h
Figure 22-19. 16-MHz Type D I/O Read Cycle Timing
216
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LA[28:0]
ta d d 2
ta d d 3
I_OCLK
CLK16
BD[15:0]
tb d s
tb d h
IORNW
ti o r n w l
ti o r n w l
nPCCS1
tc s l _ p c
nIOR
tc s h _ p c
tn i o r l
tn i o r h
READY
tr d s
tr d h
Figure 22-20. 16-MHz Type C, B, and A I/O Read Cycle Timing
LA[28:0]
ta d d 2
ta d d 3
I_OCLK
CLK16
BD[15:0]
tb d 2
tb d 3
IORNW
nPCCS1
tc s l _ p c
nIOW
tc s h _ p c
tn i o r l
tn i o r h
READY
tr d s
tr d h
Figure 22-21. 16-MHz Type C, B, and A I/O Write Cycle Timing
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
217
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LA[28:0]
ta d d 2
ta d d 3
I_OCLK
CLK16
IORNW
ti o r n w l
ti o r n w l
nPCCS1
tc s l _ p c
tc s h _ p c
nIOR
tn i o r l
tn i o r h
READY
tr d s
Upper
BD[15:0]
tr d h
Lower
nPCCS1
tx l s
tx l h
Figure 22-22. 16-MHz Type B I/O Read Cycle Timing with PCMCIA
218
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LA[28:0]
ta d d 2
ta d d 3
I_OCLK
CLK16
IORNW
nPCCS1
tc s l _ p c
nIOW
tc s h _ p c
tn i o r l
tn i o r h
READY
tr d s
BD[15:0]
nPCCS1
Upper
Lower
tr d h
Lower
tb d
tn m x l
tn m x h
Figure 22-23. 16-MHz Type B /O Write Cycle Timing with PCMCIA
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
219
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 22-9.
Keyboard/Mouse Timing
40 MHz
Symbol
56 MHz
Parameter
Units
MIN
MAX
MIN
MAX
1
100
1
100
µs
tkclk
Keyboard clock period
tkckl
Keyboard clock low time
0.5
50
0.5
50
µs
tkckh
Keyboard clock high time
0.5
50
0.5
50
µs
tdhi
Hold on DATA from CLK rising for receive
1
tkclk − 1
1
tkclk − 1
µs
tdsi
Setup on DATA to CLK falling for receive
tkclk − 1
µs
tdso
Setup on DATA to CLK rising for transmit
tdho
Hold on DATA from CLK falling for transmit
tki
Time for which CLK is held low to request a send
tkrg
Clock low from CL-PS7500FE to clock low from the
keyboard for a request to send
1
1
µs
tksb
Clock low to DATA low hold time for a request to send
1
1
µs
2
1
3
tkclk − 1
tkclk − 1
tkclk
tkclk − 1
tkclk
µs
0
1
0
1
µs
63.5
64.5
63.5
64.5
µs
4
5
6
7
8
9
Data 3
Data 4
Data 5
Data 6
Data 7
Parity
10
KCLK
Data 1
Data 0
RA[11:0]
Data 2
Stop
Keyboard/Mouse Controller Receive Protocol
KCLK
tk c k h
tk c k l
KDATA RECEIVE
td h i
td s i
KDATA TRANSMIT
td s o
td h o
KCLK REQUEST
TO SEND
tk r g
tk i
KDATA REQUEST
TO SEND
tk s b
Figure 22-24. Keyboard/Mouse Timing
220
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table 22-10. Serial Sound Output Timing
40 MHz
Symbol
56 MHz
Parameter
Units
MIN
MAX
MIN
MAX
tsdo
SDCLK falling to SDO valid (normal format)
0
5
0
5
ns
tsdoj
SDCLK falling to SDO valid (Japanese format)
0
5
0
5
ns
SDCLK
ts d o
Bit 1
SDO
lsb
msb
Bit 1
lsb
left channel
WS
msb
right channel
Figure 22-25. Serial Sound Output Timing (Normal Format)
SDCLK
ts d o
SDO
Bit 1
lsb
WS
msb
left channel
Bit 1
lsb
msb
right channel
Figure 22-26. Serial Sound Output Timing (Japanese Format)
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
221
CL-PS7500FE
System-on-a-Chip for Internet Appliance
22.8 System Timing (Clocks)
Table 22-11. System Timing (Clocks)
40 MHz
Symbol
56 MHz
Parameter
Units
MIN
MAX
MIN
MAX
t cpck1l a
CPUCLK low time
11.25
8
ns
tcpck1ha
CPUCLK high time
11.25
8
ns
tmck1la
MEMCLK low time
7
7
ns
tmck1ha
MEMCLK high time
7
7
ns
tiock1la, b
I_OCLK low time
14
14
ns
tiock1ha, b
I_OCLK high time
14
14
ns
tcpck2l c
CPUCLK low time
6.25
6.25
ns
tcpck2hc
CPUCLK high time
6.25
6.25
ns
tmck2lc
MEMCLK low time
5
5
ns
tcpck2hc
MEMCLK high time
5
5
ns
tiock2lc, d
I_OCLK low time
7.8
7.8
ns
tiock2hc, d
I_OCLK high time
7.8
7.8
ns
tvckl
VCLKI low time
4
4
ns
tvckh
VCLKI high time
4
4
ns
thckl
HCLK low time
4
4
ns
thckh
HCLK high time
4
4
ns
ted e
ECLK to ED delay
5
7
tlcded
ECLK to ED delay (LCD mode)
tlcded ÷ 4 + 5
tlcded ÷ 4 + 7
5
7
ns
ns
a
Divide-by-1 prescalar selected.
I_OCLK = 32 MHz in Divide-by-1 mode.
c Divide-by-2 prescalar selected.
d I_OCLK = 64 MHz in Divide-by-2 mode.
e ECLK mark-space ratio is not always 1:1, depending on the pixel clock divide.
b
222
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
CPUCLK
tc p c k 1 l
tc p c k 1 h
MEMCLK
tm c k 1 l
tm c k 1 l
I_OCLK
ti o c k 1 l
ti o c k 1 l
Figure 22-27. Clock Timing with Divide-by-1 Prescalars Selected
CPUCLK
tc p c k 2 l
tc p c k 2 h
MEMCLK
tm c k 2 l
tm c k 2 l
I_OCLK
ti o c k 2 l
ti o c k 2 l
Figure 22-28. Clock Timing with Divide-by-2 Prescalars Selected
VCLKI
t vckl
tv c k h
th c k l
th c k h
HCLK
Figure 22-29. Video Clock Timing
June 1997
ADVANCE DATA BOOK v2.0
ELECTRICAL SPECIFICATIONS
223
CL-PS7500FE
System-on-a-Chip for Internet Appliance
SCLK
ts c k l
ts c k h
Figure 22-30. Sound Clock Timing
ECLK
tl c d e d
te c l k
ED[7:0]
Figure 22-31. Timing Relationship Between ECLK and ED in LCD Grayscale Mode
ECLK
te d
ED[7:0]
Figure 22-32. Timing Relationship Between ECLK and ED in All Other Modes
224
ELECTRICAL SPECIFICATIONS
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
23. PACKAGE
23.1 240-Pin MQFP Package Example
34.35
34.85
31.90
32.10
0.10
0.30
31.90
32.10
CL-PS7500FE
34.35
34.85
240-Pin MQFP
0.50
TYP
Pin 1 Indicator
Pin 240
Pin 1
0.40
0.60
3.20
3.60
0.16
TYP
0° MIN
7° MAX
4.10
MAX
0.25
MIN
NOTES:
1) Dimensions are in millimeters, and controlling dimension is millimeter.
2) Drawing above does not reflect exact package pin count.
3) Before beginning any new design with this device, please contact Cirrus Logic for the latest package information.
June 1997
ADVANCE DATA BOOK v2.0
PACKAGE
225
CL-PS7500FE
System-on-a-Chip for Internet Appliance
24. ORDERING INFORMATION EXAMPLE
CL – PS7500FE – QC – A
Cirrus Logic Inc.
Personal Systems
Part Number
Revision †
Temperature Range:
C = Commercial
Package Type:
Q = Plastic Quad Flat Pack
†
Contact Cirrus Logic for up-to-date information on revisions.
Default Speed Grade:
40 MHz
CL – PS7500FE – 56QC – A
Cirrus Logic Inc.
Personal Systems
Part Number
Revision †
Temperature Range:
C = Commercial
Package Type:
Q = Plastic Quad Flat Pack
Speed Grade:
56 MHz
†
Contact Cirrus Logic for up-to-date information on revisions.
226
ORDERING INFORMATION EXAMPLE
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendix A
Initialization and Boot Sequence
A.
1.
Introduction
CL-PS7500FE is designed to operate with 16- or 32-bit-wide memory systems. To avoid a hardware
selection mechanism, the CL-PS7500FE is designed to always power-up with ROMCR0[6] set to ‘1’, then
the device expects to receive the first instructions from a 16-bit-wide ROM bank. For a system that is actually using 16-bit-wide ROM, no special action is required. For a system that uses 32-bit-wide ROM, a software solution is required for the device to boot successfully.
A sample method of programming the first locations of ROM to successfully boot the device is described
in Section 1. This example assumes that the reset vector is located at physical memory address zero.
2.
Sample Boot Sequence
The processor starts executing code from physical address 0. As CL-PS7500FE is initially configured to
operate with a 16-bit-wide ROM, it fetches the lower half-word of the first instruction from the lower 16 bits
of address 0; the upper half-word of the instruction is fetched from the lower 16 bits of address 4.
If these first two locations are programmed with instructions to load the PC with the reset and undefined
instruction vectors, then the combination of the lower half-words from the first and second location always
create an instruction with a ‘never-true’ condition code, therefore execution drops through to the next
instruction. This is true for all LDR PC instructions in the exception table. Table A-1 is the exception table
occupying the first eight locations in ROM. This vector table resides at physical address 0.
Table A-1.
Address
Vector Table
Instruction
0
LDR PC, RESET_VEC
4
LDR PC, UNDEF_VEC
8
LDR PC, SWI_VEC
C
LDR PC, PREF_VEC
10
LDR PC, DATA_VEC
14
LDR PC, RES_VEC
18
LDR PC, IRQ_VEC
1C
LDR PC, FIQ_VEC
June 1997
ADVANCE DATA BOOK v2.0
227
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Immediately after the table, the CL-PS7500FE is in 32-bit mode. The eight locations, from address 20 to
3C, must be programmed with eight half-words in the lower sixteen bits of each location. These form the
four required 32-bit instructions when read in pairs by the CL-PS7500FE. The upper 16 bits of each location are ignored by the CL-PS7500FE while still in 16-bit mode.
The four instructions program ROMCR0 into 32-bit mode and cause program execution to jump back to
the reset vector at physical address zero. This now be executes correctly. The MOV PC – #0 instruction,
that actually causes execution to jump back to zero, must be prefetched in 16-bit mode even though it
occurs after the ROMCR0 is reprogrammed. Table A-2 shows the data required at memory locations 0x20
to 0x3C to implement this scheme.
Table A-2.
Instructions for Programming the ROM Register
Data
Address
0x0000B632
20
0x0000E3A0
24
0x00000000
28
0x0000E3A0
2C
0x00000080
30
0x0000E5CB
34
0x0000F000
38
0x0000E3A0
3C
Instruction
MOV R11, 0x03200000
MOV R0, #&0
STRB R0, [R11,0x80]
MOV PC, #0
Notes
Point at register base.
32b, slow, 218.75 µs, no burst.
Program ROMCR0 and switch mode.
Jump to zero.
The boot code above is a general example to set the ROM interface to use the slowest access timing This
ensures it works with all systems. To speed execution, program the ROM control registers with the fastest
parameters of the interface. On power up, the default state of the CLKCTL register is for the CPUCLK,
MEMCLK, and I_OCLK external clock inputs to be divided by 2. If appropriate, program these clocks to
divide-by-1. This also speeds execution.
3.
Other Methods
The above method is an example of how the CL-PS7500FE can be booted from a system using 32-bitwide ROM. There are other methods to do this that may be more appropriate for the required application.
The main advantage of the above method is that it allows the exception vector table to reside at physical
address 0. If this is not a requirement the instructions that reprogram ROMCR0 can reside from location
0 up, and the vector table can be mapped into DRAM by the operating system software.
228
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendix B
Dual-Panel Liquid Crystal Displays
B.
1.
Programming the Video Subsystem
EREG[13] (lcd) must be programmed to ‘1’ for normal LCD operation. CONREG[13] (address
0xE00xxxxx) must be programmed to ‘1’. This is the dup bit to set Duplex mode.
Video data is simultaneously channelled to the top and bottom half-screens. The first qword received from
memory is interpreted for the first part of the first raster in the top half-screen; the second qword is for the
identical part of the lower half-screen. CL-PS7500FE handles the sequencing of DMA data so the video
buffer can still be programmed as if there were only one panel.
Program VCSR[14:13] (address 0x9600xxxx) as:
Bit
Description
14
13
0
0
Dual Panel mode not activated
0
1
Cursor in upper half-screen
1
0
Cursor in lower half-screen
1
1
Cursor straddles both half-screens
Normally VCSR defines the number of rasters from VSYNC to the start of the cursor, and VCER defines
the number of rasters from VSYNC to the end of the cursor display. See Chapter 16 for programming
details.
Split-screen Operation
For split-screen operation, the programming of VCER and VCSR is the same as for a single-panel LCD
when the cursor is in the top or bottom half-screen. When the cursor straddles the boundary, the values
of these two registers have a different meaning. The value in the VCSR is the number of rasters from the
top of the lower panel to the end of the cursor image and VCER is programmed with the number of rasters
from the top of the display to the start of the cursor image in the upper panel.
The cursor is displayed in the lower half-screen from the value of VDSR to VCSR and in the upper halfscreen from the value of VCER to VDER. Essentially, the start register is effectively defining the ‘end’ of
the cursor in the bottom half-screen and the end register is defining the ‘start’ of the cursor in the top halfscreen. This is because the top of the lower half-screen is written to before the bottom of the upper halfscreen.
June 1997
ADVANCE DATA BOOK v2.0
229
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.
Configuring DMA within the CL-PS7500FE
The video and sound macrocell must first be programmed to drive dual-panel LCDs as previously
described. When this is done, the macrocell always makes qword DMA requests in pairs. The
CL-PS7500FE is then set into Dual-panel mode by programming the ‘dup’ bit (VIDCR[7], address 0x1E0)
to ‘1’. The eight bits of the VIDCR are now allocated as:
7
6
5
4
3
2
1
0
D X E X X X X X
X = Undefined
E = Enable
D = Duplex LCD
To enable two parallel data streams to be output by the video and sound macrocell to the two panels of
the LCD when Duplex mode is enabled, the CL-PS7500FE DMAs two qwords from memory, offset by half
the size of the video buffer. Since all DMA is qword-only, the auto-increment of the DMA address is now
always 0x10.
The VIDSTART and VIDEND registers are programmed normally (that is, for a single panel) with the
addresses of the first and last qwords in memory. Program the VIDINITA register with the address of the
first qword to display on the upper panel of the LCD; program the VIDINITB register with the address of
the first qword to display on the lower panel of the LCD. The difference between the two addresses is half
the number of bytes in the video buffer.
It is possible for VIDINITA to point to an address in the lower half of the buffer, in which case set VIDINITB
to point to an address in the top half of the buffer, offset again by half the buffer size.
If either of the INIT register values are equal to the end register, bit 30 of the relevant INIT register must
be set high for correct operation (the ‘last’ bit).
NOTE: Never program both of the ‘last’ bits simultaneously high.
3.
Cursor
To ensure a smooth transition of the cursor across the dual-panel boundary, four images of the cursor
must be stored in memory. The CL-PS7500FE DMA registers must only be programmed with
qword-aligned addresses. Since the cursor is always 32-pixels wide at 2 bpp, the address of data corresponding to a particular row of the cursor can be aligned with a 2-word boundary. Arrange the four images
as two pairs of contiguous images of the cursor. Only alternate rows of each cursor image start on qword
boundaries.
For reasons previously stated, the two pairs of images are offset so that the first has all the odd rows starting on qword boundaries; the second has all even rows starting on qword boundaries. This means that
CL-PS7500FE can address any row of the cursor using only qword-aligned DMA pointers.
Normally, only the first image is used. However, when the cursor is straddling the split-screen boundary,
VCSR and VCER are programmed as described above and the cursor INIT register must be set to point
to the location corresponding to the position of the row of the cursor that appears at the top of the lower
section of the screen. In conjunction with the different meaning of the vertical cursor position registers in
the video and sound macrocell, this enables a smooth transition across the split-screen boundary.
230
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
4.
Video Frame Buffer Restrictions
For dual-panel LCDs to be driven correctly, it is necessary for the video frame buffer to contain an even
number of qwords and be aligned to a qword boundary; the cursor buffer must also be aligned to a qword
boundary.
June 1997
ADVANCE DATA BOOK v2.0
231
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendix C
Using ASTCR at High MEMCLK Frequencies
C.
1.
Using ASTCR
Whenever the ARM processor performs a memory cycle, it is clocked by MCLK derived from MEMCLK.
The I/O controller inside CL-PS7500FE is clocked by derivatives of I_OCLK. Thus, when the ARM processor performs a read from or a write to an area of I/O space, some synchronization must occur.
The CL-PS7500FE bus controller decodes the address of the ARM processor access and, if it recognizes
it as an I/O access, must send an I/O cycle request signal to the I/O controller. This is synchronized to the
internal I/O clock, IOCK32. The I/O controller then performs the necessary cycle, asserting one (or more)
of the I/O chip select signals, (for example, nCCS).
When the I/O controller can determine that the I/O cycle is about to finish, it asserts an I/O grant signal
synchronized back to the internal memory clock, MEMRFCK. The bus controller then terminates the cycle
by creating a falling edge on MCLK that clocks the ARM processor.
The address from the ARM processor is latched when MCLK is low so that it is held stable throughout I/O
cycles (as well as ROM). It is important that MCLK does not fall too quickly after the end of the I/O chip
select. This could cause the address to change too quickly, violating the required hold time. The
CL-PS7500FE is designed to support an MEMCLK running at a frequency much higher than I_OCLK.
The I/O grant generated by the I/O controller is synchronized quickly back to MEMRFCK and the address
changes sooner after the end of the I/O chip select. To ensure the address hold time is maintained, the
I/O controller must delay the point where it generates the I/O grant.
Using ASTCR, bit 0x032000CC allows the address hold time to be maintained when the MEMCLK frequency is greater than the I_OCLK frequency, at the same time not imposing greater-than-necessary wait
states when MEMCLK is the same, or lower frequency than I_OCLK.
For a given system, fix the I_OCLK frequency at 32 MHz, while the MEMCLK frequency is fixed according
to the speed of DRAM used. The amount of hold time required between the end of the I/O chip select and
the latched address change is determined, then ASTCR is set based on the following details.
232
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.
ASTCR I/O Cycle Type and Hold Times
NOTE: This assumes Divide-by-1 mode for the clocks, MEMCLK and I_OCLK.
When ASTCR is low (reset value):
I/O cycle type
Minimum hold time
Simple I/O
2 MEMCLK periods − 1 I_OCLK period
Module I/O
2 MEMCLK periods − 1.5 I_OCLK periods
PC style I/O
2 MEMCLK periods − 1.5 I_OCLK periods
When ASTCR is high:
I/O cycle type
Minimum hold time
Simple I/O
2 MEMCLK periods − 0.5 I_OCLK periods
Module I/O
2 MEMCLK periods − 0.5 I_OCLK periods
PC style I/O
2 MEMCLK periods − 0.5 I_OCLK periods
3.
Example
In a system with:
●
I_OCLK = 32 MHz
●
MEMCLK = 40 MHz
the minimum hold time for a PC-style access is:
●
3.125 ns, if ASTCR = 0
●
34.375 ns, if ASTCR = 1
In addition there is a small amount of extra hold time, due to the delay from the internal memory clock, to
the latch enable signal for the address.
NOTE: These times refer to the signals changes at the pad on the inside of the CL-PS7500FE. The relative capacitive loading of the latched address and I/O chip select determines the overall timing.
June 1997
ADVANCE DATA BOOK v2.0
233
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendix D
Expanding PC-Style I/O to 32 Bits
D.
1.
32-Bit I/O
The CL-PS7500FE provides 16-bit I/O accesses as standard using the BD[15:0] port for all I/O types. The
PC-style I/O access, however, can be extended to allow full 32-bit access without any loss in access
speed by adding external 16-bit transceivers. The CL-PS7500FE provides all control signals required to
support these external devices.
During PC-style I/O write cycles, the I/O controller routes the lower, 16-bit half-word from the ARM processor data bus onto BD[15:0] and drives the upper, 16-bit half-word onto D[31:16].
During read cycles, the ARM processor data bus is driven from two sources:
●
the lower half-word from the data latched from BD[15:0]
●
the upper half-word from D[31:16]
If the external devices that provide the upper half-word of data are not present or the I/O peripheral does
not support more than 16 bits, the software must ignore the upper half-word read back into the ARM processor registers.
Figure D-1 on page 235 is an example of the system connections required to provide a full 32-bit I/O interface.
234
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
EN
D[31:16]
16
D
Q
BDHI[15:0]
16
G
EN
16
Q
D
16
G
I/O Device
nWBE
nRBE
nBLO
ARM7500
LA[9:0]
10
BD[15:0]
16
nIOW
nIOR
eg. nCCS
CLK16
Figure D-1. 32-bit I/O Interface
The write and read path each contain a 16-bit latch with tristate output enable control:
●
The write latch latches data from D[31:16] when nBLO is high and drive the latched data onto the expanded
I/O bus, BDHI[15:0], when nWBE is active-low.
●
The read latch should latch data from BDHI[15:0] when nBLO is high and drive the latched data onto
D[31:16], when nRBE is active-low.
NOTE: Like the BD[15:0] bus, the write enable nWBE remains active-low by default. It is deasserted only during the
read cycles, thus the I/O device must not attempt to drive BD[15:0] or BDHI[15:0], except when a read cycle
occurs.
June 1997
ADVANCE DATA BOOK v2.0
235
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendix E
CL-PS7500FE Video Clock Sources
E.
1.
Introduction
To facilitate the high-resolution screen modes that the CL-PS7500FE can produce, apply a suitable
high-frequency clock. As the screen mode changes, the pixel rate must also change. This can be done:
●
through the various clock inputs
●
by the on-chip prescaler
●
using an external voltage controlled oscillator, combined with the on-chip phase comparator, to form a PLL.
It is intended that most systems be built with a PLL system. The required circuitry is simple and allows a
high degree of flexibility. The advantages are that all the necessary clock frequencies can be derived from
one circuit, eliminating the need for multiple on-board crystals and clock-switching circuitry.
2.
Clock Sources
CL-PS7500FE has three primary inputs for its pixel clock:
●
HCLK
●
VCLKI
●
RCLK (this is the internal 32-MHz IOCK32 derived from I_OCLK)
VCLKI and the internal I_OCLK32 (derived from I_OCLK) drive the phase comparator, and HCLK only
provides the highest-frequency clock – if this frequency is above the maximum VCO frequency.
The pixel clock source is selected by programming bits 0 and 1 of the control register. The pixel clock
selected can then be passed through a prescaler to divide the clock by between 1 and 8. This is done by
programming CONREG[4:2]. See Chapter 16.
SCLCK
In addition to the pixel clock inputs, there is one other clock input, SCLK.
The sound system can be clocked from the internal 32-MHz IOCK32 or a 16-MHz SCLK (there is a divideby-2 in the sound system). The digital sound system can run at a different frequency (low MHz range);
this must be applied directly to SCLK.
NOTE: Any unused clock pin should be tied low.
236
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
CON_REG[1:0]
CON_REG[4:2]
HCLK
VCLK
VCLKO
PIXCK
PHASE
COMPARATOR
PCOMP
DIVIDE BY N
INTERNAL IOCK32
Figure E-1. Video and Sound Macrocell Internal Clock System
3.
Using the Phase Comparator
The video and sound macrocell contains a phase comparator that, in conjunction with an external VCO,
can build a PLL.
The phase comparator contains:
●
two counters
●
a phase detector
The counters are pre-loadable down counters, one clocked from the internal IOCK32 signal derived from
I_OCLK, and the other clocked from VCLKI. The moduli of the counters is programmed in the Frequency
Synthesizer register.
In the Frequency Synthesizer register, the test bits are:
June 1997
bit 6
force PCOMP high and driven
bit 7
clear r-modulus counter
bit 14
force PCOMP low and driven
bit 15
clear v-modulus counter
ADVANCE DATA BOOK v2.0
237
CL-PS7500FE
System-on-a-Chip for Internet Appliance
31
1
30
29
28
1
0
1
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
X X X X X X X X
8
7
6
5
4
3
2
1
0
X X X X X X X X
Figure E-2. Frequency Synthesizer Register
These bits are only programmed during test and at reset (see Section 4 on page 240).
The internal IOCK32 signal derived from the I_OCLK input, provides a reference clock that is recommended to be 32 MHz. The VCLKI input is driven from the output of the VCO, then this is selected as the
pixel clock.
The VCO is driven by the CL-PS7500FE PCOMP output, for most of the time is at the tristate value. When
the VCO frequency must be increased, PCOMP goes high, and vice-versa when the frequency must be
decreased.
The PCOMP output requires a filter before applying to the VCO. The user must select the filter and VCO.
A very simple and effective system can be built using an 74AC04 inverter pack, and a simple LC filter. The
filtered VCO output controls the operating voltage of the 74AC04 device. This system is shown in
Figure E-3, and has wide range of frequencies (LF to hundreds of MHz).
Since the output of this VCO is AC-coupled, VCLKI must be biased at the mid-voltage point. To do this,
connect a large resistor between VCLKI and VCLKO (VCLKO is the inversion of VCLKI).
NOTE: Low-power systems may require more complex circuitry to avoid DC paths during SUSPEND or STOP
modes.
238
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
VDD
PCOMP
33 µH
470R
100 µF
470R
VCLKI
33 nF
6M8
11 pF
VCLKI
Figure E-3. Suggested VCO/PLL Circuit
The actual frequency of the VCO is determined by the ratio of the v-modulus to the r-modulus as shown
in Equation E-1.
vmodulus
F VCO = F REF × ------------------------rmodulus
Equation E-1
NOTE: For a modulus of r, r − 1 is programmed, and likewise for the vmodulus.
Table E-1 shows a list of useful frequencies with corresponding values of r and v moduli, assuming a reference frequency of 32 MHz. There are many values of r and v that return the same ratio. The lower the
value, the more frequently the output of the VCO is updated, so choose the r and v values to suit the
response of the filter.
June 1997
ADVANCE DATA BOOK v2.0
239
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Table E-1.
Synthesized VCO Frequency Settings
r Modulus
v Modulus
VCO Frequency
(MHz)
8
2
8.0
16
6
12.0
4
2
16.0
8
6
24.0
2
2
32.0
8
9
36.0
16
35
70.0
4
15
120.0
4.
Phase Comparator Reset
The phase comparator and VCO form a closed-loop feedback system that can become unstable. If the
system powers up in the state where the PCOMP output is trying to drive the VCO output higher, it can
quickly reach a frequency where the phase comparator cannot resolve making recovery is impossible. To
avoid this, carefully apply the following reset procedure.
4.1
Reset Procedure
The test bits in the Frequency Synthesizer register can force the phase comparator output either high or
low. Soon after power-up, program this register with:
●
bits 15, 14, and 7 high
●
bit 6 low
The r and v moduli can have anything programmed into them, but r must be greater than v. This operation
forces the VCO frequency to decrease.
Program the real pixel rate in two steps:
1) Program the values of the r and v moduli, but leave the test bits in the initialization state.
2) Clear all test bits.
The VCO then ramps up to its operating frequency. Subsequently, a change of frequency can be achieved
simply by reprogramming the r and v moduli.
240
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendix F
CL-PS7500FE Test Modes
F.
1.
Introduction
The CL-PS7500FE has a pin, nTEST, combined with the nINT8, nINT3, and nINT6 pins to set the device
into various test modes. Most of these are intended for use only during production testing to allow the individual macrocells within the CL-PS7500FE to be tested directly from the external pins using a MUX-isolation scheme.
2.
Test Modes Description
When the nTEST pin is high, the CL-PS7500FE is in normal operating mode irrespective of the states of
nINT8, nINT3, and nINT6. However, when nTEST is set low, the chip is set into one of five possible test
modes dependent on the state of the three inputs nINT8, nINT3, and nINT6. Four of these test modes are
reserved for use on the tester.
However there is one test mode that, when selected, causes all the CL-PS7500FE outputs to be tristate.
This test mode is accessed by setting nTEST = 0, nINT8 = 0, nINT3 = 1, and nINT6 = 1.
IMPORTANT: Select no other combinations.
June 1997
ADVANCE DATA BOOK v2.0
241
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Notes
242
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Appendix G
CL-PS7500FE Pinout Differences from the ARM7500
G.
1.
Introduction
Table G-1 documents the pinout differences between the CL-PS7500FE and the ARM7500 processors.
Table G-1. CL-PS7500FE and ARM7500 Pin Differences
Pin Number
ARM7500 Pin Name
CL-PS7500FE Pin Name
61
VDD_SOUND
VDD
62
LP
VDD
63
RP
VSS
64
RM
VSS
65
LM
VDD_CORE
66
VSS_SOUND
VSS
67
SIREF
VSS_CORE
68
SDO_MUTE
SDO (Name change only)
71
WS_LNR
WS (Name change only)
June 1997
ADVANCE DATA BOOK v2.0
243
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Notes
244
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
INDEX
A
abbreviations 12
Abort mode 56
aborts 58
external 50
absolute maximum ratings 196
AC parameters 199
test conditions 198
acronyms 12
address translation 39
alignment faults 49
analog outputs 131
analog-to-digital convertors 116
ARM processor 27
asynchronous mode 191
A-to-D convertors 31
B
backward compatibility 54
banked registers 55
Big Endian 52
bufferable bit 36
bufferable write 36
bus interface 138, 187
C
cache 35
cacheable bit 35
CD offset registers 143
clock control 29, 191
clock prescalers 192
clocking schemes 192
comparators 118
compilers 33
condition code flags 56
configuration bits
for backward compatibility 53
configuration control registers 62
configurations 52, 62
control 64
control bits 57
control register 118, 153
conventions 12
convertor operation 118
convertors, analog-to-digital 116
June 1997
ADVANCE DATA BOOK v2.0
coprocessors 37, 62
counters 116
CPU
aborts 47
clock 191
cursor 126
HiRes mode 127
LCD mode 127
D
DAC control 131
pedestal current 131
power-save mode 131
data aborts 59
data control register 154
DC
operation 35
validity 35
DC specifications
digital 197
descriptors 41Ð42
digital conversion 116
display modes 136
DMA 30
channels 74
video 74
domain access control 48, 64
domain access control register 39
domain faults 50
DRAM interface 69
address multiplexing 70
control registers 69
self-refresh 73
dual panel LCDs 129, 230
E
EDO DRAM 69
timing mode selection 71
electrical specifications 196
exceptions 56Ð57
priorities 61
external aborts 50
external register 151
external support 130
INDEX
245
CL-PS7500FE
System-on-a-Chip for Internet Appliance
F
Fast Interrupt Request. See FIQ
faults
address register 39
addresses 47
checking sequences 48
status register 39
status registers 47
FIFO, setting preload value 138
FIQ 56Ð57
FPA
block diagram 159
Control Register 168
functional blocks 157
number formats 161
double-precision 161
extended double precision 162
extended packed decimal 163
packed decimal 163
single-precision 161
overview 156
Status Register 164
frequency synthesizer register 152
functional block diagram 27
G
GENLOCK 131
H
hardware cursor 135
HiRes mode 127
horizontal
border start register 145
cycle register 145
sync width register 145
I
I/O
address space usage 109
chip select decode logic 110
clock outputs 191
control 30
general purpose port 120
ID and open drain pins 121
lines 31
Module 111
PC bus style 111
Simple 8MHz 111
system clock 191
ID register 121
IDC 35
246
INDEX
IDC flush 35
instruction and data cache 35
instruction set 33
interface
serial sound 133
status of 117
video and sound macrocell 138
internal coprocessor instructions 62
interrupt latencies 61
Interrupt Request. See IRQ
interrupts 56, 59
control 116, 121
disable bits 57
handler 31
in timers 120
latencies 61
IRQ 58
K
keyboard interface 114
L
large page translation 45
LCD mode 127
LCDs 129
dual panel 27, 129
grayscaling 129
monochrome 27
single panel 27, 130
level one descriptor 41
level one fetch 40
Liquid Crystal Displays 129
Little Endian 52
M
MEMCLK 232
memory map 66
memory subsystem clock 191
memory system 29
MMU 38
MMU faults 47
mode bits 57
modes of operation 54
Module I/O 30, 111
monochrome output 132
mouse interface 114
multimedia 27
O
on-chip sound system 136
operating mode selection 54
operating modes 52
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
ordering information 226
P
package marking numbering guide 226
page table descriptor 41
pages 38
palette 126, 135
updating 126
PC bus style I/O 31, 111
permission faults 50
permissions 38
physical addresses 38
pixel clock 124, 136
power consumption 193
power management 29, 136, 192
power saving 131
prefetch abort 59
program-accessible registers
MMU 38
programmable registers 78
interface 114
R
R14 56
R15 56
read-lock-write 37
register configuration 52
registers 38, 52, 55, 63
configuration control 62
domain access control 39
fault 47
fault address 39
fault status 39
keyboard interface 114
mouse interface 114
programmable 78
version and ID 121
video and sound macrocell 140
reset 61, 195
ROM interface 67
S
sections 38
serial ports 31
serial sound interface 133
setting FIFO preload value 138
Simple I/O 30, 111
single panel LCDs 130
small page translation 44
software IDC flush 35
software interrupt 59
software interrupts 59
June 1997
ADVANCE DATA BOOK v2.0
sound 133
core 133
serial interface 133
sound control register 155
sound frequency register 154
sound subsystem
clock 191
sound system 136
status
of interface 117
STOP mode 194
storage temperature 196
Supervisor mode 56, 59
SUSPEND mode 193
SWI 59
synchronization
vertical and horizontal 131
synchronous mode 191
system reset timing 200, 203, 207, 222
T
table base 40
test modes 31
timers 119
interrupts 120
programming 120
timings
Display Memory bus
CAS#-before-RAS# Refresh 208
Read 205, 209, 212, 214
system reset 200, 203, 207, 222
timings, list of 199
translation 40
translation faults 50
translation table base
register 39
U
unbufferable writes 37
undefined instruction trap 60
Undefined mode 56
units of measure used 12
V
vectors 60
Version register 121
vertical registers 147
video and sound macrocell 29
interface 138
sound features 133
video DAC currents 132
video DMA 74
INDEX
247
CL-PS7500FE
System-on-a-Chip for Internet Appliance
video frame buffer restrictions 231
video palette register 142
video subsystem
clock 191
video system 135
virtual addresses 38
248
INDEX
W
waveform. See timings
write buffer 36
disabling 37
enabling 37
operation 36
ADVANCE DATA BOOK v2.0
June 1997
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Notes
June 1997
ADVANCE DATA BOOK v2.0
INDEX
249
CL-PS7500FE
Advance Data Book v2.0
Direct Sales Offices
Domestic
N. CALIFORNIA
Fremont
TEL: 510/623-8300
FAX: 510/252-6020
S. CALIFORNIA
Westlake Village
TEL: 805/371-5860
FAX: 805/371-5861
NORTHWESTERN AREA
Portland, OR
TEL: 503/620-5547
FAX: 503/620-5665
SOUTH CENTRAL
AREA
Austin, TX
TEL: 512/255-0080
FAX: 512/255-0733
Irving, TX
TEL: 972/252-6698
FAX: 972/252-5681
Houston, TX
TEL: 281/257-2525
FAX: 281/257-2555
NORTHEASTERN
AREA
Andover, MA
TEL: 978/794-9992
FAX: 978/794-9998
SOUTHEASTERN
AREA
Raleigh, NC
TEL: 919/859-5210
FAX: 919/859-5334
Boca Raton, FL
TEL: 561/241-2364
FAX: 561/241-7990
International
CHINA
Beijing
TEL: 86/10-6428-0783
FAX: 86/10-6428-0786
FRANCE
Paris
TEL: 33/1-48-12-2812
FAX: 33/1-48-12-2810
GERMANY
Herrsching
TEL: 49/81-52-92460
FAX: 49/81-52-924699
HONG KONG
Tsimshatsui
TEL: 852/2376-0801
FAX: 852/2375-1202
ITALY
Milan
TEL: 39/2-3360-5458
FAX: 39/2-3360-5426
JAPAN
Tokyo
TEL: 81/3-3340-9111
FAX: 81/3-3340-9120
KOREA
Seoul
TEL: 82/2-565-8561
FAX: 82/2-565-8565
SINGAPORE
TEL: 65/743-4111
FAX: 65/742-4111
TAIWAN
Taipei
TEL: 886/2-2718-4533
FAX: 886/2-2718-4526
UNITED KINGDOM
London, England
TEL: 44/1727-872424
FAX: 44/1727-875919
High-Value Systems in Silicon
Cirrus Logic is a premier supplier of system-level integrated circuits that demand high-performance mixedsignal processing. Our company’s software-rich ‘systems in silicon’ add high value to major brands worldwide. We
apply our system expertise to enable high-volume applications in data storage, networking, and multimedia for
both computing and consumer electronics markets as well as ultra-high-precision data acquisition applications for
industrial automation and instrumentation markets.
Cirrus Logic’s manufacturing strategy ensures maximum product quality and availability, as well as access to
world-class processing technologies through joint ventures with IBM and Lucent Technologies.
Contact one of our systems and applications specialists to see how your company can benefit from the high value
Cirrus Logic adds to its customers’ products.
Copyright  1997 Cirrus Logic, Inc. All rights reserved.
Advance product information describes products that are in development and subject to developmental changes. Cirrus Logic, Inc. has made best efforts
to ensure that the information contained in this document is accurate and reliable. However, the information is subject to change without notice. No
responsibility is assumed by Cirrus Logic, Inc. for the use of this information, nor for infringements of patents or other rights of third parties. This document
is the property of Cirrus Logic, Inc. and implies no license under patents, copyrights, or trade secrets. No part of this publication may be copied, reproduced,
stored in a retrieval system or transmitted in any form or by any means (electronic, mechanical, photographic, or otherwise) or used as the basis for
manufacture or sale of any items without the prior written consent of Cirrus Logic, Inc. Cirrus, Cirrus Logic, AccuPak, Alpine, Clear3D, Crystal,
CrystalClear, CrystalWare, DirectVPM, DIVA, FastEn, FastPath, FasText, FeatureChips, FilterJet, Get into it, Good Data, IntelliFilter, Laguna, Laguna3D,
LagunaTV, Matterhorn, MediaDAC, MediaMax, Mojave, MotionVideo, MVA, SimulSCAN, S/LA, SmartAnalog, SMASH, SofTarget, SoundFusion, Stargate,
Systems in Silicon, TextureJet, True-D, TVTap, UXART, VisualMedia, VPM, V-Port, V-Port Manager, Voyager, WavePort, and WebSet are trademarks of
Cirrus Logic, Inc., which may be registered in some jurisdictions. Other trademarks in this document belong to their respective companies. CRUS and
Cirrus Logic International, Ltd. are trade names of Cirrus Logic, Inc.
Cirrus Logic, Inc.
3100 West Warren Ave., Fremont, CA 94538
TEL: 510/623-8300 FAX: 510/252-6020
Publications Ordering: 800/359-6414 (USA) or 510/249-4200
Worldwide Web:
http://www.cirrus.com
447500-001
Similar pages