forked from sckoarn/VHDL-Test-Bench
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommand_list.stm
294 lines (235 loc) · 6.14 KB
/
command_list.stm
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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
include "an_include.stm"
const a_constA 0x03
const a_constB $a_constA
const a_constC $a_varA
var a_varA 0x05
var a_varB $a_varA
var a_varC $a_constA
var result 0
array an_array 16
var file_user_index1 1
var file_user_index2 4
file a_fileA "file_name"
file a_fileB "file_name{}{}" $file_user_index1 $file_user_index2
lines a_lines
var operand1_and_target 0
var operand2 0
ArithProc:
proc
equ operand1_and_target $operand2
equ operand1_and_target 0xF0
add operand1_and_target $operand2
add operand1_and_target 0xF0
sub operand1_and_target $operand2
sub operand1_and_target 0xF0
mul operand1_and_target $operand2
mul operand1_and_target 0xF0
div operand1_and_target $operand2
div operand1_and_target 0xF0
and operand1_and_target $operand2
and operand1_and_target 0xF0
or operand1_and_target $operand2
or operand1_and_target 0xF0
xor operand1_and_target $operand2
xor operand1_and_target 0xF0
shl operand1_and_target $operand2
shl operand1_and_target 0xF0
shr operand1_and_target $operand2
shr operand1_and_target 0xF0
inv operand1_and_target
ld operand1_and_target
end proc
var position 0
var expected_value 0
var mask_value 0
array another_array 16
VarVerify:
proc
var verify position $expected_value $mask_value
var verify position 8 0xFF
end proc
array_proc:
proc
array set an_array $position 0x07
array set an_array $position $a_varA
array set an_array 5 0x07
array set an_array 3 $a_varA
array get an_array $position a_varB
array verify an_array $position $expected_value $mask_value
array verify an_array $position 0x07 0xFF
array size an_array a_varB
array pointer copy an_array another_array
end proc
file_proc:
proc
file writeable a_fileA result
file readable a_fileA result
file appendable a_fileA result
file write a_fileA a_lines
file append a_fileB a_lines
file read all a_fileA a_lines
file read a_fileA a_lines 5
file read end a_fileA
file pointer copy a_fileA a_fileB
end proc
lines a_lines_target
lines a_lines_source
var read_size 0
lines_proc:
proc
lines get array a_lines $position an_array result
lines get array a_lines 8 an_array result
lines set array a_lines $position an_array
lines set array a_lines 9 an_array
lines set message a_lines $position "abc"
lines set message a_lines 7 "abc"
lines set message a_lines $position "abc{}" $a_varB
lines set message a_lines 7 "abc{}" $a_varB
lines insert array a_lines $position an_array
lines insert array a_lines 9 an_array
lines insert message a_lines $position "abc"
lines insert message a_lines 7 "abc"
lines insert message a_lines $position "abc{}" $a_varB
lines insert message a_lines 7 "abc{}" $a_varB
lines append array a_lines an_array
lines append message a_lines "abc"
lines append message a_lines "abc{}" $a_varB
lines delete a_lines $position
lines delete a_lines 13
lines size a_lines read_size
lines pointer copy a_lines_target a_lines_source
end proc
var another_var 1
if_proc:
proc
if $a_varA = $another_var
equ a_varA 5
elsif $a_varA > $another_var
equ a_varA 6
else
equ a_varA $a_constA
end if
if 0x09 = $another_var
equ a_varA 5
elsif 0x09 > $another_var
equ a_varA 6
else
equ a_varA $a_constA
end if
if $a_varA = 0x09
equ a_varA 5
elsif $a_varA > 0x09
equ a_varA 6
else
equ a_varA $a_constA
end if
if 0x09 = 0x09
equ a_varA 5
elsif 0x0A > 0x09
equ a_varA 6
else
equ a_varA $a_constA
end if
end proc
var loop_num 1
loop_return_proc:
proc
loop $loop_num
if $a_varA = $another_var
return
end if
end loop
end proc
abort_proc:
proc
abort
end proc
some_proc:
proc
finish
end proc
a_proc:
proc
end proc
a_interrupt:
interrupt
end interrupt
call_proc:
proc
call $some_proc
end proc
const INFO 5
var seed_var 589043
var rand_var 0
var rand_min_var 0
var rand_max_var 1000
const RESUME_ON_VERIFY_ERROR 1
const EXIT_ON_VERIFY_ERROR 0
var time_to_wait 5000
misc_proc:
proc
log message $INFO "some message"
log message $INFO "misc_proc severity: {}" $INFO
log lines 0 a_lines_target
trace $a_varA
trace 1
verbosity $INFO
verbosity 25
resume $RESUME_ON_VERIFY_ERROR
resume $EXIT_ON_VERIFY_ERROR
seed $seed_var
seed 1397
random rand_var $rand_min_var $rand_max_var
random rand_var 0 $rand_max_var
random rand_var $rand_min_var 9
random rand_var 3 9
wait $time_to_wait
wait 10000
marker $a_varA $a_varB
marker 5 1
end proc
signal a_signal 10
var signal_to_be_set_value 0
var signal_read_value 0
var signal_expected_value 0
var signal_mask_value 0
signal_proc:
proc
signal write a_signal $signal_to_be_set_value
signal write a_signal 0x1234
signal read a_signal signal_read_value
signal verify a_signal signal_read_value $signal_expected_value $signal_mask_value
signal verify a_signal signal_read_value 0x0002 0x00FF
end proc
signal target_signal 0
signal source_signal 0
var signal_pointer_absolut 0
signal pointer copy target_signal source_signal
signal pointer set target_signal 5
signal pointer get a_signal signal_pointer_absolut
bus a_bus 10
var bus_width 32
var bus_address 0
var bus_to_be_set_value 0
var bus_read_value 0
var bus_expected_value 0
var bus_mask_value 0
var bus_timeout_value 0
bus_proc:
proc
bus write a_bus $bus_width $bus_address $bus_to_be_set_value
bus write a_bus 16 0x00001000 0x1233
bus read a_bus $bus_width $bus_address bus_read_value
bus read a_bus 16 0x00001000 bus_read_value
bus verify a_bus $bus_width $bus_address bus_read_value $bus_expected_value $bus_mask_value
bus verify a_bus 32 0x00001004 bus_read_value 0x00050000 0x000FC000
bus timeout set a_bus 1000
bus timeout set a_bus $bus_timeout_value
bus timeout get a_bus bus_timeout_value
end proc
bus target_bus 0
bus source_bus 0
var bus_pointer_absolut 0
bus pointer copy target_bus source_bus
bus pointer set target_bus 5
bus pointer get a_bus bus_pointer_absolut