Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (33.1 KB)

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"]]]]]], "library" : ["ENTITY_DECLARATION", {
5
        "name" : ["IDENTIFIER", "axi4s_buffer"], "generics" : [{
6
          "names" : [["IDENTIFIER", "DATA_WIDTH"]], "typ" : {
7
            "name" : ["SIMPLE_NAME", "natural"]}
8
          , "expr" : ["EXPRESSION", {
9
            "args" : [["EXPRESSION", {
10
              "args" : [["EXPRESSION", {
11
                "args" : [["EXPRESSION", {
12
                  "args" : [["CONSTANT_VALUE", {
13
                    "value" : ["CST_LITERAL", "1"]}
14
                  ]]}
15
                ]]}
16
              ]]}
17
            ]]}
18
          ]}
19
        ], "ports" : [{
20
          "names" : [["IDENTIFIER", "clk"]], "mode" : ["in"], "typ" : {
21
            "name" : ["SIMPLE_NAME", "std_logic"]}
22
          }
23
        , {
24
          "names" : [["IDENTIFIER", "rst"]], "mode" : ["in"], "typ" : {
25
            "name" : ["SIMPLE_NAME", "std_logic"]}
26
          }
27
        , {
28
          "names" : [["IDENTIFIER", "input"]], "mode" : ["in"], "typ" : {
29
            "name" : ["SIMPLE_NAME", "std_logic_vector"], "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", "DATA_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
        , {
52
          "names" : [["IDENTIFIER", "input_valid"]], "mode" : ["in"], "typ" : {
53
            "name" : ["SIMPLE_NAME", "std_logic"]}
54
          }
55
        , {
56
          "names" : [["IDENTIFIER", "input_last"]], "mode" : ["in"], "typ" : {
57
            "name" : ["SIMPLE_NAME", "std_logic"]}
58
          }
59
        , {
60
          "names" : [["IDENTIFIER", "input_accept"]], "mode" : ["out"], "typ" : {
61
            "name" : ["SIMPLE_NAME", "std_logic"]}
62
          }
63
        , {
64
          "names" : [["IDENTIFIER", "output"]], "mode" : ["out"], "typ" : {
65
            "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
66
              "ranges" : [["RANGE_WITH_DIRECTION", {
67
                "direction" : "downto", "from" : ["EXPRESSION", {
68
                  "args" : [["EXPRESSION", {
69
                    "id" : "-", "args" : [["EXPRESSION", {
70
                      "args" : [["CALL", ["SIMPLE_NAME", "DATA_WIDTH"]]]}
71
                    ], ["EXPRESSION", {
72
                      "args" : [["CONSTANT_VALUE", {
73
                        "value" : ["CST_LITERAL", "1"]}
74
                      ]]}
75
                    ]]}
76
                  ]]}
77
                ], "_to" : ["EXPRESSION", {
78
                  "args" : [["EXPRESSION", {
79
                    "args" : [["CONSTANT_VALUE", {
80
                      "value" : ["CST_LITERAL", "0"]}
81
                    ]]}
82
                  ]]}
83
                ]}
84
              ]]}
85
            ]}
86
          }
87
        , {
88
          "names" : [["IDENTIFIER", "output_valid"]], "mode" : ["out"], "typ" : {
89
            "name" : ["SIMPLE_NAME", "std_logic"]}
90
          }
91
        , {
92
          "names" : [["IDENTIFIER", "output_last"]], "mode" : ["out"], "typ" : {
93
            "name" : ["SIMPLE_NAME", "std_logic"]}
94
          }
95
        , {
96
          "names" : [["IDENTIFIER", "output_accept"]], "mode" : ["in"], "typ" : {
97
            "name" : ["SIMPLE_NAME", "std_logic"]}
98
          }
99
        ], "ENTITY_DECLARATIVE_PART" : [], "ENTITY_STATEMENT_PART" : []}
100
      ]}
101
    , {
102
      "contexts" : [], "library" : ["ARCHITECTURE_BODY", {
103
        "name" : ["IDENTIFIER", "rtl"], "entity" : ["IDENTIFIER", "axi4s_buffer"], "ARCHITECTURE_DECLARATIVE_PART" : [{
104
          "declaration" : ["SIGNAL_DECLARATION", {
105
            "names" : [["IDENTIFIER", "input_accept_int"]], "typ" : {
106
              "name" : ["SIMPLE_NAME", "std_logic"]}
107
            }
108
          ]}
109
        , {
110
          "declaration" : ["SIGNAL_DECLARATION", {
111
            "names" : [["IDENTIFIER", "output_reg"]], "typ" : {
112
              "name" : ["SIMPLE_NAME", "std_logic_vector"], "const" : ["INDEX_CONSTRAINT", {
113
                "ranges" : [["RANGE_WITH_DIRECTION", {
114
                  "direction" : "downto", "from" : ["EXPRESSION", {
115
                    "args" : [["EXPRESSION", {
116
                      "id" : "-", "args" : [["EXPRESSION", {
117
                        "args" : [["CALL", ["SIMPLE_NAME", "DATA_WIDTH"]]]}
118
                      ], ["EXPRESSION", {
119
                        "args" : [["CONSTANT_VALUE", {
120
                          "value" : ["CST_LITERAL", "1"]}
121
                        ]]}
122
                      ]]}
123
                    ]]}
124
                  ], "_to" : ["EXPRESSION", {
125
                    "args" : [["EXPRESSION", {
126
                      "args" : [["CONSTANT_VALUE", {
127
                        "value" : ["CST_LITERAL", "0"]}
128
                      ]]}
129
                    ]]}
130
                  ]}
131
                ]]}
132
              ]}
133
            }
134
          ]}
135
        , {
136
          "declaration" : ["SIGNAL_DECLARATION", {
137
            "names" : [["IDENTIFIER", "output_last_reg"]], "typ" : {
138
              "name" : ["SIMPLE_NAME", "std_logic"]}
139
            }
140
          ]}
141
        , {
142
          "declaration" : ["SIGNAL_DECLARATION", {
143
            "names" : [["IDENTIFIER", "output_valid_reg"]], "typ" : {
144
              "name" : ["SIMPLE_NAME", "std_logic"]}
145
            }
146
          ]}
147
        , {
148
          "declaration" : ["SIGNAL_DECLARATION", {
149
            "names" : [["IDENTIFIER", "buffer_full"]], "typ" : {
150
              "name" : ["SIMPLE_NAME", "std_logic"]}
151
            }
152
          ]}
153
        , {
154
          "declaration" : ["SIGNAL_DECLARATION", {
155
            "names" : [["IDENTIFIER", "buffer_data"]], "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", "DATA_WIDTH"]]]}
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
        , {
180
          "declaration" : ["SIGNAL_DECLARATION", {
181
            "names" : [["IDENTIFIER", "buffer_last"]], "typ" : {
182
              "name" : ["SIMPLE_NAME", "std_logic"]}
183
            }
184
          ]}
185
        ], "ARCHITECTURE_STATEMENT_PART" : [["CONDITIONAL_SIGNAL_ASSIGNMENT", {
186
          "postponed" : false, "lhs" : ["SIMPLE_NAME", "input_accept"], "rhs" : [{
187
            "expr" : [{
188
              "value" : ["EXPRESSION", {
189
                "args" : [["EXPRESSION", {
190
                  "args" : [["EXPRESSION", {
191
                    "args" : [["EXPRESSION", {
192
                      "args" : [["CALL", ["SIMPLE_NAME", "input_accept_int"]]]}
193
                    ]]}
194
                  ]]}
195
                ]]}
196
              ]}
197
            ]}
198
          ]}
199
        ], ["CONDITIONAL_SIGNAL_ASSIGNMENT", {
200
          "postponed" : false, "lhs" : ["SIMPLE_NAME", "output"], "rhs" : [{
201
            "expr" : [{
202
              "value" : ["EXPRESSION", {
203
                "args" : [["EXPRESSION", {
204
                  "args" : [["EXPRESSION", {
205
                    "args" : [["EXPRESSION", {
206
                      "args" : [["CALL", ["SIMPLE_NAME", "output_reg"]]]}
207
                    ]]}
208
                  ]]}
209
                ]]}
210
              ]}
211
            ]}
212
          ]}
213
        ], ["CONDITIONAL_SIGNAL_ASSIGNMENT", {
214
          "postponed" : false, "lhs" : ["SIMPLE_NAME", "output_last"], "rhs" : [{
215
            "expr" : [{
216
              "value" : ["EXPRESSION", {
217
                "args" : [["EXPRESSION", {
218
                  "args" : [["EXPRESSION", {
219
                    "args" : [["EXPRESSION", {
220
                      "args" : [["CALL", ["SIMPLE_NAME", "output_last_reg"]]]}
221
                    ]]}
222
                  ]]}
223
                ]]}
224
              ]}
225
            ]}
226
          ]}
227
        ], ["CONDITIONAL_SIGNAL_ASSIGNMENT", {
228
          "postponed" : false, "lhs" : ["SIMPLE_NAME", "output_valid"], "rhs" : [{
229
            "expr" : [{
230
              "value" : ["EXPRESSION", {
231
                "args" : [["EXPRESSION", {
232
                  "args" : [["EXPRESSION", {
233
                    "args" : [["EXPRESSION", {
234
                      "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
235
                    ]]}
236
                  ]]}
237
                ]]}
238
              ]}
239
            ]}
240
          ]}
241
        ], ["PROCESS_STATEMENT", {
242
          "id" : ["IDENTIFIER", "pr_reg"], "active_sigs" : [["SIMPLE_NAME", "clk"]], "PROCESS_STATEMENT_PART" : [["IF_STATEMENT", {
243
            "if_cases" : [{
244
              "if_cond" : ["EXPRESSION", {
245
                "args" : [["EXPRESSION", {
246
                  "args" : [["EXPRESSION", {
247
                    "args" : [["EXPRESSION", {
248
                      "args" : [["CALL", ["FUNCTION_CALL", {
249
                        "id" : ["SIMPLE_NAME", "rising_edge"], "assoc_list" : [{
250
                          "actual_designator" : ["SIMPLE_NAME", "clk"]}
251
                        ]}
252
                      ]]]}
253
                    ]]}
254
                  ]]}
255
                ]]}
256
              ], "if_block" : [["IF_STATEMENT", {
257
                "if_cases" : [{
258
                  "if_cond" : ["EXPRESSION", {
259
                    "id" : "=", "args" : [["EXPRESSION", {
260
                      "args" : [["EXPRESSION", {
261
                        "args" : [["EXPRESSION", {
262
                          "args" : [["CALL", ["SIMPLE_NAME", "rst"]]]}
263
                        ]]}
264
                      ]]}
265
                    ], ["EXPRESSION", {
266
                      "args" : [["EXPRESSION", {
267
                        "args" : [["EXPRESSION", {
268
                          "args" : [["CONSTANT_VALUE", {
269
                            "value" : ["CST_LITERAL", "'1'"]}
270
                          ]]}
271
                        ]]}
272
                      ]]}
273
                    ]]}
274
                  ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
275
                    "lhs" : ["SIMPLE_NAME", "output_reg"], "rhs" : [{
276
                      "value" : ["EXPRESSION", {
277
                        "args" : [["EXPRESSION", {
278
                          "args" : [["EXPRESSION", {
279
                            "args" : [["EXPRESSION", {
280
                              "args" : [["AGGREGATE", {
281
                                "elems" : [{
282
                                  "choices" : [["OTHERS"]], "expr" : ["EXPRESSION", {
283
                                    "args" : [["EXPRESSION", {
284
                                      "args" : [["EXPRESSION", {
285
                                        "args" : [["EXPRESSION", {
286
                                          "args" : [["CONSTANT_VALUE", {
287
                                            "value" : ["CST_LITERAL", "'0'"]}
288
                                          ]]}
289
                                        ]]}
290
                                      ]]}
291
                                    ]]}
292
                                  ]}
293
                                ]}
294
                              ]]}
295
                            ]]}
296
                          ]]}
297
                        ]]}
298
                      ]}
299
                    ]}
300
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
301
                    "lhs" : ["SIMPLE_NAME", "output_last_reg"], "rhs" : [{
302
                      "value" : ["EXPRESSION", {
303
                        "args" : [["EXPRESSION", {
304
                          "args" : [["EXPRESSION", {
305
                            "args" : [["EXPRESSION", {
306
                              "args" : [["CONSTANT_VALUE", {
307
                                "value" : ["CST_LITERAL", "'0'"]}
308
                              ]]}
309
                            ]]}
310
                          ]]}
311
                        ]]}
312
                      ]}
313
                    ]}
314
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
315
                    "lhs" : ["SIMPLE_NAME", "output_valid_reg"], "rhs" : [{
316
                      "value" : ["EXPRESSION", {
317
                        "args" : [["EXPRESSION", {
318
                          "args" : [["EXPRESSION", {
319
                            "args" : [["EXPRESSION", {
320
                              "args" : [["CONSTANT_VALUE", {
321
                                "value" : ["CST_LITERAL", "'0'"]}
322
                              ]]}
323
                            ]]}
324
                          ]]}
325
                        ]]}
326
                      ]}
327
                    ]}
328
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
329
                    "lhs" : ["SIMPLE_NAME", "input_accept_int"], "rhs" : [{
330
                      "value" : ["EXPRESSION", {
331
                        "args" : [["EXPRESSION", {
332
                          "args" : [["EXPRESSION", {
333
                            "args" : [["EXPRESSION", {
334
                              "args" : [["CONSTANT_VALUE", {
335
                                "value" : ["CST_LITERAL", "'1'"]}
336
                              ]]}
337
                            ]]}
338
                          ]]}
339
                        ]]}
340
                      ]}
341
                    ]}
342
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
343
                    "lhs" : ["SIMPLE_NAME", "buffer_full"], "rhs" : [{
344
                      "value" : ["EXPRESSION", {
345
                        "args" : [["EXPRESSION", {
346
                          "args" : [["EXPRESSION", {
347
                            "args" : [["EXPRESSION", {
348
                              "args" : [["CONSTANT_VALUE", {
349
                                "value" : ["CST_LITERAL", "'0'"]}
350
                              ]]}
351
                            ]]}
352
                          ]]}
353
                        ]]}
354
                      ]}
355
                    ]}
356
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
357
                    "lhs" : ["SIMPLE_NAME", "buffer_data"], "rhs" : [{
358
                      "value" : ["EXPRESSION", {
359
                        "args" : [["EXPRESSION", {
360
                          "args" : [["EXPRESSION", {
361
                            "args" : [["EXPRESSION", {
362
                              "args" : [["AGGREGATE", {
363
                                "elems" : [{
364
                                  "choices" : [["OTHERS"]], "expr" : ["EXPRESSION", {
365
                                    "args" : [["EXPRESSION", {
366
                                      "args" : [["EXPRESSION", {
367
                                        "args" : [["EXPRESSION", {
368
                                          "args" : [["CONSTANT_VALUE", {
369
                                            "value" : ["CST_LITERAL", "'0'"]}
370
                                          ]]}
371
                                        ]]}
372
                                      ]]}
373
                                    ]]}
374
                                  ]}
375
                                ]}
376
                              ]]}
377
                            ]]}
378
                          ]]}
379
                        ]]}
380
                      ]}
381
                    ]}
382
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
383
                    "lhs" : ["SIMPLE_NAME", "buffer_last"], "rhs" : [{
384
                      "value" : ["EXPRESSION", {
385
                        "args" : [["EXPRESSION", {
386
                          "args" : [["EXPRESSION", {
387
                            "args" : [["EXPRESSION", {
388
                              "args" : [["CONSTANT_VALUE", {
389
                                "value" : ["CST_LITERAL", "'0'"]}
390
                              ]]}
391
                            ]]}
392
                          ]]}
393
                        ]]}
394
                      ]}
395
                    ]}
396
                  ]]}
397
                ], "default" : [["IF_STATEMENT", {
398
                  "if_cases" : [{
399
                    "if_cond" : ["EXPRESSION", {
400
                      "id" : "and", "args" : [["EXPRESSION", {
401
                        "id" : "and", "args" : [["EXPRESSION", {
402
                          "id" : "and", "args" : [["EXPRESSION", {
403
                            "id" : "=", "args" : [["EXPRESSION", {
404
                              "args" : [["EXPRESSION", {
405
                                "args" : [["EXPRESSION", {
406
                                  "args" : [["CALL", ["SIMPLE_NAME", "input_valid"]]]}
407
                                ]]}
408
                              ]]}
409
                            ], ["EXPRESSION", {
410
                              "args" : [["EXPRESSION", {
411
                                "args" : [["EXPRESSION", {
412
                                  "args" : [["CONSTANT_VALUE", {
413
                                    "value" : ["CST_LITERAL", "'1'"]}
414
                                  ]]}
415
                                ]]}
416
                              ]]}
417
                            ]]}
418
                          ], ["EXPRESSION", {
419
                            "id" : "=", "args" : [["EXPRESSION", {
420
                              "args" : [["EXPRESSION", {
421
                                "args" : [["EXPRESSION", {
422
                                  "args" : [["CALL", ["SIMPLE_NAME", "input_accept_int"]]]}
423
                                ]]}
424
                              ]]}
425
                            ], ["EXPRESSION", {
426
                              "args" : [["EXPRESSION", {
427
                                "args" : [["EXPRESSION", {
428
                                  "args" : [["CONSTANT_VALUE", {
429
                                    "value" : ["CST_LITERAL", "'1'"]}
430
                                  ]]}
431
                                ]]}
432
                              ]]}
433
                            ]]}
434
                          ]]}
435
                        ], ["EXPRESSION", {
436
                          "id" : "=", "args" : [["EXPRESSION", {
437
                            "args" : [["EXPRESSION", {
438
                              "args" : [["EXPRESSION", {
439
                                "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
440
                              ]]}
441
                            ]]}
442
                          ], ["EXPRESSION", {
443
                            "args" : [["EXPRESSION", {
444
                              "args" : [["EXPRESSION", {
445
                                "args" : [["CONSTANT_VALUE", {
446
                                  "value" : ["CST_LITERAL", "'1'"]}
447
                                ]]}
448
                              ]]}
449
                            ]]}
450
                          ]]}
451
                        ]]}
452
                      ], ["EXPRESSION", {
453
                        "id" : "=", "args" : [["EXPRESSION", {
454
                          "args" : [["EXPRESSION", {
455
                            "args" : [["EXPRESSION", {
456
                              "args" : [["CALL", ["SIMPLE_NAME", "output_accept"]]]}
457
                            ]]}
458
                          ]]}
459
                        ], ["EXPRESSION", {
460
                          "args" : [["EXPRESSION", {
461
                            "args" : [["EXPRESSION", {
462
                              "args" : [["CONSTANT_VALUE", {
463
                                "value" : ["CST_LITERAL", "'0'"]}
464
                              ]]}
465
                            ]]}
466
                          ]]}
467
                        ]]}
468
                      ]]}
469
                    ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
470
                      "lhs" : ["SIMPLE_NAME", "buffer_data"], "rhs" : [{
471
                        "value" : ["EXPRESSION", {
472
                          "args" : [["EXPRESSION", {
473
                            "args" : [["EXPRESSION", {
474
                              "args" : [["EXPRESSION", {
475
                                "args" : [["CALL", ["SIMPLE_NAME", "input"]]]}
476
                              ]]}
477
                            ]]}
478
                          ]]}
479
                        ]}
480
                      ]}
481
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
482
                      "lhs" : ["SIMPLE_NAME", "buffer_last"], "rhs" : [{
483
                        "value" : ["EXPRESSION", {
484
                          "args" : [["EXPRESSION", {
485
                            "args" : [["EXPRESSION", {
486
                              "args" : [["EXPRESSION", {
487
                                "args" : [["CALL", ["SIMPLE_NAME", "input_last"]]]}
488
                              ]]}
489
                            ]]}
490
                          ]]}
491
                        ]}
492
                      ]}
493
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
494
                      "lhs" : ["SIMPLE_NAME", "buffer_full"], "rhs" : [{
495
                        "value" : ["EXPRESSION", {
496
                          "args" : [["EXPRESSION", {
497
                            "args" : [["EXPRESSION", {
498
                              "args" : [["EXPRESSION", {
499
                                "args" : [["CONSTANT_VALUE", {
500
                                  "value" : ["CST_LITERAL", "'1'"]}
501
                                ]]}
502
                              ]]}
503
                            ]]}
504
                          ]]}
505
                        ]}
506
                      ]}
507
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
508
                      "lhs" : ["SIMPLE_NAME", "input_accept_int"], "rhs" : [{
509
                        "value" : ["EXPRESSION", {
510
                          "args" : [["EXPRESSION", {
511
                            "args" : [["EXPRESSION", {
512
                              "args" : [["EXPRESSION", {
513
                                "args" : [["CONSTANT_VALUE", {
514
                                  "value" : ["CST_LITERAL", "'0'"]}
515
                                ]]}
516
                              ]]}
517
                            ]]}
518
                          ]]}
519
                        ]}
520
                      ]}
521
                    ]]}
522
                  ]}
523
                ], ["IF_STATEMENT", {
524
                  "if_cases" : [{
525
                    "if_cond" : ["EXPRESSION", {
526
                      "id" : "and", "args" : [["EXPRESSION", {
527
                        "id" : "and", "args" : [["EXPRESSION", {
528
                          "id" : "=", "args" : [["EXPRESSION", {
529
                            "args" : [["EXPRESSION", {
530
                              "args" : [["EXPRESSION", {
531
                                "args" : [["CALL", ["SIMPLE_NAME", "output_accept"]]]}
532
                              ]]}
533
                            ]]}
534
                          ], ["EXPRESSION", {
535
                            "args" : [["EXPRESSION", {
536
                              "args" : [["EXPRESSION", {
537
                                "args" : [["CONSTANT_VALUE", {
538
                                  "value" : ["CST_LITERAL", "'1'"]}
539
                                ]]}
540
                              ]]}
541
                            ]]}
542
                          ]]}
543
                        ], ["EXPRESSION", {
544
                          "id" : "=", "args" : [["EXPRESSION", {
545
                            "args" : [["EXPRESSION", {
546
                              "args" : [["EXPRESSION", {
547
                                "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
548
                              ]]}
549
                            ]]}
550
                          ], ["EXPRESSION", {
551
                            "args" : [["EXPRESSION", {
552
                              "args" : [["EXPRESSION", {
553
                                "args" : [["CONSTANT_VALUE", {
554
                                  "value" : ["CST_LITERAL", "'1'"]}
555
                                ]]}
556
                              ]]}
557
                            ]]}
558
                          ]]}
559
                        ]]}
560
                      ], ["EXPRESSION", {
561
                        "id" : "=", "args" : [["EXPRESSION", {
562
                          "args" : [["EXPRESSION", {
563
                            "args" : [["EXPRESSION", {
564
                              "args" : [["CALL", ["SIMPLE_NAME", "buffer_full"]]]}
565
                            ]]}
566
                          ]]}
567
                        ], ["EXPRESSION", {
568
                          "args" : [["EXPRESSION", {
569
                            "args" : [["EXPRESSION", {
570
                              "args" : [["CONSTANT_VALUE", {
571
                                "value" : ["CST_LITERAL", "'1'"]}
572
                              ]]}
573
                            ]]}
574
                          ]]}
575
                        ]]}
576
                      ]]}
577
                    ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
578
                      "lhs" : ["SIMPLE_NAME", "output_reg"], "rhs" : [{
579
                        "value" : ["EXPRESSION", {
580
                          "args" : [["EXPRESSION", {
581
                            "args" : [["EXPRESSION", {
582
                              "args" : [["EXPRESSION", {
583
                                "args" : [["CALL", ["SIMPLE_NAME", "buffer_data"]]]}
584
                              ]]}
585
                            ]]}
586
                          ]]}
587
                        ]}
588
                      ]}
589
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
590
                      "lhs" : ["SIMPLE_NAME", "output_last_reg"], "rhs" : [{
591
                        "value" : ["EXPRESSION", {
592
                          "args" : [["EXPRESSION", {
593
                            "args" : [["EXPRESSION", {
594
                              "args" : [["EXPRESSION", {
595
                                "args" : [["CALL", ["SIMPLE_NAME", "buffer_last"]]]}
596
                              ]]}
597
                            ]]}
598
                          ]]}
599
                        ]}
600
                      ]}
601
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
602
                      "lhs" : ["SIMPLE_NAME", "output_valid_reg"], "rhs" : [{
603
                        "value" : ["EXPRESSION", {
604
                          "args" : [["EXPRESSION", {
605
                            "args" : [["EXPRESSION", {
606
                              "args" : [["EXPRESSION", {
607
                                "args" : [["CONSTANT_VALUE", {
608
                                  "value" : ["CST_LITERAL", "'1'"]}
609
                                ]]}
610
                              ]]}
611
                            ]]}
612
                          ]]}
613
                        ]}
614
                      ]}
615
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
616
                      "lhs" : ["SIMPLE_NAME", "buffer_full"], "rhs" : [{
617
                        "value" : ["EXPRESSION", {
618
                          "args" : [["EXPRESSION", {
619
                            "args" : [["EXPRESSION", {
620
                              "args" : [["EXPRESSION", {
621
                                "args" : [["CONSTANT_VALUE", {
622
                                  "value" : ["CST_LITERAL", "'0'"]}
623
                                ]]}
624
                              ]]}
625
                            ]]}
626
                          ]]}
627
                        ]}
628
                      ]}
629
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
630
                      "lhs" : ["SIMPLE_NAME", "input_accept_int"], "rhs" : [{
631
                        "value" : ["EXPRESSION", {
632
                          "args" : [["EXPRESSION", {
633
                            "args" : [["EXPRESSION", {
634
                              "args" : [["EXPRESSION", {
635
                                "args" : [["CONSTANT_VALUE", {
636
                                  "value" : ["CST_LITERAL", "'1'"]}
637
                                ]]}
638
                              ]]}
639
                            ]]}
640
                          ]]}
641
                        ]}
642
                      ]}
643
                    ]]}
644
                  , {
645
                    "if_cond" : ["EXPRESSION", {
646
                      "id" : "or", "args" : [["EXPRESSION", {
647
                        "args" : [["EXPRESSION", {
648
                          "args" : [["EXPRESSION", {
649
                            "args" : [["EXPRESSION", {
650
                              "args" : [["EXPRESSION", {
651
                                "id" : "and", "args" : [["EXPRESSION", {
652
                                  "id" : "=", "args" : [["EXPRESSION", {
653
                                    "args" : [["EXPRESSION", {
654
                                      "args" : [["EXPRESSION", {
655
                                        "args" : [["CALL", ["SIMPLE_NAME", "output_accept"]]]}
656
                                      ]]}
657
                                    ]]}
658
                                  ], ["EXPRESSION", {
659
                                    "args" : [["EXPRESSION", {
660
                                      "args" : [["EXPRESSION", {
661
                                        "args" : [["CONSTANT_VALUE", {
662
                                          "value" : ["CST_LITERAL", "'1'"]}
663
                                        ]]}
664
                                      ]]}
665
                                    ]]}
666
                                  ]]}
667
                                ], ["EXPRESSION", {
668
                                  "id" : "=", "args" : [["EXPRESSION", {
669
                                    "args" : [["EXPRESSION", {
670
                                      "args" : [["EXPRESSION", {
671
                                        "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
672
                                      ]]}
673
                                    ]]}
674
                                  ], ["EXPRESSION", {
675
                                    "args" : [["EXPRESSION", {
676
                                      "args" : [["EXPRESSION", {
677
                                        "args" : [["CONSTANT_VALUE", {
678
                                          "value" : ["CST_LITERAL", "'1'"]}
679
                                        ]]}
680
                                      ]]}
681
                                    ]]}
682
                                  ]]}
683
                                ]]}
684
                              ]]}
685
                            ]]}
686
                          ]]}
687
                        ]]}
688
                      ], ["EXPRESSION", {
689
                        "id" : "=", "args" : [["EXPRESSION", {
690
                          "args" : [["EXPRESSION", {
691
                            "args" : [["EXPRESSION", {
692
                              "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
693
                            ]]}
694
                          ]]}
695
                        ], ["EXPRESSION", {
696
                          "args" : [["EXPRESSION", {
697
                            "args" : [["EXPRESSION", {
698
                              "args" : [["CONSTANT_VALUE", {
699
                                "value" : ["CST_LITERAL", "'0'"]}
700
                              ]]}
701
                            ]]}
702
                          ]]}
703
                        ]]}
704
                      ]]}
705
                    ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
706
                      "lhs" : ["SIMPLE_NAME", "output_reg"], "rhs" : [{
707
                        "value" : ["EXPRESSION", {
708
                          "args" : [["EXPRESSION", {
709
                            "args" : [["EXPRESSION", {
710
                              "args" : [["EXPRESSION", {
711
                                "args" : [["CALL", ["SIMPLE_NAME", "input"]]]}
712
                              ]]}
713
                            ]]}
714
                          ]]}
715
                        ]}
716
                      ]}
717
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
718
                      "lhs" : ["SIMPLE_NAME", "output_last_reg"], "rhs" : [{
719
                        "value" : ["EXPRESSION", {
720
                          "args" : [["EXPRESSION", {
721
                            "args" : [["EXPRESSION", {
722
                              "args" : [["EXPRESSION", {
723
                                "args" : [["CALL", ["SIMPLE_NAME", "input_last"]]]}
724
                              ]]}
725
                            ]]}
726
                          ]]}
727
                        ]}
728
                      ]}
729
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
730
                      "lhs" : ["SIMPLE_NAME", "output_valid_reg"], "rhs" : [{
731
                        "value" : ["EXPRESSION", {
732
                          "args" : [["EXPRESSION", {
733
                            "args" : [["EXPRESSION", {
734
                              "args" : [["EXPRESSION", {
735
                                "args" : [["CALL", ["SIMPLE_NAME", "input_valid"]]]}
736
                              ]]}
737
                            ]]}
738
                          ]]}
739
                        ]}
740
                      ]}
741
                    ]]}
742
                  ]}
743
                ]]}
744
              ]]}
745
            ]}
746
          ]]}
747
        ]]}
748
      ]}
749
    ]}
750
  }