rcp_verification.html
9.85 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
122
123
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
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
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta name="GENERATOR" content="Mozilla/4.72 [en] (X11; U; Linux 2.2.14-5.0 i686) [Netscape]">
<title> RCP Verification </title>
</head>
<body>
<center>
<h1>
RCP Verification</h1></center>
RCP verification can be grouped
into four categories: iosim, rsp, rdp and misc.
We already ported all of them from indy to Linux(x86) platform,
here are results:
<p><font size=+1>1. iosim</font>
<p> iosim includes two tests: iosim
and iorand. The former test is some kind of individual functional test
to test each io interfaces(ai, pi, sp, si, rdram and ebus), the later
one is stress test to use iosim mechanism to driven all modules together.
All of them worked and checked in.
<p> To run iosim test, you need to
:
<br> (1) iosim uses INET socket
to communicate with verilog server, before run iosim you need to specified
two environment variables:
<br>
IOSIM_SERVER and IOSIM_PORT
<br>
For example, in bash, you can
<br>
export IOSIM_SERVER = 10.0.0.57
<br>
export IOSIM_PORT = 8888
<br> (2) Build iosim
<br>
cd ${ROOT}/PR/iosim/src
<br>
make
<br> (3) Build simulator(verilog
ipc server)
<br>
cd ${ROOT}/PR/hw2/chip/sim
<br>
make ipc
<br> (4) If you want to run iosim
test individually.
<br>
cd ${ROOT}/PR/iosim/data/directed
<br>
make # to build data files
<br>
make ai_test | pi_test | sp_test | si_test | rdram_test | ebus_test
<br>
or
<br>
make tests
<br>
to run all of them.
<br> (5) Results are stored
in log files(xx.log).
<p> Note, the originally sp,
rdram and ebus are running on 6MBytes system, you can change ${ROOT}/PR/hw2/chip/rcp/include/define.vh
to make your system to 6/8 Mbytes or change test script to make tests running
on 4MBytes system. I have tested both of them, all of them worked.
I checked in 4 MByte test script to make life easier(you do not need to
recompile simulator again), you can checkout the older version of {ROOT}/PR/iosim/test/xx.tst
if you want to test as 6Mbytes system.
<p> To run iorand, the
first three steps are exactly same, then:
<br>
cd ${ROOT}/PR/iosim/data/dma80
<br>
make #build data files
<br>
make tests
<br> the result is store in iorand.log
<p> <font size=+1>2. RSP test</font>
<p> Rsp tests
are used to test SP unit. There are 7 tests: su, su_single(single step
test) , vu, vu_single, pin, pin_single amd dma. All of them are ported
and tested.
<p> To run
it:
<br>
(1) Build rspasm utility
<br>
cd ${ROOT}/PR/rspasm1201
<br>
make
<br>
(2) Build rsp c-simulator
<br>
cd ${ROOT}/PR/rspsim
<br>
make
<br>
(3) Run test
<br>
cd ${ROOT}/PR/rspsim/vuregre
<br>
make "test_name" to run indivadual test
<br>
or
<br>
make all to run all of them.
<p> The
results are store in rsptest/"name"/regression.log.
<p><font size=+1>3. RDP test</font>
<p><font size=+1> </font>Rdp tests are a
little bit complicated, basically, you can run those test on rdp_cv(verilog)
, c-sim or through iosim(we did not test gate level), then compare result
images with golden images. David believed that the golded images
which were checked in as archiev files were not consistent with rdram images.
We re-captured the rdram image from hardware(indy), and run those tests
through C-sim and iosim, and found that iosim resultes match(some of them
are not perfectly matched due to dithering) hardware(indy) results, but
some of them does not matched with c-sim, they are:
<p> ATT:
<br> test014
<br> test015
<p> COV:
<br> test022
<br> test023
<br> test024
<br> test040
<br> test122
<br> test123
<br> test124
<p> EW:
<p> TEX:
<br> test036
<br> test037
<br> test038
<br> test040
<br> test042
<br> test140
<p> MS
<br> test015
<br> test016
<p> To run those tests, you need to
add "-m -b" for testit in GNUmakefile in ${ROOT}/PR/rdpsim/test/rdp, then
make (rgb filename) or nightly_rdp_xx .
<p> You also need to make image_diff_xx
to get the final result, please put "-b" for nightly_image_diff.sh
in GNUmakefile, if original source files are captured from hardware(indy).
<p> Note: Dithering is using
random number which is based on system uptime and we cannot make it consistent.
<p><font size=+1>4. MISC</font>
<p> MISC tests includes
vi test, backend Iosim and video test.
<p> To run
vi test,
<br>
cd ${ROOT}/PR/rdpsim/test/vi
<br>
make rtests
<br> The results
is store in file rcheckall000.out at each subdirs. All of those tests
are passed.
<p> To
run backend Iosim,
<br>
cd ${ROOT}/PR/rdpsim/backend/test/Iosim
<br>
make allvi
<br>
Results are store in file OutData/Results.
<br>
We cannot make h18 h32 and v32 worked.
<p> To
run video test,
<br>
cd ${ROOT}/PR/hw2/chip/sim
<br>
make mln1test mln2test mlp1test mhn1test mhf2test dth2test
<br>
All tests are passed.
</body>
</html>