; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s ;CHECK: Done! circuit Core : module ALU : input B : UInt<32> output out : UInt<32> output sum : UInt<32> input A : UInt<32> input alu_op : UInt<4> node shamt = bits(B, 4, 0) node T_1224 = add-wrap(A, B) node T_1225 = sub-wrap(A, B) node T_1226 = as-SInt(A) node T_1227 = dshr(T_1226, shamt) node T_1228 = as-UInt(T_1227) node T_1229 = dshr(A, shamt) node T_1230 = dshl(A, shamt) node T_1231 = bits(T_1230, 31, 0) node T_1232 = as-SInt(A) node T_1233 = as-SInt(B) node T_1234 = lt(T_1232, T_1233) node T_1235 = as-UInt(T_1234) node T_1236 = lt(A, B) node T_1237 = as-UInt(T_1236) node T_1238 = bit-and(A, B) node T_1239 = bit-or(A, B) node T_1240 = bit-xor(A, B) node T_1241 = eq(UInt<4>(10), alu_op) node T_1242 = mux(T_1241, A, B) node T_1243 = eq(UInt<4>(4), alu_op) node T_1244 = mux(T_1243, T_1240, T_1242) node T_1245 = eq(UInt<4>(3), alu_op) node T_1246 = mux(T_1245, T_1239, T_1244) node T_1247 = eq(UInt<4>(2), alu_op) node T_1248 = mux(T_1247, T_1238, T_1246) node T_1249 = eq(UInt<4>(7), alu_op) node T_1250 = mux(T_1249, T_1237, T_1248) node T_1251 = eq(UInt<4>(5), alu_op) node T_1252 = mux(T_1251, T_1235, T_1250) node T_1253 = eq(UInt<4>(6), alu_op) node T_1254 = mux(T_1253, T_1231, T_1252) node T_1255 = eq(UInt<4>(8), alu_op) node T_1256 = mux(T_1255, T_1229, T_1254) node T_1257 = eq(UInt<4>(9), alu_op) node T_1258 = mux(T_1257, T_1228, T_1256) node T_1259 = eq(UInt<4>(1), alu_op) node T_1260 = mux(T_1259, T_1225, T_1258) node T_1261 = eq(UInt<4>(0), alu_op) node oot = mux(T_1261, T_1224, T_1260) node T_1262 = bits(oot, 31, 0) out := T_1262 node T_1263 = bit(alu_op, 0) node T_1264 = sub-wrap(UInt<1>(0), B) node T_1265 = mux(T_1263, T_1264, B) node T_1266 = add-wrap(A, T_1265) sum := T_1266 module BrCond : input br_type : UInt<3> input rs1 : UInt<32> input rs2 : UInt<32> output taken : UInt<1> node eq = eq(rs1, rs2) node neq = bit-not(eq) node T_1267 = as-SInt(rs1) node T_1268 = as-SInt(rs2) node lt = lt(T_1267, T_1268) node ge = bit-not(lt) node ltu = lt(rs1, rs2) node geu = bit-not(ltu) node T_1269 = eq(br_type, UInt<3>(2)) node T_1270 = bit-and(T_1269, eq) node T_1271 = eq(br_type, UInt<3>(6)) node T_1272 = bit-and(T_1271, neq) node T_1273 = bit-or(T_1270, T_1272) node T_1274 = eq(br_type, UInt<3>(1)) node T_1275 = bit-and(T_1274, lt) node T_1276 = bit-or(T_1273, T_1275) node T_1277 = eq(br_type, UInt<3>(5)) node T_1278 = bit-and(T_1277, ge) node T_1279 = bit-or(T_1276, T_1278) node T_1280 = eq(br_type, UInt<3>(0)) node T_1281 = bit-and(T_1280, ltu) node T_1282 = bit-or(T_1279, T_1281) node T_1283 = eq(br_type, UInt<3>(4)) node T_1284 = bit-and(T_1283, geu) node T_1285 = bit-or(T_1282, T_1284) taken := T_1285 module RegFile : input raddr1 : UInt<5> input raddr2 : UInt<5> output rdata1 : UInt<32> output rdata2 : UInt<32> input wen : UInt<1> input waddr : UInt<5> input wdata : UInt<32> cmem regs : UInt<32>[32] node T_1286 = eq(raddr1, UInt<1>(0)) node T_1287 = bit-not(T_1286) infer accessor T_1288 = regs[raddr1] node T_1289 = mux(T_1287, T_1288, UInt<1>(0)) rdata1 := T_1289 node T_1290 = eq(raddr2, UInt<1>(0)) node T_1291 = bit-not(T_1290) infer accessor T_1292 = regs[raddr2] node T_1293 = mux(T_1291, T_1292, UInt<1>(0)) rdata2 := T_1293 node T_1294 = eq(waddr, UInt<1>(0)) node T_1295 = bit-not(T_1294) node T_1296 = bit-and(wen, T_1295) when T_1296 : infer accessor T_1297 = regs[waddr] T_1297 := wdata module ImmGenWire : output out : UInt<32> input sel : UInt<3> input inst : UInt<32> node T_1298 = bits(inst, 31, 20) node Iimm = as-SInt(T_1298) node T_1299 = bits(inst, 31, 25) node T_1300 = bits(inst, 11, 7) node T_1301 = cat(T_1299, T_1300) node Simm = as-SInt(T_1301) node T_1302 = bit(inst, 31) node T_1303 = bit(inst, 7) node T_1304 = bits(inst, 30, 25) node T_1305 = bits(inst, 11, 8) node T_1306 = cat(T_1302, T_1303) node T_1307 = cat(T_1305, UInt<1>(0)) node T_1308 = cat(T_1304, T_1307) node T_1309 = cat(T_1306, T_1308) node Bimm = as-SInt(T_1309) node T_1310 = bits(inst, 31, 12) node T_1311 = cat(T_1310, UInt<12>(0)) node Uimm = as-SInt(T_1311) node T_1312 = bit(inst, 31) node T_1313 = bits(inst, 19, 12) node T_1314 = bit(inst, 20) node T_1315 = bits(inst, 30, 25) node T_1316 = bits(inst, 24, 21) node T_1317 = cat(T_1313, T_1314) node T_1318 = cat(T_1312, T_1317) node T_1319 = cat(T_1316, UInt<1>(0)) node T_1320 = cat(T_1315, T_1319) node T_1321 = cat(T_1318, T_1320) node Jimm = as-SInt(T_1321) node T_1322 = bits(inst, 19, 15) node T_1323 = pad(T_1322, 32) node Zimm = as-SInt(T_1323) node T_1324 = eq(UInt<3>(3), sel) node T_1325 = mux(T_1324, Jimm, Zimm) node T_1326 = eq(UInt<3>(2), sel) node T_1327 = mux(T_1326, Uimm, T_1325) node T_1328 = eq(UInt<3>(4), sel) node T_1329 = mux(T_1328, Bimm, T_1327) node T_1330 = eq(UInt<3>(1), sel) node T_1331 = mux(T_1330, Simm, T_1329) node T_1332 = eq(UInt<3>(0), sel) node T_1333 = mux(T_1332, Iimm, T_1331) node T_1334 = as-UInt(T_1333) out := T_1334 module CSR : output host : {status : UInt<32>, flip hid : UInt<1>, tohost : UInt<32>} input src : UInt<32> input cmd : UInt<2> output data : UInt<32> input addr : UInt<12> reg reg_tohost : UInt<32> on-reset reg_tohost := UInt<32>(0) reg reg_status : UInt<32> on-reset reg_status := UInt<32>(0) host.tohost := reg_tohost host.status := reg_status node T_1335 = eq(UInt<12>(1291), addr) node T_1336 = mux(T_1335, host.hid, UInt<1>(0)) node T_1337 = eq(UInt<12>(1290), addr) node T_1338 = mux(T_1337, reg_status, T_1336) node T_1339 = eq(UInt<12>(1310), addr) node T_1340 = mux(T_1339, reg_tohost, T_1338) data := T_1340 node T_1341 = eq(cmd, UInt<2>(1)) when T_1341 : node T_1342 = eq(addr, UInt<12>(1310)) when T_1342 : reg_tohost := src node T_1343 = eq(addr, UInt<12>(1290)) when T_1343 : reg_status := src node T_1344 = eq(cmd, UInt<2>(2)) node T_1345 = neq(src, UInt<1>(0)) node T_1346 = bit-and(T_1344, T_1345) when T_1346 : node T_1347 = eq(addr, UInt<12>(1310)) when T_1347 : node T_1348 = dshl(UInt<1>(1), bits(src,5,0)) node T_1349 = bit-or(data, T_1348) reg_tohost := T_1349 node T_1350 = eq(addr, UInt<12>(1290)) when T_1350 : node T_1351 = dshl(UInt<1>(1), bits(src,5,0)) node T_1352 = bit-or(data, T_1351) reg_status := T_1352 node T_1353 = eq(cmd, UInt<2>(3)) node T_1354 = neq(src, UInt<1>(0)) node T_1355 = bit-and(T_1353, T_1354) when T_1355 : node T_1356 = eq(addr, UInt<12>(1310)) when T_1356 : node T_1357 = dshl(UInt<1>(0), bits(src,5,0)) node T_1358 = bit-and(data, T_1357) reg_tohost := T_1358 node T_1359 = eq(addr, UInt<12>(1290)) when T_1359 : node T_1360 = dshl(UInt<1>(0), bits(src,5,0)) node T_1361 = bit-and(data, T_1360) reg_status := T_1361 module Datapath : output host : {status : UInt<32>, flip hid : UInt<1>, tohost : UInt<32>} input ctrl : {flip inst : UInt<32>, flip stall : UInt<1>, 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>} output icache : {re : UInt<1>, addr : UInt<32>, flip dout : UInt<32>, we : UInt<4>, din : UInt<32>} output dcache : {re : UInt<1>, addr : UInt<32>, flip dout : UInt<32>, we : UInt<4>, din : UInt<32>} input stall : UInt<1> inst alu of ALU inst brCond of BrCond inst regFile of RegFile inst immGen of ImmGenWire reg fe_inst : UInt<32> on-reset fe_inst := UInt<32>(0) reg fe_pc : UInt reg ew_inst : UInt<32> on-reset ew_inst := UInt<32>(0) reg ew_pc : UInt reg ew_alu : UInt node T_1362 = sub-wrap(UInt<14>(8192), UInt<32>(4)) reg pc : UInt<32> on-reset pc := T_1362 node T_1363 = eq(ctrl.pc_sel, UInt<1>(1)) node T_1364 = bit-or(T_1363, brCond.taken) node T_1365 = add-wrap(pc, UInt<3>(4)) node iaddr = mux(T_1364, alu.sum, T_1365) node T_1366 = eq(ctrl.inst_type, UInt<1>(1)) node T_1367 = bit-or(T_1366, brCond.taken) node inst = mux(T_1367, UInt<32>(19), icache.dout) icache.we := UInt<1>(0) icache.din := UInt<1>(0) icache.addr := iaddr icache.re := ctrl.inst_re node T_1368 = eq(dcache.we, UInt<1>(0)) node T_1369 = bit-not(T_1368) node T_1370 = bit-not(T_1369) node T_1371 = bit-and(icache.re, T_1370) node T_1372 = mux(T_1371, iaddr, pc) pc := T_1372 node T_1373 = bit-not(stall) when T_1373 : fe_pc := pc fe_inst := inst ctrl.inst := fe_inst ctrl.stall := stall node rd_addr = bits(fe_inst, 11, 7) node rs1_addr = bits(fe_inst, 19, 15) node rs2_addr = bits(fe_inst, 24, 20) regFile.raddr1 := rs1_addr regFile.raddr2 := rs2_addr immGen.inst := fe_inst immGen.sel := ctrl.imm_sel node T_1374 = eq(rs1_addr, UInt<1>(0)) node rs1NotZero = bit-not(T_1374) node T_1375 = eq(rs2_addr, UInt<1>(0)) node rs2NotZero = bit-not(T_1375) node T_1376 = eq(ctrl.wb_sel, UInt<2>(0)) node alutype = bit-and(ctrl.wb_en, T_1376) node ex_rd_addr = bits(ew_inst, 11, 7) node T_1377 = bit-and(alutype, rs1NotZero) node T_1378 = eq(rs1_addr, ex_rd_addr) node T_1379 = bit-and(T_1377, T_1378) node rs1 = mux(T_1379, ew_alu, regFile.rdata1) node T_1380 = bit-and(alutype, rs2NotZero) node T_1381 = eq(rs2_addr, ex_rd_addr) node T_1382 = bit-and(T_1380, T_1381) node rs2 = mux(T_1382, ew_alu, regFile.rdata2) node T_1383 = eq(ctrl.A_sel, UInt<1>(0)) node T_1384 = mux(T_1383, rs1, fe_pc) alu.A := T_1384 node T_1385 = eq(ctrl.B_sel, UInt<1>(0)) node T_1386 = mux(T_1385, rs2, immGen.out) alu.B := T_1386 alu.alu_op := ctrl.alu_op brCond.rs1 := rs1 brCond.rs2 := rs2 brCond.br_type := ctrl.br_type node T_1387 = bit(alu.sum, 1) node T_1388 = dshl(T_1387, UInt<3>(4)) node T_1389 = bit(alu.sum, 0) node T_1390 = dshl(T_1389, UInt<2>(3)) node woffset = bit-or(T_1388, T_1390) dcache.re := ctrl.data_re node T_1391 = mux(stall, ew_alu, alu.sum) dcache.addr := T_1391 node T_1392 = bits(alu.sum, 1, 0) node T_1393 = dshl(UInt<2>(3), T_1392) node T_1394 = bits(T_1393, 3, 0) node T_1395 = bits(alu.sum, 1, 0) node T_1396 = dshl(UInt<1>(1), T_1395) node T_1397 = bits(T_1396, 3, 0) node T_1398 = eq(UInt<2>(2), ctrl.st_type) node T_1399 = mux(T_1398, T_1397, UInt<4>(0)) node T_1400 = eq(UInt<2>(1), ctrl.st_type) node T_1401 = mux(T_1400, T_1394, T_1399) node T_1402 = eq(UInt<2>(0), ctrl.st_type) node T_1403 = mux(T_1402, UInt<4>(15), T_1401) node T_1404 = mux(stall, UInt<4>(0), T_1403) dcache.we := T_1404 node T_1405 = dshl(rs2, woffset) node T_1406 = bits(T_1405, 31, 0) dcache.din := T_1406 node T_1407 = bit-not(stall) when T_1407 : ew_pc := fe_pc ew_inst := fe_inst ew_alu := alu.out node T_1408 = bit(ew_alu, 1) node T_1409 = dshl(T_1408, UInt<3>(4)) node T_1410 = bit(ew_alu, 0) node T_1411 = dshl(T_1410, UInt<2>(3)) node loffset = bit-or(T_1409, T_1411) node lshift = dshr(dcache.dout, loffset) node T_1412 = bits(lshift, 15, 0) node T_1413 = as-SInt(T_1412) node T_1414 = pad(T_1413, 32) node T_1415 = as-UInt(T_1414) node T_1416 = bits(lshift, 7, 0) node T_1417 = as-SInt(T_1416) node T_1418 = pad(T_1417, 32) node T_1419 = as-UInt(T_1418) node T_1420 = bits(lshift, 15, 0) node T_1421 = bits(lshift, 7, 0) node T_1422 = eq(UInt<3>(4), ctrl.ld_type) node T_1423 = mux(T_1422, T_1421, dcache.dout) node T_1424 = eq(UInt<3>(3), ctrl.ld_type) node T_1425 = mux(T_1424, T_1420, T_1423) node T_1426 = eq(UInt<3>(2), ctrl.ld_type) node T_1427 = mux(T_1426, T_1419, T_1425) node T_1428 = eq(UInt<3>(1), ctrl.ld_type) node load = mux(T_1428, T_1415, T_1427) inst csr of CSR host := csr.host csr.src := ew_alu node T_1429 = bits(ew_inst, 31, 20) csr.addr := T_1429 csr.cmd := ctrl.csr_cmd node T_1430 = add-wrap(ew_pc, UInt<3>(4)) node T_1431 = eq(UInt<2>(3), ctrl.wb_sel) node T_1432 = mux(T_1431, csr.data, ew_alu) node T_1433 = eq(UInt<2>(2), ctrl.wb_sel) node T_1434 = mux(T_1433, T_1430, T_1432) node T_1435 = eq(UInt<2>(1), ctrl.wb_sel) node regWrite = mux(T_1435, load, T_1434) regFile.wen := ctrl.wb_en regFile.waddr := ex_rd_addr regFile.wdata := regWrite module Control : input clk : Clock input reset : UInt<1> output ctrl : {flip inst : UInt<32>, st_type : UInt<2>, ld_type : UInt<3>, wb_sel : UInt<2>, wb_en : UInt<1>, csr_cmd : UInt<2>, pc_sel : UInt<1>, inst_re : UInt<1>, flip stall : UInt<1>, data_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>} node T_831 = and(UInt<7>(127), ctrl.inst) node T_832 = eq(T_831, UInt<6>(55)) node T_833 = and(UInt<7>(127), ctrl.inst) node T_834 = eq(T_833, UInt<5>(23)) node T_835 = and(UInt<7>(127), ctrl.inst) node T_836 = eq(T_835, UInt<7>(111)) node T_837 = and(UInt<15>(28799), ctrl.inst) node T_838 = eq(T_837, UInt<7>(103)) node T_839 = and(UInt<15>(28799), ctrl.inst) node T_840 = eq(T_839, UInt<7>(99)) node T_841 = and(UInt<15>(28799), ctrl.inst) node T_842 = eq(T_841, UInt<13>(4195)) node T_843 = and(UInt<15>(28799), ctrl.inst) node T_844 = eq(T_843, UInt<15>(16483)) node T_845 = and(UInt<15>(28799), ctrl.inst) node T_846 = eq(T_845, UInt<15>(20579)) node T_847 = and(UInt<15>(28799), ctrl.inst) node T_848 = eq(T_847, UInt<15>(24675)) node T_849 = and(UInt<15>(28799), ctrl.inst) node T_850 = eq(T_849, UInt<15>(28771)) node T_851 = and(UInt<15>(28799), ctrl.inst) node T_852 = eq(T_851, UInt<2>(3)) node T_853 = and(UInt<15>(28799), ctrl.inst) node T_854 = eq(T_853, UInt<13>(4099)) node T_855 = and(UInt<15>(28799), ctrl.inst) node T_856 = eq(T_855, UInt<14>(8195)) node T_857 = and(UInt<15>(28799), ctrl.inst) node T_858 = eq(T_857, UInt<15>(16387)) node T_859 = and(UInt<15>(28799), ctrl.inst) node T_860 = eq(T_859, UInt<15>(20483)) node T_861 = and(UInt<15>(28799), ctrl.inst) node T_862 = eq(T_861, UInt<6>(35)) node T_863 = and(UInt<15>(28799), ctrl.inst) node T_864 = eq(T_863, UInt<13>(4131)) node T_865 = and(UInt<15>(28799), ctrl.inst) node T_866 = eq(T_865, UInt<14>(8227)) node T_867 = and(UInt<15>(28799), ctrl.inst) node T_868 = eq(T_867, UInt<5>(19)) node T_869 = and(UInt<15>(28799), ctrl.inst) node T_870 = eq(T_869, UInt<14>(8211)) node T_871 = and(UInt<15>(28799), ctrl.inst) node T_872 = eq(T_871, UInt<14>(12307)) node T_873 = and(UInt<15>(28799), ctrl.inst) node T_874 = eq(T_873, UInt<15>(16403)) node T_875 = and(UInt<15>(28799), ctrl.inst) node T_876 = eq(T_875, UInt<15>(24595)) node T_877 = and(UInt<15>(28799), ctrl.inst) node T_878 = eq(T_877, UInt<15>(28691)) node T_879 = and(UInt<32>(4261441663), ctrl.inst) node T_880 = eq(T_879, UInt<13>(4115)) node T_881 = and(UInt<32>(4261441663), ctrl.inst) node T_882 = eq(T_881, UInt<15>(20499)) node T_883 = and(UInt<32>(4261441663), ctrl.inst) node T_884 = eq(T_883, UInt<31>(1073762323)) node T_885 = and(UInt<32>(4261441663), ctrl.inst) node T_886 = eq(T_885, UInt<6>(51)) node T_887 = and(UInt<32>(4261441663), ctrl.inst) node T_888 = eq(T_887, UInt<31>(1073741875)) node T_889 = and(UInt<32>(4261441663), ctrl.inst) node T_890 = eq(T_889, UInt<13>(4147)) node T_891 = and(UInt<32>(4261441663), ctrl.inst) node T_892 = eq(T_891, UInt<14>(8243)) node T_893 = and(UInt<32>(4261441663), ctrl.inst) node T_894 = eq(T_893, UInt<14>(12339)) node T_895 = and(UInt<32>(4261441663), ctrl.inst) node T_896 = eq(T_895, UInt<15>(16435)) node T_897 = and(UInt<32>(4261441663), ctrl.inst) node T_898 = eq(T_897, UInt<15>(20531)) node T_899 = and(UInt<32>(4261441663), ctrl.inst) node T_900 = eq(T_899, UInt<31>(1073762355)) node T_901 = and(UInt<32>(4261441663), ctrl.inst) node T_902 = eq(T_901, UInt<15>(24627)) node T_903 = and(UInt<32>(4261441663), ctrl.inst) node T_904 = eq(T_903, UInt<15>(28723)) node T_905 = and(UInt<15>(28799), ctrl.inst) node T_906 = eq(T_905, UInt<13>(4211)) node T_907 = and(UInt<15>(28799), ctrl.inst) node T_908 = eq(T_907, UInt<14>(8307)) node T_909 = and(UInt<15>(28799), ctrl.inst) node T_910 = eq(T_909, UInt<14>(12403)) node T_911 = and(UInt<15>(28799), ctrl.inst) node T_912 = eq(T_911, UInt<15>(20595)) node T_913 = and(UInt<15>(28799), ctrl.inst) node T_914 = eq(T_913, UInt<15>(24691)) node T_915 = and(UInt<15>(28799), ctrl.inst) node T_916 = eq(T_915, UInt<15>(28787)) node T_917 = mux(T_916, UInt<1>(0), UInt<1>(0)) node T_918 = mux(T_914, UInt<1>(0), T_917) node T_919 = mux(T_912, UInt<1>(0), T_918) node T_920 = mux(T_910, UInt<1>(0), T_919) node T_921 = mux(T_908, UInt<1>(0), T_920) node T_922 = mux(T_906, UInt<1>(0), T_921) node T_923 = mux(T_904, UInt<1>(0), T_922) node T_924 = mux(T_902, UInt<1>(0), T_923) node T_925 = mux(T_900, UInt<1>(0), T_924) node T_926 = mux(T_898, UInt<1>(0), T_925) node T_927 = mux(T_896, UInt<1>(0), T_926) node T_928 = mux(T_894, UInt<1>(0), T_927) node T_929 = mux(T_892, UInt<1>(0), T_928) node T_930 = mux(T_890, UInt<1>(0), T_929) node T_931 = mux(T_888, UInt<1>(0), T_930) node T_932 = mux(T_886, UInt<1>(0), T_931) node T_933 = mux(T_884, UInt<1>(0), T_932) node T_934 = mux(T_882, UInt<1>(0), T_933) node T_935 = mux(T_880, UInt<1>(0), T_934) node T_936 = mux(T_878, UInt<1>(0), T_935) node T_937 = mux(T_876, UInt<1>(0), T_936) node T_938 = mux(T_874, UInt<1>(0), T_937) node T_939 = mux(T_872, UInt<1>(0), T_938) node T_940 = mux(T_870, UInt<1>(0), T_939) node T_941 = mux(T_868, UInt<1>(0), T_940) node T_942 = mux(T_866, UInt<1>(0), T_941) node T_943 = mux(T_864, UInt<1>(0), T_942) node T_944 = mux(T_862, UInt<1>(0), T_943) node T_945 = mux(T_860, UInt<1>(0), T_944) node T_946 = mux(T_858, UInt<1>(0), T_945) node T_947 = mux(T_856, UInt<1>(0), T_946) node T_948 = mux(T_854, UInt<1>(0), T_947) node T_949 = mux(T_852, UInt<1>(0), T_948) node T_950 = mux(T_850, UInt<1>(0), T_949) node T_951 = mux(T_848, UInt<1>(0), T_950) node T_952 = mux(T_846, UInt<1>(0), T_951) node T_953 = mux(T_844, UInt<1>(0), T_952) node T_954 = mux(T_842, UInt<1>(0), T_953) node T_955 = mux(T_840, UInt<1>(0), T_954) node T_956 = mux(T_838, UInt<1>(1), T_955) node T_957 = mux(T_836, UInt<1>(1), T_956) node T_958 = mux(T_834, UInt<1>(0), T_957) node T_959 = mux(T_832, UInt<1>(0), T_958) node T_960 = mux(T_916, UInt<1>(1), UInt<1>(1)) node T_961 = mux(T_914, UInt<1>(1), T_960) node T_962 = mux(T_912, UInt<1>(1), T_961) node T_963 = mux(T_910, UInt<1>(0), T_962) node T_964 = mux(T_908, UInt<1>(0), T_963) node T_965 = mux(T_906, UInt<1>(0), T_964) node T_966 = mux(T_904, UInt<1>(0), T_965) node T_967 = mux(T_902, UInt<1>(0), T_966) node T_968 = mux(T_900, UInt<1>(0), T_967) node T_969 = mux(T_898, UInt<1>(0), T_968) node T_970 = mux(T_896, UInt<1>(0), T_969) node T_971 = mux(T_894, UInt<1>(0), T_970) node T_972 = mux(T_892, UInt<1>(0), T_971) node T_973 = mux(T_890, UInt<1>(0), T_972) node T_974 = mux(T_888, UInt<1>(0), T_973) node T_975 = mux(T_886, UInt<1>(0), T_974) node T_976 = mux(T_884, UInt<1>(0), T_975) node T_977 = mux(T_882, UInt<1>(0), T_976) node T_978 = mux(T_880, UInt<1>(0), T_977) node T_979 = mux(T_878, UInt<1>(0), T_978) node T_980 = mux(T_876, UInt<1>(0), T_979) node T_981 = mux(T_874, UInt<1>(0), T_980) node T_982 = mux(T_872, UInt<1>(0), T_981) node T_983 = mux(T_870, UInt<1>(0), T_982) node T_984 = mux(T_868, UInt<1>(0), T_983) node T_985 = mux(T_866, UInt<1>(0), T_984) node T_986 = mux(T_864, UInt<1>(0), T_985) node T_987 = mux(T_862, UInt<1>(0), T_986) node T_988 = mux(T_860, UInt<1>(0), T_987) node T_989 = mux(T_858, UInt<1>(0), T_988) node T_990 = mux(T_856, UInt<1>(0), T_989) node T_991 = mux(T_854, UInt<1>(0), T_990) node T_992 = mux(T_852, UInt<1>(0), T_991) node T_993 = mux(T_850, UInt<1>(1), T_992) node T_994 = mux(T_848, UInt<1>(1), T_993) node T_995 = mux(T_846, UInt<1>(1), T_994) node T_996 = mux(T_844, UInt<1>(1), T_995) node T_997 = mux(T_842, UInt<1>(1), T_996) node T_998 = mux(T_840, UInt<1>(1), T_997) node T_999 = mux(T_838, UInt<1>(0), T_998) node T_1000 = mux(T_836, UInt<1>(1), T_999) node T_1001 = mux(T_834, UInt<1>(1), T_1000) node T_1002 = mux(T_832, UInt<1>(1), T_1001) node T_1003 = mux(T_916, UInt<1>(1), UInt<1>(0)) node T_1004 = mux(T_914, UInt<1>(1), T_1003) node T_1005 = mux(T_912, UInt<1>(1), T_1004) node T_1006 = mux(T_910, UInt<1>(0), T_1005) node T_1007 = mux(T_908, UInt<1>(0), T_1006) node T_1008 = mux(T_906, UInt<1>(0), T_1007) node T_1009 = mux(T_904, UInt<1>(0), T_1008) node T_1010 = mux(T_902, UInt<1>(0), T_1009) node T_1011 = mux(T_900, UInt<1>(0), T_1010) node T_1012 = mux(T_898, UInt<1>(0), T_1011) node T_1013 = mux(T_896, UInt<1>(0), T_1012) node T_1014 = mux(T_894, UInt<1>(0), T_1013) node T_1015 = mux(T_892, UInt<1>(0), T_1014) node T_1016 = mux(T_890, UInt<1>(0), T_1015) node T_1017 = mux(T_888, UInt<1>(0), T_1016) node T_1018 = mux(T_886, UInt<1>(0), T_1017) node T_1019 = mux(T_884, UInt<1>(1), T_1018) node T_1020 = mux(T_882, UInt<1>(1), T_1019) node T_1021 = mux(T_880, UInt<1>(1), T_1020) node T_1022 = mux(T_878, UInt<1>(1), T_1021) node T_1023 = mux(T_876, UInt<1>(1), T_1022) node T_1024 = mux(T_874, UInt<1>(1), T_1023) node T_1025 = mux(T_872, UInt<1>(1), T_1024) node T_1026 = mux(T_870, UInt<1>(1), T_1025) node T_1027 = mux(T_868, UInt<1>(1), T_1026) node T_1028 = mux(T_866, UInt<1>(1), T_1027) node T_1029 = mux(T_864, UInt<1>(1), T_1028) node T_1030 = mux(T_862, UInt<1>(1), T_1029) node T_1031 = mux(T_860, UInt<1>(1), T_1030) node T_1032 = mux(T_858, UInt<1>(1), T_1031) node T_1033 = mux(T_856, UInt<1>(1), T_1032) node T_1034 = mux(T_854, UInt<1>(1), T_1033) node T_1035 = mux(T_852, UInt<1>(1), T_1034) node T_1036 = mux(T_850, UInt<1>(1), T_1035) node T_1037 = mux(T_848, UInt<1>(1), T_1036) node T_1038 = mux(T_846, UInt<1>(1), T_1037) node T_1039 = mux(T_844, UInt<1>(1), T_1038) node T_1040 = mux(T_842, UInt<1>(1), T_1039) node T_1041 = mux(T_840, UInt<1>(1), T_1040) node T_1042 = mux(T_838, UInt<1>(1), T_1041) node T_1043 = mux(T_836, UInt<1>(1), T_1042) node T_1044 = mux(T_834, UInt<1>(1), T_1043) node T_1045 = mux(T_832, UInt<1>(1), T_1044) node T_1046 = mux(T_916, UInt<3>(5), UInt<3>(7)) node T_1047 = mux(T_914, UInt<3>(5), T_1046) node T_1048 = mux(T_912, UInt<3>(5), T_1047) node T_1049 = mux(T_910, UInt<3>(5), T_1048) node T_1050 = mux(T_908, UInt<3>(5), T_1049) node T_1051 = mux(T_906, UInt<3>(5), T_1050) node T_1052 = mux(T_904, UInt<3>(7), T_1051) node T_1053 = mux(T_902, UInt<3>(7), T_1052) node T_1054 = mux(T_900, UInt<3>(7), T_1053) node T_1055 = mux(T_898, UInt<3>(7), T_1054) node T_1056 = mux(T_896, UInt<3>(7), T_1055) node T_1057 = mux(T_894, UInt<3>(7), T_1056) node T_1058 = mux(T_892, UInt<3>(7), T_1057) node T_1059 = mux(T_890, UInt<3>(7), T_1058) node T_1060 = mux(T_888, UInt<3>(7), T_1059) node T_1061 = mux(T_886, UInt<3>(7), T_1060) node T_1062 = mux(T_884, UInt<3>(0), T_1061) node T_1063 = mux(T_882, UInt<3>(0), T_1062) node T_1064 = mux(T_880, UInt<3>(0), T_1063) node T_1065 = mux(T_878, UInt<3>(0), T_1064) node T_1066 = mux(T_876, UInt<3>(0), T_1065) node T_1067 = mux(T_874, UInt<3>(0), T_1066) node T_1068 = mux(T_872, UInt<3>(0), T_1067) node T_1069 = mux(T_870, UInt<3>(0), T_1068) node T_1070 = mux(T_868, UInt<3>(0), T_1069) node T_1071 = mux(T_866, UInt<3>(1), T_1070) node T_1072 = mux(T_864, UInt<3>(1), T_1071) node T_1073 = mux(T_862, UInt<3>(1), T_1072) node T_1074 = mux(T_860, UInt<3>(0), T_1073) node T_1075 = mux(T_858, UInt<3>(0), T_1074) node T_1076 = mux(T_856, UInt<3>(0), T_1075) node T_1077 = mux(T_854, UInt<3>(0), T_1076) node T_1078 = mux(T_852, UInt<3>(0), T_1077) node T_1079 = mux(T_850, UInt<3>(4), T_1078) node T_1080 = mux(T_848, UInt<3>(4), T_1079) node T_1081 = mux(T_846, UInt<3>(4), T_1080) node T_1082 = mux(T_844, UInt<3>(4), T_1081) node T_1083 = mux(T_842, UInt<3>(4), T_1082) node T_1084 = mux(T_840, UInt<3>(4), T_1083) node T_1085 = mux(T_838, UInt<3>(0), T_1084) node T_1086 = mux(T_836, UInt<3>(3), T_1085) node T_1087 = mux(T_834, UInt<3>(2), T_1086) node T_1088 = mux(T_832, UInt<3>(2), T_1087) node T_1089 = mux(T_916, UInt<4>(11), UInt<4>(15)) node T_1090 = mux(T_914, UInt<4>(11), T_1089) node T_1091 = mux(T_912, UInt<4>(11), T_1090) node T_1092 = mux(T_910, UInt<4>(10), T_1091) node T_1093 = mux(T_908, UInt<4>(10), T_1092) node T_1094 = mux(T_906, UInt<4>(10), T_1093) node T_1095 = mux(T_904, UInt<4>(2), T_1094) node T_1096 = mux(T_902, UInt<4>(3), T_1095) node T_1097 = mux(T_900, UInt<4>(9), T_1096) node T_1098 = mux(T_898, UInt<4>(8), T_1097) node T_1099 = mux(T_896, UInt<4>(4), T_1098) node T_1100 = mux(T_894, UInt<4>(7), T_1099) node T_1101 = mux(T_892, UInt<4>(5), T_1100) node T_1102 = mux(T_890, UInt<4>(6), T_1101) node T_1103 = mux(T_888, UInt<4>(1), T_1102) node T_1104 = mux(T_886, UInt<4>(0), T_1103) node T_1105 = mux(T_884, UInt<4>(9), T_1104) node T_1106 = mux(T_882, UInt<4>(8), T_1105) node T_1107 = mux(T_880, UInt<4>(6), T_1106) node T_1108 = mux(T_878, UInt<4>(2), T_1107) node T_1109 = mux(T_876, UInt<4>(3), T_1108) node T_1110 = mux(T_874, UInt<4>(4), T_1109) node T_1111 = mux(T_872, UInt<4>(7), T_1110) node T_1112 = mux(T_870, UInt<4>(5), T_1111) node T_1113 = mux(T_868, UInt<4>(0), T_1112) node T_1114 = mux(T_866, UInt<4>(0), T_1113) node T_1115 = mux(T_864, UInt<4>(0), T_1114) node T_1116 = mux(T_862, UInt<4>(0), T_1115) node T_1117 = mux(T_860, UInt<4>(0), T_1116) node T_1118 = mux(T_858, UInt<4>(0), T_1117) node T_1119 = mux(T_856, UInt<4>(0), T_1118) node T_1120 = mux(T_854, UInt<4>(0), T_1119) node T_1121 = mux(T_852, UInt<4>(0), T_1120) node T_1122 = mux(T_850, UInt<4>(0), T_1121) node T_1123 = mux(T_848, UInt<4>(0), T_1122) node T_1124 = mux(T_846, UInt<4>(0), T_1123) node T_1125 = mux(T_844, UInt<4>(0), T_1124) node T_1126 = mux(T_842, UInt<4>(0), T_1125) node T_1127 = mux(T_840, UInt<4>(0), T_1126) node T_1128 = mux(T_838, UInt<4>(0), T_1127) node T_1129 = mux(T_836, UInt<4>(0), T_1128) node T_1130 = mux(T_834, UInt<4>(0), T_1129) node T_1131 = mux(T_832, UInt<4>(11), T_1130) node T_1132 = mux(T_916, UInt<3>(7), UInt<3>(7)) node T_1133 = mux(T_914, UInt<3>(7), T_1132) node T_1134 = mux(T_912, UInt<3>(7), T_1133) node T_1135 = mux(T_910, UInt<3>(7), T_1134) node T_1136 = mux(T_908, UInt<3>(7), T_1135) node T_1137 = mux(T_906, UInt<3>(7), T_1136) node T_1138 = mux(T_904, UInt<3>(7), T_1137) node T_1139 = mux(T_902, UInt<3>(7), T_1138) node T_1140 = mux(T_900, UInt<3>(7), T_1139) node T_1141 = mux(T_898, UInt<3>(7), T_1140) node T_1142 = mux(T_896, UInt<3>(7), T_1141) node T_1143 = mux(T_894, UInt<3>(7), T_1142) node T_1144 = mux(T_892, UInt<3>(7), T_1143) node T_1145 = mux(T_890, UInt<3>(7), T_1144) node T_1146 = mux(T_888, UInt<3>(7), T_1145) node T_1147 = mux(T_886, UInt<3>(7), T_1146) node T_1148 = mux(T_884, UInt<3>(7), T_1147) node T_1149 = mux(T_882, UInt<3>(7), T_1148) node T_1150 = mux(T_880, UInt<3>(7), T_1149) node T_1151 = mux(T_878, UInt<3>(7), T_1150) node T_1152 = mux(T_876, UInt<3>(7), T_1151) node T_1153 = mux(T_874, UInt<3>(7), T_1152) node T_1154 = mux(T_872, UInt<3>(7), T_1153) node T_1155 = mux(T_870, UInt<3>(7), T_1154) node T_1156 = mux(T_868, UInt<3>(7), T_1155) node T_1157 = mux(T_866, UInt<3>(7), T_1156) node T_1158 = mux(T_864, UInt<3>(7), T_1157) node T_1159 = mux(T_862, UInt<3>(7), T_1158) node T_1160 = mux(T_860, UInt<3>(7), T_1159) node T_1161 = mux(T_858, UInt<3>(7), T_1160) node T_1162 = mux(T_856, UInt<3>(7), T_1161) node T_1163 = mux(T_854, UInt<3>(7), T_1162) node T_1164 = mux(T_852, UInt<3>(7), T_1163) node T_1165 = mux(T_850, UInt<3>(4), T_1164) node T_1166 = mux(T_848, UInt<3>(0), T_1165) node T_1167 = mux(T_846, UInt<3>(5), T_1166) node T_1168 = mux(T_844, UInt<3>(1), T_1167) node T_1169 = mux(T_842, UInt<3>(6), T_1168) node T_1170 = mux(T_840, UInt<3>(2), T_1169) node T_1171 = mux(T_838, UInt<3>(7), T_1170) node T_1172 = mux(T_836, UInt<3>(7), T_1171) node T_1173 = mux(T_834, UInt<3>(7), T_1172) node T_1174 = mux(T_832, UInt<3>(7), T_1173) node T_1175 = mux(T_916, UInt<1>(0), UInt<1>(0)) node T_1176 = mux(T_914, UInt<1>(0), T_1175) node T_1177 = mux(T_912, UInt<1>(0), T_1176) node T_1178 = mux(T_910, UInt<1>(0), T_1177) node T_1179 = mux(T_908, UInt<1>(0), T_1178) node T_1180 = mux(T_906, UInt<1>(0), T_1179) node T_1181 = mux(T_904, UInt<1>(0), T_1180) node T_1182 = mux(T_902, UInt<1>(0), T_1181) node T_1183 = mux(T_900, UInt<1>(0), T_1182) node T_1184 = mux(T_898, UInt<1>(0), T_1183) node T_1185 = mux(T_896, UInt<1>(0), T_1184) node T_1186 = mux(T_894, UInt<1>(0), T_1185) node T_1187 = mux(T_892, UInt<1>(0), T_1186) node T_1188 = mux(T_890, UInt<1>(0), T_1187) node T_1189 = mux(T_888, UInt<1>(0), T_1188) node T_1190 = mux(T_886, UInt<1>(0), T_1189) node T_1191 = mux(T_884, UInt<1>(0), T_1190) node T_1192 = mux(T_882, UInt<1>(0), T_1191) node T_1193 = mux(T_880, UInt<1>(0), T_1192) node T_1194 = mux(T_878, UInt<1>(0), T_1193) node T_1195 = mux(T_876, UInt<1>(0), T_1194) node T_1196 = mux(T_874, UInt<1>(0), T_1195) node T_1197 = mux(T_872, UInt<1>(0), T_1196) node T_1198 = mux(T_870, UInt<1>(0), T_1197) node T_1199 = mux(T_868, UInt<1>(0), T_1198) node T_1200 = mux(T_866, UInt<1>(0), T_1199) node T_1201 = mux(T_864, UInt<1>(0), T_1200) node T_1202 = mux(T_862, UInt<1>(0), T_1201) node T_1203 = mux(T_860, UInt<1>(0), T_1202) node T_1204 = mux(T_858, UInt<1>(0), T_1203) node T_1205 = mux(T_856, UInt<1>(0), T_1204) node T_1206 = mux(T_854, UInt<1>(0), T_1205) node T_1207 = mux(T_852, UInt<1>(0), T_1206) node T_1208 = mux(T_850, UInt<1>(0), T_1207) node T_1209 = mux(T_848, UInt<1>(0), T_1208) node T_1210 = mux(T_846, UInt<1>(0), T_1209) node T_1211 = mux(T_844, UInt<1>(0), T_1210) node T_1212 = mux(T_842, UInt<1>(0), T_1211) node T_1213 = mux(T_840, UInt<1>(0), T_1212) node T_1214 = mux(T_838, UInt<1>(1), T_1213) node T_1215 = mux(T_836, UInt<1>(1), T_1214) node T_1216 = mux(T_834, UInt<1>(0), T_1215) node T_1217 = mux(T_832, UInt<1>(0), T_1216) node T_1218 = mux(T_916, UInt<2>(3), UInt<2>(3)) node T_1219 = mux(T_914, UInt<2>(3), T_1218) node T_1220 = mux(T_912, UInt<2>(3), T_1219) node T_1221 = mux(T_910, UInt<2>(3), T_1220) node T_1222 = mux(T_908, UInt<2>(3), T_1221) node T_1223 = mux(T_906, UInt<2>(3), T_1222) node T_1224 = mux(T_904, UInt<2>(3), T_1223) node T_1225 = mux(T_902, UInt<2>(3), T_1224) node T_1226 = mux(T_900, UInt<2>(3), T_1225) node T_1227 = mux(T_898, UInt<2>(3), T_1226) node T_1228 = mux(T_896, UInt<2>(3), T_1227) node T_1229 = mux(T_894, UInt<2>(3), T_1228) node T_1230 = mux(T_892, UInt<2>(3), T_1229) node T_1231 = mux(T_890, UInt<2>(3), T_1230) node T_1232 = mux(T_888, UInt<2>(3), T_1231) node T_1233 = mux(T_886, UInt<2>(3), T_1232) node T_1234 = mux(T_884, UInt<2>(3), T_1233) node T_1235 = mux(T_882, UInt<2>(3), T_1234) node T_1236 = mux(T_880, UInt<2>(3), T_1235) node T_1237 = mux(T_878, UInt<2>(3), T_1236) node T_1238 = mux(T_876, UInt<2>(3), T_1237) node T_1239 = mux(T_874, UInt<2>(3), T_1238) node T_1240 = mux(T_872, UInt<2>(3), T_1239) node T_1241 = mux(T_870, UInt<2>(3), T_1240) node T_1242 = mux(T_868, UInt<2>(3), T_1241) node T_1243 = mux(T_866, UInt<2>(0), T_1242) node T_1244 = mux(T_864, UInt<2>(1), T_1243) node T_1245 = mux(T_862, UInt<2>(2), T_1244) node T_1246 = mux(T_860, UInt<2>(3), T_1245) node T_1247 = mux(T_858, UInt<2>(3), T_1246) node T_1248 = mux(T_856, UInt<2>(3), T_1247) node T_1249 = mux(T_854, UInt<2>(3), T_1248) node T_1250 = mux(T_852, UInt<2>(3), T_1249) node T_1251 = mux(T_850, UInt<2>(3), T_1250) node T_1252 = mux(T_848, UInt<2>(3), T_1251) node T_1253 = mux(T_846, UInt<2>(3), T_1252) node T_1254 = mux(T_844, UInt<2>(3), T_1253) node T_1255 = mux(T_842, UInt<2>(3), T_1254) node T_1256 = mux(T_840, UInt<2>(3), T_1255) node T_1257 = mux(T_838, UInt<2>(3), T_1256) node T_1258 = mux(T_836, UInt<2>(3), T_1257) node T_1259 = mux(T_834, UInt<2>(3), T_1258) node T_1260 = mux(T_832, UInt<2>(3), T_1259) node T_1261 = mux(T_916, UInt<3>(7), UInt<3>(7)) node T_1262 = mux(T_914, UInt<3>(7), T_1261) node T_1263 = mux(T_912, UInt<3>(7), T_1262) node T_1264 = mux(T_910, UInt<3>(7), T_1263) node T_1265 = mux(T_908, UInt<3>(7), T_1264) node T_1266 = mux(T_906, UInt<3>(7), T_1265) node T_1267 = mux(T_904, UInt<3>(7), T_1266) node T_1268 = mux(T_902, UInt<3>(7), T_1267) node T_1269 = mux(T_900, UInt<3>(7), T_1268) node T_1270 = mux(T_898, UInt<3>(7), T_1269) node T_1271 = mux(T_896, UInt<3>(7), T_1270) node T_1272 = mux(T_894, UInt<3>(7), T_1271) node T_1273 = mux(T_892, UInt<3>(7), T_1272) node T_1274 = mux(T_890, UInt<3>(7), T_1273) node T_1275 = mux(T_888, UInt<3>(7), T_1274) node T_1276 = mux(T_886, UInt<3>(7), T_1275) node T_1277 = mux(T_884, UInt<3>(7), T_1276) node T_1278 = mux(T_882, UInt<3>(7), T_1277) node T_1279 = mux(T_880, UInt<3>(7), T_1278) node T_1280 = mux(T_878, UInt<3>(7), T_1279) node T_1281 = mux(T_876, UInt<3>(7), T_1280) node T_1282 = mux(T_874, UInt<3>(7), T_1281) node T_1283 = mux(T_872, UInt<3>(7), T_1282) node T_1284 = mux(T_870, UInt<3>(7), T_1283) node T_1285 = mux(T_868, UInt<3>(7), T_1284) node T_1286 = mux(T_866, UInt<3>(7), T_1285) node T_1287 = mux(T_864, UInt<3>(7), T_1286) node T_1288 = mux(T_862, UInt<3>(7), T_1287) node T_1289 = mux(T_860, UInt<3>(3), T_1288) node T_1290 = mux(T_858, UInt<3>(4), T_1289) node T_1291 = mux(T_856, UInt<3>(0), T_1290) node T_1292 = mux(T_854, UInt<3>(1), T_1291) node T_1293 = mux(T_852, UInt<3>(2), T_1292) node T_1294 = mux(T_850, UInt<3>(7), T_1293) node T_1295 = mux(T_848, UInt<3>(7), T_1294) node T_1296 = mux(T_846, UInt<3>(7), T_1295) node T_1297 = mux(T_844, UInt<3>(7), T_1296) node T_1298 = mux(T_842, UInt<3>(7), T_1297) node T_1299 = mux(T_840, UInt<3>(7), T_1298) node T_1300 = mux(T_838, UInt<3>(7), T_1299) node T_1301 = mux(T_836, UInt<3>(7), T_1300) node T_1302 = mux(T_834, UInt<3>(7), T_1301) node T_1303 = mux(T_832, UInt<3>(7), T_1302) node T_1304 = mux(T_916, UInt<2>(3), UInt<2>(0)) node T_1305 = mux(T_914, UInt<2>(3), T_1304) node T_1306 = mux(T_912, UInt<2>(3), T_1305) node T_1307 = mux(T_910, UInt<2>(3), T_1306) node T_1308 = mux(T_908, UInt<2>(3), T_1307) node T_1309 = mux(T_906, UInt<2>(3), T_1308) node T_1310 = mux(T_904, UInt<2>(0), T_1309) node T_1311 = mux(T_902, UInt<2>(0), T_1310) node T_1312 = mux(T_900, UInt<2>(0), T_1311) node T_1313 = mux(T_898, UInt<2>(0), T_1312) node T_1314 = mux(T_896, UInt<2>(0), T_1313) node T_1315 = mux(T_894, UInt<2>(0), T_1314) node T_1316 = mux(T_892, UInt<2>(0), T_1315) node T_1317 = mux(T_890, UInt<2>(0), T_1316) node T_1318 = mux(T_888, UInt<2>(0), T_1317) node T_1319 = mux(T_886, UInt<2>(0), T_1318) node T_1320 = mux(T_884, UInt<2>(0), T_1319) node T_1321 = mux(T_882, UInt<2>(0), T_1320) node T_1322 = mux(T_880, UInt<2>(0), T_1321) node T_1323 = mux(T_878, UInt<2>(0), T_1322) node T_1324 = mux(T_876, UInt<2>(0), T_1323) node T_1325 = mux(T_874, UInt<2>(0), T_1324) node T_1326 = mux(T_872, UInt<2>(0), T_1325) node T_1327 = mux(T_870, UInt<2>(0), T_1326) node T_1328 = mux(T_868, UInt<2>(0), T_1327) node T_1329 = mux(T_866, UInt<2>(0), T_1328) node T_1330 = mux(T_864, UInt<2>(0), T_1329) node T_1331 = mux(T_862, UInt<2>(0), T_1330) node T_1332 = mux(T_860, UInt<2>(1), T_1331) node T_1333 = mux(T_858, UInt<2>(1), T_1332) node T_1334 = mux(T_856, UInt<2>(1), T_1333) node T_1335 = mux(T_854, UInt<2>(1), T_1334) node T_1336 = mux(T_852, UInt<2>(1), T_1335) node T_1337 = mux(T_850, UInt<2>(0), T_1336) node T_1338 = mux(T_848, UInt<2>(0), T_1337) node T_1339 = mux(T_846, UInt<2>(0), T_1338) node T_1340 = mux(T_844, UInt<2>(0), T_1339) node T_1341 = mux(T_842, UInt<2>(0), T_1340) node T_1342 = mux(T_840, UInt<2>(0), T_1341) node T_1343 = mux(T_838, UInt<2>(2), T_1342) node T_1344 = mux(T_836, UInt<2>(2), T_1343) node T_1345 = mux(T_834, UInt<2>(0), T_1344) node T_1346 = mux(T_832, UInt<2>(0), T_1345) node T_1347 = mux(T_916, UInt<1>(0), UInt<1>(0)) node T_1348 = mux(T_914, UInt<1>(0), T_1347) node T_1349 = mux(T_912, UInt<1>(0), T_1348) node T_1350 = mux(T_910, UInt<1>(0), T_1349) node T_1351 = mux(T_908, UInt<1>(0), T_1350) node T_1352 = mux(T_906, UInt<1>(0), T_1351) node T_1353 = mux(T_904, UInt<1>(1), T_1352) node T_1354 = mux(T_902, UInt<1>(1), T_1353) node T_1355 = mux(T_900, UInt<1>(1), T_1354) node T_1356 = mux(T_898, UInt<1>(1), T_1355) node T_1357 = mux(T_896, UInt<1>(1), T_1356) node T_1358 = mux(T_894, UInt<1>(1), T_1357) node T_1359 = mux(T_892, UInt<1>(1), T_1358) node T_1360 = mux(T_890, UInt<1>(1), T_1359) node T_1361 = mux(T_888, UInt<1>(1), T_1360) node T_1362 = mux(T_886, UInt<1>(1), T_1361) node T_1363 = mux(T_884, UInt<1>(1), T_1362) node T_1364 = mux(T_882, UInt<1>(1), T_1363) node T_1365 = mux(T_880, UInt<1>(1), T_1364) node T_1366 = mux(T_878, UInt<1>(1), T_1365) node T_1367 = mux(T_876, UInt<1>(1), T_1366) node T_1368 = mux(T_874, UInt<1>(1), T_1367) node T_1369 = mux(T_872, UInt<1>(1), T_1368) node T_1370 = mux(T_870, UInt<1>(1), T_1369) node T_1371 = mux(T_868, UInt<1>(1), T_1370) node T_1372 = mux(T_866, UInt<1>(0), T_1371) node T_1373 = mux(T_864, UInt<1>(0), T_1372) node T_1374 = mux(T_862, UInt<1>(0), T_1373) node T_1375 = mux(T_860, UInt<1>(1), T_1374) node T_1376 = mux(T_858, UInt<1>(1), T_1375) node T_1377 = mux(T_856, UInt<1>(1), T_1376) node T_1378 = mux(T_854, UInt<1>(1), T_1377) node T_1379 = mux(T_852, UInt<1>(1), T_1378) node T_1380 = mux(T_850, UInt<1>(0), T_1379) node T_1381 = mux(T_848, UInt<1>(0), T_1380) node T_1382 = mux(T_846, UInt<1>(0), T_1381) node T_1383 = mux(T_844, UInt<1>(0), T_1382) node T_1384 = mux(T_842, UInt<1>(0), T_1383) node T_1385 = mux(T_840, UInt<1>(0), T_1384) node T_1386 = mux(T_838, UInt<1>(1), T_1385) node T_1387 = mux(T_836, UInt<1>(1), T_1386) node T_1388 = mux(T_834, UInt<1>(1), T_1387) node T_1389 = mux(T_832, UInt<1>(1), T_1388) node T_1390 = mux(T_916, UInt<2>(3), UInt<2>(0)) node T_1391 = mux(T_914, UInt<2>(2), T_1390) node T_1392 = mux(T_912, UInt<2>(1), T_1391) node T_1393 = mux(T_910, UInt<2>(3), T_1392) node T_1394 = mux(T_908, UInt<2>(2), T_1393) node T_1395 = mux(T_906, UInt<2>(1), T_1394) node T_1396 = mux(T_904, UInt<2>(0), T_1395) node T_1397 = mux(T_902, UInt<2>(0), T_1396) node T_1398 = mux(T_900, UInt<2>(0), T_1397) node T_1399 = mux(T_898, UInt<2>(0), T_1398) node T_1400 = mux(T_896, UInt<2>(0), T_1399) node T_1401 = mux(T_894, UInt<2>(0), T_1400) node T_1402 = mux(T_892, UInt<2>(0), T_1401) node T_1403 = mux(T_890, UInt<2>(0), T_1402) node T_1404 = mux(T_888, UInt<2>(0), T_1403) node T_1405 = mux(T_886, UInt<2>(0), T_1404) node T_1406 = mux(T_884, UInt<2>(0), T_1405) node T_1407 = mux(T_882, UInt<2>(0), T_1406) node T_1408 = mux(T_880, UInt<2>(0), T_1407) node T_1409 = mux(T_878, UInt<2>(0), T_1408) node T_1410 = mux(T_876, UInt<2>(0), T_1409) node T_1411 = mux(T_874, UInt<2>(0), T_1410) node T_1412 = mux(T_872, UInt<2>(0), T_1411) node T_1413 = mux(T_870, UInt<2>(0), T_1412) node T_1414 = mux(T_868, UInt<2>(0), T_1413) node T_1415 = mux(T_866, UInt<2>(0), T_1414) node T_1416 = mux(T_864, UInt<2>(0), T_1415) node T_1417 = mux(T_862, UInt<2>(0), T_1416) node T_1418 = mux(T_860, UInt<2>(0), T_1417) node T_1419 = mux(T_858, UInt<2>(0), T_1418) node T_1420 = mux(T_856, UInt<2>(0), T_1419) node T_1421 = mux(T_854, UInt<2>(0), T_1420) node T_1422 = mux(T_852, UInt<2>(0), T_1421) node T_1423 = mux(T_850, UInt<2>(0), T_1422) node T_1424 = mux(T_848, UInt<2>(0), T_1423) node T_1425 = mux(T_846, UInt<2>(0), T_1424) node T_1426 = mux(T_844, UInt<2>(0), T_1425) node T_1427 = mux(T_842, UInt<2>(0), T_1426) node T_1428 = mux(T_840, UInt<2>(0), T_1427) node T_1429 = mux(T_838, UInt<2>(0), T_1428) node T_1430 = mux(T_836, UInt<2>(0), T_1429) node T_1431 = mux(T_834, UInt<2>(0), T_1430) node T_1432 = mux(T_832, UInt<2>(0), T_1431) node rs1_addr = bits(ctrl.inst, 19, 15) node rs2_addr = bits(ctrl.inst, 24, 20) reg st_type : UInt<2>, clk, reset reg ld_type : UInt<3>, clk, reset reg wb_sel : UInt<2>, clk, reset node T_1433 = bit(T_1389, 0) reg wb_en : UInt<1>, clk, reset reg csr_cmd : UInt<2>, clk, reset ctrl.pc_sel := T_959 node T_1434 = not(ctrl.stall) node T_1435 = not(ctrl.data_re) node T_1436 = and(T_1434, T_1435) ctrl.inst_re := T_1436 node T_1437 = neq(T_1303, UInt<3>(7)) node T_1438 = bit(T_1217, 0) node T_1439 = or(T_1437, T_1438) node T_1440 = mux(T_1439, UInt<1>(1), UInt<1>(0)) ctrl.inst_type := T_1440 ctrl.A_sel := T_1002 ctrl.B_sel := T_1045 ctrl.imm_sel := T_1088 ctrl.alu_op := T_1131 ctrl.br_type := T_1174 ctrl.st_type := T_1260 node T_1441 = not(ctrl.stall) when T_1441 : st_type := ctrl.st_type ld_type := T_1303 wb_sel := T_1346 node T_1442 = bit(T_1389, 0) wb_en := T_1442 csr_cmd := T_1432 node T_1443 = neq(ctrl.ld_type, UInt<3>(7)) node T_1444 = neq(T_1303, UInt<3>(7)) node T_1445 = mux(ctrl.stall, T_1443, T_1444) ctrl.data_re := T_1445 ctrl.ld_type := ld_type ctrl.wb_en := wb_en ctrl.wb_sel := wb_sel ctrl.csr_cmd := csr_cmd module Core : output host : {status : UInt<32>, flip hid : UInt<1>, tohost : UInt<32>} output icache : {re : UInt<1>, addr : UInt<32>, flip dout : UInt<32>, we : UInt<4>, din : UInt<32>} output dcache : {re : UInt<1>, addr : UInt<32>, flip dout : UInt<32>, we : UInt<4>, din : UInt<32>} input stall : UInt<1> inst dpath of Datapath inst ctrl of Control host := dpath.host icache := dpath.icache dcache := dpath.dcache dpath.ctrl := ctrl.ctrl dpath.stall := stall