AT697F-KG-E [ATMEL]
Rad-Hard 32 bit SPARC V8 Processor; 抗辐射32位SPARC V8处理器型号: | AT697F-KG-E |
厂家: | ATMEL |
描述: | Rad-Hard 32 bit SPARC V8 Processor |
文件: | 总155页 (文件大小:3140K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
Features
• SPARC V8 High Performance Low-power 32-bit Architecture
– 8 Register Windows
• Advanced Architecture:
– On-chip Amba Bus
– 5 Stage Pipeline
– 16 kbyte Multi-sets Data Cache
– 32 kbyte Multi-sets Instruction Cache
• On-chip Peripherals:
– Memory Interface
PROM Controller
SRAM Controller
SDRAM Controller
Rad-Hard 32 bit
SPARC V8
Processor
– Timers
Two32-bit Timers
Watchdog 32-bitTimer
– Two 8-bit UARTs
– Interrupt Controller with 8 External Programmable Inputs
– 32 Parallel I/O Interface
AT697F
– 33MHz PCI Interface Compliant with 2.2 PCI Specification
• Integrated 32/64-bit IEEE 754 Floating-point Unit
• Fault Tolerance by Design
– Full Triple Modular Redundancy (TMR)
– EDAC Protection
– Parity Protection
• Debug and Test Facilities
– Debug Support Unit (DSU) for Trace and Debug
– IEEE 1149.1 JTAG Interface
– Four Hardware Watchpoints
• 8 and 40-bit boot-PROM Interface Possibilities
• Operating range
Advance
– Voltages
Information
3.3V +/- 0.30V for I/O
1.8V +/- 0.15V for Core
– Temperature
-55°C to 125°C
• Clock: 0MHz up to 100MHz
• Power consumption: 1W at 100MHz
• Performance:
– 86MIPS (Dhrystone 2.1)
– 23MFLOPS (Whetstone)
• Radiation Performance
– Tested up to a total dose of 300Krads (Si) according to the MIL-STD883 method
1019
– SEU error rate better than 1 E-5 error/device/day
– No Single Event Latchup below a LET threshold of 70 MeV.cm²/mg
• Package MCGA349 and MQFPF256
• Mass: 9g
• Development Kit Including
– AT697F Evaluation Board
– AT697F Sample
7703C–AERO–6/09
Description
The AT697F is a highly integrated, high-performance 32-bit RISC embedded processor based
on the SPARC V8 architecture. The implementation is based on the European Space Agency
(ESA) LEON2 fault tolerant model. By executing powerful instructions in a single clock cycle, the
AT697F achieves throughputs approaching 1MIPS per MHz, allowing the system designer to
optimize power consumption versus processing speed.
The AT697F is designed to be used as a building block in computers for on-board embedded
real-time applications. It brings up-to-date functionality and performance for space application.
The AT697F only requires memory and application specific peripherals to be added to form a
complete on-board computer.
The AT697F contains an on-chip Integer Unit (IU), a Floating Point Unit (FPU), separate instruc-
tion and data caches, hardware multiplier and divider, interrupt controller, debug support unit
with trace buffer, two 32-bit timers, Parallel and Serial interfaces, a Watchdog, a PCI Interface
and a flexible Memory Controller. The design is highly testable with the support of a Debug Sup-
port Unit (DSU) and a boundary scan through JTAG interface.
An Idle mode holds the processor pipeline and allows Timer/Counter, Serial ports and Interrupt
system to continue functioning.
The processor is manufactured using the Atmel 0.18 µm CMOS process. It has been especially
designed for space, by implementing on-chip concurrent transient and permanent error detec-
tion and correction.
The AT697F is pinout compatible with the AT697E.
Refer to section “Differences between AT697F and AT697E”, page 146“ for detailed description
of the differences between AT697F and AT697FE.
2
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 1. AT697F Block Diagram
AT697F
I -Cache
D-Cache
Integer Unit
(SPARC V8)
BRDY*
READ
WRITE*
A[27:0]
D[31:0]
...
PROM
Memory
Controller
FPU
SRAM
SDRAM
TDI
JTAG
TDO
...
AMBA
Controller
AHB
RxD
DSU
TxD
...
AMBA
bridge
RESET*
Reset
PCI/AMBA
bridge
PCI
CLK
BYPASS
...
Clock
Generator
APB
interrupt
Interrupt
Controller
config
PIO
RxD
TxD
RS232
Watchdog
Timers
WDOG*
IOs
3
7703C–AERO–6/09
Pin Configuration
MCGA349 package
Table 1. AT697F MCGA349 pinout - Advanced Information
A
B
C
D
E
PIO[6]
N.C.
F
G
RAMS*[1]
RAMS*[2]
RAMOE*[3]
RAMS*[4]
RAMOE*[1]
VSS33
PIO[7]
PIO[8]
CB[3]
1
2
VDD18
VDD18
VSS18
PIO[9]
PIO[11]
VCC33
N.C.
VSS18
PIO[0]
VCC33
N.C.
PIO[1]
PIO[4]
N.C.
VSS18
VDD18
VDD18
N.C.
3
VDD18
VSS18
N.C.
PIO[2]
PIO[5]
N.C.
4
PIO[3]
VSS33
N.C.
5
N.C.
6
PIO[13]
CB[1]
CB[6]
D[3]
PIO[10]
VSS33
CB[4]
N.C.
Reserved
PIO[15]
VCC33
VSS33
VSS33
D[13]
CB[0]
VSS33
CB[7]
D[6]
7
PIO[12]
CB[2]
VCC33
D[10]
D[15]
D[16]
VSS33
VSS33
N.C.
8
D[2]
9
D[1]
10
11
12
13
14
15
16
17
18
19
D[8]
D[5]
VCC33
VCC33
D[11]
Reserved
D[7]
D[4]
D[12]
D[17]
D[21]
D[25]
D[30]
VSS18
VDD18
VSS33
D[18]
N.C.
VSS33
VCC33
D[27]
D[14]
VSS33
N.C.
D[19]
D[23]
VCC33
D[22]
A[1]
N.C.
A[3]
N.C.
D[26]
D[29]
N.C.
A[12]
VSS18
VDD18
VSS18
D[28]
VCC33
D[31]
N.C.
N.C.
A[6]
VSS18
VDD18
VDD18
N.C.
A[7]
VSS33
A[8]
VCC33
VSS18
A[0]
A[4]
A[2]
VSS33
A[9]
4
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 2. AT697F MCGA349 pinout - Advanced Information
H
RAMOE*[0]
RAMOE*[2]
VCC33
RAMOE*[4]
RWE*[1]
RWE*[3]
RAMS*[0]
RAMS*[3]
CB[5]
j
k
l
m
n
p
1
2
VSS33
ROMS*[1]
ROMS*[0]
RWE*[0]
WRITE*
RWE*[2]
N.C.
READ
TCK
DSUACT
DSURX
DSUTX
DSUEN
TMS
BEXC*
SDCLK
DSUBRE
SDDQM[2]
N.C.
VCC33
VSS33
SDDQM[1]
N.C.
SDWE*
PCI_CLK
VSS33
SDCS*[0]
SDCAS*
A/D[24]
A/D[30]
A/D[18]
A/D[17]
IRDY*
3
TDI
4
TDO
5
VSS33
IOS*
SDDQM[3]
GNT*
6
VSS33
SDDQM[0]
BRDY*
SDRAS*
A/D[14]
N.C.
VSS33
VSS33
VCC33
A/D[22]
VSS33
A/D[12]
AGNT*[3]
N.C.
7
TRST
OE*
VCC33
A/D[21]
A/D[16]
PERR*
A/D[9]
8
VCC33
PIO[14]
D[0]
9
VSS33
N.C.
10
11
12
13
14
15
16
17
18
19
D[9]
D[20]
A[5]
A[16]
A[26]
A[21]
A[27]
VCC33
A[23]
VSS33
A[22]
A[25]
A/D[15]
A/D[8]
D[24]
A[14]
VDD_PLL
N.C.
A/D[1]
N.C.
VCC33
VCC33
VSS33
VSS33
A[17]
VSS33
A/D[0]
A/D[5]
A[10]
LOCK
SKEW[1]
Reserved
N.C.
AGNT*[1]
CLK
N.C.
A[24]
BYPASS
AREQ*[2]
N.C.
A[11]
RESET*
VCC33
VSS33
ERROR*
VSS33
VSS33
N.C.
A[19]
WDOG*
VSS_PLL
SKEW[0]
A[13]
A[18]
AREQ*[3]
VCC33
A[15]
A[20]
AREQ*[1]
5
7703C–AERO–6/09
Table 3. AT697F MCGA349 pinout - Advanced Information
r
REQ*
t
u
v
w
1
2
VSS18
SDCS*[1]
A/D[31]
A/D[29]
N.C.
VDD18
VDD18
VSS18
VCC33
A/D[26]
IDSEL
VCC33
FRAME*
N.C.
N.C.
VSS18
VDD18
VSS18
N.C.
3
PCI_RST*
N.C.
VDD18
VSS18
A/D[28]
A/D[25]
A/D[23]
A/D[19]
VSS33
VCC33
SERR*
A/D[13]
VSS33
A/D[6]
4
5
N.C.
6
N.C.
A/D[27]
VSS33
VSS33
VCC33
DEVSEL*
VCC33
A/D[11]
A/D[7]
VSS33
C/BE*[3]
A/D[20]
C/BE*[2]
VCC33
C/BE*[1]
VSS33
VSS33
A/D[4]
7
SYSEN*
VSS33
TRDY*
PCI_LOCK*
VSS33
N.C.
8
9
10
11
12
13
14
15
16
17
18
19
STOP*
VSS33
PAR
VCC33
VCC33
N.C.
A/D[10]
C/BE*[0]
VCC33
N.C.
VSS33
A/D[2]
N.C.
A/D[3]
N.C.
VCC33
AGNT*[0]
AGNT*[2]
VSS18
VDD18
VDD18
VSS18
VSS18
VDD18
VCC33
N.C.
VSS18
VDD18
VDD18
AREQ*[0]
Notes: 1. ‘Reserved’ pins shall not be driven to any voltage
2. N.C. refers to unconnected pins
6
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
QFP256 Package
Table 4. AT697F QFP256 pinout
pin
number
pin
number
pin
number
pin name
pin name
pin name
1
VCC33
PCI_REQ*
PCI_GNT*
PCI_CLK
PCI_RST*
SDCS*[0]
VSS
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
TCK
TMS
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
PIO[1]
PIO[2]
PIO[3]
PIO[4]
PIO[5]
PIO[6]
VCC33
PIO[7]
PIO[8]
PIO[9]
VSS
2
3
VSS
4
TDI
5
TDO
6
WRITE*
READ
7
8
VDD18
OE*
9
SDCS*[1]
SDWE*
SDRAS*
VSS
IOS*
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
VCC33
ROMS*[0]
ROMS*[1]
RWE*[0]
RWE*[1]
RWE*[2]
RWE*[3]
RAMOE*[0]
RAMOE*[1]
RAMOE*[2]
RAMOE*[3]
RAMOE*[4]
RAMS*[0]
VCC33
VDD18
PIO[10]
PIO[11]
Reserved
PIO[12]
PIO[13]
PIO[14]
PIO[15]
VCC33
CB[0]
VSS
SDCAS*
VCC33
SDDQM[0]
SDDQM[1]
SDDQM[2]
SDDQM[3]
SDCLK
BRDY*
BEXC*
CB[1]
VSS
CB[2]
VSS
RAMS*[1]
RAMS*[2]
RAMS*[3]
VSS
CB[3]
DSUEN
DSUTX
DSURX
DSUBRE
DSUACT
TRST
VCC33
CB[4]
CB[5]
VDD18
CB[6]
RAMS*[4]
PIO[0]
CB[7]
D[0]
7
7703C–AERO–6/09
Table 5. AT697F QFP256 pinout
pin
pin
number
pin
number
pin name
number
pin name
pin name
91
92
VCC33
D[1]
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
D[25]
D[26]
D[27]
D[28]
D[29]
D[30]
VCC33
D[31]
N.C.
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
A[19]
A[20]
93
D[2]
A[21]
94
D[3]
A[22]
95
D[4]
VSS
96
D[5]
VCC33
97
D[6]
A[23]
98
Reserved
VCC33
D[7]
A[24]
99
A[25]
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
A[0]
A[26]
D[8]
A[1]
A[27]
D[9]
VSS
WDOG*
ERROR*
VCC33
D[10]
D[11]
D[12]
VCC33
D[13]
D[14]
D[15]
D[16]
D[17]
VSS
VDD18
A[2]
A[3]
RESET*
Reserved
LOCK
A[4]
VCC33
A[5]
SKEW[1]
SKEW[0]
BYPASS
VSS_PLL
N.C.
A[6]
A[7]
A[8]
A[9]
D[18]
VCC33
D[19]
D[20]
D[21]
D[22]
D[23]
D[24]
VSS
A[10]
VCC33
A[11]
A[12]
A[13]
A[14]
A[15]
A[16]
VCC33
A[17]
A[18]
VDD_PLL
CLK
VCC33
PCI_AREQ*[3]
PCI_AGNT*[3]
PCI_AREQ*[2]
VSS
VDD18
PCI_AGNT*[2]
PCI_AREQ*[1]
VCC33
VDD18
VCC33
8
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 6. AT697E MQFP256 pinout
pin
number
pin
number
pin
number
pin name
pin name
pin name
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
PCI_AGNT*[1]
PCI_AREQ*[0]
PCI_AGNT*[0]
A/D[0]
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
A/D[12]
A/D[13]
A/D[14]
A/D[15]
VCC33
C/BE*[1]
PAR
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
A/D[19]
SYSEN*
A/D[20]
VCC33
A/D[21]
A/D[22]
A/D[23]
IDSEL
VCC33
A/D[1]
A/D[2]
A/D[3]
SERR*
PERR*
VCC33
PCI_LOCK*
STOP*
DEVSEL*
TRDY*
VCC33
IRDY*
A/D[4]
C/BE*[3]
VCC33
A/D[24]
A/D[25]
A/D[26]
VSS
VSS
VDD18
VCC33
A/D[5]
A/D[6]
A/D[7]
VDD18
A/D[27]
VCC33
A/D[28]
A/D[29]
A/D[30]
A/D[31]
C/BE*[0]
VSS
FRAME*
VSS
VCC33
A/D[8]
C/BE*[2]
A/D[16]
VCC33
A/D[17]
A/D[18]
A/D[9]
A/D[10]
A/D[11]
VCC33
Notes: 1. ‘Reserved’ pins shall not be driven to any voltage
2. N.C. refers to unconnected pins
9
7703C–AERO–6/09
Pin Description
ATMEL Convention
‘*’ attached to a signal (e.g OE*) designate an active-low signal.
When a bit of a register is writen in C-like style (e.g MCFG2JRAMWWS) it must be read as the
RAMWWS bit in the register MCFG2.
IU and FPU Signals
A[27:0] - Address bus (output)
A[27:0] bus carries the addresses during accesses to external memory. When access to cache
memory is performed, the address of the last external memory access remains driven on the
address bus.
D[31:0] - Data bus (bi-directional)
D[31:0] bus carries the data during accesses to memory. The processor automatically config-
ures the bus as output and drive the lines during write transactions.
During accesses to 8-bit areas, only D[31:24] are used.
CB[7:0] - Check bits (bi-directional)
CB[6:0] bus carries the EDAC checkbits during memory accesses. CB[7](1) takes the value of
tcb[7] in the error control register. Processor only drives CB[7:0] during write transactions to
areas programmed to be EDAC protected.
Note:
1. CB[7] is implemented to enable programming of flash memories. When only 7 bits are useful
for EDAC protection, 8 are needed for programming.
Memory Interface
Signals
General management
OE* - Output enable (output)
This active low output is asserted during read transactions on the memory bus.
BRDY* - Bus ready (input)
When driven low, this input indicates to the processor that the current memory access can be
terminated on the next rising clock edge. When driven high, this input indicates to the processor
that it must wait and not end the current access.
READ - Read transaction (output)
This active high output is asserted during read transactions on the memory bus.
WRITE* - Write enable (output)
This active low output provides a write strobe during write transactions on the memory bus.
PROM
SRAM
ROMS*[1:0] - PROM chip-select (output)
These active low outputs provide the chip-select signal for the PROM area. ROMS*[0] is
asserted when the lower half of the PROM area is accessed (0 - 0x10000000), while ROMS*[1]
is asserted for the upper half.
RAMOE*[4:0] - RAM output enable (output)
These active low signals provide an individual output enable for each RAM bank.
RAMS*[4:0] - RAM chip-select (output)
These active low outputs provide the chip-select signals for each RAM bank.
RWE* [3:0] - RAM write enable (output)
These active low outputs provide individual write strobes for each byte. RWEN[0] controls
D[31:24], RWEN[1] controls D[23:16], etc.
I/O
IOS* - I/O select (output)
10
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
This active low output is the chip-select signal for the memory mapped I/O area.
SDRAM Interface
SDCLK - SDRAM clock (output)
SDRAM clock provides the SDRAM interface clock reference.
SDCAS* - SDRAM column address strobe (output)
This active low signal provides a common CAS for all SDRAM devices.
SDCS*[1:0] - SDRAM chip select (output)
These active low outputs provide the chip select signals for the two SDRAM banks.
SDDQM[3:0] - SDRAM data mask (output)
These active low outputs provide the DQM signals for both SDRAM banks.
SDRAS*- SDRAM row address strobe (output)
This active low signal provides a common RAS for all SDRAM devices.
SDWE* - SDRAM write strobe (output)
This active low signal provides a common write strobe for all SDRAM devices.
System Signals
CLK - Processor clock (input)
The CLK input provides the main processor clock reference.
RESET* - Processor reset (input)
When asserted, this active low input will reset the processor and all on-chip peripherals.
WDOG* - Watchdog time-out (open-drain output)
This active low output is asserted when the watchdog expires.
BEXC* - Bus exception (input)
This active low input is sampled simultaneously with the data during accesses on the memory
bus. If asserted, a memory error will be generated.
ERROR* - Processor error (open-drain output)
This active low output is asserted when the processor has entered error state and is halted. This
happens when traps are disabled and a synchronous (un-maskable) trap occurs.
PIO[15:0] - Parallel I/O port (bi-directional)
These bi-directional signals can be used as inputs or outputs to control external devices.
BYPASS - PLL bypass (input)
When driven to VCC, this active high input set the PLL in bypass mode. The device is then
directly clocked by the external clock. When grounded, the device is clocked through the PLL.
SKEW[1:0] - Clock tree skew (input)
These input signals configurate the programmable skew on the triplicated clock trees.
LOCK - PLL lock (output)
This active high output is asserted when the PLL output (internal node) is locked at the fre-
quency corresponding to four times the input command.
DSU Signals
DSUACT - DSU active (output)
This active high output is asserted when the processor is in debug mode and controlled by the
DSU.
DSUBRE - DSU break enable (input)
11
7703C–AERO–6/09
A low-to-high transition on this active high input will generate break condition and put the pro-
cessor in debug mode.
DSUEN - DSU enable (input)
The active high input enables the DSU unit. If de-asserted, the DSU trace buffer will continue to
operate but the processor will not enter debug mode.
DSURX - DSU receiver (input)
This active high input provides the data to the DSU communication link receiver
DSUTX - DSU transmitter (output)
This active high input provides the output from the DSU communication link transmitter.
JTAG
TCK - Test Clock (input)
Used to clock serial data into boundary scan latches and control sequence of the test state
machine. TCK can be asynchronous with CLK.
TMS - Test Mode select (input)
Primary control signal for the state machine. Synchronous with TCK. A sequence of values on
TMS adjusts the current state of the TAP.
TDI - Test data input (input)
Serial input data to the boundary scan latches. Synchronous with TCK
TDO - Test data output (output)
Serial output data from the boundary scan latches. Synchronous with TCK
TRST - Test Reset (input)
Resets the test state machine. Can be asynchronous with TCK. Shall be grounded for end
application.
PCI Arbiter
AREQ*[3:0] - PCI bus request (Input)
When asserted, these active low inputs indicate that a PCI agent is requesting the bus.
AGNT*[3:0] - PCI bus grant (Output)
When asserted, these active low outputs indicate that a PCI agent is granted the PCI bus.
12
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
PCI interface
A/D[31:0] - PCI Address Data (bi-directional)
Address and Data are multiplexed on the same PCI pins.
During the address phase, A/D[31::00] contain a physical address (32 bits). For I/O, this is a byte
address; for configuration and memory, it is a DWORD address. During data phases,
A/D[07::00] contain the least significant byte and A/D[31::24] contain the most significant byte.
C/BE[3:0]* - PCI Bus Command and Byte Enables (bi-directional)
During the address phase of a transaction, C/BE[3::0]* define the bus command. During the data
phase, C/BE[3::0]* are used as Byte Enables. The Byte Enables are valid for the entire data
phase.
PAR - Parity (bi-directional)
The number of "1"s on A/D[31::00], C/BE[3::0]*, and PAR equals an even number
FRAME* - Cycle Frame (bi-directional)
It is driven by the current master to indicate the beginning and duration of an access. FRAME* is
asserted to indicate a bus transaction is beginning. While FRAME* is asserted, data transfers
continue. When FRAME* is deasserted, the transaction is in the final data phase or has
completed.
IRDY* - Initiator Ready (bi-directional)
IRDY* indicates the initiating agent’s ability to complete the current data phase of the transac-
tion. IRDY* is used in conjunction with TRDY*. During a write, IRDY* indicates that valid data is
present on A/D[31::00]. During a read, it indicates the master is prepared to accept data.
TRDY* - Target Ready (bi-directional)
TRDY* indicates the target agent’s (selected device’s) ability to complete the current data phase
of the transaction. TRDY* is used in conjunction with IRDY*. During a read, TRDY* indicates that
valid data is present on AD[31::00]. During a write, it indicates the target is prepared to accept
data.
STOP* - Stop (bi-directional)
STOP* indicates the current target is requesting the master to stop the current transaction.
PCI_LOCK* - Lock (bi-directional)
PCI_LOCK* indicates an atomic operation to a bridge that may require multiple transactions to
complete.
IDSEL - Initialization Device Select (input)
Initialization Device Select is used as a chip select during configuration read and write
transactions.
DEVSEL* - Device Select (bi-directional)
When actively driven, indicates the driving device has decoded its address as the target of the
current access. As an input, DEVSEL* indicates whether any device on the bus has been
selected.
REQ* - PCI bus request (output)
REQ* indicates to the arbiter that this agent desires use of the bus. This is a point-to-point sig-
nal. Every master has its own REQ* which must be tri-stated while RST* is asserted.
GNT* - PCI Bus Grant (input)
GNT* indicates to the agent that access to the bus has been granted. This is a point-to-point sig-
nal. Every master has its own GNT* which must be ignored while RST* is asserted.
PCI_CLK - PCI clock (input)
13
7703C–AERO–6/09
PCI_CLK provides timing for all transactions on PCI. All other PCI signals, except RST*, are
sampled on the rising edge of PCI_CLK and all other timing parameters are defined with respect
to this edge.
RST* - PCI Reset (input)
Reset is used to bring PCI-specific registers, sequencers, and signals to a consistent state.
PERR* - Parity Error (bi-directional)
Parity Error is only for the reporting of data parity errors during all PCI transactions except a
Special Cycle. The PERR* pin is sustained tri-state and must be driven active by the agent
receiving data two clocks following the data when a data parity error is detected. The minimum
duration of PERR* is one clock for each data phase that a data parity error is detected.
SERR* - System Error (bi-directional)
System Error is for reporting address parity errors, data parity errors on the special cycle com-
mand, or any other system error where the result will be catastrophic. If an agent does not want
a non-maskable interrupt (NMI) to be generated, a different reporting mechanism is required.
SYSEN* - PCI Host (input)
This active low input specifies the configuration of the device. At boot-up time, if SYSEN* is sam-
pled at a low level, the device is configured as the host of the PCI bus. If SYSEN* is sampled at
a high level, the device is configured as a satellite.
14
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
AT697F CPU
Core
This section discusses the SPARC core architecture in general. The main function of the CPU core
is to ensure correct program execution. The CPU must therefore be able to access memories, perform cal-
culations, control peripherals, and handle interrupts.
SPARC
The AT697F CPU core is based on the LEON2 architecture.
Architecture
Overview
Figure 2. Block diagram of the AT697F Integer Unit architecture
call/branch address
I-cache
+1
Add
jmpa tbr
f_pc
‘0’
data
address
Fetch
d_inst
e_inst
d_pc
Decode
imm, tbr, wim, psr
e_pc
rs1
operand2
Execute
mul/div
y
alu/shift
32
30
ex pc
jmpl address
m_inst
w_inst
m_pc
w_pc
result
ytmp
D-cache
Memory
Write
32
32
address/dataout
datain
wres
Y
30
tbr, wim, psr
rd
regfile
rs2
rs1
The AT697F integer unit (IU) implements SPARC integer instructions as defined in SPARC
Architecture Manual version 8. The IU is designed for highly dependable space and military
applications by including fault tolerance features.
To execute instructions at a rate approaching one instruction per clock cycle, the IU employs a
five-stage instruction pipeline that permits parallel execution of multiple instructions.
•
Instruction Fetch: If the instruction cache is enabled, the instruction is fetched from the
instruction cache. Otherwise, the fetch is forwarded to the memory controller. The instruction
is valid at the end of this stage and is latched inside the IU.
•
Decode: The instruction is decoded and the operands are read. Operands may come from
the register file or from internal data bypasses. CALL and Branch target addresses are
generated in this stage.
•
•
Execute: ALU, logical, and shift operations are performed. For memory operations and for
JMPL/RETT, the address is generated.
Memory: Data cache is accessed. For cache reads, the data will be valid by the end of this
stage, at which point it is aligned as appropriate. Store data read out in the Execute stage is
written to the data cache at this time.
•
Write: The result of any ALU, logical, shift, or cache read operations re written back to the
register file.
All five stages operate in parallel, working on up to five different instructions at a time. A basic
’single-cycle’ instruction enters the pipeline and completes in five cycles.
15
7703C–AERO–6/09
By the time it reaches the write stage, four more instructions have entered and are driving
through the pipeline behind it. So, after the first five cycles, a single-cycle instruction exits the
pipeline and a single-cycle instruction enters the pipeline on every cycle. Of course, a ’single-
cycle’ instruction actually takes five cycles to complete, but they are called single cycle because
with this type of instruction the processor can complete one instruction per cycle after the initial
five-cycle delay.
In order to maximize performance and parallelism, the AT697F SPARC implementation uses powerful
AMBA bus. Instructions in the program memory are executed with a five level pipelining. While one
instruction is being executed, the next instruction is pre-fetched from the program memory. This concept
enables instructions to be executed in every clock cycle.
Program Counters
Two 32-bit program counters (PC and nPC) are provided. The 32-bit PC contains the address of
the instruction currently being executed by the IU. The nPC holds the address of the next
instruction to be executed (assuming a trap does not occur).
When a trap occurs, the PC address is saved in the local register (l1) while the nPC address is
saved in the local register (l2). When returning from trap, l1 value is copied back to PC and l2
value is copied back to nPC.
ALU - Arithmetic Logic The high-performance ALU operates in direct connection with all the 32 general purpose work-
Unit
ing registers. Within a single clock cycle, arithmetic operations between general purpose
registers or between a register and an immediate memory address are executed. The imple-
mentation of the architecture also provide a powerful multiplier/divider supporting both signed
and unsigned multiplication/division.
Support for high performance 64-bit operation is also provided.The 32-bit Y register contains the
most significant word of the double-precision product of an integer multiplication, as a result of
either an integer multiply instruction, or of a routine that uses the integer multiply step instruc-
tion. The Y register also holds the most significant word of the double-precision dividend for an
integer divide instruction.
Register File -
Windows
The fast access register file contains 8 SPARC register windows. Each window consists in a 32-
register set. When a program is running, it has access to 32 32-bit processor registers which
include 8 global registers plus 24 registers that belong to the current register window.
•
•
•
The first 8 registers in the window are called the in registers’ (i0-i7). When a function is
called, these registers may contain arguments that can be used.
The next 8 are the ’local registers’ (l0-l7) which are scratch registers that can be used for
anything while the function executes.
The last 8 registers are the ’out registers’ (o0-o7) which the function uses to pass arguments
to functions that it calls.
AT697F register file implementation is based on two dual-port rams. The first dual-port ram cor-
responds to %rs1 operand of a SPARC instruction while the second corresponds to %rs2
operand. The two dual-port rams contents are always equal.
When one function calls another, the calling function can choose to execute a SAVE instruction.
This instruction decrements an internal counter, the current window pointer (cwp), shifting the
register window downward. The caller’s out registers then become the calling function’s in regis-
ters, and the calling function gets a new set of local and out registers for its own use. Only the
pointer changes because the registers and return address do not need to be stored on a stack.
The RETURN instruction acts in the opposite way
16
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 3. Overlapping Windows
W7
cwp
w7
ins
w7
locals
w7
outs
w0
w0 outs
w6
ins
w1
outs
locals
w6
w0
ins
locals
W0
w1
W1
W6
w5
ins
w6
outs
locals
globals
w2
outs
w5
w1
ins
locals
W2
W5
w2
W4
w4
ins
locals
w5
outs
w4
w2
ins
locals
w4
outs
w3
outs
w3
w3
ins
locals
W3
The Window Invalid Mask register (WIM) is controlled by supervisor software and is used by
hardware to determine whether a window overflow or underflow trap is to be generated by a
SAVE, RESTORE, or RETT instruction.
When a SAVE, RESTORE, or RETT instruction is executed, the current value of the CWP is
compared against the WIM register. If the SAVE, RESTORE, or RETT instruction would cause
the CWP to point to an “invalid” register set, a window_overflow or window_underflow trap is
caused.
To prevent erroneous operations from SEU errors in the main register file, each word is pro-
tected with a 7-bit EDAC checksum. The EDAC checksums are checked when the register is
used as operand in an instruction. Any single-bit error is corrected and written back to the regis-
ter file before the instruction is executed. If an un-correctable error is detected, a register
hardware error trap (trap 0x20) is generated.
The protection can be enabled/disabled by programming the asr16Jdi bit from register file pro-
tection control register. By setting the asr16Jte bit, errors can be inserted in the register file to
test the protection function. When the asr16Jte bit is set, the register checksum is combined
with the asr16Jtcb field before being written to the register file.
Due to the presence of the two dual-port rams for register file implementation, the following rules
apply to the error injection test process.
•
•
Test checkbits TCB[2:0] is Xored with checkbit[6:4] corresponding to the %rs1 operand.
Test checkbits TCB[5:3] is Xored with checkbit[6:4] corresponding to the %rs2 operand.
Here is a simple example for the test of a single error in register file %rs1
! 0x32 =
!
!
!
register file test enable
tcb[2:0] = 0x4
tcb[5:3] = 0x1
mov 0x32, %l1
mov %l1, %asr16
! clear %l3
! => write 0x0 to %l3
!
forces 0x08 as checkbit for %l3 (error insertion in %rs1 dual-port ram)
mov %g0, %l3
! disable EDAC test mode
mov %g0, %asr16
! access to %l3 as %rs1 operand
! => single error detection and correction
add %l3,%l2,%l1
17
7703C–AERO–6/09
A correction counter asr16Jcnt is provided for error management. The asr16Jcnt field is incre-
mented each time a register correction is performed. It saturates at “111”.
State Register
The State Register (PSR) contains information about the result of the most recently executed arithmetic
instruction. This information can be used for altering program flow in order to perform conditional opera-
tions. Note that the Status Register is updated after all ALU operations, as specified in the SPARC
architecture specification. This will in many cases remove the need for using the dedicated compare
instructions, resulting in faster and more compact code.
The state also provides some global information on the current window used, the authorized
interrupts and peripheral (FPU and coprocessor) presence. A global interrupt management is
provided through the processor state register. Trap and Interrupts can be individually
enabled/disables from within this register.
Instruction Set
AT697F instructions fall into six functional categories: load/store, arithmetic/logical/ shift, control
transfer, read/write control register, floating-point, and miscellaneous. Please refer to SPARC V8
Architecture manual that presents all the implemented instructions.
Floating Point Unit The FPU is designed to provide execution of single and double-precision floating-point instruc-
tions. During the execution of floating-point instructions the processor pipeline is held.
The FPU is designed for highly dependable space and military applications, by including fault
tolerance features like error detection and correction and triple modular redundancy.
The FPU depends upon the IU to access all addresses and control signals for memory access.
Floating-point loads and stores are executed in conjunction with the IU, which provides
addresses and control signals while the FPU supplies or stores the data. Instruction fetch for
integer and floating-point instructions is provided by the IU.
The FPU contains 32 32-bit floating-point f registers, which are numbered from f[0] to f[31].
Unlike the windowed r registers, at a given time an instruction has access to any of the 32 f reg-
isters. The f registers can be read and written by FPop (FPop1/FPop2 format) instructions, and
by load/store single/double floating-point instructions (LDF, LDDF, STF, STDF).
Rounding Direction
Rounding direction for floating point results is built according to the ANSI/IEEE Standard 754-
1985.
In this way,
•
•
•
•
0 = round to nearest
1 = round to zero
2 = round to +infinity
3 = round to -infinity
Figure 4. Rounding Direction Schematic
Value < 0
0
Value > 0
- ∞
+
∞
round to - ∞
round to zero
round to + ∞
round to zero
round to - ∞
round to + ∞
Fault Tolerance
The processor has been especially designed for space application. To prevent erroneous opera-
tions from single event transient (SET) and single event upset (SEU) errors, the AT697F
processor implements a set of protection features including :
•
Full triple modular redundancy (TMR) architecture
The TMR architecture is based on a fully triplicated clock distribution (CLK1, CLK2 and
CLK3). The PCI clock and the CPU clock are built as three-clock trees. The same triplication
is applied to the PCI reset and to the CPU reset. See figure 5 for an overview of the TMR
architecture.
18
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Programmable skews on the clock trees are also provided to prevent the processor from
arbitrary single-event transient errors.
Refer to the ‘clock’ section for detailed information on TMR implementation and skew
implementation.
•
•
•
EDAC protection on Regfile
EDAC protection on external memory interface
Parity protection on instruction and data caches
Figure 5. TMR structure - Clock triplication principle
19
7703C–AERO–6/09
Watch Points
The integer unit contains four hardware watch-points allowing generation of a trap on an arbi-
trary memory address range. Any binary aligned address range can be watched (the two less
significant bits are ignored)
Each watch-point consists in a pair of application-specific registers
•
break address register
The break address defines a reference address for testing.
•
mask register
The mask indicates which bits of the break address register are to be effectively taken in
account during address test
Configuration
A watchpoint is enabled setting logical one at least one of the three bits IF, Dl or DS in the
watchpoint address and mask registers. When all three bits are set logical zero, the watchpoint
is disabled.
If the instruction fetch bit (IF) from the watchpoint address register is set logical one, any attempt
to fetch an instruction from one of the address defined by ADDR and MASK results in a trap
generation.
If the data store bit (DS) from the watchpoint address register is set logical one, any attempt to
store data to one of the address defined by ADDR and MASK results in a trap generation.
If the data load bit (DL) from the watchpoint mask register is set logical one, any attempt to load
a data from one of the address defined by ADDR and MASK results in a trap generation.
Operation
To detect if an address is part of the memory address range that traps, address bit 31 down to
bit 2 are Xored with the BADxJBADDx.
This operation is based on the following segmentation of an address.
Table 7. Address Segmentation
bit num. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
field Address
9
8
7
6
5
4
3
2
1
0
ignored
With such segmentation, it is possible to define trap segment from 4bytes up to 1Gbyte.
The result of the Xor is then Anded with the BMAxJBMAx.
If the result is zero, this indicates that address specified is in the watched range. Then, a watch-
point hit error is generated. Trap 0x0B is generated. If result is different from zero, address is out of
the watched address range.
Figure 6. Watchpoint Hit Principle
30
IF
30
DS
logic
Trap 0x0B
DL
30
30
Watchpoint Mask Reg.
%asry
Watchpoint Address Reg.
%asrx
20
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Traps and
Interrupts
Overview
The AT697F supports two types of traps:
- synchronous traps
- asynchronous traps also called interrupts.
Synchronous traps are caused by hardware responding to a particular instruction. They occur
during the instruction that caused them. Asynchronous traps occur when an external event inter-
rupts the processor. They are not related to any particular instruction and occur between the
execution of instructions.
A trap is a vectored transfer of control to the supervisor through a special trap table that contains
the first four instructions of each trap handler. The trap base address (TBR) of the table is estab-
lished by supervisor and the displacement, within the table, is determined by the trap type.
A trap causes the current window pointer to advance to the next register window and the hard-
ware to write the program counters (PC & nPC) into two registers of the new window.
Synchronous
Traps
The AT697F follows the general SPARC trap model. The table below shows the implemented
traps and their individual priority.
Table 8. Trap Overview
Trap
TT (trap type)
0x00
Priority Description
reset
1
2
Power-on reset
write error
0x2b
Write buffer error
Error during instruction fetch
Edac uncorrectable error during instruction fetch
instruction_access_exception
0x01
3
illegal_instruction
privileged_instruction
fp_disabled
0x02
0x03
5
4
UNIMP or other un-implemented instruction
Execution of privileged instruction in user mode
FP instruction while FPU disabled
co-processor instruction while co-processor disabled
Instruction or data watchpoint match
SAVE into invalid window
0x04
6
cp_disabled
0x24
6
watchpoint_detected
window_overflow
window_underflow
register_hadrware_error
mem_address_not_aligned
fp_exception
0x0B
0x05
7
8
0x06
8
RESTORE into invalid window
0x20
9
register file uncorrectable EDAC error
Memory access to un-aligned address
FPU exception
0x07
10
11
13
14
15
16
0x08
data_access_exception
tag overflow
0x09
Access error during load or store instruction
Tagged arithmetic overflow
0x0A
0x2A
0x80 -0xFF
divide_exception
trap_instruction
Divide by zero
Software trap instruction (TA)
21
7703C–AERO–6/09
Traps Description
•
reset - A reset trap is caused by an external reset request. It causes the processor to begin
executing at virtual address 0. After a Reset Trap, no special memory states are defined
exept the bits PSRJET’ and PSRJS that are initialized respectively ‘0’ and ‘1’.
•
•
write error - An error exception occurred on a data store to memory.
instruction_access_exception - A blocking error exception occurred on an instruction
access.
•
illegal_instruction - An attempt was made to execute an instruction with an unimplemented
opcode, or an UNIMP instruction, or an instruction that would result in illegal processor
state.
•
•
•
•
privileged_instruction - An attempt was made to execute a privileged instruction while
supervisor bit PSRJS is ‘0’ (not in supervisor mode).
fp_disabled - An attempt was made to execute an FPU instruction while FPU is not enabled
or not present.
cp_disabled - An attempt was made to execute a co-processor instruction while co-
processor is not enabled or not present.
watchpoint_detected - An instruction fetch memory address or load/store data memory
address matched the contents of a pre-loaded implementation-dependent “watchpoint”
register.
•
•
•
•
window_overflow - A SAVE instruction attempted to cause the current window pointer
(CWP) to point to an invalid window in the WIM.
window_underflow - A RESTORE or RETT instruction attempted to cause the current
window pointer (CWP) to point to an invalid window in the WIM.
register_hardware_error - An error exception occurred on a read only register access.
A register file uncorrectable error was detected.
mem_address_not_aligned - A load/store instruction would have generated a memory
address that was not properly aligned according to the instruction, or a JMPL or RETT
instruction would have generated a non-word-aligned address.
•
fp_exception - An FPU instruction generated an IEEE_754_exception and its corresponding
trap enable mask (TEM) bit was 1, or the FPU instruction was unimplemented, or the FPU
instruction did not complete, or there was a sequence or hardware error in the FPU. The
type of floating-point exception is encoded in the FSRJFTT.
•
•
data_access_exception - A blocking error exception occurred on a load/store data access.
EDAC uncorrectable error.
tag_overflow - A tagged arithmetic instruction was executed, and either arithmetic overflow
occurred or at least one of the tag bits of the operands was non zero.
•
•
trap_division_by_zero - An integer divide instruction attempted to divide by zero.
trap_instruction - A software instruction (Ticc) was executed and the trap condition
evaluated to true.
When multiple synchronous traps occur at the same cycle (i.e hardware errors), the highest pri-
ority trap is taken, and lower priority traps are ignored.
22
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Asynchronous
Traps / Interrupts
The AT697F handles up to 15 interrupts. The interrupt controller is used to prioritize and propa-
gate interrupts requests from internal or external devices to the integer unit.
Figure 7. Interrupt Controller Block Diagram
Interrupt Sources
PIO[15:0]
Internal Interrupt
(Timer1, Uart1,...)
I/O Interrupt Reg.
IOIT1
IOIT2
Interrupt Clear Reg.
ITC
Interrupt Pending Reg.
ITP
mask
trap1x generation
Interrupt Force Reg.
ITF
priority
Interrupt Mask & Priority Reg.
ITMP
Operation
When an interrupt is generated, the corresponding bit is set in the interrupt pending register
(ITP). The pending bits are ANDed with the interrupt mask register and then forwarded to the pri-
ority selector. The highest interrupt from priority level 1 will be forwarded to the IU - if no
unmasked pending interrupt exists on priority level 1, then the highest unmasked interrupt from
priority level 0 is forwarded.
When the IU acknowledges the interrupt, the corresponding pending bit will automatically be
cleared.
Interrupt can also be forced by setting a bit in the interrupt force register. In this case, the IU
acknowledgement will clear the force bit rather than the pending bit.
After reset, the interrupt mask register is set to all zeros while the remaining control registers are
undefined.
Interrupt List
The following table presents the assignement of the interrupts.
Table 9. Interrupt Overview
Interrupt
TT (Trap Type)
0x1F
Source
15
14
13
12
11
10
9
I/O interrupt [7]
PCI
0x1E
0x1D
0x1C
0x1B
I/O interrupt [6]
I/O interrupt [5]
DSU trace buffer
I/O interrupt [4]
Timer 2
0x1A
0x19
8
0x18
Timer 1
7
0x17
I/O interrupt [3]
I/O interrupt [2]
I/O interrupt [1]
I/O interrupt [0]
UART 1
6
0x16
5
0x15
4
0x14
3
0x13
23
7703C–AERO–6/09
Interrupt
TT (Trap Type)
0x12
Source
2
1
UART 2
0x11
Internal bus error
Non Maskable
Interrupt (NMI)
The AT697F handles interrupt 15 (trap type TT = 0x1F). This interrupt can not be masked by the inte-
ger unit of the processor. It shall be used with care as the NMI of the processor.
I/O interrupts
As an alternate function of the general purpose interface, the AT697F allows to input interrupt
from external devices. Up to eight external interrupts can be programmed at the same time. The
external interrupts are assigned to interrupt 4, 5, 6, 7,10, 12, 13 and 15.
Two registers are defined for configuration of the IO interrupts :
•
•
IOIT1 register is used for control of IO interrupt 0, 1, 2 and 3
IOIT2 register is used for control of IO interrupt 4, 5, 6 and 7
Each I/O interrupt is controlled through four fields in one of the above register (IOITx) : ENx,
LEx, PLx and ISELx.
An I/O interrupt is enabled setting logical one to IOITxJENx . Setting this bit logical zero dis-
ables the interrupt. The IOITxJISELx defines which port of the general purpose interface should
generate I/O interrupt x. The port can be selected from within PIO[15:0] and D[15:0]*.
Each I/O interrupt can have its trigger mode and its polarity individually configured. When bit
IOITxJLEx is set logical one, the corresponding I/O interrupt is edge triggered. If the polarity bit
IOITxJPLx is driven logical one the interrupt triggers when a rising edge is applied on the pin. If
the polarity bit is driven logical zero the interrupt triggers when a falling edge is applied on the
pin.
When the bit IOITxJLEx is set logical zero, the corresponding I/O interrupt is level sensitive. If
the polarity bit IOITxJPLx is driven logical one the interrupt triggers when a high level is applied
on the pin. If the polarity bit is driven logical zero the interrupt triggers when a low level is applied
on the pin.
The following table summarizes the I/O interrupt configurations.
Table 10. I/O Interrupt Configuration
LEx
0
PLx
0
Trigger
low level
0
1
high level
falling edge
rising edge
1
0
1
1
24
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Interrupt Priority
The 15 interrupts handled by the AT697F are prioritised, with interrupt 15 (TT = 0x1F) having the
highest priority and interrupt 1 (TT = 0x11) the lowest.
It is possible to change the priority level of an interrupt using the two priority levels from the inter-
rupt mask and priority register (ITMP). Each interrupt can be assigned to one of two levels as
programmed in the Interrupt mask and priority register. Level 1 has higher priority than level 0.
Within each level the interrupts are prioritised.
25
7703C–AERO–6/09
Memory
Interface
Overview
The AT697F provides a 32-bit bus capable to interface PROM, memories mapped I/O devices,
asynchronous static rams (SRAM) and synchronous dynamic rams (SDRAM). The memory bus
can be configured either for 8-bit, 32-bit or 40-bit accesses. The memory controller manages up
to 2 Gbytes of external memory. The following table presents the memory controller address
map.
Table 11. Memory Controller address map
Address Range
Size
512M
256M
1G
Mapping
PROM
0x00000000 - 0x1FFFFFFF
0x20000000 - 0x2FFFFFFF
0x40000000 - 0x7FFFFFFF
I/O
SRAM/SDRAM
For applications that require smaller memory areas and/or smaller performances, it is possible to
configure some memory spaces as 8-bit wide data bus.
All the configuration of the memory interface is done through the three memory controller regis-
ters : MCFG1, MCFG2 and MCFG3. MCFG1 is the register dedicated to PROM and IO
configuration. SRAM and SDRAM are configured through MCFG2 and MCFG3.
Here is an overview of the 32-bit interconnection between the AT697F and external memories.
Figure 8. Memory Interface Overview
CS
OE
WE
ROMS*[1:0]
OE*
A
D
PROM
I/O
WRITE*
CS
OE
WE
IOS*
A
D
AT697F
CS
OE
WE
RAMS*[4:0]
RAMOE*[4:0]
RWE*[3:0]
A
D
SRAM
A[16:15]
A[14:2]
CLK
CSN
RAS
CAS
WE
SDCLK
SDCSN[1:0]
SDRAS*
SDCAS*
SDWE*
SDDQM[3:0]
BA
A
SDRAM
D
DQM
A[27:0]
D[31:0]
To improve the bandwidth of the memory bus, accesses to consecutive addresses can be per-
formed in burst mode. Burst transfers will be generated when the memory controller is accessed
using a burst request from the internal bus. These includes instruction cache-line fills, double
loads and double stores. The timing of a burst cycle is identical to the programmed basic cycle
with the exception that during read transactions, the lead-out cycle will only occurs after the last
transfer.
26
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
RAM Interface
The memory controller gives the capability to control up to 1Gbyte of RAM. The global RAM area
supports two RAM types : asynchronous static RAM (SRAM) and synchronous dynamic RAM
(SDRAM).
SRAM interface
Overview
The SRAM interface can manage up to five SRAM banks. The control of the SRAM memory
accesses uses a standard set of pin, including chip selects (RAMS*x), output enable
(RAMOE*x) and write enable (RWE*x) lines.
The bank size of the four first banks of the SRAM area can be configured by setting the value of
MCFG2JRAMBS. The bank size can be programmed in binary step from 8 Kbytes to 256
Mbytes. Whatever is the size of the four first banks, they are always contiguous. These memory
banks are selected with RAMS*[3] down to RAMS*[0].
The fifth SRAM bank controlled by RAMS*[4] has a fix dimension. This bank always resides at
the upper address 0x60000000. This bank is always 256 Mbytes large.
Figure 9. SRAM bank organisation
SRAM bank size
256MB
128MB
64MB
Memory
assignement
Memory
assignement
Memory
assignement
Start Address
0x7C000000
0x78000000
0x74000000
0x70000000
0x6C000000
0x68000000
0x64000000
0x60000000
0x5C000000
0x58000000
0x54000000
0x50000000
0x4C000000
0x48000000
0x44000000
0x40000000
Unused
RAMS*[4](1)(2)
RAMS*[1]
Unused
Unused
RAMS*[4](2)
Unused
RAMS*[4](2)
RAMS*[3]
RAMS*[2]
RAMS*[1]
RAMS*[0]
RAMS*[3]
RAMS*[2]
RAMS*[1]
RAMS*[0]
RAMS*[0]
Notes: 1. If the SRAM bank size is set to 256Mbytes, SRAM bank 2 & bank 3 are in overlay with SRAM
bank 4. In this case, bank 2 and bank 3 control signals are never asserted. Bank 4 has the
priority.
2. When SDRAM is enabled, priority is given to the SDRAM. Any access to addresses higher
than 0x60000000 is driven to SDRAM. No SRAM control is activated.
SRAM Read Access
A read access to SRAM consists in two data cycles and between zero and three waitstates. On
non-consecutive accesses, a lead-out cycle is added after a read cycle to prevent bus conten-
tion due to slow turn-off time of memories or I/O devices. On consecutive accesses, no lead-out
cycle is performed between the acesses but only one is performed at the end of the operations
(RAMSN and RAMOE are not deasserted).
27
7703C–AERO–6/09
When a read access to SRAM is performed, a separate output enable signal is provided for each
SRAM bank and it is only asserted when that bank is selected.
Figure 10. SRAM read transaction (0-waitstate)
data1
data2
lead-out
CLK
A
A1
RAMS*
RAMOE*
D
D1
SRAM Write Access
Each byte lane has an individual write strobe (RAMWE*) to allow efficient byte and half-word
writes.
Each write access to SRAM consists of three states and between zero and three waitstates. The
three mandatory states are divided in one write setup cycle, one data cycle and one lead-out
cycle.
Figure 11. SRAM write transaction (0-waitstate)
lead-in
data
lead-out
CLK
A
A1
RAMS*
RWE*
D
D1
If the external memory use a common write strobe for the full 32-bit data, set the
MCFG2JRMW. This will enable read-modify-write transactions for sub-word writes.
Waitstates
For application using slow SRAM memories, the SRAM controller provides the capability to
insert wait-states during the SRAM accesses. Two types of wait-states can be inserted :
•
•
Programmed delay, available for bank 0 up to bank 4
‘Hardware’ bus delay, available for bank 4 only
Up to three waitstates can be programmed for SRAM accesses. Read and write waitstates can
be individually programmed. Setting the MCFG2JRAMRWS value defines the number of wait-
states to insert during an SRAM read. Setting the MCFG2JRAMWWS value defines the
number of waitstates to insert during an SRAM write.
28
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 12. RAM read access with one programmed waitstate
data2
waitstate
lead-out
data1
CLK
A
A1
RAMS*
OE*
D
D1
For and only for RAM bank 4, If the application needs more delay during the SRAM transfer, it is
possible to introduce more delay by activating the hardware bus ready ( BRDY* ) detection in
MCFG2. Refer to paragraph “BRDY Wait states”, page 38.
Bus width
To support applications with low memory performance requirements, the SRAM area can be
configured for 8-bit operations. The configuration of SRAM in 8-bit mode is done programming
MCFG2JRAMWDH, SRAM bus width field.
When the SRAM bus is configured as an 8-bit wide bus, data 31 downto 24 shall be used as
interface.
Figure 13. SRAM 8-bit bus width connection
A
D
A[27:0]
CS
OE
WE
RAMS0*
RAMOE0*
RWE0*
A
D
SRAM
D[31:24]
AT697F
A[27:0]
D[31:24]
Since access to memory is always done on 32-bit word basis, read access to 8-bit memory will
be transformed in a burst of four read transactions. If EDAC protection is active, 5 read cycles
are necessary to complete the access (please refer to “Error Management - EDAC”, page 40 for
more details). During write operation, only the necessary bytes are writen.
29
7703C–AERO–6/09
Write Protection
Two write protection schemes are provided to prevent accidental over-writing to the RAM area,
the “Start/End address Scheme” and the “Mask Scheme”. These two schemes are explained in
the following two sub-chapter
Start/End address
Scheme
Two memory areas are defined by using a start-address and an end-address register. The first
address of the protected memory area is calculated as 0x40000000 + START*4. The last
address of the protected memory area is calculated as 0x40000000 + END*4.
Table 12. Start Address Register (WPSTAx)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
9
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
0
0
0
START
BP
0
Table 13. End Address Register (WPSTOx)
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
STOP
US SU
Setting WPSTAxJBPx to logical one, any access inside the two areas defined by the start/end
registers will cause a memory exception (trap 0x2B). The first address of the protected against
write operation is calculated as 0x40000000 + START*4. The first address outside the protected
memory area is calculated as 0x40000000 + END*4 + 4.
Setting WPSTAxJBPx to logical zero the area between the start address and the end address
defines the memory where write access is permitted, and a write access outside both areas will
cause a memory exception (trap 0x2B). The first address where write operation is permitted is
calculated as 0x40000000 + START*4. The first address outside the protected allowed area is
calculated as 0x40000000 + END*4 + 4.
The start/end address protection scheme is enabled when at least one of the user mode protec-
tion and the supervisor mode protection is valid. The write protection can be configured to
prevent the application from user and/or supervisor write access.
•
•
Memory is protected against User write when WPSTOxJUSx bit is set logical 1
Memory is protected against Superviser write when WPSTOxJSUx bit is set logical 1
30
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 14. RAM Protection Mode Overview
RAM
RAM
Write Æ trap
START1
END1
START1
END1
Write Æ trap
Segment 1
Segment 1
Write Æ trap
START2
END2
START2
END2
Write Æ trap
Segment 2
Segment 2
Write Æ trap
Segment mode (bp = 0)
Block mode (bp = 1)
Mask Scheme
Two block protection units are available for RAM area. Each one is controlled through a
write protection register (WPRn). Two major fields are defined : a TAG and a MASK.
•
The TAG defines the 15 most significant bits of the address of the block to be write protected.
•
The Mask specifies which bits of the TAG are really relevant for the protection.
The write protection on the RAM area is enabled setting logical one in WPRxJEN. If this bit is
set logical zero, no protection is activated.
Two protection modes can be programmed. If the WPRxJBP is set logical one the protection is
active within the segment. If this bit is set logical zero, the exterior of the segment is protected.
Figure 15. RAM Protection Mode Overview
RAM
RAM
Write Æ trap
Write Æ trap
Segment 1
Segment 1
Write Æ trap
Write Æ trap
Segment 2
Segment 2
Write Æ trap
Segment mode (bp = 0)
Block mode (bp = 1)
31
7703C–AERO–6/09
To detect if the written address is part of a protected segment (or block), address bit 29 down to
bit 2 are Xored with the WPRxJTAG. This operation is based on the following segmentation of
an address.
Table 14. Address Segmentation
bit num. 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
field area most significant byte 32Kbyte protected block
With such segmentation, memory block in the range of 32Kbyte up to 1Gbyte can be protected.
The result of the Xor is then Anded WPRxJMASK.
If the result is zero, this indicates that address specified is in the protected range. If result is dif-
ferent from zero, address is out of the protected address range. If a write protection error is
detected, the write transaction is stopped. Then, a memory access error is generated. Trap
0x2B is generated
Figure 16. RAM Write Protection Overview
15
15
logic
15
15
Trap 0x2B
Write Protection Reg.
EN
WRPn
Protection Priorities
As a result of the write protection implementation for the RAM area,the two RAM write protection
schemes can be used simultaneously. Combining the write protection schemes leads to the fol-
lowing behaviors :
•
If all the enable protection units are configured in block protect mode (BP = 0), then a write
protect error is generated when any of the units signal a write protection hit. In this mode, if
at least one protection error is triggered, the write protection trap is raised.
•
If at least one of the protection units operates in segment mode (BP=1), then a write protect
error is generated only if all units configured in segment mode signal a protection error.
32
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
SDRAM
The synchronous dynamic RAM interface can manage up to two SDRAM banks. The control of
the SDRAM memory accesses uses a standard set of pin, including chip selects (SDCS*x), write
enable (SDWE*), data masks (SDDQM*x) and clock lines.
The bank size of the two SDRAM banks can be configured by setting the value of the
MCFG2JSDRBS. The bank size can be programmed in binary step from 4 Mbytes to 512
Mbytes.
The controller supports 64M, 256M and 512M devices with 8 to 12 column-address bits, up to 13
row-address bits, and 4 banks. Only 32-bit data bus width is supported for SDRAM banks.
Address Mapping
The start address for the SDRAM banks depends upon the SRAM use in the application. If the
the SRAM disable bit MCFG2JSI and the SDRAM enable bit MCFG2JSE are set logical one,
the SDRAM start address is 0x40000000. If the the SRAM disable bit MCFG2JSI is set logical
zero and the SDRAM enable bit MCFG2JSE is set logical one, the SDRAM start address is
0x60000000. If MCFG2JSE if set logical zero, no SDRAM can be used.
The address bus of the SDRAMs shall be connected to A[14:2], the bank address to A[16:15].
Devices with less than 13 address pins should only use the less significant bits of A[14:2].
Figure 17. SDRAM connection overview
A
D
AT697F
A[16:15]
A[14:2]
CLK
CSN
RAS
CAS
WE
SDCLK
SDCSN[1:0]
SDRAS*
SDCAS*
SDWE*
SDDQM[3:0]
BA
A
SDRAM
D
DQM
A[27:0]
D[31:0]
SDRAM Timing
Parameters
To provide optimum access cycles for different SDRAM devices some SDRAM parameters can
be programmed through MCFG2 register. The programmable SDRAM parameters are the fol-
lowing :
Table 15. SDRAM Programmable Timing Parameters
Function
CAS latency
Parameter
Range
2 - 3
Unit
clocks
clocks
clocks
clocks
Precharge to activate
Auto-refresh command period
Auto-refresh interval
tRP
2 - 3
tRFC
3 - 11
10 - 32768
SDRAM Commands
The SDRAM controller can issue three SDRAM commands. Commands to be executed are pro-
grammed through the MCFG2JSDRCMD. When this field is writen with a non zero value, a
SDRAM command is issued :
•
•
•
if set to ‘01’, Precharge command is sent,
if set to ‘10’, Auto-Refresh command is sent,
if set to ‘11’, Load Mode Reg (LMR) is sent.
When the LMR command is issued, the MCFG2JSDRCAS delay programmed is used.
MCFG2JSDRCMD is cleared after a command is executed. When changing the value of the
CAS delay, a LOAD-MODE-REGISTER command should be generated at the same time.
The SDRAM controller also provides a refresh command. It can be enabled by setting a logical
one into MCFG2JSDRREF.
33
7703C–AERO–6/09
The Auto-Refresh command enables a periodical refresh for both SDRAM banks. The period
between two Auto-Refresh command is programmed in MCFG3JSRCRV.
Depending on SDRAM type, required period is typically 7.8 or 15.6μs. This corresponds to 780
or 1560 clock cycle at 100MHz.
Reload value + 1
sdclk frequency
Refresh period is calculated as
--------------------------------------------
Refresh Period =
SDRAM Initialisation
After reset, the SDRAM controller automatically performs the SDRAM initialisation sequence. It
consists in PRECHARGE, two AUTO-REFRESH cycles and LOAD-MODE-REG on both banks
simultaneously.
The controller programs the SDRAM to use page burst on read and single location access on
write. A CAS latency of 3 is programmed by default. This value can be updated later by
software.
SDRAM Read Access
SDRAM Write Access
Access Error
A read transaction consists in three main operation. First, an ACTIVATE command to the
desired bank and row is performed. Then, after the programmed CAS delay, a READ command
is sent. The read transaction is terminated with a PRE-CHARGE command. No bank is left open
between two accesses.
A burst read is performed if a burst access is requested on the internal bus.
A write transactions consists in three main operations. First, an ACTIVATE command to the
desired bank and row is performed. Then, a WRITE command is sent. The write transaction is
terminated with the PRE-CHARGE command.
A burst write on internal bus generates a burst of write commands without idle cycles in-
between.
An access error can be indicated to the processor asserting the BEXC* signal. If enabled by set-
ting logical one to MCFG1JBEXC , the BEXC* signal is sampled with the data.
If the BEXC* signal is driven low by the external device during the access, an error response is
generated on the internal bus.
•
•
•
Trap 0x01 is taken if an instruction fetch is in progress
Trap 0x09 is taken if a data space access is in progress
Trap 0x2B is taken if a data store is in progress
34
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
PROM Interface
Overview
The memory controller give the capability to control up to 512Mbyte of PROM. The PROM inter-
face can manage up to two PROM banks. The control of the PROM memory accesses uses a
standard set of pin, including chip selects (ROMS*x), output enable (OE*), read (READ) and
write (WRITE*) lines.
The bank size of the PROM banks is not programmable. The lower half part of the PROM area
(0x00000000 up to 0x0FFFFFFF) is controlled by the ROMS0* PROM select signal. The upper
half part of the PROM area (0x10000000 up to 0x1FFFFFFF) is controlled by the ROMS1*
PROM select signal.
PROM Read Access
A read access to PROM consists in two data cycles and waitstates if any programmed. On non-
consecutive accesses, a lead-out cycle is added after a read transaction to prevent bus conten-
tion due to slow turn-off time of memories or I/O devices. On consecutive accesses, no lead-out
cycle is performed between the acesses but only one is performed at the end of the operations.
Figure 18. PROM Read transaction (0 Waitstate)
data1
data2
lead-out
CLK
A
A1
ROMS*
OE*
D
D1
PROM Write Access
Each write access to PROM consists of three states and of waitstates if any programmed. The
three mandatory states are divided in one write setup cycle, one data cycle and one lead-out
cycle. The write operation is strobed by the WRITE* signal.
Figure 19. PROM Write transaction (0 waitstate)
lead-in
data
lead-out
CLK
A
A1
ROMS*
WRITE*
D
D1
Waitstates
For application using slow ROM memories, the ROM controller provides the capability to insert
wait-states during the accesses. Two types of wait-states can be inserted :
•
•
Programmed delay
‘Hardware’ bus ready delay
Up to 30 waitstates can be programmed for PROM accesses. Read and write waitstates can be
individually programmed. Setting MCFG1JPRRWS defines the number of waitstates to insert
35
7703C–AERO–6/09
during a PROM read access. Setting MCFG1JPRWWS defines the number of waitstates to
insert during a PROM write.
MCFG1JPRRWS and MCFG1JPRWWS can be programmed to take values from 0 up to 15.
The effective number of waitstates applied during an access is then twice the programmed
value. In that way, programming two waitstates results in the insertion of four wait cycles during
the access.
Figure 20. ROM read access with PRRWS=1 (two programmed waitstates)
data1
data2
waitstate
waitstate
lead-out
CLK
A
A1
ROMS*
OE*
D
D1
If the application needs more time for ROM transfer, it is possible to introduce more delay by
activating the hardware bus ready MCFG1JPBRDY. Refer to paragraph “BRDY Wait states”,
page 38.
After a reset operation of the processor (or at power up), the MCFG1JPRRWS and
MCFG1JPRWWS waitstates for the PROM area are set default to 15, resulting in 30 effective
waitstates and the MCFG1JPBRDY is set to 0.
Write Protection
Bus width
Write protection is provided to prevent accidental over-writing to PROM area. It is controlled
through the PROM write enable bit MCFG1JPRWE. When set 1, this bit enables write to
PROM. When set 0, no PROM write transaction is available.
To support applications with low memory and performance requirements, the PROM area can
be configured for 8-bit operations. The configuration of PROM in 8-bit mode is done program-
ming MCFG1JPRWDH.
When the PROM bus is configured as an 8-bit wide bus, data 31 downto 24 shall be used as
interface.
Figure 21. PROM 8-bit bus width connection
A
D
A[27:0]
CS
OE
WE
ROMS0*
OE*
WRITE*
PROM AD
D[31:24]
AT697F
A[27:0]
D[31:24]
Since access to memory is always done on 32-bit word basis, read access to 8-bit memory will
be transformed in a burst of four read transactions. If EDAC protection is active, 5 read cycles
are necessary to complete the access (please refer to protection section for more details). Dur-
ing write operation, only the necessary bytes are writen.
Access Error
An access error can be indicated to the processor asserting the BEXC* signal. If enabled by set-
ting logical one to MCFG1JBEXC , the BEXC* signal is sampled with the data.
•
•
Trap 0x01 is taken if an instruction fetch is in progress
Trap 0x09 is taken if a data space is in progress
36
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
•
Trap 0x2B is taken if a data store is in progress
Memory Mapped
I/O
Overview
The memory controller give the capability to control up to 256Mbyte of I/O. The I/O area consists
in a single large bank. The control of the I/O area accesses uses a standard set of pin, including
chip selects (IOS*x), output enable (OE*), read (READ) and write (WRITE*) lines.
The size of the I/O bank is not programmable. The entire I/O area (0x20000000 up to
0x2FFFFFFF) is controlled by the IOS* select signal.
I/O Read Access
A read access to I/O consists in a lead-in cycle, two data cycles, waitstates if any programmed
and a lead-out cycle. On non-consecutive accesses, the lead-out cycle is used to prevent bus
contention due to slow turn-off time of memories or I/O devices.
The I/O select signal (IOSEL*) is delayed one clock to provide stable address.
Figure 22. single I/O read transaction with lead-out
data 2
lead-out
data 1
A1
lead-in
CLK
A
IOS*
OE*
D1
D
I/O Write Access
Each write access to I/O consists of three states and of waitstates if any programmed. The three
mandatory states are divided in one write setup cycle, one data cycle and one lead-out cycle.
The write operation is strobed by the WRITE* signal.
Figure 23. I/O write transaction
lead-in
data
lead-out
CLK
A
A1
IOS*
WRITE*
D
D1
Waitstates
For application using slow I/O devices, the I/O controller provides the capability to insert wait-
states during the accesses. Two types of wait-states can be inserted :
•
•
Programmed delay,
‘Hardware’ delay.
Up to 15 waitstates can be programmed for I/O accesses. Read and write waitstates are pro-
grammed simultaneously. Setting MCFG1JIOWS defines the number of waitstates to insert
during any access to/from I/O areas. MCFG1JIOWS can be programmed to take values from 0
up to 15.
37
7703C–AERO–6/09
If the application needs more time for IO transfer, it is possible to introduce more delay by acti-
vating the hardware bus ready detection bit MCFG1JIOBRDY. Refer to paragraph “BRDY Wait
states”, page 38.
Write Protection
Bus width
Read and write protections are provided to prevent accidental accesses to I/O area. Protection
is controlled through the I/O protection bit MCFG1JIOP.
To support applications with low memory and performance requirements, I/O area can be con-
figured for 8-bit operations. The configuration of I/O in 8-bit mode is done programming the I/O
bus width in MCFG1JIOWDH.
In such configuration, I/O device is not accessed by multiple 8-bit accesses as other memory
areas. Only one single access is performed
When the I/O bus is configured as an 8-bit wide bus, data 31 downto 24 shall be used as
interface.
Figure 24. I/O 8-bit bus width connection
A
D
A[27:0]
CS
OE
WE
IOS*
OE*
WRITE*
A
D
IO
D[31:24]
AT697F
A[27:0]
D[31:24]
Access Error
An access error can be indicated to the processor asserting the BEXC* signal. If enabled by set-
ting logical one the MCFG1JBEXC, the BEXC* signal is sampled with the data.
•
•
•
Trap 0x01 is taken if an instruction fetch is in progress
Trap 0x09 is taken if a data space is in progress
Trap 0x2B is taken if a data store is in progress
BRDY Wait states
For PROM accesses, for IO accesses and for RAM bank 4, but not for the other RAM banks, it is
possible to introduce additional wait states determined by the peripherals with the BRDY* mech-
anism. This capability can be enabled separatly by the respective configuration bits
MCFG1JPBRDY, MCFG1JIOBRDY and MCFG2JRAMBRDY. If the configuration bit is set to
one, the processor waits before ending the transfer, as long as the BRDY* pin is driven high. If
the configuration bit is set to zero (reset state), the BRDY* pin is ignored.Termination of the
BRDY* induced wait states can be in two different modes:
•
If MCFG1JABRDY is set to zero (reset state), BRDY* needs to be asserted zero
synchronously with respect to SDCLK, respecting the setup and hold times t19 and t20
(Refer to section “AC Characteristics”, page 130).The processor will terminate the access at
the rising clock edge immediately following the rising edge during which BRDY* was low by
de-asserting the OE* and the select signal (RAMS*[4], IOS* or ROMS*), as shown in the
figures.
•
If MCFG1JABRDY is set to one, BRDY* is double synchronised in the processor, and it can
be asserted asynchronously, without respecting t19 and t20, provided it is asserted low for at
least 1.5 clock cycle. Asynchronous BRDY* timing implies an uncertainty, the access
terminates at the second or third edge after its assertion, and read data needs to be kept
stable until OE* and the select signal (RAMS*[4], IOS* or ROMS*) are de-asserted.
It should be noted that the BRDY* mechanism can be used in addition to the nominal duration of
an access (one or two data cycles depending on the access type) and to the fixed wait states
programmed in the “WS” fields (MCFG2JRAMWWS, MCFG1JPRWWS, MCFG1JIOWS).
Even when BRDY* goes low earlier, the trasaction does not terminate until expiration of the pro-
grammed wait states.
38
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 25. Read access with one BRDY* controlled waitstate, MCFG1JAB=0
data2
waitstate
lead-out
data1
CLK
A
A1
ROMS*
OE*
D
D1
BRDY*
Figure 26. Read access with one BRDY* controlled waitstate, MCFG1JAB=1
data1
data2
waitstate
waitstate
lead-out
CLK
A
A1
ROMS*
OE*
D
D1
BRDY*
39
7703C–AERO–6/09
Error Management
- EDAC
Overview
The AT697F processor implements an on-chip error detector and corrector (EDAC). The on-chip
memory EDAC can correct one error in a 32-bit word and detect two errors in a 32-bit word. The
processor EDAC implemention enables data correction on-the-fly so that no timing penalty
occurs during correction.
EDAC capability
mapping
Data error management with the EDAC can be used on both PROM and RAM memory areas.
The following table presents the EDAC protection capabilities provided by the processor.
Table 16. EDAC capability on Memories
Address Range
Area
EDAC Protected
8 bits
32 bits
All
yes
yes
no
0x00000000 - 0x1FFFFFFF
PROM
0x20000000 - 0x3FFFFFFF
0x40000000 - 0x7FFFFFFF
I/O
8 bits
32 bits
yes
yes
RAM
PROM protection
Setting logical one the PROM EDAC enable bit MCFG3JPE, the data protection is enabled. For
each read and write transaction to the PROM area the EDAC act as an error detector and an
error corrector. When set logical zero, the EDAC is transparent for the PROM access.
At power-on or at reset, the value of the MCFG3JPE is directly copied from the PIO2 pin. In that
way, it is possible to start the application with the EDAC enabled by driving high PIO2 during the
power-on sequence (or reset sequence).
RAM protection
Operation
Setting logical one the RAM EDAC enable bit MCFG3JRE, the data protection is enabled. For
each read and write transaction to the RAM area the EDAC act as an error detector and an error
corrector. When set logical zero, the EDAC is transparent for the RAM access.
The processor uses an EDAC based on a seven bit Hamming code that detects any double error
on a 32-bit bus and corrects any single error on a 32-bit bus. Note when the EDAC is enabled
the read-modify-write bit MCFG2JRMW must be set.
Hamming code
For each 32-bit data, a seven bit a 7-bit checksum is generated. The equations below show how
the Hamming checkbits (CBx) are generated:
CB0 = D0 ^ D4 ^ D6 ^ D7 ^ D8 ^ D9 ^ D11 ^ D14 ^ D17 ^ D18 ^ D19 ^ D21 ^ D26 ^ D28 ^ D29 ^ D31
CB1 = D0 ^ D1 ^ D2 ^ D4 ^ D6 ^ D8 ^ D10 ^ D12 ^ D16 ^ D17 ^ D18 ^ D20 ^ D22 ^ D24 ^ D26 ^ D28
CB2 = D0 ^ D3 ^ D4 ^ D7 ^ D9 ^ D10 ^ D13 ^ D15 ^ D16 ^ D19 ^ D20 ^ D23 ^ D25 ^ D26 ^ D29 ^ D31
CB3 = D0 ^ D1 ^ D5 ^ D6 ^ D7 ^ D11 ^ D12 ^ D13 ^ D16 ^ D17 ^ D21 ^ D22 ^ D23 ^ D27 ^ D28 ^ D29
CB4 = D2 ^ D3 ^ D4 ^ D5 ^ D6 ^ D7 ^ D14 ^ D15 ^ D18 ^ D19 ^ D20 ^ D21 ^ D22 ^ D23 ^ D30 ^ D31
CB5 = D8 ^ D9 ^ D10 ^ D11 ^ D12 ^ D13 ^ D14 ^ D15 ^ D24 ^ D25 ^ D26 ^ D27 ^ D28 ^ D29 ^ D30 ^ D31
CB6 = D0 ^ D1 ^ D2 ^ D3 ^ D4 ^ D5 ^ D6 ^ D7 ^ D24 ^ D25 ^ D26 ^ D27 ^ D28 ^ D29 ^ D30 ^ D31
Write operation
Read operation
When the processor performs a write operation to a memory protected by the EDAC, it also out-
puts the seven bit checksum on the CB[6:0] pins.
During a read operation from a protected memory, the seven bit checksum is sampled from the
CB[6:0] inputs. Then, the EDAC verify the checksum to check the presence of an error.
According to the checksum equations, the EDAC calculates its own checksum. Then a syn-
drome generator uses the calculated and the read checksum to qualify if there is no error, one
error or two errors in the read word.
Correctable error
If a single error is detected, this leads to a correctable error. The correction is done on-the-fly
during the current access and no timing penalty is induced but the corrected data is not automat-
ically written back to the memory.
40
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
The correctable error detection event is reported in the fail address register (FAILAR) and in the
fail status register (FAILSR). If unmasked, interrupt 1 (trap 0x11) is generated. The interrupt can
then be attached to a low priority interrupt handler that scrubs the failing memory location.
Uncorrectable error
If a double error is detected, this leads to an un-correctable error. An un-correctable error detec-
tion during a data access leads to a data access exception (trap 0x09). In case the double error
is detected during instruction fetch, it leads to an instruction access error (trap 0x01).
Figure 27. EDAC overview
Memory Configuration Reg.
MCFG3
Fail Address Reg.
FAILAR
CB[7:0]
EDAC
Fail Status Reg.
FAILSR
EDAC on 8-bit areas
The 8-bit mode applies to RAM and PROM while SDRAM always uses 32-bit accesses.
When a memory area is configured in 8-bit mode, the EDAC checkbit bus (CB[7:0]) is not used
but it is still possible to use EDAC protection.
The data bus mapped on D31:24 is always accessed in a 32-bit wide word basis (4bytes at a
time). The corresponding checkbits are located on top of the selected memory
bank according to the following operation:
•
•
•
The address A[27:2] of the 32-bit data word is inverted
The resulting address is then shifted twice right to become a byte address
The checkbit is written to the derived byte address while the data address chipselect is kept
active so that the current memory area is still active.
A word written as four bytes to addresses 0, 1, 2, 3 will have its checkbits at address
0x0FFFFFFF, addresses 4, 5, 6, 7 at 0x0FFFFFFE and so on.
Here is an example of checkbit addressing:
•
•
•
•
The data is written at address 0x00000004
Inversion of this address lids to 0xFFFFFFFB
Once shifted we have 0xFFFFFFFE
The checkbit is located at address 0xFFFFFFFE in the same memory bank as the data.
All the bits up to the maximum bank size will be inverted while the same chip-select is always
asserted.
This way all the bank size can be supported and no memory will be unused (except for a maxi-
mum of 4 Bytes in the gap between the data and checkbit area).
Here is an overview of the memory organization when EDAC is enbled on a 8-bit area.
41
7703C–AERO–6/09
Figure 28. Memory Organization when EDAC enabled
memory top address
0x0FFFFFFF
0x0FFFFFFE
checksum1
checksum2
0x00000007
0x00000006
0x00000005
0x00000004
0x00000003
0x00000002
0x00000001
data2 byte3
data2 byte2
data2 byte1
data2 byte0
data1 byte3
data1 byte2
data1 byte1
data1 byte0
0x00000000
Note In addition, only byte-writes shall be performed to ROM area when the EDAC is enabled. In
this case, only the corresponding byte are written.
EDAC testing
The operation of the EDAC can be tested trough the MCFG3 memory configuration register.
Figure 29. EDAC testing overview
WB
8
Memory Configuration Reg.
TCB
MCFG3
CB[7:0]
8
EDAC
8
TCB
RB
Write test
Read test
If the write bypass MCFG3JWB is set logical one, the value of the test checksum from the
MCFG3JTCB field replaces the normal checkbits during memory write transactions.
During memory read transactions, if the read bypass MCFG3JRB is set logical one, the mem-
ory checkbits of the loaded data is stored to the test checkbit MCFG3JTCB.
42
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Cache
Memories
Overview
The AT697F processor implements a Harvard architecture with separate instruction and data
buses, connected to two independent cache controllers. In order to improve the speed perfor-
mance of the cpu core, multi-set-caches are used for both instruction and data caches.
The cache replacement policy used for both instruction and data caches is based on the LRU
algorithm. The least recently used (LRU) set of the cache is replaced when new data need to be
stored in cache.
Cache mapping
Most of the main memory areas can be cached. The cacheable areas are the PROM and RAM
areas. The following table presents the caching capabilities of the processor.
Table 17. Cache Capability List
Address Range
Area
PROM
I/O
Cache status
Cached
0x00000000 - 0x1FFFFFFF
0x20000000 - 0x3FFFFFFF
0x40000000 -0x7FFFFFFF
0x80000000 -0xFFFFFFFF
Non-cacheable
Cached
RAM
Internal
Non-cacheable
Operation
During normal operation, the processor accesses instructions and data using ASI 0x8 - 0xB as
defined in the SPARC standard.
Using the LDA/STA instructions, alternative address spaces as caches can be accessed.
ASI[3:0] are used for the mapping when ASI[7:4] have no influence on operation.
•
Access with ASI 0 - 3 will force a cache miss, update the cache if the data was previously
cached or allocate a new line if the data was not in the cache and the address refers to a
cacheable location.
•
Access to ASI 4 and 7 will force a cache miss and update the cache if the data was
previously cached.
The following table shows the ASI implementation on the AT697F.
Table 18. ASI Usage
ASI
Usage
0x0, 0x1, 0x2, 0x3
Forced cache miss (replace if cacheable)
Forced cache miss (update on hit)
Flush instruction cache
Flush data cache
0x4, 0x7
0x5
0x6
0x8, 0x9, 0xA, 0xB
Normal cached access (replace if cacheable)
Instruction cache tags
0xC
0xD
0xE
0xF
Instruction cache data
Data cache tags
Data cache data
Note:
Please refer to the SPARC v8 specification for detailed information on ASI usage.
Instruction Cache
43
7703C–AERO–6/09
Overview
The AT697F instruction cache is a multi-set cache of 32 kbyte divided in 4 memory sets. Multi-
set-cache use improves speed performance of the core. The instruction cache is divided into
cache lines with 32 bytes of data. Each line has a cache tag associated with it consisting of a tag
field and one valid bit per 4-byte sub-block.
Cache Control
Operation
The instruction cache operations are controled with the cache control register (CCR).
On an instruction cache miss to a cachable location, the instruction is fetched and the corre-
sponding tag and data line updated. The instruction cache always works in one of three modes:
•
•
•
disabled,
enabled
or frozen.
The instruction cache current state is reported in the instruction cache state CCRJICS.
Disabled mode
Enabled mode
If disabled, no cache operation is performed and load and store requests are passed directly to
the memory controller.
If enabled, the cache operates as described above. In the frozen state, the cache is accessed
and kept in synchronisation with the main memory as if it was enabled, but no new lines are allo-
cated on read misses.
Freeze mode
If CCRJIF is set logical one, the instruction cache is frozen when an asynchronous interrupt is
taken. This can be beneficial in real-time system to allow a more accurate calculation of worst-
case execution time for a code segment. The execution of the interrupt handler will not evict any
cache lines and when control is returned to the interrupted task, the cache state is identical to
what it was before the interrupt.
If a cache has been frozen by an interrupt, it can only be enabled again by enabling the cache in
the CCR. This is typically done at the end of the interrupt handler before control is returned to
the interrupted task.
Burst fetch
An instruction burst fetch mode can be enabled setting logical one in CCRJIB. If the burst fetch
is enabled, the cache line is filled from main memory starting at the missed address and until the
end of the line. At the same time, the instructions are forwarded to the IU. If the IU cannot accept
the streamed instructions due to internal dependencies or multi-cycle instruction, the IU is halted
until the line fill is completed.
If the IU executes a control transfer instruction during the line fill, the line fill will be terminated on
the next fetch. If instruction burst fetch is enabled, instruction streaming is enabled even when
the cache is disabled. In this case, the fetched instructions are only forwarded to the IU and the
cache is not updated.
Cache Flush
Instruction cache can be flushed by executing the FLUSH instruction, setting logical one in
CCRJFI, or writing any location with ASI=0x5. The flush operation takes one cycle per line dur-
ing which the IU will is not halted, but during which the cache is disabled. When the flush
operation is completed, the cache will resume the state indicated in the cache control register.
Error reporting
If a memory access error occurs during a line fill with the IU halted, the corresponding valid bit in
the cache tag is not set. If the IU later fetches an instruction from the failed address, a cache
miss will occur, triggering a new access to the failed address.
If the error remains, an instruction access error trap (tt=0x1) is generated.
Instruction Cache
Parity
Error detection of cache tags and data is implemented using two parity bits per tag and per 4-
byte data sub-block. The tag parity is generated from the tag value and the valid bits. The data
parity is derived from the sub-block data. The parity bits are written simultaneously with the
associated tag or sub-block and checked on each access. The two parity bits correspond to the
parity of odd and even data (tag) bits.
44
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
If a tag parity error is detected during a cache access, a cache miss is generated. The tag and
the data are automatically updated. All valid bits except the one corresponding to the newly
loaded data are cleared. Each error is reported in the instruction cache tag error counter from
the CCR. The instruction cache tag error counter CCRJITE is incremented after each instruc-
tion cache tag error detection.
If a data sub-block parity error occurs, a miss is also generated but only the failed sub-block is
updated with data from main memory. Each error is reported in the instruction cache data error
counter from the CCR. The instruction cache data error counter CCRJIDE is incremented after
each instruction cache data error detection.
Data Cache
Overview
The AT697F data cache is a multi-set cache of 16 kbyte divided in 2 memory sets. Multi-set-
cache use improves speed performance. The data cache is divided into cache lines with 16
bytes of data. Each line has a cache tag associated with it consisting of a tag field and one valid
bit per 4-byte sub-block.
Cache Control
Operation
Write
The instruction cache operations are controled with the cache control register (CCR).
The write policy for stores is write-through with no-allocate on write-miss. The write buffer (WRB)
consists of three 32-bit registers used to temporarily hold store data until it is sent to the destina-
tion device. For half-word or byte stores, the stored data replicated into proper byte alignment for
writing to a word-addressed device, before being loaded into one of the WRB registers.
The WRB is emptied prior to a load-miss cache-fill sequence to avoid any stale data from being
read in to the data cache.
Read
On a data cache read-miss to a cachable location, 4 bytes of data are loaded into the cache
from main memory.
Cache Flush
Data cache can be flushed by executing the FLUSH instruction, setting logical one in CCRJFD
in the cache control register, or writing any location with ASI=0x6. The flush operation takes one
cycle per line during which the IU will is not halted, but during which the cache is disabled. When
the flush operation is completed, the cache will resume the state indicated in the cache control
register.
Error Reporting
Since the processor executes in parallel with the write buffer, a write error will not cause an
exception to the store instruction. Depending on memory and cache activity, the write transac-
tion may not occur until several clock cycles after the store instructions has completed. If a write
error occurs, the currently executing instruction will take trap 0x2B.
Note:
the 0x2B trap handler should flush the data cache, since a write hit would update the cache while
the memory would keep the old value due the write error.
If a memory access error occurs during a data load, the corresponding valid bit in the cache tag
will not be set. and a data access error trap (tt=0x09) is generated.
Data Cache Parity
Error detection of cache tags and data is implemented using two parity bits per tag and per 4-
byte data sub-block. The tag parity is generated from the tag value and the valid bits. The data
parity is derived from the sub-block data. The parity bits are written simultaneously with the
associated tag or sub-block and checked on each access. The two parity bits correspond to the
parity of odd and even data (tag) bits.
If a tag parity error is detected during a cache access, a cache miss is generated. The tag and
the data are automatically updated. All valid bits except the one corresponding to the newly
loaded data are cleared. Each error is reported in the instruction cache tag error counter from
the CCR. CCRJDTE is incremented after each data cache tag error detection.
45
7703C–AERO–6/09
If a data sub-block parity error occurs, a miss is also generated but only the failed sub-block is
updated with data from main memory. Each error is reported in the data cache data error coun-
ter from the CCR. CCRJDDE is incremented after each data cache data error detection.
Data Cache Snooper
In addition to the cache controller, a snooper is implemented on the on-chip cache subsystem.
The cache snooper is enabled setting logical one in CCRJDS.
This snooper is able to verify if a master on the internal bus accesses and modifies some
cached data. If a master accesses a data in memory and this data is cached, the snooper will
invalidate the corresponding cache tag. Next time the IU will access the modified data, a cache
miss will be generated due to not valid tag.
Diagnostic Cache Tags and data in the instruction and data cache can be accessed through ASI address space
0xC, 0xD, 0xE and 0xF by executing LDA and STA instructions. Address bits making up the
cache offset will be used to index the tag to be accessed while the least significant bits of the bits
making up the address tag will be used to index the cache set.
Access
Diagnostic read of tags is possible by executing an LDA instruction with ASI=0xC for instruction
cache tags and ASI=0xE for data cache tags. The cache line and the cache set are indexed by
the address bits making up the cache offset and the least significant bits of the address bits
making up the address tag.
Similarly, the data sub-blocks may be read by executing an LDA instruction with ASI=0xD for
instruction cache data and ASI=0xF for data cache data. The sub-block to be read in the
indexed cache line and set is selected by A[4:2].
The tags can be directly written by executing a STA instruction with ASI=0xC for the instruction
cache tags and ASI=0xE for the data cache tags. The cache line and cache set are indexed by
the address bits making up the cache offset and the least significant bits of the address bits
making up the address tag.
D[31:10] is written into the ATAG filed and the valid bits are written with the D[7:0] of the write
data. The data sub-blocks can be directly written by executing a STA instruction with ASI=0xD
for the instruction cache data and ASI=0xF for the data cache data. The sub-block to be read in
the indexed cache line and set is selected by A[4:2].
Note:
Diagnostic access to the cache is not possible during a FLUSH operation and will cause a data
exception (trap=0x09) if attempted.
46
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Timer Unit
Prescaler
Timer/Counter1, Timer/Counter2 and the watchdog share the same prescaler.
The prescaler consists of a 10-bit down counter clocked by the system clock. The prescaler is
decremented on each clock cycle. When the prescaler underflows, it is automatically reloaded
with the content of the prescaler reload register. A count tick is generated for the two timers and
the watchdog.
The effective division rate is equal to prescaler reload register value + 1.
Figure 30. Prescaler Block Diagram
Reload Reg.
count tick
SCAR
Control Logic
clock
load
Counter Reg.
SCAC
=0x3FF
Note:
The reset value for SCAR is 0. This is not a legal value, it is however equivalent to a value of 3
and leads to a division rate of 4.
Caution :
The two timers and watchdog share the same decrementer. The minimum allowed prescaler
division factor is 4 (reload register = 3).
Timer/Counter 1 & Timer/Counter1, Timer/Counter2 are two general purpose 32-bit timers. They share the same
decrementer. The timer value is then decremented each time the prescaler generates a timer
pulse.
Timer/Counter 2
Each timer operation is controlled through a dedicated Timer Control register (TIMCTR). A timer
is enabled/disabled by setting TIMCTRxJENx.
Each time a timer underflows, an interrupt is generated. These interrupts can be masked with
the Interrupt Mask and Priority register (ITMP).
Setting TIMCTRxJRLx, the content of the reload register (TIMR) is automatically reloaded in the
Timer Counter register (TIMC) after an underflow and the timer continue running. If the reload bit
is reset, the timer stops running after its first underflow.
Timer Counter can be forced with the Timer Reload value at any time by asserting the load bit
TIMCTRxJLDx in the Timer Control register.
Figure 31. Timer/Counter 1/2 Block Diagram
Control Reg.
TIMCTRn
Reload Reg.
TIMRn
timer interrupts
(irq 8 & 9)
Control Logic
count tick
load
Counter Reg.
TIMCn
enable/disable
=0xFFFFFFFF
47
7703C–AERO–6/09
Watchdog
The watchdog operates the same way as the timers, with the difference that it is always enabled
and upon underflow asserts the external signal WDOG. This signal can be used to generate a
system reset.
If the watchdog counter is refreshed by writing to WDG register before the counter reaches zero, the coun-
ter restarts counting from the new value.
If the counter is not refreshed before the counter reaches zero, WDOG signal is asserted.
After reset, the watchdog is automatically enabled and starts running. The watchdog is reset to a “all
ones”. Together with the default prescaler ratio of 4, the time until first expiration of the watchdog after
reset is about 2^34 clock cycles.
Note:
A read access gives the decounting value of the watchdog, the reload value itself is not stored in
the processor.
Figure 32. Watchdog Block Diagram
WDOG
Watchdog Reg.
WDG
Control Logic
clock
=0xFFFFFFFF
48
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
General
Purpose
Interface
The general purpose interface (GPI) consists in a 32-bit wide I/O port with alternate facilities.
GPI as 32-bit I/O
port
The interface is based on bi-directional I/O ports.The port is split in two parts, with the lower 16-
bits accessible by the parallel IO pads and the upper 16-bits via the data bus.
lower 16-bits
The lower 16-bits of the general purpose interface are accessible through PIO[15:0]. All I/O ports
have true Read-Modify-Write functionality when used as general I/O ports. This means that the
direction of one port pin can be changed without unintentionally the direction of any other pin.
The same applies when changing the drive value of the port.
Figure 33. I/O port block diagram - PIO[15:0]
IO Direction Reg.
D
D
Q
Q
D
IODIR
PIOx
IO Data Reg.
IODAT
Q
clock
configuring the pin
Each pin from PIO[15:0] consists of two register bits : IODIRx and IODATx. As shown in the
“Register Description” section, the IODIRx bits are accessed at IODIR address and iodatx at
IODAT address.
The IODIRJIODIRx bit selects the direction for port number x. If IODIRx is written logic one, the
corresponding pin is configured as output. If written logic zero, the pin is configured as an input.
When the pin is configured as an input, a read of the IODATJIODATx bit returns the current
value of the pin. When the pin is configured as an output, if a logical one is written to IODAT-
JIODATx bit, the port x is driven high. If a logical zero is written to IODATJIODATx bit, the port
x is driven low.
switching between input When the port x is switched from input to output by switching IODIRx, the value of IODATx is
& output
immediatly driven on the corresponding pin.When switched from output to input by toggling
IODIRx, the value from the pin is immediatly written to IODATx.
upper 16-bits
The upper 16-bits of the general purpose interface are accessible through D[15:0]. They can
only be used when all memory areas (ROM, RAM and I/O) are 8-bit wide. If the SDRAM control-
ler is enabled, the upper 16-bits cannot be used.
Figure 34. I/O port block diagram - D[15:0]
IO Direction Reg.
MEDDIR/LOWDIR
D
D
Q
Q
D
Dx
IO Data Reg.
MEDDAT/LOWDAT
Q
clock
49
7703C–AERO–6/09
configuring the pin
The upper 16 bits of the general purpose interface can only be configured as outputs or inputs
on byte basis. D[15:8] is referenced as the medium byte when D[7:0] is referenced as the lower
byte.
Each byte from D[15:0] consists of two register fields. As shown in the “Register Description”
section, the direction fields are accessed at IODIR address when data fields at IODAT address.
The IODIRJMEDDIR bit and the IODIRJLOWDIR bit select the direction for respectively the
medium byte ( D[15:8] ) and the lower byte ( D[7:0] ). If MEDDIR (or LOWDIR) is written logic
one, the corresponding byte in D[15:0] is configured as output. If written logic zero, the byte is
configured as an input.
When configured as an input, a read of the IODATJMEDDAT fileds returns the current value of
D[15:8]. When configured as an output, the logical value from IODATJMEDDAT field is trans-
lated in physical values on D[15:8] bus.
When configured as an input, a read of the IODATJLOWDAT fileds returns the current value of
D[7:0]. When configured as an output, the logical value from IODATJLOWDAT field is trans-
lated in physical values on D[7:0] bus.
switching between input When the medium byte (or the lower) is switched from input to output by switching MEDDIR (or
& output
LOWDIR), the value of MEDDAT (or LOWDAT) is immediatly driven on the corresponding pin.
When switched from output to input by toggling MEDDIR (or LOWDIR), the value from the pins
are immediatly written to MEDDAT (or LOWDAT).
GPI Alternate
functions
Most GPI pins have alternate functions in addition to being general I/O. Facilities like serial com-
munication link, interrupt input and configuration are made available through these functions.
The following table summaryses the assignement of the alternate functions.
Table 19. GPI alternate functions
GPI port pin
PIO[15]
PIO[14]
PIO[13]
PIO[12]
PIO[11]
PIO[10]
PIO[9]
Alternate function
TXD1 - UART1 transmitter data
RXD1 - UART1 receiver data
RTS1 - UART1 request-to-send
CTS1 - UART1 clear-to-send
TXD2 - UART2 transmitter data
RXD2 - UART2 receiver data
RTS2 - UART2 request-to-send
CTS2 - UART2 clear-to-send
PIO[8]
PIO[3]
UART clock - Use as alternative UART clock
EDAC enable - Enable EDAC checking at reset
Prom width - Defines PROM bus width at reset
PIO[2]
PIO[1:0]
In addition to these alternate functions, each GPI interface pin can be configured as an interrupt
input to catch interrupt from external devices. Up to four interrupts can be configured on the GPI
interface by programming the I/O interrupt register (IOIT).
For a detailed description of the external interrupt configuration, please refer to the “Traps and
Interrupts” section.
50
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
PCI Arbiter
A PCI arbiter is embedded on the AT697 chip. The¨PCI arbiter enables the arbitration of 4 PCI
agents numbered from 3 downto 0. A round-robin algorithm is implemented as arbitration policy.
The PCI arbiter is totally independent from the PCI interface
Operation
An Agent on the PCI bus requests the bus by driving low its REQ* line. When the arbiter deter-
mines that the bus can be granted to an agent, it drives low the corresponding GNT* line.
When the bus is granted to a PCI agent, the agent keeps the bus for only one transaction. If the
agent desires more accesses, it shall continue to assert its REQ* line and wait to be granted the
bus again.
Round Robin
The round robin algorithm used for the arbitration is based on various loops with different priority
levels. The implementation in the AT697 is based on two priority loops. A high priority loop is
defined as level 0. A low priority loop is defined as level 1.
Operation
The arbitration is done checking the REQ* lines of the PCI agents one after each other. In first
place, the loop with level 0 is checked. If a a REQ* is active and no master is currently granted
ther bus, the corresponding GNT* line is driven low. Then, the agent is granted the bus. At each
complete round-turn in level 0, one step is done in level 1. The following figure illustrates the
operation of the arbitre.
Figure 35. Arbitre operation - Agent
Agent 0 Agent 1
Agent 0 Agent 1
Agent 0 Agent 1
level 0
level 1
time
Agent 2
Agent 3
Agent 2
With : agents 0 and 1 at level 0
agents 2 and 3 at level 1
If all agents have a request at the same time, the following probabilities of access are
implemented:
•
•
•
All agents in one level have equal probability
All agents in level 1 together have the same probability of access as one agent in level 0.
If no agent is in level 0, or no agent in level 0 has a request, all agents in level 1 are granted
with equal probability
Bus Parking
As long as no bus request is active on the arbiter, the bus is granted to the last owner. It remains
granted to the last owner until another agent requests the bus. When another request is
asserted, re-arbitration occurs after one turnover cycle.
After reset, the bus is parked to agent 0. Agent 0 is the default owner after a reset operation.
Re-arbitration
When a master is managing a transfer and another one makes a request to the arbiter, re-arbi-
tration occurs. Only one re-arbitration is performed during a transfer. A new arbitration will take
place when the master which was granted the bus frees the bus. As long as all the PCI agents
have no request pending, the arbitration is performed. A re-arbitration cycle also occurs when
living the bus parking state.
Priority definition
Two different priority levels are defined for the PCI arbiter. Level 0 is defined as the high priority
level. Level 1 defines the low priority level. Assignment of the PCI agents priority level is pro-
grammable through the arbiter configuration register (ACR).
Each PCI agent can be individually configured to operate either on level 0 or on level 1, except
agent 3 that is defined by hardware with a low priority (level 1).
Setting logical one in PCIAJPx leads the agents x to a low priority level. Setting this bit logical
zero leads to a high priority.
After reset, all the PCI agents are configured in the low priority loop.
51
7703C–AERO–6/09
PCI Interface
Overview
The PCI interface implementation is compliant with the PCI 2.2 specification. It is a high perfor-
mance 32-bit bus interface with multiplexed address and data lines. It is intended for use as an
interconnect mechanism between processor/memory systems and peripheral controller
components.
The AT697 processor embedds the In-Silicon PCI core. It is interfaced to the processor core
through the PCI to AMBA bridge developped by the European Space Agency.
The PCI bus operations can be clocked at a frequency up to 33MHz, independently of the pro-
cessor clock. Synchronization of the operation between PCI interface and AT697 core implies
numerous FIFO usage. This implementation allows to use the device for Initiator (Master) and
Target operations. In each mode single word and burst transfer can be executed.
Two different operating modes can be used with the PCI interface :
•
Host Bridge
The host-bridge connects the local bus of a processor to the PCI bus. Its PCI configuration
registers are accessible locally by the processor, but not through PCI configuration cycles.
Host-bridge initialises other satellite devices through PCI configuration commands.
•
Satellite
The satellite is a PCI device, configurable via PCI configuration cycles and the idsel line, but
not locally.
Both, host-bridge and satellites can be initiator and/or target on the bus. The present interface
has universal functionality, allowing both operation modes. The mode is configured via a hard-
ware bootstrap on the SYSEN* pin. The state of the SYSEN* pin is copied in PCIISJSYS. This
enables plug and play boot programs loading the appropriate driver depending on the hardware
configuration. In the same manner, the configuration registers are made visible as read only
when the device is configured as satellite
Some other features are supported by this interface like
•
•
•
•
•
•
•
Target lock support
Zero-latency Fast Back-to-Back transfers
Zero wait state burst mode transfers
Support for memory read line/multiple
Support for memory write and invalidate commands
Delayed read support
Flexible error reporting by polling
The PCI bus is a multiplexed one. In this way, address and data through the same medium. That
is why PCI communication is based on two phase burst transfer. Each transfer is composed of
the following phases :
•
An address phase
During the address phase, the initiator of the communication drives the 32-bit address
concerned by the transfer and the command involved through this transfer. The command
defines the space area concerned with the transfer and the direction of the transfer.
•
A data phase
During the data phase the initiator of the communication drives the enable bit signal so that
only active part of the bus is enabled. When reading, the initiator drives the enable bits and
the target set the data on the bus.
PCI Initiator
(Master)
The PCI initiator mode of the AT697 gives a direct memory-mapped (initiator) access to the PCI
bus. Any access to a memory address in the PCI address range is automatically translated by
the interface into the appropriate PCI transaction. In this configuration, the PCI bus is accessed
by the same instructions as the main memory. The SPARC instruction set foresees various
load/store instruction types. The PCI bus foresees 32 bit wide transactions with byte-enables for
each byte lane.
52
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Initiator Mapping
For standard operation, the PCI interface only works in a limited address range. The address
range for such initiator transaction is limited to addresses between 0xA0000000 and
0xF0000000.
PCI addresses outside of this predefined range can be accessed only via DMA transactions.
Instructions of different width (byte, half-word, word, double) can be performed for each address
of the PCI address range. The three low significant bits of the address A[2:0] are used to deter-
mine which PCI byte enable line C/BE*[3:0] should be active during the transaction.
According to the SPARC architecture, big-endian mapping is implemented, the most significant
byte standing at the lower address (0x..00) and the least significant byte standing to the upper
address (0x..03).
A byte-writing to A[1:0] = 00 results in the byte enable pattern 0111, indicating that the e most
significant byte lane (bits 31:24) of the PCI data bus is selected.
The following table presents the transaction width authorized for PCI transfers.
Table 20. Byte Enable Settings
width
8
ld[s/u]b, stb
char
16
32
64
Assembler
C-datatype
A[2:0]=000
A[2:0]=100
A[2:0]=x01
A[2:0]=x10
A[2:0]=x11
ld[s/u]h, sth
short
ld, st
ldd, std
int
long long
0000 (burst)
not aligned
not aligned
not aligned
not aligned
0111
0011
0000
0111
0011
0000
1011
not aligned
1100
not aligned
not aligned
not aligned
1101
1110
not aligned
Note:
PCI byte enables are active low.
For non-aligned accesses, the byte enable pattern (1111) is issued on PCI, to avoid destroying
data in the remote PCI target.
Memory cycles
Many memory transactions such as memory-read/write and memory-read-line/write-invalidate
can be issued from the processor with common SPARC instruction set. Selection of the com-
mand to execute is performed setting the value PCIICJCOMMSB.
Setting logical ‘01’ in PCIICJCOMMSB result in the generation of memory read/write access
when PCI address is accessed. A logical value of ‘10’ result in a memory read line or write and
invalidate on PCI address access.
For the memory commands the address issued on the PCI bus is a word address with bits (1:0)
set to 00. This indicates that the linear incrementing mode is used.
operation
The following procedure shall be used to engage memory transaction on the PCI interface:
1. Select the initiator mode by setting logical one in the PCIICJMOD.
2. Select the memory load/store command or the memory read-line/write and invalidate
command in the PCI initiator configuration register. The PCIICJCOMMSB shall be set
logical ‘01’ for simple load/store operation and shall be set logical ’11’ for read-line/write-
&-invalidate.
3. Enabling the interrupt signalisation is optionnal. It can be enabled setting logical one in
PCIITEJIMIER. Up to four interrupt sources can be defined : Initiator Error, Initiator Par-
ity Error, PCI core error and system error.
4. Engage an access to a memory address mapped in the PCI address range.
53
7703C–AERO–6/09
IO transaction cycles
operation
The following procedure shall be used to engage I/O transaction on the PCI interface:
1. Select the initiator mode by setting logical one in PCIICJMOD.
2. Select the I/O load/store command in the PCI initiator configuration register. The PCI-
ICJCOMMSB shall be set logical ‘00’ for I/O operation.
3. Enabling the interrupt signalisation is optionnal. It can be enabled setting logical one in
PCIITEJIMIER. Up to four interrupt sources can be defined : Initiator Error, Initiator Par-
ity Error, PCI core error and system error.
4. Engage an access to an I/O address mapped in the PCI address range.
Configuration cycles
Target selection
Accesses to a configuration address space requires the target device to be selected. Due to the
address range limitation, the chip-select (IDSEL) connection necessary for device selection shall
be done using only A/D[27:16]. This allows up to 12 PCI devices to be connected on the bus.
Devices with chip-select line connected to A/D[31:28] can’t be configured through standard
operations. DMA configuration cycles shall be used to configure the devices connected to
A/D[31:28].
The PCI bus configuration cycles can be performed using the same instructions as the main
memory. To generate such configuration cycle with the standard instructions,PCIICJCOMMS
shall be programmed to ‘01’.
Then, if a load (or store) cycle is performed to an addresss in the PCI address range, a physical
configuration cycle is performed on the PCI bus. The full 32-bit address defined on the internal
bus is propagated on the PCI bus. Once a target is selected (DEVSEL* asserted).
Operation
The following procedure shall be used to engage configuration cycle on the PCI interface:
1. Select the initiator mode by setting logical one tin PCIICJMOD
2. Select the configuration load/store command in PCIICJCOMMS shall be set logical ‘10’
for configuration operation.
3. Enabling the interrupt signalisation is optionnal. It can be enabled setting logical one in
PCIITEJIMIER. Up to four interrupt sources can be defined : Initiator Error, Initiator Par-
ity Error, PCI core error and system error.
4. Engage an access to an configuration space.
Limitation
Configuration cycles shall only be generated by the PCI host of the bus or by a PCI-to-PCI
bridges.
Special cycles
By default, all requests are translated into single cycle PCI transactions, each transaction con-
sisting in an address phase followed by a single data phase.
Linear incrementing
store-word
Linear incrementing store-word sequences are translated into undetermined length PCI write
bursts with up to a maximum of 255 words. The PCI burst mode is then maintained as long as
possible. Read/write direction is unchanged and the address An+1 = An + 4. When the sequence
is discontinued, the PCI burst stops with a last data phase during which byte enables are 1111.
Fast back2back cycles
The PCI implementation only supports fast back2back cycles to the same target. Before using
fast back-2-back transfers, fast back-2-back cycles shall be enabled setting logical one the bit
COM9 in the status command register (PCISC). PCISCJCOM9 shall only be set one if all tar-
gets on the bus support fast back-2-back transfers. Issuing a fast back to back transfer is done
setting logical one in PCIDMAJB2B.
Note:
Fast back-2-back can only be generated by the initiator. It is not accepted by the AT697 PCI tar-
get.
54
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Error reporting
Fatal (abort) and
address parity errors
On a fatal error ( or address parity error ), the interface flushes all the current buffer requests and
all other buffer requests. Then, the interface reports the fatal error driven logical one the
PCIITEJCMFER.
The PCI core is restarted as soon as a new request is engaged.
DMA transfer
A DMA facility is available on the AT697 processor. The DMA transfer are performed through the
PCI interface. The DMA controller executes data transfer between the local memory and a
remote target on the PCI bus.
The processor core only intervenes for the initiation of the transfer. Once transfer is initiated,
DMA controller is fully autonomous. DMA transfers take place in background of the processor
core activity. Thus, interrupts are provided to help to synchronise the application with start and
end of the transfer.
The DMA interface executes only word-size transactions with all 4 byte lanes enabled.
Operation
The DMA is enabled setting logical one the PCIICJMOD. To synchronize the application with
the start and the end of the transaction, two interrupts can be enabled : PCIITEJDMAER for
transfer control and PCIITEJIMIER for error control.
Each DMA sequence shall program the following parameters :
•
•
•
•
PCI start address
PCI command type
number of words to be transferred
the start address in the local memory
A DMA transfer is performed assuming the following operations are done in the given order :
1. Write the PCI start address of burst to the PCI start address register (PCISA). The PCISA
register shall be re-writen each time a DMA transfer is initiated, even if the address is
identical to the address of the previous DMA request.
2. Write together the PCI command and the number of words to be transfered in the PCI
DMA configuration register (PCIDMA).
Writing to the PCIDMA passes the PCI address, the word count and the PCI command to
the PCI core and initiates the transaction on the PCI bus.
3. Write the start address in the local memory map to the PCI DMA address register
(PCIDMAA).
Once the three operation are executed, data transfer is started in background. Once the speci-
fied number of words is transfered, the interface set logical one the PCIITEJDMAER and
generate an interrupt if enabled. Then DMA controller goes back to idle state.
Error Reporting
If the PCI core does not accept the DMA cycle request, the DMA state controller remains locked
and an error is reported as initiator error with the PCIITEJIMIER bit set logical one. If the
request on the PCI core was just delayed, rewriting PCIDMAA may succeed. If the problem per-
sists, reset the interface by writing –1 (0xFFFFFFFF) to PCIIC.
Transfer Limitation
A DMA transaction may never cross a 1 KByte border. The value represented by PCIDMAA(9:2)
+ PCIDMA(7:0) must be less than 256. If this restriction is not respected, the data transfer stops
at the 1 kByte border. Then the PCI core is flushed. Simultaneously, in the PCI interrupt pending
register (PCIITP) the dma error bit PCIITEJDMAER and the initiator error bit PCIITEJIMIER
are asserted logical one.
If enabled with the PCI interrupr enable register (PCIITE) and unmasked in the general interrupt
mask register, the PCI interrupt 14 is generated (TT = 0x1E).
Debug Facilities
Not implemented for application use.
55
7703C–AERO–6/09
Target Mode
Transfer
In the target mode, the PCI interface receives requests originated from remote PCI initiators
(masters). Target data transfer is executed in background without AT697 core intervention.
AT697 core can only intervenes is the configuration of the target.
•
•
In host bridge mode the target is configured by the AT697 core
In satellite mode the configuration is done by a remote device using the PCI command set
Target Programming
The target is configured through the following registers :
•
PCISC register
bits 0/1 for memory and I/O command response
bit 6 for check of data and address parity error
bit 7 for response to data and address parity error
•
base address registers
memory base address : MEMBAR1, MEMBAR2
I/O base address : IOBAR
•
•
PCITPA register to indicate the storage location
PCITSCJFRTY bit to write data in memory
transaction Ordering
As specified in the PCI standard, delayed read functionality is implemented, obeying to the fol-
lowing rules:
•
The interface stores one delayed read at a time. When a read request was retried (because
local data not yet available), the interface remains locked for any other target read (targeting
different addresses). The initiator of the original read has to repeat its request to the same
address.
•
•
A retried (delayed) read can be interrupted by one or more PCI write accesses. The PCI
standard requires this write command to be processed first, to prevent a system lock-up.
Meanwhile, the interface will prefetch read-data into the TXMT FIFO. After the (interfering)
write, when the read request is repeated, and the requested data is available in the FIFO the
delayed transfer completes normally.
All target read accesses are generally prefetching, also reads with I/O command. Once a start
address is given, the interface prefetches up to 8 words into the TXMT FIFO. After the last
required data word was transferred to PCI, the PCI core automatically flushes the FIFO to dis-
card the unused prefetched data. The interface assumes the complete local address space to be
‘prefetchable’, defined here as the fact, that reading from an address does not alter the data.
This behaviour is to be considered if non-prefetchable devices (for example the UART’s) shall
be read through the PCI target.
PCI Error
Reporting
According to the PCI standard, error and status bits are implemented in the PCI status regis-
ter.(PCISC). The PCI standard foresees a single parity check, by which bus-errors can be
detected, but not corrected. Errors which occur in the PCI interface or on the PCI bus are also
saved in status bits in the PCIITP register, and optionally, the PCI interrupt (IRQ14) is asserted.
Different events can be selected to assert the interrupt. By the interrupt enable register (PCIITE)
configuration you can select the interrupt events which will assert IRQ14. then an interrupt han-
dler can read the interrupting event in the status register (PCIITP).
Furthermore, interrupts can be forced for test purposes by writing to PCIITF.
In host-bridge configuration, this allows an error detection by polling. Certain events and errors
are also reported by the interface in the interrupt status register. For each bit of this register ,
interrupt generation can be programmed individualy. All PCI interrupt generated are then
reported to AT697 core through the PCI interrupt (IT14). The different interrupt causes are distin-
guished by the interrupt status registers settings.
Please refer to the register description chapter for more details on interrupt status register.
56
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
UARTs (UART1 The Universal Asynchronous Receiver and Transmitter (UART) is a highly flexible serial commu-
nication module. The AT697 implements two uarts : UART1 and UART2. Uarts on the processor
are defined as alternate functions of the general purpose interface (GPI).
and UART2)
Overview
The two UART’s provide double buffering. Each UART consists of a transmitter holding register,
a receiver holding register, a transmitter shift register, and a receiver shift register. Each of these
registers are 8-bit wide.
Figure 36. UART Block Diagram
Uart Scaler Reg.
Uart Control Reg.
Uart Status Reg.
UASCAn
UASn
UACn
CTS
RTS
Baud-rate
generator
control logic
RX
Transmitter Shift Register
Receiver Shift Register
TX
Receiver Holding Register
Transmitter Holding Register
Uart Data Reg.
UADn
Each UART is fully controlled by a set of four registers including :
•
•
•
•
a control register
a status register
a scaler register
and a data register
Serial Frame
A serial frame is defined to be one character of data bits with synchronisation bits (start and stop
bits), and optionnaly a parity bit for error checking.
Frame formats
Two frame formats are accepted by the AT697 UARTs, the only difference being the presence
or the absence of the parity bit. All the frames are built on an eight data bits basis.
A frame starts with the synchronization start bit followed by the least significant data bit. Then
the next data bits, up to a total of eight, are succeeding, ending with the most significant bit. If
enabled by setting the UACxJPEx, the parity bit is inserted after the data bits and before the
stop bit.
The following figure illustrates the accepted frame formats.
Figure 37. Data frame format
Start D0 D1 D2 D3 D4 D5 D6 D7 Stop
Data frame, no parity:
Start D0 D1 D2 D3 D4 D5 D6 D7 Parity Stop
Data frame with parity:
Parity bit
The parity bit is calculated by doing an exclusive-or of all the data bits. The odd parity is configured set-
ting logical one the UACxJPSx . In this case, the result of the exclusive or is inverted. An even parity can
be selected setting logical zero the UACxJPSx.
57
7703C–AERO–6/09
If used, the parity bit is located between the last data bit and the stop bit of the serial frame.
The relation between the parity bit and data bits is as follows:
P
= d ⊕ … ⊕ d ⊕ d ⊕ d ⊕ d ⊕ 0
even
7 3 2 1 0
P
= d ⊕ … ⊕ d ⊕ d ⊕ d ⊕ d ⊕ 1
7 3 2 1 0
odd
Peven
Podd
dn
Parity bit using even parity
Parity bit using odd parity
Data bit n of the character
Clock Generation
The clock generation logic generates the base clock for the Transmitters and Receivers. The bit rate of the
UART is issued from the clock generator after a combination between the input clock of the clock module
and a scaler.
Uart Clock
Two clock inputs can be used by the clock generator :
•
•
An internal clock
An external clock
Each UART can be configured to use either the internal or the external clock source by program-
ming the UACxJECx. If set logical zero, the UART is clocked by the internal clock. If
UACxJECx is set logical one, the UART is clocked by the external clock. When using the exter-
nal configuration, the UART clock shall be provided by PIO[3] from the general purpose
interface. This clock input is used as an alternate function for PIO[3].
caution :
When using the external clock source, the frequency of PIO[3] must be less than half the fre-
quency of the system clock.
Baud Rate Generation
To generate the bit-rate, each UART has a programmable 12-bits clock divider (UASCAx).
According to the configuration of the UACxJECx, the scaler is clocked either by the system or
by an external clock.
Each time the scaler underflows, a UART tick is generated. The scaler is automatically reloaded
with the value of the UART scaler register after each underflow. The resulting UART tick fre-
quency should be 8 times the desired baud-rate.
The following equation shall be used to calculate the scaler value to define, depending on the
clock source and the expected baud rate.
uartclk × 10
---------------------------------
– 5
baudrate × 8
------------------------------------------
scaler =
10
variable description :
•
•
•
uartclk : frequency of the uart clock
baudrate : expected baud rate
scaler : value to set in (UASCAx) to reach the expected baudrate
Communication
Operations
UARTS operations are controlled through the uart control registers (UACx) and the Uart status
registers (UASx).
Transmitter Operation The transmitter is enabled setting logical one the UACxJTEx . When ready to transmit, data is
transferred from the transmitter holding register to the transmitter shift register and converted to
a serial frame on the transmitter serial output pin (TX).
Following the transmission of the stop bit, if a new character is not available in the transmitter
holding register, the transmitter serial data output remains high and the transmitter shift register
58
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
empty bit UASxJTSx. Transmission resumes and the UASxJTSx is cleared when a new char-
acter is loaded in the transmitter holding register.
If the transmitter is disabled, it will continue operating until the character currently being transmit-
ted is completely sent out. The transmitter holding register cannot be loaded when the
transmitter is disabled.
If flow control is enabled, the CTS input must be low in order for the character to be transmitted.
If it is deasserted in the middle of a transmission, the character in the shift register is transmitted
and the transmitter serial output then remains inactive until CTS is asserted again. If the CTS is
connected to a receivers RTS, overrun can effectively be prevented.
Receiver Operation
The receiver is enabled for data reception when the receiver enable bit UACxJREx is set logical
one. The receiver looks for a high to low transition of a start bit on the receiver serial data input
pin. If a transition is detected, the state of the serial input is sampled a half bit clocks later. If the
serial input is sampled high the start bit is invalid and the search for a valid start bit continues. If
the serial input is still low, a valid start bit is assumed and the receiver continues to sample the
serial input at one bit time intervals until the proper number of data bits and the parity bit have
been assembled and one stop bit has been detected. During this process the least significant bit
is received first.
The serial input is sampled three times for each bit and averaged to filter out noise.
The data is then transferred to the receiver holding register and the data ready bit UASxJDRx is
set logical one. The parity, framing and overrun error bits are set at the received byte boundary,
at the same time as the receiver ready bit is set.
If both receiver holding and shift registers contain an un-read character when a new start bit is
detected, then the character held in the receiver shift register will be lost and the overrun bit
UASxJOVx is set logical one.
If flow control is enabled, then the RTS will be negated (high) when a valid start bit is detected
and the receiver holding register contains an un-read character. When the holding register is
read, the RTS will automatically be reasserted again.
A correctly received byte is indicated by the data ready bit UASxJDRx. In case of error (framing
error, stop bit error,...), the respective bits UASxJFEx, UASxJPEx, ... are set logical one when
the data ready bit remains logical zero.
Interrupt Generation
The two UARTs can be configured to generate interrupt each time a byte is received or a byte is
sent.
If the UACxJTIx is set logical one, an interrupt is issued after each character sending. If set log-
ical zero, no interrupt is issued on character sending.
If the UACxJRIx is set logical one, an interrupt is issued after each character reception. If set
logical zero, no interrupt is issued after a character reception.
If the receiver interrupt is enabled, when error is detected during the reception of a character,an
interrupt is generated. To identify the origin of the transaction failure, refer to the uart status reg-
ister bits (UASxJOVx, UASxJPEx, UASxJTEx) that indicate either it is a parity, a framing or an
overrun error.
Loop back mode
If the UACxJLBx is set, the UART will be in loop back mode. In this mode, the transmitter output
is internally connected to the receiver input and the RTS is connected to the CTS. It is then pos-
sible to perform loop back tests to verify operation of receiver, transmitter and associated
software routines. In this mode, the outputs remain in the inactive state, in order to avoid send-
ing out data.
59
7703C–AERO–6/09
Debug Support Unit - DSU
Overview
The AT697 processor includes an hardware debug support unit to aid software debugging on
target hardware. The support is provided through two modules: a debug support unit (DSU) and
a debug communication link (DCL).
The DSU can put the processor in debug mode, allowing read/write access to all processor reg-
isters and cache memories. The DSU also contains a trace buffer which stores executed
instructions or data transfers on the internal bus. The debug communications link implements a
simple read/write protocol and uses standard asynchronous UART communications.
Figure 38. Debug Support Unit and Communication Link
AT697 processor
Trace
Buffer
AT697 SPARC V8
Integer unit
Debug I/F
DSUEN
DSUBRE
DSUACT
Debug
Support Unit
I-Cache D-Cache
AHB interface
AMBA AHB
Debug
Comm. Link
DSUTX
DSURX
It is possible to debug the processor through any master on the internal bus. The PCI interface is
build in as a master on the internal bus. All debug features are available from any PCI master.
Debug Support
Unit
The debug support unit is used to control the trace buffer and the processor debug mode. The
DSU master occupies a 2 Mbyte address space on the internal bus. Through this address
space, any other masters like PCI can access the processor registers and the contents of the
trace buffer.
The DSU control registers can be accessed at any time, while the processor registers and
caches can only be accessed when the processor has entered debug mode. The trace buffer
can be accessed only when tracing is disabled or completed. In debug mode, the processor
pipeline is held and the processor is controlled by the DSU. Entering the debug mode can occur
on the following events:
•
•
•
•
•
•
•
•
executing a breakpoint instruction (ta 1)
integer unit hardware breakpoint/watchpoint hit (trap 0x0B)
rising edge of the external break signal (DSUBRE)
setting the break-now DSUCJBN
a trap that would cause the processor to enter error mode
occurrence of any, or a selection of traps as defined in the DSU control register
after a single-step operation
DSU breakpoint hit
The debug mode can only be entered when the debug support unit is enabled through an exter-
nal pin (DSUEN). Driving the DSUEN pin high enables the debug mode. When the debug mode
is entered, the following actions are taken:
•
•
PC and nPC are saved in temporary registers (accessible by the debug unit)
an output signal (DSUACT) is asserted to indicate the debug state
60
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
•
the timer unit is (optionally) stopped to freeze the AT697 timers and watchdog
The instruction that caused the processor to enter debug mode is not executed, and the proces-
sor state is kept unmodified. Execution is resumed by clearing the DSUCJBN or by de-
asserting DSUEN. The timer unit will be re-enabled and execution will continue from the saved
PC and nPC. Debug mode can also be entered after the processor has entered error mode, for
instance when an application has terminated and halted the processor. The error mode can be
reset and the processor restarted at any address.
DSU Breakpoint
The DSU contains two breakpoint registers for matching either internal bus addresses or exe-
cuted processor instructions. A breakpoint hit is typically used to freeze the trace buffer, but can
also put the processor in debug mode.
Freeze operation can be delayed by programming the DSUCJDCNT to a non-zero value. In this
case, the DSUCJDCNT value will be decremented for each additional trace until it reaches
zero, after which the trace buffer is frozen. If the brake on trace freeze bit DSUCJBT is set logi-
cal one, the DSU forces the processor into debug mode when the trace buffer is frozen.
Note:
Due to pipeline delays, up to 4 additional instruction can be executed before the processor is
placed in debug mode.
A mask register is associated with each breakpoint, allowing breaking on a block of addresses.
Only address bits with the corresponding mask bit set to ‘1’ are compared during breakpoint
detection.
Time Tag
The DSU implements a time tag counter. This counter is decremented each clock as long as the
processor is running. The counter is stopped when the processor enters debug mode. It is
restarted when execution is resumed.
This time tag counter is stored in the trace as an execution time reference.
Trace Buffer
The trace buffer consists of a circular buffer that stores the executed instructions or the internal
bus data transfers. The size of the trace buffer is 512 lines of 16 bytes. The trace buffer opera-
tion is controlled through the DSU control register (DSUC) and the trace buffer control register
(TBC). When the processor enters debug mode, tracing is suspended.
The trace buffer can contain the executed instructions, the transfers on the internal bus or both
(mixed-mode). The trace buffer control register (TBC) contains two counters TBCJBCNT and
TBCJICNT that store the address of the trace buffer location that will be written on next trace.
Since the buffer is circular, it actually points to the oldest entry in the buffer. The indexes are
automatically incremented after each stored trace entry.
Instruction trace
The instruction trace mode is enabled setting logical one the trace instruction enable bit
TBCJTI.
During instruction tracing, one instruction is stored per line in the trace buffer with the exception
of multi-cycle instructions. Multi-cycle instructions can be entered two or three times in the trace
buffer :
•
For store instructions, bits [63:32] correspond to the store address on the first entry and to
the stored data on the second entry (and third in case of STD). Bit 126 is set logical one on
the second and third entry to indicate this.
•
•
•
A double load (LDD) is entered twice in the trace buffer, with bits [63:32] containing the
loaded data.
Multiply and divide instructions are entered twice, but only the last entry contains the result.
Bit 126 is set for the second entry.
For FPU operation producing a double-precision result, the first entry puts the MSB 32 bits
of the results in bit [63:32] while the second entry puts the LSB 32 bits in this field.
61
7703C–AERO–6/09
Table 21. Trace buffer data allocation, Instruction tracing mode
Bits
Name
Definition
127
Instruction breakpoint hit
Set to ‘1’ if a DSU instruction breakpoint hit occurred.
Set to ‘1’ on the second and third instance of a multi-cycle
instruction (LDD, ST or FPOP)
126
Multi-cycle instruction
125:96 DSU counter
The value of the DSU counter
95:64
63:34
Load/Store parameters
Instruction result, Store address or Store data
Program counter (2 lsb bits removed since they are always
zero)
Program counter
33
Instruction trap
Processor error mode
Opcode
Set to ‘1’ if traced instruction trapped
Set to ‘1’ if the traced instruction caused processor error mode
Instruction opcode
32
31:0
When a trace is frozen, interrupt 11 is generated.
Bus Trace
The bus trace mode is enabled setting logical one the trace instruction enable bit TBCJTA.
During bus tracing, one operation of the internal bus is stored per line in the trace buffer.
Table 22. Trace Buffer Data Allocation, Internal bus Tracing Mode
Bits
127
126
Name
Definition
AHB breakpoint hit
-
Set to ‘1’ if a DSU AHB breakpoint hit occurred.
Unused
125:96 DSU counter
95:92 IRL
The value of the DSU counter
Processor interrupt request input
Processor interrupt level (psr.pil)
Processor trap type (psr.tt)
AHB HWRITE
91:88 PIL
95:80 Trap type
79
Hwrite
78:77 Htrans
76:74 Hsize
73:71 Hburst
70:67 Hmaster
AHB HTRANS
AHB HSIZE
AHB HBURST
AHB HMASTER
66
Hmastlock
AHB HMASTLOCK
AHB HRESP
65:64 Hresp
63:32 Load/Store data
31:0 Load/Store address
AHB HRDATA or HWDATA
AHB HADDR
Mixed Trace
In mixed mode, the buffer is divided on two halves, with instructions stored in the lower half and
bus transfers in the upper half. The MSB bit of the AHB index counter is then automatically kept
high, while the MSB of the instruction index counter is kept low.
62
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
DSU Memory Map
Table 23. DSU Map
Address
Register
0x800000c4
0x800000c8
0x800000cc
0x90000000
0x90000004
0x90000008
0x90000010
0x90000014
0x90000018
0x9000001C
DSU UART status register
DSU UART control register
DSU UART scaler register
DSU control register
Trace buffer control register
Time tag counter
AHB break address 1
AHB mask 1
AHB break address 2
AHB mask 2
0x90010000 - 0x90020000
Trace buffer
..0
Trace bits 127 - 96
Trace bits 95 - 64
Trace bits 63 - 32
Trace bits 31 - 0
...4
...8
...C
0x90020000 - 0x90040000
0x90080000 - 0x90100000
0x90080000
IU/FPU register file
IU special purpose registers
Y register
0x90080004
PSR register
0x90080008
WIM register
0x9008000C
TBR register
0x90080010
PC register
0x90080014
NPC register
0x90080018
FSR register
0x9008001C
DSU trap register
ASR16 - ASR31 (when implemented)
Instruction cache tags
Instruction cache data
Data cache tags
0x90080040 - 0x9008007C
0x90100000 - 0x90140000
0x90140000 - 0x90180000
0x90180000 - 0x901C0000
0x901C0000 - 0x90200000
Data cache data
The addresses of the IU/FPU registersis defined according to how many register windows has
been implemented. The registers can be accessed at the following addresses (NWINDOWS =
number of SPARC register windows = 8):
•
•
•
•
•
%on: 0x90020000 + (((psr.cwp * 64) + 32 + n) mod (NWINDOWS*64))
%ln: 0x90020000 + (((psr.cwp * 64) + 64 + n) mod (NWINDOWS*64))
%in: 0x90020000 + (((psr.cwp * 64) + 96 + n) mod (NWINDOWS*64))
%gn: 0x90020000 + (NWINDOWS*64) + 128
%fn: 0x90020000 + (NWINDOWS*64)
63
7703C–AERO–6/09
Debug Operations
Instruction Breakpoints
To insert instruction breakpoints, the breakpoint instruction (ta 1) should be used. This will leave
the four IU hardware breakpoints free to be used as data watchpoints. Since cache snooping is
only done on the data cache, the instruction cache must be flushed after the insertion or removal
of breakpoints. To minimize the influence on execution, it is enough to clear the corresponding
instruction cache tag (which is accesible through the DSU).
The DSU hardware breakpoints should only be used to freeze the trace buffer, and not for soft-
ware debugging since there is a 4-cycle delay from the breakpoint hit before the processor
enters the debug mode.
Single Stepping
By writing the TBCJSS and reseting the TBCJBN bit, the processor will resume execution for
one instruction and then automatically enter debug mode.
DSU Trap
The DSU trap register (DTR) consists in a read-only register that indicates which SPARC trap
type caused the processor to enter debug mode.
When debug mode is forced by setting the TBCJBN, the trap type is 0x0B.
64
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
DSU
DSU communication link consists of a UART connected to the internal bus as a master.
Communication
Link
Figure 39. DSU Communication Link Block Diagram
Baud-rate
generator
Serial port
Controller
8*bitclk
AMBA APB
DSUTX
DSURX
Receiver shift register
AHB master interface
Transmitter shift register
AHB data/response
AMBA AHB
A simple communication protocol is supported to transmit access parameters and data. A link
command consist of a control byte, followed by a 32-bit address, followed by optional write data.
If the TBCJLR is set, a response byte will be sent after each AHB transfer. If the TBCJLR is not
set, a write access does not return any response, while a read access only returns the read
data.
Data Frame
Commands
Data is sent on 8-bit basis.
Figure 40. DSU UART Data Frame
Start D0 D1 D2 D3 D4 D5 D6 D7 Stop
Through the communication link, a read or write transfer can be generated to any address on the
internal bus. A response byte is can optionally be sent when the processor goes from execution
mode to debug mode. Block transfers can be performed be setting the length field to n-1, where
n denotes the number of transferred words. For write accesses, the control byte and address is
sent once, followed by the number of data words to be written. The address is automatically
incremented after each data word. For read accesses, the control byte and address is sent once
and the corresponding number of data words is returned.
Figure 41. DSU Commands
DSU Write Command
11 Length -1
Addr[31:24] Addr[23:16]
Addr[15:8]
Addr[7:0]
Data[31:24] Data[23:16]
Data[15:8]
Data[7:0]
Send
Receive
Resp. byte (optional)
Response byte encoding
DSU Read command
bit 7:3 = 000000
bit 2 = DMODE
bit 1:0 = HRESP
10 Length -1
Addr[31:24] Addr[23:16]
Addr[15:8]
Data[7:0]
Addr[7:0]
Send
Receive
Data[31:24] Data[23:16]
Data[15:8]
Resp. byte (optional)
Clock Generation
The UART contains a 14-bit down-counting scaler to generate the desired baud-rate. The scaler
is clocked by the system clock and generates a UART tick each time it underflows. The scaler is
reloaded with the value of the UART scaler reload register after each underflow. The resulting
UART tick frequency should be 8 times the desired baud-rate.
65
7703C–AERO–6/09
If not programmed by software, the baud rate will be automatically be discovered. This is done
by searching for the shortest period between two falling edges of the received data (correspond-
ing to two bit periods). When three identical two-bit periods has been found, the corresponding
scaler reload value is latched into the reload register, and the DSUUCJBL bit is set . If the
DSUUCJBL is reset by software, the baud rate discovery process is restarted. The baud-rate
discovey is also restarted when a ‘break’ is received by the receiver, allowing to change to
baudrate from the external transmitter. For proper baudrate detection, the value 0x55 should be
transmitted to the receiver after reset or after sending break.
The best scaler value for manually programming the baudrate can be calculated as follows:
sdclk frequency x 10
5
baudrate x 8
scaler =
10
Booting from DSU By asserting DSUEN and DSUBRE at reset time, the processor will directly enter debug mode
without executing any instructions. The system can then be initialised from the communication
link, and applications can be downloaded and debugged. Additionally, external (flash) PROMs
for standalone booting can be re-programmed.
66
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
JTAG Interface
Overview
The AT697 implements a standard interface compliant with the IEEE 1149.1 JTAG specification.
This interface can be used for PCB testing using the JTAG boundary-scan capability.
The JTAG interface is accessed through five dedicated pins. In JTAG terminology, these pins
constitute the Test Access Port (TAP).
The following table summarizes the TAP pins and there function at JTAG level.
Table 24. TAP Pins
Pin
Name
Type
Description
Used to clock serial data boundary into scan latches and control
sequence of the test state machine. TCK can be asynchronous
with CLK
TCK
Test Clock
Input
Primary control signal for the state machine. Synchronous with
TCK. A sequence of values on TMS adjusts the current state of
the TAP.
TMS
TDI
Test Mode select
Test Data Input
Input
Input
Serial input data to the boundary scan latches. Synchronous
with TCK
Serial output data from the boundary scan latches.
Synchronous with TCK
TDO
Test Data Output
Test Reset
Output
Input
TRST
Resets the test state machine. can be asynchronous with TCK
For more details, please refer to the ‘IEEE Standard Test Access Port and Boundary Scan’
specification.
Any AT697 based system will contain several JTAG compatible chips. These are connected
using the minimum (single TMS signal) configuration. This configuration contains three broad-
cast signals (TMS, TCK, and TRST,) which are fed from the JTAG master to all JTAG slaves in
parallel, and a serial path formed by a daisy-chain connection of the serial test data pins (TDI
and TDO) of all slaves.
The TAP supports a BYPASS instruction which places a minimum shift path (1 bit) between the
chip’s TDI and TDO pins. This allows efficient access to any single chip in the daisy-chain with-
out board-level multiplexing.
Figure 42. JTAG Serial connection using 1 TMS Signal
Part 3
Part 1
Part 2
Part n
TDI
TDO
TDI
TDO
TDI
TDO
TDI
TDO
TDI
TDO
TMS TCK TRST
TMS TCK TRST
TMS TCK TRST
TMS TCK TRST
TMS
TCK
TRST
67
7703C–AERO–6/09
TAP Architecture
The TAP implemented in the AT697 consists of a TAP interface, a TAP controller, plus a number
of shift registers including an instruction register (IR) and some registers .
Figure 43. AT697 TAP Architecture
Boundary Scan Register
Device ID Register
TDO
TDI
0
1
D
Q
∇
Mux
EN
Test
Bypass Register
Data Registers
TAP
Clock DR
Shift DR
. . . .
Update DR
Reset
TMS
TAP
Instruction Decode
. . . . . . . . .
Clock IR
Shift IR
Update IR
TCK
Controller
TRST
Instruction Register
. . . .
Select
TCK
Ena TDO
. . . .
Design-Specific Data
TAP Controller
The TAP controller is a synchronous finite state machine (FSM) which controls the sequence of
operations of the JTAG test circuitry, in response to changes at the JTAG bus. (Specifically, in
response to changes at the TMS input with respect to the TCK input.)
The TAP controller FSM implements the state (16 states) diagram as detailed in the following
diagram. The IR is a 3-bit register which allows a test instruction to be shifted into the AT697.
The instruction selects the test to be performed and the test data register to be accessed.
Although any number of loops may be supported by the TAP, the finite state machine in the TAP
controller only distinguishes between the IR and a DR. The specific DR can be decoded from the
instruction in the IR.
68
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 44. TAP - State Machine
Test Logic Reset
1
0
1
Run Test/Idle
0
1
1
Select DR Scan
Select IR Scan
0
0
1
1
Capture DR[1]
Capture IR
0
0
Shift DR
Shift IR
0
0
Transitions between
states are controlled
by TMS input value.
1
1
1
1
Exit_1 DR
Exit_1 IR
0
0
Pause DR
Pause IR
0
0
1
1
0
0
Exit_2 DR
Exit_2 IR
1
1
Update DR[1]
Update IR
1
0
1
0
Due to the scan cell layout, "Capture DR" and "Update DR" are states without associated action
during the scanning of internal chains.
TAP Instructions
The following instruction are supported by the AT697 TAP.
Table 25. TAP instruction set
Binary Value Instruction Name
Data Register
Scan Chain Accessed
Boundary scan chain
Boundary scan chain
Bypassscan chain
000
001
010
111
EXTEST
Boundary scan register
Boundary scan register
Bypass register
SAMPLE/PRELOAD
BYPASS
IDCODE
Device id register
ID register scan chain
BYPASS
EXTEST
This instruction is binary coded "010"
It is used to speed up shifting at board level through components that are not to be activated.
This instruction is binary coded "000"
69
7703C–AERO–6/09
It is used to test connections between components at board level. Components output pins are
controlled by boundary scan register during Capture DR on the rising edge of TCK.
SAMPLE/PRELOAD
IDCODE
This instruction is binary coded "001"
It is used to get a snapshot of the normal operation by sampling I/O states during Capture DR on
the rising edge of TCK. It allows also to preload a value on the output latches during Update DR
on falling edge of TCK. It do not modify system behaviour.
This instruction is binary coded "111"
Value of the IDCODE is loaded during Capture DR.
Test Data
Registers
The following data registers are supported in the AT697 TAP:
Bypass Register
Bypass register containing a single shift register stage is connected between TDI and TDO.
Figure 45. Bypass Register Cell
from TDI
D
to TDO
&
Shift DR
Clock DR
Device ID register
Device ID register is a read only 32-bit register. It is connected between TDI and TDO.
Figure 46. Device ID Register
31
28
27
12
11
1
0
Const.
1
Vers.
0001
Part ID
Manufacturer’s ID
1011 . 0110 . 0100 . 0101
000 . 0101 . 1000
ID. register value: 0x 1b64 50b1
Field Definitions:
[31:28]: Vers - Version number - 0x1
[27:12]: Part ID - Represent part number as assigned by Vendor- 0x b645
[11:01]: Manufacturer’s ID - Represent manufacturer’s ID as per JEDEC - 0x 058
[0]: Const - Constant tied to logic ’1’.
70
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Boundary Scan Register A single scan chain consisting of all of the boundary scan cells (input, output and in/out cells).
•
The purpose of the boundary scan is the support of scan-based board testing.
Boundary Scan register is connected between TDI and TDO.
To use the boundary scan feature, the PLL will be in bypass mode, i.e. BYPASS signal direction
to VCC.
Checker Scan Register A single scan chain consisting of all of the scan cells of IU parity checkers. The checkers scan is
only used for factory test. Checkers scan register is connected between TDI and TDO.
71
7703C–AERO–6/09
Execution Mode
Reset Mode
When the RESET input is asserted for at least two cycles, the processor enters reset mode.
Under this mode, the CPU and all the peripherals are halted. Only the following registers are
affected by the reset. All other registers maintain their value or are undefined.
Table 26. Reset Operation
Register
PC
Description
Reset Value
0x0000 0000
0x0000 0004
program counter
new program counter
nPC
et = 0
s = 1
PSR
processor status register
CCR
cache control register
PROM bus width
0x0000 0000
PIO[1:0]
MCFG1JPRWDH
MCFG3JPE
PROM EDAC enable
PIO[2]
When RESET is deasserted, execution restarts from address 0.
Debug Mode
Debug mode can be entered when the DSU is enabled through the external DSUEN pin. This
allows read/write access to all processor registers and caches memories. In debug mode, the
processor pipeline is held and the processor is controlled by the DSU.
Power-down/Idle
Mode
AT697 can be idled by writing any value to the power-down register. During power-down mode,
only the integer unit is halted. All other functions and peripherals operate as nominal.
When a single write to the idle register is performed, idle mode is entered on the next load
instruction. Idle mode is terminated when an unmasked interrupt with higher level than the cur-
rent processor interrupt level is pending. Then, the integer unit is re-enabled.
Here is a simple example allowing Idle mode entry :
! write any value to Idle register
st %g2,[%g1 + 0x18]
! enter Idle mode
ld [%o1 + 0x08],%g3
72
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
System Clock
Overview
The AT697F clock system is mainly based on two main clock trees: the PCI clock and the CPU
clock. The following figure presents the clock system of the processor and its distribution.
Figure 47. Clock Distribution
SDCLK
Memory
Control
Interrupt
Controller
Timers
PCI Core
GPI
PCI
Wrapper
Caches
Reg. File
CPU Core
PCI clock
BYPASS
Uarts
Uart Control Reg.
UACn
PLL
PDIV4
LOCK
Alternate
UART clock
CLK
PCI Clock
The PCI clock is dedicated to the PCI Interface. It is used in particular by the PCI wrapper that
shares its activity between the two clock domains.
External Clock
The PCI interface and its associated wrapper can only be driven from an external clock. The PCI
clock shall be connected to the PCI_CLK pin of the PCI interface. This input shall be driven at a
frequency in the range of 0 up to 33MHz.
CPU Clock
The CPU clock is routed to the parts of the system concerned with operation of the SPARC core.
Examples of such modules are the CPU core itself, the register files... The CPU clock is also
used by the majority of the I/O modules like Timers, Memory controller, Interrupt Controller, with
the exception of the PCI Interface.
The CPU clock is driven either directly by an external oscillator or by the internal PLL.
External Clock
To drive the device directly from an external clock source, the CLK input shall be driven by an
external clock generator while the BYPASS pin is driven high. In that way, the CPU clock is the
direct representation of the clock applied to CLK.
When the external CPU clock source is selected, the clock input can be driven at a frequency in
the range of 0MHz up to 100MHz.
PLL
Overview
The CPU clock can be issued from the internal PLL. This PLL contains a phase/frequency
detector, charge pump, voltage control oscillator, low pass filter, lock detector and divider.
73
7703C–AERO–6/09
The PLL implemented is configured by hardware to provide a cpu clock frequency four times the
frequency of the input clock.
PLL control
The PLL control is done by hardware through dedicated ports, including a bypass, a clock input
and a filter input.
The following table presents the assignement and functions of the PLL control signals.
Table 27. PLL ports description
Pin name
LOCK
Function
Lock
CLK
Board clock input
Bypass
BYPASS
Operation
To drive the device from the internal PLL, the CLK input shall be driven by an external clock gen-
erator while the BYPASS pin is driven low. In that way, the CPU clock frequency is four time the
frequency of the clock applied to CLK.
When the PLL based CPU clock source is selected, the clock input shall be driven at a fre-
quency in the range of 18MHz up to 25MHz.
Fault Tolerance &
Clock
To prevent erroneous operations from single event transient (SET) errors and single event upset
(SEU), the AT697F processor is based on full triple modular redundancy (TMR) architecture.
Figure 48. TMR structure
Such architecture is based on a fully triplicated clock distribution (CLK1, CLK2 and CLK3). In
that way, each one of the PCI clock and the cpu clock are build as three-clock trees.
Skew
To prevent the processor from corruption by single event transient (SET) phenomenon, addi-
tional skew can be programmed on the clock trees. The two dedicated pins SKEW1 and SKEW0
are used to program the delay induced by the skew.
Here is a short description of the skew implementation :
74
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 49. CPU clock tree overview
BYPASS
SKEW[1:0]
PLL
cpu clock
CLK
i1
i2
CLK1 tree
CLK2 tree
i3
SKEW[1:0]
i1
i2
D1
D2
D2 = D1
i3
SKEW[1:0]
i1
i2
D3
D4
CLK3 tree
D4 = D3 = 2 * D1
i3
Three configuration of skew are available :
•
•
•
SKEW[1:0] = ’00’ : natural skew corresponding to the intrinsec routage of the chip
SKEW[1:0] = ’01’ : medium skew ‘artificially’ injected
SKEW[1:0] = ’10’ : maximum skew ‘artificially’ injected
The remaining configuration (SKEW[1:0] = ’11’) is reserved and must not be used at application
level.
Table 28. SKEW assignements
DELAY
SKEW[1:0]
‘00’
CLK1 -> CLK2
natural
CLK1 -> CLK3
natural
Comments
natural skew
medium skew
maximum skew
‘01’
D1
D3
‘10’
D1 + D2
D3 + D4
‘11’
Reserved
Use of a high level of skew improves the efficiency of SET prevention but leads to an operating
loss performance. Maximum speed is decreased and timings on the interfaces are slower than
with natural skew. Refer to the ’Electrical Characteristics’ section for detailed timings at each
skew.
75
7703C–AERO–6/09
Package MCGA 349
Mechanical
Outlines
A2
A
A1
e
mm
inch
0,9
min
max
25,2
min
0,976
max
D/E
D1/E1
A1
A2
A
24,8
0,992
22,86
1,4
2,4
4,3
1,85
3,45
5,9
0,055
0,094
0,169
0,031
0,073
0,136
0,232
0,04
b
0,79
0,99
e
1,27
0,05
76
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
QFP256
package
Package
Description
77
7703C–AERO–6/09
Registers
Description
Table 29. Register legend
Address = 0x01010101
Bit Number
31 30 29 28 27 26 25 24 23 ... ... ... ...
9
8
7
6
5
4
3
2
1
0
field name
field
reserved
bit
access type
r=read access
w=write acces
r/w=read and write access
default value after reset
0
100
1
x = undefined or non affected by reset
Integer Unit
Registers
Table 30. Processor State Register- PSR
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
s
impl[3:0]
ver[3:0]
n
z
v
c
reserved
ec ef
pil[3:0]
ps et
cwp[4:0]
r
r
r/w
r/w
r
r
r/w
r/w
r/w
0001
0001
x
x
x
x
xxxxxx
0
x
xxxx
1
1
1
00000
Bit Number
Mnemonic
Description
Implementation or class of implementations of the architecture.
31..28
impl[3:0]
Identify one or more particular implementations or is a readable and writable state field whose properties are
implementation-dependent.
27..24
23
ver[3:0]
n
indicates whether the ALU result was negative for the last instruction modifying icc field.
1 = negative
0 = not negative.
indicates whether the ALU result was zero for the last instruction modifying icc field.
22
21
20
z
v
c
1 = zero
0 = not zero.
indicates whether the ALU result was within the range of (was representable in) 32-bit 2’s complement notation
for the last instruction that modified the icc field. 1 = overflow, 0 = no overflow.
indicates whether a 2’s complement carry out (or borrow) occurred for the last instruction that modified the icc
field. Carry is set on addition if there is a carry out of bit 31. Carry is set on subtraction if there is borrow into bit
31. 1 = carry, 0 = no carry.
determines whether the implementation-dependent oprocessor is enabled. If disabled, a coprocessor
instruction will trap. 1 = enabled, 0 = disabled. If an
13
12
ec
ef
implementation does not support a coprocessor in ardware, PSR.EC should always read as 0 and writes to it
should be ignored.
determines whether the FPU is enabled. If disabled, a floating-point instruction will trap. 1 = enabled, 0 =
disabled. If an implementation does not support a hardware FPU, PSR.EF should always read as 0 and writes
to it should be ignored.
11..8
pil[3:0]
identify the interrupt level above which the processor will accept an interrupt.
determines whether the processor is in supervisor or user mode. 1 = supervisor mode, 0 = user mode.
contains the value of the S bit at the time of the most recent trap.
7
6
s
ps
determines whether traps are enabled. A trap automatically resets ET to 0. When ET=0, an interrupt request is
ignored and an exception trap causes the IU to halt execution, which typically results in a reset trap that
resumes execution at address 0. 1 = traps enabled, 0 = traps disabled.
5
et
78
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
comprise the current window pointer, a counter that identifies the current window into the r registers. The
hardware decrements the CWP on traps and SAVE instructions, and increments it on RESTORE and RETT
instructions (modulo NWINDOWS).
4..0
cwp[4:0]
Table 31. Window Invalid Mask - WIM
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
windows
reserved
7
6
5
4
0
3
0
2
1
0
r
r/w
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
Bit Number
Mnemonic
Description
Indicated wether the window is a ‘valid’ or an ‘invalid’ one.
0 < n < 7
windows[n]
‘0’ : valid
‘1’ : invalid
The WIM can be read by the privileged RDWIM instruction and written by the WRWIM
instruction.
Table 32. Y Register - Y
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
y
r/w
xxxx xxxx
The Y register can be read and written with the RDY and WRY instructions.
Table 33. Trap Base Address - TBR
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
tba[19:0]
r/w
tt[7:0]
r
reserved
r/w
0000
Bit Number
Mnemonic
Description
Trap Base Address
This field contains the most-significant 20 bits of the trap table address.
31..12
tba[19:0]
Trap Type
11..4
tt[7:0]
This eight-bit field is written by the hardware when a trap occurs, and retains its value until the next trap. It
provides an offset into the trap table.
The tba field is written by the WRTBR instruction. Use of WRTBR is don’t care for tt field.
79
7703C–AERO–6/09
Table 34. Program Counters - PC
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
address[31:0]
0x0000 0000
The 32-bit PC contains the address of the instruction currently being executed by the IU.
When a trap occurs, the PC address is saved in the local register (l1). When returning from trap,
l1 value is copied back to PC.
Table 35. New Program Counters - nPC
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
address[31:0]
0x0000 0004
The nPC holds the address of the next instruction to be executed (assuming a trap does not
occur).
When a trap occurs, the nPC address is saved in the local register (l2). When returning from
trap, l2 value is copied back to nPC.
Table 36. Watch Point Address Registers
Address : %asr24, %asr26, %asr28, %asr30
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
waddr[29:0]
if
r/w
r
r/w
0
xxxx xxxx
0
BitNumber
Mnemonic
Description
31..2
waddr[20:0]
Defines the addresses range to be watched
Enable hit generation on instruction fetch
0 = disabled
0
if
1 = enabled
These registers are accessed using the RDASR/WRASR instructions
Table 37. Watch Point Mask registers
Address :%asr25, %asr27, %asr29, %asr31
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
wmask[29:0]
dl ds
r/w
r/w r/w
xxxx xxxx
0
0
80
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
BitNumber
Mnemonic
Description
Defines which bits are to be compared to waddr.
‘0’ = comparison disabled
31..2
wmask[29:0]
‘1’ = comparison enabled
Enable hit generation on data load
‘0’ = disabled
1
0
dl
‘1’ = enabled
Enable hit generation on data store
‘0’ = disabled
ds
‘1’ = enabled
These registers are accessed using the RDASR/WRASR instructions
Table 38. Register File Protection Control Register
Address :%asr16
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
reserved
cnt[2:0]
tcb[6:0]
te di
r
r/w
r/w
x
r/w r/w
xxxx x
000
0
1
Bit Number
11..9
Mnemonic
cnt[2:0]
Description
Error counter.
Incremented for each corrected error
8..2
tcb[6:0]
Test checkbits
EDAC test enable
‘0’ = disabled
1
0
te
di
‘1’ = enabled
Disable EDAC function
‘1’ = disabled
‘0’ = enabled
This register is accessed using the RDASR/WRASR instructions.
Table 39. Window Registers
Type
Name
Definition
i7
i6
i5
i4
i3
i2
i1
i0
return address
frame pointer
incoming parameter register 5
incoming parameter register 4
incoming parameter register 3
incoming parameter register 2
incoming parameter register 1
incoming parameter register 0
in
81
7703C–AERO–6/09
Table 39. Window Registers
Type
Name
l7
Definition
local register 7
l6
local register 6
l5
local register 5
l4
local register 4
local
l3
local register 3
l2
nPC (for RETT)
l1
PC (for RETT)
l0
local register 0
o7
o6
o5
o4
o3
o2
o1
o0
g7
g6
g5
g4
g3
g2
g1
g0
temp
stack pointer
outgoing parameter register 5
outgoing parameter register 4
outgoing parameter register 3
outgoing parameter register 2
outgoing parameter register 1
outgoing parameter register 0
global register 7
out
global register 6
global register 5
global register 4
global
global register 3
global register 2
global register 1
global register 0 - always 0x00000000
Floating Point Unit
Registers
Table 40. FPU Status register - FSR
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
tem[4:0]
aexc[4:0]
cexc[4:0]
rd[1:0]
ns
ver[2:0]
ftt[2:0]
fcc[1:0]
r/w
xx
r/w
xx
r/w
r
r/w
xx
r
r
r/w
xx
r
r
r
00000
x
001
xxx
xxx
xxxxx
00000
Bit Number
Mnemonic
Description
Rounding Direction
31..30
rd[1:0]
Defines the rounding direction used by the AT697 FPU during a floating-point arithmetic operation.
82
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
Trap Enable Mask
tem field enables traps caused by FPops. These bits are ANDed with the bits of the cexc (current exception
field) to determine whether to force a floating-point exception to IU. All trap enable fields correspond to the
similarly named bit in the cexc field.
27..23
tem[4:0]
0 = trap disabled
1 = trap enabled
Causes the FPU to produce implementation-defined results that may not correspond to ANSI/IEEE Standard
754-1985. For instance, to obtain higher performance, implementations may convert a subnormal floatingpoint
operand or result to zero when NS is set.
22
ns
Identify one or more particular implementations of the FPU architecture. For each SPARC IU implementation
there may be one or more FPU implementations, or none. This field identifies the particular FPU implementation
present.
19..17
16..14
11..10
ver[2:0]
ftt[2:0]
fcc[1:0]
Floating point trap type
Identify floating-point exception trap types.when floating point exception occurs, the ftt field encodes the type of
floating-point exception until an STFSR or another FPop is executed.
Contain the FPU condition codes. These bits are updated by floating-point compare instructions (FCMP and
FCMPE). They are read and written by the STFSR and LDFSR instructions, respectively. FBfcc bases its
control transfer on this field.
Accumulate IEEE floating-point exceptions while fp_exception traps are disabled using the TEM field. After an
FPop completes, the TEM and cexc fields are logically anded together. If the result is nonzero, an fp_exception
trap is generated; otherwise, the new cexc field is or’d into the aexc field. Thus, while traps are masked,
exceptions are accumulated in the aexc field.
9..5
aexc[4:0]
cexc[4:0]
Indicate that one or more IEEE floating-point exceptions were generated by the most recently executed FPop
instruction. The absence of an exception causes the corresponding bit to be cleared.
4..0
Trap Types
The ftt field can be read by the STFSR instruction. An LDFSR instruction does not affect ftt field.
Table 41. Trap Type Definition
TT
Name
Description
0
none
No trap.
An IEEE_754_exception floating-point trap type indicates that a floating-point exception occurred that conforms to
the ANSI/IEEE Standard 754-1985. The exception type is encoded in the cexc field.
1
2
IEEE_exception
Unfinished_FPop
An unfinished_FPop indicates that an implementation’s FPU was unable to generate correct results or exceptions
An unimplemented_FPop indicates that an implementation’s FPU decoded an FPop that it does not implement. In
this case, the cexc field is unchanged
3
unimplemented_FPop
A sequence_error indicates one of three abnormal error conditions in the FPU, all caused by erroneous supervisor
software:
- An attempt was made to execute a floating-point instruction when the FPU was not able to accept one. This type
of sequence_error arises from a logic error in supervisor software that has caused a previous floating-point trap to
be incompletely serviced (for example, the floating-point queue was not emptied after a previous floating-point
exception).
4
sequence_error
- An attempt was made to execute a STDFQ instruction when the floatingpoint deferred-trap queue (FQ) was
empty, that is, when FSR.qne = 0. (Note that generation of sequence_error is recommended, but not required in
this case)
A hardware_error indicates that the FPU detected a catastrophic internal error, such as an illegal state or a parity
error on an f register access. If a hardware_error occurs during execution of user code, it may not be possible to
recover sufficient state to continue execution of the user application.
5
6
hardware error
invalid register
An invalid_fp_register trap type indicates that one (or more) operands of an FPop are misaligned, that is, a double-
precision register number is not 0 mod 2, or a quadruple-precision register number is not 0 mod 4. It is
recommended that implementations generate an fp_exception trap with FSR.ftt = invalid_fp_register in this case,
but an implementation may choose not to generate a trap.
83
7703C–AERO–6/09
Floating Point Condition Table 42. FCC Field Definition
Code
FCC
Description
f rs1 = f rs2
f rs1 < f rs2
f rs1 > f rs2
0
1
2
f rs1 ? f rs2
3
indicates an unordered relation, which is true if either f rs1 or f rs2 is a signaling NaN or quiet NaN
Note:
f rs1 and f rs2 correspond to the single, double, or quad values in the f registers specified by an
instruction’s rs1 and rs2 fields. Note that fcc is unchanged if FCMP or FCMPE generates an
IEEE_exception trap.
Floating Point Exception The current and accrued exception fields and the trap enable mask assume the following defini-
Fields
tions of the floating-point exception conditions.
Table 43. Exception Fields
Aexc
Cexc
Mnemonic Mnemonic
Name
Description
An operand is improper for the operation to be performed. 1 = invalid operand, 0 = valid operand(s).
nva
ofa
nvc
ofc
Invalid
Examples : 0 ÷ 0, ∞ − ∞ are invalid.
The rounded result would be larger in magnitude than the largest normalized number in the specified format. 1 =
overflow, 0 = no overflow.
Overflow
The rounded result is inexact and would be smaller in magnitude than the smallest normalized number in the
indicated format. 1 = underflow, 0 = no underflow. Underflow is never indicated when the correct unrounded
result is zero.
if UFM=0 : The ufc and ufa bits will be set if the correct unrounded result of an operation is less in magnitude than
the smallest normalized number and the correctly-rounded result is inexact. These bits will be set if the correct
unrounded result is less than the smallest normalized number, but the correct rounded result is the smallest
normalized number. nxc and nxa are always set as well.
ufa
ufc
Underflow
if UFM=1 : An IEEE_exception trap will occur if the correct unrounded result of an operation would be smaller
than the smallest normalized number. A trap will occur if the correct unrounded result would be smaller than the
smallest normalized number, but the correct rounded result would be the smallest normalized number.
X÷0, where X is subnormal or normalized.
dza
nxa
dzc
nxc
Div_by_zero Note that 0 ÷ 0 does not set the dzc bit.
1 = division-by-zero, 0 = no division-by-zero.
The rounded result of an operation differs from the infinitely precise correct result.
Inexact
1 = inexact result, 0 = exact result.
Table 44. f registers - fx ( 0 < x < 31)
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
fx[31:0]
84
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Memory Interface
Registers
Table 45. Memory Configuration Register 1 - MCFG1
Address = 0x80000000
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
r/w r/w r/w
r/w
xx
r/w r/w r/w
r/w
r/w
0
r/w
r/w r/w
r/w
xx
r/w
1111
r/w
1111
x
0
0
0
0
x
xxx
xxx xxxx
0
x
Bit Number
Mnemonic
Description
PROM area bus ready enable
30
pbrdy
if set, a PROM access will be extended until BRDY* is asserted (driven low).
Asynchronous bus ready
29
abrdy
If set, the BRDY* input can be asserted without relation to the sysstem clock, provided it is at least 1.5 clock
cycles long. Termination of the access after assertion of BRDY* will be delayed by at least one clock cycle.
I/O bus width.
Defines the data with of the I/O area (“00”=8, “10”=32).
28:27
26
iowdh[1:0]
iobrdy
IO area bus ready enable
if set to one, an IO access will be extended until BRDY* is asserted (Driven low)
Bus error enable for RAM, PROM and IO transactions.
25
bexc
If set to one, the (low) assertion of the BEXC* will generate an error response on the internal bus and causes a
trap (0x01, 0x09, 0x2B) depending on the type of access.
I/O waitstates.
Defines the number of waitstates during I/O accesses:
“0000” = 0 waitstate,
“0001” = 1 waitstates,
...,
23:20
iows[3:0]
“1111” = 15 waitstates.
I/O protection.
19
11
iop
‘0’ : Read and write accesses to I/O area are disabled
‘1’ : Read and write accesses to I/O area are enabled.
Prom write enable.
If set, enables write cycles to the prom area.
prwen
Prom width.
Defines the data with of the prom area:
9:8
prwdh[1:0]
prwws[3:0]
“00” = 8 bits,
“10” = 32 bits.
Prom write waitstates.
Defines the number of waitstates during prom write cycles:
“0000” = 0 waitstate,
“0001” = 2 waitstates,
...,
7..4
“1111” = 30 waitstates.
Prom read waitstates.
Defines the number of waitstates during prom read cycles
“0000” = 0 waitstate,
“0001” = 2 waitstates,
...,
3..0
prrws[3:0]
“1111” = 30waitstates.
85
7703C–AERO–6/09
Note:
The prom bank size is coded in the same way as the ram bank size in MCFG2. The prom bank
size is used when an 8-bit prom is used with EDAC enabled - the last 25% of the prom bank is
used to store the EDAC checksums and cannot be used to store instructions or data.
During power-up, the prom width (bits [9:8]) are set with value on PIO[1:0] inputs. The prom
waitstates fields are set to 15 (maximum) and prom bank size is set to “0000”. External bus error
and bus ready are disabled. All other fields are undefined.
Table 46. Memory Configuration Register 2 - MCFG2
Address = 0x80000004
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
reserved
r/w r/w
r/w
r/w
1
r/w
r/w
10
r/w
00
r/w
r/w r/w
r/w
r/w r/w r/w
r/w
xx
r/w
xx
r/w
xx
0
1
111
000
xxxx
0
0
xxxx
x
x
x
Bit Number
Mnemonic
Description
SDRAM refresh.
If set, the SDRAM refresh will be enabled.
31
sdrref
SDRAM tRP timing.
30
trp
tRP will be equal to 2 or 3 system clocks (0/1).
SDRAM tRFC timing.
29..27
trfc[2:0]
tRF will be equal to 3 + field-value system clocks.
SDRAM CAS delay.
26
sdrcas
Selects 2 or 3 cycle CAS delay (0/1). When changed, a LOAD-COMMAND-REGISTER command must be
issued at the same time. Also sets RAS/CAS delay (tRCD).
SDRAM banks size.
Defines the banks size for SDRAM chip selects:
“000” = 4 Mbyte,
“001” = 8 Mbyte,
“010” = 16 Mbyte,
...,
25..23
sdrbs[2:0]
“111”=512 Mbyte.
SDRAM column size.
“00” = 256 when sdrbs = “111”,
“01” = 512 when sdrbs = “111”,
“10” = 1024 when sdrbs = “111”,
22..21
20..19
sdrcls[1:0]
“11” = 4096 when sdrbs = “111”,
= 2048 otherwise.
SDRAM command.
Writing a non-zero value will generate an SDRAM command:
“01” = PRECHARGE,
sdrcmd[1:0]
“10” = AUTO-REFRESH,
“11” = LOAD-COMMAND-REGISTER.
The field is reset after command has been executed.
SDRAM enable.
If set, the SDRAM controller will be enabled.
14
13
se
si
SRAM disable.
If set together with bit 14 (SDRAM enable), the static ram access will be disabled.
86
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
SRAM bank size.
Defines the size of each ram bank
“0000” = 8 Kbyte,
“0001” = 16 Kbyte,
...
12..9
rambs[3:0]
“1111” = 256 Mbyte.
RAM area bus ready enable.
7
6
rambrdy
rmw
For RAM Bank 4 (RAMSN[4]). If set to one, a RAM access will be extended until BRDY* is asserted (driven
low).
Read-modify-write.
if set, Enable read-modify-write cycles on sub-word writes to 32-bit areas with common write strobe (no byte
write strobe).
SRAM bus width.
Defines the data with of the SRAMarea:
“00” = 8 bits,
5..4
3..2
ramwdh[1:0]
ramwws[1:0]
“1X” = 32 bits.
SRAM write waitstates.
Defines the number of waitstates during SRAM write cycles:
“00” = 0 waitstate,
“01” = 1 waitstates,
“10” = 2 waitstates,
“11” = 3 waitstates.
SRAM read waitstates.
Defines the number of waitstates during SRAM read cycles:
“00” = 0 waitstate,
1..0
ramrws[1:0]
“01” = 1 waitstates,
“10” = 2 waitstates,
“11” = 3 waitstates.
Table 47. Memory Configuration Register 3 - MCFG3
Address = 0x80000008
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
reserved
wb
re pe
tcb[6:0]
srcrv[14:0]
rb
r
r/w
r/w r/w r/w r/w
r/w
11101
xxx xxxx xxxx xxxx
0
0
x
x
xxxx xxxx
Bit Number
Mnemonic
srcrv[14:0]
wb
Description
26..12
11
SDRAM refresh counter reload value.
EDAC diagnostic write bypass
EDAC diagnostic read bypass
10
rb
RAM EDAC enable.
Enable EDAC checking of the RAM area
9
8
re
PROM EDAC enable.
pe
Enable EDAC checking of the PROM area. At reset, this bit is initialised with the value of PIO[2]
Test checkbits.
7..0
tcb[6:0]
This field replaces the normal checkbits during store cycles when WB is set. TCB is also loaded with the
memory checkbits during load cycles when RB is set.
87
7703C–AERO–6/09
The period between each AUTO-REFRESH command is calculated as follows:
tREFRESH = ((reload value) + 1) / SDCLK frequency
Table 48. Write Protection Register 1 - WPR1
Address = 0x8000001C
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
en bp
r/w r/w
tag[14:0]
mask[14:0]
r/w
r/w
0
x
xx xxxx xxxx xxxx x
xxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Enable.
31
en
If set, enables the write protect unit
Block protect
If set, selects block protect mode
30
bp
Address tag
This field is compared against address(29:15)
29..15
14..0
tag[14:0]
mask[14:0]
Address mask
This field contains the address mask
Table 49. Write Protection Register 2 - WPR2
Address = 0x80000020
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
en bp
tag[14:0]
mask[14:0]
r/w
r/w r/w
r/w
0
x
xx xxxx xxxx xxxx x
xxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Enable.
31
en
If set, enables the write protect unit
Block protect
If set, selects block protect mode
30
bp
Address tag
This field is compared against address(29:15)
29..15
14..0
tag[14:0]
mask[14:0]
Address mask
this field contains the address mask
88
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 50. Write Protection Start Address 1 - WPSTA1
Address = 0x800000D0
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
START1[27:0]
bp
r/w
00
r/w
r/w r/w
xxxxxxx
x
0
Bit Number
Mnemonic
Description
29..2
START1[27:0]
Contains the first address of the protected block
Block protect
If set, selects block protect mode
1
bp
Table 51. Write Protection End Address 1 - WPSTO1
Address = 0x800000D4
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 11 10
9
8
7
6
5
4
3
2
1
0
END1[27:
r/w
00
r/w
r/w r/w
xxxx
0
0
Bit Number
Mnemonic
Description
29..2
END1[27:0]
Contains the last addres of he protected block
User mode
1
0
us
su
If set, write rtection is enabled for user mode accesses
Suervisor mode
If s, write rotection is enabled for supervisor mode accesses
Table 52. Write Protection StarAddress 2 - WPSTA2
Address = 0x800000D8
31 30 29 28 27 225 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
START2[27:0]
bp
r/w
00
r/w
r/w r/w
xxxxxxx
x
0
Bit Number
Mnemonic
Description
29..2
START2[27:0]
Contains the first address of the protected block
Block protect
If set, selects block protect mode
1
bp
89
7703C–AERO–6/09
Table 53. Write Protection End Address 2 - WPSTO2
Address = 0x800000DC
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
END2[27:0]
r/w
00
r/w
r/w r/w
xxxxxxx
0
0
Bit Number
Mnemonic
Description
29..2
END2[27:0]
Contains the last address of the protected block
User mode
1
0
us
su
If set, write protection is enabled for user mode accesses
Supervisor mode
If set, write protection is enabled for supervisor mode accee
90
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
System Registers
Table 54. Product Configuration Register - PCR
Address = 0x80000024
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
wtpnb[2:0]
nwindows[4:0]
icsz[2:0]
ilsz[2:0]
dcsz[2:0] dlsz[1:0]
fpu[1:0] pci[1:0] wprt[1:0]
r/w
x
r
r
r
r
r
r
r
r
r
r
r
r/w
x
r
r
r
r
1
1
100
0
00111
100
11
100
11
1
1
1
01
01
01
Bit Number
Mnemonic
Description
Debug Support Unit present
“0” = disabled
30
dsu
“1” = present
SDRAM controller present
“0” = disabled
29
sdrctrl
“1” = present
28..26
25
wtpnt[2:0]
imac
Number of implemented watchpoints (0 - 4)
UMAC/SMAC instruction implemented
Number of register windows.
24..20
19..17
nwindows[4:0]
icsz[2:0]
The implemented number of SPARC register windows - 1
Instruction cache size.
The size (in Kbytes) of the instruction cache.
Cache size = 2^(icsz).
Instruction cache line size.
16..15
14..12
11..10
ilsz[2:0]
dcsz[2:0]
dlsz[1:0]
The line size (in 32-bit words) of each line.
Line size = 2^(ilsz).
Data cache size.
The size (in kbytes) of the data cache.
Cache size = 2^(dcsz).
Data cache line size.
The line size (in 32-bit words) of each line.
Line size = 2^(dlsz).
9
8
divinst
mulinst
memstat
fpu[1:0]
pci[1:0]
wprt[1:0]
UDIV/SDIV instruction implemented
UMUL/SMUL instruction implemented
Memory status and failing address register present
FPU type
6
5..4
3..2
1..0
PCI core type
Write protection type
91
7703C–AERO–6/09
Table 55. Fail Address Register - FAILAR
Address = 0x8000000C
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
fa[31:0]
r
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Failing Address
31..0
fa[31:0]
This field contains the address of the access that triggered an error resnse. Thregister is updated each
time an error occurs on the internal bus.
Table 56. Fail Status Register - FAILSR
Address = 0x80000010
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 1
9
8
7
6
5
4
3
2
1
0
reserved
ee ev rw
hmaster[3:0]
r
hsize[2:0]
r
r/w
r/w r/w
r
xxxxxxxxxxxxxxx
0
0
0
0
0
0
0
0
0
0
Bit Number
Mnemonic
Description
EDAC Correctable eor
9
ee
Set when a correctable DAC error is detected.
Error Vali
Set when a w errr occurred.
8
ev
rw
Red/Write.
7
Thibit is st if the failed access was a read cycle, otherwise it is cleared.
Amaster.
6..3
2..0
hmaster[3:0
hsiz
This field contains the HMASTER[3:0] of the failed access.
Transfer Size.
This filed contains the HSIZE[2:0] of the failed transfer.
Note:
Any access triggering an error response on the AHB bus will be registered in two registers; AHB
failing address register and AHB status register.The failing address register will store the address
of the access while the AHB status register will store the access and error type.The registers are
updated when an error occur, and the EV (error valid) is not set. When the EV bit is set, interrupt 1
is generated to inform the processor about the error. After an error, the EV bit has to be reset by
software.
92
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Caches Register
Table 57. Cache Control Register - CCR
Address = 0x80000014
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
reserved
ds fd fi
ib ip dp
df if
r
r/w r/w r/w
r
r/w
xx
r/w
0
r
r
r/w
00
r/w
00
r/w
00
r/w
00
r/w r/w
r/w
00
r/w
00
11110111
0
0
0
10
x
x
x
x
Bit Number
Mnemonic
Description
Data cache snoop enable
23
22
21
ds
If set, will enable data cache snooping.
Flush data cache
fd
fi
If set, will flush the data cache. Always reads as zero.
Flush Instruction cache
If set, will flush the instruction cache. Always reads as zero.
Cache parity bits
Indicates how many parity bits are used to protect the caches
“00” = none,
20..19
cpc[1:0]
“01” = 1 parity bits,
“10” = 2 parity bits,
“11” = not used
Cache parity test bits
These bits are XOR’ed to the data and tag parity bits during diagnostic writes.
18..17
16
cpte[1:0]
Instruction burst fetch
This bit enables burst fill during instruction fetch.
ib
ip
Instruction cache flush pending
This bit is set when an instruction cache flush operation is in progress.
15
Data cache flush pending
This bit is set when an data cache flush operation is in progress.
14
dp
Instruction cache tag error counter
13..12
ite[1:0]
This filed is incremented every time an instruction cache tag parity error is detected.
Instruction cache data error counter
11.10
9..8
ide[1:0]
dte[1:0]
This field is incremented each time an instruction cache data sub-block parity error is detected.
Data cache tag error counter
This filed is incremented every time a data cache tag parity error is detected.
Data cache data error counter
7..6
5
dde[1:0]
This field is incremented each time an instruction cache data sub-block parity error is detected
Data Cache Freeze on Interrupt
If set, the data cache will automatically be frozen when an asynchronous interrupt is taken.
df
if
Instruction Cache Freeze on Interrupt
If set, the instruction cache will automatically be frozen when an asynchronous interrupt is taken.
4
Data Cache state
Define the current data cache according to the following :
“X0” = disabled
“01” = frozen
3..2
dcs[1:0]
“11” = enabled
Set to “00” at reset.
93
7703C–AERO–6/09
Bit Number
Mnemonic
Description
Instruction Cache state
Define the current instruction cache according to the following :
“X0” = disabled
“01” = frozen
1..0
ics[1:0]
“11” = enabled.
Set to “00” at reset.
94
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Power Down Reg.
Table 58. Idle Register - IDLE
Address = 0x80000018
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
idle[31:0]
w
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Write only with any data. A write to this register followed by a load access will use the system to enter power
down mode
31..0
idle[31:0]
95
7703C–AERO–6/09
Timers Registers
Table 59. Timer 1 Counter Register - TIMC1
Address = 0x80000040
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
tim1val[31:0]
r/w
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Timer 1 counter value
31..0
tim1val[31:0]
A read access gives the decounting value of the scaler.
Table 60. Timer 1 Reload Register - TIMR1
Address = 0x80000044
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
tim1rld
r/w
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
Bit Number
Mnemonic
Description
Timer 1 reload value
A write access programs the reload value of Timer 1 counter.
31..0
tim1rld[31:0]
Table 61. Timer 1 Control Register - TIMCTR1
Address = 0x80000048
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
reserved
r/w
r/w
x
xxxx xxxx xxxx xxxx xxxx xxxx xxxx x
0
0
Bit Number
Mnemonic
Description
Load counter
2
ld1
when written with ‘one’, will load the timer reload register into the timer counter register. Always reads as a
‘zero’.
Reload counter
1
0
rl1
If rl1 is set, then the counter will automatically be reloaded with the reload value after each underflow.
Enable counter
enables the timer when set.
en1
96
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 62. Watchdog Register - WDG
Address = 0x8000004C
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
wdc[31:0]
r/w
1111 1111 1111 1111 1111 1111 1111 1111
Bit Number
Mnemonic
Description
Watchdog counter.
Fixes the watchdog ’Timeout’.
31..0
wdc[31:0]
The ’Timeout’ is the time between the loading (or re-loading) and the watchdog interrupt. ’Reset-
Timeout’ is greater than ’Timeout’.
Note:
A read access gives the decounting value of the watchdog, the reload value itself is not stored in
the processor.
Table 63. Timer 2 Counter Register - TIMC2
Address = 0x80000050
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
tim2val[31:0]
r/w
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Timer 2 counter value
31..0
tim2val[31:0]
A read access gives the decounting value of the scaler.
Table 64. Timer 2 Reload Register - TIMR2
Address = 0x80000054
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
tim2rld[31:0]
r/w
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
Bit Number
Mnemonic
Description
Timer 2 reload value
A write access programs the reload value of Timer 1 counter.
31..0
tim2rld[31:0]
97
7703C–AERO–6/09
Table 65. Timer 2 Control Register - TIMCTR2
Address = 0x80000058
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
reserved
r/w
r/w
x
xxxx xxxx xxxx xxxx xxxx xxxx xxxx x
0
0
Bit Number
Mnemonic
Description
Load counter
2
ld2
when written with ‘one’, will load the timer reload register into the timer unter rister. Always reads as a
‘zero’.
Reload counter
1
0
rl2
If rl2 is set, then the counter will automatically be reloaded with thoad value after each underflow.
Enable counter
enables the timer when set.
en2
Table 66. Prescaler Counter Register - SCAC
Address = 0x80000060
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 6 5 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
reserved
counter value [9:0]
r/w
r/w
xxxx xxxx xxxxx xxxx xxx
00 0000 0000
Bit Number
Mnemonic
Decription
9..0
counter value[9:0] prescler ounter value
A read access gives the decounting value of the prescaler.
Table 67. Prescaler Reload Register - SCAR
Address = 0x80000064
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
reserved
reload value [9:0]
r/w
r/w
xxxx xxxx xxxx xxxx xxxx xxx
00 0000 0000
Bit Number
Mnemonic
Description
9..0
reload value [9:0] Prescaler reload value
A write access programs the reload value of the prescaler.
A read access gives the reload value of the prescaler.
Note:
The reset value for SCAR is 0. This is not a legal value, it is however equivalent to a value of 3
and leads to a division rate of 4.
98
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
UARTs Registers
Table 68. UART 1 Data Register - UAD1
Address = 0x80000070
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
reserved
rtd1[7:0]
r/w
r/w
xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx
Bit Number
Mnemonic
Description
7..0
rtd1[7:0]
Received or Transmitted Data of UART1
rtd1 field has 2 meanings:
•
•
A write access enables the sending of the written 8-bit data on UART 1.
A read access provides the received 8-bit data on UART1.
Table 69. UART 1 Status Register - UAS1
Address = 0x80000074
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
reserved
r/w
r/w
0
xxxx xxxx xxxx xxxx xxxx xxxx x
0
0
0
1
1
0
Bit Number
Mnemonic
Description
Framing error
Indicates that a framing error was detected.
6
fe1
Parity error
indicates that a parity error was detected.
5
4
3
2
1
0
pe1
ov1
br1
th1
Overrun
Indicates that one or more character have been lost due to overrun.
Break received
Indicates that a BREAK has been received.
Transmitter hold register empty
Indicates that the transmitter hold register is empty.
Transmitter shift register empty
Indicates that the transmitter shift register is empty.
ts1
Data ready
dr 1
Indicates that new data is available in the receiver holding register.
Table 70. UART 1 Control Register - UAC1
Address = 0x80000078
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
reserved
r/w
r/w
x
xxxx xxxx xxxx xxxx xxxx xxx
0
x
0
x
x
x
0
0
99
7703C–AERO–6/09
Bit Number
Mnemonic
Description
External Clock
if set, the UART scaler will be clocked by PIO[3]
8
ec1
Loop back
If set, loop back mode will be enabled.
7
6
5
lb1
fl1
Flow control
If set, enables flow control using CTS/RTS.
Parity enable
If set, enables parity generation and checking.
pe1
Parity select
Selects parity polarity
‘0’ = even parity
‘1’ = odd parity
4
ps1
Transmitter interrupt enable
If set, enables generation of transmitter interrupt.
3
2
1
0
ti1
ri1
Receiver interrupt enable
If set, enables generation of receiver interrupt.
Transmitter enable
If set, enables the transmitter.
te1
re1
Receiver enable
If set, enables the receiver.
Table 71. UART 1 Scaler Register - UASCA1
Address = 0x8000007C
31 30 29 28 27 26 25 24 23 22 21 20 19 1115 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
reserved
scaler value1 [11:0]
/
r/w
xxxx xxxxxxx xx xxxx
xxxx xxxx xxxx
Table 72. UART 2 Data Regier - UAD2
Address = 0x80000080
31 30 29 28 27 6 224 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
reserved
rtd2 [7:0]
r/w
r/w
xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx
Bit Number
Mnemonic
Description
7..0
rtd2[7:0]
Received or Transmitted Data of UART2
rtd1 field has 2 meanings :
A write access enables the sending of the written 8-bit data on UART 2.
A read access provides the received 8-bit data on UART2.
100
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 73. UART 2 Status Register - UAS2
Address 0x80000084
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
reserved
r/w
w
0
xxxx xxxx xxxx xxxx xxxx xxxx x
0
0
1
1
0
Bit Number
Mnemonic
Description
Framing error
Indicates that a framing error was detected.
6
fe2
Parity error
indicates that a parity error was detected.
5
4
3
2
1
0
pe2
ov2
br2
th2
ts2
Overrun
Indicates that one or more character have been lost due to veun.
Break received
Indicates that a BREAK has been received.
Transmitter hold register empty
Indicates that the transmitter hold regispty.
Transmitter shift register empty
Indicates that the transmitter sft register is empty.
Data ready
dr2
Indicates that new data is avaible in the receiver holding register.
Table 74. UART 2 Control Register - UAC2
Address = 0x80000088
31 30 29 28 27 26 25 24 23 22 21 118 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
rserved
r/w
r/w
x
xxxx xxxx xxxx xxxx xxxx xxx
0
x
0
x
x
x
0
0
Bit Number
Mnemonic
Description
External Clock
if set, the UART scaler will be clocked by PIO[3]
8
ec2
Loop back
If set, loop back mode will be enabled.
7
6
5
lb2
fl2
Flow control
If set, enables flow control using CTS/RTS.
Parity enable
If set, enables parity generation and checking.
pe2
Parity select
Selects parity polarity
“0” = even parity
“1” = odd parity
4
3
ps2
ti2
Transmitter interrupt enable
If set, enables generation of transmitter interrupt.
101
7703C–AERO–6/09
Bit Number
Mnemonic
Description
Receiver interrupt enable
If set, enables generation of receiver interrupt.
2
ri2
Transmitter enable
If set, enables the transmitter.
1
0
te2
re2
Receiver enable
If set, enables the receiver.
Table 75. UART 2 Scaler Register - UASCA2
Address = 0x8000008C
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
reserved
scaler value2 [11:0]
r/w
r/w
xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx
102
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Interrupt Registers
Table 76. Interrupt Mask and Priority Register - ITMP
Address = 0x80000090
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
ilevel[14:0]
imask[14:0]
r/w
r/w
x
r/w
000 0000 0000 000
r/w
x
xxxx xxxx xxxx xxx
Bit Number
Mnemonic
Description
Interrupt level
31..17
ilevel[14:0]
indicates whether an interrupt belongs to priority level 1 (ilevel[n]=1) or leve0 (ilevel[n]=0).
Interrupt mask
indicates whether an interrupt is masked or enabled
‘0’ = masked
‘1’ = enabled
15..1
imask[14:0]
After reset, the interrupt mask register is set to all zeros hile e remaining control registers are undefined.
Table 77. Interrupt Pending Register - ITP
Address = 0x80000094
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
ipend[14:0]
reserved
r/w
r
r/w
x
xxxx xxxx xxxx xxxx
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Bit Number
Mnemonic
Description
Interrupt pending
indicates whether an interrupt is pending
“1” = interrupt pending
15..1
ipend[14:0]
“0” = interrupt not pending
When the IU acknowledges the interrupt, the corresponding pending bit is automatically cleared.
Table 78. Interrupt Force Register - ITF
Address = 0x80000098
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
iforce[14:0]
reserved
r/w
r/w
r/w
x
xxxx xxxx xxxx xxxx
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Bit Number
Mnemonic
Description
Interrupt force
indicates whether an interrupt is being forced
‘1’ = interrupt forced
15..1
iforce[14:0]
‘0’ = interrupt not forced
103
7703C–AERO–6/09
Interrupt can be forced by setting a bit in the interrupt force register. IU acknowledgement will
clear the force bit.
Table 79. Interrupt Clear Register - ITC
Address = 0x8000009C
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
iclear[14:0]
reserved
r/w
r
r/w
x
xxxx xxxx xxxx xxxx
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Bit Number
Mnemonic
Description
Interrupt clear
15..1
iclear[14:0]
If written with a ‘1’, will clear the corresponding bit(s) in the interrupt pending register.
Aread return zero.
Table 80. Secondary Interrupt Mask Register - SITM
Address = 0x800000B0
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
simask[31:0]
r/w
0000 0000 0000 0000 0000 0000 0000 0000
Bit Number
Mnemonic
Description
Second interrupt mask
indicates whether an interrupt is masked (simask[n] = ‘0’) or enabled (simask[n] = ’1’)
32..0
simask[31:0]
After reset, the interrupt mask register is set to all zeros while the remaining control registers are undefined.
.
Table 81. Secondary Interrupt Pending Register - SITP
Address = 0x800000B4
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
sipend[31:0]
r/w
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Second interrupt pending
indicates whether a iterrupt is pending (sipend[n] = ‘1’)
32..0
sipend[31:0]
.
Table 82. Secondary Interrupt Status Register - SITS
Address = 0x800000B8
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
reserved
ip
r/w
x
irl[4:0]
r/w
r/w
xxxx xxxx xxxx xxxx xxxx xxxx xx
x xxxx
104
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
Second interrupt pending
If set, then irl[4:0] is valid.
5
ip
If cleared, no unmasked interrupt is pending.
Second request level
4..0
irl[4..0]
Indicates the highest unmasked pending interrupt.
Table 83. Secondary Interrupt Clear Register - SITC
Address = 0x800000BC
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
3
2
1
0
siclear[31:0]
r/w
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Second interrupt clear
31..0
siclear[31:0]
if written with a ‘1’, will clear the corresponding bit(s) in e inrupt pending register.
105
7703C–AERO–6/09
General Purpose
Interface Registers
Table 84. I/O Port Data Register - IODAT
Address = 0x800000A0
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
meddat[7:0]
lowdat[7:0]
xxxx xxxx
iodata[15:0]
r/w
r/w
xxxx xxxx
xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
15..0
iodata[15:0]
I/O port data
Meddium Data
23..16
meddat[7:0]
lowdat[7:0]
Corresponding to the data D[15:8]
Low Data
31..24
Corresponding to the data D[7:0]
when read, returns the current value of the I/O port;
when written, value is driven on the I/O port signals (if enabled as Output )
Table 85. I/O Port Direction Register - IODIR
Address = 0x800000A4
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
reserved
iodir[15:0]
r/w
r/w
r/w r/w
xxxx xxxx xxxx xx
00 0000 0000 0000 0000
Bit Number
Mnemonic
meddir
Description
Defines the direction of D[15..8]
17
16
lowdir
Defines the direction of D[7..0]
I/O port direction
Defines the direction of I/O ports 15 - 0.
‘1’ = output
15..0
iodir[15:0]
‘0’ = input
Table 86. I/O Port Interrupt Register - IOIT1
Address = 0x800000A8
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
isel3[4:0]
isel2[4:0]
isel1[4:0]
isel0[4:0]
r/w r/w r/w
r/w
r/w r/w r/w
r/w
r/w r/w r/w
r/w
r/w r/w r/w
r/w
0
x
x
x xxxx
0
x
x
x xxxx
0
x
x
x xxxx
0
x
x
x xxxx
106
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
Enable.
31
en3
If set, the corresponding interrupt will be enabled, otherwise it will be masked.
Level/edge triggered.
If set, the interrupt will be edge-triggered, otherwise level sensitive.
30
29
le3
pl3
Polarity
If set, the corresponding interrupt will be active high (or edge-triggered on positive edge). Oterwise, it will be
active low (or edge-triggered on negative edge).
I/O port select.
28..24
23
isel3[4:0]
en2
The value of this field defines which I/O port (0 - 31) should generate parallel I/O rrup3.
Enable.
If set, the corresponding interrupt will be enabled, otherwise it will be masked.
Level/edge triggered.
If set, the interrupt will be edge-triggered, otherwise level sensitive.
22
le2
Polarity
21
pl2
If set, the corresponding interrupt will be active high (or edrigged on positive edge). Otherwise, it will be
active low (or edge-triggered on negative edge).
I/O port select.
20..16
15
isel2[4:0]
en1
The value of this field defines which I/O port (0 hould generate parallel I/O port interrupt 2.
Enable.
If set, the corresponding interrupt will bd, oherwise it will be masked.
Level/edge triggered.
If set, the interrupt will be edgeriggered, otherwise level sensitive.
14
le1
Polarity
13
pl1
If set, the correspondininterrt will be active high (or edge-triggered on positive edge). Otherwise, it will be
active low (or edge-trigged on negative edge).
I/O port select.
12..8
isel1[4:0]
en0
The value othis field defines which I/O port (0 - 31) should generate parallel I/O port interrupt 1.
Enable.
7
6
If se, the corrsponding interrupt will be enabled, otherwise it will be masked.
Levl/edge riggered.
set, tinterrupt will be edge-triggered, otherwise level sensitive.
le0
Polarity
5
0
If set, the corresponding interrupt will be active high (or edge-triggered on positive edge). Otherwise, it will be
active low (or edge-triggered on negative edge).
I/O port select.
4..0
isl0[40]
The value of this field defines which I/O port (0 - 31) should generate parallel I/O port interrupt 0.
Table /O Port Interrupt Register - IOIT2
Address = 0x800000AC
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
isel7[4:0]
isel6[4:0]
isel5[4:0]
isel4[4:0]
r/w r/w r/w
r/w
r/w r/w r/w
r/w
r/w r/w r/w
r/w
r/w r/w r/w
r/w
0
x
x
x xxxx
0
x
x
x xxxx
0
x
x
x xxxx
0
x
x
x xxxx
107
7703C–AERO–6/09
Bit Number
Mnemonic
Description
Enable.
31
en7
If set, the corresponding interrupt will be enabled, otherwise it will be masked.
Level/edge triggered.
If set, the interrupt will be edge-triggered, otherwise level sensitive.
30
29
le7
pl7
Polarity
If set, the corresponding interrupt will be active high (or edge-triggered on positive edge). Oterwise, it will be
active low (or edge-triggered on negative edge).
I/O port select.
28..24
23
isel7[4:0]
en6
The value of this field defines which I/O port (0 - 31) should generate parallel I/O rrup7.
Enable.
If set, the corresponding interrupt will be enabled, otherwise it will be masked.
Level/edge triggered.
If set, the interrupt will be edge-triggered, otherwise level sensitive.
22
le6
Polarity
21
pl6
If set, the corresponding interrupt will be active high (or edrigged on positive edge). Otherwise, it will be
active low (or edge-triggered on negative edge).
I/O port select.
20..16
15
isel6[4:0]
en5
The value of this field defines which I/O port (0 hould generate parallel I/O port interrupt 6.
Enable.
If set, the corresponding interrupt will bd, oherwise it will be masked.
Level/edge triggered.
If set, the interrupt will be edgeriggered, otherwise level sensitive.
14
le5
Polarity
13
pl5
If set, the correspondininterrt will be active high (or edge-triggered on positive edge). Otherwise, it will be
active low (or edge-trigged on negative edge).
I/O port select.
12..8
isel5[4:0]
en4
The value othis field defines which I/O port (0 - 31) should generate parallel I/O port interrupt 5.
Enable.
7
6
If se, the corrsponding interrupt will be enabled, otherwise it will be masked.
Levl/edge riggered.
set, tinterrupt will be edge-triggered, otherwise level sensitive.
le4
Polarity
5
4
If set, the corresponding interrupt will be active high (or edge-triggered on positive edge). Otherwise, it will be
active low (or edge-triggered on negative edge).
I/O port select.
4..0
isl4[40]
The value of this field defines which I/O port (0 - 31) should generate parallel I/O port interrupt 4.
108
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
PCI Registers
Table 88. PCI Device Identification Register 1 - PCIID1
Address = 0x80000100
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
device id [15:0]
vendor id [15:0]
r
r
0x1202
0x1438
Bit Number
Mnemonic
Description
31..16
device id [15:0] This field identifies the particular device. This identifier is allocated by the vendor.
This field identifies the manufacturer of the device. Valid vendor identifiers are allocated by the PCI SIG to
ensure uniqueness. 0FFFFh is an invalid value for Vendor ID.
15..0
vendor id [15:0]
Table 89. PCI Status - Command Register - PCISC
Address = 0x80000104
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
rr rr rr rr rr
r
rr
0
r
r
r
r
r
r
r/w r/w r/w
r
r/w
0
r
r/w
0
r
r/w r/w r/w
0
0
0
0
0
01
1
0
0
0
0
0x0000 0000
0
0
0
0
0
0
0
0
0
Note:
1. rr = Read and Reset by writing 1
Bit Number
Mnemonic
Description
Parity error detected.
31
stat15
This bit must be set by the device whenever it detects a parity error, even if parity error handling is disabled (as
controlled by bit 6 in the Command register).
SERR asserted.
30
29
28
27
stat14
stat13
stat12
stat11
This bit must be set whenever the device asserts SERR*. Devices who will never assert SERR* do not need to
implement this bit.
Master has terminated master abort.
This bit must be set by a master device whenever its transaction except for Special Cycle) is terminated with
Master-Abort. All master devices must implement this bit.
Master has terminated target abort
This bit must be set by a master device whenever its transaction is terminated with Target-Abort. All master
devices must implement this bit.
Target signal target abort.
This bit must be set by a target device whenever it terminates a transaction with Target-Abort. Devices that will
never signal Target-Abort do not need to implement this bit.
Devsel timing.
These bits encode the timing of DEVSEL*. Three allowable timings for assertion of DEVSEL* are specified.
These are encoded as 00 for fast, 01 for medium, and 10 for slow (11b is reserved). These bits are read-only
and must indicate the slowest time that a device asserts DEVSEL* for any bus command except Configuration
Read and Configuration Write.
26..25
stat10_9[1:0]
109
7703C–AERO–6/09
Bit Number
Mnemonic
Description
Master received/asserted PERR
This bit is only implemented by bus masters. It is set when three conditions are met:
24
stat8
1) the bus agent asserted PERR* itself (on a read) or observed PERR* asserted (on a write);
2) the agent setting the bit acted as the bus master for the operation in which the error occurred;
3) the Parity Error Response bit (Command register) is set.
Target supports fast back2back
This optional read-only bit indicates whether or not the target is capable of accepting fast back-to-back
transactions when the transactions are not to the same agent. This bit can be set to 1 if the device can accept
these transactions and must be set to 0 otherwise.
23
stat7
22
21
stat6
stat5
User definable features
66 MHz capabality
This optional read-only bit indicates whether or not this device is capable of running at 66 MHz as defined in
Chapter 7. A value of zero indicates 33 MHz. A value of 1 indicates that the device is 66 MHz capable
Power management capability.
This optional read-only bit indicates whether or not this device implements the pointer for a New Capabilities
linked list at offset 34h. A value of zero indicates that no New Capabilities linked list is available. A value of one
indicates that the value read at offset 34h is a pointer in Configuration Space to a linked list of new capabilities.
20
10
stat4
Interrupt command.
com10
This bit disables the device/function from asserting INTx*. A value of 0 enables the assertion of its INTx*
signal. A value of 1 disables the assertion of its INTx* signal. This bit’s state after RST* is 0.
Master can generate fast back2back.
This optional read/write bit controls whether or not a master can do fast back-to-back transactions to different
devices. Initialization software will set the bit if all targets are fast back-to-back capable. A value of 1 means the
master is allowed to generate fast back-to-back transactions to different agents. A value of 0 means fast back-
to-back transactions are only allowed to the same agent. This bit's state after RST* is 0.
9
com9
Enable SERR driver
-This bit is an enable bit for the SERR* driver. A value of 0 disables the SERR* driver. A value of 1 enables
the SERR* driver. This bit's state after RST* is 0. All devices that have an SERR* pin must implement this bit.
Address parity errors are reported only if this bit and bit 6 are 1.
8
7
com8
com7
Address/Data stepping on PCI bus
Enable Parity Check
This bit controls the device's response to parity errors. When the bitis set, the device must take its normal
action when a parity error is detected. When the bit is 0, the device sets its Detected Parity Error status bit (bit
15 in the Status register) when an error is detected, but does not assert PERR* and continues normal
operation. This bit's state after RST* is 0. Devices that check parity must implement this bit. Devices are still
required to generate parity even if parity checking is disabled.
6
com6
VGA palette snooping
This bit controls how VGA compatible and graphics devices handle accesses to VGA palette registers. When
this bit is 1, palette snooping is enabled (i.e., the device does not respond to palette register writes and snoops
the data). When the bit is 0, the device should treat palette write accesses like all other accesses. VGA
compatible devices should implement this bit.
5
4
com5
com4
Enable memory write and invalidate. This is an enable bit for using the Memory Write and Invalidate command.
When this bit is 1, masters may generate the command. When it is 0, Memory Write must be used instead.
State after RST* is 0. This bit must be implemented by master devices that can generate the Memory Write and
Invalidate command.
Enable special cycles
3
2
1
com3
com2
com1
Controls a device's action on Special Cycle operations. A value of 0 causes the device to ignore all Special
Cycle operations. A value of 1 allows the device to monitor Special Cycle operations. State after RST* is 0.
Enable PCI master
Controls a device's ability to act as a master on the PCI bus. A value of 0 disables the device from generating
PCI accesses. A value of 1 allows the device to behave as a bus master. State after RST* is 0.
Enable target memory command response
Controls a device's response to Memory Space accesses. A value of 0 disables the device response. A value of
1 allows the device to respond to Memory Space accesses. State after RST* is 0.
110
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
Enable target IO command response
0
com1
Controls a device's response to I/O Space accesses. A value of 0 disables the device response. A value of 1
allows the device to respond to I/O Space accesses. State after RST* is 0.
Table 90. PCI Device Identification 2 - PCIID2
Address = 0x80000108
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
class code [23:0]
revision id [7:0]
r
r
0x0B4000
0x10
Bit Number
Mnemonic
Description
The Class Code register is read-only and is used to identify the generic function of the device and, in some
cases, a specific register-level programming interface. The register is broken into three byte-size fields. The
upper byte (at offset 0Bh) is a base class code which broadly classifies the type of function the device performs.
The middle byte (at offset 0Ah) is a sub-class code which identifies more specifically the function of the device.
The lower byte (at offset 09h) identifies a specific register-level programming interface (if any) so that device
independent software can interact with the device.
31..8
class code [23:0]
This register specifies a device specific revision identifier. The value is chosen by the vendor. Zero is an
acceptable value. This field should be viewed as a vendor defined extension to the Device ID.
7..0
revision id [7:0]
Table 91. Bist, Header type, Latency, Cache line size Register - PCIBHLC
Address = 0x8000010C
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
bist[7:0]
header type [7:0]
latency timer [7:0]
cache line size [7:0]
r/w
r/w
r/w
r/w
0x00
0x00
0x00
0x00
Bit Number
Mnemonic
Description
bist7 : Return 1 if device supports BIST. Return 0 if the device is not BIST capable.
bist6 : Write a 1 to invoke BIST. Device resets the bit when BIST is complete. Software should fail the device if
BIST is not complete after 2 seconds.
31..24
23..16
bist[7:0]
bist[3..0] : A value of 0 means the device has passed its test. Non-zero values mean the device failed. Device-
specific failure codes can be encoded in the non-zero value.
header 7 : multi-function device
“0” : device is single function
“1” : device is multi-function
header type [7:0]
header[6..0] : header second part layout
15..8
7..0
latency timer [7:0] this field specifies the value for latency timer in PCI bus clock unit
cache line size
Specifies the cache line size
[7:0]
111
7703C–AERO–6/09
Table 92. Memory Base Address Register 1 - MBAR1
Address = 0x80000110
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
MEMBAR1 [27:0]
r/w
r
r
0x000 0000
1
00
0
Bit Number
Mnemonic
Description
31..4
MEMBAR1[27:0] Memory base address.
Prefetchable
3
pref1
indicates there are no side effects on reads. The device returns all bytes on ads regardless of the byte
enables.
“00” Base register is 32 bits wide and mapping can be donnywhe in the 32-bit Memory Space.
“10” Base register is 64 bits wide and can be mapped nywere n the 64-bit address space.
“11” & “01” Reserved
type1[1:0]
2..1
0
msi1
“0” : Indicates that base address mapes Memce
112
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 93. Memory Base Address Register 2 - MBAR2
Address = 0x80000114
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
MEMBAR2[27:0]
r/w
r
r
0x000 0000
1
00
0
Bit Number
Mnemonic
Description
Memory base address.
31..4
MEMBAR2[27:0]
Prefetchable
3
pref2
type2
indicates there are no side effects on reads. The device returns as on reads regardless of the byte
enables.
“00” Base register is 32 bits wide and mapping can bne nywhere in the 32-bit Memory Space.
“10” Base register is 64 bits wide and can be mapd anwhere in the 64-bit address space.
“11” & “01” Reserved
2..1
0
msi2
“0” : Indicates that base address mapes ory pace
Table 94. IO Base Address Register 3 - IOBAR3
Address = 0x80000118
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 6 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
OBAR[29:0]
r/w
r
r
0x0 000 0000
0
1
Bit Number
Mnemonic
IOBAR[29:0
escription
31..2
0
Memory base address.
“1” : Indicates that base address mapes I/O Space
113
7703C–AERO–6/09
Table 95. Subsystem Identification Register - PCISID
Address = 0x8000012C
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
subsystem id [15:0]
svi[15:0]
r
r
0x0001
0x1438
Bit Number
31..16
Mnemonic
sid[15:0]
svi[15:0]
Description
subsystem id
15..0
subsystem vendor id
Table 96. PCI Capabilities Pointer Register - PCICP
Address = 0x80000134
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 1
9
8
7
6
5
4
3
2
1
0
reserved
pointer[7:0]
r
r
0x0000 00
0xDC
Bit Number
Mnemonic
Description
7..0
pointer[7:0]
index for the extendd cabilities registers
Table 97. PCI Latency Interrupt Registe- PCILI
Address = 0x8000013C
31 30 29 28 27 26 25 24 23 2 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
max_lat[7:0]
min_gnt[7:0]
int_pin[7:0]
int_line[7:0]
r/w
0
r/w
0
r
r/w
0
0
Bit Numbe
Mnemonic
maxlat[7:0]
mingnt[7:0]
intpin[7:0]
Description
31..24
158
maxlat field specifies how often the processor need to gain access to the PCI bus. Units are 0.25 micosecond
min_gnt identifies the length of burst period, assuming a 33MHz clock. Units are 0.25 micosecond
indicates which interrupt pin the processor uses - Always 0 due to absence of PCI interrupt management.
Indicates the interrupt line register to which the core is connected to. - Always 0 due to absence of PCI interrupt
management.
7..0
intlin[7:0]
114
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 98. PCI Retry _trdy - PCIRT
Address = 0x80000140
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
reserved
retry[7:0]
trdy[7:0]
r/w
r/w
0
0x80
0x80
Bit Number
15..8
Mnemonic
retry[7:0]
trdy[7:0]
Description
Indicates the number of retry the core will performe when configured as maste
Indicates the number of PCI clock the processor configured as master wilwait for TRDY
7..0
Table 99. PCI Configuration Write Register - PCICW
Address = 0x80000144
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 1
9
8
7
6
5
4
3
2
1
0
reserved
ben[3:0]
r/w
r/w
0x0000 00
0x0
Bit Number
Mnemonic
Description
Byte enables for wris to e PCI core configuration space
3..0
ben[3:0]
‘0’ = enabled
‘1’ = disabled
Each of the 4 bits is assigned to one 8-bit lane.
•
•
•
•
bit ben[3] is applied to Byte 3, the most significant byte (MSB)
bit ben[2] is applied to Byte 2
bit ben[1] is applied to Byte 1
bit ben[0] is applied to Byte 0, the less significant byte (LSB)
Table 100. PCI Initiator Start Address - PCISA
Address = 0x80000148
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
start address [31:0]
r/w
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Bit Number
Mnemonic
Description
PCI start address for PCI initiator transactions in APB and DMA mode.
start address
[31:0]
31..0
115
7703C–AERO–6/09
Table 101. PCI Initiator Write Register - PCIIW
Address = 0x8000014C
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
reserved
ben[3:0]
r/w
r/w
0x0000 000
0x0
Bit Number
Mnemonic
Description
Byte enables for writes to the PCI core configuration space
3..0
ben[3:0]
‘0’ = enabled
‘1’ = disabled
Each of the 4 bits is assigned to one 8-bit lane.
•
•
•
•
bit ben[3] is applied to Byte 3, the most significant byte (MSB)
bit ben[2] is applied to Byte 2
bit ben[1] is applied to Byte 1
bit ben[0] is applied to Byte 0, the less significant byte (LSB)
Table 102. PCI DMA configuration Register - PCIDMA
address = 0x80000150
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
reserved
com[3:0]
wdcnt[7:0]
r/w
r/w
r/w
0x0000 0
0
0x0
0x00
Bit Number
Mnemonic
Description
Use back2back-mode.
Can be written to 1, if this transaction is to the same target, as the last one.
12
b2b
Note: works only, if the core is enabled for back2back mode.
11..8
7..0
com[3:0]
PCI command to be used in DMA mode.
Word count.
Minimum number of words for the burst.
wdcnt[7:0]
Table 103. PCI Initiator Status Register - PCIIS
address = 0x80000154
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
reserved
sys
dmas[3:0]
act xff xfe rfe
ss[3:0]
r/w
r
r
r
r
r
r
r
0x0000 0
x
0x0
0
0
1
1
0x0
116
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
sys
Description
Value of the SYSEN* pin
0 : Host mode
12
11..8
7
1 : Satellite mode
dmas[3:0]
act
DMA state
PCI core active
1 = active
0 = inactive
6
5
ff
xfe
If set 1, the transmitter fifo is full
If set 1, the transmitter fifo is empty
If set 1, the receiver fifo is empty
Slave status
4
rfe
3..0
ss[3:0]
Table 104. PCI Initiator Configuration - PCIIC
Address = 0x80000158
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 2 1 10
9
8
7
6
5
4
3
2
1
0
reserved
reserved
r/w
r/w
01
r/w
r/w
0
0x0000 00
00000
Bit Number
Mnemonic
Description
Specifies e twmost significant bits of the command used by AHB slave interface.
‘00’ = IO wr
7.6
commsb[1:0]
‘01’ = memory ed/write
‘10= confiuration read/write
‘11’ memead-line/write-invalidate
Pcommand source mode
‘1’ = AHB slave - DMA mode
0’ = APB mode
0
mod
Table 105. arget Page Address Register - PCITPA
Address = 015C
31 39 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
tpa1[7:0]
reserved
tpa2[7:0]
reserved
r/w
r/w
r/w
r/w
0x40
0x00
0x90
0x00
Bit Number
Mnemonic
Description
Target page address
31..24
15..8
tpa1[7:0]
defines the 8 most significant bits of the 16 MByte memory page on which PCI addresses are mapped
Target page address
defines the 8 most significant bits for the second memory BAR.
tpa2[7:0]
117
7703C–AERO–6/09
Table 106. PCI Target Status-Command Register - PCITSC
Address = 0x80000160
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
reserved
tms[3:0]
r/w
r/w r/w r/w r/w r/w
r/w
0x0000 00
0
0
0
1
0000
Bit Number
Mnemonic
Description
Force Retry
Set automatically during long delayed read to prevent the read from big overwrten
8
frty
(Debug Purpose only)
Cleared by writing a 1.
Reception Fifo parity error
7
errmem
‘0’ = Do not save data with parity error
‘1’ = Data with parity error is saved to memory
TXMT Fifo full
‘1’ = force transmistion to abort
6
5
xff
xfe
TXMT Fifo empty
‘1’ = flushes TXMT Fifo
TRCV Fifo empty
‘1’ = flushes TRCV Fifo
4
rfe
Target AHB master state
‘1111’ = reset the state chin
3..0
tms[3:0]
Table 107. PCI Interrupt Enable Register - PCIITE
Address = 0x80000164
31 30 29 28 27 26 25 24 23 2 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
reserved
r/w
r/w r/w r/w r/w r/w r/w r/w r/w
0x0000 00
0
0
0
0
0
0
0
0
Bit Number
Mnemonic
Description
DMA end of transfer
‘0’ = disable
7
dmaer
‘1’ = enable
Initiator error
‘0’ = disable
‘1’ = enable
6
5
4
3
imier
cmfer
imper
tier
PCI core error
‘0’ = disable
‘1’ = enable
Initiator Parity error
‘0’ = disable
‘1’ = enable
Target error
‘0’ = disable
‘1’ = enable
118
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
Target byte enable error
‘0’ = disable
2
tbeer
‘1’ = enable
Target parity error
‘0’ = disable
‘1’ = enable
1
0
tper
System error asserted on PCI bus
‘0’ = disable
syser
‘1’ = enable
Table 108. PCI Interrupt Pending Register - PCIITP(1)
Address = 0x80000168
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
reserved
r/w
r/w r/w r/w r/w r/w r/w r/w r/w
0x0000 00
0
0
0
0
0
0
0
0
Bit Number
Mnemonic
Description
DMA end of transfer
7
dmaer
‘0’ = not pending
‘1’ = pending
Initiator error
6
5
4
3
2
1
0
imier
cmfer
imper
tier
‘0’ = not pending
‘1’ = pending
PCI core error
‘0’ = not pending
‘1’ = pending
Initiator Parity error
‘0’ = not pending
‘1’ = pending
Target error
‘0’ = not pending
‘1’ = pending
Target byte enable error
‘0’ = not pending
‘1’ = pending
tbeer
tper
Target parity error
‘0’ = not pending
‘1’ = pending
System error asserted on PCI bus
‘0’ = not pending
syser
‘1’ = pending
Note:
1. Bits are cleared when written with a 1. Writing a 0 to the register has no effect.
119
7703C–AERO–6/09
Table 109. PCI Interrupt Force Register - PCIITF
Address = 0x8000016C
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
reserved
r/w
r/w r/w r/w r/w w r/w r/w r/w
0x0000 00
0
0
0
0
0
0
0
Bit Number
Mnemonic
Description
DMA end of transfer
‘0’ = not forced
‘1’ = forced
7
dmaer
Initiator error
‘0’ = not forced
‘1’ = forced
6
5
4
3
2
1
0
imier
cmfer
imper
tier
PCI core error
‘0’ = not forced
‘1’ = forced
Initiator Parity error
‘0’ = not forced
‘1’ = forced
Target error
‘0’ = not forced
‘1’ = forced
Target byte enable rror
‘0’ = not forced
‘1’ = forced
tbeer
tper
Target pay eror
‘0’ = not forc
‘1’ forced
Sysm errr asserted on PCI bus
‘0= not forced
syser
orced
Table 110. PCI Data Reter - PCID
Address = 0x8000017
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
dat[31:0]
r/w
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
31..0
dat[31:0]
data writen/read to/from Fifo
120
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 111. PCI Burst End Register - PCIBE
Address = 0x80000174
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
dat[31:0]
r/w
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
31..0
dat[31:0]
Last data of a burst in APB mode
Table 112. PCI DMA Address Register - PCIDMAA
Address = 0x80000178
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 11 10
9
8
7
6
5
4
3
2
1
0
addr[31
r/
xxxx xxxx xxxxxxx xxx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
31..0
addr[31:0]
Defines the sart address f a DMA transaction
Table 113. PCI Arbiter Register - PCIA
Address = 0x80000280
31 30 29 28 27 26 25 24 23 22 220 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
reserved
p3 p2 p1 p0
r
r
r/w r/w r/w
0x0000 000
1
1
1
1
Bit Numbe
Mnemonic
Description
1
0
p3
p2
p1
p0
Round robin level for agent 3
Round robin level for agent 2
Round robin level for agent 1
Round robin level for agent 0
121
7703C–AERO–6/09
DSU Registers
Table 114. Trace Buffer Control Register - TBC
Address = 0x90000004
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
reserved
ti
reserved
BCNT (AHB index [8:0])
reserved
ICNT (Inst Index [8:0])
af ta
r/w
r/w r/w r/w
r/w
r/w
000000
x
x
x
xxx
x xxxx xxxx
xxx
xxxx xxxx
Bit Number
Mnemonic
Description
AHB trace buffer freeze
26
af
If set, the trace buffer will be frozen when the processor enters in
debug mode
25
24
ta
ti
Trace AHB enable
Trace instruction enable
20..12
8..0
BCNT
ICNT
AHB trace index counter (AHB Index [8:0])
Instruction trace index counter (Inst Index [8:0])
Table 115. DSU Control Register - DSUC
Address = 0x90000000
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
reserved
dcnt[11:0]
re dr lr ss pe ee eb dm de bz bx bd bn bs bw be ft bt dm te
r
r
r
Bit Number
Mnemonic
Description
31..20
dcnt[11:0]
re
Trace buffer delay counter
Reset error mode
19
18
17
16
if set, will clear the error mode in the processor.
Debug mode response
dr
lr
If set, the DSU communication link will send a response word when the processor enters debug mode
Link response
If set, the DSU communication link will send a response word after AHB transfer.
Single step
ss
If set, the processor will execute one instruction and the return to debug mode
Processor error mode
15
pe
returns ‘1’ on read when processor is in error mode
else return ‘0’.
14
13
ee
eb
value of the external DSUEN signal (read-only)
value of the external DSUBRE signal (read-only)
Debug mode
12
11
dm
de
Indicates when the processor has entered debug mode (read-only).
Delay counter enable
If set, the trace buffer delay counter will decrement for each stored trace. This bit is set automatically when an
DSU breakpoint is hit and the delay counter is not equal to zero.
122
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Bit Number
Mnemonic
Description
Break on error traps
10
bz
If set, will force the processor into debug mode on all except the following traps: priviledged_instruction,
fpu_disabled, window_overflow, window_underflow, asynchronous_interrupt, ticc_trap.
Break on trap
9
8
7
6
5
bx
bd
bn
bs
bw
If set, will force the processor into debug mode when any trap occurs.
Break on DSU breakpoint
If set, will force the processor to debug mode when an DSU breakpoint is hit.
Break now
Force processor into debug mode. If cleared, the processor will resume execution.
Break on S/W breakpoint
If set, debug mode will be forced when an breakpoint instruction (ta 1) is executed
Break on IU watchpoint
If set, debug mode will be forced on a IU watchpoint (trap 0xb).
Break on error
4
be
if set, will force the processor to debug mode when the processor would have entered error condition (trap in
trap).
Freeze timers
3
2
1
0
ft
bt
If set, the scaler in the LEON timer unit will be stopped during debug mode to preserve the time for the software
application.
Break on trace
If set, will generate a DSU break condition on trace freeze.
Delay counter mode
dm
te
In mixed tracing mode, setting this bit will cause the delay counter to decrement on AHB traces. If reset, the
delay counter will decrement on instruction traces
Trace enable.
Enables the trace buffer.
Table 116. DSU UART Status Register - DSUUS
Address = 0x800000C4
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
reserved
fe
ov
th ts dr
r/w
r
r/w
x
r
r/w
x
r
r
r
xxxx xxxx xxxx xxxx xxxx xxxx x
0
0
0
0
0
Bit Number
Mnemonic
Description
Framing error
Indicates that a framing error was detected.
6
fe
Overrun
4
2
1
0
ov
th
ts
Indicates that one or more character have been lost due to overrun.
Transmitter hold register empty
Indicates that the transmitter hold register is empty.
Transmitter shift register empty
Indicates that the transmitter shift register is empty.
Data ready
dr
Indicates that new data is available in the receiver holding register.
123
7703C–AERO–6/09
Table 117. DSU Trap Register - DTR
Address = 0x9008001C
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
reserved
em
trap type [7:0]
reserved
0000
Bit Number
12
Bit Mnemonic
em
Description
Error Mode.
Set if the trap would have cause the processor to enter error mode
11..4
trap type [7:0]
8-bit SPARC trap type
Table 118. Break Address Register 1 - BAD1
Address = 0x90000010
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 11 10
9
8
7
6
5
4
3
2
1
0
BADD1[29:0]
Bit Number
Bit mnemonic Description
31..2
0
BADD1[29:0]
ex1
Breakpoint address
Enables break on executed instruction
Table 119. Break Mask Register - BMA1
Address = 0x90000014
31 30 29 28 27 26 25 23 2 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
BMA1[29:0]
Bit Nber
Bit mnemonic
BMA1[29:0]
ld1
Description
31..2
Breaking Mask
1
0
Enables break on AHB load
Enables break on AHB write
st1
124
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Table 120. Break Address Register 2- BAD2
Address = 0x90000018
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
BADD2[29:0]
Bit Number
Bit mnemonic Description
31..2
0
BADD2[29:0]
ex2
Breakpoint address
Enables break on executed instruction
Table 121. Break Mask Register - BMA2
Address = 0x9000001C
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 11 10
9
8
7
6
5
4
3
2
1
0
BMA2[29:0]
Bit Number
Bit mnemonic
BMA2[29:0]
ld2
Description
31..0
Breaking Mask
1
0
Enables break on AHloa
Enables brek on AHB write
st2
Table 122. DSU UART Control Reister - DSUUC
Address = 0x800000C8
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
reserved
bl re
r/w
r
r/w
x
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
0
Bit Number
Mnemonic
Description
Baud rate locked
Is automatically set when the baud rate is locked.
bl
Receiver enable
If set, enables both the transmitter and receiver.
0
re
125
7703C–AERO–6/09
Table 123. DSU UART Scaler Reload Register - DSUUS
Address = 0x800000CC
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
reserved
scaler reload value [12:0]
r/w
r/w
xxxx xxxx xxxx xxxx xx
xx xxxx xxxx xxxx
Bit Number
Mnemonic
Description
Scaler reload
value [13:0]
13..0
Scaler reload Value(1)
Note:
1. The best scaler value for manually programming the baudrate can be calculated as follows:
sdclk frequency x 10
5
baudrate x 8
scaler =
10
126
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Electrical Characteristics
Electrical Characteristics for this product have not yet been finalized. Please consider all values listed here
as preliminary and non contractual
Absolute Maximum Ratings
Operating Temperature .....................................................................-55 °C to +125 °C
Storage Temperature ........................................................................-65 °C to +150 °C
Voltage on VDD with respect to Ground ..............................................-0.3 V to + 2.0 V
Voltage on VCC with respect to Ground ..............................................-0.3 V to + 4.0 V
DC current VCC (VDD) and VSS Pins .............................................................200 mA
Input Voltage on I/O pins with respect to Ground .....................................-0.5 V to +4 V
DC current per I/O pins....................................................................................40 mA
ESD ............................................................................................................. 1000 V
Notes: 1. Stresses at or above those listed under “Absolute Maximum Ratings” may cause permanent
damage to the device. This is a stress rating only and functional operation of the device at
these or any other conditions above those indicated in the operational sections of this specifi-
cation is not implied. Exposure to absolute maximum rating conditions for extended periods
may affect device reliability.
DC Characteristics
Table 124. DC characteristics
Symbol
VDD
Parameter
Min
1.65
3
Typ
1.8
3.3
Max
1.95
3.6
Unit
V
Test Conditions
Core Power Supply
VCC
I/O Power Supply Voltage
Low Level Input Pull-up Current
High Level Input Pull-downCurrent
Low Level Input Leakage Current
High Level Input Leakage Current
High Impedance Current
V
IILpu
100
100
-1
500
500
1
uA
uA
uA
uA
uA
V
Vin = VSS
Vin = VCC (max)
Vin = VSS
IIHpd
IIL
IIH
-1
1
Vin = VCC (max)
Vin = VSS or VCC (max)
IOZ
100
500
0.8
VIL TTL
VIL CMOS
VIH TTL
VIH CMOS
Low Level Input Voltage
30%VCC
V
2
V
High Level Input Voltage
Low Level Output Voltage
70%VCC
V
VCC = VCC(min)
VOL
VOL pci
VOH
0.4
V
V
IOL = 2, 4, 8, 16mA
Low Level Output Voltage
for PCI buffers
VCC = VCC(min)
IOL = 1.5mA
0.1 VCC
VCC = VCC(min)
High Level Output Voltage
VCC - 0.4
0.9 VCC
V
IOH = 2, 4, 8, 16mA
High Level Output Voltage
for PCI buffers
VCC = VCC(min)
IOH = 0.5mA
VOH pci
ICCSb
V
VCC = VCC(max)
no clock active
Standby Current
5
mA
127
7703C–AERO–6/09
Power “On/Off”
Sequence
The AT697E is based on the Atmel 0.18 µm CMOS process. As VDD (1.8V) and VCC (3.3V)
power supplies are electrically isolated, there is no specified sequence in which the power rails
may be activated or deactivated.
Power
The power dissipation is the sum of three basic contributions : P = Pcore + Pio + Ppci
Consumption
•
•
Pcore represents the contribute due to the internal activity.
Pio represents the contribute due to the IO pads and output load current, except the PCI
bus.
•
Ppci represents the contribute due to the PCI pads and output load current.
The following table gives the estimated current consumption for different conditions. The values
are coming from estimation and calculation and not from real measurement.
Table 125. Power Dissipation
Mode
Typical conditions
Worst Conditions
P Core
P I/O
P PCI
P Core
P I/O
P PCI
(1.8V) in W
(3.3V) in W
(3.3V) in W
(1.8V) in W
(3.3V) in W
(3.3V) in W
Operating
(100MHz)
0.6
0.2
0.1
0.8
0.3
0.2
Typical conditions : 25°C, 1.8V core, 3.3V I/O, High I/O and core activity
Worst conditions : 125°C, 1.95 V core, 3.6V I/O; High I/O and core activity
In idle mode (100 MHz external clock), the core power consumption is 0.5W in typical conditions
and 0.7W in worst case conditions.
Decoupling
capacitance
Two main frequencies are involved in the AT697 processor environment :
•
•
33MHz from the PCI interface
100MHz from the master clock of the processor (either from PLL or directly from resonator
input)
The following hypothesis is taken for the calculation of the decoupling capacitance :
•
•
1.5nH is issued from the connection of the capacitor to the PCB
1.5nH is issued from the capacitor intrinsic inductance
Figure 50. Capacitor description
1.5nH
0.75nH
0.75nH
capacitor
PCB
This hypothesis corresponds to a capacitor connected to two micro-vias on a PCB.
The filter defined by the self and the decoupling capacitor shall be able to filter the characteristic frequen-
cies of the application. Each frequency to filtre is defined by :
1
------------------
fc =
·
·
2π LC
•
•
L : the inductance equivalent to the global inductance on the VSS/VDD (VSS/VCC) line.
C : the decoupling capacitance.
128
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
For a processor running at 100MHz with a PCI interface at a characteristic frequency of 33MHz and con-
sidering that power supply pins ar grouped by multiple of four, the decoupling capacitance to set are :
•
•
33nF for 33MHz decoupling
3nF for 100MHz decoupling
Capacitance
Parameter
Description
MAX
5pF
5pF
7pF
7pF
CIN
Standard Input Capacitance
CIO
Standard Input/Output Capacitance
PCI Input Capacitance
CINp
CIOp
PCI Input/Output Capacitance
Rating
129
7703C–AERO–6/09
AC Characteristics The AT697 processor implements a single event transient protection mechanism. The influence
of this protection is reflected by the timing figures presented in the following tables.
The following tables show the timing figures for the skew condition natural and maximum.
Natural Skew
Test Conditions
•
•
•
Natural Skew
Temperature range : -55°C to 125°C
Voltage range :
–
–
I/O: 3.3V +/- 0.30V
Core: 1.8V +/- 0.15V
•
Output load : 30pF
Table 126. AC Characteristics - Natural Skew
Min
Max
(ns)
Reference edge
Parameter
t1
(ns)
Comment
CLK Period with PLL disable
CLK Period with PLL enable
CLK Low and High pulse width - PLL disabled
CLK Low and High pulse width - PLL enabled
SDCLK Period
(‘+’ for rising edge)
10
t1_p
t2
40
57
4.5
18
t2_p
t3
10
t4
3.5
7
SDCLK output delay - PLL disabled
PLL setup time
CLK
t5
1.107
t6
1*t3
1.5
1.5
2
Reset Pulse Width
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
t25
t26
7
8
4
A[27:0] output delay
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
D[31:0] and CB[7:0] output delay
D[31:0] and CB[7:0] setup time
D[31:0] and CB[7:0] hold time during load/fetch
D[31:0] and CB[7:0] hold time during write
OE*, READ and WRITE* output delay
ROMS*[1:0] output delay
0
1.5
1
8
5
6
6
1.5
1.5
5
RAMS*[4:0], RAMOE*[4:0] and RWE*[3:0] output delay
IOS* output delay
BRDY* setup time
0
BRDY* hold time
2.5
2.5
6
8.5
8.5
SDCAS* output delay
SDCS*[1:0], SDRAS*, SDWE* and SDDQM*[3:0] output delay
BEXC* setup time
0
BEXC* hold time
2.5
6
9
PIO[15:0] output delay
PIO[15:0] setup time
130
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Min
(ns)
Max
(ns)
Reference edge
Parameter
t27
Comment
PIO[15:0] hold time during load
(‘+’ for rising edge)
0
SDCLK +
t28
PIO[15:0] hold time during write
PCI_CLK Period
SDCLK +
t101
t102
t110
30
13.5
2
PCI_CLK Low and High pulse width
A/D[31:0] and C/BE[3:0] output delay
A/D[31:0] and C/BE[3:0] setup time
A/D[31:0] and C/BE[3:0] hold time
FRAME*, PAR, PERR*, SERR*, STOP* and DEVSEL* output delay
IRDY* and TRDY* output delay
REQ* output delay
12
PCI_CLK +
PCI_CLK +
PCI_CLK +
PCI_CLK +
PCI_CLK +
PCI_CLK +
t111
7
t112
0
t113
2
11
11
12
t114
2
t115
2
FRAME*, LOCK*, PAR, PERR*, SERR*, IDSEL*, STOP* and DEVSEL*
setup time
t116
7
PCI_CLK +
t117
t118
7
IRDY* and TRDY* setup time
GNT* setup time
PCI_CLK +
PCI_CLK +
10
FRAME*, LOCK*, PAR, PERR*, SERR*, IDSEL*, STOP* and DEVSEL*
hold time
t119
0
PCI_CLK +
t120
t121
0
0
IRDY* and TRDY* hold time
GNT* hold time
PCI_CLK +
PCI_CLK +
131
7703C–AERO–6/09
Maximum Skew
Test Conditions
•
•
•
Maximum Skew Programmed
Temperature range : -55°C to 125°C
Voltage range :
–
–
I/O: 3,3V +/- 0,30V
Core: 1,8V +/- 0,15V
•
Output load : 30pF
Table 127. AC Characteristics - Maximum Skew
Min
Max
(ns)
Reference edge
Parameter
t1
(ns)
Comment
CLK Period with PLL disable
CLK Period with PLL enable
CLK Low and High pulse width - PLL disabled
CLK Low and High pulse width - PLL enabled
SDCLK Period
(‘+’ for rising edge)
11
t1_p
t2
44
57
4.95
20
t2_p
t3
11
t4
3.5
7
SDCLK output delay - PLL disabled
PLL setup time
CLK
t5
1.107
t6
1*t3
1.5
1.5
4
Reset Pulse Width
t10
t11
8
9
A[27:0] output delay
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
SDCLK +
D[31:0] and CB[7:0] output delay
D[31:0] and CB[7:0] setup time
D[31:0] and CB[7:0] hold time
D[31:0] and CB[7:0] hold time during write
OE*, READ and WRITE* output delay
ROMS*[1:0] output delay
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
t25
t26
t27
t28
t101
t102
0
1.5
1.5
8.5
6.5
7
RAMS*[4:0], RAMOE*[4:0] and RWE*[3:0] output delay
IOS* output delay
1.5
5
6.5
BRDY* setup time
0
BRDY* hold time
3
9.5
9.5
SDCAS* output delay
3
SDCS*[1:0], SDRAS*, SDWE* and SDDQM*[3:0] output delay
BEXC* setup time
6
0
BEXC* hold time
2.5
6
9
PIO[15:0] output delay
PIO[15:0] setup time
0
PIO[15:0] hold time
PIO[15:0] hold time during write
PCI_CLK period
30
13.5
PCI_CLK low and high pulse width
132
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Min
(ns)
Max
(ns)
Reference edge
Parameter
t110
Comment
A/D[31:0] and C/BE[3:0] output delay
A/D[31:0] and C/BE[3:0] setup time
A/D[31:0] and C/BE[3:0] hold time
(‘+’ for rising edge)
2
7
0
2
2
2
13
PCI_CLK +
t111
PCI_CLK +
t112
PCI_CLK +
t113
11
11.5
12
FRAME*, PAR, PERR*, SERR*, STOP* and DEVSEL* output delay
IRDY* and TRDY* output delay
PCI_CLK +
t114
PCI_CLK +
t115
REQ* output delay
PCI_CLK +
FRAME*, LOCK*, PAR, PERR*, SERR*, IDSEL*, STOP* and DEVSEL*
setup time
t116
7
PCI_CLK +
t117
t118
7
IRDY* and TRDY* setup time
GNT* setup time
PCI_CLK +
PCI_CLK +
10
FRAME*, LOCK*, PAR, PERR*, SERR*, IDSEL*, STOP* and DEVSEL*
hold time
t119
0
PCI_CLK +
t120
t121
0
0
IRDY* and TRDY* hold time
GNT* hold time
PCI_CLK +
PCI_CLK +
133
7703C–AERO–6/09
Timing Derating
Depending on the capacitance load on each pin, the timing figures change. The following figures
summarize the timing derating versus the load capacitance.
Figure 51. Timing derating
The timing derating figures will be included in next release
134
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Timing Diagrams - Will be updated for production release
Diagram List
•
•
•
Clock Input without PLL
Clock Input with PLL
Reset Sequence
•
•
•
Fetch, Read and Write from/to 32-bit PROM - 0 Waitstate
Fetch, Read and Write from/to 32-bit PROM - n Waitstates
Fetch, Read and Write from/to 32-bit PROM - n Waitstates + BRDY*
•
•
•
•
Fetch from 8-bit PROM with EDAC disabled - n Waitstates
Word Write to 8-bit PROM with EDAC disabled - n Waitstates
Byte and Half Word Write to 8-bit PROM with EDAC disabled - n Waitstates
Fetch from 8-bit PROM with EDAC enabled - n Waitstates
•
•
Fetch, Read and Write from/to 32-bit SRAM - 0 Waitstate
Fetch, Read and Write from/to 32-bit SRAM - n Waitstates
•
•
Burst of RAM Fetches and RAM Write Sequence - 0 Waitstate
Burst of RAM Fetches and RAM Write Sequence - n Waitstates
•
•
SDRAM Read (or Fetch) with Precharge - Burst length = 1; CL = 3
SDRAM Write with Precharge - Burst length = 1; CL = 3
•
•
•
Fetch from ROM, Read and Write from/to 32-bit I/O - 0 Waitstate
Fetch from ROM, Read and Write from/to 32-bit I/O - n Waitstates
Fetch from ROM, Read and Write from/to 32-bit I/O - n Waitstates + BRDY*
135
7703C–AERO–6/09
Figure 52. Clock Input without PLL (PRELIMINARY)
t1
t2
t2
CLK
t4
t4
t4
t4
t4
t4
SDCLK
BYPASS
LOCK
Figure 53. Clock Input with PLL (PRELIMINARY)
t1_p
t2_p
t2_p
CLK
t3
SDCLK
t5
LOCK
BYPASS
PDIV4
VCC
Figure 54. Reset Sequence(PRELIMINARY)
t3
SDCLK
t6
RESET*
136
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 55. Fetch, Read and Write from 32-bit PROM - 0 Waitstate(PRELIMINARY)
Fetch Inst 0
Load Data
Fetch Inst 1
Write Data
SDCLK
A[27:0]
ROMS0*
OE*
t10
t16
t15
t10
t16
t15
t10
t16
t15
t10
t16
Inst Addr 0
Data Addr 0
Inst Addr 1
Data Addr 1
t16
t15
t16
t16
t15
t16
t15
t15
t11
t15
WRITE*
READ
t15
t15
t15
t15
t15
t15
t13
t13
t13
t12
t12
t12
t14
t14
D[31:0]
CB[7:0]
Inst 0
Da ta
Inst 1
WData
t13
t13
t13
t12
t12
CB
t12
t11
WCB
CB Inst
CB Inst
Figure 56. Fetch, Read and Write from 32-bit PROM - n Waitstates(PRELIMINARY)
Fetch Inst 0
Load Data
n WS
Fetch Inst 1
n WS
Write Data
n WS
n WS
t3
SDCLK
A[27:0]
ROMS0*
OE*
t10
t16
t15
t10
t16
t15
t10
t16
t15
t10
t16
Inst Adr 0
Data Addr 1
Inst Adr 1
Data Addr 2
t16
t15
t16
t15
t16
t15
t16
t15
t15
WRITE*
READ
t15
t15
t15
t15
t15
t15
t13
t13
t13
t13
t12
Inst 0
t12
Data
t12
t11
t11
t14
t14
D[31:0]
CB[7:0]
Inst 1
WDat
WCB
t13
t13
t12
CB In
t12
CB
t12
CB In
137
7703C–AERO–6/09
Figure 57. Fetch, Read and Write from 32-bit PROM - n Waitstates + BRDY*(PRELIMINARY)
Fetch Inst 0
n WS
Load Data
n WS
Fetch Inst 1
n WS
brdy
brdy
brdy
SDCLK
t10
t16
t15
t10
t16
t15
t10
t16
t15
t1 0
t1 6
InsAddr 0
DatAddr 1
InsAddr 1
A[27:0]
t16
t15
t16
t15
t16
t15
ROMS0*
OE*
WRITE*
READ
t15
t15
t15
t15
t15
t15
t20
t19
t20
t19
t20
t19
BRDY*
D[31:0]
CB [7:0 ]
t13
t13
t13
t13
t13
t13
t1 2
t12
t12
Inst 0
Data
Inst 1
t1 2
t12
CB
t12
CB Ins
CB Ins
Figure 58. Fetch from 8-bit PROM with EDAC disabled - n Waitstates(PRELIMINARY)
Fetch Inst 0
Fetch Inst 1
n WS
Fetch Inst 2
n WS
Fetch Inst 3
n WS
n WS
t3
SDCLK
A[27:0]
t10
t16
t15
t10
t16
t15
t10
t16
t15
t10
t16
t15
Inst Adr 0
Inst Adr 1
Inst Adr 2
Inst Adr 3
t16
t15
t16
t15
t16
t15
t16
t15
ROMS0*
OE*
WRITE*
t15
t15
t15
t15
t15
t15
t15
t15
READ
t13
t13
t13
t13
t12
Inst B
t12
Inst B
t12
Inst B
t12
Inst B
D[31:0]
138
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 59. Word Write to 8-bit PROM with EDAC disabled - n Waitstates (PRELIMINARY)
Store Byte 0
Store Byte 1
n WS
Store Byte 2
n WS
Store Byte 3
n WS
n WS
t3
SDCLK
A[27:0]
t10
t16
t10
t16
t10
t16
t10
t16
Addr Bye0
Addr Be1
Addr Be2
Addr Be3
t16
t15
t16
t15
t16
t15
t16
t15
ROMS0*
OE*
t15
t15
t15
t15
WRITE*
READ
t11
t14
t11
t14
t11
t14
t11
t14
D[31:24]
Byte 0
Byte 1
Byte 2
Byte 3
Figure 60. Byte and Half Word Write to 8-bit PROM with EDAC disabled - n Waitstates
(PRELIMINARY)
Store Byte
n WS
Ram Fetch
Store Half Word Byte0
n WS
Store Half Word Byte1
n WS
t3
n WS
SDCLK
A[27:0]
RAMS0*
RAMOE0*
ROMS0*
OE*
t10
t10
t17
t17
t10
t10
Byte Ar
Inst Add1
Inst Ad2
Inst Add3
t17
t17
t16
t16
t15
t16
t16
t15
t16
t16
t15
t15
t15
t15
t15
t15
t11
t15
t15
WRITE*
READ
t13
t14
t12
Inst
t11
HW - Be 0
t14
t11
HW - Be 1
t14
Byt
D[31:24]
D[23:0]
Inst
139
7703C–AERO–6/09
Figure 61. Fetch from 8-bit PROM with EDAC enabled - n Waitstates(PRELIMINARY)
Fetch Inst 0
Fetch Inst 1
n WS
Fetch Inst 2
n WS
Fetch Inst Byte3
n WS
Load Checkbit
n WS
t3
SDCLK
A[27:0]
ROMS0*
t10
t16
t14
t10
t16 t16
t14 t14
t10
t16 t16
t14 t14
t10
t10
Inst Adr 0
Inst Adr 1
Inst Adr 2
Inst Adr 3
CB Adr
t16 t16
t14 t14
t16 t16
t14 t14
t16
t14
OE*
WRITE*
t14
t14 t14
t13
t12
Inst
t14 t14
t13
t12
Inst
t14 t14
t13
t12
Inst
t14 t14
t13
t12
Inst
t14
READ
t13
t12
CB
D[31:24]
Figure 62. Fetch, Read and Write from/to 32-bit SRAM - 0 Waitstate(PRELIMINARY)
Fetch Inst 0
Load Data
Fetch Inst 1
Write Data
SDCLK
A[27:0]
t10
t10
t17
t17
t10
t17
t17
t10
t17
Inst Addr 0
Data Addr 1
Inst Addr 1
Data Addr 2
t17
t17
t17
t17
t17
t17
t17
t17
RAMS0*
RAMOE0*
RWE[3:0]*
t17
t17
t11
t17
t13
t13
t13
t13
t12
t12
t12
t14
t14
D[31:0]
CB[7:0]
Inst 0
Data
Inst 1
WData
t13
t13
t12
CB Inst
t12
CB
t12
CB Inst
t11
WCB
140
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 63. Fetch, Read and Write from/to 32-bit SRAM - n Waitstates(PRELIMINARY)
Fetch Inst 0
Load Data
n WS
Fetch Inst 1
n WS
Write Data
n WS
n WS
t3
SDCLK
A[27:0]
t10
t17
t17
t10
t17
t17
t10
t17
t17
t10
t17
Inst Adr 0
Data Adr 1
Inst Adr 1
Data Addr 2
t17
t17
t17
t17
t17
t17
t17
RAMS0*
RAMOE0*
RWE[3:0]*
t17
t17
t14
t14
t13
t13
t13
t13
t12
t12
t12
t11
t11
D[31:0]
CB[7:0]
Inst 0
Data
Inst 1
WDat
WCB
t13
t13
t12
t12
CB
t12
CB In
CB In
Figure 64. Burst of RAM Fetches and RAM Write Sequence - 0 Waitstate(PRELIMINARY)
Fetch Inst 0
Load Data
Fetch Inst 1
Write Data
SDCLK
A[27:0]
t10
t17
t17
t10
t10
t10
t17
Inst Addr 0
Data Addr 0
Inst Addr 1
Data Addr 1
t17
t17
t17
RAMS0*
RAMOE0*
RWE[3:0]*
t17
t11
t17
t13
t13
t13
t13
t13
t13
t12
t12
t12
t14
t14
D[31:0]
CB[7:0]
Inst 0
Data
Inst 1
WData
t12
CB Inst
t12
CB
t12
CB Inst
t11
WCB
141
7703C–AERO–6/09
Figure 65. Burst of RAM Fetches and RAM Write Sequence - n Waitstates(PRELIMINARY)
Fetch Inst 0
Load Data
n WS
Fetch Inst 1
n WS
Write Data
n WS
n WS
t3
SDCLK
A[27:0]
t10
t17
t17
t10
t10
t10
t17
Inst Adr 0
Data Adr 1
Inst Adr 1
Data Addr 2
t17
t17
t17
RAMS0*
RAMOE0*
RWE[3:0]*
t17
t17
t14
t14
t13
t13
t13
t13
t12
t12
t12
t11
t11
D[31:0]
CB[7:0]
Inst 0
Data
Inst 1
WDat
WCB
t13
t13
t12
t12
CB
t12
CB In
CB In
Figure 66. SDRAM Read (or Fetch) with Precharge - Burst length = 1; CL = 3(PRELIMINARY)
1
2
3
4
5
6
7
8
9
10
11
12
13
trp
14
15
1
Trcd
tcas
Tras
Activate
Read
precharge
activate
SDCLK
t10
ba
t10
ba
t10
ba
t10
ba
Memory- A[16:15]
A[14:2]
t10
t10
co
t10
row
row
t22
t22
t22
t22
t22
t22
t22
t22
t22
t22
t22
SDCS*
SDRAS*
t22
t22
t22
t21
t21
SDCAS*
t22
t22
t22
t22
SDWE*
t22
SDDQM[3:0]*
D[31:0]
t12
t12
d1
142
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 67. SDRAM Write with Precharge - Burst length = 1; CL = 3(PRELIMINARY)
1
2
3
4
5
6
7
8
9
10
11
12
13
trp
14
15
1
trc
Tras
Trcd
tcas
tdpl
Activate
Write
precharge
activate
SDCLK
Memory- A[16:15]
A[14:2]
t10
ba
ba
co
ba
ba
t10
row
row
t22
t22
t22
t22
t22
t22
t22
t22
t22
t22
SDCS*
SDRAS*
SDCAS*
t22
t22
t22
t22
t21
t22
t21
t22
t22
22
t22
22
SDWE*
SDDQM[3:0]*
D[31:0]
22
t11
d1
143
7703C–AERO–6/09
Figure 68. Fetch from ROM, Read and Write from/to 32-bit I/O - 0 Waitstate(PRELIMINARY)
Fetch Inst 0
Load Data
Fetch Inst 1
Write Data
SDCLK
A[27:0]
ROMS0*
IOS*
t10
t16
t10
t10
t16
t10
Inst Addr 0
Data Addr 1
Inst Addr 1
Data Addr 2
t16
t15
t15
t16
t15
t15
t18
t18
t18
t18
t15
t15
t15
t15
t15
t15
t15
OE*
t15
t15
t14
WRITE*
READ
t15
t13
t13
t13
t12
t12
t12
t11
WData
D[31:0]
Inst 0
Da ta
Inst 1
Figure 69. Fetch from ROM, Read and Write from/to 32-bit I/O - n Waitstates(PRELIMINARY)
Fetch Inst 0
n WS
Load Data
Fetch Inst 1
Write Data
t3
n WS
n W S
n W S
SDCLK
A[2 7:0]
ROMS0*
IOS*
t10
t16
t10
t10
t16
t1 0
Inst Add0
Data Adr 1
Inst Add1
Data Adr 2
t16
t15
t15
t16
t15
t15
t18
t18
t15
t1 8
t18
t15
t15
t15
t15
t15
t15
OE*
t15
t15
WRITE*
READ
t15
t13
t1 3
t1 3
t12
t1 2
Data
t1 2
t11
t14
D[31:0]
CB[7:0]
Inst 0
Inst 1
WData
t13
t1 3
t12
t1 2
CB Ins
CB Ins
144
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Figure 70. Fetch from ROM, Read and Write from/to 32-bit I/O - n Waitstates +
BRDY*(PRELIMINARY)
Fetch Inst 0
brdy
Load Data
brdy
Fetch Inst 1
brdy
Write Data
brdy
n WS
n WS
n WS
n WS
SDCLK
A[27:0]
ROMS0*
IOS*
t10
t16
t10
t10
t16
t10
InAddr 0
DaAddr 1
InsAddr 1
DaAddr 2
t16
t15
t15
t16
t15
t15
t18
t18
t15
t18
t15
t18
t15
t15
t15
t15
t15
t15
t15
OE*
WRITE*
READ
t15
t20
t19
t20
t19
t20
t19
t20
t19
BRDY*
D[31:0]
CB[7:0]
t13
t13
t13
t13
t12
t12
t12
t11
t11
t14
t14
Inst 0
Data
Inst 1
WData
WCB
t13
t13
t12
t12
CB
t12
CB In
CB In
145
7703C–AERO–6/09
Differences between AT697F and AT697E
This section summarizes the modifications, changes and improvements performed on the
AT697F with regards to the AT697E.
New/Modified Features
Table 128. Summary of the new/modified features
Feature
AT697F
AT697E
Start/End addresses and MASK
based
Write protection scheme
MASK based only
BRDY* capability over ROM area
Asynchronous BRDY* capability
Implemented
Implemented
Not Implemented
Implemented
Implemented
Implemented
Implemented
Not Implemented
Implemented
Not Implemented
Not Implemented
Implemented
16-bit wide memory bus support
32-bit timers and watchdog
24-bit only
8 external interrupts support
limited to 4
PCI SYSEN* state visible in a register
Not Implemented
Not Implemented
Implemented
PCI configuration registers local read capability in satellite mode
PCI double word transaction as two single transactions support
AHB trace buffer freeze on debug mode entry
Not Implemented
In addition to the new/modified features presented in the above table, most of the functional
bugs known from the AT697E model are corrected. Please refer to the AT697 errata sheet -
4409C-AERO-07/07 available at www.atmel.com for detailled information on the functional bugs
status.
Register modifications
Table 129. Summary of the register changes
Register
Address
AT697F Description
AT697E Description
MCFG1
bit 30 - PROM bus ready enable
bit 30 - reserved
bit 29 -reserved
0x80000000
bit 29 - Asynchronous bus read enable
Write Protection Start Address 1 register
bit 29:2 - Start address
WPSTA1
WPSTO1
WPSTA2
WPSTO2
0x800000D0
not available
not available
not available
not available
bit 1 - Block protect mode enable
Write Protection Stop Address 1 register
bit 29:2 - Stop address
0x800000D4
0x800000D8
0x800000DC
bit 1 - User write protection enable
bit 0 - Supervisor write protection enable
Write Protection Start Address 2 register
bit 29:2 - Start address
bit 1 - Block protect mode enable
Write Protection Stop Address 2 register
bit 29:2 - Stop address
bit 1 - User write protection enable
bit 0 - Supervisor write protection enable
TIMC1
TIMR1
TIMC2
TIMR2
WDG
0x80000040
0x80000044
0x80000050
0x80000054
0x8000004C
bit 31:0 - timer counter
bit 31:0 - reload counter
bit 31:0 - timer counter
bit 31:0 - reload counter
bit 31:0 - counter
bit 24:0 - timer counter
bit 24:0 - reload counter
bit 24:0 - timer counter
bit 24:0 - reload counter
bit 24:0 - counter
146
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Register
Address
AT697F Description
AT697E Description
bit 31 - IO interrupt 7 priority level
bit 29- IO interrupt 6 priority level
bit 28 - IO interrupt 5 priority level
bit 26 - IO interrupt 4 priority level
bit 15 - IO interrupt 7 mask
bit 31 - reserved
bit 29 - reserved
bit 28 - reserved
bit 26 - reserved
bit 15 - reserved
bit 13 - reserved
bit 12 - reserved
bit 10 - reserved
ITMP
0x80000090
bit 13 - IO interrupt 6 mask
bit 12 - IO interrupt 5mask
bit 10 - IO interrupt 4mask
bit 15 - IO interrupt 7 pending
bit 13 - IO interrupt 6 pending
bit 12 - IO interrupt 5 pending
bit 10 - IO interrupt 4 pending
bit 15 - reserved
bit 13 - reserved
bit 12 - reserved
bit 10 - reserved
ITP
ITF
ITC
0x80000094
0x80000098
0x8000009C
bit 15 - IO interrupt 7 force
bit 13 - IO interrupt 6 force
bit 12 - IO interrupt 5 force
bit 10 - IO interrupt 4 force
bit 15 - reserved
bit 13 - reserved
bit 12 - reserved
bit 10 - reserved
bit 15 - IO interrupt 7 clear
bit 13 - IO interrupt 6 clear
bit 12 - IO interrupt 5 clear
bit 10 - IO interrupt 4 clear
bit 15 - reserved
bit 13 - reserved
bit 12 - reserved
bit 10 - reserved
IOIT1
IOIT2
0x800000A8
0x800000AC
Renaming of IOIT
IOIT
IO Port Interrupt Register
Configuration of IO interrupt for interrupt 4, 5, 6
and 7
not available
device id : 0x1E0F
vendor id : 16E3
device id : 0x1202
vendor id : 0x1438
PCIID1
PCIID2
0x80000100
0x80000108
class code : 0xB4000
revision id : 0x10
class code : 0xB
revision id : 0x01
subsystem id : 0x2103
subsystem id : 0x1
PCISID
PCIIS
0x8000012C
0x80000154
subsystem vendor id : 0x16E3
subsystem vendor id : 0x143E
bit 12 - SYSEN* state
bit 12 - reserved
bit 3 - reserved
bit 2 - reserved
bit 1 - reserved
bit 3 - PERR retry enable
bit 2 - Double write configuration
bit 1 - Double read configuration
PCIIC
0x80000158
PCITSC
TBC
0x80000160
0x90000004
bit 8 - force retry
bit 8 - reserved
bit 26 - reserved
bit 26 - AHB trace buffer freeze
147
7703C–AERO–6/09
Pin Modifications
Table 130. Summary if the pin changes
Pin Name
Pin Number
AT697F Description
AT697E Description
LFT
M16
Not Connected - The PLL filter is internal
PLL filter
148
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Ordering
Information
Table 131. Possible Order Entries
Supply Voltage
(core / IOs)
Temperature
Range
Maximum Speed
Part-Number
AT697F-2H-E
AT697F-KG-E
(MHz)
Packaging
MCGA349
MQFP 256
Quality Flow
1.8V / 3.3V
1.8V / 3.3V
+25°C
+25°C
100
Engineering Samples
Engineering Samples
100
Datasheet Revision History
7703A - 05/08
7703B - 12/08
7703C - 6/09
1. Document creation.
1. ADVANCE INFORMATION DATASHEET Document.
1. AB bit description change
2. Suffix N change to *.
3. modify <xxx> bit in <yyy> in register by <yyy>J<xxx>
4. Replace SYSCLK by SDCLK
5. text and wording modifications
149
7703C–AERO–6/09
150
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
TABLE OF CONTENTS
Features
1
Description ................................................................................................................. 2
Pin Configuration ....................................................................................................... 4
MCGA349 package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
QFP256 Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Pin Description ........................................................................................................ 10
ATMEL Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
IU and FPU Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Memory Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
System Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
DSU Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
JTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
PCI Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
PCI interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
AT697F CPU Core
15
SPARC Architecture Overview ................................................................................ 15
Program Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
ALU - Arithmetic Logic Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Register File - Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
State Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Floating Point Unit ................................................................................................... 18
Fault Tolerance ........................................................................................................ 18
Watch Points
20
Configuration ........................................................................................................... 20
Operation ................................................................................................................. 20
Traps and Interrupts
21
Overview .................................................................................................................. 21
Synchronous Traps ................................................................................................. 21
Asynchronous Traps / Interrupts ............................................................................. 23
Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Interrupt List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Non Maskable Interrupt (NMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
I/O interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Interrupt Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Memory Interface
26
Overview .................................................................................................................. 26
RAM Interface .......................................................................................................... 27
SRAM interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Write Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Start/End address Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Protection Priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
SDRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
PROM Interface ....................................................................................................... 35
Memory Mapped I/O ................................................................................................ 37
BRDY Wait states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Error Management - EDAC ..................................................................................... 40
Cache Memories
43
Overview .................................................................................................................. 43
Cache mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1
7703C–AERO–6/09
Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Instruction Cache ..................................................................................................... 43
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
ache Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Error reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Instruction Cache Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Data Cache .............................................................................................................. 45
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Cache Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Error Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Data Cache Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Data Cache Snooper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Diagnostic Cache Access ........................................................................................ 46
C
Timer Unit
47
Prescaler ................................................................................................................. 47
Timer/Counter 1 & Timer/Counter 2 ........................................................................ 47
Watchdog ................................................................................................................ 48
General Purpose Interface
49
GPI as 32-bit I/O port ............................................................................................... 49
lower 16-bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
upper 16-bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
GPI Alternate functions ............................................................................................ 50
PCI Arbiter
51
Operation ................................................................................................................. 51
Round Robin ............................................................................................................ 51
Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Bus Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Re-arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Priority definition ...................................................................................................... 51
PCI Interface
52
Overview .................................................................................................................. 52
PCI Initiator (Master) ............................................................................................... 52
Initiator Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Memory cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
IO transaction cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Configuration cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Special cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Error reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
DMA transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Debug Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Target Mode Transfer .............................................................................................. 56
PCI Error Reporting ................................................................................................. 56
UARTs (UART1 and UART2)
57
Overview .................................................................................................................. 57
Serial Frame ............................................................................................................ 57
Frame formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Parity bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Clock Generation ..................................................................................................... 58
Uart Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Baud Rate Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
AT697F ADVANCE INFORMATION
Communication Operations ..................................................................................... 58
Transmitter Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Receiver Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Interrupt Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Loop back mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Debug Support Unit - DSU
60
Overview .................................................................................................................. 60
Debug Support Unit ................................................................................................. 60
DSU Breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Time Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Trace Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
DSU Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Debug Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
DSU Trap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
DSU Communication Link ....................................................................................... 65
Data Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Clock Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Booting from DSU .................................................................................................... 66
JTAG Interface
67
Overview .................................................................................................................. 67
TAP Architecture ..................................................................................................... 68
TAP Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
TAP Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Test Data Registers ................................................................................................. 70
Execution Mode
72
Reset Mode ............................................................................................................. 72
Debug Mode ............................................................................................................ 72
Power-down/Idle Mode ............................................................................................ 72
System Clock
73
Overview .................................................................................................................. 73
PCI Clock ................................................................................................................. 73
External Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
CPU Clock ............................................................................................................... 73
External Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Fault Tolerance & Clock .......................................................................................... 74
Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Package MCGA 349
76
Mechanical Outlines ................................................................................................ 76
QFP256 package
77
Package Description ................................................................................................ 77
Registers Description
78
Integer Unit Registers .............................................................................................. 78
Floating Point Unit Registers................................................................................... 82
Memory Interface Registers .................................................................................... 85
System Registers .................................................................................................... 91
Caches Register ...................................................................................................... 93
Power Down Reg. .................................................................................................... 95
3
7703C–AERO–6/09
Timers Registers ..................................................................................................... 96
UARTs Registers ..................................................................................................... 99
Interrupt Registers ................................................................................................. 103
General Purpose Interface Registers .................................................................... 106
PCI Registers ........................................................................................................ 109
DSU Registers ...................................................................................................... 122
Electrical Characteristics
127
Absolute Maximum Ratings ................................................................................... 127
DC Characteristics ................................................................................................. 127
Power “On/Off” Sequence ..................................................................................... 128
Power Consumption .............................................................................................. 128
Decoupling capacitance ........................................................................................ 128
Capacitance Rating ............................................................................................... 129
AC Characteristics ................................................................................................. 130
Natural Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Maximum Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Timing Derating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Timing Diagrams - Will be updated for production release .................................... 135
Diagram List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Differences between AT697F and AT697E
146
New/Modified Features .......................................................................................... 146
Register modifications ........................................................................................... 146
Pin Modifications ................................................................................................... 148
Ordering Information .............................................................................................. 149
Datasheet Revision History
149
7703A - 05/08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7703B - 12/08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7703C - 6/09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4
AT697F ADVANCE INFORMATION
7703C–AERO–6/09
Headquarters
International
Atmel Corporation
2325 Orchard Parkway
San Jose, CA 95131
USA
Tel: 1(408) 441-0311
Fax: 1(408) 487-2600
Atmel Asia
Room 1219
Chinachem Golden Plaza
77 Mody Road Tsimshatsui
East Kowloon
Hong Kong
Tel: (852) 2721-9778
Fax: (852) 2722-1369
Atmel Europe
Le Krebs
Atmel Japan
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chuo-ku, Tokyo 104-0033
Japan
Tel: (81) 3-3523-3551
Fax: (81) 3-3523-7581
8, Rue Jean-Pierre Timbaud
BP 309
78054 Saint-Quentin-en-
Yvelines Cedex
France
Tel: (33) 1-30-60-70-00
Fax: (33) 1-30-60-71-11
Product Contact
Web Site
Technical Support
Sales Contact
www.atmel.com
aerospace@nto.atmel.com
www.atmel.com/contacts
Literature Requests
www.atmel.com/literature
Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property
right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMEL’S TERMS AND CONDITIONS OF SALE LOCATED ON
ATMEL’S WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS
PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-
INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES
(INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR
INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties
with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without
notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and shall not
be used in, automotive applications. Atmel’s products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life.
© 2008 Atmel Corporation. All rights reserved. Atmel®, logo and combinations thereof, and others are registered trademarks or trademarks of Atmel Corpora-
tion or its subsidiaries. Other terms and product names may be trademarks of others.
7703C–AERO–6/09
相关型号:
©2020 ICPDF网 联系我们和版权申明