Type:

name: signed

TypeVector:

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

Type:

name: void

Type:

name: bit

SystemT:

name: sysB::T_
inputs:
- SignalI:
    name: clk
    type: bit
- SignalI:
    name: data
    type:
      TypeVector:
        name: ''
        base: bit
        range:
        - 7
        - 0
outputs:
- SignalI:
    name: result
    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
        block:
          Block:
            mode: par
            name: ''
            inners: []
            statements:
            - Transmit:
                left:
                  RefName:
                    type: bit
                    ref:
                      RefThis:
                        type: void
                    name: result
                right:
                  Select:
                    type: integer
                    operator: "?"
                    select:
                      Binary:
                        type:
                          TypeVector:
                            name: ''
                            base: signed
                            range:
                            - 31
                            - 0
                        operator: "=="
                        left:
                          RefName:
                            type:
                              TypeVector:
                                name: ''
                                base: bit
                                range:
                                - 7
                                - 0
                            ref:
                              RefThis:
                                type: void
                            name: data
                        right:
                          Value:
                            type: integer
                            content: 0
                    choices:
                    - Value:
                        type: integer
                        content: 0
                    - Value:
                        type: integer
                        content: 1

SystemT:

name: sysA::T_
inputs:
- SignalI:
    name: clk
    type: bit
- SignalI:
    name: rst
    type: bit
outputs:
- SignalI:
    name: data
    type:
      TypeVector:
        name: ''
        base: bit
        range:
        - 7
        - 0
inouts: []
scope:
  Scope:
    name: ''
    scopes: []
    inners: []
    systemIs: []
    connections: []
    behaviors:
    - Behavior:
        events:
        - Event:
            type: posedge
            ref:
              RefName:
                type: bit
                ref:
                  RefThis:
                    type: void
                name: clk
        block:
          Block:
            mode: par
            name: ''
            inners: []
            statements:
            - Transmit:
                left:
                  RefName:
                    type:
                      TypeVector:
                        name: ''
                        base: bit
                        range:
                        - 7
                        - 0
                    ref:
                      RefThis:
                        type: void
                    name: data
                right:
                  Select:
                    type: integer
                    operator: "?"
                    select:
                      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: 0
                    choices:
                    - Value:
                        type: integer
                        content: 0
                    - Binary:
                        type:
                          TypeVector:
                            name: ''
                            base: signed
                            range:
                            - 32
                            - 0
                        operator: "+"
                        left:
                          RefName:
                            type:
                              TypeVector:
                                name: ''
                                base: bit
                                range:
                                - 7
                                - 0
                            ref:
                              RefThis:
                                type: void
                            name: data
                        right:
                          Value:
                            type: integer
                            content: 1

SystemT:

name: serialABI::T_
inputs:
- SignalI:
    name: clk
    type: bit
- SignalI:
    name: rst
    type: bit
outputs:
- SignalI:
    name: result
    type: bit
inouts: []
scope:
  Scope:
    name: ''
    scopes: []
    inners:
    - SignalI:
        name: bufA
        type:
          TypeVector:
            name: ''
            base: bit
            range:
            - 7
            - 0
    - SignalI:
        name: scntA
        type:
          TypeVector:
            name: ''
            base: bit
            range:
            - 2
            - 0
    - SignalI:
        name: bufB
        type:
          TypeVector:
            name: ''
            base: bit
            range:
            - 7
            - 0
    - SignalI:
        name: scntB
        type:
          TypeVector:
            name: ''
            base: bit
            range:
            - 2
            - 0
    - SignalI:
        name: sdat
        type: bit
    systemIs:
    - SystemI:
        name: sysA
        systemT: sysA::T_
    - SystemI:
        name: sysB
        systemT: sysB::T_
    connections:
    - Connection:
        left:
          RefName:
            type: bit
            ref:
              RefName:
                type: void
                ref:
                  RefThis:
                    type: void
                name: sysA
            name: clk
        right:
          RefName:
            type: bit
            ref:
              RefThis:
                type: void
            name: clk
    - Connection:
        left:
          RefName:
            type: bit
            ref:
              RefName:
                type: void
                ref:
                  RefThis:
                    type: void
                name: sysB
            name: clk
        right:
          RefName:
            type: bit
            ref:
              RefThis:
                type: void
            name: clk
    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:
                                - 2
                                - 0
                            ref:
                              RefThis:
                                type: void
                            name: scntA
                        right:
                          Value:
                            type: integer
                            content: 0
                'no':
                  Block:
                    mode: par
                    name: ''
                    inners: []
                    statements:
                    - Transmit:
                        left:
                          RefName:
                            type:
                              TypeVector:
                                name: ''
                                base: bit
                                range:
                                - 2
                                - 0
                            ref:
                              RefThis:
                                type: void
                            name: scntA
                        right:
                          Binary:
                            type:
                              TypeVector:
                                name: ''
                                base: signed
                                range:
                                - 32
                                - 0
                            operator: "+"
                            left:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 2
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: scntA
                            right:
                              Value:
                                type: integer
                                content: 1
                    - Transmit:
                        left:
                          RefName:
                            type: bit
                            ref:
                              RefThis:
                                type: void
                            name: sdat
                        right:
                          RefIndex:
                            type: bit
                            ref:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 7
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: bufA
                            index:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 2
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: scntA
                noifs: []
    - Behavior:
        events:
        - Event:
            type: negedge
            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:
                                - 2
                                - 0
                            ref:
                              RefThis:
                                type: void
                            name: scntB
                        right:
                          Value:
                            type: integer
                            content: 0
                'no':
                  Block:
                    mode: par
                    name: ''
                    inners: []
                    statements:
                    - Transmit:
                        left:
                          RefName:
                            type:
                              TypeVector:
                                name: ''
                                base: bit
                                range:
                                - 2
                                - 0
                            ref:
                              RefThis:
                                type: void
                            name: scntB
                        right:
                          Binary:
                            type:
                              TypeVector:
                                name: ''
                                base: signed
                                range:
                                - 32
                                - 0
                            operator: "+"
                            left:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 2
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: scntB
                            right:
                              Value:
                                type: integer
                                content: 1
                    - Transmit:
                        left:
                          RefIndex:
                            type: bit
                            ref:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 7
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: bufB
                            index:
                              RefName:
                                type:
                                  TypeVector:
                                    name: ''
                                    base: bit
                                    range:
                                    - 2
                                    - 0
                                ref:
                                  RefThis:
                                    type: void
                                name: scntB
                        right:
                          RefName:
                            type: bit
                            ref:
                              RefThis:
                                type: void
                            name: sdat
                noifs: []