Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (33.4 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", ["INDEXED_NAME", {
249
                        "id" : ["SIMPLE_NAME", "rising_edge"], "exprs" : [["EXPRESSION", {
250
                          "args" : [["EXPRESSION", {
251
                            "args" : [["EXPRESSION", {
252
                              "args" : [["EXPRESSION", {
253
                                "args" : [["CALL", ["SIMPLE_NAME", "clk"]]]}
254
                              ]]}
255
                            ]]}
256
                          ]]}
257
                        ]]}
258
                      ]]]}
259
                    ]]}
260
                  ]]}
261
                ]]}
262
              ], "if_block" : [["IF_STATEMENT", {
263
                "if_cases" : [{
264
                  "if_cond" : ["EXPRESSION", {
265
                    "id" : "=", "args" : [["EXPRESSION", {
266
                      "args" : [["EXPRESSION", {
267
                        "args" : [["EXPRESSION", {
268
                          "args" : [["CALL", ["SIMPLE_NAME", "rst"]]]}
269
                        ]]}
270
                      ]]}
271
                    ], ["EXPRESSION", {
272
                      "args" : [["EXPRESSION", {
273
                        "args" : [["EXPRESSION", {
274
                          "args" : [["CONSTANT_VALUE", {
275
                            "value" : ["CST_LITERAL", "'1'"]}
276
                          ]]}
277
                        ]]}
278
                      ]]}
279
                    ]]}
280
                  ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
281
                    "lhs" : ["SIMPLE_NAME", "output_reg"], "rhs" : [{
282
                      "value" : ["EXPRESSION", {
283
                        "args" : [["EXPRESSION", {
284
                          "args" : [["EXPRESSION", {
285
                            "args" : [["EXPRESSION", {
286
                              "args" : [["AGGREGATE", {
287
                                "elems" : [{
288
                                  "choices" : [["OTHERS"]], "expr" : ["EXPRESSION", {
289
                                    "args" : [["EXPRESSION", {
290
                                      "args" : [["EXPRESSION", {
291
                                        "args" : [["EXPRESSION", {
292
                                          "args" : [["CONSTANT_VALUE", {
293
                                            "value" : ["CST_LITERAL", "'0'"]}
294
                                          ]]}
295
                                        ]]}
296
                                      ]]}
297
                                    ]]}
298
                                  ]}
299
                                ]}
300
                              ]]}
301
                            ]]}
302
                          ]]}
303
                        ]]}
304
                      ]}
305
                    ]}
306
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
307
                    "lhs" : ["SIMPLE_NAME", "output_last_reg"], "rhs" : [{
308
                      "value" : ["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
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
321
                    "lhs" : ["SIMPLE_NAME", "output_valid_reg"], "rhs" : [{
322
                      "value" : ["EXPRESSION", {
323
                        "args" : [["EXPRESSION", {
324
                          "args" : [["EXPRESSION", {
325
                            "args" : [["EXPRESSION", {
326
                              "args" : [["CONSTANT_VALUE", {
327
                                "value" : ["CST_LITERAL", "'0'"]}
328
                              ]]}
329
                            ]]}
330
                          ]]}
331
                        ]]}
332
                      ]}
333
                    ]}
334
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
335
                    "lhs" : ["SIMPLE_NAME", "input_accept_int"], "rhs" : [{
336
                      "value" : ["EXPRESSION", {
337
                        "args" : [["EXPRESSION", {
338
                          "args" : [["EXPRESSION", {
339
                            "args" : [["EXPRESSION", {
340
                              "args" : [["CONSTANT_VALUE", {
341
                                "value" : ["CST_LITERAL", "'1'"]}
342
                              ]]}
343
                            ]]}
344
                          ]]}
345
                        ]]}
346
                      ]}
347
                    ]}
348
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
349
                    "lhs" : ["SIMPLE_NAME", "buffer_full"], "rhs" : [{
350
                      "value" : ["EXPRESSION", {
351
                        "args" : [["EXPRESSION", {
352
                          "args" : [["EXPRESSION", {
353
                            "args" : [["EXPRESSION", {
354
                              "args" : [["CONSTANT_VALUE", {
355
                                "value" : ["CST_LITERAL", "'0'"]}
356
                              ]]}
357
                            ]]}
358
                          ]]}
359
                        ]]}
360
                      ]}
361
                    ]}
362
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
363
                    "lhs" : ["SIMPLE_NAME", "buffer_data"], "rhs" : [{
364
                      "value" : ["EXPRESSION", {
365
                        "args" : [["EXPRESSION", {
366
                          "args" : [["EXPRESSION", {
367
                            "args" : [["EXPRESSION", {
368
                              "args" : [["AGGREGATE", {
369
                                "elems" : [{
370
                                  "choices" : [["OTHERS"]], "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
                              ]]}
383
                            ]]}
384
                          ]]}
385
                        ]]}
386
                      ]}
387
                    ]}
388
                  ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
389
                    "lhs" : ["SIMPLE_NAME", "buffer_last"], "rhs" : [{
390
                      "value" : ["EXPRESSION", {
391
                        "args" : [["EXPRESSION", {
392
                          "args" : [["EXPRESSION", {
393
                            "args" : [["EXPRESSION", {
394
                              "args" : [["CONSTANT_VALUE", {
395
                                "value" : ["CST_LITERAL", "'0'"]}
396
                              ]]}
397
                            ]]}
398
                          ]]}
399
                        ]]}
400
                      ]}
401
                    ]}
402
                  ]]}
403
                ], "default" : [["IF_STATEMENT", {
404
                  "if_cases" : [{
405
                    "if_cond" : ["EXPRESSION", {
406
                      "id" : "and", "args" : [["EXPRESSION", {
407
                        "id" : "and", "args" : [["EXPRESSION", {
408
                          "id" : "and", "args" : [["EXPRESSION", {
409
                            "id" : "=", "args" : [["EXPRESSION", {
410
                              "args" : [["EXPRESSION", {
411
                                "args" : [["EXPRESSION", {
412
                                  "args" : [["CALL", ["SIMPLE_NAME", "input_valid"]]]}
413
                                ]]}
414
                              ]]}
415
                            ], ["EXPRESSION", {
416
                              "args" : [["EXPRESSION", {
417
                                "args" : [["EXPRESSION", {
418
                                  "args" : [["CONSTANT_VALUE", {
419
                                    "value" : ["CST_LITERAL", "'1'"]}
420
                                  ]]}
421
                                ]]}
422
                              ]]}
423
                            ]]}
424
                          ], ["EXPRESSION", {
425
                            "id" : "=", "args" : [["EXPRESSION", {
426
                              "args" : [["EXPRESSION", {
427
                                "args" : [["EXPRESSION", {
428
                                  "args" : [["CALL", ["SIMPLE_NAME", "input_accept_int"]]]}
429
                                ]]}
430
                              ]]}
431
                            ], ["EXPRESSION", {
432
                              "args" : [["EXPRESSION", {
433
                                "args" : [["EXPRESSION", {
434
                                  "args" : [["CONSTANT_VALUE", {
435
                                    "value" : ["CST_LITERAL", "'1'"]}
436
                                  ]]}
437
                                ]]}
438
                              ]]}
439
                            ]]}
440
                          ]]}
441
                        ], ["EXPRESSION", {
442
                          "id" : "=", "args" : [["EXPRESSION", {
443
                            "args" : [["EXPRESSION", {
444
                              "args" : [["EXPRESSION", {
445
                                "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
446
                              ]]}
447
                            ]]}
448
                          ], ["EXPRESSION", {
449
                            "args" : [["EXPRESSION", {
450
                              "args" : [["EXPRESSION", {
451
                                "args" : [["CONSTANT_VALUE", {
452
                                  "value" : ["CST_LITERAL", "'1'"]}
453
                                ]]}
454
                              ]]}
455
                            ]]}
456
                          ]]}
457
                        ]]}
458
                      ], ["EXPRESSION", {
459
                        "id" : "=", "args" : [["EXPRESSION", {
460
                          "args" : [["EXPRESSION", {
461
                            "args" : [["EXPRESSION", {
462
                              "args" : [["CALL", ["SIMPLE_NAME", "output_accept"]]]}
463
                            ]]}
464
                          ]]}
465
                        ], ["EXPRESSION", {
466
                          "args" : [["EXPRESSION", {
467
                            "args" : [["EXPRESSION", {
468
                              "args" : [["CONSTANT_VALUE", {
469
                                "value" : ["CST_LITERAL", "'0'"]}
470
                              ]]}
471
                            ]]}
472
                          ]]}
473
                        ]]}
474
                      ]]}
475
                    ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
476
                      "lhs" : ["SIMPLE_NAME", "buffer_data"], "rhs" : [{
477
                        "value" : ["EXPRESSION", {
478
                          "args" : [["EXPRESSION", {
479
                            "args" : [["EXPRESSION", {
480
                              "args" : [["EXPRESSION", {
481
                                "args" : [["CALL", ["SIMPLE_NAME", "input"]]]}
482
                              ]]}
483
                            ]]}
484
                          ]]}
485
                        ]}
486
                      ]}
487
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
488
                      "lhs" : ["SIMPLE_NAME", "buffer_last"], "rhs" : [{
489
                        "value" : ["EXPRESSION", {
490
                          "args" : [["EXPRESSION", {
491
                            "args" : [["EXPRESSION", {
492
                              "args" : [["EXPRESSION", {
493
                                "args" : [["CALL", ["SIMPLE_NAME", "input_last"]]]}
494
                              ]]}
495
                            ]]}
496
                          ]]}
497
                        ]}
498
                      ]}
499
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
500
                      "lhs" : ["SIMPLE_NAME", "buffer_full"], "rhs" : [{
501
                        "value" : ["EXPRESSION", {
502
                          "args" : [["EXPRESSION", {
503
                            "args" : [["EXPRESSION", {
504
                              "args" : [["EXPRESSION", {
505
                                "args" : [["CONSTANT_VALUE", {
506
                                  "value" : ["CST_LITERAL", "'1'"]}
507
                                ]]}
508
                              ]]}
509
                            ]]}
510
                          ]]}
511
                        ]}
512
                      ]}
513
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
514
                      "lhs" : ["SIMPLE_NAME", "input_accept_int"], "rhs" : [{
515
                        "value" : ["EXPRESSION", {
516
                          "args" : [["EXPRESSION", {
517
                            "args" : [["EXPRESSION", {
518
                              "args" : [["EXPRESSION", {
519
                                "args" : [["CONSTANT_VALUE", {
520
                                  "value" : ["CST_LITERAL", "'0'"]}
521
                                ]]}
522
                              ]]}
523
                            ]]}
524
                          ]]}
525
                        ]}
526
                      ]}
527
                    ]]}
528
                  ]}
529
                ], ["IF_STATEMENT", {
530
                  "if_cases" : [{
531
                    "if_cond" : ["EXPRESSION", {
532
                      "id" : "and", "args" : [["EXPRESSION", {
533
                        "id" : "and", "args" : [["EXPRESSION", {
534
                          "id" : "=", "args" : [["EXPRESSION", {
535
                            "args" : [["EXPRESSION", {
536
                              "args" : [["EXPRESSION", {
537
                                "args" : [["CALL", ["SIMPLE_NAME", "output_accept"]]]}
538
                              ]]}
539
                            ]]}
540
                          ], ["EXPRESSION", {
541
                            "args" : [["EXPRESSION", {
542
                              "args" : [["EXPRESSION", {
543
                                "args" : [["CONSTANT_VALUE", {
544
                                  "value" : ["CST_LITERAL", "'1'"]}
545
                                ]]}
546
                              ]]}
547
                            ]]}
548
                          ]]}
549
                        ], ["EXPRESSION", {
550
                          "id" : "=", "args" : [["EXPRESSION", {
551
                            "args" : [["EXPRESSION", {
552
                              "args" : [["EXPRESSION", {
553
                                "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
554
                              ]]}
555
                            ]]}
556
                          ], ["EXPRESSION", {
557
                            "args" : [["EXPRESSION", {
558
                              "args" : [["EXPRESSION", {
559
                                "args" : [["CONSTANT_VALUE", {
560
                                  "value" : ["CST_LITERAL", "'1'"]}
561
                                ]]}
562
                              ]]}
563
                            ]]}
564
                          ]]}
565
                        ]]}
566
                      ], ["EXPRESSION", {
567
                        "id" : "=", "args" : [["EXPRESSION", {
568
                          "args" : [["EXPRESSION", {
569
                            "args" : [["EXPRESSION", {
570
                              "args" : [["CALL", ["SIMPLE_NAME", "buffer_full"]]]}
571
                            ]]}
572
                          ]]}
573
                        ], ["EXPRESSION", {
574
                          "args" : [["EXPRESSION", {
575
                            "args" : [["EXPRESSION", {
576
                              "args" : [["CONSTANT_VALUE", {
577
                                "value" : ["CST_LITERAL", "'1'"]}
578
                              ]]}
579
                            ]]}
580
                          ]]}
581
                        ]]}
582
                      ]]}
583
                    ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
584
                      "lhs" : ["SIMPLE_NAME", "output_reg"], "rhs" : [{
585
                        "value" : ["EXPRESSION", {
586
                          "args" : [["EXPRESSION", {
587
                            "args" : [["EXPRESSION", {
588
                              "args" : [["EXPRESSION", {
589
                                "args" : [["CALL", ["SIMPLE_NAME", "buffer_data"]]]}
590
                              ]]}
591
                            ]]}
592
                          ]]}
593
                        ]}
594
                      ]}
595
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
596
                      "lhs" : ["SIMPLE_NAME", "output_last_reg"], "rhs" : [{
597
                        "value" : ["EXPRESSION", {
598
                          "args" : [["EXPRESSION", {
599
                            "args" : [["EXPRESSION", {
600
                              "args" : [["EXPRESSION", {
601
                                "args" : [["CALL", ["SIMPLE_NAME", "buffer_last"]]]}
602
                              ]]}
603
                            ]]}
604
                          ]]}
605
                        ]}
606
                      ]}
607
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
608
                      "lhs" : ["SIMPLE_NAME", "output_valid_reg"], "rhs" : [{
609
                        "value" : ["EXPRESSION", {
610
                          "args" : [["EXPRESSION", {
611
                            "args" : [["EXPRESSION", {
612
                              "args" : [["EXPRESSION", {
613
                                "args" : [["CONSTANT_VALUE", {
614
                                  "value" : ["CST_LITERAL", "'1'"]}
615
                                ]]}
616
                              ]]}
617
                            ]]}
618
                          ]]}
619
                        ]}
620
                      ]}
621
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
622
                      "lhs" : ["SIMPLE_NAME", "buffer_full"], "rhs" : [{
623
                        "value" : ["EXPRESSION", {
624
                          "args" : [["EXPRESSION", {
625
                            "args" : [["EXPRESSION", {
626
                              "args" : [["EXPRESSION", {
627
                                "args" : [["CONSTANT_VALUE", {
628
                                  "value" : ["CST_LITERAL", "'0'"]}
629
                                ]]}
630
                              ]]}
631
                            ]]}
632
                          ]]}
633
                        ]}
634
                      ]}
635
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
636
                      "lhs" : ["SIMPLE_NAME", "input_accept_int"], "rhs" : [{
637
                        "value" : ["EXPRESSION", {
638
                          "args" : [["EXPRESSION", {
639
                            "args" : [["EXPRESSION", {
640
                              "args" : [["EXPRESSION", {
641
                                "args" : [["CONSTANT_VALUE", {
642
                                  "value" : ["CST_LITERAL", "'1'"]}
643
                                ]]}
644
                              ]]}
645
                            ]]}
646
                          ]]}
647
                        ]}
648
                      ]}
649
                    ]]}
650
                  , {
651
                    "if_cond" : ["EXPRESSION", {
652
                      "id" : "or", "args" : [["EXPRESSION", {
653
                        "args" : [["EXPRESSION", {
654
                          "args" : [["EXPRESSION", {
655
                            "args" : [["EXPRESSION", {
656
                              "args" : [["EXPRESSION", {
657
                                "id" : "and", "args" : [["EXPRESSION", {
658
                                  "id" : "=", "args" : [["EXPRESSION", {
659
                                    "args" : [["EXPRESSION", {
660
                                      "args" : [["EXPRESSION", {
661
                                        "args" : [["CALL", ["SIMPLE_NAME", "output_accept"]]]}
662
                                      ]]}
663
                                    ]]}
664
                                  ], ["EXPRESSION", {
665
                                    "args" : [["EXPRESSION", {
666
                                      "args" : [["EXPRESSION", {
667
                                        "args" : [["CONSTANT_VALUE", {
668
                                          "value" : ["CST_LITERAL", "'1'"]}
669
                                        ]]}
670
                                      ]]}
671
                                    ]]}
672
                                  ]]}
673
                                ], ["EXPRESSION", {
674
                                  "id" : "=", "args" : [["EXPRESSION", {
675
                                    "args" : [["EXPRESSION", {
676
                                      "args" : [["EXPRESSION", {
677
                                        "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
678
                                      ]]}
679
                                    ]]}
680
                                  ], ["EXPRESSION", {
681
                                    "args" : [["EXPRESSION", {
682
                                      "args" : [["EXPRESSION", {
683
                                        "args" : [["CONSTANT_VALUE", {
684
                                          "value" : ["CST_LITERAL", "'1'"]}
685
                                        ]]}
686
                                      ]]}
687
                                    ]]}
688
                                  ]]}
689
                                ]]}
690
                              ]]}
691
                            ]]}
692
                          ]]}
693
                        ]]}
694
                      ], ["EXPRESSION", {
695
                        "id" : "=", "args" : [["EXPRESSION", {
696
                          "args" : [["EXPRESSION", {
697
                            "args" : [["EXPRESSION", {
698
                              "args" : [["CALL", ["SIMPLE_NAME", "output_valid_reg"]]]}
699
                            ]]}
700
                          ]]}
701
                        ], ["EXPRESSION", {
702
                          "args" : [["EXPRESSION", {
703
                            "args" : [["EXPRESSION", {
704
                              "args" : [["CONSTANT_VALUE", {
705
                                "value" : ["CST_LITERAL", "'0'"]}
706
                              ]]}
707
                            ]]}
708
                          ]]}
709
                        ]]}
710
                      ]]}
711
                    ], "if_block" : [["SIGNAL_ASSIGNMENT_STATEMENT", {
712
                      "lhs" : ["SIMPLE_NAME", "output_reg"], "rhs" : [{
713
                        "value" : ["EXPRESSION", {
714
                          "args" : [["EXPRESSION", {
715
                            "args" : [["EXPRESSION", {
716
                              "args" : [["EXPRESSION", {
717
                                "args" : [["CALL", ["SIMPLE_NAME", "input"]]]}
718
                              ]]}
719
                            ]]}
720
                          ]]}
721
                        ]}
722
                      ]}
723
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
724
                      "lhs" : ["SIMPLE_NAME", "output_last_reg"], "rhs" : [{
725
                        "value" : ["EXPRESSION", {
726
                          "args" : [["EXPRESSION", {
727
                            "args" : [["EXPRESSION", {
728
                              "args" : [["EXPRESSION", {
729
                                "args" : [["CALL", ["SIMPLE_NAME", "input_last"]]]}
730
                              ]]}
731
                            ]]}
732
                          ]]}
733
                        ]}
734
                      ]}
735
                    ], ["SIGNAL_ASSIGNMENT_STATEMENT", {
736
                      "lhs" : ["SIMPLE_NAME", "output_valid_reg"], "rhs" : [{
737
                        "value" : ["EXPRESSION", {
738
                          "args" : [["EXPRESSION", {
739
                            "args" : [["EXPRESSION", {
740
                              "args" : [["EXPRESSION", {
741
                                "args" : [["CALL", ["SIMPLE_NAME", "input_valid"]]]}
742
                              ]]}
743
                            ]]}
744
                          ]]}
745
                        ]}
746
                      ]}
747
                    ]]}
748
                  ]}
749
                ]]}
750
              ]]}
751
            ]}
752
          ]]}
753
        ]]}
754
      ]}
755
    ]}
756
  }