diff options
| author | azidar | 2015-05-27 15:43:15 -0700 |
|---|---|---|
| committer | azidar | 2015-05-27 15:43:15 -0700 |
| commit | a2a48576534f87b28566504bb1e0c7faa493f463 (patch) | |
| tree | 9fd3ce5825922c50c38507a1b0fc1e070bb9a481 /test/passes/jacktest/Tile.fir | |
| parent | cf80ff9c83c2fedd42ec186a3e342520c89f91ab (diff) | |
Added external modules. Switched lower firrtl back to wire r; r := Register, instead of using nodes. Added a renaming pass for different backends. This will likely get deprecated, as a more robust name mangling scheme could be needed
Diffstat (limited to 'test/passes/jacktest/Tile.fir')
| -rw-r--r-- | test/passes/jacktest/Tile.fir | 1272 |
1 files changed, 0 insertions, 1272 deletions
diff --git a/test/passes/jacktest/Tile.fir b/test/passes/jacktest/Tile.fir deleted file mode 100644 index c3123dab..00000000 --- a/test/passes/jacktest/Tile.fir +++ /dev/null @@ -1,1272 +0,0 @@ -; RUN: firrtl -i %s -o %s.flo -X flo -p ct | tee %s.out | FileCheck %s -;CHECK: Done! -circuit Tile : - module ALU : - input A : UInt<32> - input B : UInt<32> - input alu_op : UInt<4> - output out : UInt<32> - output sum : UInt<32> - node tmp1 = bits(B, 4, 0) - node shamt2 = tmp1 - node tmp3 = add-wrap(A, B) - node tmp4 = sub-wrap(A, B) - node tmp5 = convert(A) - node tmp6 = dshr(tmp5, shamt2) - node tmp7 = as-UInt(tmp6) - node tmp8 = dshr(A, shamt2) - node tmp9 = dshl(A, shamt2) - node tmp10 = bits(tmp9, 31, 0) - node tmp11 = convert(A) - node tmp12 = convert(B) - node tmp13 = lt(tmp11, tmp12) - node tmp14 = lt(A, B) - node tmp15 = bit-and(A, B) - node tmp16 = bit-or(A, B) - node tmp17 = bit-xor(A, B) - node tmp18 = eq(UInt<4>(10), alu_op) - node tmp19 = mux(tmp18, A, B) - node tmp20 = eq(UInt<4>(4), alu_op) - node tmp21 = mux(tmp20, tmp17, tmp19) - node tmp22 = eq(UInt<4>(3), alu_op) - node tmp23 = mux(tmp22, tmp16, tmp21) - node tmp24 = eq(UInt<4>(2), alu_op) - node tmp25 = mux(tmp24, tmp15, tmp23) - node tmp26 = eq(UInt<4>(7), alu_op) - node tmp27 = mux(tmp26, tmp14, tmp25) - node tmp28 = eq(UInt<4>(5), alu_op) - node tmp29 = mux(tmp28, tmp13, tmp27) - node tmp30 = eq(UInt<4>(6), alu_op) - node tmp31 = mux(tmp30, tmp10, tmp29) - node tmp32 = eq(UInt<4>(8), alu_op) - node tmp33 = mux(tmp32, tmp8, tmp31) - node tmp34 = eq(UInt<4>(9), alu_op) - node tmp35 = mux(tmp34, tmp7, tmp33) - node tmp36 = eq(UInt<4>(1), alu_op) - node tmp37 = mux(tmp36, tmp4, tmp35) - node tmp38 = eq(UInt<4>(0), alu_op) - node tmp39 = mux(tmp38, tmp3, tmp37) - node tmp40 = bits(tmp39, 31, 0) - out := tmp40 - node tmp41 = bit(alu_op, 0) - node tmp42 = sub-wrap(UInt<1>(0), B) - node tmp43 = mux(tmp41, tmp42, B) - node tmp44 = add-wrap(A, tmp43) - sum := tmp44 - module BrCond : - input rs1 : UInt<32> - input rs2 : UInt<32> - input br_type : UInt<3> - output taken : UInt<1> - node tmp45 = eq(rs1, rs2) - node eq46 = tmp45 - node tmp47 = bit-not(eq46) - node neq48 = tmp47 - node tmp49 = convert(rs1) - node tmp50 = convert(rs2) - node tmp51 = lt(tmp49, tmp50) - node lt52 = tmp51 - node tmp53 = bit-not(lt52) - node ge54 = tmp53 - node tmp55 = lt(rs1, rs2) - node ltu56 = tmp55 - node tmp57 = bit-not(ltu56) - node geu58 = tmp57 - node tmp59 = eq(br_type, UInt<3>(2)) - node tmp60 = bit-and(tmp59, eq46) - node tmp61 = eq(br_type, UInt<3>(6)) - node tmp62 = bit-and(tmp61, neq48) - node tmp63 = eq(br_type, UInt<3>(1)) - node tmp64 = bit-and(tmp63, lt52) - node tmp65 = eq(br_type, UInt<3>(5)) - node tmp66 = bit-and(tmp65, ge54) - node tmp67 = eq(br_type, UInt<3>(0)) - node tmp68 = bit-and(tmp67, ltu56) - node tmp69 = eq(br_type, UInt<3>(4)) - node tmp70 = bit-and(tmp69, geu58) - node tmp71 = bit-or(tmp68, tmp70) - node tmp72 = bit-or(tmp66, tmp71) - node tmp73 = bit-or(tmp64, tmp72) - node tmp74 = bit-or(tmp62, tmp73) - node tmp75 = bit-or(tmp60, tmp74) - taken := tmp75 - module RegFile : - input raddr1 : UInt<5> - input raddr2 : UInt<5> - input wen : UInt<1> - input waddr : UInt<5> - input wdata : UInt<32> - output rdata1 : UInt<32> - output rdata2 : UInt<32> - mem regs : UInt<32>[32] - node tmp76 = eq(raddr1, UInt<1>(0)) - node tmp77 = bit-not(tmp76) - accessor a78 = regs[raddr1] - node tmp79 = mux(tmp77, a78, UInt<1>(0)) - rdata1 := tmp79 - node tmp80 = eq(raddr2, UInt<1>(0)) - node tmp81 = bit-not(tmp80) - accessor a82 = regs[raddr2] - node tmp83 = mux(tmp81, a82, UInt<1>(0)) - rdata2 := tmp83 - node tmp84 = eq(waddr, UInt<1>(0)) - node tmp85 = bit-not(tmp84) - node tmp86 = bit-and(wen, tmp85) - when tmp86 : - accessor a87 = regs[waddr] - a87 := wdata - module ImmGenWire : - input inst : UInt<32> - input sel : UInt<3> - output out : UInt<32> - node tmp88 = bits(inst, 31, 20) - node tmp89 = convert(tmp88) - node Iimm90 = tmp89 - node tmp91 = bits(inst, 31, 25) - node tmp92 = bits(inst, 11, 7) - node tmp93 = cat(tmp91, tmp92) - node tmp94 = convert(tmp93) - node Simm95 = tmp94 - node tmp96 = bit(inst, 31) - node tmp97 = bit(inst, 7) - node tmp98 = bits(inst, 30, 25) - node tmp99 = bits(inst, 11, 8) - node tmp100 = cat(tmp96, tmp97) - node tmp101 = cat(tmp100, tmp98) - node tmp102 = cat(tmp101, tmp99) - node tmp103 = cat(tmp102, UInt<1>(0)) - node tmp104 = convert(tmp103) - node Bimm105 = tmp104 - node tmp106 = bits(inst, 31, 12) - node tmp107 = cat(tmp106, UInt<12>(0)) - node tmp108 = convert(tmp107) - node Uimm109 = tmp108 - node tmp110 = bit(inst, 31) - node tmp111 = bits(inst, 19, 12) - node tmp112 = bit(inst, 20) - node tmp113 = bits(inst, 30, 25) - node tmp114 = bits(inst, 24, 21) - node tmp115 = cat(tmp110, tmp111) - node tmp116 = cat(tmp115, tmp112) - node tmp117 = cat(tmp116, tmp113) - node tmp118 = cat(tmp117, tmp114) - node tmp119 = cat(tmp118, UInt<1>(0)) - node tmp120 = convert(tmp119) - node Jimm121 = tmp120 - node tmp122 = bits(inst, 19, 15) - node tmp123 = pad(tmp122, 32) - node tmp124 = convert(tmp123) - node Zimm125 = tmp124 - node tmp126 = eq(UInt<3>(3), sel) - node tmp127 = mux(tmp126, Jimm121, Zimm125) - node tmp128 = eq(UInt<3>(2), sel) - node tmp129 = mux(tmp128, Uimm109, tmp127) - node tmp130 = eq(UInt<3>(4), sel) - node tmp131 = mux(tmp130, Bimm105, tmp129) - node tmp132 = eq(UInt<3>(1), sel) - node tmp133 = mux(tmp132, Simm95, tmp131) - node tmp134 = eq(UInt<3>(0), sel) - node tmp135 = mux(tmp134, Iimm90, tmp133) - node tmp136 = as-UInt(tmp135) - out := tmp136 - module CSR : - input cmd : UInt<2> - input addr : UInt<12> - input src : UInt<32> - output host : {flip hid : UInt<1>, tohost : UInt<32>, status : UInt<32>} - output data : UInt<32> - reg reg_tohost238 : UInt<32> - on-reset reg_tohost238 := UInt<1>(0) - reg reg_status239 : UInt<32> - on-reset reg_status239 := UInt<1>(0) - host.tohost := reg_tohost238 - host.status := reg_status239 - node tmp240 = eq(UInt<12>(1291), addr) - node tmp241 = mux(tmp240, host.hid, UInt<1>(0)) - node tmp242 = eq(UInt<12>(1290), addr) - node tmp243 = mux(tmp242, reg_status239, tmp241) - node tmp244 = eq(UInt<12>(1310), addr) - node tmp245 = mux(tmp244, reg_tohost238, tmp243) - data := tmp245 - node tmp246 = eq(cmd, UInt<2>(1)) - when tmp246 : - node tmp247 = eq(addr, UInt<12>(1310)) - when tmp247 : - reg_tohost238 := src - node tmp248 = eq(addr, UInt<12>(1290)) - when tmp248 : - reg_status239 := src - node tmp249 = eq(cmd, UInt<2>(2)) - node tmp250 = neq(src, UInt<1>(0)) - node tmp251 = bit-and(tmp249, tmp250) - when tmp251 : - node tmp252 = eq(addr, UInt<12>(1310)) - when tmp252 : - node tmp253 = dshl(UInt<1>(1), src) - node tmp254 = bit-or(data, tmp253) - reg_tohost238 := tmp254 - node tmp255 = eq(addr, UInt<12>(1290)) - when tmp255 : - node tmp256 = dshl(UInt<1>(1), src) - node tmp257 = bit-or(data, tmp256) - reg_status239 := tmp257 - node tmp258 = eq(cmd, UInt<2>(3)) - node tmp259 = neq(src, UInt<1>(0)) - node tmp260 = bit-and(tmp258, tmp259) - when tmp260 : - node tmp261 = eq(addr, UInt<12>(1310)) - when tmp261 : - node tmp262 = dshl(UInt<1>(0), src) - node tmp263 = bit-and(data, tmp262) - reg_tohost238 := tmp263 - node tmp264 = eq(addr, UInt<12>(1290)) - when tmp264 : - node tmp265 = dshl(UInt<1>(0), src) - node tmp266 = bit-and(data, tmp265) - reg_status239 := tmp266 - module Datapath : - input stall : UInt<1> - input ctrl : {pc_sel : UInt<1>, inst_re : UInt<1>, inst_type : UInt<1>, A_sel : UInt<1>, B_sel : UInt<1>, imm_sel : UInt<3>, alu_op : UInt<4>, br_type : UInt<3>, data_re : UInt<1>, st_type : UInt<2>, ld_type : UInt<3>, wb_sel : UInt<2>, wb_en : UInt<1>, csr_cmd : UInt<2>, flip ins : UInt<32>, flip stall : UInt<1>} - output host : {flip hid : UInt<1>, tohost : UInt<32>, status : UInt<32>} - output icache : {addr : UInt<32>, din : UInt<32>, flip dout : UInt<32>, re : UInt<1>, we : UInt<4>} - output dcache : {addr : UInt<32>, din : UInt<32>, flip dout : UInt<32>, re : UInt<1>, we : UInt<4>} - inst alu of ALU - inst brCond of BrCond - inst regFile of RegFile - inst immGen of ImmGenWire - reg fe_inst137 : UInt<32> - on-reset fe_inst137 := UInt<1>(0) - reg fe_pc138 : UInt<?> - reg ew_inst139 : UInt<32> - on-reset ew_inst139 := UInt<1>(0) - reg ew_pc140 : UInt<?> - reg ew_alu141 : UInt<?> - reg pc142 : UInt<32> - node tmp143 = sub-wrap(UInt<14>(8192), UInt<32>(4)) - on-reset pc142 := tmp143 - node tmp144 = eq(ctrl.pc_sel, UInt<1>(1)) - node tmp145 = bit-or(tmp144, brCond.taken) - node tmp146 = add-wrap(pc142, UInt<3>(4)) - node tmp147 = mux(tmp145, alu.sum, tmp146) - node tmp148 = eq(ctrl.inst_type, UInt<1>(1)) - node tmp149 = bit-or(tmp148, brCond.taken) - node tmp150 = mux(tmp149, UInt<5>(19), icache.dout) - icache.we := UInt<1>(0) - icache.din := UInt<1>(0) - icache.addr := tmp147 - icache.re := ctrl.inst_re - node tmp151 = eq(dcache.we, UInt<1>(0)) - node tmp152 = bit-not(tmp151) - node tmp153 = bit-not(tmp152) - node tmp154 = bit-and(icache.re, tmp153) - node tmp155 = mux(tmp154, tmp147, pc142) - pc142 := tmp155 - node tmp156 = bit-not(stall) - when tmp156 : - fe_pc138 := pc142 - fe_inst137 := tmp150 - ctrl.ins := fe_inst137 - ctrl.stall := stall - node tmp157 = bits(fe_inst137, 11, 7) - node rd_addr158 = tmp157 - node tmp159 = bits(fe_inst137, 19, 15) - node rs1_addr160 = tmp159 - node tmp161 = bits(fe_inst137, 24, 20) - node rs2_addr162 = tmp161 - regFile.raddr1 := rs1_addr160 - regFile.raddr2 := rs2_addr162 - immGen.inst := fe_inst137 - immGen.sel := ctrl.imm_sel - node tmp163 = eq(rs1_addr160, UInt<1>(0)) - node tmp164 = bit-not(tmp163) - node rs1NotZero165 = tmp164 - node tmp166 = eq(rs2_addr162, UInt<1>(0)) - node tmp167 = bit-not(tmp166) - node rs2NotZero168 = tmp167 - node tmp169 = eq(ctrl.wb_sel, UInt<2>(0)) - node tmp170 = bit-and(ctrl.wb_en, tmp169) - node alutype171 = tmp170 - node tmp172 = bits(ew_inst139, 11, 7) - node ex_rd_addr173 = tmp172 - node tmp174 = eq(rs1_addr160, ex_rd_addr173) - node tmp175 = bit-and(rs1NotZero165, tmp174) - node tmp176 = bit-and(alutype171, tmp175) - node tmp177 = mux(tmp176, ew_alu141, regFile.rdata1) - node rs1178 = tmp177 - node tmp179 = eq(rs2_addr162, ex_rd_addr173) - node tmp180 = bit-and(rs2NotZero168, tmp179) - node tmp181 = bit-and(alutype171, tmp180) - node tmp182 = mux(tmp181, ew_alu141, regFile.rdata2) - node rs2183 = tmp182 - node tmp184 = eq(ctrl.A_sel, UInt<1>(0)) - node tmp185 = mux(tmp184, rs1178, fe_pc138) - alu.A := tmp185 - node tmp186 = eq(ctrl.B_sel, UInt<1>(0)) - node tmp187 = mux(tmp186, rs2183, immGen.out) - alu.B := tmp187 - alu.alu_op := ctrl.alu_op - brCond.rs1 := rs1178 - brCond.rs2 := rs2183 - brCond.br_type := ctrl.br_type - node tmp188 = bit(alu.sum, 1) - node tmp189 = shl(tmp188, 4) - node tmp190 = bit(alu.sum, 0) - node tmp191 = shl(tmp190, 3) - node tmp192 = bit-or(tmp189, tmp191) - node woffset193 = tmp192 - dcache.re := ctrl.data_re - node tmp194 = mux(stall, ew_alu141, alu.sum) - dcache.addr := tmp194 - node tmp195 = bits(alu.sum, 1, 0) - node tmp196 = dshl(UInt<2>(3), tmp195) - node tmp197 = bits(tmp196, 3, 0) - node tmp198 = bits(alu.sum, 1, 0) - node tmp199 = dshl(UInt<1>(1), tmp198) - node tmp200 = bits(tmp199, 3, 0) - node tmp201 = eq(UInt<2>(2), ctrl.st_type) - node tmp202 = mux(tmp201, tmp200, UInt<1>(0)) - node tmp203 = eq(UInt<2>(1), ctrl.st_type) - node tmp204 = mux(tmp203, tmp197, tmp202) - node tmp205 = eq(UInt<2>(0), ctrl.st_type) - node tmp206 = mux(tmp205, UInt<4>(15), tmp204) - node tmp207 = mux(stall, UInt<1>(0), tmp206) - dcache.we := tmp207 - node tmp208 = dshl(rs2183, woffset193) - node tmp209 = bits(tmp208, 31, 0) - dcache.din := tmp209 - node tmp210 = bit-not(stall) - when tmp210 : - ew_pc140 := fe_pc138 - ew_inst139 := fe_inst137 - ew_alu141 := alu.out - node tmp211 = bit(ew_alu141, 1) - node tmp212 = shl(tmp211, 4) - node tmp213 = bit(ew_alu141, 0) - node tmp214 = shl(tmp213, 3) - node tmp215 = bit-or(tmp212, tmp214) - node loffset216 = tmp215 - node tmp217 = dshr(dcache.dout, loffset216) - node lshift218 = tmp217 - node tmp219 = bits(lshift218, 15, 0) - node tmp220 = convert(tmp219) - node tmp221 = pad(tmp220, 32) - node tmp222 = as-UInt(tmp221) - node tmp223 = bits(lshift218, 7, 0) - node tmp224 = convert(tmp223) - node tmp225 = pad(tmp224, 32) - node tmp226 = as-UInt(tmp225) - node tmp227 = bits(lshift218, 15, 0) - node tmp228 = bits(lshift218, 7, 0) - node tmp229 = eq(UInt<3>(4), ctrl.ld_type) - node tmp230 = mux(tmp229, tmp228, dcache.dout) - node tmp231 = eq(UInt<3>(3), ctrl.ld_type) - node tmp232 = mux(tmp231, tmp227, tmp230) - node tmp233 = eq(UInt<3>(2), ctrl.ld_type) - node tmp234 = mux(tmp233, tmp226, tmp232) - node tmp235 = eq(UInt<3>(1), ctrl.ld_type) - node tmp236 = mux(tmp235, tmp222, tmp234) - node load237 = tmp236 - inst csr of CSR - host := csr.host - csr.src := ew_alu141 - node tmp267 = bits(ew_inst139, 31, 20) - csr.addr := tmp267 - csr.cmd := ctrl.csr_cmd - node tmp268 = add-wrap(ew_pc140, UInt<3>(4)) - node tmp269 = eq(UInt<2>(3), ctrl.wb_sel) - node tmp270 = mux(tmp269, csr.data, ew_alu141) - node tmp271 = eq(UInt<2>(2), ctrl.wb_sel) - node tmp272 = mux(tmp271, tmp268, tmp270) - node tmp273 = eq(UInt<2>(1), ctrl.wb_sel) - node tmp274 = mux(tmp273, load237, tmp272) - node regWrite275 = tmp274 - regFile.wen := ctrl.wb_en - regFile.waddr := ex_rd_addr173 - regFile.wdata := regWrite275 - module Control : - output ctrl : {pc_sel : UInt<1>, inst_re : UInt<1>, inst_type : UInt<1>, A_sel : UInt<1>, B_sel : UInt<1>, imm_sel : UInt<3>, alu_op : UInt<4>, br_type : UInt<3>, data_re : UInt<1>, st_type : UInt<2>, ld_type : UInt<3>, wb_sel : UInt<2>, wb_en : UInt<1>, csr_cmd : UInt<2>, flip ins : UInt<32>, flip stall : UInt<1>} - node tmp276 = bit-and(UInt<32>(127), ctrl.ins) - node tmp277 = eq(tmp276, UInt<32>(55)) - node tmp278 = bit-and(UInt<32>(127), ctrl.ins) - node tmp279 = eq(tmp278, UInt<32>(23)) - node tmp280 = bit-and(UInt<32>(127), ctrl.ins) - node tmp281 = eq(tmp280, UInt<32>(111)) - node tmp282 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp283 = eq(tmp282, UInt<32>(103)) - node tmp284 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp285 = eq(tmp284, UInt<32>(99)) - node tmp286 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp287 = eq(tmp286, UInt<32>(4195)) - node tmp288 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp289 = eq(tmp288, UInt<32>(16483)) - node tmp290 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp291 = eq(tmp290, UInt<32>(20579)) - node tmp292 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp293 = eq(tmp292, UInt<32>(24675)) - node tmp294 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp295 = eq(tmp294, UInt<32>(28771)) - node tmp296 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp297 = eq(tmp296, UInt<32>(3)) - node tmp298 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp299 = eq(tmp298, UInt<32>(4099)) - node tmp300 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp301 = eq(tmp300, UInt<32>(8195)) - node tmp302 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp303 = eq(tmp302, UInt<32>(16387)) - node tmp304 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp305 = eq(tmp304, UInt<32>(20483)) - node tmp306 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp307 = eq(tmp306, UInt<32>(35)) - node tmp308 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp309 = eq(tmp308, UInt<32>(4131)) - node tmp310 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp311 = eq(tmp310, UInt<32>(8227)) - node tmp312 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp313 = eq(tmp312, UInt<32>(19)) - node tmp314 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp315 = eq(tmp314, UInt<32>(8211)) - node tmp316 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp317 = eq(tmp316, UInt<32>(12307)) - node tmp318 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp319 = eq(tmp318, UInt<32>(16403)) - node tmp320 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp321 = eq(tmp320, UInt<32>(24595)) - node tmp322 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp323 = eq(tmp322, UInt<32>(28691)) - node tmp324 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp325 = eq(tmp324, UInt<32>(4115)) - node tmp326 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp327 = eq(tmp326, UInt<32>(20499)) - node tmp328 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp329 = eq(tmp328, UInt<32>(1073762323)) - node tmp330 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp331 = eq(tmp330, UInt<32>(51)) - node tmp332 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp333 = eq(tmp332, UInt<32>(1073741875)) - node tmp334 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp335 = eq(tmp334, UInt<32>(4147)) - node tmp336 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp337 = eq(tmp336, UInt<32>(8243)) - node tmp338 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp339 = eq(tmp338, UInt<32>(12339)) - node tmp340 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp341 = eq(tmp340, UInt<32>(16435)) - node tmp342 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp343 = eq(tmp342, UInt<32>(20531)) - node tmp344 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp345 = eq(tmp344, UInt<32>(1073762355)) - node tmp346 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp347 = eq(tmp346, UInt<32>(24627)) - node tmp348 = bit-and(UInt<32>(-33525633), ctrl.ins) - node tmp349 = eq(tmp348, UInt<32>(28723)) - node tmp350 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp351 = eq(tmp350, UInt<32>(4211)) - node tmp352 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp353 = eq(tmp352, UInt<32>(8307)) - node tmp354 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp355 = eq(tmp354, UInt<32>(12403)) - node tmp356 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp357 = eq(tmp356, UInt<32>(20595)) - node tmp358 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp359 = eq(tmp358, UInt<32>(24691)) - node tmp360 = bit-and(UInt<32>(28799), ctrl.ins) - node tmp361 = eq(tmp360, UInt<32>(28787)) - node tmp362 = mux(tmp361, UInt<1>(0), UInt<1>(0)) - node tmp363 = mux(tmp359, UInt<1>(0), tmp362) - node tmp364 = mux(tmp357, UInt<1>(0), tmp363) - node tmp365 = mux(tmp355, UInt<1>(0), tmp364) - node tmp366 = mux(tmp353, UInt<1>(0), tmp365) - node tmp367 = mux(tmp351, UInt<1>(0), tmp366) - node tmp368 = mux(tmp349, UInt<1>(0), tmp367) - node tmp369 = mux(tmp347, UInt<1>(0), tmp368) - node tmp370 = mux(tmp345, UInt<1>(0), tmp369) - node tmp371 = mux(tmp343, UInt<1>(0), tmp370) - node tmp372 = mux(tmp341, UInt<1>(0), tmp371) - node tmp373 = mux(tmp339, UInt<1>(0), tmp372) - node tmp374 = mux(tmp337, UInt<1>(0), tmp373) - node tmp375 = mux(tmp335, UInt<1>(0), tmp374) - node tmp376 = mux(tmp333, UInt<1>(0), tmp375) - node tmp377 = mux(tmp331, UInt<1>(0), tmp376) - node tmp378 = mux(tmp329, UInt<1>(0), tmp377) - node tmp379 = mux(tmp327, UInt<1>(0), tmp378) - node tmp380 = mux(tmp325, UInt<1>(0), tmp379) - node tmp381 = mux(tmp323, UInt<1>(0), tmp380) - node tmp382 = mux(tmp321, UInt<1>(0), tmp381) - node tmp383 = mux(tmp319, UInt<1>(0), tmp382) - node tmp384 = mux(tmp317, UInt<1>(0), tmp383) - node tmp385 = mux(tmp315, UInt<1>(0), tmp384) - node tmp386 = mux(tmp313, UInt<1>(0), tmp385) - node tmp387 = mux(tmp311, UInt<1>(0), tmp386) - node tmp388 = mux(tmp309, UInt<1>(0), tmp387) - node tmp389 = mux(tmp307, UInt<1>(0), tmp388) - node tmp390 = mux(tmp305, UInt<1>(0), tmp389) - node tmp391 = mux(tmp303, UInt<1>(0), tmp390) - node tmp392 = mux(tmp301, UInt<1>(0), tmp391) - node tmp393 = mux(tmp299, UInt<1>(0), tmp392) - node tmp394 = mux(tmp297, UInt<1>(0), tmp393) - node tmp395 = mux(tmp295, UInt<1>(0), tmp394) - node tmp396 = mux(tmp293, UInt<1>(0), tmp395) - node tmp397 = mux(tmp291, UInt<1>(0), tmp396) - node tmp398 = mux(tmp289, UInt<1>(0), tmp397) - node tmp399 = mux(tmp287, UInt<1>(0), tmp398) - node tmp400 = mux(tmp285, UInt<1>(0), tmp399) - node tmp401 = mux(tmp283, UInt<1>(1), tmp400) - node tmp402 = mux(tmp281, UInt<1>(1), tmp401) - node tmp403 = mux(tmp279, UInt<1>(0), tmp402) - node tmp404 = mux(tmp277, UInt<1>(0), tmp403) - node tmp405 = mux(tmp361, UInt<1>(1), UInt<1>(1)) - node tmp406 = mux(tmp359, UInt<1>(1), tmp405) - node tmp407 = mux(tmp357, UInt<1>(1), tmp406) - node tmp408 = mux(tmp355, UInt<1>(0), tmp407) - node tmp409 = mux(tmp353, UInt<1>(0), tmp408) - node tmp410 = mux(tmp351, UInt<1>(0), tmp409) - node tmp411 = mux(tmp349, UInt<1>(0), tmp410) - node tmp412 = mux(tmp347, UInt<1>(0), tmp411) - node tmp413 = mux(tmp345, UInt<1>(0), tmp412) - node tmp414 = mux(tmp343, UInt<1>(0), tmp413) - node tmp415 = mux(tmp341, UInt<1>(0), tmp414) - node tmp416 = mux(tmp339, UInt<1>(0), tmp415) - node tmp417 = mux(tmp337, UInt<1>(0), tmp416) - node tmp418 = mux(tmp335, UInt<1>(0), tmp417) - node tmp419 = mux(tmp333, UInt<1>(0), tmp418) - node tmp420 = mux(tmp331, UInt<1>(0), tmp419) - node tmp421 = mux(tmp329, UInt<1>(0), tmp420) - node tmp422 = mux(tmp327, UInt<1>(0), tmp421) - node tmp423 = mux(tmp325, UInt<1>(0), tmp422) - node tmp424 = mux(tmp323, UInt<1>(0), tmp423) - node tmp425 = mux(tmp321, UInt<1>(0), tmp424) - node tmp426 = mux(tmp319, UInt<1>(0), tmp425) - node tmp427 = mux(tmp317, UInt<1>(0), tmp426) - node tmp428 = mux(tmp315, UInt<1>(0), tmp427) - node tmp429 = mux(tmp313, UInt<1>(0), tmp428) - node tmp430 = mux(tmp311, UInt<1>(0), tmp429) - node tmp431 = mux(tmp309, UInt<1>(0), tmp430) - node tmp432 = mux(tmp307, UInt<1>(0), tmp431) - node tmp433 = mux(tmp305, UInt<1>(0), tmp432) - node tmp434 = mux(tmp303, UInt<1>(0), tmp433) - node tmp435 = mux(tmp301, UInt<1>(0), tmp434) - node tmp436 = mux(tmp299, UInt<1>(0), tmp435) - node tmp437 = mux(tmp297, UInt<1>(0), tmp436) - node tmp438 = mux(tmp295, UInt<1>(1), tmp437) - node tmp439 = mux(tmp293, UInt<1>(1), tmp438) - node tmp440 = mux(tmp291, UInt<1>(1), tmp439) - node tmp441 = mux(tmp289, UInt<1>(1), tmp440) - node tmp442 = mux(tmp287, UInt<1>(1), tmp441) - node tmp443 = mux(tmp285, UInt<1>(1), tmp442) - node tmp444 = mux(tmp283, UInt<1>(0), tmp443) - node tmp445 = mux(tmp281, UInt<1>(1), tmp444) - node tmp446 = mux(tmp279, UInt<1>(1), tmp445) - node tmp447 = mux(tmp277, UInt<1>(1), tmp446) - node tmp448 = mux(tmp361, UInt<1>(1), UInt<1>(0)) - node tmp449 = mux(tmp359, UInt<1>(1), tmp448) - node tmp450 = mux(tmp357, UInt<1>(1), tmp449) - node tmp451 = mux(tmp355, UInt<1>(0), tmp450) - node tmp452 = mux(tmp353, UInt<1>(0), tmp451) - node tmp453 = mux(tmp351, UInt<1>(0), tmp452) - node tmp454 = mux(tmp349, UInt<1>(0), tmp453) - node tmp455 = mux(tmp347, UInt<1>(0), tmp454) - node tmp456 = mux(tmp345, UInt<1>(0), tmp455) - node tmp457 = mux(tmp343, UInt<1>(0), tmp456) - node tmp458 = mux(tmp341, UInt<1>(0), tmp457) - node tmp459 = mux(tmp339, UInt<1>(0), tmp458) - node tmp460 = mux(tmp337, UInt<1>(0), tmp459) - node tmp461 = mux(tmp335, UInt<1>(0), tmp460) - node tmp462 = mux(tmp333, UInt<1>(0), tmp461) - node tmp463 = mux(tmp331, UInt<1>(0), tmp462) - node tmp464 = mux(tmp329, UInt<1>(1), tmp463) - node tmp465 = mux(tmp327, UInt<1>(1), tmp464) - node tmp466 = mux(tmp325, UInt<1>(1), tmp465) - node tmp467 = mux(tmp323, UInt<1>(1), tmp466) - node tmp468 = mux(tmp321, UInt<1>(1), tmp467) - node tmp469 = mux(tmp319, UInt<1>(1), tmp468) - node tmp470 = mux(tmp317, UInt<1>(1), tmp469) - node tmp471 = mux(tmp315, UInt<1>(1), tmp470) - node tmp472 = mux(tmp313, UInt<1>(1), tmp471) - node tmp473 = mux(tmp311, UInt<1>(1), tmp472) - node tmp474 = mux(tmp309, UInt<1>(1), tmp473) - node tmp475 = mux(tmp307, UInt<1>(1), tmp474) - node tmp476 = mux(tmp305, UInt<1>(1), tmp475) - node tmp477 = mux(tmp303, UInt<1>(1), tmp476) - node tmp478 = mux(tmp301, UInt<1>(1), tmp477) - node tmp479 = mux(tmp299, UInt<1>(1), tmp478) - node tmp480 = mux(tmp297, UInt<1>(1), tmp479) - node tmp481 = mux(tmp295, UInt<1>(1), tmp480) - node tmp482 = mux(tmp293, UInt<1>(1), tmp481) - node tmp483 = mux(tmp291, UInt<1>(1), tmp482) - node tmp484 = mux(tmp289, UInt<1>(1), tmp483) - node tmp485 = mux(tmp287, UInt<1>(1), tmp484) - node tmp486 = mux(tmp285, UInt<1>(1), tmp485) - node tmp487 = mux(tmp283, UInt<1>(1), tmp486) - node tmp488 = mux(tmp281, UInt<1>(1), tmp487) - node tmp489 = mux(tmp279, UInt<1>(1), tmp488) - node tmp490 = mux(tmp277, UInt<1>(1), tmp489) - node tmp491 = mux(tmp361, UInt<3>(5), UInt<3>(7)) - node tmp492 = mux(tmp359, UInt<3>(5), tmp491) - node tmp493 = mux(tmp357, UInt<3>(5), tmp492) - node tmp494 = mux(tmp355, UInt<3>(5), tmp493) - node tmp495 = mux(tmp353, UInt<3>(5), tmp494) - node tmp496 = mux(tmp351, UInt<3>(5), tmp495) - node tmp497 = mux(tmp349, UInt<3>(7), tmp496) - node tmp498 = mux(tmp347, UInt<3>(7), tmp497) - node tmp499 = mux(tmp345, UInt<3>(7), tmp498) - node tmp500 = mux(tmp343, UInt<3>(7), tmp499) - node tmp501 = mux(tmp341, UInt<3>(7), tmp500) - node tmp502 = mux(tmp339, UInt<3>(7), tmp501) - node tmp503 = mux(tmp337, UInt<3>(7), tmp502) - node tmp504 = mux(tmp335, UInt<3>(7), tmp503) - node tmp505 = mux(tmp333, UInt<3>(7), tmp504) - node tmp506 = mux(tmp331, UInt<3>(7), tmp505) - node tmp507 = mux(tmp329, UInt<3>(0), tmp506) - node tmp508 = mux(tmp327, UInt<3>(0), tmp507) - node tmp509 = mux(tmp325, UInt<3>(0), tmp508) - node tmp510 = mux(tmp323, UInt<3>(0), tmp509) - node tmp511 = mux(tmp321, UInt<3>(0), tmp510) - node tmp512 = mux(tmp319, UInt<3>(0), tmp511) - node tmp513 = mux(tmp317, UInt<3>(0), tmp512) - node tmp514 = mux(tmp315, UInt<3>(0), tmp513) - node tmp515 = mux(tmp313, UInt<3>(0), tmp514) - node tmp516 = mux(tmp311, UInt<3>(1), tmp515) - node tmp517 = mux(tmp309, UInt<3>(1), tmp516) - node tmp518 = mux(tmp307, UInt<3>(1), tmp517) - node tmp519 = mux(tmp305, UInt<3>(0), tmp518) - node tmp520 = mux(tmp303, UInt<3>(0), tmp519) - node tmp521 = mux(tmp301, UInt<3>(0), tmp520) - node tmp522 = mux(tmp299, UInt<3>(0), tmp521) - node tmp523 = mux(tmp297, UInt<3>(0), tmp522) - node tmp524 = mux(tmp295, UInt<3>(4), tmp523) - node tmp525 = mux(tmp293, UInt<3>(4), tmp524) - node tmp526 = mux(tmp291, UInt<3>(4), tmp525) - node tmp527 = mux(tmp289, UInt<3>(4), tmp526) - node tmp528 = mux(tmp287, UInt<3>(4), tmp527) - node tmp529 = mux(tmp285, UInt<3>(4), tmp528) - node tmp530 = mux(tmp283, UInt<3>(0), tmp529) - node tmp531 = mux(tmp281, UInt<3>(3), tmp530) - node tmp532 = mux(tmp279, UInt<3>(2), tmp531) - node tmp533 = mux(tmp277, UInt<3>(2), tmp532) - node tmp534 = mux(tmp361, UInt<4>(11), UInt<4>(15)) - node tmp535 = mux(tmp359, UInt<4>(11), tmp534) - node tmp536 = mux(tmp357, UInt<4>(11), tmp535) - node tmp537 = mux(tmp355, UInt<4>(10), tmp536) - node tmp538 = mux(tmp353, UInt<4>(10), tmp537) - node tmp539 = mux(tmp351, UInt<4>(10), tmp538) - node tmp540 = mux(tmp349, UInt<4>(2), tmp539) - node tmp541 = mux(tmp347, UInt<4>(3), tmp540) - node tmp542 = mux(tmp345, UInt<4>(9), tmp541) - node tmp543 = mux(tmp343, UInt<4>(8), tmp542) - node tmp544 = mux(tmp341, UInt<4>(4), tmp543) - node tmp545 = mux(tmp339, UInt<4>(7), tmp544) - node tmp546 = mux(tmp337, UInt<4>(5), tmp545) - node tmp547 = mux(tmp335, UInt<4>(6), tmp546) - node tmp548 = mux(tmp333, UInt<4>(1), tmp547) - node tmp549 = mux(tmp331, UInt<4>(0), tmp548) - node tmp550 = mux(tmp329, UInt<4>(9), tmp549) - node tmp551 = mux(tmp327, UInt<4>(8), tmp550) - node tmp552 = mux(tmp325, UInt<4>(6), tmp551) - node tmp553 = mux(tmp323, UInt<4>(2), tmp552) - node tmp554 = mux(tmp321, UInt<4>(3), tmp553) - node tmp555 = mux(tmp319, UInt<4>(4), tmp554) - node tmp556 = mux(tmp317, UInt<4>(7), tmp555) - node tmp557 = mux(tmp315, UInt<4>(5), tmp556) - node tmp558 = mux(tmp313, UInt<4>(0), tmp557) - node tmp559 = mux(tmp311, UInt<4>(0), tmp558) - node tmp560 = mux(tmp309, UInt<4>(0), tmp559) - node tmp561 = mux(tmp307, UInt<4>(0), tmp560) - node tmp562 = mux(tmp305, UInt<4>(0), tmp561) - node tmp563 = mux(tmp303, UInt<4>(0), tmp562) - node tmp564 = mux(tmp301, UInt<4>(0), tmp563) - node tmp565 = mux(tmp299, UInt<4>(0), tmp564) - node tmp566 = mux(tmp297, UInt<4>(0), tmp565) - node tmp567 = mux(tmp295, UInt<4>(0), tmp566) - node tmp568 = mux(tmp293, UInt<4>(0), tmp567) - node tmp569 = mux(tmp291, UInt<4>(0), tmp568) - node tmp570 = mux(tmp289, UInt<4>(0), tmp569) - node tmp571 = mux(tmp287, UInt<4>(0), tmp570) - node tmp572 = mux(tmp285, UInt<4>(0), tmp571) - node tmp573 = mux(tmp283, UInt<4>(0), tmp572) - node tmp574 = mux(tmp281, UInt<4>(0), tmp573) - node tmp575 = mux(tmp279, UInt<4>(0), tmp574) - node tmp576 = mux(tmp277, UInt<4>(11), tmp575) - node tmp577 = mux(tmp361, UInt<3>(7), UInt<3>(7)) - node tmp578 = mux(tmp359, UInt<3>(7), tmp577) - node tmp579 = mux(tmp357, UInt<3>(7), tmp578) - node tmp580 = mux(tmp355, UInt<3>(7), tmp579) - node tmp581 = mux(tmp353, UInt<3>(7), tmp580) - node tmp582 = mux(tmp351, UInt<3>(7), tmp581) - node tmp583 = mux(tmp349, UInt<3>(7), tmp582) - node tmp584 = mux(tmp347, UInt<3>(7), tmp583) - node tmp585 = mux(tmp345, UInt<3>(7), tmp584) - node tmp586 = mux(tmp343, UInt<3>(7), tmp585) - node tmp587 = mux(tmp341, UInt<3>(7), tmp586) - node tmp588 = mux(tmp339, UInt<3>(7), tmp587) - node tmp589 = mux(tmp337, UInt<3>(7), tmp588) - node tmp590 = mux(tmp335, UInt<3>(7), tmp589) - node tmp591 = mux(tmp333, UInt<3>(7), tmp590) - node tmp592 = mux(tmp331, UInt<3>(7), tmp591) - node tmp593 = mux(tmp329, UInt<3>(7), tmp592) - node tmp594 = mux(tmp327, UInt<3>(7), tmp593) - node tmp595 = mux(tmp325, UInt<3>(7), tmp594) - node tmp596 = mux(tmp323, UInt<3>(7), tmp595) - node tmp597 = mux(tmp321, UInt<3>(7), tmp596) - node tmp598 = mux(tmp319, UInt<3>(7), tmp597) - node tmp599 = mux(tmp317, UInt<3>(7), tmp598) - node tmp600 = mux(tmp315, UInt<3>(7), tmp599) - node tmp601 = mux(tmp313, UInt<3>(7), tmp600) - node tmp602 = mux(tmp311, UInt<3>(7), tmp601) - node tmp603 = mux(tmp309, UInt<3>(7), tmp602) - node tmp604 = mux(tmp307, UInt<3>(7), tmp603) - node tmp605 = mux(tmp305, UInt<3>(7), tmp604) - node tmp606 = mux(tmp303, UInt<3>(7), tmp605) - node tmp607 = mux(tmp301, UInt<3>(7), tmp606) - node tmp608 = mux(tmp299, UInt<3>(7), tmp607) - node tmp609 = mux(tmp297, UInt<3>(7), tmp608) - node tmp610 = mux(tmp295, UInt<3>(4), tmp609) - node tmp611 = mux(tmp293, UInt<3>(0), tmp610) - node tmp612 = mux(tmp291, UInt<3>(5), tmp611) - node tmp613 = mux(tmp289, UInt<3>(1), tmp612) - node tmp614 = mux(tmp287, UInt<3>(6), tmp613) - node tmp615 = mux(tmp285, UInt<3>(2), tmp614) - node tmp616 = mux(tmp283, UInt<3>(7), tmp615) - node tmp617 = mux(tmp281, UInt<3>(7), tmp616) - node tmp618 = mux(tmp279, UInt<3>(7), tmp617) - node tmp619 = mux(tmp277, UInt<3>(7), tmp618) - node tmp620 = mux(tmp361, UInt<1>(0), UInt<1>(0)) - node tmp621 = mux(tmp359, UInt<1>(0), tmp620) - node tmp622 = mux(tmp357, UInt<1>(0), tmp621) - node tmp623 = mux(tmp355, UInt<1>(0), tmp622) - node tmp624 = mux(tmp353, UInt<1>(0), tmp623) - node tmp625 = mux(tmp351, UInt<1>(0), tmp624) - node tmp626 = mux(tmp349, UInt<1>(0), tmp625) - node tmp627 = mux(tmp347, UInt<1>(0), tmp626) - node tmp628 = mux(tmp345, UInt<1>(0), tmp627) - node tmp629 = mux(tmp343, UInt<1>(0), tmp628) - node tmp630 = mux(tmp341, UInt<1>(0), tmp629) - node tmp631 = mux(tmp339, UInt<1>(0), tmp630) - node tmp632 = mux(tmp337, UInt<1>(0), tmp631) - node tmp633 = mux(tmp335, UInt<1>(0), tmp632) - node tmp634 = mux(tmp333, UInt<1>(0), tmp633) - node tmp635 = mux(tmp331, UInt<1>(0), tmp634) - node tmp636 = mux(tmp329, UInt<1>(0), tmp635) - node tmp637 = mux(tmp327, UInt<1>(0), tmp636) - node tmp638 = mux(tmp325, UInt<1>(0), tmp637) - node tmp639 = mux(tmp323, UInt<1>(0), tmp638) - node tmp640 = mux(tmp321, UInt<1>(0), tmp639) - node tmp641 = mux(tmp319, UInt<1>(0), tmp640) - node tmp642 = mux(tmp317, UInt<1>(0), tmp641) - node tmp643 = mux(tmp315, UInt<1>(0), tmp642) - node tmp644 = mux(tmp313, UInt<1>(0), tmp643) - node tmp645 = mux(tmp311, UInt<1>(0), tmp644) - node tmp646 = mux(tmp309, UInt<1>(0), tmp645) - node tmp647 = mux(tmp307, UInt<1>(0), tmp646) - node tmp648 = mux(tmp305, UInt<1>(0), tmp647) - node tmp649 = mux(tmp303, UInt<1>(0), tmp648) - node tmp650 = mux(tmp301, UInt<1>(0), tmp649) - node tmp651 = mux(tmp299, UInt<1>(0), tmp650) - node tmp652 = mux(tmp297, UInt<1>(0), tmp651) - node tmp653 = mux(tmp295, UInt<1>(0), tmp652) - node tmp654 = mux(tmp293, UInt<1>(0), tmp653) - node tmp655 = mux(tmp291, UInt<1>(0), tmp654) - node tmp656 = mux(tmp289, UInt<1>(0), tmp655) - node tmp657 = mux(tmp287, UInt<1>(0), tmp656) - node tmp658 = mux(tmp285, UInt<1>(0), tmp657) - node tmp659 = mux(tmp283, UInt<1>(1), tmp658) - node tmp660 = mux(tmp281, UInt<1>(1), tmp659) - node tmp661 = mux(tmp279, UInt<1>(0), tmp660) - node tmp662 = mux(tmp277, UInt<1>(0), tmp661) - node tmp663 = mux(tmp361, UInt<2>(3), UInt<2>(3)) - node tmp664 = mux(tmp359, UInt<2>(3), tmp663) - node tmp665 = mux(tmp357, UInt<2>(3), tmp664) - node tmp666 = mux(tmp355, UInt<2>(3), tmp665) - node tmp667 = mux(tmp353, UInt<2>(3), tmp666) - node tmp668 = mux(tmp351, UInt<2>(3), tmp667) - node tmp669 = mux(tmp349, UInt<2>(3), tmp668) - node tmp670 = mux(tmp347, UInt<2>(3), tmp669) - node tmp671 = mux(tmp345, UInt<2>(3), tmp670) - node tmp672 = mux(tmp343, UInt<2>(3), tmp671) - node tmp673 = mux(tmp341, UInt<2>(3), tmp672) - node tmp674 = mux(tmp339, UInt<2>(3), tmp673) - node tmp675 = mux(tmp337, UInt<2>(3), tmp674) - node tmp676 = mux(tmp335, UInt<2>(3), tmp675) - node tmp677 = mux(tmp333, UInt<2>(3), tmp676) - node tmp678 = mux(tmp331, UInt<2>(3), tmp677) - node tmp679 = mux(tmp329, UInt<2>(3), tmp678) - node tmp680 = mux(tmp327, UInt<2>(3), tmp679) - node tmp681 = mux(tmp325, UInt<2>(3), tmp680) - node tmp682 = mux(tmp323, UInt<2>(3), tmp681) - node tmp683 = mux(tmp321, UInt<2>(3), tmp682) - node tmp684 = mux(tmp319, UInt<2>(3), tmp683) - node tmp685 = mux(tmp317, UInt<2>(3), tmp684) - node tmp686 = mux(tmp315, UInt<2>(3), tmp685) - node tmp687 = mux(tmp313, UInt<2>(3), tmp686) - node tmp688 = mux(tmp311, UInt<2>(0), tmp687) - node tmp689 = mux(tmp309, UInt<2>(1), tmp688) - node tmp690 = mux(tmp307, UInt<2>(2), tmp689) - node tmp691 = mux(tmp305, UInt<2>(3), tmp690) - node tmp692 = mux(tmp303, UInt<2>(3), tmp691) - node tmp693 = mux(tmp301, UInt<2>(3), tmp692) - node tmp694 = mux(tmp299, UInt<2>(3), tmp693) - node tmp695 = mux(tmp297, UInt<2>(3), tmp694) - node tmp696 = mux(tmp295, UInt<2>(3), tmp695) - node tmp697 = mux(tmp293, UInt<2>(3), tmp696) - node tmp698 = mux(tmp291, UInt<2>(3), tmp697) - node tmp699 = mux(tmp289, UInt<2>(3), tmp698) - node tmp700 = mux(tmp287, UInt<2>(3), tmp699) - node tmp701 = mux(tmp285, UInt<2>(3), tmp700) - node tmp702 = mux(tmp283, UInt<2>(3), tmp701) - node tmp703 = mux(tmp281, UInt<2>(3), tmp702) - node tmp704 = mux(tmp279, UInt<2>(3), tmp703) - node tmp705 = mux(tmp277, UInt<2>(3), tmp704) - node tmp706 = mux(tmp361, UInt<3>(7), UInt<3>(7)) - node tmp707 = mux(tmp359, UInt<3>(7), tmp706) - node tmp708 = mux(tmp357, UInt<3>(7), tmp707) - node tmp709 = mux(tmp355, UInt<3>(7), tmp708) - node tmp710 = mux(tmp353, UInt<3>(7), tmp709) - node tmp711 = mux(tmp351, UInt<3>(7), tmp710) - node tmp712 = mux(tmp349, UInt<3>(7), tmp711) - node tmp713 = mux(tmp347, UInt<3>(7), tmp712) - node tmp714 = mux(tmp345, UInt<3>(7), tmp713) - node tmp715 = mux(tmp343, UInt<3>(7), tmp714) - node tmp716 = mux(tmp341, UInt<3>(7), tmp715) - node tmp717 = mux(tmp339, UInt<3>(7), tmp716) - node tmp718 = mux(tmp337, UInt<3>(7), tmp717) - node tmp719 = mux(tmp335, UInt<3>(7), tmp718) - node tmp720 = mux(tmp333, UInt<3>(7), tmp719) - node tmp721 = mux(tmp331, UInt<3>(7), tmp720) - node tmp722 = mux(tmp329, UInt<3>(7), tmp721) - node tmp723 = mux(tmp327, UInt<3>(7), tmp722) - node tmp724 = mux(tmp325, UInt<3>(7), tmp723) - node tmp725 = mux(tmp323, UInt<3>(7), tmp724) - node tmp726 = mux(tmp321, UInt<3>(7), tmp725) - node tmp727 = mux(tmp319, UInt<3>(7), tmp726) - node tmp728 = mux(tmp317, UInt<3>(7), tmp727) - node tmp729 = mux(tmp315, UInt<3>(7), tmp728) - node tmp730 = mux(tmp313, UInt<3>(7), tmp729) - node tmp731 = mux(tmp311, UInt<3>(7), tmp730) - node tmp732 = mux(tmp309, UInt<3>(7), tmp731) - node tmp733 = mux(tmp307, UInt<3>(7), tmp732) - node tmp734 = mux(tmp305, UInt<3>(3), tmp733) - node tmp735 = mux(tmp303, UInt<3>(4), tmp734) - node tmp736 = mux(tmp301, UInt<3>(0), tmp735) - node tmp737 = mux(tmp299, UInt<3>(1), tmp736) - node tmp738 = mux(tmp297, UInt<3>(2), tmp737) - node tmp739 = mux(tmp295, UInt<3>(7), tmp738) - node tmp740 = mux(tmp293, UInt<3>(7), tmp739) - node tmp741 = mux(tmp291, UInt<3>(7), tmp740) - node tmp742 = mux(tmp289, UInt<3>(7), tmp741) - node tmp743 = mux(tmp287, UInt<3>(7), tmp742) - node tmp744 = mux(tmp285, UInt<3>(7), tmp743) - node tmp745 = mux(tmp283, UInt<3>(7), tmp744) - node tmp746 = mux(tmp281, UInt<3>(7), tmp745) - node tmp747 = mux(tmp279, UInt<3>(7), tmp746) - node tmp748 = mux(tmp277, UInt<3>(7), tmp747) - node tmp749 = mux(tmp361, UInt<2>(3), UInt<2>(0)) - node tmp750 = mux(tmp359, UInt<2>(3), tmp749) - node tmp751 = mux(tmp357, UInt<2>(3), tmp750) - node tmp752 = mux(tmp355, UInt<2>(3), tmp751) - node tmp753 = mux(tmp353, UInt<2>(3), tmp752) - node tmp754 = mux(tmp351, UInt<2>(3), tmp753) - node tmp755 = mux(tmp349, UInt<2>(0), tmp754) - node tmp756 = mux(tmp347, UInt<2>(0), tmp755) - node tmp757 = mux(tmp345, UInt<2>(0), tmp756) - node tmp758 = mux(tmp343, UInt<2>(0), tmp757) - node tmp759 = mux(tmp341, UInt<2>(0), tmp758) - node tmp760 = mux(tmp339, UInt<2>(0), tmp759) - node tmp761 = mux(tmp337, UInt<2>(0), tmp760) - node tmp762 = mux(tmp335, UInt<2>(0), tmp761) - node tmp763 = mux(tmp333, UInt<2>(0), tmp762) - node tmp764 = mux(tmp331, UInt<2>(0), tmp763) - node tmp765 = mux(tmp329, UInt<2>(0), tmp764) - node tmp766 = mux(tmp327, UInt<2>(0), tmp765) - node tmp767 = mux(tmp325, UInt<2>(0), tmp766) - node tmp768 = mux(tmp323, UInt<2>(0), tmp767) - node tmp769 = mux(tmp321, UInt<2>(0), tmp768) - node tmp770 = mux(tmp319, UInt<2>(0), tmp769) - node tmp771 = mux(tmp317, UInt<2>(0), tmp770) - node tmp772 = mux(tmp315, UInt<2>(0), tmp771) - node tmp773 = mux(tmp313, UInt<2>(0), tmp772) - node tmp774 = mux(tmp311, UInt<2>(0), tmp773) - node tmp775 = mux(tmp309, UInt<2>(0), tmp774) - node tmp776 = mux(tmp307, UInt<2>(0), tmp775) - node tmp777 = mux(tmp305, UInt<2>(1), tmp776) - node tmp778 = mux(tmp303, UInt<2>(1), tmp777) - node tmp779 = mux(tmp301, UInt<2>(1), tmp778) - node tmp780 = mux(tmp299, UInt<2>(1), tmp779) - node tmp781 = mux(tmp297, UInt<2>(1), tmp780) - node tmp782 = mux(tmp295, UInt<2>(0), tmp781) - node tmp783 = mux(tmp293, UInt<2>(0), tmp782) - node tmp784 = mux(tmp291, UInt<2>(0), tmp783) - node tmp785 = mux(tmp289, UInt<2>(0), tmp784) - node tmp786 = mux(tmp287, UInt<2>(0), tmp785) - node tmp787 = mux(tmp285, UInt<2>(0), tmp786) - node tmp788 = mux(tmp283, UInt<2>(2), tmp787) - node tmp789 = mux(tmp281, UInt<2>(2), tmp788) - node tmp790 = mux(tmp279, UInt<2>(0), tmp789) - node tmp791 = mux(tmp277, UInt<2>(0), tmp790) - node tmp792 = mux(tmp361, UInt<1>(0), UInt<1>(0)) - node tmp793 = mux(tmp359, UInt<1>(0), tmp792) - node tmp794 = mux(tmp357, UInt<1>(0), tmp793) - node tmp795 = mux(tmp355, UInt<1>(0), tmp794) - node tmp796 = mux(tmp353, UInt<1>(0), tmp795) - node tmp797 = mux(tmp351, UInt<1>(0), tmp796) - node tmp798 = mux(tmp349, UInt<1>(1), tmp797) - node tmp799 = mux(tmp347, UInt<1>(1), tmp798) - node tmp800 = mux(tmp345, UInt<1>(1), tmp799) - node tmp801 = mux(tmp343, UInt<1>(1), tmp800) - node tmp802 = mux(tmp341, UInt<1>(1), tmp801) - node tmp803 = mux(tmp339, UInt<1>(1), tmp802) - node tmp804 = mux(tmp337, UInt<1>(1), tmp803) - node tmp805 = mux(tmp335, UInt<1>(1), tmp804) - node tmp806 = mux(tmp333, UInt<1>(1), tmp805) - node tmp807 = mux(tmp331, UInt<1>(1), tmp806) - node tmp808 = mux(tmp329, UInt<1>(1), tmp807) - node tmp809 = mux(tmp327, UInt<1>(1), tmp808) - node tmp810 = mux(tmp325, UInt<1>(1), tmp809) - node tmp811 = mux(tmp323, UInt<1>(1), tmp810) - node tmp812 = mux(tmp321, UInt<1>(1), tmp811) - node tmp813 = mux(tmp319, UInt<1>(1), tmp812) - node tmp814 = mux(tmp317, UInt<1>(1), tmp813) - node tmp815 = mux(tmp315, UInt<1>(1), tmp814) - node tmp816 = mux(tmp313, UInt<1>(1), tmp815) - node tmp817 = mux(tmp311, UInt<1>(0), tmp816) - node tmp818 = mux(tmp309, UInt<1>(0), tmp817) - node tmp819 = mux(tmp307, UInt<1>(0), tmp818) - node tmp820 = mux(tmp305, UInt<1>(1), tmp819) - node tmp821 = mux(tmp303, UInt<1>(1), tmp820) - node tmp822 = mux(tmp301, UInt<1>(1), tmp821) - node tmp823 = mux(tmp299, UInt<1>(1), tmp822) - node tmp824 = mux(tmp297, UInt<1>(1), tmp823) - node tmp825 = mux(tmp295, UInt<1>(0), tmp824) - node tmp826 = mux(tmp293, UInt<1>(0), tmp825) - node tmp827 = mux(tmp291, UInt<1>(0), tmp826) - node tmp828 = mux(tmp289, UInt<1>(0), tmp827) - node tmp829 = mux(tmp287, UInt<1>(0), tmp828) - node tmp830 = mux(tmp285, UInt<1>(0), tmp829) - node tmp831 = mux(tmp283, UInt<1>(1), tmp830) - node tmp832 = mux(tmp281, UInt<1>(1), tmp831) - node tmp833 = mux(tmp279, UInt<1>(1), tmp832) - node tmp834 = mux(tmp277, UInt<1>(1), tmp833) - node tmp835 = mux(tmp361, UInt<2>(3), UInt<2>(0)) - node tmp836 = mux(tmp359, UInt<2>(2), tmp835) - node tmp837 = mux(tmp357, UInt<2>(1), tmp836) - node tmp838 = mux(tmp355, UInt<2>(3), tmp837) - node tmp839 = mux(tmp353, UInt<2>(2), tmp838) - node tmp840 = mux(tmp351, UInt<2>(1), tmp839) - node tmp841 = mux(tmp349, UInt<2>(0), tmp840) - node tmp842 = mux(tmp347, UInt<2>(0), tmp841) - node tmp843 = mux(tmp345, UInt<2>(0), tmp842) - node tmp844 = mux(tmp343, UInt<2>(0), tmp843) - node tmp845 = mux(tmp341, UInt<2>(0), tmp844) - node tmp846 = mux(tmp339, UInt<2>(0), tmp845) - node tmp847 = mux(tmp337, UInt<2>(0), tmp846) - node tmp848 = mux(tmp335, UInt<2>(0), tmp847) - node tmp849 = mux(tmp333, UInt<2>(0), tmp848) - node tmp850 = mux(tmp331, UInt<2>(0), tmp849) - node tmp851 = mux(tmp329, UInt<2>(0), tmp850) - node tmp852 = mux(tmp327, UInt<2>(0), tmp851) - node tmp853 = mux(tmp325, UInt<2>(0), tmp852) - node tmp854 = mux(tmp323, UInt<2>(0), tmp853) - node tmp855 = mux(tmp321, UInt<2>(0), tmp854) - node tmp856 = mux(tmp319, UInt<2>(0), tmp855) - node tmp857 = mux(tmp317, UInt<2>(0), tmp856) - node tmp858 = mux(tmp315, UInt<2>(0), tmp857) - node tmp859 = mux(tmp313, UInt<2>(0), tmp858) - node tmp860 = mux(tmp311, UInt<2>(0), tmp859) - node tmp861 = mux(tmp309, UInt<2>(0), tmp860) - node tmp862 = mux(tmp307, UInt<2>(0), tmp861) - node tmp863 = mux(tmp305, UInt<2>(0), tmp862) - node tmp864 = mux(tmp303, UInt<2>(0), tmp863) - node tmp865 = mux(tmp301, UInt<2>(0), tmp864) - node tmp866 = mux(tmp299, UInt<2>(0), tmp865) - node tmp867 = mux(tmp297, UInt<2>(0), tmp866) - node tmp868 = mux(tmp295, UInt<2>(0), tmp867) - node tmp869 = mux(tmp293, UInt<2>(0), tmp868) - node tmp870 = mux(tmp291, UInt<2>(0), tmp869) - node tmp871 = mux(tmp289, UInt<2>(0), tmp870) - node tmp872 = mux(tmp287, UInt<2>(0), tmp871) - node tmp873 = mux(tmp285, UInt<2>(0), tmp872) - node tmp874 = mux(tmp283, UInt<2>(0), tmp873) - node tmp875 = mux(tmp281, UInt<2>(0), tmp874) - node tmp876 = mux(tmp279, UInt<2>(0), tmp875) - node tmp877 = mux(tmp277, UInt<2>(0), tmp876) - node tmp878 = bits(ctrl.ins, 19, 15) - node rs1_addr879 = tmp878 - node tmp880 = bits(ctrl.ins, 24, 20) - node rs2_addr881 = tmp880 - reg st_type882 : UInt<1> - st_type882 := ctrl.st_type - reg ld_type883 : UInt<1> - ld_type883 := tmp748 - reg wb_sel884 : UInt<1> - wb_sel884 := tmp791 - reg wb_en885 : UInt<1> - wb_en885 := tmp834 - reg csr_cmd886 : UInt<1> - csr_cmd886 := tmp877 - ctrl.pc_sel := tmp404 - node tmp887 = bit-not(ctrl.data_re) - node tmp888 = bit-and(ctrl.stall, tmp887) - node tmp889 = bit-not(tmp888) - ctrl.inst_re := tmp889 - node tmp890 = neq(tmp748, UInt<3>(7)) - wire tmp891 : UInt<1> - tmp891 := tmp662 - node tmp892 = bit-or(tmp890, tmp891) - node tmp893 = mux(tmp892, UInt<1>(1), UInt<1>(0)) - ctrl.inst_type := tmp893 - ctrl.A_sel := tmp447 - ctrl.B_sel := tmp490 - ctrl.imm_sel := tmp533 - ctrl.alu_op := tmp576 - ctrl.br_type := tmp619 - ctrl.st_type := tmp705 - node tmp894 = bit-not(ctrl.stall) - when tmp894 : - st_type882 := ctrl.st_type - ld_type883 := tmp748 - wb_sel884 := tmp791 - wb_en885 := tmp834 - csr_cmd886 := tmp877 - node tmp895 = neq(ctrl.ld_type, UInt<3>(7)) - node tmp896 = neq(tmp748, UInt<3>(7)) - node tmp897 = mux(ctrl.stall, tmp895, tmp896) - ctrl.data_re := tmp897 - ctrl.ld_type := ld_type883 - ctrl.wb_en := wb_en885 - ctrl.wb_sel := wb_sel884 - ctrl.csr_cmd := csr_cmd886 - module Core : - input stall : UInt<1> - output host : {flip hid : UInt<1>, tohost : UInt<32>, status : UInt<32>} - output icache : {addr : UInt<32>, din : UInt<32>, flip dout : UInt<32>, re : UInt<1>, we : UInt<4>} - output dcache : {addr : UInt<32>, din : UInt<32>, flip dout : UInt<32>, re : UInt<1>, we : UInt<4>} - inst dpath of Datapath - inst ctrl of Control - host := dpath.host - icache := dpath.icache - dcache := dpath.dcache - dpath.ctrl := ctrl.ctrl - dpath.stall := stall - module Fifo : - input enq : {valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<32>, tag : UInt<5>, mask : UInt<4>}, flip ready : UInt<1>} - output deq : {valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<32>, tag : UInt<5>, mask : UInt<4>}, flip ready : UInt<1>} - output count : UInt<3> - mem ram : {rw : UInt<1>, addr : UInt<32>, tag : UInt<5>, mask : UInt<4>}[4] - reg cnt898 : UInt<2> - on-reset cnt898 := UInt<1>(0) - reg cnt899 : UInt<2> - on-reset cnt899 := UInt<1>(0) - reg maybe-full900 : UInt<1> - on-reset maybe-full900 := UInt<1>(0) - node tmp901 = eq(cnt898, cnt899) - node ptr-match902 = tmp901 - node tmp903 = bit-not(maybe-full900) - node tmp904 = bit-and(ptr-match902, tmp903) - node empty905 = tmp904 - node tmp906 = bit-and(ptr-match902, maybe-full900) - node full907 = tmp906 - node tmp908 = bit-and(UInt<1>(0), empty905) - node maybe-flow909 = tmp908 - node tmp910 = bit-and(maybe-flow909, deq.ready) - node do-flow911 = tmp910 - node tmp912 = bit-not(do-flow911) - node tmp913 = bit-and(enq.valid, tmp912) - node tmp914 = bit-and(enq.ready, tmp913) - node do-enq915 = tmp914 - node tmp916 = bit-not(do-flow911) - node tmp917 = bit-and(deq.valid, tmp916) - node tmp918 = bit-and(deq.ready, tmp917) - node do-deq919 = tmp918 - when do-enq915 : - accessor a920 = ram[cnt898] - a920 := enq.bits - node tmp921 = eq(cnt898, UInt<2>(3)) - node wrap922 = tmp921 - node tmp923 = bit-and(UInt<1>(0), wrap922) - node tmp924 = add-wrap(cnt898, UInt<1>(1)) - node tmp925 = mux(tmp923, UInt<1>(0), tmp924) - cnt898 := tmp925 - when do-deq919 : - node tmp926 = eq(cnt899, UInt<2>(3)) - node wrap927 = tmp926 - node tmp928 = bit-and(UInt<1>(0), wrap927) - node tmp929 = add-wrap(cnt899, UInt<1>(1)) - node tmp930 = mux(tmp928, UInt<1>(0), tmp929) - cnt899 := tmp930 - node tmp931 = neq(do-enq915, do-deq919) - when tmp931 : - maybe-full900 := do-enq915 - node tmp932 = bit-and(UInt<1>(0), enq.valid) - node tmp933 = bit-or(empty905, tmp932) - node tmp934 = bit-not(tmp933) - deq.valid := tmp934 - node tmp935 = bit-and(UInt<1>(0), deq.ready) - node tmp936 = bit-or(full907, tmp935) - node tmp937 = bit-not(tmp936) - enq.ready := tmp937 - accessor a938 = ram[cnt899] - node tmp939 = mux(maybe-flow909, enq.bits, a938) - deq.bits := tmp939 - node tmp940 = sub-wrap(cnt898, cnt899) - node ptr-diff941 = tmp940 - node tmp942 = bit-and(maybe-full900, ptr-match902) - node tmp943 = cat(tmp942, ptr-diff941) - count := tmp943 - module Fifo944 : - input enq : {valid : UInt<1>, bits : {data : UInt<32>}, flip ready : UInt<1>} - output deq : {valid : UInt<1>, bits : {data : UInt<32>}, flip ready : UInt<1>} - output count : UInt<3> - mem ram : {data : UInt<32>}[4] - reg cnt945 : UInt<2> - on-reset cnt945 := UInt<1>(0) - reg cnt946 : UInt<2> - on-reset cnt946 := UInt<1>(0) - reg maybe-full947 : UInt<1> - on-reset maybe-full947 := UInt<1>(0) - node tmp948 = eq(cnt945, cnt946) - node ptr-match949 = tmp948 - node tmp950 = bit-not(maybe-full947) - node tmp951 = bit-and(ptr-match949, tmp950) - node empty952 = tmp951 - node tmp953 = bit-and(ptr-match949, maybe-full947) - node full954 = tmp953 - node tmp955 = bit-and(UInt<1>(0), empty952) - node maybe-flow956 = tmp955 - node tmp957 = bit-and(maybe-flow956, deq.ready) - node do-flow958 = tmp957 - node tmp959 = bit-not(do-flow958) - node tmp960 = bit-and(enq.valid, tmp959) - node tmp961 = bit-and(enq.ready, tmp960) - node do-enq962 = tmp961 - node tmp963 = bit-not(do-flow958) - node tmp964 = bit-and(deq.valid, tmp963) - node tmp965 = bit-and(deq.ready, tmp964) - node do-deq966 = tmp965 - when do-enq962 : - accessor a967 = ram[cnt945] - a967 := enq.bits - node tmp968 = eq(cnt945, UInt<2>(3)) - node wrap969 = tmp968 - node tmp970 = bit-and(UInt<1>(0), wrap969) - node tmp971 = add-wrap(cnt945, UInt<1>(1)) - node tmp972 = mux(tmp970, UInt<1>(0), tmp971) - cnt945 := tmp972 - when do-deq966 : - node tmp973 = eq(cnt946, UInt<2>(3)) - node wrap974 = tmp973 - node tmp975 = bit-and(UInt<1>(0), wrap974) - node tmp976 = add-wrap(cnt946, UInt<1>(1)) - node tmp977 = mux(tmp975, UInt<1>(0), tmp976) - cnt946 := tmp977 - node tmp978 = neq(do-enq962, do-deq966) - when tmp978 : - maybe-full947 := do-enq962 - node tmp979 = bit-and(UInt<1>(0), enq.valid) - node tmp980 = bit-or(empty952, tmp979) - node tmp981 = bit-not(tmp980) - deq.valid := tmp981 - node tmp982 = bit-and(UInt<1>(0), deq.ready) - node tmp983 = bit-or(full954, tmp982) - node tmp984 = bit-not(tmp983) - enq.ready := tmp984 - accessor a985 = ram[cnt946] - node tmp986 = mux(maybe-flow956, enq.bits, a985) - deq.bits := tmp986 - node tmp987 = sub-wrap(cnt945, cnt946) - node ptr-diff988 = tmp987 - node tmp989 = bit-and(maybe-full947, ptr-match949) - node tmp990 = cat(tmp989, ptr-diff988) - count := tmp990 - module Memory : - output stall : UInt<1> - output memory : {req_cmd : {valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<32>, tag : UInt<5>, mask : UInt<4>}, flip ready : UInt<1>}, req_data : {valid : UInt<1>, bits : {data : UInt<32>}, flip ready : UInt<1>}, flip resp : {valid : UInt<1>, bits : {data : UInt<32>, tag : UInt<5>}, flip ready : UInt<1>}} - input icache : {addr : UInt<32>, din : UInt<32>, flip dout : UInt<32>, re : UInt<1>, we : UInt<4>} - input dcache : {addr : UInt<32>, din : UInt<32>, flip dout : UInt<32>, re : UInt<1>, we : UInt<4>} - inst memReqCmdQueue of Fifo - inst memReqDataQueue of Fifo944 - reg state991 : UInt<?> - on-reset state991 := UInt<1>(0) - reg tag992 : UInt<5> - on-reset tag992 := UInt<1>(0) - node tmp993 = eq(state991, UInt<1>(0)) - node tmp994 = eq(dcache.we, UInt<1>(0)) - node tmp995 = bit-not(tmp994) - node tmp996 = bit-or(dcache.re, tmp995) - node tmp997 = bit-or(icache.re, tmp996) - node tmp998 = bit-and(tmp993, tmp997) - node cpuReq999 = tmp998 - node tmp1000 = bits(icache.addr, 31, 2) - node tmp1001 = cat(tmp1000, UInt<2>(0)) - node iaddr1002 = tmp1001 - node tmp1003 = bits(dcache.addr, 31, 2) - node tmp1004 = cat(tmp1003, UInt<2>(0)) - node daddr1005 = tmp1004 - reg idata1006 : UInt<?> - reg ddata1007 : UInt<?> - reg ire1008 : UInt<1> - reg dre1009 : UInt<1> - icache.dout := idata1006 - dcache.dout := ddata1007 - memory.req_cmd := memReqCmdQueue.deq - memory.req_data := memReqDataQueue.deq - memory.resp.ready := UInt<1>(0) - node tmp1010 = eq(state991, UInt<1>(1)) - node tmp1011 = bit-not(memReqDataQueue.enq.ready) - node tmp1012 = bit-or(memReqCmdQueue.enq.ready, tmp1011) - node tmp1013 = bit-not(tmp1012) - node tmp1014 = bit-or(tmp1010, tmp1013) - stall := tmp1014 - node tmp1015 = eq(dcache.we, UInt<1>(0)) - node tmp1016 = bit-not(tmp1015) - memReqCmdQueue.enq.bits.rw := tmp1016 - memReqCmdQueue.enq.bits.tag := tag992 - node tmp1017 = eq(dcache.we, UInt<1>(0)) - node tmp1018 = bit-not(tmp1017) - node tmp1019 = bit-not(icache.re) - node tmp1020 = bit-or(tmp1018, tmp1019) - node tmp1021 = mux(tmp1020, daddr1005, iaddr1002) - memReqCmdQueue.enq.bits.addr := tmp1021 - memReqCmdQueue.enq.bits.mask := dcache.we - node tmp1022 = bit-and(memReqDataQueue.enq.ready, cpuReq999) - memReqCmdQueue.enq.valid := tmp1022 - memReqDataQueue.enq.bits.data := dcache.din - node tmp1023 = eq(dcache.we, UInt<1>(0)) - node tmp1024 = bit-not(tmp1023) - node tmp1025 = bit-and(cpuReq999, tmp1024) - node tmp1026 = bit-and(memReqCmdQueue.enq.ready, tmp1025) - memReqDataQueue.enq.valid := tmp1026 - node tmp1027 = eq(state991, UInt<1>(0)) - when tmp1027 : - node tmp1028 = bit-or(icache.re, dcache.re) - node tmp1029 = eq(dcache.we, UInt<1>(0)) - node tmp1030 = bit-not(tmp1029) - node tmp1031 = bit-and(tmp1030, memReqCmdQueue.enq.ready) - node tmp1032 = bit-not(tmp1031) - node tmp1033 = bit-and(tmp1028, tmp1032) - when tmp1033 : - ire1008 := icache.re - dre1009 := dcache.re - state991 := UInt<1>(1) - node tmp1034 = eq(state991, UInt<1>(1)) - when tmp1034 : - memory.resp.ready := UInt<1>(1) - node tmp1035 = eq(memory.resp.bits.tag, tag992) - node tmp1036 = bit-and(memory.resp.valid, tmp1035) - when tmp1036 : - state991 := UInt<1>(0) - node tmp1037 = add-wrap(tag992, UInt<1>(1)) - tag992 := tmp1037 - memory.resp.ready := UInt<1>(0) - when ire1008 : - idata1006 := memory.resp.bits.data - when dre1009 : - ddata1007 := memory.resp.bits.data - module Tile : - output htif : {host : {flip hid : UInt<1>, tohost : UInt<32>, status : UInt<32>}} - output memory : {req_cmd : {valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<32>, tag : UInt<5>, mask : UInt<4>}, flip ready : UInt<1>}, req_data : {valid : UInt<1>, bits : {data : UInt<32>}, flip ready : UInt<1>}, flip resp : {valid : UInt<1>, bits : {data : UInt<32>, tag : UInt<5>}, flip ready : UInt<1>}} - inst core of Core - inst memmod of Memory - htif.host := core.host - memory := memmod.memory - core.stall := memmod.stall - memmod.icache := core.icache - memmod.dcache := core.dcache - |
