Type:

name: signed

TypeVector:

name: integer
base: signed
range:
- 31
- 0

Type:

name: void

Type:

name: bit

SystemT:

name: with_afterI::T_
inputs:
- SignalI:
    name: clk
    type: bit
- SignalI:
    name: rst
    type: bit
outputs:
- SignalI:
    name: timeout
    type: bit
inouts: []
scope:
  Scope:
    name: ''
    scopes: []
    inners: []
    systemIs: []
    connections: []
    behaviors:
    - Behavior:
        events:
        - Event:
            type: posedge
            ref:
              RefName:
                type: bit
                ref:
                  RefThis:
                    type: void
                name: clk
        - Event:
            type: posedge
            ref:
              RefName:
                type: bit
                ref:
                  RefThis:
                    type: void
                name: rst
        block:
          Block:
            mode: par
            name: ''
            inners:
            - SignalI:
                name: ":0"
                type:
                  TypeVector:
                    name: ''
                    base: bit
                    range:
                    - 30
                    - 0
            statements:
            - Transmit:
                left:
                  RefName:
                    type: bit
                    ref:
                      RefThis:
                        type: void
                    name: timeout
                right:
                  Value:
                    type: integer
                    content: 0
            - Block:
                mode: seq
                name: ''
                inners: []
                statements:
                - If:
                    condition:
                      Binary:
                        type:
                          TypeVector:
                            name: ''
                            base: signed
                            range:
                            - 0
                            - 31
                        operator: "=="
                        left:
                          RefName:
                            type: bit
                            ref:
                              RefThis:
                                type: void
                            name: rst
                        right:
                          Value:
                            type: integer
                            content: 1
                    'yes':
                      Block:
                        mode: seq
                        name: ''
                        inners: []
                        statements:
                        - Transmit:
                            left:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 30
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: ":0"
                            right:
                              Value:
                                type: integer
                                content: 100
                    'no':
                      Block:
                        mode: seq
                        name: ''
                        inners: []
                        statements:
                        - Transmit:
                            left:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 30
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: ":0"
                            right:
                              Binary:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: signed
                                    range:
                                    - 32
                                    - 0
                                operator: "-"
                                left:
                                  RefName:
                                    type:
                                      TypeVector:
                                        name: ''
                                        base: bit
                                        range:
                                        - 30
                                        - 0
                                    ref:
                                      RefThis:
                                        type: void
                                    name: ":0"
                                right:
                                  Value:
                                    type: integer
                                    content: 1
                    noifs:
                    - - Binary:
                          type:
                            TypeVector:
                              name: ''
                              base: signed
                              range:
                              - 31
                              - 0
                          operator: "=="
                          left:
                            RefName:
                              type:
                                TypeVector:
                                  name: ''
                                  base: bit
                                  range:
                                  - 30
                                  - 0
                              ref:
                                RefThis:
                                  type: void
                              name: ":0"
                          right:
                            Value:
                              type: integer
                              content: 0
                      - Block:
                          mode: seq
                          name: ''
                          inners: []
                          statements:
                          - Transmit:
                              left:
                                RefName:
                                  type: bit
                                  ref:
                                    RefThis:
                                      type: void
                                  name: timeout
                              right:
                                Value:
                                  type: integer
                                  content: 1