Type:

name: signed

TypeVector:

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

Type:

name: void

Type:

name: bit

SystemT:

name: shift16I::T_
inputs:
- SignalI:
    name: clk
    type: bit
- SignalI:
    name: rst
    type: bit
- SignalI:
    name: din
    type: bit
outputs:
- SignalI:
    name: dout
    type: bit
inouts: []
scope:
  Scope:
    name: ''
    scopes: []
    inners:
    - SignalI:
        name: reg
        type:
          TypeVector:
            name: ''
            base: bit
            range:
            - 15
            - 0
    systemIs: []
    connections:
    - Connection:
        left:
          RefName:
            type: bit
            ref:
              RefThis:
                type: void
            name: dout
        right:
          RefIndex:
            type: bit
            ref:
              RefName:
                type:
                  TypeVector:
                    name: ''
                    base: bit
                    range:
                    - 15
                    - 0
                ref:
                  RefThis:
                    type: void
                name: reg
            index:
              Value:
                type: integer
                content: 15
    behaviors:
    - Behavior:
        events:
        - Event:
            type: posedge
            ref:
              RefName:
                type: bit
                ref:
                  RefThis:
                    type: void
                name: clk
        block:
          Block:
            mode: par
            name: ''
            inners: []
            statements:
            - If:
                condition:
                  RefName:
                    type: bit
                    ref:
                      RefThis:
                        type: void
                    name: rst
                'yes':
                  Block:
                    mode: par
                    name: ''
                    inners: []
                    statements:
                    - Transmit:
                        left:
                          RefName:
                            type:
                              TypeVector:
                                name: ''
                                base: bit
                                range:
                                - 15
                                - 0
                            ref:
                              RefThis:
                                type: void
                            name: reg
                        right:
                          Value:
                            type: integer
                            content: 0
                'no':
                  Block:
                    mode: seq
                    name: ''
                    inners: []
                    statements:
                    - Transmit:
                        left:
                          RefIndex:
                            type: bit
                            ref:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 15
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: reg
                            index:
                              Value:
                                type: integer
                                content: 0
                        right:
                          RefName:
                            type: bit
                            ref:
                              RefThis:
                                type: void
                            name: din
                    - Transmit:
                        left:
                          RefRange:
                            type:
                              TypeVector:
                                name: ''
                                base: bit
                                range:
                                - Value:
                                    type: integer
                                    content: 15
                                - Value:
                                    type: integer
                                    content: 1
                            ref:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 15
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: reg
                            range:
                            - Value:
                                type: integer
                                content: 15
                            - Value:
                                type: integer
                                content: 1
                        right:
                          RefRange:
                            type:
                              TypeVector:
                                name: ''
                                base: bit
                                range:
                                - Value:
                                    type: integer
                                    content: 14
                                - Value:
                                    type: integer
                                    content: 0
                            ref:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 15
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: reg
                            range:
                            - Value:
                                type: integer
                                content: 14
                            - Value:
                                type: integer
                                content: 0
                noifs: []