io
3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
I/O Subsystem Verification Plan
(10/3/94)
A. Goals
- To ensure that both I/O reads/writes and DMA transfers between all
devices (both internally and externally to RCP) work correctly
- To verify the configuration (or initialization) for each device
(if any) by executing host-based program
- To verify that all the RCP external interfaces (i.e., R4200B, RAM,
ROM, PIF, Video, Audio) are tested
- To verify the RCP bus arbitration mechanism
B. Approach
- Black-box testing is used:
Treat RCP as a black box and drive all tests via C-sim program
and R4200B verilog model.
C. Components (refer to Jeff Smith diagram for more info)
- There are 6 external devices to the RCP:
RDRAM, R4200B, Video DAC, Audio DAC, Peripherals
(i.e. cartridge), PIF
- There are 2 internal devices in the RCP:
RSP and RDP (CMD & SPAN DMA masters)
- There are corresponding RCP interfaces for each of the devices
mentioned above. These include RI (RDRAM I/F),
MI (R4200B I/F), VI (Video I/F), AI (Audio I/F), PI (Peripheral I/F),
SI (Serial I/F), RSP I/F, and RDP I/F (CMD buffer & SPAN buffer).
- There are 2 internal buses CBUS and DBUS and 6 external buses:
RBUS, MBUS, VBUS, ABUS, PBUS, and SBUS.
D. Tests
1) Config the RDRAM (via R4200B)
a) Configure and initialize RDRAM via writing to various RI, MI
registers
b) Coverage
- RI logic
- MI logic and MBUS
- CBUS
2) Perform IO read/write from/to the RDRAM (via R4200B)
a) Cases
- Test all read/write requests for different sizes
- Single Read: 1-byte, 2-byte, 3-byte, 1-word,
- Block Read: 2-word, 4-word, 8-word
- Single Write: 1-byte, 2-byte, 3-byte, 1-word,
- Block Write: 2-word, 4-word, 8-word
- Sub-block ordered: (?)
- Check for correct address offset in case of
accessing 1 byte, 2 bytes, 3 bytes, etc.
(Note: R4200B stores data as 64-bit word internally)
- Test view of each page of RDRAM and its boundaries
- Ultra64 has 2 RDRAMs; each RDRAM contains 2 banks;
each bank has 512 pages; each pages holds 2 KBytes.
There are up to 4 active pages cached in RI; can
have 1 page in each bank active.
b) Coverage
- RI logic and RBUS
- MI logic and MBUS
- CBUS
3) Perform IO read/write from/to VI, AI, PI, and SI registers
a) Cases
- CPU <-> VI reg
- CPU <-> AI reg
- CPU <-> PI reg
- CPU <-> SI reg
a) Coverage
- VI, AI, PI, and SI logic
- CBUS
4) Perform DMA transactions between 2 external devices
a) Cases
- ROM -> RDRAM
- PIF <-> RDRAM
- RDRAM -> Video
- RDRAM -> Audio
- RDRAM -> ROM (?)
- DMA across page boundary
b) Coverage
- RI, VI, AI, PI, SI logic
- RBUS, VBUS, ABUS, PBUS, SBUS
- CBUS, DBUS DMA logic
- ARB
5) Test SP
a) Cases
- CPU <-> SP registers
- CPU <-> SP DMEM/IMEM
- RDRAM <-> SP DMEM
- RDRAM -> SP IMEM
b) Coverage
- SP IO and DMA logic
- CBUS, DBUS DMA
- XBUS
6) Test DP
a) Cases
- CPU <-> DP SMEM
- RDRAM <-> DP SMEM (?)
- RDRAM -> DP CBUF (via DP commands: Start, End, Current)
DMEM -> DP CBUF
b) Coverage
- DP DMA logic
- CBUF, SMEM
- CBUS, DBUS DMA
7) Random Testing
a) Cases
- Generate multiple DMA requests to get CBUS/DBUS contention
and test DMA device prioritization
- Intermix DMA requests with IO register reads/writes to get
CBUS/DBUS contention; for example, while DMA transaction is
in progress, CPU performs IO register read of the devices
performing DMA as well as other devices
b) Coverage
- CBUS, DBUS DMA logic
- ARB