Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec-tests / vhdl_json / vhdl_files / 2-exportOK / ghdl / ghdl / testsuite / gna / issue301 / packages / pkg_components.json @ 2051e520

History | View | Annotate | Download (35.6 KB)

1 2051e520 Arnaud Dieumegard
{
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_CLAUSE", [["IDENTIFIER", "dec_viterbi"]]], ["USE_CLAUSE", [["SELECTED_NAME", [["SIMPLE_NAME", "dec_viterbi"], ["SIMPLE_NAME", "pkg_param"]]]]], ["USE_CLAUSE", [["SELECTED_NAME", [["SIMPLE_NAME", "dec_viterbi"], ["SIMPLE_NAME", "pkg_param_derived"]]]]], ["USE_CLAUSE", [["SELECTED_NAME", [["SIMPLE_NAME", "dec_viterbi"], ["SIMPLE_NAME", "pkg_types"]]]]]], "library" : ["PACKAGE_DECLARATION", {
5
        "name" : ["IDENTIFIER", "pkg_components"], "shared_defs" : [], "shared_decls" : [["COMPONENT_DECLARATION", {
6
          "name" : ["IDENTIFIER", "axi4s_buffer"], "generics" : [{
7
            "names" : [["IDENTIFIER", "DATA_WIDTH"]], "typ" : {
8
              "name" : ["SIMPLE_NAME", "natural"]}
9
            , "expr" : ["EXPRESSION", {
10
              "args" : [["EXPRESSION", {
11
                "args" : [["EXPRESSION", {
12
                  "args" : [["EXPRESSION", {
13
                    "args" : [["CONSTANT_VALUE", {
14
                      "value" : ["CST_LITERAL", "1"]}
15
                    ]]}
16
                  ]]}
17
                ]]}
18
              ]]}
19
            ]}
20
          ], "ports" : [{
21
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
22
              "name" : ["SIMPLE_NAME", "std_logic"]}
23
            }
24
          , {
25
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
26
              "name" : ["SIMPLE_NAME", "std_logic"]}
27
            }
28
          , {
29
            "names" : [["IDENTIFIER", "input"]], "mode" : ["in"], "typ" : {
30
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
31
                "ranges" : [["RANGE_WITH_DIRECTION", {
32
                  "direction" : "downto", "from" : ["EXPRESSION", {
33
                    "args" : [["EXPRESSION", {
34
                      "id" : "-", "args" : [["EXPRESSION", {
35
                        "args" : [["CALL", ["SIMPLE_NAME", "DATA_WIDTH"]]]}
36
                      ], ["EXPRESSION", {
37
                        "args" : [["CONSTANT_VALUE", {
38
                          "value" : ["CST_LITERAL", "1"]}
39
                        ]]}
40
                      ]]}
41
                    ]]}
42
                  ], "_to" : ["EXPRESSION", {
43
                    "args" : [["EXPRESSION", {
44
                      "args" : [["CONSTANT_VALUE", {
45
                        "value" : ["CST_LITERAL", "0"]}
46
                      ]]}
47
                    ]]}
48
                  ]}
49
                ]]}
50
              ]}
51
            }
52
          , {
53
            "names" : [["IDENTIFIER", "input_valid"]], "mode" : ["in"], "typ" : {
54
              "name" : ["SIMPLE_NAME", "std_logic"]}
55
            }
56
          , {
57
            "names" : [["IDENTIFIER", "input_last"]], "mode" : ["in"], "typ" : {
58
              "name" : ["SIMPLE_NAME", "std_logic"]}
59
            }
60
          , {
61
            "names" : [["IDENTIFIER", "input_accept"]], "mode" : ["out"], "typ" : {
62
              "name" : ["SIMPLE_NAME", "std_logic"]}
63
            }
64
          , {
65
            "names" : [["IDENTIFIER", "output"]], "mode" : ["out"], "typ" : {
66
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
67
                "ranges" : [["RANGE_WITH_DIRECTION", {
68
                  "direction" : "downto", "from" : ["EXPRESSION", {
69
                    "args" : [["EXPRESSION", {
70
                      "id" : "-", "args" : [["EXPRESSION", {
71
                        "args" : [["CALL", ["SIMPLE_NAME", "DATA_WIDTH"]]]}
72
                      ], ["EXPRESSION", {
73
                        "args" : [["CONSTANT_VALUE", {
74
                          "value" : ["CST_LITERAL", "1"]}
75
                        ]]}
76
                      ]]}
77
                    ]]}
78
                  ], "_to" : ["EXPRESSION", {
79
                    "args" : [["EXPRESSION", {
80
                      "args" : [["CONSTANT_VALUE", {
81
                        "value" : ["CST_LITERAL", "0"]}
82
                      ]]}
83
                    ]]}
84
                  ]}
85
                ]]}
86
              ]}
87
            }
88
          , {
89
            "names" : [["IDENTIFIER", "output_valid"]], "mode" : ["out"], "typ" : {
90
              "name" : ["SIMPLE_NAME", "std_logic"]}
91
            }
92
          , {
93
            "names" : [["IDENTIFIER", "output_last"]], "mode" : ["out"], "typ" : {
94
              "name" : ["SIMPLE_NAME", "std_logic"]}
95
            }
96
          , {
97
            "names" : [["IDENTIFIER", "output_accept"]], "mode" : ["in"], "typ" : {
98
              "name" : ["SIMPLE_NAME", "std_logic"]}
99
            }
100
          ]}
101
        ], ["COMPONENT_DECLARATION", {
102
          "name" : ["IDENTIFIER", "branch_distance"], "generics" : [{
103
            "names" : [["IDENTIFIER", "EDGE_WEIGHT"]], "mode" : ["in"], "typ" : {
104
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
105
                "ranges" : [["RANGE_WITH_DIRECTION", {
106
                  "direction" : "downto", "from" : ["EXPRESSION", {
107
                    "args" : [["EXPRESSION", {
108
                      "id" : "-", "args" : [["EXPRESSION", {
109
                        "args" : [["CALL", ["SIMPLE_NAME", "NUMBER_PARITY_BITS"]]]}
110
                      ], ["EXPRESSION", {
111
                        "args" : [["CONSTANT_VALUE", {
112
                          "value" : ["CST_LITERAL", "1"]}
113
                        ]]}
114
                      ]]}
115
                    ]]}
116
                  ], "_to" : ["EXPRESSION", {
117
                    "args" : [["EXPRESSION", {
118
                      "args" : [["CONSTANT_VALUE", {
119
                        "value" : ["CST_LITERAL", "0"]}
120
                      ]]}
121
                    ]]}
122
                  ]}
123
                ]]}
124
              ]}
125
            }
126
          ], "ports" : [{
127
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
128
              "name" : ["SIMPLE_NAME", "std_logic"]}
129
            }
130
          , {
131
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
132
              "name" : ["SIMPLE_NAME", "std_logic"]}
133
            }
134
          , {
135
            "names" : [["IDENTIFIER", "s_axis_input_tvalid"]], "mode" : ["in"], "typ" : {
136
              "name" : ["SIMPLE_NAME", "std_logic"]}
137
            }
138
          , {
139
            "names" : [["IDENTIFIER", "s_axis_input_tdata"]], "mode" : ["in"], "typ" : {
140
              "name" : ["SIMPLE_NAME", "t_input_block"]}
141
            }
142
          , {
143
            "names" : [["IDENTIFIER", "s_axis_input_tlast"]], "mode" : ["in"], "typ" : {
144
              "name" : ["SIMPLE_NAME", "std_logic"]}
145
            }
146
          , {
147
            "names" : [["IDENTIFIER", "s_axis_input_tready"]], "mode" : ["out"], "typ" : {
148
              "name" : ["SIMPLE_NAME", "std_logic"]}
149
            }
150
          , {
151
            "names" : [["IDENTIFIER", "m_axis_output_tvalid"]], "mode" : ["out"], "typ" : {
152
              "name" : ["SIMPLE_NAME", "std_logic"]}
153
            }
154
          , {
155
            "names" : [["IDENTIFIER", "m_axis_output_tdata"]], "mode" : ["out"], "typ" : {
156
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
157
                "ranges" : [["RANGE_WITH_DIRECTION", {
158
                  "direction" : "downto", "from" : ["EXPRESSION", {
159
                    "args" : [["EXPRESSION", {
160
                      "id" : "-", "args" : [["EXPRESSION", {
161
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_BRANCH_RESULT"]]]}
162
                      ], ["EXPRESSION", {
163
                        "args" : [["CONSTANT_VALUE", {
164
                          "value" : ["CST_LITERAL", "1"]}
165
                        ]]}
166
                      ]]}
167
                    ]]}
168
                  ], "_to" : ["EXPRESSION", {
169
                    "args" : [["EXPRESSION", {
170
                      "args" : [["CONSTANT_VALUE", {
171
                        "value" : ["CST_LITERAL", "0"]}
172
                      ]]}
173
                    ]]}
174
                  ]}
175
                ]]}
176
              ]}
177
            }
178
          , {
179
            "names" : [["IDENTIFIER", "m_axis_output_tlast"]], "mode" : ["out"], "typ" : {
180
              "name" : ["SIMPLE_NAME", "std_logic"]}
181
            }
182
          , {
183
            "names" : [["IDENTIFIER", "m_axis_output_tready"]], "mode" : ["in"], "typ" : {
184
              "name" : ["SIMPLE_NAME", "std_logic"]}
185
            }
186
          ]}
187
        ], ["COMPONENT_DECLARATION", {
188
          "name" : ["IDENTIFIER", "acs"], "generics" : [{
189
            "names" : [["IDENTIFIER", "initialize_value"]], "mode" : ["in"], "typ" : {
190
              "name" : ["SIMPLE_NAME", "signed"], "const" : ["INDEX_CONSTRAINT", {
191
                "ranges" : [["RANGE_WITH_DIRECTION", {
192
                  "direction" : "downto", "from" : ["EXPRESSION", {
193
                    "args" : [["EXPRESSION", {
194
                      "id" : "-", "args" : [["EXPRESSION", {
195
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_MAX_PROBABILITY"]]]}
196
                      ], ["EXPRESSION", {
197
                        "args" : [["CONSTANT_VALUE", {
198
                          "value" : ["CST_LITERAL", "1"]}
199
                        ]]}
200
                      ]]}
201
                    ]]}
202
                  ], "_to" : ["EXPRESSION", {
203
                    "args" : [["EXPRESSION", {
204
                      "args" : [["CONSTANT_VALUE", {
205
                        "value" : ["CST_LITERAL", "0"]}
206
                      ]]}
207
                    ]]}
208
                  ]}
209
                ]]}
210
              ]}
211
            }
212
          ], "ports" : [{
213
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
214
              "name" : ["SIMPLE_NAME", "std_logic"]}
215
            }
216
          , {
217
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
218
              "name" : ["SIMPLE_NAME", "std_logic"]}
219
            }
220
          , {
221
            "names" : [["IDENTIFIER", "s_axis_inbranch_tvalid"]], "mode" : ["in"], "typ" : {
222
              "name" : ["SIMPLE_NAME", "std_logic"]}
223
            }
224
          , {
225
            "names" : [["IDENTIFIER", "s_axis_inbranch_tdata_low"]], "mode" : ["in"], "typ" : {
226
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
227
                "ranges" : [["RANGE_WITH_DIRECTION", {
228
                  "direction" : "downto", "from" : ["EXPRESSION", {
229
                    "args" : [["EXPRESSION", {
230
                      "id" : "-", "args" : [["EXPRESSION", {
231
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_BRANCH_RESULT"]]]}
232
                      ], ["EXPRESSION", {
233
                        "args" : [["CONSTANT_VALUE", {
234
                          "value" : ["CST_LITERAL", "1"]}
235
                        ]]}
236
                      ]]}
237
                    ]]}
238
                  ], "_to" : ["EXPRESSION", {
239
                    "args" : [["EXPRESSION", {
240
                      "args" : [["CONSTANT_VALUE", {
241
                        "value" : ["CST_LITERAL", "0"]}
242
                      ]]}
243
                    ]]}
244
                  ]}
245
                ]]}
246
              ]}
247
            }
248
          , {
249
            "names" : [["IDENTIFIER", "s_axis_inbranch_tdata_high"]], "mode" : ["in"], "typ" : {
250
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
251
                "ranges" : [["RANGE_WITH_DIRECTION", {
252
                  "direction" : "downto", "from" : ["EXPRESSION", {
253
                    "args" : [["EXPRESSION", {
254
                      "id" : "-", "args" : [["EXPRESSION", {
255
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_BRANCH_RESULT"]]]}
256
                      ], ["EXPRESSION", {
257
                        "args" : [["CONSTANT_VALUE", {
258
                          "value" : ["CST_LITERAL", "1"]}
259
                        ]]}
260
                      ]]}
261
                    ]]}
262
                  ], "_to" : ["EXPRESSION", {
263
                    "args" : [["EXPRESSION", {
264
                      "args" : [["CONSTANT_VALUE", {
265
                        "value" : ["CST_LITERAL", "0"]}
266
                      ]]}
267
                    ]]}
268
                  ]}
269
                ]]}
270
              ]}
271
            }
272
          , {
273
            "names" : [["IDENTIFIER", "s_axis_inbranch_tlast"]], "mode" : ["in"], "typ" : {
274
              "name" : ["SIMPLE_NAME", "std_logic"]}
275
            }
276
          , {
277
            "names" : [["IDENTIFIER", "s_axis_inbranch_tready"]], "mode" : ["out"], "typ" : {
278
              "name" : ["SIMPLE_NAME", "std_logic"]}
279
            }
280
          , {
281
            "names" : [["IDENTIFIER", "s_axis_inprev_tvalid"]], "mode" : ["in"], "typ" : {
282
              "name" : ["SIMPLE_NAME", "std_logic"]}
283
            }
284
          , {
285
            "names" : [["IDENTIFIER", "s_axis_inprev_tdata_low"]], "mode" : ["in"], "typ" : {
286
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
287
                "ranges" : [["RANGE_WITH_DIRECTION", {
288
                  "direction" : "downto", "from" : ["EXPRESSION", {
289
                    "args" : [["EXPRESSION", {
290
                      "id" : "-", "args" : [["EXPRESSION", {
291
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_MAX_PROBABILITY"]]]}
292
                      ], ["EXPRESSION", {
293
                        "args" : [["CONSTANT_VALUE", {
294
                          "value" : ["CST_LITERAL", "1"]}
295
                        ]]}
296
                      ]]}
297
                    ]]}
298
                  ], "_to" : ["EXPRESSION", {
299
                    "args" : [["EXPRESSION", {
300
                      "args" : [["CONSTANT_VALUE", {
301
                        "value" : ["CST_LITERAL", "0"]}
302
                      ]]}
303
                    ]]}
304
                  ]}
305
                ]]}
306
              ]}
307
            }
308
          , {
309
            "names" : [["IDENTIFIER", "s_axis_inprev_tdata_high"]], "mode" : ["in"], "typ" : {
310
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
311
                "ranges" : [["RANGE_WITH_DIRECTION", {
312
                  "direction" : "downto", "from" : ["EXPRESSION", {
313
                    "args" : [["EXPRESSION", {
314
                      "id" : "-", "args" : [["EXPRESSION", {
315
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_MAX_PROBABILITY"]]]}
316
                      ], ["EXPRESSION", {
317
                        "args" : [["CONSTANT_VALUE", {
318
                          "value" : ["CST_LITERAL", "1"]}
319
                        ]]}
320
                      ]]}
321
                    ]]}
322
                  ], "_to" : ["EXPRESSION", {
323
                    "args" : [["EXPRESSION", {
324
                      "args" : [["CONSTANT_VALUE", {
325
                        "value" : ["CST_LITERAL", "0"]}
326
                      ]]}
327
                    ]]}
328
                  ]}
329
                ]]}
330
              ]}
331
            }
332
          , {
333
            "names" : [["IDENTIFIER", "s_axis_inprev_tready"]], "mode" : ["out"], "typ" : {
334
              "name" : ["SIMPLE_NAME", "std_logic"]}
335
            }
336
          , {
337
            "names" : [["IDENTIFIER", "m_axis_outprob_tvalid"]], "mode" : ["out"], "typ" : {
338
              "name" : ["SIMPLE_NAME", "std_logic"]}
339
            }
340
          , {
341
            "names" : [["IDENTIFIER", "m_axis_outprob_tdata"]], "mode" : ["out"], "typ" : {
342
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
343
                "ranges" : [["RANGE_WITH_DIRECTION", {
344
                  "direction" : "downto", "from" : ["EXPRESSION", {
345
                    "args" : [["EXPRESSION", {
346
                      "id" : "-", "args" : [["EXPRESSION", {
347
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_MAX_PROBABILITY"]]]}
348
                      ], ["EXPRESSION", {
349
                        "args" : [["CONSTANT_VALUE", {
350
                          "value" : ["CST_LITERAL", "1"]}
351
                        ]]}
352
                      ]]}
353
                    ]]}
354
                  ], "_to" : ["EXPRESSION", {
355
                    "args" : [["EXPRESSION", {
356
                      "args" : [["CONSTANT_VALUE", {
357
                        "value" : ["CST_LITERAL", "0"]}
358
                      ]]}
359
                    ]]}
360
                  ]}
361
                ]]}
362
              ]}
363
            }
364
          , {
365
            "names" : [["IDENTIFIER", "m_axis_outprob_tready"]], "mode" : ["in"], "typ" : {
366
              "name" : ["SIMPLE_NAME", "std_logic"]}
367
            }
368
          , {
369
            "names" : [["IDENTIFIER", "m_axis_outdec_tvalid"]], "mode" : ["out"], "typ" : {
370
              "name" : ["SIMPLE_NAME", "std_logic"]}
371
            }
372
          , {
373
            "names" : [["IDENTIFIER", "m_axis_outdec_tdata"]], "mode" : ["out"], "typ" : {
374
              "name" : ["SIMPLE_NAME", "std_logic"]}
375
            }
376
          , {
377
            "names" : [["IDENTIFIER", "m_axis_outdec_tlast"]], "mode" : ["out"], "typ" : {
378
              "name" : ["SIMPLE_NAME", "std_logic"]}
379
            }
380
          , {
381
            "names" : [["IDENTIFIER", "m_axis_outdec_tready"]], "mode" : ["in"], "typ" : {
382
              "name" : ["SIMPLE_NAME", "std_logic"]}
383
            }
384
          ]}
385
        ], ["COMPONENT_DECLARATION", {
386
          "name" : ["IDENTIFIER", "ram_ctrl"], "ports" : [{
387
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
388
              "name" : ["SIMPLE_NAME", "std_logic"]}
389
            }
390
          , {
391
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
392
              "name" : ["SIMPLE_NAME", "std_logic"]}
393
            }
394
          , {
395
            "names" : [["IDENTIFIER", "s_axis_input_tvalid"]], "mode" : ["in"], "typ" : {
396
              "name" : ["SIMPLE_NAME", "std_logic"]}
397
            }
398
          , {
399
            "names" : [["IDENTIFIER", "s_axis_input_tdata"]], "mode" : ["in"], "typ" : {
400
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
401
                "ranges" : [["RANGE_WITH_DIRECTION", {
402
                  "direction" : "downto", "from" : ["EXPRESSION", {
403
                    "args" : [["EXPRESSION", {
404
                      "id" : "-", "args" : [["EXPRESSION", {
405
                        "args" : [["CALL", ["SIMPLE_NAME", "NUMBER_TRELLIS_STATES"]]]}
406
                      ], ["EXPRESSION", {
407
                        "args" : [["CONSTANT_VALUE", {
408
                          "value" : ["CST_LITERAL", "1"]}
409
                        ]]}
410
                      ]]}
411
                    ]]}
412
                  ], "_to" : ["EXPRESSION", {
413
                    "args" : [["EXPRESSION", {
414
                      "args" : [["CONSTANT_VALUE", {
415
                        "value" : ["CST_LITERAL", "0"]}
416
                      ]]}
417
                    ]]}
418
                  ]}
419
                ]]}
420
              ]}
421
            }
422
          , {
423
            "names" : [["IDENTIFIER", "s_axis_input_tlast"]], "mode" : ["in"], "typ" : {
424
              "name" : ["SIMPLE_NAME", "std_logic"]}
425
            }
426
          , {
427
            "names" : [["IDENTIFIER", "s_axis_input_tready"]], "mode" : ["out"], "typ" : {
428
              "name" : ["SIMPLE_NAME", "std_logic"]}
429
            }
430
          , {
431
            "names" : [["IDENTIFIER", "m_axis_output_tvalid"]], "mode" : ["out"], "typ" : {
432
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
433
                "ranges" : [["RANGE_WITH_DIRECTION", {
434
                  "direction" : "downto", "from" : ["EXPRESSION", {
435
                    "args" : [["EXPRESSION", {
436
                      "args" : [["CONSTANT_VALUE", {
437
                        "value" : ["CST_LITERAL", "1"]}
438
                      ]]}
439
                    ]]}
440
                  ], "_to" : ["EXPRESSION", {
441
                    "args" : [["EXPRESSION", {
442
                      "args" : [["CONSTANT_VALUE", {
443
                        "value" : ["CST_LITERAL", "0"]}
444
                      ]]}
445
                    ]]}
446
                  ]}
447
                ]]}
448
              ]}
449
            }
450
          , {
451
            "names" : [["IDENTIFIER", "m_axis_output_tdata"]], "mode" : ["out"], "typ" : {
452
              "name" : ["SIMPLE_NAME", "t_ram_rd_data"]}
453
            }
454
          , {
455
            "names" : [["IDENTIFIER", "m_axis_output_tlast"]], "mode" : ["out"], "typ" : {
456
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
457
                "ranges" : [["RANGE_WITH_DIRECTION", {
458
                  "direction" : "downto", "from" : ["EXPRESSION", {
459
                    "args" : [["EXPRESSION", {
460
                      "args" : [["CONSTANT_VALUE", {
461
                        "value" : ["CST_LITERAL", "1"]}
462
                      ]]}
463
                    ]]}
464
                  ], "_to" : ["EXPRESSION", {
465
                    "args" : [["EXPRESSION", {
466
                      "args" : [["CONSTANT_VALUE", {
467
                        "value" : ["CST_LITERAL", "0"]}
468
                      ]]}
469
                    ]]}
470
                  ]}
471
                ]]}
472
              ]}
473
            }
474
          , {
475
            "names" : [["IDENTIFIER", "m_axis_output_tready"]], "mode" : ["in"], "typ" : {
476
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
477
                "ranges" : [["RANGE_WITH_DIRECTION", {
478
                  "direction" : "downto", "from" : ["EXPRESSION", {
479
                    "args" : [["EXPRESSION", {
480
                      "args" : [["CONSTANT_VALUE", {
481
                        "value" : ["CST_LITERAL", "1"]}
482
                      ]]}
483
                    ]]}
484
                  ], "_to" : ["EXPRESSION", {
485
                    "args" : [["EXPRESSION", {
486
                      "args" : [["CONSTANT_VALUE", {
487
                        "value" : ["CST_LITERAL", "0"]}
488
                      ]]}
489
                    ]]}
490
                  ]}
491
                ]]}
492
              ]}
493
            }
494
          , {
495
            "names" : [["IDENTIFIER", "m_axis_output_window_tuser"]], "mode" : ["out"], "typ" : {
496
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
497
                "ranges" : [["RANGE_WITH_DIRECTION", {
498
                  "direction" : "downto", "from" : ["EXPRESSION", {
499
                    "args" : [["EXPRESSION", {
500
                      "args" : [["CONSTANT_VALUE", {
501
                        "value" : ["CST_LITERAL", "1"]}
502
                      ]]}
503
                    ]]}
504
                  ], "_to" : ["EXPRESSION", {
505
                    "args" : [["EXPRESSION", {
506
                      "args" : [["CONSTANT_VALUE", {
507
                        "value" : ["CST_LITERAL", "0"]}
508
                      ]]}
509
                    ]]}
510
                  ]}
511
                ]]}
512
              ]}
513
            }
514
          , {
515
            "names" : [["IDENTIFIER", "m_axis_output_last_tuser"]], "mode" : ["out"], "typ" : {
516
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
517
                "ranges" : [["RANGE_WITH_DIRECTION", {
518
                  "direction" : "downto", "from" : ["EXPRESSION", {
519
                    "args" : [["EXPRESSION", {
520
                      "args" : [["CONSTANT_VALUE", {
521
                        "value" : ["CST_LITERAL", "1"]}
522
                      ]]}
523
                    ]]}
524
                  ], "_to" : ["EXPRESSION", {
525
                    "args" : [["EXPRESSION", {
526
                      "args" : [["CONSTANT_VALUE", {
527
                        "value" : ["CST_LITERAL", "0"]}
528
                      ]]}
529
                    ]]}
530
                  ]}
531
                ]]}
532
              ]}
533
            }
534
          , {
535
            "names" : [["IDENTIFIER", "s_axis_ctrl_tvalid"]], "mode" : ["in"], "typ" : {
536
              "name" : ["SIMPLE_NAME", "std_logic"]}
537
            }
538
          , {
539
            "names" : [["IDENTIFIER", "s_axis_ctrl_tdata"]], "mode" : ["in"], "typ" : {
540
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
541
                "ranges" : [["RANGE_WITH_DIRECTION", {
542
                  "direction" : "downto", "from" : ["EXPRESSION", {
543
                    "args" : [["EXPRESSION", {
544
                      "args" : [["CONSTANT_VALUE", {
545
                        "value" : ["CST_LITERAL", "31"]}
546
                      ]]}
547
                    ]]}
548
                  ], "_to" : ["EXPRESSION", {
549
                    "args" : [["EXPRESSION", {
550
                      "args" : [["CONSTANT_VALUE", {
551
                        "value" : ["CST_LITERAL", "0"]}
552
                      ]]}
553
                    ]]}
554
                  ]}
555
                ]]}
556
              ]}
557
            }
558
          , {
559
            "names" : [["IDENTIFIER", "s_axis_ctrl_tready"]], "mode" : ["out"], "typ" : {
560
              "name" : ["SIMPLE_NAME", "std_logic"]}
561
            }
562
          ]}
563
        ], ["COMPONENT_DECLARATION", {
564
          "name" : ["IDENTIFIER", "generic_sp_ram"], "generics" : [{
565
            "names" : [["IDENTIFIER", "DISTR_RAM"]], "typ" : {
566
              "name" : ["SIMPLE_NAME", "boolean"]}
567
            }
568
          , {
569
            "names" : [["IDENTIFIER", "WORDS"]], "typ" : {
570
              "name" : ["SIMPLE_NAME", "integer"]}
571
            }
572
          , {
573
            "names" : [["IDENTIFIER", "BITWIDTH"]], "typ" : {
574
              "name" : ["SIMPLE_NAME", "integer"]}
575
            }
576
          ], "ports" : [{
577
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
578
              "name" : ["SIMPLE_NAME", "std_logic"]}
579
            }
580
          , {
581
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
582
              "name" : ["SIMPLE_NAME", "std_logic"]}
583
            }
584
          , {
585
            "names" : [["IDENTIFIER", "wen"]], "mode" : ["in"], "typ" : {
586
              "name" : ["SIMPLE_NAME", "std_logic"]}
587
            }
588
          , {
589
            "names" : [["IDENTIFIER", "en"]], "mode" : ["in"], "typ" : {
590
              "name" : ["SIMPLE_NAME", "std_logic"]}
591
            }
592
          , {
593
            "names" : [["IDENTIFIER", "a"]], "mode" : ["in"], "typ" : {
594
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
595
                "ranges" : [["RANGE_WITH_DIRECTION", {
596
                  "direction" : "downto", "from" : ["EXPRESSION", {
597
                    "args" : [["EXPRESSION", {
598
                      "id" : "-", "args" : [["EXPRESSION", {
599
                        "args" : [["CALL", ["SIMPLE_NAME", "BW_MAX_WINDOW_LENGTH"]]]}
600
                      ], ["EXPRESSION", {
601
                        "args" : [["CONSTANT_VALUE", {
602
                          "value" : ["CST_LITERAL", "1"]}
603
                        ]]}
604
                      ]]}
605
                    ]]}
606
                  ], "_to" : ["EXPRESSION", {
607
                    "args" : [["EXPRESSION", {
608
                      "args" : [["CONSTANT_VALUE", {
609
                        "value" : ["CST_LITERAL", "0"]}
610
                      ]]}
611
                    ]]}
612
                  ]}
613
                ]]}
614
              ]}
615
            }
616
          , {
617
            "names" : [["IDENTIFIER", "d"]], "mode" : ["in"], "typ" : {
618
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
619
                "ranges" : [["RANGE_WITH_DIRECTION", {
620
                  "direction" : "downto", "from" : ["EXPRESSION", {
621
                    "args" : [["EXPRESSION", {
622
                      "id" : "-", "args" : [["EXPRESSION", {
623
                        "args" : [["CALL", ["SIMPLE_NAME", "BITWIDTH"]]]}
624
                      ], ["EXPRESSION", {
625
                        "args" : [["CONSTANT_VALUE", {
626
                          "value" : ["CST_LITERAL", "1"]}
627
                        ]]}
628
                      ]]}
629
                    ]]}
630
                  ], "_to" : ["EXPRESSION", {
631
                    "args" : [["EXPRESSION", {
632
                      "args" : [["CONSTANT_VALUE", {
633
                        "value" : ["CST_LITERAL", "0"]}
634
                      ]]}
635
                    ]]}
636
                  ]}
637
                ]]}
638
              ]}
639
            }
640
          , {
641
            "names" : [["IDENTIFIER", "q"]], "mode" : ["out"], "typ" : {
642
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
643
                "ranges" : [["RANGE_WITH_DIRECTION", {
644
                  "direction" : "downto", "from" : ["EXPRESSION", {
645
                    "args" : [["EXPRESSION", {
646
                      "id" : "-", "args" : [["EXPRESSION", {
647
                        "args" : [["CALL", ["SIMPLE_NAME", "BITWIDTH"]]]}
648
                      ], ["EXPRESSION", {
649
                        "args" : [["CONSTANT_VALUE", {
650
                          "value" : ["CST_LITERAL", "1"]}
651
                        ]]}
652
                      ]]}
653
                    ]]}
654
                  ], "_to" : ["EXPRESSION", {
655
                    "args" : [["EXPRESSION", {
656
                      "args" : [["CONSTANT_VALUE", {
657
                        "value" : ["CST_LITERAL", "0"]}
658
                      ]]}
659
                    ]]}
660
                  ]}
661
                ]]}
662
              ]}
663
            }
664
          ]}
665
        ], ["COMPONENT_DECLARATION", {
666
          "name" : ["IDENTIFIER", "trellis_traceback"], "ports" : [{
667
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
668
              "name" : ["SIMPLE_NAME", "std_logic"]}
669
            }
670
          , {
671
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
672
              "name" : ["SIMPLE_NAME", "std_logic"]}
673
            }
674
          , {
675
            "names" : [["IDENTIFIER", "s_axis_input_tvalid"]], "mode" : ["in"], "typ" : {
676
              "name" : ["SIMPLE_NAME", "std_logic"]}
677
            }
678
          , {
679
            "names" : [["IDENTIFIER", "s_axis_input_tdata"]], "mode" : ["in"], "typ" : {
680
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
681
                "ranges" : [["RANGE_WITH_DIRECTION", {
682
                  "direction" : "downto", "from" : ["EXPRESSION", {
683
                    "args" : [["EXPRESSION", {
684
                      "id" : "-", "args" : [["EXPRESSION", {
685
                        "args" : [["CALL", ["SIMPLE_NAME", "NUMBER_TRELLIS_STATES"]]]}
686
                      ], ["EXPRESSION", {
687
                        "args" : [["CONSTANT_VALUE", {
688
                          "value" : ["CST_LITERAL", "1"]}
689
                        ]]}
690
                      ]]}
691
                    ]]}
692
                  ], "_to" : ["EXPRESSION", {
693
                    "args" : [["EXPRESSION", {
694
                      "args" : [["CONSTANT_VALUE", {
695
                        "value" : ["CST_LITERAL", "0"]}
696
                      ]]}
697
                    ]]}
698
                  ]}
699
                ]]}
700
              ]}
701
            }
702
          , {
703
            "names" : [["IDENTIFIER", "s_axis_input_tlast"]], "mode" : ["in"], "typ" : {
704
              "name" : ["SIMPLE_NAME", "std_logic"]}
705
            }
706
          , {
707
            "names" : [["IDENTIFIER", "s_axis_input_tready"]], "mode" : ["out"], "typ" : {
708
              "name" : ["SIMPLE_NAME", "std_logic"]}
709
            }
710
          , {
711
            "names" : [["IDENTIFIER", "s_axis_input_window_tuser"]], "mode" : ["in"], "typ" : {
712
              "name" : ["SIMPLE_NAME", "std_logic"]}
713
            }
714
          , {
715
            "names" : [["IDENTIFIER", "s_axis_input_last_tuser"]], "mode" : ["in"], "typ" : {
716
              "name" : ["SIMPLE_NAME", "std_logic"]}
717
            }
718
          , {
719
            "names" : [["IDENTIFIER", "m_axis_output_tvalid"]], "mode" : ["out"], "typ" : {
720
              "name" : ["SIMPLE_NAME", "std_logic"]}
721
            }
722
          , {
723
            "names" : [["IDENTIFIER", "m_axis_output_tdata"]], "mode" : ["out"], "typ" : {
724
              "name" : ["SIMPLE_NAME", "std_logic"]}
725
            }
726
          , {
727
            "names" : [["IDENTIFIER", "m_axis_output_tlast"]], "mode" : ["out"], "typ" : {
728
              "name" : ["SIMPLE_NAME", "std_logic"]}
729
            }
730
          , {
731
            "names" : [["IDENTIFIER", "m_axis_output_last_tuser"]], "mode" : ["out"], "typ" : {
732
              "name" : ["SIMPLE_NAME", "std_logic"]}
733
            }
734
          , {
735
            "names" : [["IDENTIFIER", "m_axis_output_tready"]], "mode" : ["in"], "typ" : {
736
              "name" : ["SIMPLE_NAME", "std_logic"]}
737
            }
738
          ]}
739
        ], ["COMPONENT_DECLARATION", {
740
          "name" : ["IDENTIFIER", "reorder"], "ports" : [{
741
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
742
              "name" : ["SIMPLE_NAME", "std_logic"]}
743
            }
744
          , {
745
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
746
              "name" : ["SIMPLE_NAME", "std_logic"]}
747
            }
748
          , {
749
            "names" : [["IDENTIFIER", "s_axis_input_tvalid"]], "mode" : ["in"], "typ" : {
750
              "name" : ["SIMPLE_NAME", "std_logic"]}
751
            }
752
          , {
753
            "names" : [["IDENTIFIER", "s_axis_input_tdata"]], "mode" : ["in"], "typ" : {
754
              "name" : ["SIMPLE_NAME", "std_logic"]}
755
            }
756
          , {
757
            "names" : [["IDENTIFIER", "s_axis_input_tlast"]], "mode" : ["in"], "typ" : {
758
              "name" : ["SIMPLE_NAME", "std_logic"]}
759
            }
760
          , {
761
            "names" : [["IDENTIFIER", "s_axis_input_last_tuser"]], "mode" : ["in"], "typ" : {
762
              "name" : ["SIMPLE_NAME", "std_logic"]}
763
            }
764
          , {
765
            "names" : [["IDENTIFIER", "s_axis_input_tready"]], "mode" : ["out"], "typ" : {
766
              "name" : ["SIMPLE_NAME", "std_logic"]}
767
            }
768
          , {
769
            "names" : [["IDENTIFIER", "m_axis_output_tvalid"]], "mode" : ["out"], "typ" : {
770
              "name" : ["SIMPLE_NAME", "std_logic"]}
771
            }
772
          , {
773
            "names" : [["IDENTIFIER", "m_axis_output_tdata"]], "mode" : ["out"], "typ" : {
774
              "name" : ["SIMPLE_NAME", "std_logic"]}
775
            }
776
          , {
777
            "names" : [["IDENTIFIER", "m_axis_output_tlast"]], "mode" : ["out"], "typ" : {
778
              "name" : ["SIMPLE_NAME", "std_logic"]}
779
            }
780
          , {
781
            "names" : [["IDENTIFIER", "m_axis_output_last_tuser"]], "mode" : ["out"], "typ" : {
782
              "name" : ["SIMPLE_NAME", "std_logic"]}
783
            }
784
          , {
785
            "names" : [["IDENTIFIER", "m_axis_output_tready"]], "mode" : ["in"], "typ" : {
786
              "name" : ["SIMPLE_NAME", "std_logic"]}
787
            }
788
          ]}
789
        ], ["COMPONENT_DECLARATION", {
790
          "name" : ["IDENTIFIER", "recursionx"], "ports" : [{
791
            "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
792
              "name" : ["SIMPLE_NAME", "std_logic"]}
793
            }
794
          , {
795
            "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
796
              "name" : ["SIMPLE_NAME", "std_logic"]}
797
            }
798
          , {
799
            "names" : [["IDENTIFIER", "s_axis_input_tvalid"]], "mode" : ["in"], "typ" : {
800
              "name" : ["SIMPLE_NAME", "std_logic"]}
801
            }
802
          , {
803
            "names" : [["IDENTIFIER", "s_axis_input_tdata"]], "mode" : ["in"], "typ" : {
804
              "name" : ["SIMPLE_NAME", "std_logic"]}
805
            }
806
          , {
807
            "names" : [["IDENTIFIER", "s_axis_input_tlast"]], "mode" : ["in"], "typ" : {
808
              "name" : ["SIMPLE_NAME", "std_logic"]}
809
            }
810
          , {
811
            "names" : [["IDENTIFIER", "s_axis_input_tready"]], "mode" : ["out"], "typ" : {
812
              "name" : ["SIMPLE_NAME", "std_logic"]}
813
            }
814
          , {
815
            "names" : [["IDENTIFIER", "m_axis_output_tvalid"]], "mode" : ["out"], "typ" : {
816
              "name" : ["SIMPLE_NAME", "std_logic"]}
817
            }
818
          , {
819
            "names" : [["IDENTIFIER", "m_axis_output_tdata"]], "mode" : ["out"], "typ" : {
820
              "name" : ["SIMPLE_NAME", "std_logic"]}
821
            }
822
          , {
823
            "names" : [["IDENTIFIER", "m_axis_output_tlast"]], "mode" : ["out"], "typ" : {
824
              "name" : ["SIMPLE_NAME", "std_logic"]}
825
            }
826
          , {
827
            "names" : [["IDENTIFIER", "m_axis_output_tready"]], "mode" : ["in"], "typ" : {
828
              "name" : ["SIMPLE_NAME", "std_logic"]}
829
            }
830
          ]}
831
        ]], "shared_uses" : []}
832
      ]}
833
    ]}
834
  }