OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.74/] [rtl/] [w11a/] [tb/] [tb_rlink_tba_pdp11core_stim.dat] - Blame information for rev 40

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 37 wfjm
# $Id: tb_rlink_tba_pdp11core_stim.dat 805 2016-09-03 08:09:52Z mueller $
2
#
3
#  Revision History:
4
# Date         Rev Version  Comment
5
# 2015-05-08   675   1.5    start/stop/suspend overhaul
6
# 2014-12-26   621   1.4    adopt wmembe,ribr,wibr testing to new 4k window
7
# 2014-12-20   614   1.6    now for rlink v4 iface
8
# 2014-08-15   583   1.5    rb_mreq addr now 16 bit
9
# 2014-07-31   576   1.4.1  only one data item per line after rblk/wblk
10
# 2010-06-13   305   1.4    adapt to new rri<->cp implementation
11
# 2008-05-03   143   1.3.4  adapt to new cpurust code for reset
12
# 2008-04-27   140   1.3.3  adapt to new stat interface (with cpursta)
13
# 2008-02-24   119   1.3.2  added lah,rps,wps command definition; use them
14
# 2008-01-20   113   1.3.1  CPU attn now on bit 0
15
# 2007-11-24    98   1.3    adapt to new internal init handling
16
# 2007-09-16    83   1.2.2  add 'rst' at end to get back into ground state
17
# 2007-09-02    79   1.2.1  add '.mode' command
18
# 2007-08-12    74   1.2    test LAM and attn handling
19
# 2007-08-10    72   1.1.1  renamed to tb_rritba_pdp11core_stim.dat
20
# 2007-07-29    70   1.1    use .amdef now
21
# 2007-07-28    69   1.0    Initial version
22
#
23
.mode rri
24
.wait   5
25
.rlmon  0
26
.rbmon  0
27
.cmax  32
28
#
29
# setup address mnemonics
30
.amclr
31
#
32
.amdef conf   0000000000000000
33
.amdef cntl   0000000000000001
34
.amdef stat   0000000000000010
35
.amdef psw    0000000000000011
36
.amdef al     0000000000000100
37
.amdef ah     0000000000000101
38
.amdef mem    0000000000000110
39
.amdef memi   0000000000000111
40
#
41
.amdef r0     0000000000001000
42
.amdef r1     0000000000001001
43
.amdef r2     0000000000001010
44
.amdef r3     0000000000001011
45
.amdef r4     0000000000001100
46
.amdef r5     0000000000001101
47
.amdef sp     0000000000001110
48
.amdef pc     0000000000001111
49
#
50
# setup stat check default
51
.sdef s=00000000
52
#
53
C                                  cmderr
54
C                                  |cmdmerr
55
C                                  ||cpususp
56
C                                  |||cpugo
57
C                                  ||||attention flags set
58
C                                  |||||rbtout
59
C                                  ||||||rbnak
60
C                                  |||||||rberr
61
C                                  ||||||||
62
C                                  00000000
63
C
64
C                      cmd addr    ----stat ------------data  ---check---
65
C
66
C ----------------------------------------------------------------------------
67
C write registers
68
#
69
wreg .r0        o"000001"              -- set r0
70
wreg .r1        o"000101"              -- set r1
71
wreg .r2        o"000201"              -- set r2
72
wreg .r3        o"000301"              -- set r3
73
wreg .r4        o"000401"              -- set r4
74
wreg .r5        o"000501"              -- set r5
75
wreg .sp        o"000601"              -- set sp
76
wreg .pc        o"000701"              -- set pc
77
C ---------------------------------------------------------------------------
78
C read registers
79
#
80
rreg .r0      d=o"000001"              --   ! r0
81
rreg .r1      d=o"000101"              --   ! r1
82
rreg .r2      d=o"000201"              --   ! r2
83
rreg .r3      d=o"000301"              --   ! r3
84
rreg .r4      d=o"000401"              --   ! r4
85
rreg .r5      d=o"000501"              --   ! r5
86
rreg .sp      d=o"000601"              --   ! sp
87
rreg .pc      d=o"000701"              --   ! pc
88
C ---------------------------------------------------------------------------
89
C write memory (via wreg, use wreg/memi)
90
#
91
wreg .al        o"002000"              -- write mem(2000,...,2006)
92
wreg .memi      o"007700"
93
wreg .memi      o"007710"
94
wreg .memi      o"007720"
95
wreg .memi      o"007730"
96
C ----------------------------------------------------------------------------
97
C read memory (via rreg, use rreg/memi)
98
#
99
wreg .al        o"002000"
100
rreg .memi    d=o"007700"
101
rreg .memi    d=o"007710"
102
rreg .memi    d=o"007720"
103
rreg .memi    d=o"007730"
104
C ----------------------------------------------------------------------------
105
C write memory (via wblk)
106
#
107
wreg .al        o"002010"              -- write mem(2010,...,2016)
108
wblk .memi     4
109
    o"007740"
110
    o"007750"
111
    o"007760"
112
    o"007770"
113
C ----------------------------------------------------------------------------
114
C read memory (via rblk)
115
#
116
wreg .al        o"002000"
117
rblk .memi     8
118
  d=o"007700"
119
  d=o"007710"
120
  d=o"007720"
121
  d=o"007730"
122
  d=o"007740"
123
  d=o"007750"
124
  d=o"007760"
125
  d=o"007770"
126
C ----------------------------------------------------------------------------
127
C read/write PSW via various mechanisms
128
C   via wps/rps
129
wreg .psw       o"000017"
130
rreg .psw     d=o"000017"
131
wreg .psw       o"000000"
132
rreg .psw     d=o"000000"
133
#
134
C   via 16bit cp addressing (al 177776)
135
wreg .al        o"177776"              -- addr=psw
136
wreg .mem       o"000017"              -- set all cc flags in psw
137
rreg .mem     d=o"000017"              -- ! psw
138
rreg .psw     d=o"000017"
139
wreg .mem       o"000000"              -- clear all cc flags in psw
140
rreg .mem     d=o"000000"              -- ! psw
141
rreg .psw     d=o"000000"
142
#
143
C   via 22bit cp addressing (al 177776; ah 177)
144
wreg .al        o"177776"              -- addr=psw
145
wreg .ah        o"000177"
146
wreg .mem       o"000017"              -- set all cc flags in psw
147
rreg .mem     d=o"000017"              -- ! psw
148
rreg .psw     d=o"000017"
149
wreg .mem       o"000000"              -- clear all cc flags in psw
150
rreg .mem     d=o"000000"              -- ! psw
151
rreg .psw     d=o"000000"
152
C ----------------------------------------------------------------------------
153
C write register set 1, sm,um stack
154
#
155
wreg .psw       o"004000"              -- psw: cm=kernel, set=1
156
wreg .r0        o"010001"              -- set r0 = 010001
157
wreg .r1        o"010101"              -- set r1 = 010101
158
wreg .r2        o"010201"              -- set r2 = 010201
159
wreg .r3        o"010301"              -- set r3 = 010301
160
wreg .r4        o"010401"              -- set r4 = 010401
161
wreg .r5        o"010501"              -- set r5 = 010501
162
wreg .psw       o"044000"              -- psw: cm=super(01),set=1
163
wreg .sp        o"010601"              -- set ssp = 010601
164
wreg .psw       o"144000"              -- psw: cm=user(11),set=1
165
wreg .sp        o"110601"              -- set isp = 110601
166
C ----------------------------------------------------------------------------
167
C read all registers set 0/1, km,sm,um stack
168
#
169
wreg .psw       o"000000"              -- psw: cm=kernel(00),set=0
170
rreg .r0      d=o"000001"              --   ! r0
171
rreg .r1      d=o"000101"              --   ! r1
172
rreg .r2      d=o"000201"              --   ! r2
173
rreg .r3      d=o"000301"              --   ! r3
174
rreg .r4      d=o"000401"              --   ! r4
175
rreg .r5      d=o"000501"              --   ! r5
176
rreg .sp      d=o"000601"              --   ! ksp
177
rreg .pc      d=o"000701"              --   ! pc
178
#
179
wreg .psw       o"040000"              -- psw: cm=super(01),set=0
180
rreg .sp      d=o"010601"              --   ! ssp
181
wreg .psw       o"140000"              -- psw: cm=user(11),set=0
182
rreg .sp      d=o"110601"              --   ! usp
183
#
184
wreg .psw       o"144000"              -- psw: cm=user(11),set=1
185
rreg .r0      d=o"010001"              --   ! r0
186
rreg .r1      d=o"010101"              --   ! r1
187
rreg .r2      d=o"010201"              --   ! r2
188
rreg .r3      d=o"010301"              --   ! r3
189
rreg .r4      d=o"010401"              --   ! r4
190
rreg .r5      d=o"010501"              --   ! r5
191
#
192
wreg .psw       o"000000"              -- psw=000000;
193
C ----------------------------------------------------------------------------
194
C write,read IB space: : MMU SAR supervisor mode (16 bit regs)
195
#
196
wreg .al        o"172240"              -- addr=172240; SM I addr reg
197
wreg .memi      o"012340"              -- set 012340
198
wreg .memi      o"012342"              -- set 012342
199
wreg .memi      o"012344"              -- set 012344
200
#
201
wreg .al        o"172240"              -- addr=172240; SM I addr reg
202
rreg .memi    d=o"012340"              -- ! 012340
203
rreg .memi    d=o"012342"              -- ! 012342
204
rreg .memi    d=o"012344"              -- ! 012344
205
C ----------------------------------------------------------------------------
206
C load simple test code 1: "1$:inc r1; sob r0,1$; halt"
207
#
208
wreg .al        o"002100"              -- addr=002100
209
wreg .memi      o"005201"              -- inc r1
210
wreg .memi      o"077002"              -- sob r0,-2
211
wreg .memi      o"000000"              -- halt
212
C exec test code 1 w/ r0=2; wait 50 cycle; test regs
213
#
214
wreg .r0        o"000002"              -- set r0 = 2
215
wreg .r1        o"000000"              -- set r1 = 0
216
wreg .pc        o"002100"              -- set pc = 2100
217
wreg .cntl      o"000001" s=00010000   -- start (cpfunc_start=00001)
218
.wait 50
219
rreg .r0      d=o"000000" s=00001000   --   ! r0=0
220
rreg .r1      d=o"000002" s=00001000   --   ! r1=2
221
rreg .pc      d=o"002106" s=00001000   --   ! pc=002106
222
attn          d=o"000001" s=00000000   -- read/clean LAM's
223
wreg .cntl      o"000004"              -- reset (cpfunc_creset=00100)
224
C ----------------------------------------------------------------------------
225
C single step through test code 1
226
#
227
wreg .r0        o"000003"              -- set r0 = 3
228
wreg .r1        o"000000"              -- set r1 = 0
229
wreg .pc        o"002100"              -- set pc = 2100
230
#
231
wreg .cntl      o"000003"              -- step over inc (cpfunc_step=00011)
232
rreg .r0      d=o"000003"              --   ! r0=3
233
rreg .r1      d=o"000001"              --   ! r1=1
234
rreg .pc      d=o"002102"              --   ! pc=002102
235
#
236
wreg .cntl      o"000003"              -- step over sob (cpfunc_step=00011)
237
rreg .r0      d=o"000002"              --   ! r0=2
238
rreg .r1      d=o"000001"              --   ! r1=1
239
rreg .pc      d=o"002100"              --   ! pc=002100
240
#
241
wreg .cntl      o"000003"              -- step over inc
242
wreg .cntl      o"000003"              -- step over sob
243
rreg .r0      d=o"000001"              --   ! r0=1
244
rreg .r1      d=o"000002"              --   ! r1=2
245
rreg .pc      d=o"002100"              --   ! pc=002100
246
C ----------------------------------------------------------------------------
247
C execute code 1, test stat command while it runs
248
#
249
wreg .r0        o"000005"              -- set r0 = 5
250
wreg .r1        o"000000"              -- set r1 = 0
251
wreg .pc        o"002100"              -- set pc = 2100
252
wreg .cntl      o"000001" s=00010000   -- start (cpfunc_start=00001)
253
#rreg .stat   d=0000000000000100 s=00000000    -- possible w/ tb, not FPGA !!
254
rreg .stat    d=-                s=-           --
255
rreg .stat    d=-                s=-           --
256
rreg .stat    d=-                s=-           -- somewhere the code will stop
257
rreg .stat    d=-                s=-           --
258
rreg .stat    d=-                s=-           --
259
rreg .stat    d=0000000000010000 s=00001000    --   ! cpurust=0001
260
rreg .r0      d=o"000000" s=00001000   --   ! r0=0
261
rreg .r1      d=o"000005" s=00001000   --   ! r1=5
262
rreg .pc      d=o"002106" s=00001000   --   ! pc=002106
263
attn          d=o"000001" s=00000000   -- read/clean LAM's
264
wreg .cntl      o"000004"              -- init  (cpfunc_creset=00100)
265
rreg .stat    d=0000000000000000       --   ! cpurust=0000
266
C ----------------------------------------------------------------------------
267
C execute code 1, look for attn comma to happen
268
#
269
wreg x"ffff"    x"8000"                -- set rlink anena=1
270
wreg .r0        o"000005"              -- set r0 = 5
271
wreg .r1        o"000000"              -- set r1 = 0
272
wreg .pc        o"002100"              -- set pc = 2100
273
wreg .cntl      o"000001" s=00010000   -- start (cpfunc_start=00001)
274
.eop
275
.wtlam 100
276
rreg .stat    d=0000000000010000 s=00001000    --   ! cpurust=0001
277
rreg .r0      d=o"000000" s=00001000   --   ! r0=0
278
rreg .r1      d=o"000005" s=00001000   --   ! r1=5
279
rreg .pc      d=o"002106" s=00001000   --   ! pc=002106
280
attn          d=o"000001" s=00000000   -- read/clean LAM's
281
wreg .cntl      o"000004"              -- init  (cpfunc_creset=00100)
282
rreg .stat    d=0000000000000000       --   ! cpurust=0000
283
C ----------------------------------------------------------------------------
284
C load test code 2 for single step testing of 'slow' instructions
285
#
286
wreg .al        o"002200"              -- addr=002200
287
wblk .memi    13
288
    o"067070"                          -- add @0(r0),@6(r0)
289
    o"000000"
290
    o"000006"
291
    o"067070"                          -- add @2(r0),@6(r0)
292
#2210
293
    o"000002"
294
    o"000006"
295
    o"067070"                          -- add @4(r0),@6(r0)
296
    o"000004"
297
#2220
298
    o"000006"
299
    o"067070"                          -- add @0(r0),@6(r0)
300
    o"000000"
301
    o"000006"
302
#2230
303
    o"000000"                          -- halt
304
#
305
wreg .al        o"002240"              -- addr=002240
306
wblk .memi    12
307
    o"002260"                          -- addresses used by add's
308
    o"002262"
309
    o"002264"
310
    o"002266"
311
#2250
312
    d"1"                               -- some data to test d"nnn"
313
    d"-1"
314
    x"dead"
315
    x"beaf"
316
#2260
317
    o"000010"                          -- input data used by add's
318
    o"000100"
319
    o"001000"
320
    o"000001"                          -- result of add's
321
C ----------------------------------------------------------------------------
322
C single step through test code 2
323
#
324
wreg .pc        o"002200"              -- set pc = 2200
325
wreg .r0        o"002240"              -- set r0 = 2240
326
wreg .cntl      o"000003"              -- step over 1st add (cpfunc_step=00011)
327
wreg .cntl      o"000003"              -- step over 2nd add (cpfunc_step=00011)
328
wreg .cntl      o"000003"              -- step over 3rd add (cpfunc_step=00011)
329
#
330
rreg .r0      d=o"002240"              --   ! r0=2240
331
rreg .pc      d=o"002222"              --   ! pc=002222
332
wreg .al        o"002240"              -- addr=002240
333
rblk .memi    12
334
  d=-                                  -- skip over pointers, test tag=-
335
  d=-
336
  d=-
337
  d=-
338
  d=b"0000000000000001"                -- verify data written with d"nn"
339
  d=b"1111111111111111"
340
  d=x"dead"                            -- check data written with x"nn"
341
  d=x"beaf"
342
  d=o"000010"                          -- input data used by add's
343
  d=o"000100"
344
  d=o"001000"
345
  d=o"001111"                          -- result of add's
346
#
347
wreg .cntl      o"000003"              -- step over 4th add (cpfunc_step=00011)
348
wreg .cntl      o"000003" s=00000000   -- step over halt    (cpfunc_step=00011)
349
rreg .pc      d=o"002232" s=00000000   --   ! pc=002232
350
wreg .al        o"002260" s=00000000   -- addr=002260
351
rblk .memi    4           s=00000000
352
  d=o"000010"                          -- input data used by add's
353
  d=o"000100"
354
  d=o"001000"
355
  d=o"001121"                          -- result of add's
356
C ----------------------------------------------------------------------------
357
C finally stop and init CPU (clears cpuhalt flag)
358
wreg .cntl      o"000002"              -- stop  (cpfunc_stop=00010)
359
wreg .cntl      o"000004"              -- init  (cpfunc_creset=00100)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.