1
|
{
|
2
|
"DESIGN_FILE" : {
|
3
|
"design_units" : [{
|
4
|
"contexts" : [["LIBRARY_CLAUSE", [["IDENTIFIER", "ieee"]]], ["USE_CLAUSE", [["SELECTED_NAME", [["SIMPLE_NAME", "ieee"], ["SIMPLE_NAME", "std_logic_1164"]]]]], ["USE_CLAUSE", [["SELECTED_NAME", [["SIMPLE_NAME", "ieee"], ["SIMPLE_NAME", "numeric_std"]]]]]], "library" : ["PACKAGE_DECLARATION", {
|
5
|
"name" : ["IDENTIFIER", "pkg_tb"], "shared_defs" : [["TYPE_DECLARATION", {
|
6
|
"name" : ["IDENTIFIER", "state_t"], "definition" : ["ENUMERATION_TYPE_DEFINITION", [["IDENTIFIER", "Rst"], ["IDENTIFIER", "Sig_start"], ["IDENTIFIER", "Ack_data"], ["IDENTIFIER", "Running"], ["IDENTIFIER", "Waitfor"], ["IDENTIFIER", "Cp_search"], ["IDENTIFIER", "Cp_save"], ["IDENTIFIER", "Idle"], ["IDENTIFIER", "Rst_uut"], ["IDENTIFIER", "Rest_ini0"], ["IDENTIFIER", "Rest_ini1"], ["IDENTIFIER", "Rest"], ["IDENTIFIER", "Stop"]]]}
|
7
|
], ["SUBTYPE_DECLARATION", {
|
8
|
"name" : ["IDENTIFIER", "context_t"], "typ" : {
|
9
|
"name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
|
10
|
"ranges" : [["RANGE_WITH_DIRECTION", {
|
11
|
"direction" : "downto", "from" : ["EXPRESSION", {
|
12
|
"args" : [["EXPRESSION", {
|
13
|
"args" : [["CONSTANT_VALUE", {
|
14
|
"value" : ["CST_LITERAL", "1"]}
|
15
|
]]}
|
16
|
]]}
|
17
|
], "_to" : ["EXPRESSION", {
|
18
|
"args" : [["EXPRESSION", {
|
19
|
"args" : [["CONSTANT_VALUE", {
|
20
|
"value" : ["CST_LITERAL", "0"]}
|
21
|
]]}
|
22
|
]]}
|
23
|
]}
|
24
|
]]}
|
25
|
]}
|
26
|
}
|
27
|
], ["SUBTYPE_DECLARATION", {
|
28
|
"name" : ["IDENTIFIER", "argument_t"], "typ" : {
|
29
|
"name" : ["SIMPLE_NAME", "unsigned"], "const" : ["INDEX_CONSTRAINT", {
|
30
|
"ranges" : [["RANGE_WITH_DIRECTION", {
|
31
|
"direction" : "downto", "from" : ["EXPRESSION", {
|
32
|
"args" : [["EXPRESSION", {
|
33
|
"id" : "-", "args" : [["EXPRESSION", {
|
34
|
"args" : [["CALL", ["SIMPLE_NAME", "ARG_WIDTH"]]]}
|
35
|
], ["EXPRESSION", {
|
36
|
"args" : [["CONSTANT_VALUE", {
|
37
|
"value" : ["CST_LITERAL", "1"]}
|
38
|
]]}
|
39
|
]]}
|
40
|
]]}
|
41
|
], "_to" : ["EXPRESSION", {
|
42
|
"args" : [["EXPRESSION", {
|
43
|
"args" : [["CONSTANT_VALUE", {
|
44
|
"value" : ["CST_LITERAL", "0"]}
|
45
|
]]}
|
46
|
]]}
|
47
|
]}
|
48
|
]]}
|
49
|
]}
|
50
|
}
|
51
|
], ["TYPE_DECLARATION", {
|
52
|
"name" : ["IDENTIFIER", "instruction"], "definition" : ["RECORD_TYPE_DEFINITION", [{
|
53
|
"names" : [["IDENTIFIER", "state"]], "definition" : {
|
54
|
"name" : ["SIMPLE_NAME", "state_t"]}
|
55
|
}
|
56
|
, {
|
57
|
"names" : [["IDENTIFIER", "context_uut"]], "definition" : {
|
58
|
"name" : ["SIMPLE_NAME", "context_t"]}
|
59
|
}
|
60
|
, {
|
61
|
"names" : [["IDENTIFIER", "arg"]], "definition" : {
|
62
|
"name" : ["SIMPLE_NAME", "argument_t"]}
|
63
|
}
|
64
|
]]}
|
65
|
], ["TYPE_DECLARATION", {
|
66
|
"name" : ["IDENTIFIER", "ram_instruction"], "definition" : ["RECORD_TYPE_DEFINITION", [{
|
67
|
"names" : [["IDENTIFIER", "sel"]], "definition" : {
|
68
|
"name" : ["SIMPLE_NAME", "std_logic"]}
|
69
|
}
|
70
|
, {
|
71
|
"names" : [["IDENTIFIER", "we"]], "definition" : {
|
72
|
"name" : ["SIMPLE_NAME", "std_logic"]}
|
73
|
}
|
74
|
, {
|
75
|
"names" : [["IDENTIFIER", "addr_up"]], "definition" : {
|
76
|
"name" : ["SIMPLE_NAME", "std_logic"]}
|
77
|
}
|
78
|
, {
|
79
|
"names" : [["IDENTIFIER", "addr_z"]], "definition" : {
|
80
|
"name" : ["SIMPLE_NAME", "std_logic"]}
|
81
|
}
|
82
|
]]}
|
83
|
], ["TYPE_DECLARATION", {
|
84
|
"name" : ["IDENTIFIER", "assert_instruction"], "definition" : ["RECORD_TYPE_DEFINITION", [{
|
85
|
"names" : [["IDENTIFIER", "en_feed"]], "definition" : {
|
86
|
"name" : ["SIMPLE_NAME", "std_logic"]}
|
87
|
}
|
88
|
, {
|
89
|
"names" : [["IDENTIFIER", "en_check"]], "definition" : {
|
90
|
"name" : ["SIMPLE_NAME", "std_logic"]}
|
91
|
}
|
92
|
]]}
|
93
|
], ["TYPE_DECLARATION", {
|
94
|
"name" : ["IDENTIFIER", "table_behavior"], "definition" : ["ARRAY_TYPE_DEFINITION", {
|
95
|
"const" : ["INDEX_CONSTRAINT", {
|
96
|
"ranges" : [["RANGE_WITH_DIRECTION", {
|
97
|
"direction" : "to", "from" : ["EXPRESSION", {
|
98
|
"args" : [["EXPRESSION", {
|
99
|
"args" : [["CONSTANT_VALUE", {
|
100
|
"value" : ["CST_LITERAL", "0"]}
|
101
|
]]}
|
102
|
]]}
|
103
|
], "_to" : ["EXPRESSION", {
|
104
|
"args" : [["EXPRESSION", {
|
105
|
"id" : "-", "args" : [["EXPRESSION", {
|
106
|
"id" : "**", "args" : [["CONSTANT_VALUE", {
|
107
|
"value" : ["CST_LITERAL", "2"]}
|
108
|
], ["CALL", ["SIMPLE_NAME", "PC_SIZE"]]]}
|
109
|
], ["EXPRESSION", {
|
110
|
"args" : [["CONSTANT_VALUE", {
|
111
|
"value" : ["CST_LITERAL", "1"]}
|
112
|
]]}
|
113
|
]]}
|
114
|
]]}
|
115
|
]}
|
116
|
]]}
|
117
|
], "definition" : {
|
118
|
"name" : ["SIMPLE_NAME", "instruction"]}
|
119
|
}
|
120
|
]}
|
121
|
], ["SUBTYPE_DECLARATION", {
|
122
|
"name" : ["IDENTIFIER", "stdin_vector"], "typ" : {
|
123
|
"name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
|
124
|
"ranges" : [["RANGE_WITH_DIRECTION", {
|
125
|
"direction" : "downto", "from" : ["EXPRESSION", {
|
126
|
"args" : [["EXPRESSION", {
|
127
|
"args" : [["CONSTANT_VALUE", {
|
128
|
"value" : ["CST_LITERAL", "31"]}
|
129
|
]]}
|
130
|
]]}
|
131
|
], "_to" : ["EXPRESSION", {
|
132
|
"args" : [["EXPRESSION", {
|
133
|
"args" : [["CONSTANT_VALUE", {
|
134
|
"value" : ["CST_LITERAL", "0"]}
|
135
|
]]}
|
136
|
]]}
|
137
|
]}
|
138
|
]]}
|
139
|
]}
|
140
|
}
|
141
|
], ["SUBTYPE_DECLARATION", {
|
142
|
"name" : ["IDENTIFIER", "stdout_vector"], "typ" : {
|
143
|
"name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
|
144
|
"ranges" : [["RANGE_WITH_DIRECTION", {
|
145
|
"direction" : "downto", "from" : ["EXPRESSION", {
|
146
|
"args" : [["EXPRESSION", {
|
147
|
"args" : [["CONSTANT_VALUE", {
|
148
|
"value" : ["CST_LITERAL", "31"]}
|
149
|
]]}
|
150
|
]]}
|
151
|
], "_to" : ["EXPRESSION", {
|
152
|
"args" : [["EXPRESSION", {
|
153
|
"args" : [["CONSTANT_VALUE", {
|
154
|
"value" : ["CST_LITERAL", "0"]}
|
155
|
]]}
|
156
|
]]}
|
157
|
]}
|
158
|
]]}
|
159
|
]}
|
160
|
}
|
161
|
], ["SUBTYPE_DECLARATION", {
|
162
|
"name" : ["IDENTIFIER", "cp_vector"], "typ" : {
|
163
|
"name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
|
164
|
"ranges" : [["RANGE_WITH_DIRECTION", {
|
165
|
"direction" : "downto", "from" : ["EXPRESSION", {
|
166
|
"args" : [["EXPRESSION", {
|
167
|
"args" : [["CONSTANT_VALUE", {
|
168
|
"value" : ["CST_LITERAL", "63"]}
|
169
|
]]}
|
170
|
]]}
|
171
|
], "_to" : ["EXPRESSION", {
|
172
|
"args" : [["EXPRESSION", {
|
173
|
"args" : [["CONSTANT_VALUE", {
|
174
|
"value" : ["CST_LITERAL", "0"]}
|
175
|
]]}
|
176
|
]]}
|
177
|
]}
|
178
|
]]}
|
179
|
]}
|
180
|
}
|
181
|
]], "shared_decls" : [["CONSTANT_DECLARATION", {
|
182
|
"names" : [["IDENTIFIER", "ARG_WIDTH"]], "typ" : {
|
183
|
"name" : ["SIMPLE_NAME", "integer"]}
|
184
|
, "init_val" : ["EXPRESSION", {
|
185
|
"args" : [["EXPRESSION", {
|
186
|
"args" : [["EXPRESSION", {
|
187
|
"args" : [["EXPRESSION", {
|
188
|
"args" : [["CONSTANT_VALUE", {
|
189
|
"value" : ["CST_LITERAL", "8"]}
|
190
|
]]}
|
191
|
]]}
|
192
|
]]}
|
193
|
]]}
|
194
|
]}
|
195
|
], ["CONSTANT_DECLARATION", {
|
196
|
"names" : [["IDENTIFIER", "instr_rst"]], "typ" : {
|
197
|
"name" : ["SIMPLE_NAME", "instruction"]}
|
198
|
, "init_val" : ["EXPRESSION", {
|
199
|
"args" : [["EXPRESSION", {
|
200
|
"args" : [["EXPRESSION", {
|
201
|
"args" : [["EXPRESSION", {
|
202
|
"args" : [["AGGREGATE", {
|
203
|
"elems" : [{
|
204
|
"choices" : [["EXPRESSION", {
|
205
|
"args" : [["EXPRESSION", {
|
206
|
"args" : [["CALL", ["SIMPLE_NAME", "state"]]]}
|
207
|
]]}
|
208
|
]], "expr" : ["EXPRESSION", {
|
209
|
"args" : [["EXPRESSION", {
|
210
|
"args" : [["EXPRESSION", {
|
211
|
"args" : [["EXPRESSION", {
|
212
|
"args" : [["CALL", ["SIMPLE_NAME", "Rst"]]]}
|
213
|
]]}
|
214
|
]]}
|
215
|
]]}
|
216
|
]}
|
217
|
, {
|
218
|
"choices" : [["EXPRESSION", {
|
219
|
"args" : [["EXPRESSION", {
|
220
|
"args" : [["CALL", ["SIMPLE_NAME", "context_uut"]]]}
|
221
|
]]}
|
222
|
]], "expr" : ["EXPRESSION", {
|
223
|
"args" : [["EXPRESSION", {
|
224
|
"args" : [["EXPRESSION", {
|
225
|
"args" : [["EXPRESSION", {
|
226
|
"args" : [["AGGREGATE", {
|
227
|
"elems" : [{
|
228
|
"choices" : [["OTHERS"]], "expr" : ["EXPRESSION", {
|
229
|
"args" : [["EXPRESSION", {
|
230
|
"args" : [["EXPRESSION", {
|
231
|
"args" : [["EXPRESSION", {
|
232
|
"args" : [["CONSTANT_VALUE", {
|
233
|
"value" : ["CST_LITERAL", "'0'"]}
|
234
|
]]}
|
235
|
]]}
|
236
|
]]}
|
237
|
]]}
|
238
|
]}
|
239
|
]}
|
240
|
]]}
|
241
|
]]}
|
242
|
]]}
|
243
|
]]}
|
244
|
]}
|
245
|
, {
|
246
|
"choices" : [["EXPRESSION", {
|
247
|
"args" : [["EXPRESSION", {
|
248
|
"args" : [["CALL", ["SIMPLE_NAME", "arg"]]]}
|
249
|
]]}
|
250
|
]], "expr" : ["EXPRESSION", {
|
251
|
"args" : [["EXPRESSION", {
|
252
|
"args" : [["EXPRESSION", {
|
253
|
"args" : [["EXPRESSION", {
|
254
|
"args" : [["AGGREGATE", {
|
255
|
"elems" : [{
|
256
|
"choices" : [["OTHERS"]], "expr" : ["EXPRESSION", {
|
257
|
"args" : [["EXPRESSION", {
|
258
|
"args" : [["EXPRESSION", {
|
259
|
"args" : [["EXPRESSION", {
|
260
|
"args" : [["CONSTANT_VALUE", {
|
261
|
"value" : ["CST_LITERAL", "'0'"]}
|
262
|
]]}
|
263
|
]]}
|
264
|
]]}
|
265
|
]]}
|
266
|
]}
|
267
|
]}
|
268
|
]]}
|
269
|
]]}
|
270
|
]]}
|
271
|
]]}
|
272
|
]}
|
273
|
]}
|
274
|
]]}
|
275
|
]]}
|
276
|
]]}
|
277
|
]]}
|
278
|
]}
|
279
|
], ["CONSTANT_DECLARATION", {
|
280
|
"names" : [["IDENTIFIER", "ram_instr_z"]], "typ" : {
|
281
|
"name" : ["SIMPLE_NAME", "ram_instruction"]}
|
282
|
, "init_val" : ["EXPRESSION", {
|
283
|
"args" : [["EXPRESSION", {
|
284
|
"args" : [["EXPRESSION", {
|
285
|
"args" : [["EXPRESSION", {
|
286
|
"args" : [["AGGREGATE", {
|
287
|
"elems" : [{
|
288
|
"choices" : [["EXPRESSION", {
|
289
|
"args" : [["EXPRESSION", {
|
290
|
"args" : [["CALL", ["SIMPLE_NAME", "sel"]]]}
|
291
|
]]}
|
292
|
]], "expr" : ["EXPRESSION", {
|
293
|
"args" : [["EXPRESSION", {
|
294
|
"args" : [["EXPRESSION", {
|
295
|
"args" : [["EXPRESSION", {
|
296
|
"args" : [["CONSTANT_VALUE", {
|
297
|
"value" : ["CST_LITERAL", "'0'"]}
|
298
|
]]}
|
299
|
]]}
|
300
|
]]}
|
301
|
]]}
|
302
|
]}
|
303
|
, {
|
304
|
"choices" : [["EXPRESSION", {
|
305
|
"args" : [["EXPRESSION", {
|
306
|
"args" : [["CALL", ["SIMPLE_NAME", "we"]]]}
|
307
|
]]}
|
308
|
]], "expr" : ["EXPRESSION", {
|
309
|
"args" : [["EXPRESSION", {
|
310
|
"args" : [["EXPRESSION", {
|
311
|
"args" : [["EXPRESSION", {
|
312
|
"args" : [["CONSTANT_VALUE", {
|
313
|
"value" : ["CST_LITERAL", "'0'"]}
|
314
|
]]}
|
315
|
]]}
|
316
|
]]}
|
317
|
]]}
|
318
|
]}
|
319
|
, {
|
320
|
"choices" : [["EXPRESSION", {
|
321
|
"args" : [["EXPRESSION", {
|
322
|
"args" : [["CALL", ["SIMPLE_NAME", "addr_up"]]]}
|
323
|
]]}
|
324
|
]], "expr" : ["EXPRESSION", {
|
325
|
"args" : [["EXPRESSION", {
|
326
|
"args" : [["EXPRESSION", {
|
327
|
"args" : [["EXPRESSION", {
|
328
|
"args" : [["CONSTANT_VALUE", {
|
329
|
"value" : ["CST_LITERAL", "'0'"]}
|
330
|
]]}
|
331
|
]]}
|
332
|
]]}
|
333
|
]]}
|
334
|
]}
|
335
|
, {
|
336
|
"choices" : [["EXPRESSION", {
|
337
|
"args" : [["EXPRESSION", {
|
338
|
"args" : [["CALL", ["SIMPLE_NAME", "addr_z"]]]}
|
339
|
]]}
|
340
|
]], "expr" : ["EXPRESSION", {
|
341
|
"args" : [["EXPRESSION", {
|
342
|
"args" : [["EXPRESSION", {
|
343
|
"args" : [["EXPRESSION", {
|
344
|
"args" : [["CONSTANT_VALUE", {
|
345
|
"value" : ["CST_LITERAL", "'0'"]}
|
346
|
]]}
|
347
|
]]}
|
348
|
]]}
|
349
|
]]}
|
350
|
]}
|
351
|
]}
|
352
|
]]}
|
353
|
]]}
|
354
|
]]}
|
355
|
]]}
|
356
|
]}
|
357
|
], ["CONSTANT_DECLARATION", {
|
358
|
"names" : [["IDENTIFIER", "assert_instr_z"]], "typ" : {
|
359
|
"name" : ["SIMPLE_NAME", "assert_instruction"]}
|
360
|
, "init_val" : ["EXPRESSION", {
|
361
|
"args" : [["EXPRESSION", {
|
362
|
"args" : [["EXPRESSION", {
|
363
|
"args" : [["EXPRESSION", {
|
364
|
"args" : [["AGGREGATE", {
|
365
|
"elems" : [{
|
366
|
"choices" : [["EXPRESSION", {
|
367
|
"args" : [["EXPRESSION", {
|
368
|
"args" : [["CALL", ["SIMPLE_NAME", "en_feed"]]]}
|
369
|
]]}
|
370
|
]], "expr" : ["EXPRESSION", {
|
371
|
"args" : [["EXPRESSION", {
|
372
|
"args" : [["EXPRESSION", {
|
373
|
"args" : [["EXPRESSION", {
|
374
|
"args" : [["CONSTANT_VALUE", {
|
375
|
"value" : ["CST_LITERAL", "'0'"]}
|
376
|
]]}
|
377
|
]]}
|
378
|
]]}
|
379
|
]]}
|
380
|
]}
|
381
|
, {
|
382
|
"choices" : [["EXPRESSION", {
|
383
|
"args" : [["EXPRESSION", {
|
384
|
"args" : [["CALL", ["SIMPLE_NAME", "en_check"]]]}
|
385
|
]]}
|
386
|
]], "expr" : ["EXPRESSION", {
|
387
|
"args" : [["EXPRESSION", {
|
388
|
"args" : [["EXPRESSION", {
|
389
|
"args" : [["EXPRESSION", {
|
390
|
"args" : [["CONSTANT_VALUE", {
|
391
|
"value" : ["CST_LITERAL", "'0'"]}
|
392
|
]]}
|
393
|
]]}
|
394
|
]]}
|
395
|
]]}
|
396
|
]}
|
397
|
]}
|
398
|
]]}
|
399
|
]]}
|
400
|
]]}
|
401
|
]]}
|
402
|
]}
|
403
|
], ["CONSTANT_DECLARATION", {
|
404
|
"names" : [["IDENTIFIER", "PC_SIZE"]], "typ" : {
|
405
|
"name" : ["SIMPLE_NAME", "integer"]}
|
406
|
, "init_val" : ["EXPRESSION", {
|
407
|
"args" : [["EXPRESSION", {
|
408
|
"args" : [["EXPRESSION", {
|
409
|
"args" : [["EXPRESSION", {
|
410
|
"args" : [["CONSTANT_VALUE", {
|
411
|
"value" : ["CST_LITERAL", "5"]}
|
412
|
]]}
|
413
|
]]}
|
414
|
]]}
|
415
|
]]}
|
416
|
]}
|
417
|
], ["CONSTANT_DECLARATION", {
|
418
|
"names" : [["IDENTIFIER", "VEC_NO_SIZE"]], "typ" : {
|
419
|
"name" : ["SIMPLE_NAME", "integer"]}
|
420
|
, "init_val" : ["EXPRESSION", {
|
421
|
"args" : [["EXPRESSION", {
|
422
|
"args" : [["EXPRESSION", {
|
423
|
"args" : [["EXPRESSION", {
|
424
|
"args" : [["CONSTANT_VALUE", {
|
425
|
"value" : ["CST_LITERAL", "20"]}
|
426
|
]]}
|
427
|
]]}
|
428
|
]]}
|
429
|
]]}
|
430
|
]}
|
431
|
]], "shared_uses" : []}
|
432
|
]}
|
433
|
]}
|
434
|
}
|