;buildInfoPackage: chisel3, version: 3.3.1, scalaVersion: 2.12.11, sbtVersion: 1.3.10
circuit rvjtag_tap : 
  module rvjtag_tap : 
    input clock : Clock
    input reset : AsyncReset
    output io : {flip tck : Clock, flip tms : UInt<1>, flip tdi : UInt<1>, flip rd_data : UInt<32>, flip rd_status : UInt<2>, flip idle : UInt<3>, flip dmi_stat : UInt<2>, flip jtag_id : UInt<32>, flip version : UInt<4>, tdo : UInt<1>, tdoEnable : UInt<1>, wr_data : UInt<32>, wr_addr : UInt<7>, wr_en : UInt<1>, rd_en : UInt<1>, dmi_reset : UInt<1>, dmi_hard_reset : UInt<1>}
    
    io.tdo <= UInt<1>("h00") @[rvjtag_tap.scala 38:21]
    io.tdoEnable <= UInt<1>("h00") @[rvjtag_tap.scala 39:21]
    io.wr_data <= UInt<1>("h00") @[rvjtag_tap.scala 40:21]
    io.wr_addr <= UInt<1>("h00") @[rvjtag_tap.scala 41:21]
    io.wr_en <= UInt<1>("h00") @[rvjtag_tap.scala 42:21]
    io.rd_en <= UInt<1>("h00") @[rvjtag_tap.scala 43:21]
    io.dmi_reset <= UInt<1>("h00") @[rvjtag_tap.scala 44:21]
    io.dmi_hard_reset <= UInt<1>("h00") @[rvjtag_tap.scala 45:21]
    reg sr : UInt<41>, clock with : (reset => (reset, UInt<1>("h00"))) @[rvjtag_tap.scala 48:20]
    reg nsr : UInt<41>, clock with : (reset => (reset, UInt<1>("h00"))) @[rvjtag_tap.scala 49:20]
    reg dr : UInt<41>, clock with : (reset => (reset, UInt<1>("h00"))) @[rvjtag_tap.scala 50:20]
    wire ir : UInt<5>
    ir <= UInt<1>("h00")
    wire jtag_reset : UInt<1>
    jtag_reset <= UInt<1>("h00")
    wire shift_dr : UInt<1>
    shift_dr <= UInt<1>("h00")
    wire pause_dr : UInt<1>
    pause_dr <= UInt<1>("h00")
    wire update_dr : UInt<1>
    update_dr <= UInt<1>("h00")
    wire capture_dr : UInt<1>
    capture_dr <= UInt<1>("h00")
    wire shift_ir : UInt<1>
    shift_ir <= UInt<1>("h00")
    wire pause_ir : UInt<1>
    pause_ir <= UInt<1>("h00")
    wire update_ir : UInt<1>
    update_ir <= UInt<1>("h00")
    wire capture_ir : UInt<1>
    capture_ir <= UInt<1>("h00")
    wire dr_en : UInt<2>
    dr_en <= UInt<1>("h00")
    wire devid_sel : UInt<1>
    devid_sel <= UInt<1>("h00")
    reg state : UInt<4>, clock with : (reset => (reset, UInt<4>("h00"))) @[rvjtag_tap.scala 75:27]
    reg nstate : UInt, clock with : (reset => (reset, UInt<4>("h00"))) @[rvjtag_tap.scala 76:27]
    nstate <= state @[rvjtag_tap.scala 76:27]
    node _T = eq(UInt<4>("h00"), state) @[Conditional.scala 37:30]
    when _T : @[Conditional.scala 40:58]
      node _T_1 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 80:21]
      when _T_1 : @[rvjtag_tap.scala 80:32]
        nstate <= UInt<4>("h00") @[rvjtag_tap.scala 80:41]
        skip @[rvjtag_tap.scala 80:32]
      else : @[rvjtag_tap.scala 81:20]
        nstate <= UInt<4>("h01") @[rvjtag_tap.scala 81:29]
        skip @[rvjtag_tap.scala 81:20]
      skip @[Conditional.scala 40:58]
    else : @[Conditional.scala 39:67]
      node _T_2 = eq(UInt<4>("h01"), state) @[Conditional.scala 37:30]
      when _T_2 : @[Conditional.scala 39:67]
        node _T_3 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 84:21]
        when _T_3 : @[rvjtag_tap.scala 84:32]
          nstate <= UInt<4>("h02") @[rvjtag_tap.scala 84:40]
          skip @[rvjtag_tap.scala 84:32]
        else : @[rvjtag_tap.scala 85:20]
          nstate <= UInt<4>("h01") @[rvjtag_tap.scala 85:28]
          skip @[rvjtag_tap.scala 85:20]
        skip @[Conditional.scala 39:67]
      else : @[Conditional.scala 39:67]
        node _T_4 = eq(UInt<4>("h02"), state) @[Conditional.scala 37:30]
        when _T_4 : @[Conditional.scala 39:67]
          node _T_5 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 88:21]
          when _T_5 : @[rvjtag_tap.scala 88:32]
            nstate <= UInt<4>("h09") @[rvjtag_tap.scala 88:40]
            skip @[rvjtag_tap.scala 88:32]
          else : @[rvjtag_tap.scala 89:20]
            nstate <= UInt<4>("h03") @[rvjtag_tap.scala 89:28]
            skip @[rvjtag_tap.scala 89:20]
          skip @[Conditional.scala 39:67]
        else : @[Conditional.scala 39:67]
          node _T_6 = eq(UInt<4>("h03"), state) @[Conditional.scala 37:30]
          when _T_6 : @[Conditional.scala 39:67]
            node _T_7 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 92:21]
            when _T_7 : @[rvjtag_tap.scala 92:32]
              nstate <= UInt<4>("h05") @[rvjtag_tap.scala 92:40]
              skip @[rvjtag_tap.scala 92:32]
            else : @[rvjtag_tap.scala 93:20]
              nstate <= UInt<4>("h04") @[rvjtag_tap.scala 93:28]
              skip @[rvjtag_tap.scala 93:20]
            skip @[Conditional.scala 39:67]
          else : @[Conditional.scala 39:67]
            node _T_8 = eq(UInt<4>("h04"), state) @[Conditional.scala 37:30]
            when _T_8 : @[Conditional.scala 39:67]
              node _T_9 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 96:21]
              when _T_9 : @[rvjtag_tap.scala 96:32]
                nstate <= UInt<4>("h05") @[rvjtag_tap.scala 96:40]
                skip @[rvjtag_tap.scala 96:32]
              else : @[rvjtag_tap.scala 97:20]
                nstate <= UInt<4>("h04") @[rvjtag_tap.scala 97:28]
                skip @[rvjtag_tap.scala 97:20]
              skip @[Conditional.scala 39:67]
            else : @[Conditional.scala 39:67]
              node _T_10 = eq(UInt<4>("h05"), state) @[Conditional.scala 37:30]
              when _T_10 : @[Conditional.scala 39:67]
                node _T_11 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 100:21]
                when _T_11 : @[rvjtag_tap.scala 100:32]
                  nstate <= UInt<4>("h08") @[rvjtag_tap.scala 100:40]
                  skip @[rvjtag_tap.scala 100:32]
                else : @[rvjtag_tap.scala 101:20]
                  nstate <= UInt<4>("h06") @[rvjtag_tap.scala 101:28]
                  skip @[rvjtag_tap.scala 101:20]
                skip @[Conditional.scala 39:67]
              else : @[Conditional.scala 39:67]
                node _T_12 = eq(UInt<4>("h06"), state) @[Conditional.scala 37:30]
                when _T_12 : @[Conditional.scala 39:67]
                  node _T_13 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 104:18]
                  when _T_13 : @[rvjtag_tap.scala 104:29]
                    nstate <= UInt<4>("h07") @[rvjtag_tap.scala 104:37]
                    skip @[rvjtag_tap.scala 104:29]
                  else : @[rvjtag_tap.scala 105:20]
                    nstate <= UInt<4>("h06") @[rvjtag_tap.scala 105:28]
                    skip @[rvjtag_tap.scala 105:20]
                  skip @[Conditional.scala 39:67]
                else : @[Conditional.scala 39:67]
                  node _T_14 = eq(UInt<4>("h07"), state) @[Conditional.scala 37:30]
                  when _T_14 : @[Conditional.scala 39:67]
                    node _T_15 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 108:18]
                    when _T_15 : @[rvjtag_tap.scala 108:29]
                      nstate <= UInt<4>("h08") @[rvjtag_tap.scala 108:37]
                      skip @[rvjtag_tap.scala 108:29]
                    else : @[rvjtag_tap.scala 109:20]
                      nstate <= UInt<4>("h04") @[rvjtag_tap.scala 109:28]
                      skip @[rvjtag_tap.scala 109:20]
                    skip @[Conditional.scala 39:67]
                  else : @[Conditional.scala 39:67]
                    node _T_16 = eq(UInt<4>("h08"), state) @[Conditional.scala 37:30]
                    when _T_16 : @[Conditional.scala 39:67]
                      node _T_17 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 112:18]
                      when _T_17 : @[rvjtag_tap.scala 112:29]
                        nstate <= UInt<4>("h02") @[rvjtag_tap.scala 112:37]
                        skip @[rvjtag_tap.scala 112:29]
                      else : @[rvjtag_tap.scala 113:20]
                        nstate <= UInt<4>("h01") @[rvjtag_tap.scala 113:28]
                        skip @[rvjtag_tap.scala 113:20]
                      skip @[Conditional.scala 39:67]
                    else : @[Conditional.scala 39:67]
                      node _T_18 = eq(UInt<4>("h09"), state) @[Conditional.scala 37:30]
                      when _T_18 : @[Conditional.scala 39:67]
                        node _T_19 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 116:18]
                        when _T_19 : @[rvjtag_tap.scala 116:29]
                          nstate <= UInt<4>("h09") @[rvjtag_tap.scala 116:37]
                          skip @[rvjtag_tap.scala 116:29]
                        else : @[rvjtag_tap.scala 117:20]
                          nstate <= UInt<4>("h0a") @[rvjtag_tap.scala 117:28]
                          skip @[rvjtag_tap.scala 117:20]
                        skip @[Conditional.scala 39:67]
                      else : @[Conditional.scala 39:67]
                        node _T_20 = eq(UInt<4>("h0a"), state) @[Conditional.scala 37:30]
                        when _T_20 : @[Conditional.scala 39:67]
                          node _T_21 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 120:18]
                          when _T_21 : @[rvjtag_tap.scala 120:29]
                            nstate <= UInt<4>("h0c") @[rvjtag_tap.scala 120:37]
                            skip @[rvjtag_tap.scala 120:29]
                          else : @[rvjtag_tap.scala 121:20]
                            nstate <= UInt<4>("h0b") @[rvjtag_tap.scala 121:28]
                            skip @[rvjtag_tap.scala 121:20]
                          skip @[Conditional.scala 39:67]
                        else : @[Conditional.scala 39:67]
                          node _T_22 = eq(UInt<4>("h0b"), state) @[Conditional.scala 37:30]
                          when _T_22 : @[Conditional.scala 39:67]
                            node _T_23 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 124:18]
                            when _T_23 : @[rvjtag_tap.scala 124:29]
                              nstate <= UInt<4>("h0c") @[rvjtag_tap.scala 124:37]
                              skip @[rvjtag_tap.scala 124:29]
                            else : @[rvjtag_tap.scala 125:20]
                              nstate <= UInt<4>("h0b") @[rvjtag_tap.scala 125:28]
                              skip @[rvjtag_tap.scala 125:20]
                            skip @[Conditional.scala 39:67]
                          else : @[Conditional.scala 39:67]
                            node _T_24 = eq(UInt<4>("h0c"), state) @[Conditional.scala 37:30]
                            when _T_24 : @[Conditional.scala 39:67]
                              node _T_25 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 128:18]
                              when _T_25 : @[rvjtag_tap.scala 128:29]
                                nstate <= UInt<4>("h0f") @[rvjtag_tap.scala 128:37]
                                skip @[rvjtag_tap.scala 128:29]
                              else : @[rvjtag_tap.scala 129:20]
                                nstate <= UInt<4>("h0d") @[rvjtag_tap.scala 129:28]
                                skip @[rvjtag_tap.scala 129:20]
                              skip @[Conditional.scala 39:67]
                            else : @[Conditional.scala 39:67]
                              node _T_26 = eq(UInt<4>("h0d"), state) @[Conditional.scala 37:30]
                              when _T_26 : @[Conditional.scala 39:67]
                                node _T_27 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 132:18]
                                when _T_27 : @[rvjtag_tap.scala 132:29]
                                  nstate <= UInt<4>("h0e") @[rvjtag_tap.scala 132:37]
                                  skip @[rvjtag_tap.scala 132:29]
                                else : @[rvjtag_tap.scala 133:20]
                                  nstate <= UInt<4>("h0d") @[rvjtag_tap.scala 133:28]
                                  skip @[rvjtag_tap.scala 133:20]
                                skip @[Conditional.scala 39:67]
                              else : @[Conditional.scala 39:67]
                                node _T_28 = eq(UInt<4>("h0e"), state) @[Conditional.scala 37:30]
                                when _T_28 : @[Conditional.scala 39:67]
                                  node _T_29 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 136:18]
                                  when _T_29 : @[rvjtag_tap.scala 136:29]
                                    nstate <= UInt<4>("h0f") @[rvjtag_tap.scala 136:37]
                                    skip @[rvjtag_tap.scala 136:29]
                                  else : @[rvjtag_tap.scala 137:20]
                                    nstate <= UInt<4>("h0b") @[rvjtag_tap.scala 137:28]
                                    skip @[rvjtag_tap.scala 137:20]
                                  skip @[Conditional.scala 39:67]
                                else : @[Conditional.scala 39:67]
                                  node _T_30 = eq(UInt<4>("h0f"), state) @[Conditional.scala 37:30]
                                  when _T_30 : @[Conditional.scala 39:67]
                                    node _T_31 = eq(io.tms, UInt<1>("h01")) @[rvjtag_tap.scala 140:18]
                                    when _T_31 : @[rvjtag_tap.scala 140:29]
                                      nstate <= UInt<4>("h02") @[rvjtag_tap.scala 140:37]
                                      skip @[rvjtag_tap.scala 140:29]
                                    else : @[rvjtag_tap.scala 141:20]
                                      nstate <= UInt<4>("h01") @[rvjtag_tap.scala 141:28]
                                      skip @[rvjtag_tap.scala 141:20]
                                    skip @[Conditional.scala 39:67]
    
