diff --git a/examples/PE.json b/examples/PE.json new file mode 100644 index 0000000..68220ab --- /dev/null +++ b/examples/PE.json @@ -0,0 +1,130 @@ +{ + "bit_outputs": [ + [ + "96", + "98", + "103" + ] + ], + "enable_input_regs": false, + "enable_output_regs": false, + "input_width": 16, + "modules": [ + { + "id": "41", + "in0": [ + "52" + ], + "in1": [ + "53" + ], + "type": "absd" + }, + { + "id": "96", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "type": "gte" + }, + { + "id": "97", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "type": "lte" + }, + { + "id": "98", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "type": "sub" + }, + { + "id": "100", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "type": "add" + }, + { + "id": "101", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "type": "bit_alu" + }, + { + "id": "102", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "type": "shr" + }, + { + "id": "103", + "type": "bitconst" + }, + { + "id": "105", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "in2": [ + "106" + ], + "type": "mux" + }, + { + "id": "107", + "type": "const" + }, + { + "id": "109", + "in0": [ + "53" + ], + "in1": [ + "52" + ], + "type": "mul" + } + ], + "output_width": 16, + "outputs": [ + [ + "98", + "96", + "105", + "102", + "41", + "101", + "109", + "107", + "97", + "100" + ] + ] +} \ No newline at end of file diff --git a/examples/camera_pipeline_compute.json b/examples/camera_pipeline_compute.json new file mode 100644 index 0000000..28e779e --- /dev/null +++ b/examples/camera_pipeline_compute.json @@ -0,0 +1,2012 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_corrected_stencil":{ + "type":["Record",[ + ["out_corrected_stencil",["Array",16,"Bit"]], + ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_1193_1196_1197":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1201_1202_1203":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "ashr_1203_1204_1205":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_n3900__1202":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'hf0c4"]} + }, + "const_p17__1195":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0011"]} + }, + "const_p200__1192":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00c8"]} + }, + "const_p44__1199":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h002c"]} + }, + "const_p8__1204":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "mul_1191_1192_1193":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1194_1195_1196":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1198_1199_1200":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "sub_1197_1200_1201":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["mul_1191_1192_1193.out","add_1193_1196_1197.in0"], + ["mul_1194_1195_1196.out","add_1193_1196_1197.in1"], + ["sub_1197_1200_1201.in0","add_1193_1196_1197.out"], + ["sub_1197_1200_1201.out","add_1201_1202_1203.in0"], + ["const_n3900__1202.out","add_1201_1202_1203.in1"], + ["ashr_1203_1204_1205.in0","add_1201_1202_1203.out"], + ["const_p8__1204.out","ashr_1203_1204_1205.in1"], + ["self.out_corrected_stencil","ashr_1203_1204_1205.out"], + ["mul_1194_1195_1196.in1","const_p17__1195.out"], + ["mul_1191_1192_1193.in1","const_p200__1192.out"], + ["mul_1198_1199_1200.in1","const_p44__1199.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1191_1192_1193.in0"], + ["self.in0_demosaicked_1_stencil.1","mul_1194_1195_1196.in0"], + ["self.in0_demosaicked_1_stencil.2","mul_1198_1199_1200.in0"], + ["sub_1197_1200_1201.in1","mul_1198_1199_1200.out"] + ] + }, + "hcompute_corrected_stencil_1":{ + "type":["Record",[ + ["out_corrected_stencil",["Array",16,"Bit"]], + ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_1252_1253_1254":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "ashr_1254_1255_1256":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_n2541__1253":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'hf613"]} + }, + "const_p159__1243":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h009f"]} + }, + "const_p21__1250":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0015"]} + }, + "const_p38__1246":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0026"]} + }, + "const_p8__1255":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "mul_1242_1243_1244":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1245_1246_1247":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1249_1250_1251":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "sub_1244_1247_1248":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1248_1251_1252":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["sub_1248_1251_1252.out","add_1252_1253_1254.in0"], + ["const_n2541__1253.out","add_1252_1253_1254.in1"], + ["ashr_1254_1255_1256.in0","add_1252_1253_1254.out"], + ["const_p8__1255.out","ashr_1254_1255_1256.in1"], + ["self.out_corrected_stencil","ashr_1254_1255_1256.out"], + ["mul_1242_1243_1244.in1","const_p159__1243.out"], + ["mul_1249_1250_1251.in1","const_p21__1250.out"], + ["mul_1245_1246_1247.in1","const_p38__1246.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1242_1243_1244.in0"], + ["sub_1244_1247_1248.in0","mul_1242_1243_1244.out"], + ["self.in0_demosaicked_1_stencil.1","mul_1245_1246_1247.in0"], + ["sub_1244_1247_1248.in1","mul_1245_1246_1247.out"], + ["self.in0_demosaicked_1_stencil.2","mul_1249_1250_1251.in0"], + ["sub_1248_1251_1252.in1","mul_1249_1250_1251.out"], + ["sub_1248_1251_1252.in0","sub_1244_1247_1248.out"] + ] + }, + "hcompute_corrected_stencil_2":{ + "type":["Record",[ + ["out_corrected_stencil",["Array",16,"Bit"]], + ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_1302_1303_1304":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "ashr_1304_1305_1306":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_n2008__1303":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'hf828"]} + }, + "const_p228__1293":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00e4"]} + }, + "const_p73__1296":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0049"]} + }, + "const_p8__1300":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "const_p8__1305":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "mul_1292_1293_1294":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1295_1296_1297":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1299_1300_1301":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "sub_1294_1297_1298":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1298_1301_1302":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["sub_1298_1301_1302.out","add_1302_1303_1304.in0"], + ["const_n2008__1303.out","add_1302_1303_1304.in1"], + ["ashr_1304_1305_1306.in0","add_1302_1303_1304.out"], + ["const_p8__1305.out","ashr_1304_1305_1306.in1"], + ["self.out_corrected_stencil","ashr_1304_1305_1306.out"], + ["mul_1292_1293_1294.in1","const_p228__1293.out"], + ["mul_1295_1296_1297.in1","const_p73__1296.out"], + ["mul_1299_1300_1301.in1","const_p8__1300.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1292_1293_1294.in0"], + ["sub_1294_1297_1298.in0","mul_1292_1293_1294.out"], + ["self.in0_demosaicked_1_stencil.1","mul_1295_1296_1297.in0"], + ["sub_1294_1297_1298.in1","mul_1295_1296_1297.out"], + ["self.in0_demosaicked_1_stencil.2","mul_1299_1300_1301.in0"], + ["sub_1298_1301_1302.in1","mul_1299_1300_1301.out"], + ["sub_1298_1301_1302.in0","sub_1294_1297_1298.out"] + ] + }, + "hcompute_curved_stencil":{ + "type":["Record",[ + ["out_curved_stencil",["Array",16,"Bit"]], + ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p255__1842":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00ff"]} + }, + "rom_curvea0":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",256], "width":["Int",16]}, + "modargs":{"init":["Json",[0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63]]} + }, + "rom_curvea0_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "umin_corrected_stencil_1_1842_1843":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["umin_corrected_stencil_1_1842_1843.in1","const_p255__1842.out"], + ["umin_corrected_stencil_1_1842_1843.out","rom_curvea0.raddr"], + ["self.out_curved_stencil","rom_curvea0.rdata"], + ["rom_curvea0_ren.out","rom_curvea0.ren"], + ["umin_corrected_stencil_1_1842_1843.in0","self.in0_corrected_stencil.0"] + ] + }, + "hcompute_curved_stencil_1":{ + "type":["Record",[ + ["out_curved_stencil",["Array",16,"Bit"]], + ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p255__2111":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00ff"]} + }, + "rom_curvea0$1":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",256], "width":["Int",16]}, + "modargs":{"init":["Json",[0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63]]} + }, + "rom_curvea0$1_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "umin_corrected_stencil_2_2111_2112":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["umin_corrected_stencil_2_2111_2112.in1","const_p255__2111.out"], + ["umin_corrected_stencil_2_2111_2112.out","rom_curvea0$1.raddr"], + ["self.out_curved_stencil","rom_curvea0$1.rdata"], + ["rom_curvea0$1_ren.out","rom_curvea0$1.ren"], + ["umin_corrected_stencil_2_2111_2112.in0","self.in0_corrected_stencil.0"] + ] + }, + "hcompute_curved_stencil_2":{ + "type":["Record",[ + ["out_curved_stencil",["Array",16,"Bit"]], + ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p255__2380":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00ff"]} + }, + "rom_curvea0$2":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",256], "width":["Int",16]}, + "modargs":{"init":["Json",[0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63]]} + }, + "rom_curvea0$2_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "umin_corrected_stencil_3_2380_2381":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["umin_corrected_stencil_3_2380_2381.in1","const_p255__2380.out"], + ["umin_corrected_stencil_3_2380_2381.out","rom_curvea0$2.raddr"], + ["self.out_curved_stencil","rom_curvea0$2.rdata"], + ["rom_curvea0$2_ren.out","rom_curvea0$2.ren"], + ["umin_corrected_stencil_3_2380_2381.in0","self.in0_corrected_stencil.0"] + ] + }, + "hcompute_demosaicked_1_stencil":{ + "type":["Record",[ + ["out_demosaicked_1_stencil",["Array",16,"Bit"]], + ["in0_denoised_1_stencil",["Array",8,["Array",16,"BitIn"]]], + ["demosaicked_1_s0_x",["Array",16,"BitIn"]], + ["demosaicked_1_s0_y",["Array",16,"BitIn"]] + ]], + "instances":{ + "absd_denoised_1_stencil_1_denoised_1_stencil_2_519":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_1_denoised_1_stencil_4_498":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_1_denoised_1_stencil_5_499":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_1_denoised_1_stencil_7_520":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_2_denoised_1_stencil_1_491":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_2_denoised_1_stencil_3_492":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_6_denoised_1_stencil_1_513":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_6_denoised_1_stencil_2_528":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_6_denoised_1_stencil_7_527":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_7_denoised_1_stencil_1_546":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_7_denoised_1_stencil_2_514":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_7_denoised_1_stencil_8_545":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "add_486_487_488":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_494_487_495":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_497_507_508":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_497_551_552":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_501_487_502":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_504_487_505":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_507_551_558":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_508_487_509":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_516_487_517":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_518_525_526":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_522_487_523":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_530_487_531":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_533_487_534":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_536_507_537":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_537_487_538":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_541_487_542":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_543_525_544":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_548_487_549":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_552_487_553":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_558_487_559":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_1_489_490":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_1_524_557":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_1_denoised_1_stencil_2_486":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_1_denoised_1_stencil_6_516":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_1_denoised_1_stencil_7_522":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_2_denoised_1_stencil_3_494":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_2_denoised_1_stencil_7_541":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_4_denoised_1_stencil_1_501":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_5_denoised_1_stencil_1_504":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_6_denoised_1_stencil_2_533":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_7_denoised_1_stencil_6_530":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_8_denoised_1_stencil_7_548":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_x_481_484":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_y_481_482":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "const_p0_0":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p0_0$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1__481":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__481$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$10":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$11":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$12":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$13":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$14":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$15":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$17":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$18":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$19":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$20":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$21":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$22":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$23":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$24":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$25":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$26":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$27":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$6":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$8":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__487$9":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "eq_4820_483":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "eq_4840_485":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "lshr_488_487_489":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_495_487_496":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_502_487_503":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_505_487_506":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_509_487_510":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_517_487_518":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_523_487_524":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_531_487_532":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_534_487_535":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_538_487_539":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_542_487_543":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_549_487_550":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_553_487_554":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_559_487_560":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "mux_483_512_562":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_485_511_denoised_1_stencil_1":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_485_556_561":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_493_489_496":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_500_503_506":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_515_540_555":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_521_489_524":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_529_532_535":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_547_550_524":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "sub_490_510_511":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_526_539_540":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_544_554_555":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_557_560_561":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "ult_491_492_493":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_498_499_500":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_513_514_515":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_519_520_521":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_527_528_529":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_545_546_547":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_2_519.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_1_denoised_1_stencil_2_519.in1"], + ["ult_519_520_521.in0","absd_denoised_1_stencil_1_denoised_1_stencil_2_519.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_4_498.in0"], + ["self.in0_denoised_1_stencil.3","absd_denoised_1_stencil_1_denoised_1_stencil_4_498.in1"], + ["ult_498_499_500.in0","absd_denoised_1_stencil_1_denoised_1_stencil_4_498.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_5_499.in0"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_1_denoised_1_stencil_5_499.in1"], + ["ult_498_499_500.in1","absd_denoised_1_stencil_1_denoised_1_stencil_5_499.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_7_520.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_1_denoised_1_stencil_7_520.in1"], + ["ult_519_520_521.in1","absd_denoised_1_stencil_1_denoised_1_stencil_7_520.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_2_denoised_1_stencil_1_491.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_2_denoised_1_stencil_1_491.in1"], + ["ult_491_492_493.in0","absd_denoised_1_stencil_2_denoised_1_stencil_1_491.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_2_denoised_1_stencil_3_492.in0"], + ["self.in0_denoised_1_stencil.2","absd_denoised_1_stencil_2_denoised_1_stencil_3_492.in1"], + ["ult_491_492_493.in1","absd_denoised_1_stencil_2_denoised_1_stencil_3_492.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_6_denoised_1_stencil_1_513.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_6_denoised_1_stencil_1_513.in1"], + ["ult_513_514_515.in0","absd_denoised_1_stencil_6_denoised_1_stencil_1_513.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_6_denoised_1_stencil_2_528.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_6_denoised_1_stencil_2_528.in1"], + ["ult_527_528_529.in1","absd_denoised_1_stencil_6_denoised_1_stencil_2_528.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_6_denoised_1_stencil_7_527.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_6_denoised_1_stencil_7_527.in1"], + ["ult_527_528_529.in0","absd_denoised_1_stencil_6_denoised_1_stencil_7_527.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_7_denoised_1_stencil_1_546.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_7_denoised_1_stencil_1_546.in1"], + ["ult_545_546_547.in1","absd_denoised_1_stencil_7_denoised_1_stencil_1_546.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_7_denoised_1_stencil_2_514.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_7_denoised_1_stencil_2_514.in1"], + ["ult_513_514_515.in1","absd_denoised_1_stencil_7_denoised_1_stencil_2_514.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_7_denoised_1_stencil_8_545.in0"], + ["self.in0_denoised_1_stencil.7","absd_denoised_1_stencil_7_denoised_1_stencil_8_545.in1"], + ["ult_545_546_547.in0","absd_denoised_1_stencil_7_denoised_1_stencil_8_545.out"], + ["add_denoised_1_stencil_1_denoised_1_stencil_2_486.out","add_486_487_488.in0"], + ["const_p1__487.out","add_486_487_488.in1"], + ["lshr_488_487_489.in0","add_486_487_488.out"], + ["add_denoised_1_stencil_2_denoised_1_stencil_3_494.out","add_494_487_495.in0"], + ["const_p1__487$2.out","add_494_487_495.in1"], + ["lshr_495_487_496.in0","add_494_487_495.out"], + ["mux_493_489_496.out","add_497_507_508.in0"], + ["mux_500_503_506.out","add_497_507_508.in1"], + ["add_508_487_509.in0","add_497_507_508.out"], + ["mux_493_489_496.out","add_497_551_552.in0"], + ["mux_547_550_524.out","add_497_551_552.in1"], + ["add_552_487_553.in0","add_497_551_552.out"], + ["add_denoised_1_stencil_4_denoised_1_stencil_1_501.out","add_501_487_502.in0"], + ["const_p1__487$4.out","add_501_487_502.in1"], + ["lshr_502_487_503.in0","add_501_487_502.out"], + ["add_denoised_1_stencil_5_denoised_1_stencil_1_504.out","add_504_487_505.in0"], + ["const_p1__487$6.out","add_504_487_505.in1"], + ["lshr_505_487_506.in0","add_504_487_505.out"], + ["mux_500_503_506.out","add_507_551_558.in0"], + ["mux_547_550_524.out","add_507_551_558.in1"], + ["add_558_487_559.in0","add_507_551_558.out"], + ["const_p1__487$8.out","add_508_487_509.in1"], + ["lshr_509_487_510.in0","add_508_487_509.out"], + ["add_denoised_1_stencil_1_denoised_1_stencil_6_516.out","add_516_487_517.in0"], + ["const_p1__487$10.out","add_516_487_517.in1"], + ["lshr_517_487_518.in0","add_516_487_517.out"], + ["lshr_517_487_518.out","add_518_525_526.in0"], + ["mux_521_489_524.out","add_518_525_526.in1"], + ["sub_526_539_540.in0","add_518_525_526.out"], + ["add_denoised_1_stencil_1_denoised_1_stencil_7_522.out","add_522_487_523.in0"], + ["const_p1__487$12.out","add_522_487_523.in1"], + ["lshr_523_487_524.in0","add_522_487_523.out"], + ["add_denoised_1_stencil_7_denoised_1_stencil_6_530.out","add_530_487_531.in0"], + ["const_p1__487$14.out","add_530_487_531.in1"], + ["lshr_531_487_532.in0","add_530_487_531.out"], + ["add_denoised_1_stencil_6_denoised_1_stencil_2_533.out","add_533_487_534.in0"], + ["const_p1__487$16.out","add_533_487_534.in1"], + ["lshr_534_487_535.in0","add_533_487_534.out"], + ["mux_529_532_535.out","add_536_507_537.in0"], + ["mux_500_503_506.out","add_536_507_537.in1"], + ["add_537_487_538.in0","add_536_507_537.out"], + ["const_p1__487$18.out","add_537_487_538.in1"], + ["lshr_538_487_539.in0","add_537_487_538.out"], + ["add_denoised_1_stencil_2_denoised_1_stencil_7_541.out","add_541_487_542.in0"], + ["const_p1__487$20.out","add_541_487_542.in1"], + ["lshr_542_487_543.in0","add_541_487_542.out"], + ["lshr_542_487_543.out","add_543_525_544.in0"], + ["mux_521_489_524.out","add_543_525_544.in1"], + ["sub_544_554_555.in0","add_543_525_544.out"], + ["add_denoised_1_stencil_8_denoised_1_stencil_7_548.out","add_548_487_549.in0"], + ["const_p1__487$22.out","add_548_487_549.in1"], + ["lshr_549_487_550.in0","add_548_487_549.out"], + ["const_p1__487$24.out","add_552_487_553.in1"], + ["lshr_553_487_554.in0","add_552_487_553.out"], + ["const_p1__487$26.out","add_558_487_559.in1"], + ["lshr_559_487_560.in0","add_558_487_559.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_489_490.in0"], + ["lshr_488_487_489.out","add_denoised_1_stencil_1_489_490.in1"], + ["sub_490_510_511.in0","add_denoised_1_stencil_1_489_490.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_524_557.in0"], + ["lshr_523_487_524.out","add_denoised_1_stencil_1_524_557.in1"], + ["sub_557_560_561.in0","add_denoised_1_stencil_1_524_557.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_denoised_1_stencil_2_486.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_1_denoised_1_stencil_2_486.in1"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_denoised_1_stencil_6_516.in0"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_1_denoised_1_stencil_6_516.in1"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_denoised_1_stencil_7_522.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_1_denoised_1_stencil_7_522.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_2_denoised_1_stencil_3_494.in0"], + ["self.in0_denoised_1_stencil.2","add_denoised_1_stencil_2_denoised_1_stencil_3_494.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_2_denoised_1_stencil_7_541.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_2_denoised_1_stencil_7_541.in1"], + ["self.in0_denoised_1_stencil.3","add_denoised_1_stencil_4_denoised_1_stencil_1_501.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_4_denoised_1_stencil_1_501.in1"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_5_denoised_1_stencil_1_504.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_5_denoised_1_stencil_1_504.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_6_denoised_1_stencil_2_533.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_6_denoised_1_stencil_2_533.in1"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_7_denoised_1_stencil_6_530.in0"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_7_denoised_1_stencil_6_530.in1"], + ["self.in0_denoised_1_stencil.7","add_denoised_1_stencil_8_denoised_1_stencil_7_548.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_8_denoised_1_stencil_7_548.in1"], + ["self.demosaicked_1_s0_x","and_demosaicked_1_s0_x_481_484.in0"], + ["const_p1__481$1.out","and_demosaicked_1_s0_x_481_484.in1"], + ["eq_4840_485.in0","and_demosaicked_1_s0_x_481_484.out"], + ["self.demosaicked_1_s0_y","and_demosaicked_1_s0_y_481_482.in0"], + ["const_p1__481.out","and_demosaicked_1_s0_y_481_482.in1"], + ["eq_4820_483.in0","and_demosaicked_1_s0_y_481_482.out"], + ["eq_4840_485.in1","const_p0_0$1.out"], + ["eq_4820_483.in1","const_p0_0.out"], + ["lshr_488_487_489.in1","const_p1__487$1.out"], + ["lshr_517_487_518.in1","const_p1__487$11.out"], + ["lshr_523_487_524.in1","const_p1__487$13.out"], + ["lshr_531_487_532.in1","const_p1__487$15.out"], + ["lshr_534_487_535.in1","const_p1__487$17.out"], + ["lshr_538_487_539.in1","const_p1__487$19.out"], + ["lshr_542_487_543.in1","const_p1__487$21.out"], + ["lshr_549_487_550.in1","const_p1__487$23.out"], + ["lshr_553_487_554.in1","const_p1__487$25.out"], + ["lshr_559_487_560.in1","const_p1__487$27.out"], + ["lshr_495_487_496.in1","const_p1__487$3.out"], + ["lshr_502_487_503.in1","const_p1__487$5.out"], + ["lshr_505_487_506.in1","const_p1__487$7.out"], + ["lshr_509_487_510.in1","const_p1__487$9.out"], + ["mux_483_512_562.sel","eq_4820_483.out"], + ["mux_485_511_denoised_1_stencil_1.sel","eq_4840_485.out"], + ["mux_485_556_561.sel","eq_4840_485.out"], + ["mux_493_489_496.in1","lshr_488_487_489.out"], + ["mux_521_489_524.in1","lshr_488_487_489.out"], + ["mux_493_489_496.in0","lshr_495_487_496.out"], + ["mux_500_503_506.in1","lshr_502_487_503.out"], + ["mux_500_503_506.in0","lshr_505_487_506.out"], + ["sub_490_510_511.in1","lshr_509_487_510.out"], + ["mux_521_489_524.in0","lshr_523_487_524.out"], + ["mux_547_550_524.in0","lshr_523_487_524.out"], + ["mux_529_532_535.in1","lshr_531_487_532.out"], + ["mux_529_532_535.in0","lshr_534_487_535.out"], + ["sub_526_539_540.in1","lshr_538_487_539.out"], + ["mux_547_550_524.in1","lshr_549_487_550.out"], + ["sub_544_554_555.in1","lshr_553_487_554.out"], + ["sub_557_560_561.in1","lshr_559_487_560.out"], + ["mux_485_556_561.out","mux_483_512_562.in0"], + ["mux_485_511_denoised_1_stencil_1.out","mux_483_512_562.in1"], + ["self.out_demosaicked_1_stencil","mux_483_512_562.out"], + ["self.in0_denoised_1_stencil.0","mux_485_511_denoised_1_stencil_1.in0"], + ["sub_490_510_511.out","mux_485_511_denoised_1_stencil_1.in1"], + ["sub_557_560_561.out","mux_485_556_561.in0"], + ["mux_515_540_555.out","mux_485_556_561.in1"], + ["ult_491_492_493.out","mux_493_489_496.sel"], + ["ult_498_499_500.out","mux_500_503_506.sel"], + ["sub_544_554_555.out","mux_515_540_555.in0"], + ["sub_526_539_540.out","mux_515_540_555.in1"], + ["ult_513_514_515.out","mux_515_540_555.sel"], + ["ult_519_520_521.out","mux_521_489_524.sel"], + ["ult_527_528_529.out","mux_529_532_535.sel"], + ["ult_545_546_547.out","mux_547_550_524.sel"] + ] + }, + "hcompute_demosaicked_1_stencil_1":{ + "type":["Record",[ + ["out_demosaicked_1_stencil",["Array",16,"Bit"]], + ["in0_denoised_1_stencil",["Array",5,["Array",16,"BitIn"]]], + ["demosaicked_1_s0_x_1",["Array",16,"BitIn"]], + ["demosaicked_1_s0_y_1",["Array",16,"BitIn"]] + ]], + "instances":{ + "absd_denoised_1_stencil_9_denoised_1_stencil_10_751":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_9_denoised_1_stencil_11_752":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_9_denoised_1_stencil_12_763":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_9_denoised_1_stencil_13_764":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "add_754_755_756":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_758_755_759":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_766_755_767":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_769_755_770":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_10_denoised_1_stencil_9_754":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_11_denoised_1_stencil_9_758":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_12_denoised_1_stencil_9_766":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_13_denoised_1_stencil_9_769":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_x_1_746_749":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_y_1_746_747":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "const_p0_0$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p0_0$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1__746":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__746$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755$6":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__755$7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "eq_7470_748":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "eq_7490_750":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "lshr_756_755_757":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_759_755_760":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_767_755_768":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_770_755_771":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "mux_748_762_773":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_750_772_denoised_1_stencil_9":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_750_denoised_1_stencil_9_761":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_753_757_760":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_765_768_771":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "ult_751_752_753":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_763_764_765":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_10_751.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_9_denoised_1_stencil_10_751.in1"], + ["ult_751_752_753.in0","absd_denoised_1_stencil_9_denoised_1_stencil_10_751.out"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_11_752.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_9_denoised_1_stencil_11_752.in1"], + ["ult_751_752_753.in1","absd_denoised_1_stencil_9_denoised_1_stencil_11_752.out"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_12_763.in0"], + ["self.in0_denoised_1_stencil.2","absd_denoised_1_stencil_9_denoised_1_stencil_12_763.in1"], + ["ult_763_764_765.in0","absd_denoised_1_stencil_9_denoised_1_stencil_12_763.out"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_13_764.in0"], + ["self.in0_denoised_1_stencil.3","absd_denoised_1_stencil_9_denoised_1_stencil_13_764.in1"], + ["ult_763_764_765.in1","absd_denoised_1_stencil_9_denoised_1_stencil_13_764.out"], + ["add_denoised_1_stencil_10_denoised_1_stencil_9_754.out","add_754_755_756.in0"], + ["const_p1__755.out","add_754_755_756.in1"], + ["lshr_756_755_757.in0","add_754_755_756.out"], + ["add_denoised_1_stencil_11_denoised_1_stencil_9_758.out","add_758_755_759.in0"], + ["const_p1__755$2.out","add_758_755_759.in1"], + ["lshr_759_755_760.in0","add_758_755_759.out"], + ["add_denoised_1_stencil_12_denoised_1_stencil_9_766.out","add_766_755_767.in0"], + ["const_p1__755$4.out","add_766_755_767.in1"], + ["lshr_767_755_768.in0","add_766_755_767.out"], + ["add_denoised_1_stencil_13_denoised_1_stencil_9_769.out","add_769_755_770.in0"], + ["const_p1__755$6.out","add_769_755_770.in1"], + ["lshr_770_755_771.in0","add_769_755_770.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_10_denoised_1_stencil_9_754.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_10_denoised_1_stencil_9_754.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_11_denoised_1_stencil_9_758.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_11_denoised_1_stencil_9_758.in1"], + ["self.in0_denoised_1_stencil.2","add_denoised_1_stencil_12_denoised_1_stencil_9_766.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_12_denoised_1_stencil_9_766.in1"], + ["self.in0_denoised_1_stencil.3","add_denoised_1_stencil_13_denoised_1_stencil_9_769.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_13_denoised_1_stencil_9_769.in1"], + ["self.demosaicked_1_s0_x_1","and_demosaicked_1_s0_x_1_746_749.in0"], + ["const_p1__746$1.out","and_demosaicked_1_s0_x_1_746_749.in1"], + ["eq_7490_750.in0","and_demosaicked_1_s0_x_1_746_749.out"], + ["self.demosaicked_1_s0_y_1","and_demosaicked_1_s0_y_1_746_747.in0"], + ["const_p1__746.out","and_demosaicked_1_s0_y_1_746_747.in1"], + ["eq_7470_748.in0","and_demosaicked_1_s0_y_1_746_747.out"], + ["eq_7470_748.in1","const_p0_0$2.out"], + ["eq_7490_750.in1","const_p0_0$3.out"], + ["lshr_756_755_757.in1","const_p1__755$1.out"], + ["lshr_759_755_760.in1","const_p1__755$3.out"], + ["lshr_767_755_768.in1","const_p1__755$5.out"], + ["lshr_770_755_771.in1","const_p1__755$7.out"], + ["mux_748_762_773.sel","eq_7470_748.out"], + ["mux_750_772_denoised_1_stencil_9.sel","eq_7490_750.out"], + ["mux_750_denoised_1_stencil_9_761.sel","eq_7490_750.out"], + ["mux_753_757_760.in1","lshr_756_755_757.out"], + ["mux_753_757_760.in0","lshr_759_755_760.out"], + ["mux_765_768_771.in1","lshr_767_755_768.out"], + ["mux_765_768_771.in0","lshr_770_755_771.out"], + ["mux_750_772_denoised_1_stencil_9.out","mux_748_762_773.in0"], + ["mux_750_denoised_1_stencil_9_761.out","mux_748_762_773.in1"], + ["self.out_demosaicked_1_stencil","mux_748_762_773.out"], + ["self.in0_denoised_1_stencil.4","mux_750_772_denoised_1_stencil_9.in0"], + ["mux_765_768_771.out","mux_750_772_denoised_1_stencil_9.in1"], + ["mux_753_757_760.out","mux_750_denoised_1_stencil_9_761.in0"], + ["self.in0_denoised_1_stencil.4","mux_750_denoised_1_stencil_9_761.in1"], + ["ult_751_752_753.out","mux_753_757_760.sel"], + ["ult_763_764_765.out","mux_765_768_771.sel"] + ] + }, + "hcompute_demosaicked_1_stencil_2":{ + "type":["Record",[ + ["out_demosaicked_1_stencil",["Array",16,"Bit"]], + ["in0_denoised_1_stencil",["Array",8,["Array",16,"BitIn"]]], + ["demosaicked_1_s0_x_2",["Array",16,"BitIn"]], + ["demosaicked_1_s0_y_2",["Array",16,"BitIn"]] + ]], + "instances":{ + "absd_denoised_1_stencil_14_denoised_1_stencil_15_992":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_14_denoised_1_stencil_17_971":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_14_denoised_1_stencil_18_972":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_14_denoised_1_stencil_20_991":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_15_denoised_1_stencil_14_965":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_15_denoised_1_stencil_16_964":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_15_denoised_1_stencil_20_986":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_19_denoised_1_stencil_14_985":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_19_denoised_1_stencil_15_999":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_19_denoised_1_stencil_20_1000":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_20_denoised_1_stencil_14_1017":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_denoised_1_stencil_20_denoised_1_stencil_21_1018":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "add_1002_960_1003":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1005_960_1006":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1008_980_1009":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1009_960_1010":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1013_960_1014":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1015_997_1016":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1020_960_1021":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1024_960_1025":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1031_960_1032":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_959_960_961":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_967_960_968":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_970_1023_1024":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_970_980_981":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_974_960_975":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_977_960_978":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_980_1023_1031":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_981_960_982":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_988_960_989":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_990_997_998":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_994_960_995":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_14_962_963":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_14_996_1030":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_14_denoised_1_stencil_15_959":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_14_denoised_1_stencil_20_994":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_15_denoised_1_stencil_20_1013":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_16_denoised_1_stencil_15_967":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_17_denoised_1_stencil_14_974":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_18_denoised_1_stencil_14_977":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_19_denoised_1_stencil_14_988":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_19_denoised_1_stencil_15_1002":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_19_denoised_1_stencil_20_1005":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_denoised_1_stencil_21_denoised_1_stencil_20_1020":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_x_2_954_957":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_y_2_954_955":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "const_p0_0$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p0_0$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1__954":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__954$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$10":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$11":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$12":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$13":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$14":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$15":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$17":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$18":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$19":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$20":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$21":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$22":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$23":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$24":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$25":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$26":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$27":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$6":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$8":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__960$9":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "eq_9550_956":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "eq_9570_958":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "lshr_1003_960_1004":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1006_960_1007":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1010_960_1011":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1014_960_1015":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1021_960_1022":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1025_960_1026":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1032_960_1033":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_961_960_962":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_968_960_969":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_975_960_976":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_978_960_979":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_982_960_983":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_989_960_990":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_995_960_996":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "mux_1001_1004_1007":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1019_996_1022":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_956_1029_1035":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_958_984_1028":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_958_denoised_1_stencil_14_1034":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_966_969_962":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_973_976_979":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_987_1012_1027":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_993_996_962":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "sub_1016_1026_1027":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1030_1033_1034":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_963_983_984":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_998_1011_1012":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "ult_1017_1018_1019":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_964_965_966":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_971_972_973":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_985_986_987":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_991_992_993":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_999_1000_1001":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_15_992.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_14_denoised_1_stencil_15_992.in1"], + ["ult_991_992_993.in1","absd_denoised_1_stencil_14_denoised_1_stencil_15_992.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_17_971.in0"], + ["self.in0_denoised_1_stencil.3","absd_denoised_1_stencil_14_denoised_1_stencil_17_971.in1"], + ["ult_971_972_973.in0","absd_denoised_1_stencil_14_denoised_1_stencil_17_971.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_18_972.in0"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_14_denoised_1_stencil_18_972.in1"], + ["ult_971_972_973.in1","absd_denoised_1_stencil_14_denoised_1_stencil_18_972.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_20_991.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_14_denoised_1_stencil_20_991.in1"], + ["ult_991_992_993.in0","absd_denoised_1_stencil_14_denoised_1_stencil_20_991.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_15_denoised_1_stencil_14_965.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_15_denoised_1_stencil_14_965.in1"], + ["ult_964_965_966.in1","absd_denoised_1_stencil_15_denoised_1_stencil_14_965.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_15_denoised_1_stencil_16_964.in0"], + ["self.in0_denoised_1_stencil.2","absd_denoised_1_stencil_15_denoised_1_stencil_16_964.in1"], + ["ult_964_965_966.in0","absd_denoised_1_stencil_15_denoised_1_stencil_16_964.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_15_denoised_1_stencil_20_986.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_15_denoised_1_stencil_20_986.in1"], + ["ult_985_986_987.in1","absd_denoised_1_stencil_15_denoised_1_stencil_20_986.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_19_denoised_1_stencil_14_985.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_19_denoised_1_stencil_14_985.in1"], + ["ult_985_986_987.in0","absd_denoised_1_stencil_19_denoised_1_stencil_14_985.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_19_denoised_1_stencil_15_999.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_19_denoised_1_stencil_15_999.in1"], + ["ult_999_1000_1001.in0","absd_denoised_1_stencil_19_denoised_1_stencil_15_999.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_19_denoised_1_stencil_20_1000.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_19_denoised_1_stencil_20_1000.in1"], + ["ult_999_1000_1001.in1","absd_denoised_1_stencil_19_denoised_1_stencil_20_1000.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_20_denoised_1_stencil_14_1017.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_20_denoised_1_stencil_14_1017.in1"], + ["ult_1017_1018_1019.in0","absd_denoised_1_stencil_20_denoised_1_stencil_14_1017.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_20_denoised_1_stencil_21_1018.in0"], + ["self.in0_denoised_1_stencil.7","absd_denoised_1_stencil_20_denoised_1_stencil_21_1018.in1"], + ["ult_1017_1018_1019.in1","absd_denoised_1_stencil_20_denoised_1_stencil_21_1018.out"], + ["add_denoised_1_stencil_19_denoised_1_stencil_15_1002.out","add_1002_960_1003.in0"], + ["const_p1__960$14.out","add_1002_960_1003.in1"], + ["lshr_1003_960_1004.in0","add_1002_960_1003.out"], + ["add_denoised_1_stencil_19_denoised_1_stencil_20_1005.out","add_1005_960_1006.in0"], + ["const_p1__960$16.out","add_1005_960_1006.in1"], + ["lshr_1006_960_1007.in0","add_1005_960_1006.out"], + ["mux_1001_1004_1007.out","add_1008_980_1009.in0"], + ["mux_973_976_979.out","add_1008_980_1009.in1"], + ["add_1009_960_1010.in0","add_1008_980_1009.out"], + ["const_p1__960$18.out","add_1009_960_1010.in1"], + ["lshr_1010_960_1011.in0","add_1009_960_1010.out"], + ["add_denoised_1_stencil_15_denoised_1_stencil_20_1013.out","add_1013_960_1014.in0"], + ["const_p1__960$20.out","add_1013_960_1014.in1"], + ["lshr_1014_960_1015.in0","add_1013_960_1014.out"], + ["lshr_1014_960_1015.out","add_1015_997_1016.in0"], + ["mux_993_996_962.out","add_1015_997_1016.in1"], + ["sub_1016_1026_1027.in0","add_1015_997_1016.out"], + ["add_denoised_1_stencil_21_denoised_1_stencil_20_1020.out","add_1020_960_1021.in0"], + ["const_p1__960$22.out","add_1020_960_1021.in1"], + ["lshr_1021_960_1022.in0","add_1020_960_1021.out"], + ["add_970_1023_1024.out","add_1024_960_1025.in0"], + ["const_p1__960$24.out","add_1024_960_1025.in1"], + ["lshr_1025_960_1026.in0","add_1024_960_1025.out"], + ["add_980_1023_1031.out","add_1031_960_1032.in0"], + ["const_p1__960$26.out","add_1031_960_1032.in1"], + ["lshr_1032_960_1033.in0","add_1031_960_1032.out"], + ["add_denoised_1_stencil_14_denoised_1_stencil_15_959.out","add_959_960_961.in0"], + ["const_p1__960.out","add_959_960_961.in1"], + ["lshr_961_960_962.in0","add_959_960_961.out"], + ["add_denoised_1_stencil_16_denoised_1_stencil_15_967.out","add_967_960_968.in0"], + ["const_p1__960$2.out","add_967_960_968.in1"], + ["lshr_968_960_969.in0","add_967_960_968.out"], + ["mux_966_969_962.out","add_970_1023_1024.in0"], + ["mux_1019_996_1022.out","add_970_1023_1024.in1"], + ["mux_966_969_962.out","add_970_980_981.in0"], + ["mux_973_976_979.out","add_970_980_981.in1"], + ["add_981_960_982.in0","add_970_980_981.out"], + ["add_denoised_1_stencil_17_denoised_1_stencil_14_974.out","add_974_960_975.in0"], + ["const_p1__960$4.out","add_974_960_975.in1"], + ["lshr_975_960_976.in0","add_974_960_975.out"], + ["add_denoised_1_stencil_18_denoised_1_stencil_14_977.out","add_977_960_978.in0"], + ["const_p1__960$6.out","add_977_960_978.in1"], + ["lshr_978_960_979.in0","add_977_960_978.out"], + ["mux_973_976_979.out","add_980_1023_1031.in0"], + ["mux_1019_996_1022.out","add_980_1023_1031.in1"], + ["const_p1__960$8.out","add_981_960_982.in1"], + ["lshr_982_960_983.in0","add_981_960_982.out"], + ["add_denoised_1_stencil_19_denoised_1_stencil_14_988.out","add_988_960_989.in0"], + ["const_p1__960$10.out","add_988_960_989.in1"], + ["lshr_989_960_990.in0","add_988_960_989.out"], + ["lshr_989_960_990.out","add_990_997_998.in0"], + ["mux_993_996_962.out","add_990_997_998.in1"], + ["sub_998_1011_1012.in0","add_990_997_998.out"], + ["add_denoised_1_stencil_14_denoised_1_stencil_20_994.out","add_994_960_995.in0"], + ["const_p1__960$12.out","add_994_960_995.in1"], + ["lshr_995_960_996.in0","add_994_960_995.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_962_963.in0"], + ["lshr_961_960_962.out","add_denoised_1_stencil_14_962_963.in1"], + ["sub_963_983_984.in0","add_denoised_1_stencil_14_962_963.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_996_1030.in0"], + ["lshr_995_960_996.out","add_denoised_1_stencil_14_996_1030.in1"], + ["sub_1030_1033_1034.in0","add_denoised_1_stencil_14_996_1030.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_denoised_1_stencil_15_959.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_14_denoised_1_stencil_15_959.in1"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_denoised_1_stencil_20_994.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_14_denoised_1_stencil_20_994.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_15_denoised_1_stencil_20_1013.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_15_denoised_1_stencil_20_1013.in1"], + ["self.in0_denoised_1_stencil.2","add_denoised_1_stencil_16_denoised_1_stencil_15_967.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_16_denoised_1_stencil_15_967.in1"], + ["self.in0_denoised_1_stencil.3","add_denoised_1_stencil_17_denoised_1_stencil_14_974.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_17_denoised_1_stencil_14_974.in1"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_18_denoised_1_stencil_14_977.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_18_denoised_1_stencil_14_977.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_19_denoised_1_stencil_14_988.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_19_denoised_1_stencil_14_988.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_19_denoised_1_stencil_15_1002.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_19_denoised_1_stencil_15_1002.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_19_denoised_1_stencil_20_1005.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_19_denoised_1_stencil_20_1005.in1"], + ["self.in0_denoised_1_stencil.7","add_denoised_1_stencil_21_denoised_1_stencil_20_1020.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_21_denoised_1_stencil_20_1020.in1"], + ["self.demosaicked_1_s0_x_2","and_demosaicked_1_s0_x_2_954_957.in0"], + ["const_p1__954$1.out","and_demosaicked_1_s0_x_2_954_957.in1"], + ["eq_9570_958.in0","and_demosaicked_1_s0_x_2_954_957.out"], + ["self.demosaicked_1_s0_y_2","and_demosaicked_1_s0_y_2_954_955.in0"], + ["const_p1__954.out","and_demosaicked_1_s0_y_2_954_955.in1"], + ["eq_9550_956.in0","and_demosaicked_1_s0_y_2_954_955.out"], + ["eq_9550_956.in1","const_p0_0$4.out"], + ["eq_9570_958.in1","const_p0_0$5.out"], + ["lshr_961_960_962.in1","const_p1__960$1.out"], + ["lshr_989_960_990.in1","const_p1__960$11.out"], + ["lshr_995_960_996.in1","const_p1__960$13.out"], + ["lshr_1003_960_1004.in1","const_p1__960$15.out"], + ["lshr_1006_960_1007.in1","const_p1__960$17.out"], + ["lshr_1010_960_1011.in1","const_p1__960$19.out"], + ["lshr_1014_960_1015.in1","const_p1__960$21.out"], + ["lshr_1021_960_1022.in1","const_p1__960$23.out"], + ["lshr_1025_960_1026.in1","const_p1__960$25.out"], + ["lshr_1032_960_1033.in1","const_p1__960$27.out"], + ["lshr_968_960_969.in1","const_p1__960$3.out"], + ["lshr_975_960_976.in1","const_p1__960$5.out"], + ["lshr_978_960_979.in1","const_p1__960$7.out"], + ["lshr_982_960_983.in1","const_p1__960$9.out"], + ["mux_956_1029_1035.sel","eq_9550_956.out"], + ["mux_958_984_1028.sel","eq_9570_958.out"], + ["mux_958_denoised_1_stencil_14_1034.sel","eq_9570_958.out"], + ["mux_1001_1004_1007.in1","lshr_1003_960_1004.out"], + ["mux_1001_1004_1007.in0","lshr_1006_960_1007.out"], + ["sub_998_1011_1012.in1","lshr_1010_960_1011.out"], + ["mux_1019_996_1022.in0","lshr_1021_960_1022.out"], + ["sub_1016_1026_1027.in1","lshr_1025_960_1026.out"], + ["sub_1030_1033_1034.in1","lshr_1032_960_1033.out"], + ["mux_966_969_962.in0","lshr_961_960_962.out"], + ["mux_993_996_962.in0","lshr_961_960_962.out"], + ["mux_966_969_962.in1","lshr_968_960_969.out"], + ["mux_973_976_979.in1","lshr_975_960_976.out"], + ["mux_973_976_979.in0","lshr_978_960_979.out"], + ["sub_963_983_984.in1","lshr_982_960_983.out"], + ["mux_1019_996_1022.in1","lshr_995_960_996.out"], + ["mux_993_996_962.in1","lshr_995_960_996.out"], + ["ult_999_1000_1001.out","mux_1001_1004_1007.sel"], + ["ult_1017_1018_1019.out","mux_1019_996_1022.sel"], + ["mux_958_denoised_1_stencil_14_1034.out","mux_956_1029_1035.in0"], + ["mux_958_984_1028.out","mux_956_1029_1035.in1"], + ["self.out_demosaicked_1_stencil","mux_956_1029_1035.out"], + ["mux_987_1012_1027.out","mux_958_984_1028.in0"], + ["sub_963_983_984.out","mux_958_984_1028.in1"], + ["sub_1030_1033_1034.out","mux_958_denoised_1_stencil_14_1034.in0"], + ["self.in0_denoised_1_stencil.0","mux_958_denoised_1_stencil_14_1034.in1"], + ["ult_964_965_966.out","mux_966_969_962.sel"], + ["ult_971_972_973.out","mux_973_976_979.sel"], + ["sub_1016_1026_1027.out","mux_987_1012_1027.in0"], + ["sub_998_1011_1012.out","mux_987_1012_1027.in1"], + ["ult_985_986_987.out","mux_987_1012_1027.sel"], + ["ult_991_992_993.out","mux_993_996_962.sel"] + ] + }, + "hcompute_denoised_1_stencil":{ + "type":["Record",[ + ["out_denoised_1_stencil",["Array",16,"Bit"]], + ["in0_hw_input_global_wrapper_stencil",["Array",5,["Array",16,"BitIn"]]] + ]], + "instances":{ + "umax_333_336_337":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umax_hw_input_global_wrapper_stencil_2_331_332":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umax_hw_input_global_wrapper_stencil_3_330_331":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_1_332_333":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_2_335_336":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_3_334_335":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["umin_hw_input_global_wrapper_stencil_1_332_333.in0","self.in0_hw_input_global_wrapper_stencil.0"], + ["umax_hw_input_global_wrapper_stencil_2_331_332.in0","self.in0_hw_input_global_wrapper_stencil.1"], + ["umin_hw_input_global_wrapper_stencil_2_335_336.in0","self.in0_hw_input_global_wrapper_stencil.1"], + ["umax_hw_input_global_wrapper_stencil_3_330_331.in0","self.in0_hw_input_global_wrapper_stencil.2"], + ["umin_hw_input_global_wrapper_stencil_3_334_335.in0","self.in0_hw_input_global_wrapper_stencil.2"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330.in0","self.in0_hw_input_global_wrapper_stencil.3"], + ["umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334.in0","self.in0_hw_input_global_wrapper_stencil.3"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330.in1","self.in0_hw_input_global_wrapper_stencil.4"], + ["umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334.in1","self.in0_hw_input_global_wrapper_stencil.4"], + ["umax_333_336_337.out","self.out_denoised_1_stencil"], + ["umin_hw_input_global_wrapper_stencil_1_332_333.out","umax_333_336_337.in0"], + ["umin_hw_input_global_wrapper_stencil_2_335_336.out","umax_333_336_337.in1"], + ["umax_hw_input_global_wrapper_stencil_3_330_331.out","umax_hw_input_global_wrapper_stencil_2_331_332.in1"], + ["umin_hw_input_global_wrapper_stencil_1_332_333.in1","umax_hw_input_global_wrapper_stencil_2_331_332.out"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330.out","umax_hw_input_global_wrapper_stencil_3_330_331.in1"], + ["umin_hw_input_global_wrapper_stencil_3_334_335.out","umin_hw_input_global_wrapper_stencil_2_335_336.in1"], + ["umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334.out","umin_hw_input_global_wrapper_stencil_3_334_335.in1"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_curved_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_curved_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_1":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_curved_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_curved_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_2":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_curved_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_curved_stencil.0"] + ] + } + } + } +} +} diff --git a/examples/clockwork/camera_pipeline_compute.json b/examples/clockwork/camera_pipeline_compute.json index 3f7617a..28e779e 100644 --- a/examples/clockwork/camera_pipeline_compute.json +++ b/examples/clockwork/camera_pipeline_compute.json @@ -2,91 +2,82 @@ "namespaces":{ "global":{ "modules":{ - "hcompute_b_b_stencil":{ - "type":["Record",[ - ["out_b_b_stencil",["Array",16,"Bit"]], - ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "connections":[ - ["self.out_b_b_stencil","self.in0_denoised_1_stencil.0"] - ] - }, "hcompute_corrected_stencil":{ "type":["Record",[ ["out_corrected_stencil",["Array",16,"Bit"]], ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] ]], "instances":{ - "add_1301_1303_1304":{ + "add_1193_1196_1197":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1307-10221_1308":{ + "add_1201_1202_1203":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "ashr_1308_1309_1310":{ + "ashr_1203_1204_1205":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "const_n10221_-10221":{ + "const_n3900__1202":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'hd813"]} + "modargs":{"value":[["BitVector",16],"16'hf0c4"]} }, - "const_p103_103":{ + "const_p17__1195":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0067"]} + "modargs":{"value":[["BitVector",16],"16'h0011"]} }, - "const_p549_549":{ + "const_p200__1192":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0225"]} + "modargs":{"value":[["BitVector",16],"16'h00c8"]} }, - "const_p7_7":{ + "const_p44__1199":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0007"]} + "modargs":{"value":[["BitVector",16],"16'h002c"]} }, - "const_p8__1309":{ + "const_p8__1204":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0008"]} }, - "mul_1300549_1301":{ + "mul_1191_1192_1193":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_13027_1303":{ + "mul_1194_1195_1196":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_1305103_1306":{ + "mul_1198_1199_1200":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "sub_1304_1306_1307":{ + "sub_1197_1200_1201":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} } }, "connections":[ - ["mul_1300549_1301.out","add_1301_1303_1304.in0"], - ["mul_13027_1303.out","add_1301_1303_1304.in1"], - ["sub_1304_1306_1307.in0","add_1301_1303_1304.out"], - ["sub_1304_1306_1307.out","add_1307-10221_1308.in0"], - ["const_n10221_-10221.out","add_1307-10221_1308.in1"], - ["ashr_1308_1309_1310.in0","add_1307-10221_1308.out"], - ["const_p8__1309.out","ashr_1308_1309_1310.in1"], - ["self.out_corrected_stencil","ashr_1308_1309_1310.out"], - ["mul_1305103_1306.in1","const_p103_103.out"], - ["mul_1300549_1301.in1","const_p549_549.out"], - ["mul_13027_1303.in1","const_p7_7.out"], - ["self.in0_demosaicked_1_stencil.0","mul_1300549_1301.in0"], - ["self.in0_demosaicked_1_stencil.1","mul_13027_1303.in0"], - ["self.in0_demosaicked_1_stencil.2","mul_1305103_1306.in0"], - ["sub_1304_1306_1307.in1","mul_1305103_1306.out"] + ["mul_1191_1192_1193.out","add_1193_1196_1197.in0"], + ["mul_1194_1195_1196.out","add_1193_1196_1197.in1"], + ["sub_1197_1200_1201.in0","add_1193_1196_1197.out"], + ["sub_1197_1200_1201.out","add_1201_1202_1203.in0"], + ["const_n3900__1202.out","add_1201_1202_1203.in1"], + ["ashr_1203_1204_1205.in0","add_1201_1202_1203.out"], + ["const_p8__1204.out","ashr_1203_1204_1205.in1"], + ["self.out_corrected_stencil","ashr_1203_1204_1205.out"], + ["mul_1194_1195_1196.in1","const_p17__1195.out"], + ["mul_1191_1192_1193.in1","const_p200__1192.out"], + ["mul_1198_1199_1200.in1","const_p44__1199.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1191_1192_1193.in0"], + ["self.in0_demosaicked_1_stencil.1","mul_1194_1195_1196.in0"], + ["self.in0_demosaicked_1_stencil.2","mul_1198_1199_1200.in0"], + ["sub_1197_1200_1201.in1","mul_1198_1199_1200.out"] ] }, "hcompute_corrected_stencil_1":{ @@ -95,76 +86,76 @@ ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] ]], "instances":{ - "add_1338_1340_1341":{ + "add_1252_1253_1254":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1344-7254_1345":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "ashr_1345_1346_1347":{ + "ashr_1254_1255_1256":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "const_n7254_-7254":{ + "const_n2541__1253":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'he3aa"]} + "modargs":{"value":[["BitVector",16],"16'hf613"]} }, - "const_p373_373":{ + "const_p159__1243":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0175"]} + "modargs":{"value":[["BitVector",16],"16'h009f"]} }, - "const_p62_62":{ + "const_p21__1250":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h003e"]} + "modargs":{"value":[["BitVector",16],"16'h0015"]} }, - "const_p8__1346":{ + "const_p38__1246":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0008"]} + "modargs":{"value":[["BitVector",16],"16'h0026"]} }, - "const_p96_96":{ + "const_p8__1255":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0060"]} + "modargs":{"value":[["BitVector",16],"16'h0008"]} }, - "mul_1337373_1338":{ + "mul_1242_1243_1244":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_133962_1340":{ + "mul_1245_1246_1247":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_134296_1343":{ + "mul_1249_1250_1251":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "sub_1341_1343_1344":{ + "sub_1244_1247_1248":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1248_1251_1252":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} } }, "connections":[ - ["mul_1337373_1338.out","add_1338_1340_1341.in0"], - ["mul_133962_1340.out","add_1338_1340_1341.in1"], - ["sub_1341_1343_1344.in0","add_1338_1340_1341.out"], - ["sub_1341_1343_1344.out","add_1344-7254_1345.in0"], - ["const_n7254_-7254.out","add_1344-7254_1345.in1"], - ["ashr_1345_1346_1347.in0","add_1344-7254_1345.out"], - ["const_p8__1346.out","ashr_1345_1346_1347.in1"], - ["self.out_corrected_stencil","ashr_1345_1346_1347.out"], - ["mul_1337373_1338.in1","const_p373_373.out"], - ["mul_133962_1340.in1","const_p62_62.out"], - ["mul_134296_1343.in1","const_p96_96.out"], - ["self.in0_demosaicked_1_stencil.0","mul_1337373_1338.in0"], - ["self.in0_demosaicked_1_stencil.1","mul_133962_1340.in0"], - ["self.in0_demosaicked_1_stencil.2","mul_134296_1343.in0"], - ["sub_1341_1343_1344.in1","mul_134296_1343.out"] + ["sub_1248_1251_1252.out","add_1252_1253_1254.in0"], + ["const_n2541__1253.out","add_1252_1253_1254.in1"], + ["ashr_1254_1255_1256.in0","add_1252_1253_1254.out"], + ["const_p8__1255.out","ashr_1254_1255_1256.in1"], + ["self.out_corrected_stencil","ashr_1254_1255_1256.out"], + ["mul_1242_1243_1244.in1","const_p159__1243.out"], + ["mul_1249_1250_1251.in1","const_p21__1250.out"], + ["mul_1245_1246_1247.in1","const_p38__1246.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1242_1243_1244.in0"], + ["sub_1244_1247_1248.in0","mul_1242_1243_1244.out"], + ["self.in0_demosaicked_1_stencil.1","mul_1245_1246_1247.in0"], + ["sub_1244_1247_1248.in1","mul_1245_1246_1247.out"], + ["self.in0_demosaicked_1_stencil.2","mul_1249_1250_1251.in0"], + ["sub_1248_1251_1252.in1","mul_1249_1250_1251.out"], + ["sub_1248_1251_1252.in0","sub_1244_1247_1248.out"] ] }, "hcompute_corrected_stencil_2":{ @@ -173,76 +164,76 @@ ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] ]], "instances":{ - "add_1381-5563_1382":{ + "add_1302_1303_1304":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "ashr_1382_1383_1384":{ + "ashr_1304_1305_1306":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "const_n5563_-5563":{ + "const_n2008__1303":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'hea45"]} + "modargs":{"value":[["BitVector",16],"16'hf828"]} }, - "const_p261_261":{ + "const_p228__1293":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0105"]} + "modargs":{"value":[["BitVector",16],"16'h00e4"]} }, - "const_p31_31":{ + "const_p73__1296":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h001f"]} + "modargs":{"value":[["BitVector",16],"16'h0049"]} }, - "const_p883_883":{ + "const_p8__1300":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0373"]} + "modargs":{"value":[["BitVector",16],"16'h0008"]} }, - "const_p8__1383":{ + "const_p8__1305":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0008"]} }, - "mul_1374883_1375":{ + "mul_1292_1293_1294":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_1376261_1377":{ + "mul_1295_1296_1297":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_137931_1380":{ + "mul_1299_1300_1301":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "sub_1375_1377_1378":{ + "sub_1294_1297_1298":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_1378_1380_1381":{ + "sub_1298_1301_1302":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} } }, "connections":[ - ["sub_1378_1380_1381.out","add_1381-5563_1382.in0"], - ["const_n5563_-5563.out","add_1381-5563_1382.in1"], - ["ashr_1382_1383_1384.in0","add_1381-5563_1382.out"], - ["const_p8__1383.out","ashr_1382_1383_1384.in1"], - ["self.out_corrected_stencil","ashr_1382_1383_1384.out"], - ["mul_1376261_1377.in1","const_p261_261.out"], - ["mul_137931_1380.in1","const_p31_31.out"], - ["mul_1374883_1375.in1","const_p883_883.out"], - ["self.in0_demosaicked_1_stencil.0","mul_1374883_1375.in0"], - ["sub_1375_1377_1378.in0","mul_1374883_1375.out"], - ["self.in0_demosaicked_1_stencil.1","mul_1376261_1377.in0"], - ["sub_1375_1377_1378.in1","mul_1376261_1377.out"], - ["self.in0_demosaicked_1_stencil.2","mul_137931_1380.in0"], - ["sub_1378_1380_1381.in1","mul_137931_1380.out"], - ["sub_1378_1380_1381.in0","sub_1375_1377_1378.out"] + ["sub_1298_1301_1302.out","add_1302_1303_1304.in0"], + ["const_n2008__1303.out","add_1302_1303_1304.in1"], + ["ashr_1304_1305_1306.in0","add_1302_1303_1304.out"], + ["const_p8__1305.out","ashr_1304_1305_1306.in1"], + ["self.out_corrected_stencil","ashr_1304_1305_1306.out"], + ["mul_1292_1293_1294.in1","const_p228__1293.out"], + ["mul_1295_1296_1297.in1","const_p73__1296.out"], + ["mul_1299_1300_1301.in1","const_p8__1300.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1292_1293_1294.in0"], + ["sub_1294_1297_1298.in0","mul_1292_1293_1294.out"], + ["self.in0_demosaicked_1_stencil.1","mul_1295_1296_1297.in0"], + ["sub_1294_1297_1298.in1","mul_1295_1296_1297.out"], + ["self.in0_demosaicked_1_stencil.2","mul_1299_1300_1301.in0"], + ["sub_1298_1301_1302.in1","mul_1299_1300_1301.out"], + ["sub_1298_1301_1302.in0","sub_1294_1297_1298.out"] ] }, "hcompute_curved_stencil":{ @@ -251,42 +242,31 @@ ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "instances":{ - "const_p0__3457":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0000"]} - }, - "const_p1023__3455":{ + "const_p255__1842":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h03ff"]} + "modargs":{"value":[["BitVector",16],"16'h00ff"]} }, "rom_curvea0":{ "genref":"memory.rom2", - "genargs":{"depth":["Int",1024], "width":["Int",16]}, - "modargs":{"init":["Json",[0,4,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,22,23,24,25,25,26,27,27,28,29,29,30,31,31,32,33,33,34,34,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,68,69,69,70,70,71,71,71,72,72,73,73,74,74,74,75,75,76,76,77,77,77,78,78,79,79,79,80,80,81,81,82,82,82,83,83,84,84,84,85,85,86,86,86,87,87,88,88,88,89,89,90,90,90,91,91,92,92,92,93,93,93,94,94,95,95,95,96,96,97,97,97,98,98,99,99,99,100,100,100,101,101,102,102,102,103,103,103,104,104,105,105,105,106,106,106,107,107,108,108,108,109,109,109,110,110,111,111,111,112,112,112,113,113,113,114,114,115,115,115,116,116,116,117,117,117,118,118,119,119,119,120,120,120,121,121,121,122,122,123,123,123,124,124,124,125,125,125,126,126,126,127,127,128,128,128,129,129,129,130,130,130,131,131,131,132,132,132,133,133,133,134,134,134,135,135,135,136,136,136,137,137,137,138,138,138,139,139,139,140,140,140,141,141,141,141,142,142,142,143,143,143,144,144,144,145,145,145,145,146,146,146,147,147,147,148,148,148,148,149,149,149,150,150,150,150,151,151,151,152,152,152,152,153,153,153,154,154,154,154,155,155,155,156,156,156,156,157,157,157,157,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,162,162,162,162,163,163,163,163,164,164,164,164,165,165,165,166,166,166,166,167,167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,171,171,171,171,172,172,172,172,173,173,173,173,173,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,181,181,181,181,181,182,182,182,182,183,183,183,183,183,184,184,184,184,184,185,185,185,185,185,186,186,186,186,187,187,187,187,187,188,188,188,188,188,189,189,189,189,189,190,190,190,190,190,190,191,191,191,191,191,192,192,192,192,192,193,193,193,193,193,194,194,194,194,194,195,195,195,195,195,195,196,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,199,199,199,199,199,199,200,200,200,200,200,200,201,201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,204,204,204,204,204,204,205,205,205,205,205,205,206,206,206,206,206,206,207,207,207,207,207,207,208,208,208,208,208,208,209,209,209,209,209,209,209,210,210,210,210,210,210,211,211,211,211,211,211,211,212,212,212,212,212,212,213,213,213,213,213,213,213,214,214,214,214,214,214,214,215,215,215,215,215,215,216,216,216,216,216,216,216,217,217,217,217,217,217,217,218,218,218,218,218,218,218,219,219,219,219,219,219,219,220,220,220,220,220,220,220,220,221,221,221,221,221,221,221,222,222,222,222,222,222,222,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,234,234,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,236,236,236,236,236,236,236,236,236,237,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,238,239,239,239,239,239,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,241,241,241,241,241,241,241,241,241,241,242,242,242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255]]} + "genargs":{"depth":["Int",256], "width":["Int",16]}, + "modargs":{"init":["Json",[0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63]]} }, "rom_curvea0_ren":{ "modref":"corebit.const", "modargs":{"value":["Bool",true]} }, - "smax_3456_3457_3458":{ - "genref":"commonlib.smax", - "genargs":{"width":["Int",16]} - }, - "smin_corrected_stencil_1_3455_3456":{ - "genref":"commonlib.smin", + "umin_corrected_stencil_1_1842_1843":{ + "genref":"commonlib.umin", "genargs":{"width":["Int",16]} } }, "connections":[ - ["smax_3456_3457_3458.in1","const_p0__3457.out"], - ["smin_corrected_stencil_1_3455_3456.in1","const_p1023__3455.out"], - ["smax_3456_3457_3458.out","rom_curvea0.raddr"], + ["umin_corrected_stencil_1_1842_1843.in1","const_p255__1842.out"], + ["umin_corrected_stencil_1_1842_1843.out","rom_curvea0.raddr"], ["self.out_curved_stencil","rom_curvea0.rdata"], ["rom_curvea0_ren.out","rom_curvea0.ren"], - ["smin_corrected_stencil_1_3455_3456.in0","self.in0_corrected_stencil.0"], - ["smin_corrected_stencil_1_3455_3456.out","smax_3456_3457_3458.in0"] + ["umin_corrected_stencil_1_1842_1843.in0","self.in0_corrected_stencil.0"] ] }, "hcompute_curved_stencil_1":{ @@ -295,42 +275,31 @@ ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "instances":{ - "const_p0__4503":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0000"]} - }, - "const_p1023__4501":{ + "const_p255__2111":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h03ff"]} + "modargs":{"value":[["BitVector",16],"16'h00ff"]} }, "rom_curvea0$1":{ "genref":"memory.rom2", - "genargs":{"depth":["Int",1024], "width":["Int",16]}, - "modargs":{"init":["Json",[0,4,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,22,23,24,25,25,26,27,27,28,29,29,30,31,31,32,33,33,34,34,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,68,69,69,70,70,71,71,71,72,72,73,73,74,74,74,75,75,76,76,77,77,77,78,78,79,79,79,80,80,81,81,82,82,82,83,83,84,84,84,85,85,86,86,86,87,87,88,88,88,89,89,90,90,90,91,91,92,92,92,93,93,93,94,94,95,95,95,96,96,97,97,97,98,98,99,99,99,100,100,100,101,101,102,102,102,103,103,103,104,104,105,105,105,106,106,106,107,107,108,108,108,109,109,109,110,110,111,111,111,112,112,112,113,113,113,114,114,115,115,115,116,116,116,117,117,117,118,118,119,119,119,120,120,120,121,121,121,122,122,123,123,123,124,124,124,125,125,125,126,126,126,127,127,128,128,128,129,129,129,130,130,130,131,131,131,132,132,132,133,133,133,134,134,134,135,135,135,136,136,136,137,137,137,138,138,138,139,139,139,140,140,140,141,141,141,141,142,142,142,143,143,143,144,144,144,145,145,145,145,146,146,146,147,147,147,148,148,148,148,149,149,149,150,150,150,150,151,151,151,152,152,152,152,153,153,153,154,154,154,154,155,155,155,156,156,156,156,157,157,157,157,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,162,162,162,162,163,163,163,163,164,164,164,164,165,165,165,166,166,166,166,167,167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,171,171,171,171,172,172,172,172,173,173,173,173,173,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,181,181,181,181,181,182,182,182,182,183,183,183,183,183,184,184,184,184,184,185,185,185,185,185,186,186,186,186,187,187,187,187,187,188,188,188,188,188,189,189,189,189,189,190,190,190,190,190,190,191,191,191,191,191,192,192,192,192,192,193,193,193,193,193,194,194,194,194,194,195,195,195,195,195,195,196,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,199,199,199,199,199,199,200,200,200,200,200,200,201,201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,204,204,204,204,204,204,205,205,205,205,205,205,206,206,206,206,206,206,207,207,207,207,207,207,208,208,208,208,208,208,209,209,209,209,209,209,209,210,210,210,210,210,210,211,211,211,211,211,211,211,212,212,212,212,212,212,213,213,213,213,213,213,213,214,214,214,214,214,214,214,215,215,215,215,215,215,216,216,216,216,216,216,216,217,217,217,217,217,217,217,218,218,218,218,218,218,218,219,219,219,219,219,219,219,220,220,220,220,220,220,220,220,221,221,221,221,221,221,221,222,222,222,222,222,222,222,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,234,234,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,236,236,236,236,236,236,236,236,236,237,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,238,239,239,239,239,239,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,241,241,241,241,241,241,241,241,241,241,242,242,242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255]]} + "genargs":{"depth":["Int",256], "width":["Int",16]}, + "modargs":{"init":["Json",[0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63]]} }, "rom_curvea0$1_ren":{ "modref":"corebit.const", "modargs":{"value":["Bool",true]} }, - "smax_4502_4503_4504":{ - "genref":"commonlib.smax", - "genargs":{"width":["Int",16]} - }, - "smin_corrected_stencil_2_4501_4502":{ - "genref":"commonlib.smin", + "umin_corrected_stencil_2_2111_2112":{ + "genref":"commonlib.umin", "genargs":{"width":["Int",16]} } }, "connections":[ - ["smax_4502_4503_4504.in1","const_p0__4503.out"], - ["smin_corrected_stencil_2_4501_4502.in1","const_p1023__4501.out"], - ["smax_4502_4503_4504.out","rom_curvea0$1.raddr"], + ["umin_corrected_stencil_2_2111_2112.in1","const_p255__2111.out"], + ["umin_corrected_stencil_2_2111_2112.out","rom_curvea0$1.raddr"], ["self.out_curved_stencil","rom_curvea0$1.rdata"], ["rom_curvea0$1_ren.out","rom_curvea0$1.ren"], - ["smin_corrected_stencil_2_4501_4502.in0","self.in0_corrected_stencil.0"], - ["smin_corrected_stencil_2_4501_4502.out","smax_4502_4503_4504.in0"] + ["umin_corrected_stencil_2_2111_2112.in0","self.in0_corrected_stencil.0"] ] }, "hcompute_curved_stencil_2":{ @@ -339,267 +308,222 @@ ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "instances":{ - "const_p0__5549":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0000"]} - }, - "const_p1023__5547":{ + "const_p255__2380":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h03ff"]} + "modargs":{"value":[["BitVector",16],"16'h00ff"]} }, "rom_curvea0$2":{ "genref":"memory.rom2", - "genargs":{"depth":["Int",1024], "width":["Int",16]}, - "modargs":{"init":["Json",[0,4,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,22,23,24,25,25,26,27,27,28,29,29,30,31,31,32,33,33,34,34,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,68,69,69,70,70,71,71,71,72,72,73,73,74,74,74,75,75,76,76,77,77,77,78,78,79,79,79,80,80,81,81,82,82,82,83,83,84,84,84,85,85,86,86,86,87,87,88,88,88,89,89,90,90,90,91,91,92,92,92,93,93,93,94,94,95,95,95,96,96,97,97,97,98,98,99,99,99,100,100,100,101,101,102,102,102,103,103,103,104,104,105,105,105,106,106,106,107,107,108,108,108,109,109,109,110,110,111,111,111,112,112,112,113,113,113,114,114,115,115,115,116,116,116,117,117,117,118,118,119,119,119,120,120,120,121,121,121,122,122,123,123,123,124,124,124,125,125,125,126,126,126,127,127,128,128,128,129,129,129,130,130,130,131,131,131,132,132,132,133,133,133,134,134,134,135,135,135,136,136,136,137,137,137,138,138,138,139,139,139,140,140,140,141,141,141,141,142,142,142,143,143,143,144,144,144,145,145,145,145,146,146,146,147,147,147,148,148,148,148,149,149,149,150,150,150,150,151,151,151,152,152,152,152,153,153,153,154,154,154,154,155,155,155,156,156,156,156,157,157,157,157,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,162,162,162,162,163,163,163,163,164,164,164,164,165,165,165,166,166,166,166,167,167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,171,171,171,171,172,172,172,172,173,173,173,173,173,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,181,181,181,181,181,182,182,182,182,183,183,183,183,183,184,184,184,184,184,185,185,185,185,185,186,186,186,186,187,187,187,187,187,188,188,188,188,188,189,189,189,189,189,190,190,190,190,190,190,191,191,191,191,191,192,192,192,192,192,193,193,193,193,193,194,194,194,194,194,195,195,195,195,195,195,196,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,199,199,199,199,199,199,200,200,200,200,200,200,201,201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,204,204,204,204,204,204,205,205,205,205,205,205,206,206,206,206,206,206,207,207,207,207,207,207,208,208,208,208,208,208,209,209,209,209,209,209,209,210,210,210,210,210,210,211,211,211,211,211,211,211,212,212,212,212,212,212,213,213,213,213,213,213,213,214,214,214,214,214,214,214,215,215,215,215,215,215,216,216,216,216,216,216,216,217,217,217,217,217,217,217,218,218,218,218,218,218,218,219,219,219,219,219,219,219,220,220,220,220,220,220,220,220,221,221,221,221,221,221,221,222,222,222,222,222,222,222,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,234,234,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,236,236,236,236,236,236,236,236,236,237,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,238,239,239,239,239,239,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,241,241,241,241,241,241,241,241,241,241,242,242,242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255]]} + "genargs":{"depth":["Int",256], "width":["Int",16]}, + "modargs":{"init":["Json",[0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63]]} }, "rom_curvea0$2_ren":{ "modref":"corebit.const", "modargs":{"value":["Bool",true]} }, - "smax_5548_5549_5550":{ - "genref":"commonlib.smax", - "genargs":{"width":["Int",16]} - }, - "smin_corrected_stencil_3_5547_5548":{ - "genref":"commonlib.smin", + "umin_corrected_stencil_3_2380_2381":{ + "genref":"commonlib.umin", "genargs":{"width":["Int",16]} } }, "connections":[ - ["smax_5548_5549_5550.in1","const_p0__5549.out"], - ["smin_corrected_stencil_3_5547_5548.in1","const_p1023__5547.out"], - ["smax_5548_5549_5550.out","rom_curvea0$2.raddr"], + ["umin_corrected_stencil_3_2380_2381.in1","const_p255__2380.out"], + ["umin_corrected_stencil_3_2380_2381.out","rom_curvea0$2.raddr"], ["self.out_curved_stencil","rom_curvea0$2.rdata"], ["rom_curvea0$2_ren.out","rom_curvea0$2.ren"], - ["smin_corrected_stencil_3_5547_5548.in0","self.in0_corrected_stencil.0"], - ["smin_corrected_stencil_3_5547_5548.out","smax_5548_5549_5550.in0"] + ["umin_corrected_stencil_3_2380_2381.in0","self.in0_corrected_stencil.0"] ] }, "hcompute_demosaicked_1_stencil":{ "type":["Record",[ ["out_demosaicked_1_stencil",["Array",16,"Bit"]], - ["in0_g_gb_stencil",["Array",6,["Array",16,"BitIn"]]], - ["in1_g_gr_stencil",["Array",6,["Array",16,"BitIn"]]], - ["in2_r_r_stencil",["Array",4,["Array",16,"BitIn"]]], + ["in0_denoised_1_stencil",["Array",8,["Array",16,"BitIn"]]], ["demosaicked_1_s0_x",["Array",16,"BitIn"]], ["demosaicked_1_s0_y",["Array",16,"BitIn"]] ]], "instances":{ - "absd_g_gb_stencil_1_g_gb_stencil_2_511":{ + "absd_denoised_1_stencil_1_denoised_1_stencil_2_519":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_2_g_gb_stencil_6_571":{ + "absd_denoised_1_stencil_1_denoised_1_stencil_4_498":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_3_g_gb_stencil_4_521":{ + "absd_denoised_1_stencil_1_denoised_1_stencil_5_499":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_4_g_gb_stencil_2_541":{ + "absd_denoised_1_stencil_1_denoised_1_stencil_7_520":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_4_g_gb_stencil_5_553":{ + "absd_denoised_1_stencil_2_denoised_1_stencil_1_491":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_1_g_gr_stencil_3_520":{ + "absd_denoised_1_stencil_2_denoised_1_stencil_3_492":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_2_g_gr_stencil_1_510":{ + "absd_denoised_1_stencil_6_denoised_1_stencil_1_513":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_4_g_gr_stencil_1_542":{ + "absd_denoised_1_stencil_6_denoised_1_stencil_2_528":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_4_g_gr_stencil_5_552":{ + "absd_denoised_1_stencil_6_denoised_1_stencil_7_527":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_6_g_gr_stencil_4_570":{ + "absd_denoised_1_stencil_7_denoised_1_stencil_1_546":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_r_r_stencil_1_r_r_stencil_4_536":{ + "absd_denoised_1_stencil_7_denoised_1_stencil_2_514":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_r_r_stencil_2_r_r_stencil_3_535":{ + "absd_denoised_1_stencil_7_denoised_1_stencil_8_545":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "add_505_506_507":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_513_506_514":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_516_506_517":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_519_529_530":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_519_579_589":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_523_506_524":{ + "add_486_487_488":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_526_506_527":{ + "add_494_487_495":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_529_579_580":{ + "add_497_507_508":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_530_506_531":{ + "add_497_551_552":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_538_506_539":{ + "add_501_487_502":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_540_550_551":{ + "add_504_487_505":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_544_506_545":{ + "add_507_551_558":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_547_506_548":{ + "add_508_487_509":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_555_506_556":{ + "add_516_487_517":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_558_506_559":{ + "add_518_525_526":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_561_519_562":{ + "add_522_487_523":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_562_506_563":{ + "add_530_487_531":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_566_506_567":{ + "add_533_487_534":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_568_550_569":{ + "add_536_507_537":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_573_506_574":{ + "add_537_487_538":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_576_506_577":{ + "add_541_487_542":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_580_506_581":{ + "add_543_525_544":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_585_506_586":{ + "add_548_487_549":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_589_506_590":{ + "add_552_487_553":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_2_587_588":{ + "add_558_487_559":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_2_g_gb_stencil_1_516":{ + "add_denoised_1_stencil_1_489_490":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_4_g_gb_stencil_2_544":{ + "add_denoised_1_stencil_1_524_557":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_4_g_gb_stencil_3_526":{ + "add_denoised_1_stencil_1_denoised_1_stencil_2_486":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_5_g_gb_stencil_4_558":{ + "add_denoised_1_stencil_1_denoised_1_stencil_6_516":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_6_g_gb_stencil_2_576":{ + "add_denoised_1_stencil_1_denoised_1_stencil_7_522":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_1_508_509":{ + "add_denoised_1_stencil_2_denoised_1_stencil_3_494":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_1_g_gr_stencil_2_513":{ + "add_denoised_1_stencil_2_denoised_1_stencil_7_541":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_3_g_gr_stencil_1_523":{ + "add_denoised_1_stencil_4_denoised_1_stencil_1_501":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_4_g_gr_stencil_1_547":{ + "add_denoised_1_stencil_5_denoised_1_stencil_1_504":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_5_g_gr_stencil_4_555":{ + "add_denoised_1_stencil_6_denoised_1_stencil_2_533":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_6_g_gr_stencil_4_573":{ + "add_denoised_1_stencil_7_denoised_1_stencil_6_530":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_r_r_stencil_1_r_r_stencil_2_505":{ + "add_denoised_1_stencil_8_denoised_1_stencil_7_548":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_r_r_stencil_3_r_r_stencil_2_538":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_r_r_stencil_4_r_r_stencil_1_566":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_r_r_stencil_4_r_r_stencil_2_585":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "and_demosaicked_1_s0_x_500_503":{ + "and_demosaicked_1_s0_x_481_484":{ "genref":"coreir.and", "genargs":{"width":["Int",16]} }, - "and_demosaicked_1_s0_y_500_501":{ + "and_demosaicked_1_s0_y_481_482":{ "genref":"coreir.and", "genargs":{"width":["Int",16]} }, @@ -613,614 +537,533 @@ "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0000"]} }, - "const_p1__500":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__500$1":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__506":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__506$1":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__506$10":{ + "const_p1__481":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$11":{ + "const_p1__481$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$12":{ + "const_p1__487":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$13":{ + "const_p1__487$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$14":{ + "const_p1__487$10":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$15":{ + "const_p1__487$11":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$16":{ + "const_p1__487$12":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$17":{ + "const_p1__487$13":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$18":{ + "const_p1__487$14":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$19":{ + "const_p1__487$15":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$2":{ + "const_p1__487$16":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$20":{ + "const_p1__487$17":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$21":{ + "const_p1__487$18":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$22":{ + "const_p1__487$19":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$23":{ + "const_p1__487$2":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$24":{ + "const_p1__487$20":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$25":{ + "const_p1__487$21":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$26":{ + "const_p1__487$22":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$27":{ + "const_p1__487$23":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$28":{ + "const_p1__487$24":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$29":{ + "const_p1__487$25":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$3":{ + "const_p1__487$26":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$30":{ + "const_p1__487$27":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$31":{ + "const_p1__487$3":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$32":{ + "const_p1__487$4":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$33":{ + "const_p1__487$5":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$34":{ + "const_p1__487$6":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$35":{ + "const_p1__487$7":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$4":{ + "const_p1__487$8":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$5":{ + "const_p1__487$9":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__506$6":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__506$7":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__506$8":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__506$9":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "eq_5010_502":{ + "eq_4820_483":{ "genref":"coreir.eq", "genargs":{"width":["Int",16]} }, - "eq_5030_504":{ + "eq_4840_485":{ "genref":"coreir.eq", "genargs":{"width":["Int",16]} }, - "lshr_507_506_508":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "lshr_514_506_515":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "lshr_517_506_518":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "lshr_524_506_525":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "lshr_527_506_528":{ + "lshr_488_487_489":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_531_506_532":{ + "lshr_495_487_496":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_539_506_540":{ + "lshr_502_487_503":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_545_506_546":{ + "lshr_505_487_506":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_548_506_549":{ + "lshr_509_487_510":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_556_506_557":{ + "lshr_517_487_518":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_559_506_560":{ + "lshr_523_487_524":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_563_506_564":{ + "lshr_531_487_532":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_567_506_568":{ + "lshr_534_487_535":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_574_506_575":{ + "lshr_538_487_539":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_577_506_578":{ + "lshr_542_487_543":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_581_506_582":{ + "lshr_549_487_550":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_586_506_587":{ + "lshr_553_487_554":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_590_506_591":{ + "lshr_559_487_560":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "mux_502_534_593":{ + "mux_483_512_562":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_504_533_r_r_stencil_2":{ + "mux_485_511_denoised_1_stencil_1":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_504_584_592":{ + "mux_485_556_561":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_512_515_518":{ + "mux_493_489_496":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_522_525_528":{ + "mux_500_503_506":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_537_565_583":{ + "mux_515_540_555":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_543_546_549":{ + "mux_521_489_524":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_554_557_560":{ + "mux_529_532_535":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_572_575_578":{ + "mux_547_550_524":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "sub_509_532_533":{ + "sub_490_510_511":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_551_564_565":{ + "sub_526_539_540":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_569_582_583":{ + "sub_544_554_555":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_588_591_592":{ + "sub_557_560_561":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "ult_510_511_512":{ + "ult_491_492_493":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_520_521_522":{ + "ult_498_499_500":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_535_536_537":{ + "ult_513_514_515":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_541_542_543":{ + "ult_519_520_521":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_552_553_554":{ + "ult_527_528_529":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_570_571_572":{ + "ult_545_546_547":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} } }, "connections":[ - ["self.in0_g_gb_stencil.0","absd_g_gb_stencil_1_g_gb_stencil_2_511.in0"], - ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_1_g_gb_stencil_2_511.in1"], - ["ult_510_511_512.in1","absd_g_gb_stencil_1_g_gb_stencil_2_511.out"], - ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_2_g_gb_stencil_6_571.in0"], - ["self.in0_g_gb_stencil.5","absd_g_gb_stencil_2_g_gb_stencil_6_571.in1"], - ["ult_570_571_572.in1","absd_g_gb_stencil_2_g_gb_stencil_6_571.out"], - ["self.in0_g_gb_stencil.2","absd_g_gb_stencil_3_g_gb_stencil_4_521.in0"], - ["self.in0_g_gb_stencil.3","absd_g_gb_stencil_3_g_gb_stencil_4_521.in1"], - ["ult_520_521_522.in1","absd_g_gb_stencil_3_g_gb_stencil_4_521.out"], - ["self.in0_g_gb_stencil.3","absd_g_gb_stencil_4_g_gb_stencil_2_541.in0"], - ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_4_g_gb_stencil_2_541.in1"], - ["ult_541_542_543.in0","absd_g_gb_stencil_4_g_gb_stencil_2_541.out"], - ["self.in0_g_gb_stencil.3","absd_g_gb_stencil_4_g_gb_stencil_5_553.in0"], - ["self.in0_g_gb_stencil.4","absd_g_gb_stencil_4_g_gb_stencil_5_553.in1"], - ["ult_552_553_554.in1","absd_g_gb_stencil_4_g_gb_stencil_5_553.out"], - ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_1_g_gr_stencil_3_520.in0"], - ["self.in1_g_gr_stencil.2","absd_g_gr_stencil_1_g_gr_stencil_3_520.in1"], - ["ult_520_521_522.in0","absd_g_gr_stencil_1_g_gr_stencil_3_520.out"], - ["self.in1_g_gr_stencil.1","absd_g_gr_stencil_2_g_gr_stencil_1_510.in0"], - ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_2_g_gr_stencil_1_510.in1"], - ["ult_510_511_512.in0","absd_g_gr_stencil_2_g_gr_stencil_1_510.out"], - ["self.in1_g_gr_stencil.3","absd_g_gr_stencil_4_g_gr_stencil_1_542.in0"], - ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_4_g_gr_stencil_1_542.in1"], - ["ult_541_542_543.in1","absd_g_gr_stencil_4_g_gr_stencil_1_542.out"], - ["self.in1_g_gr_stencil.3","absd_g_gr_stencil_4_g_gr_stencil_5_552.in0"], - ["self.in1_g_gr_stencil.4","absd_g_gr_stencil_4_g_gr_stencil_5_552.in1"], - ["ult_552_553_554.in0","absd_g_gr_stencil_4_g_gr_stencil_5_552.out"], - ["self.in1_g_gr_stencil.5","absd_g_gr_stencil_6_g_gr_stencil_4_570.in0"], - ["self.in1_g_gr_stencil.3","absd_g_gr_stencil_6_g_gr_stencil_4_570.in1"], - ["ult_570_571_572.in0","absd_g_gr_stencil_6_g_gr_stencil_4_570.out"], - ["self.in2_r_r_stencil.0","absd_r_r_stencil_1_r_r_stencil_4_536.in0"], - ["self.in2_r_r_stencil.3","absd_r_r_stencil_1_r_r_stencil_4_536.in1"], - ["ult_535_536_537.in1","absd_r_r_stencil_1_r_r_stencil_4_536.out"], - ["self.in2_r_r_stencil.1","absd_r_r_stencil_2_r_r_stencil_3_535.in0"], - ["self.in2_r_r_stencil.2","absd_r_r_stencil_2_r_r_stencil_3_535.in1"], - ["ult_535_536_537.in0","absd_r_r_stencil_2_r_r_stencil_3_535.out"], - ["add_r_r_stencil_1_r_r_stencil_2_505.out","add_505_506_507.in0"], - ["const_p1__506.out","add_505_506_507.in1"], - ["lshr_507_506_508.in0","add_505_506_507.out"], - ["add_g_gr_stencil_1_g_gr_stencil_2_513.out","add_513_506_514.in0"], - ["const_p1__506$2.out","add_513_506_514.in1"], - ["lshr_514_506_515.in0","add_513_506_514.out"], - ["add_g_gb_stencil_2_g_gb_stencil_1_516.out","add_516_506_517.in0"], - ["const_p1__506$4.out","add_516_506_517.in1"], - ["lshr_517_506_518.in0","add_516_506_517.out"], - ["mux_512_515_518.out","add_519_529_530.in0"], - ["mux_522_525_528.out","add_519_529_530.in1"], - ["add_530_506_531.in0","add_519_529_530.out"], - ["mux_512_515_518.out","add_519_579_589.in0"], - ["mux_572_575_578.out","add_519_579_589.in1"], - ["add_589_506_590.in0","add_519_579_589.out"], - ["add_g_gr_stencil_3_g_gr_stencil_1_523.out","add_523_506_524.in0"], - ["const_p1__506$6.out","add_523_506_524.in1"], - ["lshr_524_506_525.in0","add_523_506_524.out"], - ["add_g_gb_stencil_4_g_gb_stencil_3_526.out","add_526_506_527.in0"], - ["const_p1__506$8.out","add_526_506_527.in1"], - ["lshr_527_506_528.in0","add_526_506_527.out"], - ["mux_522_525_528.out","add_529_579_580.in0"], - ["mux_572_575_578.out","add_529_579_580.in1"], - ["add_580_506_581.in0","add_529_579_580.out"], - ["const_p1__506$10.out","add_530_506_531.in1"], - ["lshr_531_506_532.in0","add_530_506_531.out"], - ["add_r_r_stencil_3_r_r_stencil_2_538.out","add_538_506_539.in0"], - ["const_p1__506$12.out","add_538_506_539.in1"], - ["lshr_539_506_540.in0","add_538_506_539.out"], - ["lshr_539_506_540.out","add_540_550_551.in0"], - ["mux_543_546_549.out","add_540_550_551.in1"], - ["sub_551_564_565.in0","add_540_550_551.out"], - ["add_g_gb_stencil_4_g_gb_stencil_2_544.out","add_544_506_545.in0"], - ["const_p1__506$14.out","add_544_506_545.in1"], - ["lshr_545_506_546.in0","add_544_506_545.out"], - ["add_g_gr_stencil_4_g_gr_stencil_1_547.out","add_547_506_548.in0"], - ["const_p1__506$16.out","add_547_506_548.in1"], - ["lshr_548_506_549.in0","add_547_506_548.out"], - ["add_g_gr_stencil_5_g_gr_stencil_4_555.out","add_555_506_556.in0"], - ["const_p1__506$18.out","add_555_506_556.in1"], - ["lshr_556_506_557.in0","add_555_506_556.out"], - ["add_g_gb_stencil_5_g_gb_stencil_4_558.out","add_558_506_559.in0"], - ["const_p1__506$20.out","add_558_506_559.in1"], - ["lshr_559_506_560.in0","add_558_506_559.out"], - ["mux_554_557_560.out","add_561_519_562.in0"], - ["mux_512_515_518.out","add_561_519_562.in1"], - ["add_562_506_563.in0","add_561_519_562.out"], - ["const_p1__506$22.out","add_562_506_563.in1"], - ["lshr_563_506_564.in0","add_562_506_563.out"], - ["add_r_r_stencil_4_r_r_stencil_1_566.out","add_566_506_567.in0"], - ["const_p1__506$24.out","add_566_506_567.in1"], - ["lshr_567_506_568.in0","add_566_506_567.out"], - ["lshr_567_506_568.out","add_568_550_569.in0"], - ["mux_543_546_549.out","add_568_550_569.in1"], - ["sub_569_582_583.in0","add_568_550_569.out"], - ["add_g_gr_stencil_6_g_gr_stencil_4_573.out","add_573_506_574.in0"], - ["const_p1__506$26.out","add_573_506_574.in1"], - ["lshr_574_506_575.in0","add_573_506_574.out"], - ["add_g_gb_stencil_6_g_gb_stencil_2_576.out","add_576_506_577.in0"], - ["const_p1__506$28.out","add_576_506_577.in1"], - ["lshr_577_506_578.in0","add_576_506_577.out"], - ["const_p1__506$30.out","add_580_506_581.in1"], - ["lshr_581_506_582.in0","add_580_506_581.out"], - ["add_r_r_stencil_4_r_r_stencil_2_585.out","add_585_506_586.in0"], - ["const_p1__506$32.out","add_585_506_586.in1"], - ["lshr_586_506_587.in0","add_585_506_586.out"], - ["const_p1__506$34.out","add_589_506_590.in1"], - ["lshr_590_506_591.in0","add_589_506_590.out"], - ["self.in0_g_gb_stencil.1","add_g_gb_stencil_2_587_588.in0"], - ["lshr_586_506_587.out","add_g_gb_stencil_2_587_588.in1"], - ["sub_588_591_592.in0","add_g_gb_stencil_2_587_588.out"], - ["self.in0_g_gb_stencil.1","add_g_gb_stencil_2_g_gb_stencil_1_516.in0"], - ["self.in0_g_gb_stencil.0","add_g_gb_stencil_2_g_gb_stencil_1_516.in1"], - ["self.in0_g_gb_stencil.3","add_g_gb_stencil_4_g_gb_stencil_2_544.in0"], - ["self.in0_g_gb_stencil.1","add_g_gb_stencil_4_g_gb_stencil_2_544.in1"], - ["self.in0_g_gb_stencil.3","add_g_gb_stencil_4_g_gb_stencil_3_526.in0"], - ["self.in0_g_gb_stencil.2","add_g_gb_stencil_4_g_gb_stencil_3_526.in1"], - ["self.in0_g_gb_stencil.4","add_g_gb_stencil_5_g_gb_stencil_4_558.in0"], - ["self.in0_g_gb_stencil.3","add_g_gb_stencil_5_g_gb_stencil_4_558.in1"], - ["self.in0_g_gb_stencil.5","add_g_gb_stencil_6_g_gb_stencil_2_576.in0"], - ["self.in0_g_gb_stencil.1","add_g_gb_stencil_6_g_gb_stencil_2_576.in1"], - ["self.in1_g_gr_stencil.0","add_g_gr_stencil_1_508_509.in0"], - ["lshr_507_506_508.out","add_g_gr_stencil_1_508_509.in1"], - ["sub_509_532_533.in0","add_g_gr_stencil_1_508_509.out"], - ["self.in1_g_gr_stencil.0","add_g_gr_stencil_1_g_gr_stencil_2_513.in0"], - ["self.in1_g_gr_stencil.1","add_g_gr_stencil_1_g_gr_stencil_2_513.in1"], - ["self.in1_g_gr_stencil.2","add_g_gr_stencil_3_g_gr_stencil_1_523.in0"], - ["self.in1_g_gr_stencil.0","add_g_gr_stencil_3_g_gr_stencil_1_523.in1"], - ["self.in1_g_gr_stencil.3","add_g_gr_stencil_4_g_gr_stencil_1_547.in0"], - ["self.in1_g_gr_stencil.0","add_g_gr_stencil_4_g_gr_stencil_1_547.in1"], - ["self.in1_g_gr_stencil.4","add_g_gr_stencil_5_g_gr_stencil_4_555.in0"], - ["self.in1_g_gr_stencil.3","add_g_gr_stencil_5_g_gr_stencil_4_555.in1"], - ["self.in1_g_gr_stencil.5","add_g_gr_stencil_6_g_gr_stencil_4_573.in0"], - ["self.in1_g_gr_stencil.3","add_g_gr_stencil_6_g_gr_stencil_4_573.in1"], - ["self.in2_r_r_stencil.0","add_r_r_stencil_1_r_r_stencil_2_505.in0"], - ["self.in2_r_r_stencil.1","add_r_r_stencil_1_r_r_stencil_2_505.in1"], - ["self.in2_r_r_stencil.2","add_r_r_stencil_3_r_r_stencil_2_538.in0"], - ["self.in2_r_r_stencil.1","add_r_r_stencil_3_r_r_stencil_2_538.in1"], - ["self.in2_r_r_stencil.3","add_r_r_stencil_4_r_r_stencil_1_566.in0"], - ["self.in2_r_r_stencil.0","add_r_r_stencil_4_r_r_stencil_1_566.in1"], - ["self.in2_r_r_stencil.3","add_r_r_stencil_4_r_r_stencil_2_585.in0"], - ["self.in2_r_r_stencil.1","add_r_r_stencil_4_r_r_stencil_2_585.in1"], - ["self.demosaicked_1_s0_x","and_demosaicked_1_s0_x_500_503.in0"], - ["const_p1__500$1.out","and_demosaicked_1_s0_x_500_503.in1"], - ["eq_5030_504.in0","and_demosaicked_1_s0_x_500_503.out"], - ["self.demosaicked_1_s0_y","and_demosaicked_1_s0_y_500_501.in0"], - ["const_p1__500.out","and_demosaicked_1_s0_y_500_501.in1"], - ["eq_5010_502.in0","and_demosaicked_1_s0_y_500_501.out"], - ["eq_5030_504.in1","const_p0_0$1.out"], - ["eq_5010_502.in1","const_p0_0.out"], - ["lshr_507_506_508.in1","const_p1__506$1.out"], - ["lshr_531_506_532.in1","const_p1__506$11.out"], - ["lshr_539_506_540.in1","const_p1__506$13.out"], - ["lshr_545_506_546.in1","const_p1__506$15.out"], - ["lshr_548_506_549.in1","const_p1__506$17.out"], - ["lshr_556_506_557.in1","const_p1__506$19.out"], - ["lshr_559_506_560.in1","const_p1__506$21.out"], - ["lshr_563_506_564.in1","const_p1__506$23.out"], - ["lshr_567_506_568.in1","const_p1__506$25.out"], - ["lshr_574_506_575.in1","const_p1__506$27.out"], - ["lshr_577_506_578.in1","const_p1__506$29.out"], - ["lshr_514_506_515.in1","const_p1__506$3.out"], - ["lshr_581_506_582.in1","const_p1__506$31.out"], - ["lshr_586_506_587.in1","const_p1__506$33.out"], - ["lshr_590_506_591.in1","const_p1__506$35.out"], - ["lshr_517_506_518.in1","const_p1__506$5.out"], - ["lshr_524_506_525.in1","const_p1__506$7.out"], - ["lshr_527_506_528.in1","const_p1__506$9.out"], - ["mux_502_534_593.sel","eq_5010_502.out"], - ["mux_504_533_r_r_stencil_2.sel","eq_5030_504.out"], - ["mux_504_584_592.sel","eq_5030_504.out"], - ["mux_512_515_518.in1","lshr_514_506_515.out"], - ["mux_512_515_518.in0","lshr_517_506_518.out"], - ["mux_522_525_528.in1","lshr_524_506_525.out"], - ["mux_522_525_528.in0","lshr_527_506_528.out"], - ["sub_509_532_533.in1","lshr_531_506_532.out"], - ["mux_543_546_549.in1","lshr_545_506_546.out"], - ["mux_543_546_549.in0","lshr_548_506_549.out"], - ["mux_554_557_560.in1","lshr_556_506_557.out"], - ["mux_554_557_560.in0","lshr_559_506_560.out"], - ["sub_551_564_565.in1","lshr_563_506_564.out"], - ["mux_572_575_578.in1","lshr_574_506_575.out"], - ["mux_572_575_578.in0","lshr_577_506_578.out"], - ["sub_569_582_583.in1","lshr_581_506_582.out"], - ["sub_588_591_592.in1","lshr_590_506_591.out"], - ["mux_504_584_592.out","mux_502_534_593.in0"], - ["mux_504_533_r_r_stencil_2.out","mux_502_534_593.in1"], - ["self.out_demosaicked_1_stencil","mux_502_534_593.out"], - ["self.in2_r_r_stencil.1","mux_504_533_r_r_stencil_2.in0"], - ["sub_509_532_533.out","mux_504_533_r_r_stencil_2.in1"], - ["sub_588_591_592.out","mux_504_584_592.in0"], - ["mux_537_565_583.out","mux_504_584_592.in1"], - ["ult_510_511_512.out","mux_512_515_518.sel"], - ["ult_520_521_522.out","mux_522_525_528.sel"], - ["sub_569_582_583.out","mux_537_565_583.in0"], - ["sub_551_564_565.out","mux_537_565_583.in1"], - ["ult_535_536_537.out","mux_537_565_583.sel"], - ["ult_541_542_543.out","mux_543_546_549.sel"], - ["ult_552_553_554.out","mux_554_557_560.sel"], - ["ult_570_571_572.out","mux_572_575_578.sel"] + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_2_519.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_1_denoised_1_stencil_2_519.in1"], + ["ult_519_520_521.in0","absd_denoised_1_stencil_1_denoised_1_stencil_2_519.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_4_498.in0"], + ["self.in0_denoised_1_stencil.3","absd_denoised_1_stencil_1_denoised_1_stencil_4_498.in1"], + ["ult_498_499_500.in0","absd_denoised_1_stencil_1_denoised_1_stencil_4_498.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_5_499.in0"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_1_denoised_1_stencil_5_499.in1"], + ["ult_498_499_500.in1","absd_denoised_1_stencil_1_denoised_1_stencil_5_499.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_1_denoised_1_stencil_7_520.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_1_denoised_1_stencil_7_520.in1"], + ["ult_519_520_521.in1","absd_denoised_1_stencil_1_denoised_1_stencil_7_520.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_2_denoised_1_stencil_1_491.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_2_denoised_1_stencil_1_491.in1"], + ["ult_491_492_493.in0","absd_denoised_1_stencil_2_denoised_1_stencil_1_491.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_2_denoised_1_stencil_3_492.in0"], + ["self.in0_denoised_1_stencil.2","absd_denoised_1_stencil_2_denoised_1_stencil_3_492.in1"], + ["ult_491_492_493.in1","absd_denoised_1_stencil_2_denoised_1_stencil_3_492.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_6_denoised_1_stencil_1_513.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_6_denoised_1_stencil_1_513.in1"], + ["ult_513_514_515.in0","absd_denoised_1_stencil_6_denoised_1_stencil_1_513.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_6_denoised_1_stencil_2_528.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_6_denoised_1_stencil_2_528.in1"], + ["ult_527_528_529.in1","absd_denoised_1_stencil_6_denoised_1_stencil_2_528.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_6_denoised_1_stencil_7_527.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_6_denoised_1_stencil_7_527.in1"], + ["ult_527_528_529.in0","absd_denoised_1_stencil_6_denoised_1_stencil_7_527.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_7_denoised_1_stencil_1_546.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_7_denoised_1_stencil_1_546.in1"], + ["ult_545_546_547.in1","absd_denoised_1_stencil_7_denoised_1_stencil_1_546.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_7_denoised_1_stencil_2_514.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_7_denoised_1_stencil_2_514.in1"], + ["ult_513_514_515.in1","absd_denoised_1_stencil_7_denoised_1_stencil_2_514.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_7_denoised_1_stencil_8_545.in0"], + ["self.in0_denoised_1_stencil.7","absd_denoised_1_stencil_7_denoised_1_stencil_8_545.in1"], + ["ult_545_546_547.in0","absd_denoised_1_stencil_7_denoised_1_stencil_8_545.out"], + ["add_denoised_1_stencil_1_denoised_1_stencil_2_486.out","add_486_487_488.in0"], + ["const_p1__487.out","add_486_487_488.in1"], + ["lshr_488_487_489.in0","add_486_487_488.out"], + ["add_denoised_1_stencil_2_denoised_1_stencil_3_494.out","add_494_487_495.in0"], + ["const_p1__487$2.out","add_494_487_495.in1"], + ["lshr_495_487_496.in0","add_494_487_495.out"], + ["mux_493_489_496.out","add_497_507_508.in0"], + ["mux_500_503_506.out","add_497_507_508.in1"], + ["add_508_487_509.in0","add_497_507_508.out"], + ["mux_493_489_496.out","add_497_551_552.in0"], + ["mux_547_550_524.out","add_497_551_552.in1"], + ["add_552_487_553.in0","add_497_551_552.out"], + ["add_denoised_1_stencil_4_denoised_1_stencil_1_501.out","add_501_487_502.in0"], + ["const_p1__487$4.out","add_501_487_502.in1"], + ["lshr_502_487_503.in0","add_501_487_502.out"], + ["add_denoised_1_stencil_5_denoised_1_stencil_1_504.out","add_504_487_505.in0"], + ["const_p1__487$6.out","add_504_487_505.in1"], + ["lshr_505_487_506.in0","add_504_487_505.out"], + ["mux_500_503_506.out","add_507_551_558.in0"], + ["mux_547_550_524.out","add_507_551_558.in1"], + ["add_558_487_559.in0","add_507_551_558.out"], + ["const_p1__487$8.out","add_508_487_509.in1"], + ["lshr_509_487_510.in0","add_508_487_509.out"], + ["add_denoised_1_stencil_1_denoised_1_stencil_6_516.out","add_516_487_517.in0"], + ["const_p1__487$10.out","add_516_487_517.in1"], + ["lshr_517_487_518.in0","add_516_487_517.out"], + ["lshr_517_487_518.out","add_518_525_526.in0"], + ["mux_521_489_524.out","add_518_525_526.in1"], + ["sub_526_539_540.in0","add_518_525_526.out"], + ["add_denoised_1_stencil_1_denoised_1_stencil_7_522.out","add_522_487_523.in0"], + ["const_p1__487$12.out","add_522_487_523.in1"], + ["lshr_523_487_524.in0","add_522_487_523.out"], + ["add_denoised_1_stencil_7_denoised_1_stencil_6_530.out","add_530_487_531.in0"], + ["const_p1__487$14.out","add_530_487_531.in1"], + ["lshr_531_487_532.in0","add_530_487_531.out"], + ["add_denoised_1_stencil_6_denoised_1_stencil_2_533.out","add_533_487_534.in0"], + ["const_p1__487$16.out","add_533_487_534.in1"], + ["lshr_534_487_535.in0","add_533_487_534.out"], + ["mux_529_532_535.out","add_536_507_537.in0"], + ["mux_500_503_506.out","add_536_507_537.in1"], + ["add_537_487_538.in0","add_536_507_537.out"], + ["const_p1__487$18.out","add_537_487_538.in1"], + ["lshr_538_487_539.in0","add_537_487_538.out"], + ["add_denoised_1_stencil_2_denoised_1_stencil_7_541.out","add_541_487_542.in0"], + ["const_p1__487$20.out","add_541_487_542.in1"], + ["lshr_542_487_543.in0","add_541_487_542.out"], + ["lshr_542_487_543.out","add_543_525_544.in0"], + ["mux_521_489_524.out","add_543_525_544.in1"], + ["sub_544_554_555.in0","add_543_525_544.out"], + ["add_denoised_1_stencil_8_denoised_1_stencil_7_548.out","add_548_487_549.in0"], + ["const_p1__487$22.out","add_548_487_549.in1"], + ["lshr_549_487_550.in0","add_548_487_549.out"], + ["const_p1__487$24.out","add_552_487_553.in1"], + ["lshr_553_487_554.in0","add_552_487_553.out"], + ["const_p1__487$26.out","add_558_487_559.in1"], + ["lshr_559_487_560.in0","add_558_487_559.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_489_490.in0"], + ["lshr_488_487_489.out","add_denoised_1_stencil_1_489_490.in1"], + ["sub_490_510_511.in0","add_denoised_1_stencil_1_489_490.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_524_557.in0"], + ["lshr_523_487_524.out","add_denoised_1_stencil_1_524_557.in1"], + ["sub_557_560_561.in0","add_denoised_1_stencil_1_524_557.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_denoised_1_stencil_2_486.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_1_denoised_1_stencil_2_486.in1"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_denoised_1_stencil_6_516.in0"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_1_denoised_1_stencil_6_516.in1"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_1_denoised_1_stencil_7_522.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_1_denoised_1_stencil_7_522.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_2_denoised_1_stencil_3_494.in0"], + ["self.in0_denoised_1_stencil.2","add_denoised_1_stencil_2_denoised_1_stencil_3_494.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_2_denoised_1_stencil_7_541.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_2_denoised_1_stencil_7_541.in1"], + ["self.in0_denoised_1_stencil.3","add_denoised_1_stencil_4_denoised_1_stencil_1_501.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_4_denoised_1_stencil_1_501.in1"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_5_denoised_1_stencil_1_504.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_5_denoised_1_stencil_1_504.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_6_denoised_1_stencil_2_533.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_6_denoised_1_stencil_2_533.in1"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_7_denoised_1_stencil_6_530.in0"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_7_denoised_1_stencil_6_530.in1"], + ["self.in0_denoised_1_stencil.7","add_denoised_1_stencil_8_denoised_1_stencil_7_548.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_8_denoised_1_stencil_7_548.in1"], + ["self.demosaicked_1_s0_x","and_demosaicked_1_s0_x_481_484.in0"], + ["const_p1__481$1.out","and_demosaicked_1_s0_x_481_484.in1"], + ["eq_4840_485.in0","and_demosaicked_1_s0_x_481_484.out"], + ["self.demosaicked_1_s0_y","and_demosaicked_1_s0_y_481_482.in0"], + ["const_p1__481.out","and_demosaicked_1_s0_y_481_482.in1"], + ["eq_4820_483.in0","and_demosaicked_1_s0_y_481_482.out"], + ["eq_4840_485.in1","const_p0_0$1.out"], + ["eq_4820_483.in1","const_p0_0.out"], + ["lshr_488_487_489.in1","const_p1__487$1.out"], + ["lshr_517_487_518.in1","const_p1__487$11.out"], + ["lshr_523_487_524.in1","const_p1__487$13.out"], + ["lshr_531_487_532.in1","const_p1__487$15.out"], + ["lshr_534_487_535.in1","const_p1__487$17.out"], + ["lshr_538_487_539.in1","const_p1__487$19.out"], + ["lshr_542_487_543.in1","const_p1__487$21.out"], + ["lshr_549_487_550.in1","const_p1__487$23.out"], + ["lshr_553_487_554.in1","const_p1__487$25.out"], + ["lshr_559_487_560.in1","const_p1__487$27.out"], + ["lshr_495_487_496.in1","const_p1__487$3.out"], + ["lshr_502_487_503.in1","const_p1__487$5.out"], + ["lshr_505_487_506.in1","const_p1__487$7.out"], + ["lshr_509_487_510.in1","const_p1__487$9.out"], + ["mux_483_512_562.sel","eq_4820_483.out"], + ["mux_485_511_denoised_1_stencil_1.sel","eq_4840_485.out"], + ["mux_485_556_561.sel","eq_4840_485.out"], + ["mux_493_489_496.in1","lshr_488_487_489.out"], + ["mux_521_489_524.in1","lshr_488_487_489.out"], + ["mux_493_489_496.in0","lshr_495_487_496.out"], + ["mux_500_503_506.in1","lshr_502_487_503.out"], + ["mux_500_503_506.in0","lshr_505_487_506.out"], + ["sub_490_510_511.in1","lshr_509_487_510.out"], + ["mux_521_489_524.in0","lshr_523_487_524.out"], + ["mux_547_550_524.in0","lshr_523_487_524.out"], + ["mux_529_532_535.in1","lshr_531_487_532.out"], + ["mux_529_532_535.in0","lshr_534_487_535.out"], + ["sub_526_539_540.in1","lshr_538_487_539.out"], + ["mux_547_550_524.in1","lshr_549_487_550.out"], + ["sub_544_554_555.in1","lshr_553_487_554.out"], + ["sub_557_560_561.in1","lshr_559_487_560.out"], + ["mux_485_556_561.out","mux_483_512_562.in0"], + ["mux_485_511_denoised_1_stencil_1.out","mux_483_512_562.in1"], + ["self.out_demosaicked_1_stencil","mux_483_512_562.out"], + ["self.in0_denoised_1_stencil.0","mux_485_511_denoised_1_stencil_1.in0"], + ["sub_490_510_511.out","mux_485_511_denoised_1_stencil_1.in1"], + ["sub_557_560_561.out","mux_485_556_561.in0"], + ["mux_515_540_555.out","mux_485_556_561.in1"], + ["ult_491_492_493.out","mux_493_489_496.sel"], + ["ult_498_499_500.out","mux_500_503_506.sel"], + ["sub_544_554_555.out","mux_515_540_555.in0"], + ["sub_526_539_540.out","mux_515_540_555.in1"], + ["ult_513_514_515.out","mux_515_540_555.sel"], + ["ult_519_520_521.out","mux_521_489_524.sel"], + ["ult_527_528_529.out","mux_529_532_535.sel"], + ["ult_545_546_547.out","mux_547_550_524.sel"] ] }, "hcompute_demosaicked_1_stencil_1":{ "type":["Record",[ ["out_demosaicked_1_stencil",["Array",16,"Bit"]], - ["in0_g_gb_stencil",["Array",3,["Array",16,"BitIn"]]], - ["in1_g_gr_stencil",["Array",3,["Array",16,"BitIn"]]], + ["in0_denoised_1_stencil",["Array",5,["Array",16,"BitIn"]]], ["demosaicked_1_s0_x_1",["Array",16,"BitIn"]], ["demosaicked_1_s0_y_1",["Array",16,"BitIn"]] ]], "instances":{ - "absd_g_gb_stencil_7_g_gb_stencil_8_809":{ + "absd_denoised_1_stencil_9_denoised_1_stencil_10_751":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_9_g_gb_stencil_8_820":{ + "absd_denoised_1_stencil_9_denoised_1_stencil_11_752":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_8_g_gr_stencil_7_808":{ + "absd_denoised_1_stencil_9_denoised_1_stencil_12_763":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_9_g_gr_stencil_7_821":{ + "absd_denoised_1_stencil_9_denoised_1_stencil_13_764":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "add_811_812_813":{ + "add_754_755_756":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_815_812_816":{ + "add_758_755_759":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_823_812_824":{ + "add_766_755_767":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_826_812_827":{ + "add_769_755_770":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_8_g_gb_stencil_7_815":{ + "add_denoised_1_stencil_10_denoised_1_stencil_9_754":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_9_g_gb_stencil_8_823":{ + "add_denoised_1_stencil_11_denoised_1_stencil_9_758":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_7_g_gr_stencil_8_811":{ + "add_denoised_1_stencil_12_denoised_1_stencil_9_766":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_9_g_gr_stencil_7_826":{ + "add_denoised_1_stencil_13_denoised_1_stencil_9_769":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "and_demosaicked_1_s0_x_1_803_806":{ + "and_demosaicked_1_s0_x_1_746_749":{ "genref":"coreir.and", "genargs":{"width":["Int",16]} }, - "and_demosaicked_1_s0_y_1_803_804":{ + "and_demosaicked_1_s0_y_1_746_747":{ "genref":"coreir.and", "genargs":{"width":["Int",16]} }, @@ -1234,395 +1077,361 @@ "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0000"]} }, - "const_p1__803":{ + "const_p1__746":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__803$1":{ + "const_p1__746$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812":{ + "const_p1__755":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812$1":{ + "const_p1__755$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812$2":{ + "const_p1__755$2":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812$3":{ + "const_p1__755$3":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812$4":{ + "const_p1__755$4":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812$5":{ + "const_p1__755$5":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812$6":{ + "const_p1__755$6":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__812$7":{ + "const_p1__755$7":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "eq_8040_805":{ + "eq_7470_748":{ "genref":"coreir.eq", "genargs":{"width":["Int",16]} }, - "eq_8060_807":{ + "eq_7490_750":{ "genref":"coreir.eq", "genargs":{"width":["Int",16]} }, - "lshr_813_812_814":{ + "lshr_756_755_757":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_816_812_817":{ + "lshr_759_755_760":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_824_812_825":{ + "lshr_767_755_768":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_827_812_828":{ + "lshr_770_755_771":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "mux_805_819_830":{ + "mux_748_762_773":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_807_829_g_gb_stencil_8":{ + "mux_750_772_denoised_1_stencil_9":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_807_g_gr_stencil_7_818":{ + "mux_750_denoised_1_stencil_9_761":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_810_814_817":{ + "mux_753_757_760":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_822_825_828":{ + "mux_765_768_771":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "ult_808_809_810":{ + "ult_751_752_753":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_820_821_822":{ + "ult_763_764_765":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} } }, "connections":[ - ["self.in0_g_gb_stencil.0","absd_g_gb_stencil_7_g_gb_stencil_8_809.in0"], - ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_7_g_gb_stencil_8_809.in1"], - ["ult_808_809_810.in1","absd_g_gb_stencil_7_g_gb_stencil_8_809.out"], - ["self.in0_g_gb_stencil.2","absd_g_gb_stencil_9_g_gb_stencil_8_820.in0"], - ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_9_g_gb_stencil_8_820.in1"], - ["ult_820_821_822.in0","absd_g_gb_stencil_9_g_gb_stencil_8_820.out"], - ["self.in1_g_gr_stencil.1","absd_g_gr_stencil_8_g_gr_stencil_7_808.in0"], - ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_8_g_gr_stencil_7_808.in1"], - ["ult_808_809_810.in0","absd_g_gr_stencil_8_g_gr_stencil_7_808.out"], - ["self.in1_g_gr_stencil.2","absd_g_gr_stencil_9_g_gr_stencil_7_821.in0"], - ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_9_g_gr_stencil_7_821.in1"], - ["ult_820_821_822.in1","absd_g_gr_stencil_9_g_gr_stencil_7_821.out"], - ["add_g_gr_stencil_7_g_gr_stencil_8_811.out","add_811_812_813.in0"], - ["const_p1__812.out","add_811_812_813.in1"], - ["lshr_813_812_814.in0","add_811_812_813.out"], - ["add_g_gb_stencil_8_g_gb_stencil_7_815.out","add_815_812_816.in0"], - ["const_p1__812$2.out","add_815_812_816.in1"], - ["lshr_816_812_817.in0","add_815_812_816.out"], - ["add_g_gb_stencil_9_g_gb_stencil_8_823.out","add_823_812_824.in0"], - ["const_p1__812$4.out","add_823_812_824.in1"], - ["lshr_824_812_825.in0","add_823_812_824.out"], - ["add_g_gr_stencil_9_g_gr_stencil_7_826.out","add_826_812_827.in0"], - ["const_p1__812$6.out","add_826_812_827.in1"], - ["lshr_827_812_828.in0","add_826_812_827.out"], - ["self.in0_g_gb_stencil.1","add_g_gb_stencil_8_g_gb_stencil_7_815.in0"], - ["self.in0_g_gb_stencil.0","add_g_gb_stencil_8_g_gb_stencil_7_815.in1"], - ["self.in0_g_gb_stencil.2","add_g_gb_stencil_9_g_gb_stencil_8_823.in0"], - ["self.in0_g_gb_stencil.1","add_g_gb_stencil_9_g_gb_stencil_8_823.in1"], - ["self.in1_g_gr_stencil.0","add_g_gr_stencil_7_g_gr_stencil_8_811.in0"], - ["self.in1_g_gr_stencil.1","add_g_gr_stencil_7_g_gr_stencil_8_811.in1"], - ["self.in1_g_gr_stencil.2","add_g_gr_stencil_9_g_gr_stencil_7_826.in0"], - ["self.in1_g_gr_stencil.0","add_g_gr_stencil_9_g_gr_stencil_7_826.in1"], - ["self.demosaicked_1_s0_x_1","and_demosaicked_1_s0_x_1_803_806.in0"], - ["const_p1__803$1.out","and_demosaicked_1_s0_x_1_803_806.in1"], - ["eq_8060_807.in0","and_demosaicked_1_s0_x_1_803_806.out"], - ["self.demosaicked_1_s0_y_1","and_demosaicked_1_s0_y_1_803_804.in0"], - ["const_p1__803.out","and_demosaicked_1_s0_y_1_803_804.in1"], - ["eq_8040_805.in0","and_demosaicked_1_s0_y_1_803_804.out"], - ["eq_8040_805.in1","const_p0_0$2.out"], - ["eq_8060_807.in1","const_p0_0$3.out"], - ["lshr_813_812_814.in1","const_p1__812$1.out"], - ["lshr_816_812_817.in1","const_p1__812$3.out"], - ["lshr_824_812_825.in1","const_p1__812$5.out"], - ["lshr_827_812_828.in1","const_p1__812$7.out"], - ["mux_805_819_830.sel","eq_8040_805.out"], - ["mux_807_829_g_gb_stencil_8.sel","eq_8060_807.out"], - ["mux_807_g_gr_stencil_7_818.sel","eq_8060_807.out"], - ["mux_810_814_817.in1","lshr_813_812_814.out"], - ["mux_810_814_817.in0","lshr_816_812_817.out"], - ["mux_822_825_828.in1","lshr_824_812_825.out"], - ["mux_822_825_828.in0","lshr_827_812_828.out"], - ["mux_807_829_g_gb_stencil_8.out","mux_805_819_830.in0"], - ["mux_807_g_gr_stencil_7_818.out","mux_805_819_830.in1"], - ["self.out_demosaicked_1_stencil","mux_805_819_830.out"], - ["self.in0_g_gb_stencil.1","mux_807_829_g_gb_stencil_8.in0"], - ["mux_822_825_828.out","mux_807_829_g_gb_stencil_8.in1"], - ["mux_810_814_817.out","mux_807_g_gr_stencil_7_818.in0"], - ["self.in1_g_gr_stencil.0","mux_807_g_gr_stencil_7_818.in1"], - ["ult_808_809_810.out","mux_810_814_817.sel"], - ["ult_820_821_822.out","mux_822_825_828.sel"] + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_10_751.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_9_denoised_1_stencil_10_751.in1"], + ["ult_751_752_753.in0","absd_denoised_1_stencil_9_denoised_1_stencil_10_751.out"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_11_752.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_9_denoised_1_stencil_11_752.in1"], + ["ult_751_752_753.in1","absd_denoised_1_stencil_9_denoised_1_stencil_11_752.out"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_12_763.in0"], + ["self.in0_denoised_1_stencil.2","absd_denoised_1_stencil_9_denoised_1_stencil_12_763.in1"], + ["ult_763_764_765.in0","absd_denoised_1_stencil_9_denoised_1_stencil_12_763.out"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_9_denoised_1_stencil_13_764.in0"], + ["self.in0_denoised_1_stencil.3","absd_denoised_1_stencil_9_denoised_1_stencil_13_764.in1"], + ["ult_763_764_765.in1","absd_denoised_1_stencil_9_denoised_1_stencil_13_764.out"], + ["add_denoised_1_stencil_10_denoised_1_stencil_9_754.out","add_754_755_756.in0"], + ["const_p1__755.out","add_754_755_756.in1"], + ["lshr_756_755_757.in0","add_754_755_756.out"], + ["add_denoised_1_stencil_11_denoised_1_stencil_9_758.out","add_758_755_759.in0"], + ["const_p1__755$2.out","add_758_755_759.in1"], + ["lshr_759_755_760.in0","add_758_755_759.out"], + ["add_denoised_1_stencil_12_denoised_1_stencil_9_766.out","add_766_755_767.in0"], + ["const_p1__755$4.out","add_766_755_767.in1"], + ["lshr_767_755_768.in0","add_766_755_767.out"], + ["add_denoised_1_stencil_13_denoised_1_stencil_9_769.out","add_769_755_770.in0"], + ["const_p1__755$6.out","add_769_755_770.in1"], + ["lshr_770_755_771.in0","add_769_755_770.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_10_denoised_1_stencil_9_754.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_10_denoised_1_stencil_9_754.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_11_denoised_1_stencil_9_758.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_11_denoised_1_stencil_9_758.in1"], + ["self.in0_denoised_1_stencil.2","add_denoised_1_stencil_12_denoised_1_stencil_9_766.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_12_denoised_1_stencil_9_766.in1"], + ["self.in0_denoised_1_stencil.3","add_denoised_1_stencil_13_denoised_1_stencil_9_769.in0"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_13_denoised_1_stencil_9_769.in1"], + ["self.demosaicked_1_s0_x_1","and_demosaicked_1_s0_x_1_746_749.in0"], + ["const_p1__746$1.out","and_demosaicked_1_s0_x_1_746_749.in1"], + ["eq_7490_750.in0","and_demosaicked_1_s0_x_1_746_749.out"], + ["self.demosaicked_1_s0_y_1","and_demosaicked_1_s0_y_1_746_747.in0"], + ["const_p1__746.out","and_demosaicked_1_s0_y_1_746_747.in1"], + ["eq_7470_748.in0","and_demosaicked_1_s0_y_1_746_747.out"], + ["eq_7470_748.in1","const_p0_0$2.out"], + ["eq_7490_750.in1","const_p0_0$3.out"], + ["lshr_756_755_757.in1","const_p1__755$1.out"], + ["lshr_759_755_760.in1","const_p1__755$3.out"], + ["lshr_767_755_768.in1","const_p1__755$5.out"], + ["lshr_770_755_771.in1","const_p1__755$7.out"], + ["mux_748_762_773.sel","eq_7470_748.out"], + ["mux_750_772_denoised_1_stencil_9.sel","eq_7490_750.out"], + ["mux_750_denoised_1_stencil_9_761.sel","eq_7490_750.out"], + ["mux_753_757_760.in1","lshr_756_755_757.out"], + ["mux_753_757_760.in0","lshr_759_755_760.out"], + ["mux_765_768_771.in1","lshr_767_755_768.out"], + ["mux_765_768_771.in0","lshr_770_755_771.out"], + ["mux_750_772_denoised_1_stencil_9.out","mux_748_762_773.in0"], + ["mux_750_denoised_1_stencil_9_761.out","mux_748_762_773.in1"], + ["self.out_demosaicked_1_stencil","mux_748_762_773.out"], + ["self.in0_denoised_1_stencil.4","mux_750_772_denoised_1_stencil_9.in0"], + ["mux_765_768_771.out","mux_750_772_denoised_1_stencil_9.in1"], + ["mux_753_757_760.out","mux_750_denoised_1_stencil_9_761.in0"], + ["self.in0_denoised_1_stencil.4","mux_750_denoised_1_stencil_9_761.in1"], + ["ult_751_752_753.out","mux_753_757_760.sel"], + ["ult_763_764_765.out","mux_765_768_771.sel"] ] }, "hcompute_demosaicked_1_stencil_2":{ "type":["Record",[ ["out_demosaicked_1_stencil",["Array",16,"Bit"]], - ["in0_b_b_stencil",["Array",4,["Array",16,"BitIn"]]], - ["in1_g_gb_stencil",["Array",6,["Array",16,"BitIn"]]], - ["in2_g_gr_stencil",["Array",6,["Array",16,"BitIn"]]], + ["in0_denoised_1_stencil",["Array",8,["Array",16,"BitIn"]]], ["demosaicked_1_s0_x_2",["Array",16,"BitIn"]], ["demosaicked_1_s0_y_2",["Array",16,"BitIn"]] ]], "instances":{ - "absd_b_b_stencil_2_b_b_stencil_3_1064":{ + "absd_denoised_1_stencil_14_denoised_1_stencil_15_992":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_b_b_stencil_4_b_b_stencil_1_1065":{ + "absd_denoised_1_stencil_14_denoised_1_stencil_17_971":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_10_g_gb_stencil_11_1040":{ + "absd_denoised_1_stencil_14_denoised_1_stencil_18_972":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_11_g_gb_stencil_15_1099":{ + "absd_denoised_1_stencil_14_denoised_1_stencil_20_991":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_12_g_gb_stencil_13_1050":{ + "absd_denoised_1_stencil_15_denoised_1_stencil_14_965":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_13_g_gb_stencil_11_1071":{ + "absd_denoised_1_stencil_15_denoised_1_stencil_16_964":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gb_stencil_13_g_gb_stencil_14_1081":{ + "absd_denoised_1_stencil_15_denoised_1_stencil_20_986":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_10_g_gr_stencil_12_1051":{ + "absd_denoised_1_stencil_19_denoised_1_stencil_14_985":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_11_g_gr_stencil_10_1041":{ + "absd_denoised_1_stencil_19_denoised_1_stencil_15_999":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_13_g_gr_stencil_10_1070":{ + "absd_denoised_1_stencil_19_denoised_1_stencil_20_1000":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_13_g_gr_stencil_14_1082":{ + "absd_denoised_1_stencil_20_denoised_1_stencil_14_1017":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "absd_g_gr_stencil_15_g_gr_stencil_13_1100":{ + "absd_denoised_1_stencil_20_denoised_1_stencil_21_1018":{ "genref":"commonlib.absd", "genargs":{"width":["Int",16]} }, - "add_1035_1036_1037":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_1043_1036_1044":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_1046_1036_1047":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_1049_1059_1060":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_1049_1108_1119":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_1053_1036_1054":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_1056_1036_1057":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_1059_1108_1109":{ + "add_1002_960_1003":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1060_1036_1061":{ + "add_1005_960_1006":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1067_1036_1068":{ + "add_1008_980_1009":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1069_1079_1080":{ + "add_1009_960_1010":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1073_1036_1074":{ + "add_1013_960_1014":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1076_1036_1077":{ + "add_1015_997_1016":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1084_1036_1085":{ + "add_1020_960_1021":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1087_1036_1088":{ + "add_1024_960_1025":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1090_1049_1091":{ + "add_1031_960_1032":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1091_1036_1092":{ + "add_959_960_961":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1095_1036_1096":{ + "add_967_960_968":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1097_1079_1098":{ + "add_970_1023_1024":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1102_1036_1103":{ + "add_970_980_981":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1105_1036_1106":{ + "add_974_960_975":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1109_1036_1110":{ + "add_977_960_978":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1115_1036_1116":{ + "add_980_1023_1031":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_1119_1036_1120":{ + "add_981_960_982":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_b_b_stencil_1_b_b_stencil_2_1035":{ + "add_988_960_989":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_b_b_stencil_1_b_b_stencil_4_1095":{ + "add_990_997_998":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_b_b_stencil_3_b_b_stencil_2_1067":{ + "add_994_960_995":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_b_b_stencil_4_b_b_stencil_2_1115":{ + "add_denoised_1_stencil_14_962_963":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_10_g_gb_stencil_11_1043":{ + "add_denoised_1_stencil_14_996_1030":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_11_1117_1118":{ + "add_denoised_1_stencil_14_denoised_1_stencil_15_959":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_11_g_gb_stencil_13_1076":{ + "add_denoised_1_stencil_14_denoised_1_stencil_20_994":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_12_g_gb_stencil_13_1053":{ + "add_denoised_1_stencil_15_denoised_1_stencil_20_1013":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_14_g_gb_stencil_13_1084":{ + "add_denoised_1_stencil_16_denoised_1_stencil_15_967":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gb_stencil_15_g_gb_stencil_11_1102":{ + "add_denoised_1_stencil_17_denoised_1_stencil_14_974":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_10_1038_1039":{ + "add_denoised_1_stencil_18_denoised_1_stencil_14_977":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_10_g_gr_stencil_13_1073":{ + "add_denoised_1_stencil_19_denoised_1_stencil_14_988":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_11_g_gr_stencil_10_1046":{ + "add_denoised_1_stencil_19_denoised_1_stencil_15_1002":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_12_g_gr_stencil_10_1056":{ + "add_denoised_1_stencil_19_denoised_1_stencil_20_1005":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_14_g_gr_stencil_13_1087":{ + "add_denoised_1_stencil_21_denoised_1_stencil_20_1020":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_g_gr_stencil_15_g_gr_stencil_13_1105":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "and_demosaicked_1_s0_x_2_1030_1033":{ + "and_demosaicked_1_s0_x_2_954_957":{ "genref":"coreir.and", "genargs":{"width":["Int",16]} }, - "and_demosaicked_1_s0_y_2_1030_1031":{ + "and_demosaicked_1_s0_y_2_954_955":{ "genref":"coreir.and", "genargs":{"width":["Int",16]} }, @@ -1636,550 +1445,470 @@ "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0000"]} }, - "const_p1__1030":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__1030$1":{ + "const_p1__954":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036":{ + "const_p1__954$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$1":{ + "const_p1__960":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$10":{ + "const_p1__960$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$11":{ + "const_p1__960$10":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$12":{ + "const_p1__960$11":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$13":{ + "const_p1__960$12":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$14":{ + "const_p1__960$13":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$15":{ + "const_p1__960$14":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$16":{ + "const_p1__960$15":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$17":{ + "const_p1__960$16":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$18":{ + "const_p1__960$17":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$19":{ + "const_p1__960$18":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$2":{ + "const_p1__960$19":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$20":{ + "const_p1__960$2":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$21":{ + "const_p1__960$20":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$22":{ + "const_p1__960$21":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$23":{ + "const_p1__960$22":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$24":{ + "const_p1__960$23":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$25":{ + "const_p1__960$24":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$26":{ + "const_p1__960$25":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$27":{ + "const_p1__960$26":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$28":{ + "const_p1__960$27":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$29":{ + "const_p1__960$3":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$3":{ + "const_p1__960$4":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$30":{ + "const_p1__960$5":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$31":{ + "const_p1__960$6":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$32":{ + "const_p1__960$7":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$33":{ + "const_p1__960$8":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$34":{ + "const_p1__960$9":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} }, - "const_p1__1036$35":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__1036$4":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__1036$5":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__1036$6":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__1036$7":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__1036$8":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "const_p1__1036$9":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0001"]} - }, - "eq_10310_1032":{ + "eq_9550_956":{ "genref":"coreir.eq", "genargs":{"width":["Int",16]} }, - "eq_10330_1034":{ + "eq_9570_958":{ "genref":"coreir.eq", "genargs":{"width":["Int",16]} }, - "lshr_1037_1036_1038":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "lshr_1044_1036_1045":{ + "lshr_1003_960_1004":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1047_1036_1048":{ + "lshr_1006_960_1007":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1054_1036_1055":{ + "lshr_1010_960_1011":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1057_1036_1058":{ + "lshr_1014_960_1015":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1061_1036_1062":{ + "lshr_1021_960_1022":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1068_1036_1069":{ + "lshr_1025_960_1026":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1074_1036_1075":{ + "lshr_1032_960_1033":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1077_1036_1078":{ + "lshr_961_960_962":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1085_1036_1086":{ + "lshr_968_960_969":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1088_1036_1089":{ + "lshr_975_960_976":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1092_1036_1093":{ + "lshr_978_960_979":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1096_1036_1097":{ + "lshr_982_960_983":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1103_1036_1104":{ + "lshr_989_960_990":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1106_1036_1107":{ + "lshr_995_960_996":{ "genref":"coreir.lshr", "genargs":{"width":["Int",16]} }, - "lshr_1110_1036_1111":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "lshr_1116_1036_1117":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "lshr_1120_1036_1121":{ - "genref":"coreir.lshr", - "genargs":{"width":["Int",16]} - }, - "mux_1032_1114_1123":{ + "mux_1001_1004_1007":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1034_1063_1113":{ + "mux_1019_996_1022":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1034_b_b_stencil_2_1122":{ + "mux_956_1029_1035":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1042_1045_1048":{ + "mux_958_984_1028":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1052_1055_1058":{ + "mux_958_denoised_1_stencil_14_1034":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1066_1094_1112":{ + "mux_966_969_962":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1072_1075_1078":{ + "mux_973_976_979":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1083_1086_1089":{ + "mux_987_1012_1027":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "mux_1101_1104_1107":{ + "mux_993_996_962":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "sub_1039_1062_1063":{ + "sub_1016_1026_1027":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_1080_1093_1094":{ + "sub_1030_1033_1034":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_1098_1111_1112":{ + "sub_963_983_984":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_1118_1121_1122":{ + "sub_998_1011_1012":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "ult_1040_1041_1042":{ + "ult_1017_1018_1019":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_1050_1051_1052":{ + "ult_964_965_966":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_1064_1065_1066":{ + "ult_971_972_973":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_1070_1071_1072":{ + "ult_985_986_987":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_1081_1082_1083":{ + "ult_991_992_993":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} }, - "ult_1099_1100_1101":{ + "ult_999_1000_1001":{ "genref":"coreir.ult", "genargs":{"width":["Int",16]} } }, "connections":[ - ["self.in0_b_b_stencil.1","absd_b_b_stencil_2_b_b_stencil_3_1064.in0"], - ["self.in0_b_b_stencil.2","absd_b_b_stencil_2_b_b_stencil_3_1064.in1"], - ["ult_1064_1065_1066.in0","absd_b_b_stencil_2_b_b_stencil_3_1064.out"], - ["self.in0_b_b_stencil.3","absd_b_b_stencil_4_b_b_stencil_1_1065.in0"], - ["self.in0_b_b_stencil.0","absd_b_b_stencil_4_b_b_stencil_1_1065.in1"], - ["ult_1064_1065_1066.in1","absd_b_b_stencil_4_b_b_stencil_1_1065.out"], - ["self.in1_g_gb_stencil.0","absd_g_gb_stencil_10_g_gb_stencil_11_1040.in0"], - ["self.in1_g_gb_stencil.1","absd_g_gb_stencil_10_g_gb_stencil_11_1040.in1"], - ["ult_1040_1041_1042.in0","absd_g_gb_stencil_10_g_gb_stencil_11_1040.out"], - ["self.in1_g_gb_stencil.1","absd_g_gb_stencil_11_g_gb_stencil_15_1099.in0"], - ["self.in1_g_gb_stencil.5","absd_g_gb_stencil_11_g_gb_stencil_15_1099.in1"], - ["ult_1099_1100_1101.in0","absd_g_gb_stencil_11_g_gb_stencil_15_1099.out"], - ["self.in1_g_gb_stencil.2","absd_g_gb_stencil_12_g_gb_stencil_13_1050.in0"], - ["self.in1_g_gb_stencil.3","absd_g_gb_stencil_12_g_gb_stencil_13_1050.in1"], - ["ult_1050_1051_1052.in0","absd_g_gb_stencil_12_g_gb_stencil_13_1050.out"], - ["self.in1_g_gb_stencil.3","absd_g_gb_stencil_13_g_gb_stencil_11_1071.in0"], - ["self.in1_g_gb_stencil.1","absd_g_gb_stencil_13_g_gb_stencil_11_1071.in1"], - ["ult_1070_1071_1072.in1","absd_g_gb_stencil_13_g_gb_stencil_11_1071.out"], - ["self.in1_g_gb_stencil.3","absd_g_gb_stencil_13_g_gb_stencil_14_1081.in0"], - ["self.in1_g_gb_stencil.4","absd_g_gb_stencil_13_g_gb_stencil_14_1081.in1"], - ["ult_1081_1082_1083.in0","absd_g_gb_stencil_13_g_gb_stencil_14_1081.out"], - ["self.in2_g_gr_stencil.0","absd_g_gr_stencil_10_g_gr_stencil_12_1051.in0"], - ["self.in2_g_gr_stencil.2","absd_g_gr_stencil_10_g_gr_stencil_12_1051.in1"], - ["ult_1050_1051_1052.in1","absd_g_gr_stencil_10_g_gr_stencil_12_1051.out"], - ["self.in2_g_gr_stencil.1","absd_g_gr_stencil_11_g_gr_stencil_10_1041.in0"], - ["self.in2_g_gr_stencil.0","absd_g_gr_stencil_11_g_gr_stencil_10_1041.in1"], - ["ult_1040_1041_1042.in1","absd_g_gr_stencil_11_g_gr_stencil_10_1041.out"], - ["self.in2_g_gr_stencil.3","absd_g_gr_stencil_13_g_gr_stencil_10_1070.in0"], - ["self.in2_g_gr_stencil.0","absd_g_gr_stencil_13_g_gr_stencil_10_1070.in1"], - ["ult_1070_1071_1072.in0","absd_g_gr_stencil_13_g_gr_stencil_10_1070.out"], - ["self.in2_g_gr_stencil.3","absd_g_gr_stencil_13_g_gr_stencil_14_1082.in0"], - ["self.in2_g_gr_stencil.4","absd_g_gr_stencil_13_g_gr_stencil_14_1082.in1"], - ["ult_1081_1082_1083.in1","absd_g_gr_stencil_13_g_gr_stencil_14_1082.out"], - ["self.in2_g_gr_stencil.5","absd_g_gr_stencil_15_g_gr_stencil_13_1100.in0"], - ["self.in2_g_gr_stencil.3","absd_g_gr_stencil_15_g_gr_stencil_13_1100.in1"], - ["ult_1099_1100_1101.in1","absd_g_gr_stencil_15_g_gr_stencil_13_1100.out"], - ["add_b_b_stencil_1_b_b_stencil_2_1035.out","add_1035_1036_1037.in0"], - ["const_p1__1036.out","add_1035_1036_1037.in1"], - ["lshr_1037_1036_1038.in0","add_1035_1036_1037.out"], - ["add_g_gb_stencil_10_g_gb_stencil_11_1043.out","add_1043_1036_1044.in0"], - ["const_p1__1036$2.out","add_1043_1036_1044.in1"], - ["lshr_1044_1036_1045.in0","add_1043_1036_1044.out"], - ["add_g_gr_stencil_11_g_gr_stencil_10_1046.out","add_1046_1036_1047.in0"], - ["const_p1__1036$4.out","add_1046_1036_1047.in1"], - ["lshr_1047_1036_1048.in0","add_1046_1036_1047.out"], - ["mux_1042_1045_1048.out","add_1049_1059_1060.in0"], - ["mux_1052_1055_1058.out","add_1049_1059_1060.in1"], - ["add_1060_1036_1061.in0","add_1049_1059_1060.out"], - ["mux_1042_1045_1048.out","add_1049_1108_1119.in0"], - ["mux_1101_1104_1107.out","add_1049_1108_1119.in1"], - ["add_1119_1036_1120.in0","add_1049_1108_1119.out"], - ["add_g_gb_stencil_12_g_gb_stencil_13_1053.out","add_1053_1036_1054.in0"], - ["const_p1__1036$6.out","add_1053_1036_1054.in1"], - ["lshr_1054_1036_1055.in0","add_1053_1036_1054.out"], - ["add_g_gr_stencil_12_g_gr_stencil_10_1056.out","add_1056_1036_1057.in0"], - ["const_p1__1036$8.out","add_1056_1036_1057.in1"], - ["lshr_1057_1036_1058.in0","add_1056_1036_1057.out"], - ["mux_1052_1055_1058.out","add_1059_1108_1109.in0"], - ["mux_1101_1104_1107.out","add_1059_1108_1109.in1"], - ["add_1109_1036_1110.in0","add_1059_1108_1109.out"], - ["const_p1__1036$10.out","add_1060_1036_1061.in1"], - ["lshr_1061_1036_1062.in0","add_1060_1036_1061.out"], - ["add_b_b_stencil_3_b_b_stencil_2_1067.out","add_1067_1036_1068.in0"], - ["const_p1__1036$12.out","add_1067_1036_1068.in1"], - ["lshr_1068_1036_1069.in0","add_1067_1036_1068.out"], - ["lshr_1068_1036_1069.out","add_1069_1079_1080.in0"], - ["mux_1072_1075_1078.out","add_1069_1079_1080.in1"], - ["sub_1080_1093_1094.in0","add_1069_1079_1080.out"], - ["add_g_gr_stencil_10_g_gr_stencil_13_1073.out","add_1073_1036_1074.in0"], - ["const_p1__1036$14.out","add_1073_1036_1074.in1"], - ["lshr_1074_1036_1075.in0","add_1073_1036_1074.out"], - ["add_g_gb_stencil_11_g_gb_stencil_13_1076.out","add_1076_1036_1077.in0"], - ["const_p1__1036$16.out","add_1076_1036_1077.in1"], - ["lshr_1077_1036_1078.in0","add_1076_1036_1077.out"], - ["add_g_gb_stencil_14_g_gb_stencil_13_1084.out","add_1084_1036_1085.in0"], - ["const_p1__1036$18.out","add_1084_1036_1085.in1"], - ["lshr_1085_1036_1086.in0","add_1084_1036_1085.out"], - ["add_g_gr_stencil_14_g_gr_stencil_13_1087.out","add_1087_1036_1088.in0"], - ["const_p1__1036$20.out","add_1087_1036_1088.in1"], - ["lshr_1088_1036_1089.in0","add_1087_1036_1088.out"], - ["mux_1083_1086_1089.out","add_1090_1049_1091.in0"], - ["mux_1042_1045_1048.out","add_1090_1049_1091.in1"], - ["add_1091_1036_1092.in0","add_1090_1049_1091.out"], - ["const_p1__1036$22.out","add_1091_1036_1092.in1"], - ["lshr_1092_1036_1093.in0","add_1091_1036_1092.out"], - ["add_b_b_stencil_1_b_b_stencil_4_1095.out","add_1095_1036_1096.in0"], - ["const_p1__1036$24.out","add_1095_1036_1096.in1"], - ["lshr_1096_1036_1097.in0","add_1095_1036_1096.out"], - ["lshr_1096_1036_1097.out","add_1097_1079_1098.in0"], - ["mux_1072_1075_1078.out","add_1097_1079_1098.in1"], - ["sub_1098_1111_1112.in0","add_1097_1079_1098.out"], - ["add_g_gb_stencil_15_g_gb_stencil_11_1102.out","add_1102_1036_1103.in0"], - ["const_p1__1036$26.out","add_1102_1036_1103.in1"], - ["lshr_1103_1036_1104.in0","add_1102_1036_1103.out"], - ["add_g_gr_stencil_15_g_gr_stencil_13_1105.out","add_1105_1036_1106.in0"], - ["const_p1__1036$28.out","add_1105_1036_1106.in1"], - ["lshr_1106_1036_1107.in0","add_1105_1036_1106.out"], - ["const_p1__1036$30.out","add_1109_1036_1110.in1"], - ["lshr_1110_1036_1111.in0","add_1109_1036_1110.out"], - ["add_b_b_stencil_4_b_b_stencil_2_1115.out","add_1115_1036_1116.in0"], - ["const_p1__1036$32.out","add_1115_1036_1116.in1"], - ["lshr_1116_1036_1117.in0","add_1115_1036_1116.out"], - ["const_p1__1036$34.out","add_1119_1036_1120.in1"], - ["lshr_1120_1036_1121.in0","add_1119_1036_1120.out"], - ["self.in0_b_b_stencil.0","add_b_b_stencil_1_b_b_stencil_2_1035.in0"], - ["self.in0_b_b_stencil.1","add_b_b_stencil_1_b_b_stencil_2_1035.in1"], - ["self.in0_b_b_stencil.0","add_b_b_stencil_1_b_b_stencil_4_1095.in0"], - ["self.in0_b_b_stencil.3","add_b_b_stencil_1_b_b_stencil_4_1095.in1"], - ["self.in0_b_b_stencil.2","add_b_b_stencil_3_b_b_stencil_2_1067.in0"], - ["self.in0_b_b_stencil.1","add_b_b_stencil_3_b_b_stencil_2_1067.in1"], - ["self.in0_b_b_stencil.3","add_b_b_stencil_4_b_b_stencil_2_1115.in0"], - ["self.in0_b_b_stencil.1","add_b_b_stencil_4_b_b_stencil_2_1115.in1"], - ["self.in1_g_gb_stencil.0","add_g_gb_stencil_10_g_gb_stencil_11_1043.in0"], - ["self.in1_g_gb_stencil.1","add_g_gb_stencil_10_g_gb_stencil_11_1043.in1"], - ["self.in1_g_gb_stencil.1","add_g_gb_stencil_11_1117_1118.in0"], - ["lshr_1116_1036_1117.out","add_g_gb_stencil_11_1117_1118.in1"], - ["sub_1118_1121_1122.in0","add_g_gb_stencil_11_1117_1118.out"], - ["self.in1_g_gb_stencil.1","add_g_gb_stencil_11_g_gb_stencil_13_1076.in0"], - ["self.in1_g_gb_stencil.3","add_g_gb_stencil_11_g_gb_stencil_13_1076.in1"], - ["self.in1_g_gb_stencil.2","add_g_gb_stencil_12_g_gb_stencil_13_1053.in0"], - ["self.in1_g_gb_stencil.3","add_g_gb_stencil_12_g_gb_stencil_13_1053.in1"], - ["self.in1_g_gb_stencil.4","add_g_gb_stencil_14_g_gb_stencil_13_1084.in0"], - ["self.in1_g_gb_stencil.3","add_g_gb_stencil_14_g_gb_stencil_13_1084.in1"], - ["self.in1_g_gb_stencil.5","add_g_gb_stencil_15_g_gb_stencil_11_1102.in0"], - ["self.in1_g_gb_stencil.1","add_g_gb_stencil_15_g_gb_stencil_11_1102.in1"], - ["self.in2_g_gr_stencil.0","add_g_gr_stencil_10_1038_1039.in0"], - ["lshr_1037_1036_1038.out","add_g_gr_stencil_10_1038_1039.in1"], - ["sub_1039_1062_1063.in0","add_g_gr_stencil_10_1038_1039.out"], - ["self.in2_g_gr_stencil.0","add_g_gr_stencil_10_g_gr_stencil_13_1073.in0"], - ["self.in2_g_gr_stencil.3","add_g_gr_stencil_10_g_gr_stencil_13_1073.in1"], - ["self.in2_g_gr_stencil.1","add_g_gr_stencil_11_g_gr_stencil_10_1046.in0"], - ["self.in2_g_gr_stencil.0","add_g_gr_stencil_11_g_gr_stencil_10_1046.in1"], - ["self.in2_g_gr_stencil.2","add_g_gr_stencil_12_g_gr_stencil_10_1056.in0"], - ["self.in2_g_gr_stencil.0","add_g_gr_stencil_12_g_gr_stencil_10_1056.in1"], - ["self.in2_g_gr_stencil.4","add_g_gr_stencil_14_g_gr_stencil_13_1087.in0"], - ["self.in2_g_gr_stencil.3","add_g_gr_stencil_14_g_gr_stencil_13_1087.in1"], - ["self.in2_g_gr_stencil.5","add_g_gr_stencil_15_g_gr_stencil_13_1105.in0"], - ["self.in2_g_gr_stencil.3","add_g_gr_stencil_15_g_gr_stencil_13_1105.in1"], - ["self.demosaicked_1_s0_x_2","and_demosaicked_1_s0_x_2_1030_1033.in0"], - ["const_p1__1030$1.out","and_demosaicked_1_s0_x_2_1030_1033.in1"], - ["eq_10330_1034.in0","and_demosaicked_1_s0_x_2_1030_1033.out"], - ["self.demosaicked_1_s0_y_2","and_demosaicked_1_s0_y_2_1030_1031.in0"], - ["const_p1__1030.out","and_demosaicked_1_s0_y_2_1030_1031.in1"], - ["eq_10310_1032.in0","and_demosaicked_1_s0_y_2_1030_1031.out"], - ["eq_10310_1032.in1","const_p0_0$4.out"], - ["eq_10330_1034.in1","const_p0_0$5.out"], - ["lshr_1037_1036_1038.in1","const_p1__1036$1.out"], - ["lshr_1061_1036_1062.in1","const_p1__1036$11.out"], - ["lshr_1068_1036_1069.in1","const_p1__1036$13.out"], - ["lshr_1074_1036_1075.in1","const_p1__1036$15.out"], - ["lshr_1077_1036_1078.in1","const_p1__1036$17.out"], - ["lshr_1085_1036_1086.in1","const_p1__1036$19.out"], - ["lshr_1088_1036_1089.in1","const_p1__1036$21.out"], - ["lshr_1092_1036_1093.in1","const_p1__1036$23.out"], - ["lshr_1096_1036_1097.in1","const_p1__1036$25.out"], - ["lshr_1103_1036_1104.in1","const_p1__1036$27.out"], - ["lshr_1106_1036_1107.in1","const_p1__1036$29.out"], - ["lshr_1044_1036_1045.in1","const_p1__1036$3.out"], - ["lshr_1110_1036_1111.in1","const_p1__1036$31.out"], - ["lshr_1116_1036_1117.in1","const_p1__1036$33.out"], - ["lshr_1120_1036_1121.in1","const_p1__1036$35.out"], - ["lshr_1047_1036_1048.in1","const_p1__1036$5.out"], - ["lshr_1054_1036_1055.in1","const_p1__1036$7.out"], - ["lshr_1057_1036_1058.in1","const_p1__1036$9.out"], - ["mux_1032_1114_1123.sel","eq_10310_1032.out"], - ["mux_1034_1063_1113.sel","eq_10330_1034.out"], - ["mux_1034_b_b_stencil_2_1122.sel","eq_10330_1034.out"], - ["mux_1042_1045_1048.in1","lshr_1044_1036_1045.out"], - ["mux_1042_1045_1048.in0","lshr_1047_1036_1048.out"], - ["mux_1052_1055_1058.in1","lshr_1054_1036_1055.out"], - ["mux_1052_1055_1058.in0","lshr_1057_1036_1058.out"], - ["sub_1039_1062_1063.in1","lshr_1061_1036_1062.out"], - ["mux_1072_1075_1078.in1","lshr_1074_1036_1075.out"], - ["mux_1072_1075_1078.in0","lshr_1077_1036_1078.out"], - ["mux_1083_1086_1089.in1","lshr_1085_1036_1086.out"], - ["mux_1083_1086_1089.in0","lshr_1088_1036_1089.out"], - ["sub_1080_1093_1094.in1","lshr_1092_1036_1093.out"], - ["mux_1101_1104_1107.in1","lshr_1103_1036_1104.out"], - ["mux_1101_1104_1107.in0","lshr_1106_1036_1107.out"], - ["sub_1098_1111_1112.in1","lshr_1110_1036_1111.out"], - ["sub_1118_1121_1122.in1","lshr_1120_1036_1121.out"], - ["mux_1034_b_b_stencil_2_1122.out","mux_1032_1114_1123.in0"], - ["mux_1034_1063_1113.out","mux_1032_1114_1123.in1"], - ["self.out_demosaicked_1_stencil","mux_1032_1114_1123.out"], - ["mux_1066_1094_1112.out","mux_1034_1063_1113.in0"], - ["sub_1039_1062_1063.out","mux_1034_1063_1113.in1"], - ["sub_1118_1121_1122.out","mux_1034_b_b_stencil_2_1122.in0"], - ["self.in0_b_b_stencil.1","mux_1034_b_b_stencil_2_1122.in1"], - ["ult_1040_1041_1042.out","mux_1042_1045_1048.sel"], - ["ult_1050_1051_1052.out","mux_1052_1055_1058.sel"], - ["sub_1098_1111_1112.out","mux_1066_1094_1112.in0"], - ["sub_1080_1093_1094.out","mux_1066_1094_1112.in1"], - ["ult_1064_1065_1066.out","mux_1066_1094_1112.sel"], - ["ult_1070_1071_1072.out","mux_1072_1075_1078.sel"], - ["ult_1081_1082_1083.out","mux_1083_1086_1089.sel"], - ["ult_1099_1100_1101.out","mux_1101_1104_1107.sel"] + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_15_992.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_14_denoised_1_stencil_15_992.in1"], + ["ult_991_992_993.in1","absd_denoised_1_stencil_14_denoised_1_stencil_15_992.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_17_971.in0"], + ["self.in0_denoised_1_stencil.3","absd_denoised_1_stencil_14_denoised_1_stencil_17_971.in1"], + ["ult_971_972_973.in0","absd_denoised_1_stencil_14_denoised_1_stencil_17_971.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_18_972.in0"], + ["self.in0_denoised_1_stencil.4","absd_denoised_1_stencil_14_denoised_1_stencil_18_972.in1"], + ["ult_971_972_973.in1","absd_denoised_1_stencil_14_denoised_1_stencil_18_972.out"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_14_denoised_1_stencil_20_991.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_14_denoised_1_stencil_20_991.in1"], + ["ult_991_992_993.in0","absd_denoised_1_stencil_14_denoised_1_stencil_20_991.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_15_denoised_1_stencil_14_965.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_15_denoised_1_stencil_14_965.in1"], + ["ult_964_965_966.in1","absd_denoised_1_stencil_15_denoised_1_stencil_14_965.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_15_denoised_1_stencil_16_964.in0"], + ["self.in0_denoised_1_stencil.2","absd_denoised_1_stencil_15_denoised_1_stencil_16_964.in1"], + ["ult_964_965_966.in0","absd_denoised_1_stencil_15_denoised_1_stencil_16_964.out"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_15_denoised_1_stencil_20_986.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_15_denoised_1_stencil_20_986.in1"], + ["ult_985_986_987.in1","absd_denoised_1_stencil_15_denoised_1_stencil_20_986.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_19_denoised_1_stencil_14_985.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_19_denoised_1_stencil_14_985.in1"], + ["ult_985_986_987.in0","absd_denoised_1_stencil_19_denoised_1_stencil_14_985.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_19_denoised_1_stencil_15_999.in0"], + ["self.in0_denoised_1_stencil.1","absd_denoised_1_stencil_19_denoised_1_stencil_15_999.in1"], + ["ult_999_1000_1001.in0","absd_denoised_1_stencil_19_denoised_1_stencil_15_999.out"], + ["self.in0_denoised_1_stencil.5","absd_denoised_1_stencil_19_denoised_1_stencil_20_1000.in0"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_19_denoised_1_stencil_20_1000.in1"], + ["ult_999_1000_1001.in1","absd_denoised_1_stencil_19_denoised_1_stencil_20_1000.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_20_denoised_1_stencil_14_1017.in0"], + ["self.in0_denoised_1_stencil.0","absd_denoised_1_stencil_20_denoised_1_stencil_14_1017.in1"], + ["ult_1017_1018_1019.in0","absd_denoised_1_stencil_20_denoised_1_stencil_14_1017.out"], + ["self.in0_denoised_1_stencil.6","absd_denoised_1_stencil_20_denoised_1_stencil_21_1018.in0"], + ["self.in0_denoised_1_stencil.7","absd_denoised_1_stencil_20_denoised_1_stencil_21_1018.in1"], + ["ult_1017_1018_1019.in1","absd_denoised_1_stencil_20_denoised_1_stencil_21_1018.out"], + ["add_denoised_1_stencil_19_denoised_1_stencil_15_1002.out","add_1002_960_1003.in0"], + ["const_p1__960$14.out","add_1002_960_1003.in1"], + ["lshr_1003_960_1004.in0","add_1002_960_1003.out"], + ["add_denoised_1_stencil_19_denoised_1_stencil_20_1005.out","add_1005_960_1006.in0"], + ["const_p1__960$16.out","add_1005_960_1006.in1"], + ["lshr_1006_960_1007.in0","add_1005_960_1006.out"], + ["mux_1001_1004_1007.out","add_1008_980_1009.in0"], + ["mux_973_976_979.out","add_1008_980_1009.in1"], + ["add_1009_960_1010.in0","add_1008_980_1009.out"], + ["const_p1__960$18.out","add_1009_960_1010.in1"], + ["lshr_1010_960_1011.in0","add_1009_960_1010.out"], + ["add_denoised_1_stencil_15_denoised_1_stencil_20_1013.out","add_1013_960_1014.in0"], + ["const_p1__960$20.out","add_1013_960_1014.in1"], + ["lshr_1014_960_1015.in0","add_1013_960_1014.out"], + ["lshr_1014_960_1015.out","add_1015_997_1016.in0"], + ["mux_993_996_962.out","add_1015_997_1016.in1"], + ["sub_1016_1026_1027.in0","add_1015_997_1016.out"], + ["add_denoised_1_stencil_21_denoised_1_stencil_20_1020.out","add_1020_960_1021.in0"], + ["const_p1__960$22.out","add_1020_960_1021.in1"], + ["lshr_1021_960_1022.in0","add_1020_960_1021.out"], + ["add_970_1023_1024.out","add_1024_960_1025.in0"], + ["const_p1__960$24.out","add_1024_960_1025.in1"], + ["lshr_1025_960_1026.in0","add_1024_960_1025.out"], + ["add_980_1023_1031.out","add_1031_960_1032.in0"], + ["const_p1__960$26.out","add_1031_960_1032.in1"], + ["lshr_1032_960_1033.in0","add_1031_960_1032.out"], + ["add_denoised_1_stencil_14_denoised_1_stencil_15_959.out","add_959_960_961.in0"], + ["const_p1__960.out","add_959_960_961.in1"], + ["lshr_961_960_962.in0","add_959_960_961.out"], + ["add_denoised_1_stencil_16_denoised_1_stencil_15_967.out","add_967_960_968.in0"], + ["const_p1__960$2.out","add_967_960_968.in1"], + ["lshr_968_960_969.in0","add_967_960_968.out"], + ["mux_966_969_962.out","add_970_1023_1024.in0"], + ["mux_1019_996_1022.out","add_970_1023_1024.in1"], + ["mux_966_969_962.out","add_970_980_981.in0"], + ["mux_973_976_979.out","add_970_980_981.in1"], + ["add_981_960_982.in0","add_970_980_981.out"], + ["add_denoised_1_stencil_17_denoised_1_stencil_14_974.out","add_974_960_975.in0"], + ["const_p1__960$4.out","add_974_960_975.in1"], + ["lshr_975_960_976.in0","add_974_960_975.out"], + ["add_denoised_1_stencil_18_denoised_1_stencil_14_977.out","add_977_960_978.in0"], + ["const_p1__960$6.out","add_977_960_978.in1"], + ["lshr_978_960_979.in0","add_977_960_978.out"], + ["mux_973_976_979.out","add_980_1023_1031.in0"], + ["mux_1019_996_1022.out","add_980_1023_1031.in1"], + ["const_p1__960$8.out","add_981_960_982.in1"], + ["lshr_982_960_983.in0","add_981_960_982.out"], + ["add_denoised_1_stencil_19_denoised_1_stencil_14_988.out","add_988_960_989.in0"], + ["const_p1__960$10.out","add_988_960_989.in1"], + ["lshr_989_960_990.in0","add_988_960_989.out"], + ["lshr_989_960_990.out","add_990_997_998.in0"], + ["mux_993_996_962.out","add_990_997_998.in1"], + ["sub_998_1011_1012.in0","add_990_997_998.out"], + ["add_denoised_1_stencil_14_denoised_1_stencil_20_994.out","add_994_960_995.in0"], + ["const_p1__960$12.out","add_994_960_995.in1"], + ["lshr_995_960_996.in0","add_994_960_995.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_962_963.in0"], + ["lshr_961_960_962.out","add_denoised_1_stencil_14_962_963.in1"], + ["sub_963_983_984.in0","add_denoised_1_stencil_14_962_963.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_996_1030.in0"], + ["lshr_995_960_996.out","add_denoised_1_stencil_14_996_1030.in1"], + ["sub_1030_1033_1034.in0","add_denoised_1_stencil_14_996_1030.out"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_denoised_1_stencil_15_959.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_14_denoised_1_stencil_15_959.in1"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_14_denoised_1_stencil_20_994.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_14_denoised_1_stencil_20_994.in1"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_15_denoised_1_stencil_20_1013.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_15_denoised_1_stencil_20_1013.in1"], + ["self.in0_denoised_1_stencil.2","add_denoised_1_stencil_16_denoised_1_stencil_15_967.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_16_denoised_1_stencil_15_967.in1"], + ["self.in0_denoised_1_stencil.3","add_denoised_1_stencil_17_denoised_1_stencil_14_974.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_17_denoised_1_stencil_14_974.in1"], + ["self.in0_denoised_1_stencil.4","add_denoised_1_stencil_18_denoised_1_stencil_14_977.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_18_denoised_1_stencil_14_977.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_19_denoised_1_stencil_14_988.in0"], + ["self.in0_denoised_1_stencil.0","add_denoised_1_stencil_19_denoised_1_stencil_14_988.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_19_denoised_1_stencil_15_1002.in0"], + ["self.in0_denoised_1_stencil.1","add_denoised_1_stencil_19_denoised_1_stencil_15_1002.in1"], + ["self.in0_denoised_1_stencil.5","add_denoised_1_stencil_19_denoised_1_stencil_20_1005.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_19_denoised_1_stencil_20_1005.in1"], + ["self.in0_denoised_1_stencil.7","add_denoised_1_stencil_21_denoised_1_stencil_20_1020.in0"], + ["self.in0_denoised_1_stencil.6","add_denoised_1_stencil_21_denoised_1_stencil_20_1020.in1"], + ["self.demosaicked_1_s0_x_2","and_demosaicked_1_s0_x_2_954_957.in0"], + ["const_p1__954$1.out","and_demosaicked_1_s0_x_2_954_957.in1"], + ["eq_9570_958.in0","and_demosaicked_1_s0_x_2_954_957.out"], + ["self.demosaicked_1_s0_y_2","and_demosaicked_1_s0_y_2_954_955.in0"], + ["const_p1__954.out","and_demosaicked_1_s0_y_2_954_955.in1"], + ["eq_9550_956.in0","and_demosaicked_1_s0_y_2_954_955.out"], + ["eq_9550_956.in1","const_p0_0$4.out"], + ["eq_9570_958.in1","const_p0_0$5.out"], + ["lshr_961_960_962.in1","const_p1__960$1.out"], + ["lshr_989_960_990.in1","const_p1__960$11.out"], + ["lshr_995_960_996.in1","const_p1__960$13.out"], + ["lshr_1003_960_1004.in1","const_p1__960$15.out"], + ["lshr_1006_960_1007.in1","const_p1__960$17.out"], + ["lshr_1010_960_1011.in1","const_p1__960$19.out"], + ["lshr_1014_960_1015.in1","const_p1__960$21.out"], + ["lshr_1021_960_1022.in1","const_p1__960$23.out"], + ["lshr_1025_960_1026.in1","const_p1__960$25.out"], + ["lshr_1032_960_1033.in1","const_p1__960$27.out"], + ["lshr_968_960_969.in1","const_p1__960$3.out"], + ["lshr_975_960_976.in1","const_p1__960$5.out"], + ["lshr_978_960_979.in1","const_p1__960$7.out"], + ["lshr_982_960_983.in1","const_p1__960$9.out"], + ["mux_956_1029_1035.sel","eq_9550_956.out"], + ["mux_958_984_1028.sel","eq_9570_958.out"], + ["mux_958_denoised_1_stencil_14_1034.sel","eq_9570_958.out"], + ["mux_1001_1004_1007.in1","lshr_1003_960_1004.out"], + ["mux_1001_1004_1007.in0","lshr_1006_960_1007.out"], + ["sub_998_1011_1012.in1","lshr_1010_960_1011.out"], + ["mux_1019_996_1022.in0","lshr_1021_960_1022.out"], + ["sub_1016_1026_1027.in1","lshr_1025_960_1026.out"], + ["sub_1030_1033_1034.in1","lshr_1032_960_1033.out"], + ["mux_966_969_962.in0","lshr_961_960_962.out"], + ["mux_993_996_962.in0","lshr_961_960_962.out"], + ["mux_966_969_962.in1","lshr_968_960_969.out"], + ["mux_973_976_979.in1","lshr_975_960_976.out"], + ["mux_973_976_979.in0","lshr_978_960_979.out"], + ["sub_963_983_984.in1","lshr_982_960_983.out"], + ["mux_1019_996_1022.in1","lshr_995_960_996.out"], + ["mux_993_996_962.in1","lshr_995_960_996.out"], + ["ult_999_1000_1001.out","mux_1001_1004_1007.sel"], + ["ult_1017_1018_1019.out","mux_1019_996_1022.sel"], + ["mux_958_denoised_1_stencil_14_1034.out","mux_956_1029_1035.in0"], + ["mux_958_984_1028.out","mux_956_1029_1035.in1"], + ["self.out_demosaicked_1_stencil","mux_956_1029_1035.out"], + ["mux_987_1012_1027.out","mux_958_984_1028.in0"], + ["sub_963_983_984.out","mux_958_984_1028.in1"], + ["sub_1030_1033_1034.out","mux_958_denoised_1_stencil_14_1034.in0"], + ["self.in0_denoised_1_stencil.0","mux_958_denoised_1_stencil_14_1034.in1"], + ["ult_964_965_966.out","mux_966_969_962.sel"], + ["ult_971_972_973.out","mux_973_976_979.sel"], + ["sub_1016_1026_1027.out","mux_987_1012_1027.in0"], + ["sub_998_1011_1012.out","mux_987_1012_1027.in1"], + ["ult_985_986_987.out","mux_987_1012_1027.sel"], + ["ult_991_992_993.out","mux_993_996_962.sel"] ] }, "hcompute_denoised_1_stencil":{ @@ -2188,51 +1917,57 @@ ["in0_hw_input_global_wrapper_stencil",["Array",5,["Array",16,"BitIn"]]] ]], "instances":{ - "umax_hw_input_global_wrapper_stencil_2_326_327":{ + "umax_333_336_337":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umax_hw_input_global_wrapper_stencil_2_331_332":{ "genref":"commonlib.umax", "genargs":{"width":["Int",16]} }, - "umax_hw_input_global_wrapper_stencil_3_325_326":{ + "umax_hw_input_global_wrapper_stencil_3_330_331":{ "genref":"commonlib.umax", "genargs":{"width":["Int",16]} }, - "umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325":{ + "umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330":{ "genref":"commonlib.umax", "genargs":{"width":["Int",16]} }, - "umin_hw_input_global_wrapper_stencil_1_327_328":{ + "umin_hw_input_global_wrapper_stencil_1_332_333":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_2_335_336":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_3_334_335":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334":{ "genref":"commonlib.umin", "genargs":{"width":["Int",16]} } }, "connections":[ - ["umin_hw_input_global_wrapper_stencil_1_327_328.in0","self.in0_hw_input_global_wrapper_stencil.0"], - ["umax_hw_input_global_wrapper_stencil_2_326_327.in0","self.in0_hw_input_global_wrapper_stencil.1"], - ["umax_hw_input_global_wrapper_stencil_3_325_326.in0","self.in0_hw_input_global_wrapper_stencil.2"], - ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325.in0","self.in0_hw_input_global_wrapper_stencil.3"], - ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325.in1","self.in0_hw_input_global_wrapper_stencil.4"], - ["umin_hw_input_global_wrapper_stencil_1_327_328.out","self.out_denoised_1_stencil"], - ["umax_hw_input_global_wrapper_stencil_3_325_326.out","umax_hw_input_global_wrapper_stencil_2_326_327.in1"], - ["umin_hw_input_global_wrapper_stencil_1_327_328.in1","umax_hw_input_global_wrapper_stencil_2_326_327.out"], - ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325.out","umax_hw_input_global_wrapper_stencil_3_325_326.in1"] - ] - }, - "hcompute_g_gb_stencil":{ - "type":["Record",[ - ["out_g_gb_stencil",["Array",16,"Bit"]], - ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "connections":[ - ["self.out_g_gb_stencil","self.in0_denoised_1_stencil.0"] - ] - }, - "hcompute_g_gr_stencil":{ - "type":["Record",[ - ["out_g_gr_stencil",["Array",16,"Bit"]], - ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "connections":[ - ["self.out_g_gr_stencil","self.in0_denoised_1_stencil.0"] + ["umin_hw_input_global_wrapper_stencil_1_332_333.in0","self.in0_hw_input_global_wrapper_stencil.0"], + ["umax_hw_input_global_wrapper_stencil_2_331_332.in0","self.in0_hw_input_global_wrapper_stencil.1"], + ["umin_hw_input_global_wrapper_stencil_2_335_336.in0","self.in0_hw_input_global_wrapper_stencil.1"], + ["umax_hw_input_global_wrapper_stencil_3_330_331.in0","self.in0_hw_input_global_wrapper_stencil.2"], + ["umin_hw_input_global_wrapper_stencil_3_334_335.in0","self.in0_hw_input_global_wrapper_stencil.2"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330.in0","self.in0_hw_input_global_wrapper_stencil.3"], + ["umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334.in0","self.in0_hw_input_global_wrapper_stencil.3"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330.in1","self.in0_hw_input_global_wrapper_stencil.4"], + ["umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334.in1","self.in0_hw_input_global_wrapper_stencil.4"], + ["umax_333_336_337.out","self.out_denoised_1_stencil"], + ["umin_hw_input_global_wrapper_stencil_1_332_333.out","umax_333_336_337.in0"], + ["umin_hw_input_global_wrapper_stencil_2_335_336.out","umax_333_336_337.in1"], + ["umax_hw_input_global_wrapper_stencil_3_330_331.out","umax_hw_input_global_wrapper_stencil_2_331_332.in1"], + ["umin_hw_input_global_wrapper_stencil_1_332_333.in1","umax_hw_input_global_wrapper_stencil_2_331_332.out"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_330.out","umax_hw_input_global_wrapper_stencil_3_330_331.in1"], + ["umin_hw_input_global_wrapper_stencil_3_334_335.out","umin_hw_input_global_wrapper_stencil_2_335_336.in1"], + ["umin_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_334.out","umin_hw_input_global_wrapper_stencil_3_334_335.in1"] ] }, "hcompute_hw_input_global_wrapper_stencil":{ @@ -2270,15 +2005,6 @@ "connections":[ ["self.out_hw_output_stencil","self.in0_curved_stencil.0"] ] - }, - "hcompute_r_r_stencil":{ - "type":["Record",[ - ["out_r_r_stencil",["Array",16,"Bit"]], - ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "connections":[ - ["self.out_r_r_stencil","self.in0_denoised_1_stencil.0"] - ] } } } diff --git a/examples/clockwork/camera_pipeline_new_compute.json b/examples/clockwork/camera_pipeline_new_compute.json new file mode 100644 index 0000000..3f7617a --- /dev/null +++ b/examples/clockwork/camera_pipeline_new_compute.json @@ -0,0 +1,2286 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_b_b_stencil":{ + "type":["Record",[ + ["out_b_b_stencil",["Array",16,"Bit"]], + ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_b_b_stencil","self.in0_denoised_1_stencil.0"] + ] + }, + "hcompute_corrected_stencil":{ + "type":["Record",[ + ["out_corrected_stencil",["Array",16,"Bit"]], + ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_1301_1303_1304":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1307-10221_1308":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "ashr_1308_1309_1310":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_n10221_-10221":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'hd813"]} + }, + "const_p103_103":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0067"]} + }, + "const_p549_549":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0225"]} + }, + "const_p7_7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0007"]} + }, + "const_p8__1309":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "mul_1300549_1301":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_13027_1303":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1305103_1306":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "sub_1304_1306_1307":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["mul_1300549_1301.out","add_1301_1303_1304.in0"], + ["mul_13027_1303.out","add_1301_1303_1304.in1"], + ["sub_1304_1306_1307.in0","add_1301_1303_1304.out"], + ["sub_1304_1306_1307.out","add_1307-10221_1308.in0"], + ["const_n10221_-10221.out","add_1307-10221_1308.in1"], + ["ashr_1308_1309_1310.in0","add_1307-10221_1308.out"], + ["const_p8__1309.out","ashr_1308_1309_1310.in1"], + ["self.out_corrected_stencil","ashr_1308_1309_1310.out"], + ["mul_1305103_1306.in1","const_p103_103.out"], + ["mul_1300549_1301.in1","const_p549_549.out"], + ["mul_13027_1303.in1","const_p7_7.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1300549_1301.in0"], + ["self.in0_demosaicked_1_stencil.1","mul_13027_1303.in0"], + ["self.in0_demosaicked_1_stencil.2","mul_1305103_1306.in0"], + ["sub_1304_1306_1307.in1","mul_1305103_1306.out"] + ] + }, + "hcompute_corrected_stencil_1":{ + "type":["Record",[ + ["out_corrected_stencil",["Array",16,"Bit"]], + ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_1338_1340_1341":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1344-7254_1345":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "ashr_1345_1346_1347":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_n7254_-7254":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'he3aa"]} + }, + "const_p373_373":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0175"]} + }, + "const_p62_62":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h003e"]} + }, + "const_p8__1346":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "const_p96_96":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0060"]} + }, + "mul_1337373_1338":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_133962_1340":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_134296_1343":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "sub_1341_1343_1344":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["mul_1337373_1338.out","add_1338_1340_1341.in0"], + ["mul_133962_1340.out","add_1338_1340_1341.in1"], + ["sub_1341_1343_1344.in0","add_1338_1340_1341.out"], + ["sub_1341_1343_1344.out","add_1344-7254_1345.in0"], + ["const_n7254_-7254.out","add_1344-7254_1345.in1"], + ["ashr_1345_1346_1347.in0","add_1344-7254_1345.out"], + ["const_p8__1346.out","ashr_1345_1346_1347.in1"], + ["self.out_corrected_stencil","ashr_1345_1346_1347.out"], + ["mul_1337373_1338.in1","const_p373_373.out"], + ["mul_133962_1340.in1","const_p62_62.out"], + ["mul_134296_1343.in1","const_p96_96.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1337373_1338.in0"], + ["self.in0_demosaicked_1_stencil.1","mul_133962_1340.in0"], + ["self.in0_demosaicked_1_stencil.2","mul_134296_1343.in0"], + ["sub_1341_1343_1344.in1","mul_134296_1343.out"] + ] + }, + "hcompute_corrected_stencil_2":{ + "type":["Record",[ + ["out_corrected_stencil",["Array",16,"Bit"]], + ["in0_demosaicked_1_stencil",["Array",3,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_1381-5563_1382":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "ashr_1382_1383_1384":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_n5563_-5563":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'hea45"]} + }, + "const_p261_261":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0105"]} + }, + "const_p31_31":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h001f"]} + }, + "const_p883_883":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0373"]} + }, + "const_p8__1383":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "mul_1374883_1375":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_1376261_1377":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_137931_1380":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "sub_1375_1377_1378":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1378_1380_1381":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["sub_1378_1380_1381.out","add_1381-5563_1382.in0"], + ["const_n5563_-5563.out","add_1381-5563_1382.in1"], + ["ashr_1382_1383_1384.in0","add_1381-5563_1382.out"], + ["const_p8__1383.out","ashr_1382_1383_1384.in1"], + ["self.out_corrected_stencil","ashr_1382_1383_1384.out"], + ["mul_1376261_1377.in1","const_p261_261.out"], + ["mul_137931_1380.in1","const_p31_31.out"], + ["mul_1374883_1375.in1","const_p883_883.out"], + ["self.in0_demosaicked_1_stencil.0","mul_1374883_1375.in0"], + ["sub_1375_1377_1378.in0","mul_1374883_1375.out"], + ["self.in0_demosaicked_1_stencil.1","mul_1376261_1377.in0"], + ["sub_1375_1377_1378.in1","mul_1376261_1377.out"], + ["self.in0_demosaicked_1_stencil.2","mul_137931_1380.in0"], + ["sub_1378_1380_1381.in1","mul_137931_1380.out"], + ["sub_1378_1380_1381.in0","sub_1375_1377_1378.out"] + ] + }, + "hcompute_curved_stencil":{ + "type":["Record",[ + ["out_curved_stencil",["Array",16,"Bit"]], + ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p0__3457":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1023__3455":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h03ff"]} + }, + "rom_curvea0":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",1024], "width":["Int",16]}, + "modargs":{"init":["Json",[0,4,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,22,23,24,25,25,26,27,27,28,29,29,30,31,31,32,33,33,34,34,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,68,69,69,70,70,71,71,71,72,72,73,73,74,74,74,75,75,76,76,77,77,77,78,78,79,79,79,80,80,81,81,82,82,82,83,83,84,84,84,85,85,86,86,86,87,87,88,88,88,89,89,90,90,90,91,91,92,92,92,93,93,93,94,94,95,95,95,96,96,97,97,97,98,98,99,99,99,100,100,100,101,101,102,102,102,103,103,103,104,104,105,105,105,106,106,106,107,107,108,108,108,109,109,109,110,110,111,111,111,112,112,112,113,113,113,114,114,115,115,115,116,116,116,117,117,117,118,118,119,119,119,120,120,120,121,121,121,122,122,123,123,123,124,124,124,125,125,125,126,126,126,127,127,128,128,128,129,129,129,130,130,130,131,131,131,132,132,132,133,133,133,134,134,134,135,135,135,136,136,136,137,137,137,138,138,138,139,139,139,140,140,140,141,141,141,141,142,142,142,143,143,143,144,144,144,145,145,145,145,146,146,146,147,147,147,148,148,148,148,149,149,149,150,150,150,150,151,151,151,152,152,152,152,153,153,153,154,154,154,154,155,155,155,156,156,156,156,157,157,157,157,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,162,162,162,162,163,163,163,163,164,164,164,164,165,165,165,166,166,166,166,167,167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,171,171,171,171,172,172,172,172,173,173,173,173,173,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,181,181,181,181,181,182,182,182,182,183,183,183,183,183,184,184,184,184,184,185,185,185,185,185,186,186,186,186,187,187,187,187,187,188,188,188,188,188,189,189,189,189,189,190,190,190,190,190,190,191,191,191,191,191,192,192,192,192,192,193,193,193,193,193,194,194,194,194,194,195,195,195,195,195,195,196,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,199,199,199,199,199,199,200,200,200,200,200,200,201,201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,204,204,204,204,204,204,205,205,205,205,205,205,206,206,206,206,206,206,207,207,207,207,207,207,208,208,208,208,208,208,209,209,209,209,209,209,209,210,210,210,210,210,210,211,211,211,211,211,211,211,212,212,212,212,212,212,213,213,213,213,213,213,213,214,214,214,214,214,214,214,215,215,215,215,215,215,216,216,216,216,216,216,216,217,217,217,217,217,217,217,218,218,218,218,218,218,218,219,219,219,219,219,219,219,220,220,220,220,220,220,220,220,221,221,221,221,221,221,221,222,222,222,222,222,222,222,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,234,234,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,236,236,236,236,236,236,236,236,236,237,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,238,239,239,239,239,239,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,241,241,241,241,241,241,241,241,241,241,242,242,242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255]]} + }, + "rom_curvea0_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "smax_3456_3457_3458":{ + "genref":"commonlib.smax", + "genargs":{"width":["Int",16]} + }, + "smin_corrected_stencil_1_3455_3456":{ + "genref":"commonlib.smin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["smax_3456_3457_3458.in1","const_p0__3457.out"], + ["smin_corrected_stencil_1_3455_3456.in1","const_p1023__3455.out"], + ["smax_3456_3457_3458.out","rom_curvea0.raddr"], + ["self.out_curved_stencil","rom_curvea0.rdata"], + ["rom_curvea0_ren.out","rom_curvea0.ren"], + ["smin_corrected_stencil_1_3455_3456.in0","self.in0_corrected_stencil.0"], + ["smin_corrected_stencil_1_3455_3456.out","smax_3456_3457_3458.in0"] + ] + }, + "hcompute_curved_stencil_1":{ + "type":["Record",[ + ["out_curved_stencil",["Array",16,"Bit"]], + ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p0__4503":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1023__4501":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h03ff"]} + }, + "rom_curvea0$1":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",1024], "width":["Int",16]}, + "modargs":{"init":["Json",[0,4,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,22,23,24,25,25,26,27,27,28,29,29,30,31,31,32,33,33,34,34,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,68,69,69,70,70,71,71,71,72,72,73,73,74,74,74,75,75,76,76,77,77,77,78,78,79,79,79,80,80,81,81,82,82,82,83,83,84,84,84,85,85,86,86,86,87,87,88,88,88,89,89,90,90,90,91,91,92,92,92,93,93,93,94,94,95,95,95,96,96,97,97,97,98,98,99,99,99,100,100,100,101,101,102,102,102,103,103,103,104,104,105,105,105,106,106,106,107,107,108,108,108,109,109,109,110,110,111,111,111,112,112,112,113,113,113,114,114,115,115,115,116,116,116,117,117,117,118,118,119,119,119,120,120,120,121,121,121,122,122,123,123,123,124,124,124,125,125,125,126,126,126,127,127,128,128,128,129,129,129,130,130,130,131,131,131,132,132,132,133,133,133,134,134,134,135,135,135,136,136,136,137,137,137,138,138,138,139,139,139,140,140,140,141,141,141,141,142,142,142,143,143,143,144,144,144,145,145,145,145,146,146,146,147,147,147,148,148,148,148,149,149,149,150,150,150,150,151,151,151,152,152,152,152,153,153,153,154,154,154,154,155,155,155,156,156,156,156,157,157,157,157,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,162,162,162,162,163,163,163,163,164,164,164,164,165,165,165,166,166,166,166,167,167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,171,171,171,171,172,172,172,172,173,173,173,173,173,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,181,181,181,181,181,182,182,182,182,183,183,183,183,183,184,184,184,184,184,185,185,185,185,185,186,186,186,186,187,187,187,187,187,188,188,188,188,188,189,189,189,189,189,190,190,190,190,190,190,191,191,191,191,191,192,192,192,192,192,193,193,193,193,193,194,194,194,194,194,195,195,195,195,195,195,196,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,199,199,199,199,199,199,200,200,200,200,200,200,201,201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,204,204,204,204,204,204,205,205,205,205,205,205,206,206,206,206,206,206,207,207,207,207,207,207,208,208,208,208,208,208,209,209,209,209,209,209,209,210,210,210,210,210,210,211,211,211,211,211,211,211,212,212,212,212,212,212,213,213,213,213,213,213,213,214,214,214,214,214,214,214,215,215,215,215,215,215,216,216,216,216,216,216,216,217,217,217,217,217,217,217,218,218,218,218,218,218,218,219,219,219,219,219,219,219,220,220,220,220,220,220,220,220,221,221,221,221,221,221,221,222,222,222,222,222,222,222,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,234,234,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,236,236,236,236,236,236,236,236,236,237,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,238,239,239,239,239,239,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,241,241,241,241,241,241,241,241,241,241,242,242,242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255]]} + }, + "rom_curvea0$1_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "smax_4502_4503_4504":{ + "genref":"commonlib.smax", + "genargs":{"width":["Int",16]} + }, + "smin_corrected_stencil_2_4501_4502":{ + "genref":"commonlib.smin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["smax_4502_4503_4504.in1","const_p0__4503.out"], + ["smin_corrected_stencil_2_4501_4502.in1","const_p1023__4501.out"], + ["smax_4502_4503_4504.out","rom_curvea0$1.raddr"], + ["self.out_curved_stencil","rom_curvea0$1.rdata"], + ["rom_curvea0$1_ren.out","rom_curvea0$1.ren"], + ["smin_corrected_stencil_2_4501_4502.in0","self.in0_corrected_stencil.0"], + ["smin_corrected_stencil_2_4501_4502.out","smax_4502_4503_4504.in0"] + ] + }, + "hcompute_curved_stencil_2":{ + "type":["Record",[ + ["out_curved_stencil",["Array",16,"Bit"]], + ["in0_corrected_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p0__5549":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1023__5547":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h03ff"]} + }, + "rom_curvea0$2":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",1024], "width":["Int",16]}, + "modargs":{"init":["Json",[0,4,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,22,23,24,25,25,26,27,27,28,29,29,30,31,31,32,33,33,34,34,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,68,69,69,70,70,71,71,71,72,72,73,73,74,74,74,75,75,76,76,77,77,77,78,78,79,79,79,80,80,81,81,82,82,82,83,83,84,84,84,85,85,86,86,86,87,87,88,88,88,89,89,90,90,90,91,91,92,92,92,93,93,93,94,94,95,95,95,96,96,97,97,97,98,98,99,99,99,100,100,100,101,101,102,102,102,103,103,103,104,104,105,105,105,106,106,106,107,107,108,108,108,109,109,109,110,110,111,111,111,112,112,112,113,113,113,114,114,115,115,115,116,116,116,117,117,117,118,118,119,119,119,120,120,120,121,121,121,122,122,123,123,123,124,124,124,125,125,125,126,126,126,127,127,128,128,128,129,129,129,130,130,130,131,131,131,132,132,132,133,133,133,134,134,134,135,135,135,136,136,136,137,137,137,138,138,138,139,139,139,140,140,140,141,141,141,141,142,142,142,143,143,143,144,144,144,145,145,145,145,146,146,146,147,147,147,148,148,148,148,149,149,149,150,150,150,150,151,151,151,152,152,152,152,153,153,153,154,154,154,154,155,155,155,156,156,156,156,157,157,157,157,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,162,162,162,162,163,163,163,163,164,164,164,164,165,165,165,166,166,166,166,167,167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,171,171,171,171,172,172,172,172,173,173,173,173,173,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,181,181,181,181,181,182,182,182,182,183,183,183,183,183,184,184,184,184,184,185,185,185,185,185,186,186,186,186,187,187,187,187,187,188,188,188,188,188,189,189,189,189,189,190,190,190,190,190,190,191,191,191,191,191,192,192,192,192,192,193,193,193,193,193,194,194,194,194,194,195,195,195,195,195,195,196,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,199,199,199,199,199,199,200,200,200,200,200,200,201,201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,204,204,204,204,204,204,205,205,205,205,205,205,206,206,206,206,206,206,207,207,207,207,207,207,208,208,208,208,208,208,209,209,209,209,209,209,209,210,210,210,210,210,210,211,211,211,211,211,211,211,212,212,212,212,212,212,213,213,213,213,213,213,213,214,214,214,214,214,214,214,215,215,215,215,215,215,216,216,216,216,216,216,216,217,217,217,217,217,217,217,218,218,218,218,218,218,218,219,219,219,219,219,219,219,220,220,220,220,220,220,220,220,221,221,221,221,221,221,221,222,222,222,222,222,222,222,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,224,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,227,227,227,227,228,228,228,228,228,228,228,228,228,229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,234,234,234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,236,236,236,236,236,236,236,236,236,237,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,238,239,239,239,239,239,239,239,239,239,239,240,240,240,240,240,240,240,240,240,240,241,241,241,241,241,241,241,241,241,241,242,242,242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,244,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255]]} + }, + "rom_curvea0$2_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "smax_5548_5549_5550":{ + "genref":"commonlib.smax", + "genargs":{"width":["Int",16]} + }, + "smin_corrected_stencil_3_5547_5548":{ + "genref":"commonlib.smin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["smax_5548_5549_5550.in1","const_p0__5549.out"], + ["smin_corrected_stencil_3_5547_5548.in1","const_p1023__5547.out"], + ["smax_5548_5549_5550.out","rom_curvea0$2.raddr"], + ["self.out_curved_stencil","rom_curvea0$2.rdata"], + ["rom_curvea0$2_ren.out","rom_curvea0$2.ren"], + ["smin_corrected_stencil_3_5547_5548.in0","self.in0_corrected_stencil.0"], + ["smin_corrected_stencil_3_5547_5548.out","smax_5548_5549_5550.in0"] + ] + }, + "hcompute_demosaicked_1_stencil":{ + "type":["Record",[ + ["out_demosaicked_1_stencil",["Array",16,"Bit"]], + ["in0_g_gb_stencil",["Array",6,["Array",16,"BitIn"]]], + ["in1_g_gr_stencil",["Array",6,["Array",16,"BitIn"]]], + ["in2_r_r_stencil",["Array",4,["Array",16,"BitIn"]]], + ["demosaicked_1_s0_x",["Array",16,"BitIn"]], + ["demosaicked_1_s0_y",["Array",16,"BitIn"]] + ]], + "instances":{ + "absd_g_gb_stencil_1_g_gb_stencil_2_511":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_2_g_gb_stencil_6_571":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_3_g_gb_stencil_4_521":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_4_g_gb_stencil_2_541":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_4_g_gb_stencil_5_553":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_1_g_gr_stencil_3_520":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_2_g_gr_stencil_1_510":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_4_g_gr_stencil_1_542":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_4_g_gr_stencil_5_552":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_6_g_gr_stencil_4_570":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_r_r_stencil_1_r_r_stencil_4_536":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_r_r_stencil_2_r_r_stencil_3_535":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "add_505_506_507":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_513_506_514":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_516_506_517":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_519_529_530":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_519_579_589":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_523_506_524":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_526_506_527":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_529_579_580":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_530_506_531":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_538_506_539":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_540_550_551":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_544_506_545":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_547_506_548":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_555_506_556":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_558_506_559":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_561_519_562":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_562_506_563":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_566_506_567":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_568_550_569":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_573_506_574":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_576_506_577":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_580_506_581":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_585_506_586":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_589_506_590":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_2_587_588":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_2_g_gb_stencil_1_516":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_4_g_gb_stencil_2_544":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_4_g_gb_stencil_3_526":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_5_g_gb_stencil_4_558":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_6_g_gb_stencil_2_576":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_1_508_509":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_1_g_gr_stencil_2_513":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_3_g_gr_stencil_1_523":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_4_g_gr_stencil_1_547":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_5_g_gr_stencil_4_555":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_6_g_gr_stencil_4_573":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_r_r_stencil_1_r_r_stencil_2_505":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_r_r_stencil_3_r_r_stencil_2_538":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_r_r_stencil_4_r_r_stencil_1_566":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_r_r_stencil_4_r_r_stencil_2_585":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_x_500_503":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_y_500_501":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "const_p0_0":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p0_0$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1__500":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__500$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$10":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$11":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$12":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$13":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$14":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$15":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$17":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$18":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$19":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$20":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$21":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$22":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$23":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$24":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$25":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$26":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$27":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$28":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$29":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$30":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$31":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$32":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$33":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$34":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$35":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$6":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$8":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__506$9":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "eq_5010_502":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "eq_5030_504":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "lshr_507_506_508":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_514_506_515":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_517_506_518":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_524_506_525":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_527_506_528":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_531_506_532":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_539_506_540":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_545_506_546":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_548_506_549":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_556_506_557":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_559_506_560":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_563_506_564":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_567_506_568":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_574_506_575":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_577_506_578":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_581_506_582":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_586_506_587":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_590_506_591":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "mux_502_534_593":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_504_533_r_r_stencil_2":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_504_584_592":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_512_515_518":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_522_525_528":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_537_565_583":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_543_546_549":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_554_557_560":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_572_575_578":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "sub_509_532_533":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_551_564_565":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_569_582_583":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_588_591_592":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "ult_510_511_512":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_520_521_522":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_535_536_537":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_541_542_543":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_552_553_554":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_570_571_572":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_g_gb_stencil.0","absd_g_gb_stencil_1_g_gb_stencil_2_511.in0"], + ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_1_g_gb_stencil_2_511.in1"], + ["ult_510_511_512.in1","absd_g_gb_stencil_1_g_gb_stencil_2_511.out"], + ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_2_g_gb_stencil_6_571.in0"], + ["self.in0_g_gb_stencil.5","absd_g_gb_stencil_2_g_gb_stencil_6_571.in1"], + ["ult_570_571_572.in1","absd_g_gb_stencil_2_g_gb_stencil_6_571.out"], + ["self.in0_g_gb_stencil.2","absd_g_gb_stencil_3_g_gb_stencil_4_521.in0"], + ["self.in0_g_gb_stencil.3","absd_g_gb_stencil_3_g_gb_stencil_4_521.in1"], + ["ult_520_521_522.in1","absd_g_gb_stencil_3_g_gb_stencil_4_521.out"], + ["self.in0_g_gb_stencil.3","absd_g_gb_stencil_4_g_gb_stencil_2_541.in0"], + ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_4_g_gb_stencil_2_541.in1"], + ["ult_541_542_543.in0","absd_g_gb_stencil_4_g_gb_stencil_2_541.out"], + ["self.in0_g_gb_stencil.3","absd_g_gb_stencil_4_g_gb_stencil_5_553.in0"], + ["self.in0_g_gb_stencil.4","absd_g_gb_stencil_4_g_gb_stencil_5_553.in1"], + ["ult_552_553_554.in1","absd_g_gb_stencil_4_g_gb_stencil_5_553.out"], + ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_1_g_gr_stencil_3_520.in0"], + ["self.in1_g_gr_stencil.2","absd_g_gr_stencil_1_g_gr_stencil_3_520.in1"], + ["ult_520_521_522.in0","absd_g_gr_stencil_1_g_gr_stencil_3_520.out"], + ["self.in1_g_gr_stencil.1","absd_g_gr_stencil_2_g_gr_stencil_1_510.in0"], + ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_2_g_gr_stencil_1_510.in1"], + ["ult_510_511_512.in0","absd_g_gr_stencil_2_g_gr_stencil_1_510.out"], + ["self.in1_g_gr_stencil.3","absd_g_gr_stencil_4_g_gr_stencil_1_542.in0"], + ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_4_g_gr_stencil_1_542.in1"], + ["ult_541_542_543.in1","absd_g_gr_stencil_4_g_gr_stencil_1_542.out"], + ["self.in1_g_gr_stencil.3","absd_g_gr_stencil_4_g_gr_stencil_5_552.in0"], + ["self.in1_g_gr_stencil.4","absd_g_gr_stencil_4_g_gr_stencil_5_552.in1"], + ["ult_552_553_554.in0","absd_g_gr_stencil_4_g_gr_stencil_5_552.out"], + ["self.in1_g_gr_stencil.5","absd_g_gr_stencil_6_g_gr_stencil_4_570.in0"], + ["self.in1_g_gr_stencil.3","absd_g_gr_stencil_6_g_gr_stencil_4_570.in1"], + ["ult_570_571_572.in0","absd_g_gr_stencil_6_g_gr_stencil_4_570.out"], + ["self.in2_r_r_stencil.0","absd_r_r_stencil_1_r_r_stencil_4_536.in0"], + ["self.in2_r_r_stencil.3","absd_r_r_stencil_1_r_r_stencil_4_536.in1"], + ["ult_535_536_537.in1","absd_r_r_stencil_1_r_r_stencil_4_536.out"], + ["self.in2_r_r_stencil.1","absd_r_r_stencil_2_r_r_stencil_3_535.in0"], + ["self.in2_r_r_stencil.2","absd_r_r_stencil_2_r_r_stencil_3_535.in1"], + ["ult_535_536_537.in0","absd_r_r_stencil_2_r_r_stencil_3_535.out"], + ["add_r_r_stencil_1_r_r_stencil_2_505.out","add_505_506_507.in0"], + ["const_p1__506.out","add_505_506_507.in1"], + ["lshr_507_506_508.in0","add_505_506_507.out"], + ["add_g_gr_stencil_1_g_gr_stencil_2_513.out","add_513_506_514.in0"], + ["const_p1__506$2.out","add_513_506_514.in1"], + ["lshr_514_506_515.in0","add_513_506_514.out"], + ["add_g_gb_stencil_2_g_gb_stencil_1_516.out","add_516_506_517.in0"], + ["const_p1__506$4.out","add_516_506_517.in1"], + ["lshr_517_506_518.in0","add_516_506_517.out"], + ["mux_512_515_518.out","add_519_529_530.in0"], + ["mux_522_525_528.out","add_519_529_530.in1"], + ["add_530_506_531.in0","add_519_529_530.out"], + ["mux_512_515_518.out","add_519_579_589.in0"], + ["mux_572_575_578.out","add_519_579_589.in1"], + ["add_589_506_590.in0","add_519_579_589.out"], + ["add_g_gr_stencil_3_g_gr_stencil_1_523.out","add_523_506_524.in0"], + ["const_p1__506$6.out","add_523_506_524.in1"], + ["lshr_524_506_525.in0","add_523_506_524.out"], + ["add_g_gb_stencil_4_g_gb_stencil_3_526.out","add_526_506_527.in0"], + ["const_p1__506$8.out","add_526_506_527.in1"], + ["lshr_527_506_528.in0","add_526_506_527.out"], + ["mux_522_525_528.out","add_529_579_580.in0"], + ["mux_572_575_578.out","add_529_579_580.in1"], + ["add_580_506_581.in0","add_529_579_580.out"], + ["const_p1__506$10.out","add_530_506_531.in1"], + ["lshr_531_506_532.in0","add_530_506_531.out"], + ["add_r_r_stencil_3_r_r_stencil_2_538.out","add_538_506_539.in0"], + ["const_p1__506$12.out","add_538_506_539.in1"], + ["lshr_539_506_540.in0","add_538_506_539.out"], + ["lshr_539_506_540.out","add_540_550_551.in0"], + ["mux_543_546_549.out","add_540_550_551.in1"], + ["sub_551_564_565.in0","add_540_550_551.out"], + ["add_g_gb_stencil_4_g_gb_stencil_2_544.out","add_544_506_545.in0"], + ["const_p1__506$14.out","add_544_506_545.in1"], + ["lshr_545_506_546.in0","add_544_506_545.out"], + ["add_g_gr_stencil_4_g_gr_stencil_1_547.out","add_547_506_548.in0"], + ["const_p1__506$16.out","add_547_506_548.in1"], + ["lshr_548_506_549.in0","add_547_506_548.out"], + ["add_g_gr_stencil_5_g_gr_stencil_4_555.out","add_555_506_556.in0"], + ["const_p1__506$18.out","add_555_506_556.in1"], + ["lshr_556_506_557.in0","add_555_506_556.out"], + ["add_g_gb_stencil_5_g_gb_stencil_4_558.out","add_558_506_559.in0"], + ["const_p1__506$20.out","add_558_506_559.in1"], + ["lshr_559_506_560.in0","add_558_506_559.out"], + ["mux_554_557_560.out","add_561_519_562.in0"], + ["mux_512_515_518.out","add_561_519_562.in1"], + ["add_562_506_563.in0","add_561_519_562.out"], + ["const_p1__506$22.out","add_562_506_563.in1"], + ["lshr_563_506_564.in0","add_562_506_563.out"], + ["add_r_r_stencil_4_r_r_stencil_1_566.out","add_566_506_567.in0"], + ["const_p1__506$24.out","add_566_506_567.in1"], + ["lshr_567_506_568.in0","add_566_506_567.out"], + ["lshr_567_506_568.out","add_568_550_569.in0"], + ["mux_543_546_549.out","add_568_550_569.in1"], + ["sub_569_582_583.in0","add_568_550_569.out"], + ["add_g_gr_stencil_6_g_gr_stencil_4_573.out","add_573_506_574.in0"], + ["const_p1__506$26.out","add_573_506_574.in1"], + ["lshr_574_506_575.in0","add_573_506_574.out"], + ["add_g_gb_stencil_6_g_gb_stencil_2_576.out","add_576_506_577.in0"], + ["const_p1__506$28.out","add_576_506_577.in1"], + ["lshr_577_506_578.in0","add_576_506_577.out"], + ["const_p1__506$30.out","add_580_506_581.in1"], + ["lshr_581_506_582.in0","add_580_506_581.out"], + ["add_r_r_stencil_4_r_r_stencil_2_585.out","add_585_506_586.in0"], + ["const_p1__506$32.out","add_585_506_586.in1"], + ["lshr_586_506_587.in0","add_585_506_586.out"], + ["const_p1__506$34.out","add_589_506_590.in1"], + ["lshr_590_506_591.in0","add_589_506_590.out"], + ["self.in0_g_gb_stencil.1","add_g_gb_stencil_2_587_588.in0"], + ["lshr_586_506_587.out","add_g_gb_stencil_2_587_588.in1"], + ["sub_588_591_592.in0","add_g_gb_stencil_2_587_588.out"], + ["self.in0_g_gb_stencil.1","add_g_gb_stencil_2_g_gb_stencil_1_516.in0"], + ["self.in0_g_gb_stencil.0","add_g_gb_stencil_2_g_gb_stencil_1_516.in1"], + ["self.in0_g_gb_stencil.3","add_g_gb_stencil_4_g_gb_stencil_2_544.in0"], + ["self.in0_g_gb_stencil.1","add_g_gb_stencil_4_g_gb_stencil_2_544.in1"], + ["self.in0_g_gb_stencil.3","add_g_gb_stencil_4_g_gb_stencil_3_526.in0"], + ["self.in0_g_gb_stencil.2","add_g_gb_stencil_4_g_gb_stencil_3_526.in1"], + ["self.in0_g_gb_stencil.4","add_g_gb_stencil_5_g_gb_stencil_4_558.in0"], + ["self.in0_g_gb_stencil.3","add_g_gb_stencil_5_g_gb_stencil_4_558.in1"], + ["self.in0_g_gb_stencil.5","add_g_gb_stencil_6_g_gb_stencil_2_576.in0"], + ["self.in0_g_gb_stencil.1","add_g_gb_stencil_6_g_gb_stencil_2_576.in1"], + ["self.in1_g_gr_stencil.0","add_g_gr_stencil_1_508_509.in0"], + ["lshr_507_506_508.out","add_g_gr_stencil_1_508_509.in1"], + ["sub_509_532_533.in0","add_g_gr_stencil_1_508_509.out"], + ["self.in1_g_gr_stencil.0","add_g_gr_stencil_1_g_gr_stencil_2_513.in0"], + ["self.in1_g_gr_stencil.1","add_g_gr_stencil_1_g_gr_stencil_2_513.in1"], + ["self.in1_g_gr_stencil.2","add_g_gr_stencil_3_g_gr_stencil_1_523.in0"], + ["self.in1_g_gr_stencil.0","add_g_gr_stencil_3_g_gr_stencil_1_523.in1"], + ["self.in1_g_gr_stencil.3","add_g_gr_stencil_4_g_gr_stencil_1_547.in0"], + ["self.in1_g_gr_stencil.0","add_g_gr_stencil_4_g_gr_stencil_1_547.in1"], + ["self.in1_g_gr_stencil.4","add_g_gr_stencil_5_g_gr_stencil_4_555.in0"], + ["self.in1_g_gr_stencil.3","add_g_gr_stencil_5_g_gr_stencil_4_555.in1"], + ["self.in1_g_gr_stencil.5","add_g_gr_stencil_6_g_gr_stencil_4_573.in0"], + ["self.in1_g_gr_stencil.3","add_g_gr_stencil_6_g_gr_stencil_4_573.in1"], + ["self.in2_r_r_stencil.0","add_r_r_stencil_1_r_r_stencil_2_505.in0"], + ["self.in2_r_r_stencil.1","add_r_r_stencil_1_r_r_stencil_2_505.in1"], + ["self.in2_r_r_stencil.2","add_r_r_stencil_3_r_r_stencil_2_538.in0"], + ["self.in2_r_r_stencil.1","add_r_r_stencil_3_r_r_stencil_2_538.in1"], + ["self.in2_r_r_stencil.3","add_r_r_stencil_4_r_r_stencil_1_566.in0"], + ["self.in2_r_r_stencil.0","add_r_r_stencil_4_r_r_stencil_1_566.in1"], + ["self.in2_r_r_stencil.3","add_r_r_stencil_4_r_r_stencil_2_585.in0"], + ["self.in2_r_r_stencil.1","add_r_r_stencil_4_r_r_stencil_2_585.in1"], + ["self.demosaicked_1_s0_x","and_demosaicked_1_s0_x_500_503.in0"], + ["const_p1__500$1.out","and_demosaicked_1_s0_x_500_503.in1"], + ["eq_5030_504.in0","and_demosaicked_1_s0_x_500_503.out"], + ["self.demosaicked_1_s0_y","and_demosaicked_1_s0_y_500_501.in0"], + ["const_p1__500.out","and_demosaicked_1_s0_y_500_501.in1"], + ["eq_5010_502.in0","and_demosaicked_1_s0_y_500_501.out"], + ["eq_5030_504.in1","const_p0_0$1.out"], + ["eq_5010_502.in1","const_p0_0.out"], + ["lshr_507_506_508.in1","const_p1__506$1.out"], + ["lshr_531_506_532.in1","const_p1__506$11.out"], + ["lshr_539_506_540.in1","const_p1__506$13.out"], + ["lshr_545_506_546.in1","const_p1__506$15.out"], + ["lshr_548_506_549.in1","const_p1__506$17.out"], + ["lshr_556_506_557.in1","const_p1__506$19.out"], + ["lshr_559_506_560.in1","const_p1__506$21.out"], + ["lshr_563_506_564.in1","const_p1__506$23.out"], + ["lshr_567_506_568.in1","const_p1__506$25.out"], + ["lshr_574_506_575.in1","const_p1__506$27.out"], + ["lshr_577_506_578.in1","const_p1__506$29.out"], + ["lshr_514_506_515.in1","const_p1__506$3.out"], + ["lshr_581_506_582.in1","const_p1__506$31.out"], + ["lshr_586_506_587.in1","const_p1__506$33.out"], + ["lshr_590_506_591.in1","const_p1__506$35.out"], + ["lshr_517_506_518.in1","const_p1__506$5.out"], + ["lshr_524_506_525.in1","const_p1__506$7.out"], + ["lshr_527_506_528.in1","const_p1__506$9.out"], + ["mux_502_534_593.sel","eq_5010_502.out"], + ["mux_504_533_r_r_stencil_2.sel","eq_5030_504.out"], + ["mux_504_584_592.sel","eq_5030_504.out"], + ["mux_512_515_518.in1","lshr_514_506_515.out"], + ["mux_512_515_518.in0","lshr_517_506_518.out"], + ["mux_522_525_528.in1","lshr_524_506_525.out"], + ["mux_522_525_528.in0","lshr_527_506_528.out"], + ["sub_509_532_533.in1","lshr_531_506_532.out"], + ["mux_543_546_549.in1","lshr_545_506_546.out"], + ["mux_543_546_549.in0","lshr_548_506_549.out"], + ["mux_554_557_560.in1","lshr_556_506_557.out"], + ["mux_554_557_560.in0","lshr_559_506_560.out"], + ["sub_551_564_565.in1","lshr_563_506_564.out"], + ["mux_572_575_578.in1","lshr_574_506_575.out"], + ["mux_572_575_578.in0","lshr_577_506_578.out"], + ["sub_569_582_583.in1","lshr_581_506_582.out"], + ["sub_588_591_592.in1","lshr_590_506_591.out"], + ["mux_504_584_592.out","mux_502_534_593.in0"], + ["mux_504_533_r_r_stencil_2.out","mux_502_534_593.in1"], + ["self.out_demosaicked_1_stencil","mux_502_534_593.out"], + ["self.in2_r_r_stencil.1","mux_504_533_r_r_stencil_2.in0"], + ["sub_509_532_533.out","mux_504_533_r_r_stencil_2.in1"], + ["sub_588_591_592.out","mux_504_584_592.in0"], + ["mux_537_565_583.out","mux_504_584_592.in1"], + ["ult_510_511_512.out","mux_512_515_518.sel"], + ["ult_520_521_522.out","mux_522_525_528.sel"], + ["sub_569_582_583.out","mux_537_565_583.in0"], + ["sub_551_564_565.out","mux_537_565_583.in1"], + ["ult_535_536_537.out","mux_537_565_583.sel"], + ["ult_541_542_543.out","mux_543_546_549.sel"], + ["ult_552_553_554.out","mux_554_557_560.sel"], + ["ult_570_571_572.out","mux_572_575_578.sel"] + ] + }, + "hcompute_demosaicked_1_stencil_1":{ + "type":["Record",[ + ["out_demosaicked_1_stencil",["Array",16,"Bit"]], + ["in0_g_gb_stencil",["Array",3,["Array",16,"BitIn"]]], + ["in1_g_gr_stencil",["Array",3,["Array",16,"BitIn"]]], + ["demosaicked_1_s0_x_1",["Array",16,"BitIn"]], + ["demosaicked_1_s0_y_1",["Array",16,"BitIn"]] + ]], + "instances":{ + "absd_g_gb_stencil_7_g_gb_stencil_8_809":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_9_g_gb_stencil_8_820":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_8_g_gr_stencil_7_808":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_9_g_gr_stencil_7_821":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "add_811_812_813":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_815_812_816":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_823_812_824":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_826_812_827":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_8_g_gb_stencil_7_815":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_9_g_gb_stencil_8_823":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_7_g_gr_stencil_8_811":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_9_g_gr_stencil_7_826":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_x_1_803_806":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_y_1_803_804":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "const_p0_0$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p0_0$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1__803":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__803$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812$6":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__812$7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "eq_8040_805":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "eq_8060_807":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "lshr_813_812_814":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_816_812_817":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_824_812_825":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_827_812_828":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "mux_805_819_830":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_807_829_g_gb_stencil_8":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_807_g_gr_stencil_7_818":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_810_814_817":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_822_825_828":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "ult_808_809_810":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_820_821_822":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_g_gb_stencil.0","absd_g_gb_stencil_7_g_gb_stencil_8_809.in0"], + ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_7_g_gb_stencil_8_809.in1"], + ["ult_808_809_810.in1","absd_g_gb_stencil_7_g_gb_stencil_8_809.out"], + ["self.in0_g_gb_stencil.2","absd_g_gb_stencil_9_g_gb_stencil_8_820.in0"], + ["self.in0_g_gb_stencil.1","absd_g_gb_stencil_9_g_gb_stencil_8_820.in1"], + ["ult_820_821_822.in0","absd_g_gb_stencil_9_g_gb_stencil_8_820.out"], + ["self.in1_g_gr_stencil.1","absd_g_gr_stencil_8_g_gr_stencil_7_808.in0"], + ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_8_g_gr_stencil_7_808.in1"], + ["ult_808_809_810.in0","absd_g_gr_stencil_8_g_gr_stencil_7_808.out"], + ["self.in1_g_gr_stencil.2","absd_g_gr_stencil_9_g_gr_stencil_7_821.in0"], + ["self.in1_g_gr_stencil.0","absd_g_gr_stencil_9_g_gr_stencil_7_821.in1"], + ["ult_820_821_822.in1","absd_g_gr_stencil_9_g_gr_stencil_7_821.out"], + ["add_g_gr_stencil_7_g_gr_stencil_8_811.out","add_811_812_813.in0"], + ["const_p1__812.out","add_811_812_813.in1"], + ["lshr_813_812_814.in0","add_811_812_813.out"], + ["add_g_gb_stencil_8_g_gb_stencil_7_815.out","add_815_812_816.in0"], + ["const_p1__812$2.out","add_815_812_816.in1"], + ["lshr_816_812_817.in0","add_815_812_816.out"], + ["add_g_gb_stencil_9_g_gb_stencil_8_823.out","add_823_812_824.in0"], + ["const_p1__812$4.out","add_823_812_824.in1"], + ["lshr_824_812_825.in0","add_823_812_824.out"], + ["add_g_gr_stencil_9_g_gr_stencil_7_826.out","add_826_812_827.in0"], + ["const_p1__812$6.out","add_826_812_827.in1"], + ["lshr_827_812_828.in0","add_826_812_827.out"], + ["self.in0_g_gb_stencil.1","add_g_gb_stencil_8_g_gb_stencil_7_815.in0"], + ["self.in0_g_gb_stencil.0","add_g_gb_stencil_8_g_gb_stencil_7_815.in1"], + ["self.in0_g_gb_stencil.2","add_g_gb_stencil_9_g_gb_stencil_8_823.in0"], + ["self.in0_g_gb_stencil.1","add_g_gb_stencil_9_g_gb_stencil_8_823.in1"], + ["self.in1_g_gr_stencil.0","add_g_gr_stencil_7_g_gr_stencil_8_811.in0"], + ["self.in1_g_gr_stencil.1","add_g_gr_stencil_7_g_gr_stencil_8_811.in1"], + ["self.in1_g_gr_stencil.2","add_g_gr_stencil_9_g_gr_stencil_7_826.in0"], + ["self.in1_g_gr_stencil.0","add_g_gr_stencil_9_g_gr_stencil_7_826.in1"], + ["self.demosaicked_1_s0_x_1","and_demosaicked_1_s0_x_1_803_806.in0"], + ["const_p1__803$1.out","and_demosaicked_1_s0_x_1_803_806.in1"], + ["eq_8060_807.in0","and_demosaicked_1_s0_x_1_803_806.out"], + ["self.demosaicked_1_s0_y_1","and_demosaicked_1_s0_y_1_803_804.in0"], + ["const_p1__803.out","and_demosaicked_1_s0_y_1_803_804.in1"], + ["eq_8040_805.in0","and_demosaicked_1_s0_y_1_803_804.out"], + ["eq_8040_805.in1","const_p0_0$2.out"], + ["eq_8060_807.in1","const_p0_0$3.out"], + ["lshr_813_812_814.in1","const_p1__812$1.out"], + ["lshr_816_812_817.in1","const_p1__812$3.out"], + ["lshr_824_812_825.in1","const_p1__812$5.out"], + ["lshr_827_812_828.in1","const_p1__812$7.out"], + ["mux_805_819_830.sel","eq_8040_805.out"], + ["mux_807_829_g_gb_stencil_8.sel","eq_8060_807.out"], + ["mux_807_g_gr_stencil_7_818.sel","eq_8060_807.out"], + ["mux_810_814_817.in1","lshr_813_812_814.out"], + ["mux_810_814_817.in0","lshr_816_812_817.out"], + ["mux_822_825_828.in1","lshr_824_812_825.out"], + ["mux_822_825_828.in0","lshr_827_812_828.out"], + ["mux_807_829_g_gb_stencil_8.out","mux_805_819_830.in0"], + ["mux_807_g_gr_stencil_7_818.out","mux_805_819_830.in1"], + ["self.out_demosaicked_1_stencil","mux_805_819_830.out"], + ["self.in0_g_gb_stencil.1","mux_807_829_g_gb_stencil_8.in0"], + ["mux_822_825_828.out","mux_807_829_g_gb_stencil_8.in1"], + ["mux_810_814_817.out","mux_807_g_gr_stencil_7_818.in0"], + ["self.in1_g_gr_stencil.0","mux_807_g_gr_stencil_7_818.in1"], + ["ult_808_809_810.out","mux_810_814_817.sel"], + ["ult_820_821_822.out","mux_822_825_828.sel"] + ] + }, + "hcompute_demosaicked_1_stencil_2":{ + "type":["Record",[ + ["out_demosaicked_1_stencil",["Array",16,"Bit"]], + ["in0_b_b_stencil",["Array",4,["Array",16,"BitIn"]]], + ["in1_g_gb_stencil",["Array",6,["Array",16,"BitIn"]]], + ["in2_g_gr_stencil",["Array",6,["Array",16,"BitIn"]]], + ["demosaicked_1_s0_x_2",["Array",16,"BitIn"]], + ["demosaicked_1_s0_y_2",["Array",16,"BitIn"]] + ]], + "instances":{ + "absd_b_b_stencil_2_b_b_stencil_3_1064":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_b_b_stencil_4_b_b_stencil_1_1065":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_10_g_gb_stencil_11_1040":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_11_g_gb_stencil_15_1099":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_12_g_gb_stencil_13_1050":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_13_g_gb_stencil_11_1071":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gb_stencil_13_g_gb_stencil_14_1081":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_10_g_gr_stencil_12_1051":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_11_g_gr_stencil_10_1041":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_13_g_gr_stencil_10_1070":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_13_g_gr_stencil_14_1082":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "absd_g_gr_stencil_15_g_gr_stencil_13_1100":{ + "genref":"commonlib.absd", + "genargs":{"width":["Int",16]} + }, + "add_1035_1036_1037":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1043_1036_1044":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1046_1036_1047":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1049_1059_1060":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1049_1108_1119":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1053_1036_1054":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1056_1036_1057":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1059_1108_1109":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1060_1036_1061":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1067_1036_1068":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1069_1079_1080":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1073_1036_1074":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1076_1036_1077":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1084_1036_1085":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1087_1036_1088":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1090_1049_1091":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1091_1036_1092":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1095_1036_1096":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1097_1079_1098":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1102_1036_1103":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1105_1036_1106":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1109_1036_1110":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1115_1036_1116":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_1119_1036_1120":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_b_b_stencil_1_b_b_stencil_2_1035":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_b_b_stencil_1_b_b_stencil_4_1095":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_b_b_stencil_3_b_b_stencil_2_1067":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_b_b_stencil_4_b_b_stencil_2_1115":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_10_g_gb_stencil_11_1043":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_11_1117_1118":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_11_g_gb_stencil_13_1076":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_12_g_gb_stencil_13_1053":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_14_g_gb_stencil_13_1084":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gb_stencil_15_g_gb_stencil_11_1102":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_10_1038_1039":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_10_g_gr_stencil_13_1073":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_11_g_gr_stencil_10_1046":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_12_g_gr_stencil_10_1056":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_14_g_gr_stencil_13_1087":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_g_gr_stencil_15_g_gr_stencil_13_1105":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_x_2_1030_1033":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "and_demosaicked_1_s0_y_2_1030_1031":{ + "genref":"coreir.and", + "genargs":{"width":["Int",16]} + }, + "const_p0_0$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p0_0$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1__1030":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1030$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$10":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$11":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$12":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$13":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$14":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$15":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$17":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$18":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$19":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$20":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$21":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$22":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$23":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$24":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$25":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$26":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$27":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$28":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$29":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$30":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$31":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$32":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$33":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$34":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$35":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$6":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$8":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p1__1036$9":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "eq_10310_1032":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "eq_10330_1034":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "lshr_1037_1036_1038":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1044_1036_1045":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1047_1036_1048":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1054_1036_1055":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1057_1036_1058":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1061_1036_1062":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1068_1036_1069":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1074_1036_1075":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1077_1036_1078":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1085_1036_1086":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1088_1036_1089":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1092_1036_1093":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1096_1036_1097":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1103_1036_1104":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1106_1036_1107":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1110_1036_1111":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1116_1036_1117":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_1120_1036_1121":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "mux_1032_1114_1123":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1034_1063_1113":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1034_b_b_stencil_2_1122":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1042_1045_1048":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1052_1055_1058":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1066_1094_1112":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1072_1075_1078":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1083_1086_1089":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "mux_1101_1104_1107":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "sub_1039_1062_1063":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1080_1093_1094":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1098_1111_1112":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_1118_1121_1122":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "ult_1040_1041_1042":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_1050_1051_1052":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_1064_1065_1066":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_1070_1071_1072":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_1081_1082_1083":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + }, + "ult_1099_1100_1101":{ + "genref":"coreir.ult", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_b_b_stencil.1","absd_b_b_stencil_2_b_b_stencil_3_1064.in0"], + ["self.in0_b_b_stencil.2","absd_b_b_stencil_2_b_b_stencil_3_1064.in1"], + ["ult_1064_1065_1066.in0","absd_b_b_stencil_2_b_b_stencil_3_1064.out"], + ["self.in0_b_b_stencil.3","absd_b_b_stencil_4_b_b_stencil_1_1065.in0"], + ["self.in0_b_b_stencil.0","absd_b_b_stencil_4_b_b_stencil_1_1065.in1"], + ["ult_1064_1065_1066.in1","absd_b_b_stencil_4_b_b_stencil_1_1065.out"], + ["self.in1_g_gb_stencil.0","absd_g_gb_stencil_10_g_gb_stencil_11_1040.in0"], + ["self.in1_g_gb_stencil.1","absd_g_gb_stencil_10_g_gb_stencil_11_1040.in1"], + ["ult_1040_1041_1042.in0","absd_g_gb_stencil_10_g_gb_stencil_11_1040.out"], + ["self.in1_g_gb_stencil.1","absd_g_gb_stencil_11_g_gb_stencil_15_1099.in0"], + ["self.in1_g_gb_stencil.5","absd_g_gb_stencil_11_g_gb_stencil_15_1099.in1"], + ["ult_1099_1100_1101.in0","absd_g_gb_stencil_11_g_gb_stencil_15_1099.out"], + ["self.in1_g_gb_stencil.2","absd_g_gb_stencil_12_g_gb_stencil_13_1050.in0"], + ["self.in1_g_gb_stencil.3","absd_g_gb_stencil_12_g_gb_stencil_13_1050.in1"], + ["ult_1050_1051_1052.in0","absd_g_gb_stencil_12_g_gb_stencil_13_1050.out"], + ["self.in1_g_gb_stencil.3","absd_g_gb_stencil_13_g_gb_stencil_11_1071.in0"], + ["self.in1_g_gb_stencil.1","absd_g_gb_stencil_13_g_gb_stencil_11_1071.in1"], + ["ult_1070_1071_1072.in1","absd_g_gb_stencil_13_g_gb_stencil_11_1071.out"], + ["self.in1_g_gb_stencil.3","absd_g_gb_stencil_13_g_gb_stencil_14_1081.in0"], + ["self.in1_g_gb_stencil.4","absd_g_gb_stencil_13_g_gb_stencil_14_1081.in1"], + ["ult_1081_1082_1083.in0","absd_g_gb_stencil_13_g_gb_stencil_14_1081.out"], + ["self.in2_g_gr_stencil.0","absd_g_gr_stencil_10_g_gr_stencil_12_1051.in0"], + ["self.in2_g_gr_stencil.2","absd_g_gr_stencil_10_g_gr_stencil_12_1051.in1"], + ["ult_1050_1051_1052.in1","absd_g_gr_stencil_10_g_gr_stencil_12_1051.out"], + ["self.in2_g_gr_stencil.1","absd_g_gr_stencil_11_g_gr_stencil_10_1041.in0"], + ["self.in2_g_gr_stencil.0","absd_g_gr_stencil_11_g_gr_stencil_10_1041.in1"], + ["ult_1040_1041_1042.in1","absd_g_gr_stencil_11_g_gr_stencil_10_1041.out"], + ["self.in2_g_gr_stencil.3","absd_g_gr_stencil_13_g_gr_stencil_10_1070.in0"], + ["self.in2_g_gr_stencil.0","absd_g_gr_stencil_13_g_gr_stencil_10_1070.in1"], + ["ult_1070_1071_1072.in0","absd_g_gr_stencil_13_g_gr_stencil_10_1070.out"], + ["self.in2_g_gr_stencil.3","absd_g_gr_stencil_13_g_gr_stencil_14_1082.in0"], + ["self.in2_g_gr_stencil.4","absd_g_gr_stencil_13_g_gr_stencil_14_1082.in1"], + ["ult_1081_1082_1083.in1","absd_g_gr_stencil_13_g_gr_stencil_14_1082.out"], + ["self.in2_g_gr_stencil.5","absd_g_gr_stencil_15_g_gr_stencil_13_1100.in0"], + ["self.in2_g_gr_stencil.3","absd_g_gr_stencil_15_g_gr_stencil_13_1100.in1"], + ["ult_1099_1100_1101.in1","absd_g_gr_stencil_15_g_gr_stencil_13_1100.out"], + ["add_b_b_stencil_1_b_b_stencil_2_1035.out","add_1035_1036_1037.in0"], + ["const_p1__1036.out","add_1035_1036_1037.in1"], + ["lshr_1037_1036_1038.in0","add_1035_1036_1037.out"], + ["add_g_gb_stencil_10_g_gb_stencil_11_1043.out","add_1043_1036_1044.in0"], + ["const_p1__1036$2.out","add_1043_1036_1044.in1"], + ["lshr_1044_1036_1045.in0","add_1043_1036_1044.out"], + ["add_g_gr_stencil_11_g_gr_stencil_10_1046.out","add_1046_1036_1047.in0"], + ["const_p1__1036$4.out","add_1046_1036_1047.in1"], + ["lshr_1047_1036_1048.in0","add_1046_1036_1047.out"], + ["mux_1042_1045_1048.out","add_1049_1059_1060.in0"], + ["mux_1052_1055_1058.out","add_1049_1059_1060.in1"], + ["add_1060_1036_1061.in0","add_1049_1059_1060.out"], + ["mux_1042_1045_1048.out","add_1049_1108_1119.in0"], + ["mux_1101_1104_1107.out","add_1049_1108_1119.in1"], + ["add_1119_1036_1120.in0","add_1049_1108_1119.out"], + ["add_g_gb_stencil_12_g_gb_stencil_13_1053.out","add_1053_1036_1054.in0"], + ["const_p1__1036$6.out","add_1053_1036_1054.in1"], + ["lshr_1054_1036_1055.in0","add_1053_1036_1054.out"], + ["add_g_gr_stencil_12_g_gr_stencil_10_1056.out","add_1056_1036_1057.in0"], + ["const_p1__1036$8.out","add_1056_1036_1057.in1"], + ["lshr_1057_1036_1058.in0","add_1056_1036_1057.out"], + ["mux_1052_1055_1058.out","add_1059_1108_1109.in0"], + ["mux_1101_1104_1107.out","add_1059_1108_1109.in1"], + ["add_1109_1036_1110.in0","add_1059_1108_1109.out"], + ["const_p1__1036$10.out","add_1060_1036_1061.in1"], + ["lshr_1061_1036_1062.in0","add_1060_1036_1061.out"], + ["add_b_b_stencil_3_b_b_stencil_2_1067.out","add_1067_1036_1068.in0"], + ["const_p1__1036$12.out","add_1067_1036_1068.in1"], + ["lshr_1068_1036_1069.in0","add_1067_1036_1068.out"], + ["lshr_1068_1036_1069.out","add_1069_1079_1080.in0"], + ["mux_1072_1075_1078.out","add_1069_1079_1080.in1"], + ["sub_1080_1093_1094.in0","add_1069_1079_1080.out"], + ["add_g_gr_stencil_10_g_gr_stencil_13_1073.out","add_1073_1036_1074.in0"], + ["const_p1__1036$14.out","add_1073_1036_1074.in1"], + ["lshr_1074_1036_1075.in0","add_1073_1036_1074.out"], + ["add_g_gb_stencil_11_g_gb_stencil_13_1076.out","add_1076_1036_1077.in0"], + ["const_p1__1036$16.out","add_1076_1036_1077.in1"], + ["lshr_1077_1036_1078.in0","add_1076_1036_1077.out"], + ["add_g_gb_stencil_14_g_gb_stencil_13_1084.out","add_1084_1036_1085.in0"], + ["const_p1__1036$18.out","add_1084_1036_1085.in1"], + ["lshr_1085_1036_1086.in0","add_1084_1036_1085.out"], + ["add_g_gr_stencil_14_g_gr_stencil_13_1087.out","add_1087_1036_1088.in0"], + ["const_p1__1036$20.out","add_1087_1036_1088.in1"], + ["lshr_1088_1036_1089.in0","add_1087_1036_1088.out"], + ["mux_1083_1086_1089.out","add_1090_1049_1091.in0"], + ["mux_1042_1045_1048.out","add_1090_1049_1091.in1"], + ["add_1091_1036_1092.in0","add_1090_1049_1091.out"], + ["const_p1__1036$22.out","add_1091_1036_1092.in1"], + ["lshr_1092_1036_1093.in0","add_1091_1036_1092.out"], + ["add_b_b_stencil_1_b_b_stencil_4_1095.out","add_1095_1036_1096.in0"], + ["const_p1__1036$24.out","add_1095_1036_1096.in1"], + ["lshr_1096_1036_1097.in0","add_1095_1036_1096.out"], + ["lshr_1096_1036_1097.out","add_1097_1079_1098.in0"], + ["mux_1072_1075_1078.out","add_1097_1079_1098.in1"], + ["sub_1098_1111_1112.in0","add_1097_1079_1098.out"], + ["add_g_gb_stencil_15_g_gb_stencil_11_1102.out","add_1102_1036_1103.in0"], + ["const_p1__1036$26.out","add_1102_1036_1103.in1"], + ["lshr_1103_1036_1104.in0","add_1102_1036_1103.out"], + ["add_g_gr_stencil_15_g_gr_stencil_13_1105.out","add_1105_1036_1106.in0"], + ["const_p1__1036$28.out","add_1105_1036_1106.in1"], + ["lshr_1106_1036_1107.in0","add_1105_1036_1106.out"], + ["const_p1__1036$30.out","add_1109_1036_1110.in1"], + ["lshr_1110_1036_1111.in0","add_1109_1036_1110.out"], + ["add_b_b_stencil_4_b_b_stencil_2_1115.out","add_1115_1036_1116.in0"], + ["const_p1__1036$32.out","add_1115_1036_1116.in1"], + ["lshr_1116_1036_1117.in0","add_1115_1036_1116.out"], + ["const_p1__1036$34.out","add_1119_1036_1120.in1"], + ["lshr_1120_1036_1121.in0","add_1119_1036_1120.out"], + ["self.in0_b_b_stencil.0","add_b_b_stencil_1_b_b_stencil_2_1035.in0"], + ["self.in0_b_b_stencil.1","add_b_b_stencil_1_b_b_stencil_2_1035.in1"], + ["self.in0_b_b_stencil.0","add_b_b_stencil_1_b_b_stencil_4_1095.in0"], + ["self.in0_b_b_stencil.3","add_b_b_stencil_1_b_b_stencil_4_1095.in1"], + ["self.in0_b_b_stencil.2","add_b_b_stencil_3_b_b_stencil_2_1067.in0"], + ["self.in0_b_b_stencil.1","add_b_b_stencil_3_b_b_stencil_2_1067.in1"], + ["self.in0_b_b_stencil.3","add_b_b_stencil_4_b_b_stencil_2_1115.in0"], + ["self.in0_b_b_stencil.1","add_b_b_stencil_4_b_b_stencil_2_1115.in1"], + ["self.in1_g_gb_stencil.0","add_g_gb_stencil_10_g_gb_stencil_11_1043.in0"], + ["self.in1_g_gb_stencil.1","add_g_gb_stencil_10_g_gb_stencil_11_1043.in1"], + ["self.in1_g_gb_stencil.1","add_g_gb_stencil_11_1117_1118.in0"], + ["lshr_1116_1036_1117.out","add_g_gb_stencil_11_1117_1118.in1"], + ["sub_1118_1121_1122.in0","add_g_gb_stencil_11_1117_1118.out"], + ["self.in1_g_gb_stencil.1","add_g_gb_stencil_11_g_gb_stencil_13_1076.in0"], + ["self.in1_g_gb_stencil.3","add_g_gb_stencil_11_g_gb_stencil_13_1076.in1"], + ["self.in1_g_gb_stencil.2","add_g_gb_stencil_12_g_gb_stencil_13_1053.in0"], + ["self.in1_g_gb_stencil.3","add_g_gb_stencil_12_g_gb_stencil_13_1053.in1"], + ["self.in1_g_gb_stencil.4","add_g_gb_stencil_14_g_gb_stencil_13_1084.in0"], + ["self.in1_g_gb_stencil.3","add_g_gb_stencil_14_g_gb_stencil_13_1084.in1"], + ["self.in1_g_gb_stencil.5","add_g_gb_stencil_15_g_gb_stencil_11_1102.in0"], + ["self.in1_g_gb_stencil.1","add_g_gb_stencil_15_g_gb_stencil_11_1102.in1"], + ["self.in2_g_gr_stencil.0","add_g_gr_stencil_10_1038_1039.in0"], + ["lshr_1037_1036_1038.out","add_g_gr_stencil_10_1038_1039.in1"], + ["sub_1039_1062_1063.in0","add_g_gr_stencil_10_1038_1039.out"], + ["self.in2_g_gr_stencil.0","add_g_gr_stencil_10_g_gr_stencil_13_1073.in0"], + ["self.in2_g_gr_stencil.3","add_g_gr_stencil_10_g_gr_stencil_13_1073.in1"], + ["self.in2_g_gr_stencil.1","add_g_gr_stencil_11_g_gr_stencil_10_1046.in0"], + ["self.in2_g_gr_stencil.0","add_g_gr_stencil_11_g_gr_stencil_10_1046.in1"], + ["self.in2_g_gr_stencil.2","add_g_gr_stencil_12_g_gr_stencil_10_1056.in0"], + ["self.in2_g_gr_stencil.0","add_g_gr_stencil_12_g_gr_stencil_10_1056.in1"], + ["self.in2_g_gr_stencil.4","add_g_gr_stencil_14_g_gr_stencil_13_1087.in0"], + ["self.in2_g_gr_stencil.3","add_g_gr_stencil_14_g_gr_stencil_13_1087.in1"], + ["self.in2_g_gr_stencil.5","add_g_gr_stencil_15_g_gr_stencil_13_1105.in0"], + ["self.in2_g_gr_stencil.3","add_g_gr_stencil_15_g_gr_stencil_13_1105.in1"], + ["self.demosaicked_1_s0_x_2","and_demosaicked_1_s0_x_2_1030_1033.in0"], + ["const_p1__1030$1.out","and_demosaicked_1_s0_x_2_1030_1033.in1"], + ["eq_10330_1034.in0","and_demosaicked_1_s0_x_2_1030_1033.out"], + ["self.demosaicked_1_s0_y_2","and_demosaicked_1_s0_y_2_1030_1031.in0"], + ["const_p1__1030.out","and_demosaicked_1_s0_y_2_1030_1031.in1"], + ["eq_10310_1032.in0","and_demosaicked_1_s0_y_2_1030_1031.out"], + ["eq_10310_1032.in1","const_p0_0$4.out"], + ["eq_10330_1034.in1","const_p0_0$5.out"], + ["lshr_1037_1036_1038.in1","const_p1__1036$1.out"], + ["lshr_1061_1036_1062.in1","const_p1__1036$11.out"], + ["lshr_1068_1036_1069.in1","const_p1__1036$13.out"], + ["lshr_1074_1036_1075.in1","const_p1__1036$15.out"], + ["lshr_1077_1036_1078.in1","const_p1__1036$17.out"], + ["lshr_1085_1036_1086.in1","const_p1__1036$19.out"], + ["lshr_1088_1036_1089.in1","const_p1__1036$21.out"], + ["lshr_1092_1036_1093.in1","const_p1__1036$23.out"], + ["lshr_1096_1036_1097.in1","const_p1__1036$25.out"], + ["lshr_1103_1036_1104.in1","const_p1__1036$27.out"], + ["lshr_1106_1036_1107.in1","const_p1__1036$29.out"], + ["lshr_1044_1036_1045.in1","const_p1__1036$3.out"], + ["lshr_1110_1036_1111.in1","const_p1__1036$31.out"], + ["lshr_1116_1036_1117.in1","const_p1__1036$33.out"], + ["lshr_1120_1036_1121.in1","const_p1__1036$35.out"], + ["lshr_1047_1036_1048.in1","const_p1__1036$5.out"], + ["lshr_1054_1036_1055.in1","const_p1__1036$7.out"], + ["lshr_1057_1036_1058.in1","const_p1__1036$9.out"], + ["mux_1032_1114_1123.sel","eq_10310_1032.out"], + ["mux_1034_1063_1113.sel","eq_10330_1034.out"], + ["mux_1034_b_b_stencil_2_1122.sel","eq_10330_1034.out"], + ["mux_1042_1045_1048.in1","lshr_1044_1036_1045.out"], + ["mux_1042_1045_1048.in0","lshr_1047_1036_1048.out"], + ["mux_1052_1055_1058.in1","lshr_1054_1036_1055.out"], + ["mux_1052_1055_1058.in0","lshr_1057_1036_1058.out"], + ["sub_1039_1062_1063.in1","lshr_1061_1036_1062.out"], + ["mux_1072_1075_1078.in1","lshr_1074_1036_1075.out"], + ["mux_1072_1075_1078.in0","lshr_1077_1036_1078.out"], + ["mux_1083_1086_1089.in1","lshr_1085_1036_1086.out"], + ["mux_1083_1086_1089.in0","lshr_1088_1036_1089.out"], + ["sub_1080_1093_1094.in1","lshr_1092_1036_1093.out"], + ["mux_1101_1104_1107.in1","lshr_1103_1036_1104.out"], + ["mux_1101_1104_1107.in0","lshr_1106_1036_1107.out"], + ["sub_1098_1111_1112.in1","lshr_1110_1036_1111.out"], + ["sub_1118_1121_1122.in1","lshr_1120_1036_1121.out"], + ["mux_1034_b_b_stencil_2_1122.out","mux_1032_1114_1123.in0"], + ["mux_1034_1063_1113.out","mux_1032_1114_1123.in1"], + ["self.out_demosaicked_1_stencil","mux_1032_1114_1123.out"], + ["mux_1066_1094_1112.out","mux_1034_1063_1113.in0"], + ["sub_1039_1062_1063.out","mux_1034_1063_1113.in1"], + ["sub_1118_1121_1122.out","mux_1034_b_b_stencil_2_1122.in0"], + ["self.in0_b_b_stencil.1","mux_1034_b_b_stencil_2_1122.in1"], + ["ult_1040_1041_1042.out","mux_1042_1045_1048.sel"], + ["ult_1050_1051_1052.out","mux_1052_1055_1058.sel"], + ["sub_1098_1111_1112.out","mux_1066_1094_1112.in0"], + ["sub_1080_1093_1094.out","mux_1066_1094_1112.in1"], + ["ult_1064_1065_1066.out","mux_1066_1094_1112.sel"], + ["ult_1070_1071_1072.out","mux_1072_1075_1078.sel"], + ["ult_1081_1082_1083.out","mux_1083_1086_1089.sel"], + ["ult_1099_1100_1101.out","mux_1101_1104_1107.sel"] + ] + }, + "hcompute_denoised_1_stencil":{ + "type":["Record",[ + ["out_denoised_1_stencil",["Array",16,"Bit"]], + ["in0_hw_input_global_wrapper_stencil",["Array",5,["Array",16,"BitIn"]]] + ]], + "instances":{ + "umax_hw_input_global_wrapper_stencil_2_326_327":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umax_hw_input_global_wrapper_stencil_3_325_326":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325":{ + "genref":"commonlib.umax", + "genargs":{"width":["Int",16]} + }, + "umin_hw_input_global_wrapper_stencil_1_327_328":{ + "genref":"commonlib.umin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["umin_hw_input_global_wrapper_stencil_1_327_328.in0","self.in0_hw_input_global_wrapper_stencil.0"], + ["umax_hw_input_global_wrapper_stencil_2_326_327.in0","self.in0_hw_input_global_wrapper_stencil.1"], + ["umax_hw_input_global_wrapper_stencil_3_325_326.in0","self.in0_hw_input_global_wrapper_stencil.2"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325.in0","self.in0_hw_input_global_wrapper_stencil.3"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325.in1","self.in0_hw_input_global_wrapper_stencil.4"], + ["umin_hw_input_global_wrapper_stencil_1_327_328.out","self.out_denoised_1_stencil"], + ["umax_hw_input_global_wrapper_stencil_3_325_326.out","umax_hw_input_global_wrapper_stencil_2_326_327.in1"], + ["umin_hw_input_global_wrapper_stencil_1_327_328.in1","umax_hw_input_global_wrapper_stencil_2_326_327.out"], + ["umax_hw_input_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_5_325.out","umax_hw_input_global_wrapper_stencil_3_325_326.in1"] + ] + }, + "hcompute_g_gb_stencil":{ + "type":["Record",[ + ["out_g_gb_stencil",["Array",16,"Bit"]], + ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_g_gb_stencil","self.in0_denoised_1_stencil.0"] + ] + }, + "hcompute_g_gr_stencil":{ + "type":["Record",[ + ["out_g_gr_stencil",["Array",16,"Bit"]], + ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_g_gr_stencil","self.in0_denoised_1_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_curved_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_curved_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_1":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_curved_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_curved_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_2":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_curved_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_curved_stencil.0"] + ] + }, + "hcompute_r_r_stencil":{ + "type":["Record",[ + ["out_r_r_stencil",["Array",16,"Bit"]], + ["in0_denoised_1_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_r_r_stencil","self.in0_denoised_1_stencil.0"] + ] + } + } + } +} +} diff --git a/examples/clockwork/conv_3_3_compute.json b/examples/clockwork/conv_3_3_compute.json index 0c1d442..72317c8 100644 --- a/examples/clockwork/conv_3_3_compute.json +++ b/examples/clockwork/conv_3_3_compute.json @@ -7,257 +7,451 @@ ["out_conv_stencil",["Array",16,"Bit"]] ]], "instances":{ - "const_p0__667":{ + "const_p0__258":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0000"]} } }, "connections":[ - ["self.out_conv_stencil","const_p0__667.out"] + ["self.out_conv_stencil","const_p0__258.out"] ] }, "hcompute_conv_stencil_1":{ "type":["Record",[ ["out_conv_stencil",["Array",16,"Bit"]], ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ["in1_hw_input_global_wrapper_stencil",["Array",9,["Array",16,"BitIn"]]] ]], "instances":{ - "add_conv_stencil_1_671_672":{ + "reg_8_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8_3":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8_4":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8_5":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8_6":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8_7":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8_8":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_3":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_4":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_5":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_6":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_7":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_8in_8":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_7_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_7_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_7_3":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_7_4":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_7_5":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_7_6":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_7_7":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_6_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_6_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_6_3":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_6_4":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_6_5":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_6_6":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_5_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_5_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_5_3":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_5_4":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_5_5":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_4_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_4_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_4_3":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_4_4":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_3_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_3_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_3_3":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_2_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_2_2":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "reg_1_1":{ + "genref":"mantle.reg", + "genargs":{"has_clr":["Bool",false], "has_en":["Bool",false], "has_rst":["Bool",false], "width":["Int",16]}, + "modargs":{"init":[["BitVector",16],"16'h0000"]} + }, + "add_288_312_313":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_1_hw_input_stencil_1_671":{ - "genref":"coreir.mul", + "add_290_310_311":{ + "genref":"coreir.add", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_1_671_672.in0"], - ["mul_hw_kernel_stencil_1_hw_input_stencil_1_671.out","add_conv_stencil_1_671_672.in1"], - ["self.out_conv_stencil","add_conv_stencil_1_671_672.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_1_hw_input_stencil_1_671.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_1_hw_input_stencil_1_671.in1"] - ] - }, - "hcompute_conv_stencil_2":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_2_684_685":{ + }, + "add_292_309_310":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_2_hw_input_stencil_2_684":{ - "genref":"coreir.mul", + "add_294_308_309":{ + "genref":"coreir.add", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_2_684_685.in0"], - ["mul_hw_kernel_stencil_2_hw_input_stencil_2_684.out","add_conv_stencil_2_684_685.in1"], - ["self.out_conv_stencil","add_conv_stencil_2_684_685.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_2_hw_input_stencil_2_684.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_2_hw_input_stencil_2_684.in1"] - ] - }, - "hcompute_conv_stencil_3":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_3_699_700":{ + }, + "add_296_307_308":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_3_hw_input_stencil_3_699":{ - "genref":"coreir.mul", + "add_298_306_307":{ + "genref":"coreir.add", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_3_699_700.in0"], - ["mul_hw_kernel_stencil_3_hw_input_stencil_3_699.out","add_conv_stencil_3_699_700.in1"], - ["self.out_conv_stencil","add_conv_stencil_3_699_700.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_3_hw_input_stencil_3_699.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_3_hw_input_stencil_3_699.in1"] - ] - }, - "hcompute_conv_stencil_4":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_4_714_715":{ + }, + "add_300_305_306":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_4_hw_input_stencil_4_714":{ - "genref":"coreir.mul", + "add_302_304_305":{ + "genref":"coreir.add", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_4_714_715.in0"], - ["mul_hw_kernel_stencil_4_hw_input_stencil_4_714.out","add_conv_stencil_4_714_715.in1"], - ["self.out_conv_stencil","add_conv_stencil_4_714_715.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_4_hw_input_stencil_4_714.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_4_hw_input_stencil_4_714.in1"] - ] - }, - "hcompute_conv_stencil_5":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_5_729_730":{ + }, + "add_conv_stencil_1_311_312":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_5_hw_input_stencil_5_729":{ + "const_p11__287":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h000b"]} + }, + "const_p12__293":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h000c"]} + }, + "const_p13__299":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h000d"]} + }, + "const_p14__289":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h000e"]} + }, + "const_p16__303":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0010"]} + }, + "const_p17__291":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0011"]} + }, + "const_p18__297":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0012"]} + }, + "const_p19__301":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0013"]} + }, + "const_p255__295":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00ff"]} + }, + "mul_hw_input_global_wrapper_stencil_1_287_288":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_5_729_730.in0"], - ["mul_hw_kernel_stencil_5_hw_input_stencil_5_729.out","add_conv_stencil_5_729_730.in1"], - ["self.out_conv_stencil","add_conv_stencil_5_729_730.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_5_hw_input_stencil_5_729.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_5_hw_input_stencil_5_729.in1"] - ] - }, - "hcompute_conv_stencil_6":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_6_746_747":{ - "genref":"coreir.add", + }, + "mul_hw_input_global_wrapper_stencil_2_289_290":{ + "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_6_hw_input_stencil_6_746":{ + "mul_hw_input_global_wrapper_stencil_3_291_292":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_6_746_747.in0"], - ["mul_hw_kernel_stencil_6_hw_input_stencil_6_746.out","add_conv_stencil_6_746_747.in1"], - ["self.out_conv_stencil","add_conv_stencil_6_746_747.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_6_hw_input_stencil_6_746.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_6_hw_input_stencil_6_746.in1"] - ] - }, - "hcompute_conv_stencil_7":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_7_763_764":{ - "genref":"coreir.add", + }, + "mul_hw_input_global_wrapper_stencil_4_293_294":{ + "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_7_hw_input_stencil_7_763":{ + "mul_hw_input_global_wrapper_stencil_5_295_296":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_7_763_764.in0"], - ["mul_hw_kernel_stencil_7_hw_input_stencil_7_763.out","add_conv_stencil_7_763_764.in1"], - ["self.out_conv_stencil","add_conv_stencil_7_763_764.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_7_hw_input_stencil_7_763.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_7_hw_input_stencil_7_763.in1"] - ] - }, - "hcompute_conv_stencil_8":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_8_778_779":{ - "genref":"coreir.add", + }, + "mul_hw_input_global_wrapper_stencil_6_297_298":{ + "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_8_hw_input_stencil_8_778":{ + "mul_hw_input_global_wrapper_stencil_7_299_300":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_8_778_779.in0"], - ["mul_hw_kernel_stencil_8_hw_input_stencil_8_778.out","add_conv_stencil_8_778_779.in1"], - ["self.out_conv_stencil","add_conv_stencil_8_778_779.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_8_hw_input_stencil_8_778.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_8_hw_input_stencil_8_778.in1"] - ] - }, - "hcompute_conv_stencil_9":{ - "type":["Record",[ - ["out_conv_stencil",["Array",16,"Bit"]], - ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_conv_stencil_9_795_796":{ - "genref":"coreir.add", + }, + "mul_hw_input_global_wrapper_stencil_8_301_302":{ + "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_hw_kernel_stencil_9_hw_input_stencil_9_795":{ + "mul_hw_input_global_wrapper_stencil_9_303_304":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} } }, "connections":[ - ["self.in0_conv_stencil.0","add_conv_stencil_9_795_796.in0"], - ["mul_hw_kernel_stencil_9_hw_input_stencil_9_795.out","add_conv_stencil_9_795_796.in1"], - ["self.out_conv_stencil","add_conv_stencil_9_795_796.out"], - ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_9_hw_input_stencil_9_795.in0"], - ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_9_hw_input_stencil_9_795.in1"] - ] - }, - "hcompute_hw_input_stencil":{ - "type":["Record",[ - ["out_hw_input_stencil",["Array",16,"Bit"]], - ["in0_input_copy_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "connections":[ - ["self.out_hw_input_stencil","self.in0_input_copy_stencil.0"] + ["self.in0_conv_stencil.0","reg_8in_8.in"], + ["reg_8in_1.out", "add_conv_stencil_1_311_312.in0"], + ["reg_8in_1.in", "reg_8in_2.out"], + ["reg_8in_2.in", "reg_8in_3.out"], + ["reg_8in_3.in", "reg_8in_4.out"], + ["reg_8in_4.in", "reg_8in_5.out"], + ["reg_8in_5.in", "reg_8in_6.out"], + ["reg_8in_6.in", "reg_8in_7.out"], + ["reg_8in_7.in", "reg_8in_8.out"], + ["mul_hw_input_global_wrapper_stencil_1_287_288.out","reg_8_8.in"], + ["reg_8_1.out", "add_288_312_313.in0"], + ["reg_8_1.in", "reg_8_2.out"], + ["reg_8_2.in", "reg_8_3.out"], + ["reg_8_3.in", "reg_8_4.out"], + ["reg_8_4.in", "reg_8_5.out"], + ["reg_8_5.in", "reg_8_6.out"], + ["reg_8_6.in", "reg_8_7.out"], + ["reg_8_7.in", "reg_8_8.out"], + ["mul_hw_input_global_wrapper_stencil_2_289_290.out","reg_7_7.in"], + ["reg_7_1.out", "add_290_310_311.in0"], + ["reg_7_1.in", "reg_7_2.out"], + ["reg_7_2.in", "reg_7_3.out"], + ["reg_7_3.in", "reg_7_4.out"], + ["reg_7_4.in", "reg_7_5.out"], + ["reg_7_5.in", "reg_7_6.out"], + ["reg_7_6.in", "reg_7_7.out"], + ["mul_hw_input_global_wrapper_stencil_3_291_292.out","reg_6_6.in"], + ["reg_6_1.out", "add_292_309_310.in0"], + ["reg_6_1.in", "reg_6_2.out"], + ["reg_6_2.in", "reg_6_3.out"], + ["reg_6_3.in", "reg_6_4.out"], + ["reg_6_4.in", "reg_6_5.out"], + ["reg_6_5.in", "reg_6_6.out"], + ["mul_hw_input_global_wrapper_stencil_4_293_294.out","reg_5_5.in"], + ["reg_5_1.out", "add_294_308_309.in0"], + ["reg_5_1.in", "reg_5_2.out"], + ["reg_5_2.in", "reg_5_3.out"], + ["reg_5_3.in", "reg_5_4.out"], + ["reg_5_4.in", "reg_5_5.out"], + ["mul_hw_input_global_wrapper_stencil_5_295_296.out","reg_4_4.in"], + ["reg_4_1.out", "add_296_307_308.in0"], + ["reg_4_1.in", "reg_4_2.out"], + ["reg_4_2.in", "reg_4_3.out"], + ["reg_4_3.in", "reg_4_4.out"], + ["mul_hw_input_global_wrapper_stencil_6_297_298.out","reg_3_3.in"], + ["reg_3_1.out", "add_298_306_307.in0"], + ["reg_3_1.in", "reg_3_2.out"], + ["reg_3_2.in", "reg_3_3.out"], + ["mul_hw_input_global_wrapper_stencil_7_299_300.out","reg_2_2.in"], + ["reg_2_1.out", "add_300_305_306.in0"], + ["reg_2_1.in", "reg_2_2.out"], + ["add_conv_stencil_1_311_312.out","add_288_312_313.in1"], + ["self.out_conv_stencil","add_288_312_313.out"], + ["add_292_309_310.out","add_290_310_311.in1"], + ["add_conv_stencil_1_311_312.in1","add_290_310_311.out"], + ["add_294_308_309.out","add_292_309_310.in1"], + ["add_296_307_308.out","add_294_308_309.in1"], + ["add_298_306_307.out","add_296_307_308.in1"], + ["add_300_305_306.out","add_298_306_307.in1"], + ["add_302_304_305.out","add_300_305_306.in1"], + ["mul_hw_input_global_wrapper_stencil_8_301_302.out","add_302_304_305.in0"], + ["mul_hw_input_global_wrapper_stencil_9_303_304.out","add_302_304_305.in1"], + ["mul_hw_input_global_wrapper_stencil_1_287_288.in1","const_p11__287.out"], + ["mul_hw_input_global_wrapper_stencil_4_293_294.in1","const_p12__293.out"], + ["mul_hw_input_global_wrapper_stencil_7_299_300.in1","const_p13__299.out"], + ["mul_hw_input_global_wrapper_stencil_2_289_290.in1","const_p14__289.out"], + ["mul_hw_input_global_wrapper_stencil_9_303_304.in1","const_p16__303.out"], + ["mul_hw_input_global_wrapper_stencil_3_291_292.in1","const_p17__291.out"], + ["mul_hw_input_global_wrapper_stencil_6_297_298.in1","const_p18__297.out"], + ["mul_hw_input_global_wrapper_stencil_8_301_302.in1","const_p19__301.out"], + ["mul_hw_input_global_wrapper_stencil_5_295_296.in1","const_p255__295.out"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_hw_input_global_wrapper_stencil_1_287_288.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_hw_input_global_wrapper_stencil_2_289_290.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_hw_input_global_wrapper_stencil_3_291_292.in0"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_hw_input_global_wrapper_stencil_4_293_294.in0"], + ["self.in1_hw_input_global_wrapper_stencil.4","mul_hw_input_global_wrapper_stencil_5_295_296.in0"], + ["self.in1_hw_input_global_wrapper_stencil.5","mul_hw_input_global_wrapper_stencil_6_297_298.in0"], + ["self.in1_hw_input_global_wrapper_stencil.6","mul_hw_input_global_wrapper_stencil_7_299_300.in0"], + ["self.in1_hw_input_global_wrapper_stencil.7","mul_hw_input_global_wrapper_stencil_8_301_302.in0"], + ["self.in1_hw_input_global_wrapper_stencil.8","mul_hw_input_global_wrapper_stencil_9_303_304.in0"] ] }, - "hcompute_hw_kernel_stencil":{ + "hcompute_hw_input_global_wrapper_stencil":{ "type":["Record",[ - ["out_hw_kernel_stencil",["Array",16,"Bit"]], - ["in0_kernel_copy_stencil",["Array",1,["Array",16,"BitIn"]]] + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "connections":[ - ["self.out_hw_kernel_stencil","self.in0_kernel_copy_stencil.0"] + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] ] }, "hcompute_hw_output_stencil":{ diff --git a/examples/clockwork/counter_compute.json b/examples/clockwork/counter_compute.json new file mode 100644 index 0000000..4a516d4 --- /dev/null +++ b/examples/clockwork/counter_compute.json @@ -0,0 +1,59 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_hw_input_global_wrapper_stencil",["Array",1,["Array",16,"BitIn"]]], + ["hw_output_s0_x_xi",["Array",16,"BitIn"]], + ["hw_output_s0_y_yi",["Array",16,"BitIn"]] + ]], + "instances":{ + "add_265_266_267":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_hw_input_global_wrapper_stencil_1_264_265":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_hw_input_global_wrapper_stencil_1_267_268":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "rom_roma0":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",64], "width":["Int",16]}, + "modargs":{"init":["Json",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]} + }, + "rom_roma0_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + } + }, + "connections":[ + ["add_hw_input_global_wrapper_stencil_1_264_265.out","add_265_266_267.in0"], + ["self.hw_output_s0_x_xi","add_265_266_267.in1"], + ["add_hw_input_global_wrapper_stencil_1_267_268.in1","add_265_266_267.out"], + ["self.in0_hw_input_global_wrapper_stencil.0","add_hw_input_global_wrapper_stencil_1_264_265.in0"], + ["rom_roma0.rdata","add_hw_input_global_wrapper_stencil_1_264_265.in1"], + ["self.in0_hw_input_global_wrapper_stencil.0","add_hw_input_global_wrapper_stencil_1_267_268.in0"], + ["self.out_hw_output_stencil","add_hw_input_global_wrapper_stencil_1_267_268.out"], + ["self.hw_output_s0_y_yi","rom_roma0.raddr"], + ["rom_roma0_ren.out","rom_roma0.ren"] + ] + } + } + } +} +} diff --git a/examples/clockwork/down_sample_compute.json b/examples/clockwork/down_sample_compute.json index 781a293..17a8f9b 100644 --- a/examples/clockwork/down_sample_compute.json +++ b/examples/clockwork/down_sample_compute.json @@ -2,86 +2,64 @@ "namespaces":{ "global":{ "modules":{ - "hcompute_avg_pool_stencil":{ + "hcompute_hw_input_global_wrapper_stencil":{ "type":["Record",[ - ["out_avg_pool_stencil",["Array",16,"Bit"]] + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] ]], - "instances":{ - "const_p0__388":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0000"]} - } - }, "connections":[ - ["self.out_avg_pool_stencil","const_p0__388.out"] + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] ] }, - "hcompute_avg_pool_stencil_1":{ + "hcompute_hw_output_stencil":{ "type":["Record",[ - ["out_avg_pool_stencil",["Array",16,"Bit"]], - ["in0_avg_pool_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_max_pool_stencil",["Array",1,["Array",16,"BitIn"]]] ]], - "instances":{ - "add_avg_pool_stencil_1_395_396":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_hw_input_global_wrapper_stencil_1_396_397":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_hw_input_global_wrapper_stencil_2_394_395":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_hw_input_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_4_394":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - } - }, "connections":[ - ["self.in0_avg_pool_stencil.0","add_avg_pool_stencil_1_395_396.in0"], - ["add_hw_input_global_wrapper_stencil_2_394_395.out","add_avg_pool_stencil_1_395_396.in1"], - ["add_hw_input_global_wrapper_stencil_1_396_397.in1","add_avg_pool_stencil_1_395_396.out"], - ["self.in1_hw_input_global_wrapper_stencil.0","add_hw_input_global_wrapper_stencil_1_396_397.in0"], - ["self.out_avg_pool_stencil","add_hw_input_global_wrapper_stencil_1_396_397.out"], - ["self.in1_hw_input_global_wrapper_stencil.1","add_hw_input_global_wrapper_stencil_2_394_395.in0"], - ["add_hw_input_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_4_394.out","add_hw_input_global_wrapper_stencil_2_394_395.in1"], - ["self.in1_hw_input_global_wrapper_stencil.2","add_hw_input_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_4_394.in0"], - ["self.in1_hw_input_global_wrapper_stencil.3","add_hw_input_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_4_394.in1"] + ["self.out_hw_output_stencil","self.in0_max_pool_stencil.0"] ] }, - "hcompute_hw_input_global_wrapper_stencil":{ + "hcompute_max_pool_stencil":{ "type":["Record",[ - ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], - ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ["out_max_pool_stencil",["Array",16,"Bit"]], + ["in0_maximum_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "connections":[ - ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ["self.out_max_pool_stencil","self.in0_maximum_stencil.0"] ] }, - "hcompute_hw_output_stencil":{ + "hcompute_maximum_stencil":{ "type":["Record",[ - ["out_hw_output_stencil",["Array",16,"Bit"]], - ["in0_avg_pool_stencil",["Array",1,["Array",16,"BitIn"]]] + ["out_maximum_stencil",["Array",16,"Bit"]] ]], "instances":{ - "const_p2__413":{ + "const_p0__258":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0002"]} - }, - "lshr_avg_pool_stencil_2_413_414":{ - "genref":"coreir.lshr", + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_maximum_stencil","const_p0__258.out"] + ] + }, + "hcompute_maximum_stencil_1":{ + "type":["Record",[ + ["out_maximum_stencil",["Array",16,"Bit"]], + ["in0_hw_input_global_wrapper_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_maximum_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "umax_maximum_stencil_1_hw_input_global_wrapper_stencil_1_261":{ + "genref":"commonlib.umax", "genargs":{"width":["Int",16]} } }, "connections":[ - ["lshr_avg_pool_stencil_2_413_414.in1","const_p2__413.out"], - ["self.in0_avg_pool_stencil.0","lshr_avg_pool_stencil_2_413_414.in0"], - ["self.out_hw_output_stencil","lshr_avg_pool_stencil_2_413_414.out"] + ["umax_maximum_stencil_1_hw_input_global_wrapper_stencil_1_261.in1","self.in0_hw_input_global_wrapper_stencil.0"], + ["umax_maximum_stencil_1_hw_input_global_wrapper_stencil_1_261.in0","self.in1_maximum_stencil.0"], + ["umax_maximum_stencil_1_hw_input_global_wrapper_stencil_1_261.out","self.out_maximum_stencil"] ] } } diff --git a/examples/clockwork/harris_compute.json b/examples/clockwork/harris_compute.json index ec7cf9e..e91421b 100644 --- a/examples/clockwork/harris_compute.json +++ b/examples/clockwork/harris_compute.json @@ -8,28 +8,28 @@ ["in0_cim_stencil",["Array",9,["Array",16,"BitIn"]]] ]], "instances":{ - "bitand_689_690_691":{ + "bitand_607_608_609":{ "modref":"corebit.and" }, - "bitand_691_692_693":{ + "bitand_609_610_611":{ "modref":"corebit.and" }, - "bitand_693_694_695":{ + "bitand_611_612_613":{ "modref":"corebit.and" }, - "bitand_695_696_697":{ + "bitand_613_614_615":{ "modref":"corebit.and" }, - "bitand_697_698_699":{ + "bitand_615_616_617":{ "modref":"corebit.and" }, - "bitand_699_700_701":{ + "bitand_617_618_619":{ "modref":"corebit.and" }, - "bitand_701_702_703":{ + "bitand_619_620_621":{ "modref":"corebit.and" }, - "bitand_703_705_706":{ + "bitand_621_623_624":{ "modref":"corebit.and" }, "const_p0_0":{ @@ -37,7 +37,7 @@ "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0000"]} }, - "const_p1__704":{ + "const_p1__622":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0001"]} @@ -47,86 +47,86 @@ "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h00ff"]} }, - "mux_7062550":{ + "mux_6242550":{ "genref":"coreir.mux", "genargs":{"width":["Int",16]} }, - "sle_704_cim_stencil_2_705":{ + "sle_622_cim_stencil_2_623":{ "genref":"coreir.sle", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_1_cim_stencil_2_689":{ + "slt_cim_stencil_1_cim_stencil_2_607":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_3_cim_stencil_2_690":{ + "slt_cim_stencil_3_cim_stencil_2_608":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_4_cim_stencil_2_692":{ + "slt_cim_stencil_4_cim_stencil_2_610":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_5_cim_stencil_2_694":{ + "slt_cim_stencil_5_cim_stencil_2_612":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_6_cim_stencil_2_696":{ + "slt_cim_stencil_6_cim_stencil_2_614":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_7_cim_stencil_2_698":{ + "slt_cim_stencil_7_cim_stencil_2_616":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_8_cim_stencil_2_700":{ + "slt_cim_stencil_8_cim_stencil_2_618":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} }, - "slt_cim_stencil_9_cim_stencil_2_702":{ + "slt_cim_stencil_9_cim_stencil_2_620":{ "genref":"coreir.slt", "genargs":{"width":["Int",16]} } }, "connections":[ - ["slt_cim_stencil_1_cim_stencil_2_689.out","bitand_689_690_691.in0"], - ["slt_cim_stencil_3_cim_stencil_2_690.out","bitand_689_690_691.in1"], - ["bitand_691_692_693.in0","bitand_689_690_691.out"], - ["slt_cim_stencil_4_cim_stencil_2_692.out","bitand_691_692_693.in1"], - ["bitand_693_694_695.in0","bitand_691_692_693.out"], - ["slt_cim_stencil_5_cim_stencil_2_694.out","bitand_693_694_695.in1"], - ["bitand_695_696_697.in0","bitand_693_694_695.out"], - ["slt_cim_stencil_6_cim_stencil_2_696.out","bitand_695_696_697.in1"], - ["bitand_697_698_699.in0","bitand_695_696_697.out"], - ["slt_cim_stencil_7_cim_stencil_2_698.out","bitand_697_698_699.in1"], - ["bitand_699_700_701.in0","bitand_697_698_699.out"], - ["slt_cim_stencil_8_cim_stencil_2_700.out","bitand_699_700_701.in1"], - ["bitand_701_702_703.in0","bitand_699_700_701.out"], - ["slt_cim_stencil_9_cim_stencil_2_702.out","bitand_701_702_703.in1"], - ["bitand_703_705_706.in0","bitand_701_702_703.out"], - ["sle_704_cim_stencil_2_705.out","bitand_703_705_706.in1"], - ["mux_7062550.sel","bitand_703_705_706.out"], - ["mux_7062550.in0","const_p0_0.out"], - ["sle_704_cim_stencil_2_705.in0","const_p1__704.out"], - ["mux_7062550.in1","const_p255_255.out"], - ["self.out_cim_output_stencil","mux_7062550.out"], - ["slt_cim_stencil_1_cim_stencil_2_689.in0","self.in0_cim_stencil.0"], - ["sle_704_cim_stencil_2_705.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_1_cim_stencil_2_689.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_3_cim_stencil_2_690.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_4_cim_stencil_2_692.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_5_cim_stencil_2_694.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_6_cim_stencil_2_696.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_7_cim_stencil_2_698.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_8_cim_stencil_2_700.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_9_cim_stencil_2_702.in1","self.in0_cim_stencil.1"], - ["slt_cim_stencil_3_cim_stencil_2_690.in0","self.in0_cim_stencil.2"], - ["slt_cim_stencil_4_cim_stencil_2_692.in0","self.in0_cim_stencil.3"], - ["slt_cim_stencil_5_cim_stencil_2_694.in0","self.in0_cim_stencil.4"], - ["slt_cim_stencil_6_cim_stencil_2_696.in0","self.in0_cim_stencil.5"], - ["slt_cim_stencil_7_cim_stencil_2_698.in0","self.in0_cim_stencil.6"], - ["slt_cim_stencil_8_cim_stencil_2_700.in0","self.in0_cim_stencil.7"], - ["slt_cim_stencil_9_cim_stencil_2_702.in0","self.in0_cim_stencil.8"] + ["slt_cim_stencil_1_cim_stencil_2_607.out","bitand_607_608_609.in0"], + ["slt_cim_stencil_3_cim_stencil_2_608.out","bitand_607_608_609.in1"], + ["bitand_609_610_611.in0","bitand_607_608_609.out"], + ["slt_cim_stencil_4_cim_stencil_2_610.out","bitand_609_610_611.in1"], + ["bitand_611_612_613.in0","bitand_609_610_611.out"], + ["slt_cim_stencil_5_cim_stencil_2_612.out","bitand_611_612_613.in1"], + ["bitand_613_614_615.in0","bitand_611_612_613.out"], + ["slt_cim_stencil_6_cim_stencil_2_614.out","bitand_613_614_615.in1"], + ["bitand_615_616_617.in0","bitand_613_614_615.out"], + ["slt_cim_stencil_7_cim_stencil_2_616.out","bitand_615_616_617.in1"], + ["bitand_617_618_619.in0","bitand_615_616_617.out"], + ["slt_cim_stencil_8_cim_stencil_2_618.out","bitand_617_618_619.in1"], + ["bitand_619_620_621.in0","bitand_617_618_619.out"], + ["slt_cim_stencil_9_cim_stencil_2_620.out","bitand_619_620_621.in1"], + ["bitand_621_623_624.in0","bitand_619_620_621.out"], + ["sle_622_cim_stencil_2_623.out","bitand_621_623_624.in1"], + ["mux_6242550.sel","bitand_621_623_624.out"], + ["mux_6242550.in0","const_p0_0.out"], + ["sle_622_cim_stencil_2_623.in0","const_p1__622.out"], + ["mux_6242550.in1","const_p255_255.out"], + ["self.out_cim_output_stencil","mux_6242550.out"], + ["slt_cim_stencil_1_cim_stencil_2_607.in0","self.in0_cim_stencil.0"], + ["sle_622_cim_stencil_2_623.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_1_cim_stencil_2_607.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_3_cim_stencil_2_608.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_4_cim_stencil_2_610.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_5_cim_stencil_2_612.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_6_cim_stencil_2_614.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_7_cim_stencil_2_616.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_8_cim_stencil_2_618.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_9_cim_stencil_2_620.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_3_cim_stencil_2_608.in0","self.in0_cim_stencil.2"], + ["slt_cim_stencil_4_cim_stencil_2_610.in0","self.in0_cim_stencil.3"], + ["slt_cim_stencil_5_cim_stencil_2_612.in0","self.in0_cim_stencil.4"], + ["slt_cim_stencil_6_cim_stencil_2_614.in0","self.in0_cim_stencil.5"], + ["slt_cim_stencil_7_cim_stencil_2_616.in0","self.in0_cim_stencil.6"], + ["slt_cim_stencil_8_cim_stencil_2_618.in0","self.in0_cim_stencil.7"], + ["slt_cim_stencil_9_cim_stencil_2_620.in0","self.in0_cim_stencil.8"] ] }, "hcompute_cim_stencil":{ @@ -137,89 +137,89 @@ ["in2_lgyy_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "instances":{ - "add_643_644_649":{ + "add_561_562_567":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "ashr_650_651_652":{ + "ashr_568_569_570":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "ashr_lgxx_stencil_2_642_643":{ + "ashr_lgxx_stencil_2_560_561":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "ashr_lgxy_stencil_2_642_646":{ + "ashr_lgxy_stencil_2_560_564":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "ashr_lgyy_stencil_2_642_644":{ + "ashr_lgyy_stencil_2_560_562":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "const_p4__651":{ + "const_p4__569":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0004"]} }, - "const_p6__642":{ + "const_p6__560":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0006"]} }, - "const_p6__642$1":{ + "const_p6__560$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0006"]} }, - "const_p6__642$2":{ + "const_p6__560$2":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0006"]} }, - "mul_643_644_645":{ + "mul_561_562_563":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_646_646_647":{ + "mul_564_564_565":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "mul_649_649_650":{ + "mul_567_567_568":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "sub_645_647_648":{ + "sub_563_565_566":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} }, - "sub_648_652_653":{ + "sub_566_570_571":{ "genref":"coreir.sub", "genargs":{"width":["Int",16]} } }, "connections":[ - ["ashr_lgxx_stencil_2_642_643.out","add_643_644_649.in0"], - ["ashr_lgyy_stencil_2_642_644.out","add_643_644_649.in1"], - ["mul_649_649_650.in0","add_643_644_649.out"], - ["mul_649_649_650.in1","add_643_644_649.out"], - ["mul_649_649_650.out","ashr_650_651_652.in0"], - ["const_p4__651.out","ashr_650_651_652.in1"], - ["sub_648_652_653.in1","ashr_650_651_652.out"], - ["self.in0_lgxx_stencil.0","ashr_lgxx_stencil_2_642_643.in0"], - ["const_p6__642.out","ashr_lgxx_stencil_2_642_643.in1"], - ["mul_643_644_645.in0","ashr_lgxx_stencil_2_642_643.out"], - ["self.in1_lgxy_stencil.0","ashr_lgxy_stencil_2_642_646.in0"], - ["const_p6__642$2.out","ashr_lgxy_stencil_2_642_646.in1"], - ["mul_646_646_647.in0","ashr_lgxy_stencil_2_642_646.out"], - ["mul_646_646_647.in1","ashr_lgxy_stencil_2_642_646.out"], - ["self.in2_lgyy_stencil.0","ashr_lgyy_stencil_2_642_644.in0"], - ["const_p6__642$1.out","ashr_lgyy_stencil_2_642_644.in1"], - ["mul_643_644_645.in1","ashr_lgyy_stencil_2_642_644.out"], - ["sub_645_647_648.in0","mul_643_644_645.out"], - ["sub_645_647_648.in1","mul_646_646_647.out"], - ["sub_648_652_653.out","self.out_cim_stencil"], - ["sub_648_652_653.in0","sub_645_647_648.out"] + ["ashr_lgxx_stencil_2_560_561.out","add_561_562_567.in0"], + ["ashr_lgyy_stencil_2_560_562.out","add_561_562_567.in1"], + ["mul_567_567_568.in0","add_561_562_567.out"], + ["mul_567_567_568.in1","add_561_562_567.out"], + ["mul_567_567_568.out","ashr_568_569_570.in0"], + ["const_p4__569.out","ashr_568_569_570.in1"], + ["sub_566_570_571.in1","ashr_568_569_570.out"], + ["self.in0_lgxx_stencil.0","ashr_lgxx_stencil_2_560_561.in0"], + ["const_p6__560.out","ashr_lgxx_stencil_2_560_561.in1"], + ["mul_561_562_563.in0","ashr_lgxx_stencil_2_560_561.out"], + ["self.in1_lgxy_stencil.0","ashr_lgxy_stencil_2_560_564.in0"], + ["const_p6__560$2.out","ashr_lgxy_stencil_2_560_564.in1"], + ["mul_564_564_565.in0","ashr_lgxy_stencil_2_560_564.out"], + ["mul_564_564_565.in1","ashr_lgxy_stencil_2_560_564.out"], + ["self.in2_lgyy_stencil.0","ashr_lgyy_stencil_2_560_562.in0"], + ["const_p6__560$1.out","ashr_lgyy_stencil_2_560_562.in1"], + ["mul_561_562_563.in1","ashr_lgyy_stencil_2_560_562.out"], + ["sub_563_565_566.in0","mul_561_562_563.out"], + ["sub_563_565_566.in1","mul_564_564_565.out"], + ["sub_566_570_571.out","self.out_cim_stencil"], + ["sub_566_570_571.in0","sub_563_565_566.out"] ] }, "hcompute_grad_x_unclamp_stencil":{ @@ -307,91 +307,6 @@ ["sub_280_padded16_global_wrapper_stencil_6_281.in0","sub_278_279_280.out"] ] }, - "hcompute_grad_x_unclamp_stencil_2":{ - "type":["Record",[ - ["out_grad_x_unclamp_stencil",["Array",16,"Bit"]] - ]], - "instances":{ - "const_p0__410":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0000"]} - } - }, - "connections":[ - ["self.out_grad_x_unclamp_stencil","const_p0__410.out"] - ] - }, - "hcompute_grad_x_unclamp_stencil_3":{ - "type":["Record",[ - ["out_grad_x_unclamp_stencil",["Array",16,"Bit"]], - ["in0_grad_x_unclamp_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_padded16_global_wrapper_stencil",["Array",6,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_grad_x_unclamp_stencil_3_424_425":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_padded16_global_wrapper_stencil_13_423_424":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_padded16_global_wrapper_stencil_14_422_423":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "const_p2__421":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0002"]} - }, - "const_p2__421$1":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0002"]} - }, - "mul_padded16_global_wrapper_stencil_15_421_422":{ - "genref":"coreir.mul", - "genargs":{"width":["Int",16]} - }, - "mul_padded16_global_wrapper_stencil_17_421_427":{ - "genref":"coreir.mul", - "genargs":{"width":["Int",16]} - }, - "sub_425_padded16_global_wrapper_stencil_16_426":{ - "genref":"coreir.sub", - "genargs":{"width":["Int",16]} - }, - "sub_426_427_428":{ - "genref":"coreir.sub", - "genargs":{"width":["Int",16]} - }, - "sub_428_padded16_global_wrapper_stencil_18_429":{ - "genref":"coreir.sub", - "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_grad_x_unclamp_stencil.0","add_grad_x_unclamp_stencil_3_424_425.in0"], - ["add_padded16_global_wrapper_stencil_13_423_424.out","add_grad_x_unclamp_stencil_3_424_425.in1"], - ["sub_425_padded16_global_wrapper_stencil_16_426.in0","add_grad_x_unclamp_stencil_3_424_425.out"], - ["self.in1_padded16_global_wrapper_stencil.0","add_padded16_global_wrapper_stencil_13_423_424.in0"], - ["add_padded16_global_wrapper_stencil_14_422_423.out","add_padded16_global_wrapper_stencil_13_423_424.in1"], - ["self.in1_padded16_global_wrapper_stencil.1","add_padded16_global_wrapper_stencil_14_422_423.in0"], - ["mul_padded16_global_wrapper_stencil_15_421_422.out","add_padded16_global_wrapper_stencil_14_422_423.in1"], - ["mul_padded16_global_wrapper_stencil_17_421_427.in1","const_p2__421$1.out"], - ["mul_padded16_global_wrapper_stencil_15_421_422.in1","const_p2__421.out"], - ["self.in1_padded16_global_wrapper_stencil.2","mul_padded16_global_wrapper_stencil_15_421_422.in0"], - ["self.in1_padded16_global_wrapper_stencil.4","mul_padded16_global_wrapper_stencil_17_421_427.in0"], - ["sub_426_427_428.in1","mul_padded16_global_wrapper_stencil_17_421_427.out"], - ["sub_425_padded16_global_wrapper_stencil_16_426.in1","self.in1_padded16_global_wrapper_stencil.3"], - ["sub_428_padded16_global_wrapper_stencil_18_429.in1","self.in1_padded16_global_wrapper_stencil.5"], - ["sub_428_padded16_global_wrapper_stencil_18_429.out","self.out_grad_x_unclamp_stencil"], - ["sub_426_427_428.in0","sub_425_padded16_global_wrapper_stencil_16_426.out"], - ["sub_428_padded16_global_wrapper_stencil_18_429.in0","sub_426_427_428.out"] - ] - }, "hcompute_grad_y_unclamp_stencil":{ "type":["Record",[ ["out_grad_y_unclamp_stencil",["Array",16,"Bit"]] @@ -477,91 +392,6 @@ ["sub_387_padded16_global_wrapper_stencil_12_388.in0","sub_385_386_387.out"] ] }, - "hcompute_grad_y_unclamp_stencil_2":{ - "type":["Record",[ - ["out_grad_y_unclamp_stencil",["Array",16,"Bit"]] - ]], - "instances":{ - "const_p0__524":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0000"]} - } - }, - "connections":[ - ["self.out_grad_y_unclamp_stencil","const_p0__524.out"] - ] - }, - "hcompute_grad_y_unclamp_stencil_3":{ - "type":["Record",[ - ["out_grad_y_unclamp_stencil",["Array",16,"Bit"]], - ["in0_grad_y_unclamp_stencil",["Array",1,["Array",16,"BitIn"]]], - ["in1_padded16_global_wrapper_stencil",["Array",6,["Array",16,"BitIn"]]] - ]], - "instances":{ - "add_grad_y_unclamp_stencil_3_538_539":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_padded16_global_wrapper_stencil_19_537_538":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "add_padded16_global_wrapper_stencil_20_536_537":{ - "genref":"coreir.add", - "genargs":{"width":["Int",16]} - }, - "const_p2__535":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0002"]} - }, - "const_p2__535$1":{ - "genref":"coreir.const", - "genargs":{"width":["Int",16]}, - "modargs":{"value":[["BitVector",16],"16'h0002"]} - }, - "mul_padded16_global_wrapper_stencil_21_535_536":{ - "genref":"coreir.mul", - "genargs":{"width":["Int",16]} - }, - "mul_padded16_global_wrapper_stencil_23_535_541":{ - "genref":"coreir.mul", - "genargs":{"width":["Int",16]} - }, - "sub_539_padded16_global_wrapper_stencil_22_540":{ - "genref":"coreir.sub", - "genargs":{"width":["Int",16]} - }, - "sub_540_541_542":{ - "genref":"coreir.sub", - "genargs":{"width":["Int",16]} - }, - "sub_542_padded16_global_wrapper_stencil_24_543":{ - "genref":"coreir.sub", - "genargs":{"width":["Int",16]} - } - }, - "connections":[ - ["self.in0_grad_y_unclamp_stencil.0","add_grad_y_unclamp_stencil_3_538_539.in0"], - ["add_padded16_global_wrapper_stencil_19_537_538.out","add_grad_y_unclamp_stencil_3_538_539.in1"], - ["sub_539_padded16_global_wrapper_stencil_22_540.in0","add_grad_y_unclamp_stencil_3_538_539.out"], - ["self.in1_padded16_global_wrapper_stencil.0","add_padded16_global_wrapper_stencil_19_537_538.in0"], - ["add_padded16_global_wrapper_stencil_20_536_537.out","add_padded16_global_wrapper_stencil_19_537_538.in1"], - ["self.in1_padded16_global_wrapper_stencil.1","add_padded16_global_wrapper_stencil_20_536_537.in0"], - ["mul_padded16_global_wrapper_stencil_21_535_536.out","add_padded16_global_wrapper_stencil_20_536_537.in1"], - ["mul_padded16_global_wrapper_stencil_23_535_541.in1","const_p2__535$1.out"], - ["mul_padded16_global_wrapper_stencil_21_535_536.in1","const_p2__535.out"], - ["self.in1_padded16_global_wrapper_stencil.2","mul_padded16_global_wrapper_stencil_21_535_536.in0"], - ["self.in1_padded16_global_wrapper_stencil.4","mul_padded16_global_wrapper_stencil_23_535_541.in0"], - ["sub_540_541_542.in1","mul_padded16_global_wrapper_stencil_23_535_541.out"], - ["sub_539_padded16_global_wrapper_stencil_22_540.in1","self.in1_padded16_global_wrapper_stencil.3"], - ["sub_542_padded16_global_wrapper_stencil_24_543.in1","self.in1_padded16_global_wrapper_stencil.5"], - ["sub_542_padded16_global_wrapper_stencil_24_543.out","self.out_grad_y_unclamp_stencil"], - ["sub_540_541_542.in0","sub_539_padded16_global_wrapper_stencil_22_540.out"], - ["sub_542_padded16_global_wrapper_stencil_24_543.in0","sub_540_541_542.out"] - ] - }, "hcompute_hw_output_stencil":{ "type":["Record",[ ["out_hw_output_stencil",["Array",16,"Bit"]], @@ -657,14 +487,14 @@ ["out_lgxy_stencil",["Array",16,"Bit"]] ]], "instances":{ - "const_p0__480":{ + "const_p0__439":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0000"]} } }, "connections":[ - ["self.out_lgxy_stencil","const_p0__480.out"] + ["self.out_lgxy_stencil","const_p0__439.out"] ] }, "hcompute_lgxy_stencil_1":{ @@ -674,63 +504,63 @@ ["in1_lxy_stencil",["Array",9,["Array",16,"BitIn"]]] ]], "instances":{ - "add_lgxy_stencil_1_497_498":{ + "add_lgxy_stencil_1_456_457":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_1_498_499":{ + "add_lxy_stencil_1_457_458":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_2_496_497":{ + "add_lxy_stencil_2_455_456":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_3_495_496":{ + "add_lxy_stencil_3_454_455":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_4_494_495":{ + "add_lxy_stencil_4_453_454":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_5_493_494":{ + "add_lxy_stencil_5_452_453":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_6_492_493":{ + "add_lxy_stencil_6_451_452":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_7_491_492":{ + "add_lxy_stencil_7_450_451":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lxy_stencil_8_lxy_stencil_9_491":{ + "add_lxy_stencil_8_lxy_stencil_9_450":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} } }, "connections":[ - ["self.in0_lgxy_stencil.0","add_lgxy_stencil_1_497_498.in0"], - ["add_lxy_stencil_2_496_497.out","add_lgxy_stencil_1_497_498.in1"], - ["add_lxy_stencil_1_498_499.in1","add_lgxy_stencil_1_497_498.out"], - ["self.in1_lxy_stencil.0","add_lxy_stencil_1_498_499.in0"], - ["self.out_lgxy_stencil","add_lxy_stencil_1_498_499.out"], - ["self.in1_lxy_stencil.1","add_lxy_stencil_2_496_497.in0"], - ["add_lxy_stencil_3_495_496.out","add_lxy_stencil_2_496_497.in1"], - ["self.in1_lxy_stencil.2","add_lxy_stencil_3_495_496.in0"], - ["add_lxy_stencil_4_494_495.out","add_lxy_stencil_3_495_496.in1"], - ["self.in1_lxy_stencil.3","add_lxy_stencil_4_494_495.in0"], - ["add_lxy_stencil_5_493_494.out","add_lxy_stencil_4_494_495.in1"], - ["self.in1_lxy_stencil.4","add_lxy_stencil_5_493_494.in0"], - ["add_lxy_stencil_6_492_493.out","add_lxy_stencil_5_493_494.in1"], - ["self.in1_lxy_stencil.5","add_lxy_stencil_6_492_493.in0"], - ["add_lxy_stencil_7_491_492.out","add_lxy_stencil_6_492_493.in1"], - ["self.in1_lxy_stencil.6","add_lxy_stencil_7_491_492.in0"], - ["add_lxy_stencil_8_lxy_stencil_9_491.out","add_lxy_stencil_7_491_492.in1"], - ["self.in1_lxy_stencil.7","add_lxy_stencil_8_lxy_stencil_9_491.in0"], - ["self.in1_lxy_stencil.8","add_lxy_stencil_8_lxy_stencil_9_491.in1"] + ["self.in0_lgxy_stencil.0","add_lgxy_stencil_1_456_457.in0"], + ["add_lxy_stencil_2_455_456.out","add_lgxy_stencil_1_456_457.in1"], + ["add_lxy_stencil_1_457_458.in1","add_lgxy_stencil_1_456_457.out"], + ["self.in1_lxy_stencil.0","add_lxy_stencil_1_457_458.in0"], + ["self.out_lgxy_stencil","add_lxy_stencil_1_457_458.out"], + ["self.in1_lxy_stencil.1","add_lxy_stencil_2_455_456.in0"], + ["add_lxy_stencil_3_454_455.out","add_lxy_stencil_2_455_456.in1"], + ["self.in1_lxy_stencil.2","add_lxy_stencil_3_454_455.in0"], + ["add_lxy_stencil_4_453_454.out","add_lxy_stencil_3_454_455.in1"], + ["self.in1_lxy_stencil.3","add_lxy_stencil_4_453_454.in0"], + ["add_lxy_stencil_5_452_453.out","add_lxy_stencil_4_453_454.in1"], + ["self.in1_lxy_stencil.4","add_lxy_stencil_5_452_453.in0"], + ["add_lxy_stencil_6_451_452.out","add_lxy_stencil_5_452_453.in1"], + ["self.in1_lxy_stencil.5","add_lxy_stencil_6_451_452.in0"], + ["add_lxy_stencil_7_450_451.out","add_lxy_stencil_6_451_452.in1"], + ["self.in1_lxy_stencil.6","add_lxy_stencil_7_450_451.in0"], + ["add_lxy_stencil_8_lxy_stencil_9_450.out","add_lxy_stencil_7_450_451.in1"], + ["self.in1_lxy_stencil.7","add_lxy_stencil_8_lxy_stencil_9_450.in0"], + ["self.in1_lxy_stencil.8","add_lxy_stencil_8_lxy_stencil_9_450.in1"] ] }, "hcompute_lgyy_stencil":{ @@ -738,14 +568,14 @@ ["out_lgyy_stencil",["Array",16,"Bit"]] ]], "instances":{ - "const_p0__587":{ + "const_p0__505":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0000"]} } }, "connections":[ - ["self.out_lgyy_stencil","const_p0__587.out"] + ["self.out_lgyy_stencil","const_p0__505.out"] ] }, "hcompute_lgyy_stencil_1":{ @@ -755,63 +585,63 @@ ["in1_lyy_stencil",["Array",9,["Array",16,"BitIn"]]] ]], "instances":{ - "add_lgyy_stencil_1_604_605":{ + "add_lgyy_stencil_1_522_523":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_1_605_606":{ + "add_lyy_stencil_1_523_524":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_2_603_604":{ + "add_lyy_stencil_2_521_522":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_3_602_603":{ + "add_lyy_stencil_3_520_521":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_4_601_602":{ + "add_lyy_stencil_4_519_520":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_5_600_601":{ + "add_lyy_stencil_5_518_519":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_6_599_600":{ + "add_lyy_stencil_6_517_518":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_7_598_599":{ + "add_lyy_stencil_7_516_517":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} }, - "add_lyy_stencil_8_lyy_stencil_9_598":{ + "add_lyy_stencil_8_lyy_stencil_9_516":{ "genref":"coreir.add", "genargs":{"width":["Int",16]} } }, "connections":[ - ["self.in0_lgyy_stencil.0","add_lgyy_stencil_1_604_605.in0"], - ["add_lyy_stencil_2_603_604.out","add_lgyy_stencil_1_604_605.in1"], - ["add_lyy_stencil_1_605_606.in1","add_lgyy_stencil_1_604_605.out"], - ["self.in1_lyy_stencil.0","add_lyy_stencil_1_605_606.in0"], - ["self.out_lgyy_stencil","add_lyy_stencil_1_605_606.out"], - ["self.in1_lyy_stencil.1","add_lyy_stencil_2_603_604.in0"], - ["add_lyy_stencil_3_602_603.out","add_lyy_stencil_2_603_604.in1"], - ["self.in1_lyy_stencil.2","add_lyy_stencil_3_602_603.in0"], - ["add_lyy_stencil_4_601_602.out","add_lyy_stencil_3_602_603.in1"], - ["self.in1_lyy_stencil.3","add_lyy_stencil_4_601_602.in0"], - ["add_lyy_stencil_5_600_601.out","add_lyy_stencil_4_601_602.in1"], - ["self.in1_lyy_stencil.4","add_lyy_stencil_5_600_601.in0"], - ["add_lyy_stencil_6_599_600.out","add_lyy_stencil_5_600_601.in1"], - ["self.in1_lyy_stencil.5","add_lyy_stencil_6_599_600.in0"], - ["add_lyy_stencil_7_598_599.out","add_lyy_stencil_6_599_600.in1"], - ["self.in1_lyy_stencil.6","add_lyy_stencil_7_598_599.in0"], - ["add_lyy_stencil_8_lyy_stencil_9_598.out","add_lyy_stencil_7_598_599.in1"], - ["self.in1_lyy_stencil.7","add_lyy_stencil_8_lyy_stencil_9_598.in0"], - ["self.in1_lyy_stencil.8","add_lyy_stencil_8_lyy_stencil_9_598.in1"] + ["self.in0_lgyy_stencil.0","add_lgyy_stencil_1_522_523.in0"], + ["add_lyy_stencil_2_521_522.out","add_lgyy_stencil_1_522_523.in1"], + ["add_lyy_stencil_1_523_524.in1","add_lgyy_stencil_1_522_523.out"], + ["self.in1_lyy_stencil.0","add_lyy_stencil_1_523_524.in0"], + ["self.out_lgyy_stencil","add_lyy_stencil_1_523_524.out"], + ["self.in1_lyy_stencil.1","add_lyy_stencil_2_521_522.in0"], + ["add_lyy_stencil_3_520_521.out","add_lyy_stencil_2_521_522.in1"], + ["self.in1_lyy_stencil.2","add_lyy_stencil_3_520_521.in0"], + ["add_lyy_stencil_4_519_520.out","add_lyy_stencil_3_520_521.in1"], + ["self.in1_lyy_stencil.3","add_lyy_stencil_4_519_520.in0"], + ["add_lyy_stencil_5_518_519.out","add_lyy_stencil_4_519_520.in1"], + ["self.in1_lyy_stencil.4","add_lyy_stencil_5_518_519.in0"], + ["add_lyy_stencil_6_517_518.out","add_lyy_stencil_5_518_519.in1"], + ["self.in1_lyy_stencil.5","add_lyy_stencil_6_517_518.in0"], + ["add_lyy_stencil_7_516_517.out","add_lyy_stencil_6_517_518.in1"], + ["self.in1_lyy_stencil.6","add_lyy_stencil_7_516_517.in0"], + ["add_lyy_stencil_8_lyy_stencil_9_516.out","add_lyy_stencil_7_516_517.in1"], + ["self.in1_lyy_stencil.7","add_lyy_stencil_8_lyy_stencil_9_516.in0"], + ["self.in1_lyy_stencil.8","add_lyy_stencil_8_lyy_stencil_9_516.in1"] ] }, "hcompute_lxx_stencil":{ @@ -871,70 +701,70 @@ ["in1_grad_y_unclamp_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "instances":{ - "ashr_465_466_467":{ + "ashr_424_425_426":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "const_n180__461$1":{ + "const_n180__420":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'hff4c"]} }, - "const_n180__461$2":{ + "const_n180__420$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'hff4c"]} }, - "const_p180__459":{ + "const_p180__418":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h00b4"]} }, - "const_p180__459$1":{ + "const_p180__418$1":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h00b4"]} }, - "const_p6__466":{ + "const_p6__425":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0006"]} }, - "mul_462_464_465":{ + "mul_421_423_424":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "smax_460_461_462":{ + "smax_419_420_421":{ "genref":"commonlib.smax", "genargs":{"width":["Int",16]} }, - "smax_463_461_464":{ + "smax_422_420_423":{ "genref":"commonlib.smax", "genargs":{"width":["Int",16]} }, - "smin_grad_x_unclamp_stencil_4_459_460":{ + "smin_grad_x_unclamp_stencil_3_418_419":{ "genref":"commonlib.smin", "genargs":{"width":["Int",16]} }, - "smin_grad_y_unclamp_stencil_2_459_463":{ + "smin_grad_y_unclamp_stencil_2_418_422":{ "genref":"commonlib.smin", "genargs":{"width":["Int",16]} } }, "connections":[ - ["mul_462_464_465.out","ashr_465_466_467.in0"], - ["const_p6__466.out","ashr_465_466_467.in1"], - ["self.out_lxy_stencil","ashr_465_466_467.out"], - ["smax_460_461_462.in1","const_n180__461$1.out"], - ["smax_463_461_464.in1","const_n180__461$2.out"], - ["smin_grad_y_unclamp_stencil_2_459_463.in1","const_p180__459$1.out"], - ["smin_grad_x_unclamp_stencil_4_459_460.in1","const_p180__459.out"], - ["smax_460_461_462.out","mul_462_464_465.in0"], - ["smax_463_461_464.out","mul_462_464_465.in1"], - ["smin_grad_x_unclamp_stencil_4_459_460.in0","self.in0_grad_x_unclamp_stencil.0"], - ["smin_grad_y_unclamp_stencil_2_459_463.in0","self.in1_grad_y_unclamp_stencil.0"], - ["smin_grad_x_unclamp_stencil_4_459_460.out","smax_460_461_462.in0"], - ["smin_grad_y_unclamp_stencil_2_459_463.out","smax_463_461_464.in0"] + ["mul_421_423_424.out","ashr_424_425_426.in0"], + ["const_p6__425.out","ashr_424_425_426.in1"], + ["self.out_lxy_stencil","ashr_424_425_426.out"], + ["smax_422_420_423.in1","const_n180__420$1.out"], + ["smax_419_420_421.in1","const_n180__420.out"], + ["smin_grad_y_unclamp_stencil_2_418_422.in1","const_p180__418$1.out"], + ["smin_grad_x_unclamp_stencil_3_418_419.in1","const_p180__418.out"], + ["smax_419_420_421.out","mul_421_423_424.in0"], + ["smax_422_420_423.out","mul_421_423_424.in1"], + ["smin_grad_x_unclamp_stencil_3_418_419.in0","self.in0_grad_x_unclamp_stencil.0"], + ["smin_grad_y_unclamp_stencil_2_418_422.in0","self.in1_grad_y_unclamp_stencil.0"], + ["smin_grad_x_unclamp_stencil_3_418_419.out","smax_419_420_421.in0"], + ["smin_grad_y_unclamp_stencil_2_418_422.out","smax_422_420_423.in0"] ] }, "hcompute_lyy_stencil":{ @@ -943,48 +773,48 @@ ["in0_grad_y_unclamp_stencil",["Array",1,["Array",16,"BitIn"]]] ]], "instances":{ - "ashr_575_576_577":{ + "ashr_493_494_495":{ "genref":"coreir.ashr", "genargs":{"width":["Int",16]} }, - "const_n180__573":{ + "const_n180__491":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'hff4c"]} }, - "const_p180__571":{ + "const_p180__489":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h00b4"]} }, - "const_p6__576":{ + "const_p6__494":{ "genref":"coreir.const", "genargs":{"width":["Int",16]}, "modargs":{"value":[["BitVector",16],"16'h0006"]} }, - "mul_574_574_575":{ + "mul_492_492_493":{ "genref":"coreir.mul", "genargs":{"width":["Int",16]} }, - "smax_572_573_574":{ + "smax_490_491_492":{ "genref":"commonlib.smax", "genargs":{"width":["Int",16]} }, - "smin_grad_y_unclamp_stencil_4_571_572":{ + "smin_grad_y_unclamp_stencil_3_489_490":{ "genref":"commonlib.smin", "genargs":{"width":["Int",16]} } }, "connections":[ - ["mul_574_574_575.out","ashr_575_576_577.in0"], - ["const_p6__576.out","ashr_575_576_577.in1"], - ["self.out_lyy_stencil","ashr_575_576_577.out"], - ["smax_572_573_574.in1","const_n180__573.out"], - ["smin_grad_y_unclamp_stencil_4_571_572.in1","const_p180__571.out"], - ["smax_572_573_574.out","mul_574_574_575.in0"], - ["smax_572_573_574.out","mul_574_574_575.in1"], - ["smin_grad_y_unclamp_stencil_4_571_572.in0","self.in0_grad_y_unclamp_stencil.0"], - ["smin_grad_y_unclamp_stencil_4_571_572.out","smax_572_573_574.in0"] + ["mul_492_492_493.out","ashr_493_494_495.in0"], + ["const_p6__494.out","ashr_493_494_495.in1"], + ["self.out_lyy_stencil","ashr_493_494_495.out"], + ["smax_490_491_492.in1","const_n180__491.out"], + ["smin_grad_y_unclamp_stencil_3_489_490.in1","const_p180__489.out"], + ["smax_490_491_492.out","mul_492_492_493.in0"], + ["smax_490_491_492.out","mul_492_492_493.in1"], + ["smin_grad_y_unclamp_stencil_3_489_490.in0","self.in0_grad_y_unclamp_stencil.0"], + ["smin_grad_y_unclamp_stencil_3_489_490.out","smax_490_491_492.in0"] ] }, "hcompute_padded16_global_wrapper_stencil":{ diff --git a/examples/clockwork/harris_compute_mapped.json b/examples/clockwork/harris_compute_mapped.json new file mode 100644 index 0000000..8e49534 --- /dev/null +++ b/examples/clockwork/harris_compute_mapped.json @@ -0,0 +1,3730 @@ +{"top":"global.mapping_function_12", +"namespaces":{ + "cgralib":{ + "modules":{ + "BitIO":{ + "type":["Record",[ + ["in","BitIn"], + ["out","Bit"] + ]], + "modparams":{"mode":"String"} + } + }, + "generators":{ + "IO":{ + "typegen":"cgralib.unary", + "genparams":{"width":"Int"} + }, + "Mem":{ + "typegen":"cgralib.cgralib_mem_type", + "genparams":{"ID":"String", "has_external_addrgen":"Bool", "has_flush":"Bool", "has_read_valid":"Bool", "has_reset":"Bool", "has_stencil_valid":"Bool", "has_valid":"Bool", "is_rom":"Bool", "num_inputs":"Int", "num_outputs":"Int", "use_prebuilt_mem":"Bool", "width":"Int"}, + "defaultgenargs":{"ID":["String",""], "has_external_addrgen":["Bool",false], "has_flush":["Bool",false], "has_read_valid":["Bool",false], "has_reset":["Bool",false], "has_stencil_valid":["Bool",false], "has_valid":["Bool",false], "num_inputs":["Int",1], "num_outputs":["Int",1], "use_prebuilt_mem":["Bool",false]} + }, + "Mem_amber":{ + "typegen":"cgralib.cgralib_mem_amber_type", + "genparams":{"ID":"String", "has_external_addrgen":"Bool", "has_flush":"Bool", "has_read_valid":"Bool", "has_reset":"Bool", "has_stencil_valid":"Bool", "has_valid":"Bool", "is_rom":"Bool", "num_inputs":"Int", "num_outputs":"Int", "use_prebuilt_mem":"Bool", "width":"Int"}, + "defaultgenargs":{"ID":["String",""], "has_external_addrgen":["Bool",false], "has_flush":["Bool",false], "has_read_valid":["Bool",false], "has_reset":["Bool",false], "has_stencil_valid":["Bool",false], "has_valid":["Bool",false], "is_rom":["Bool",false], "num_inputs":["Int",1], "num_outputs":["Int",1], "use_prebuilt_mem":["Bool",false]} + }, + "Mem_jade":{ + "typegen":"cgralib.MemType", + "genparams":{"total_depth":"Int", "width":"Int"}, + "defaultgenargs":{"total_depth":["Int",1024], "width":["Int",16]} + }, + "PE":{ + "typegen":"cgralib.PEType", + "genparams":{"numbitports":"Int", "numdataports":"Int", "op_kind":"String", "width":"Int"}, + "defaultgenargs":{"numbitports":["Int",3], "numdataports":["Int",2], "width":["Int",16]} + } + }, + "typegens":{ + "MemType":[{"total_depth":"Int", "width":"Int"},"implicit"], + "PEType":[{"numbitports":"Int", "numdataports":"Int", "op_kind":"String", "width":"Int"},"implicit"], + "cgralib_mem_amber_type":[{"ID":"String", "has_external_addrgen":"Bool", "has_flush":"Bool", "has_read_valid":"Bool", "has_reset":"Bool", "has_stencil_valid":"Bool", "has_valid":"Bool", "is_rom":"Bool", "num_inputs":"Int", "num_outputs":"Int", "use_prebuilt_mem":"Bool", "width":"Int"},"implicit"], + "cgralib_mem_type":[{"ID":"String", "has_external_addrgen":"Bool", "has_flush":"Bool", "has_read_valid":"Bool", "has_reset":"Bool", "has_stencil_valid":"Bool", "has_valid":"Bool", "is_rom":"Bool", "num_inputs":"Int", "num_outputs":"Int", "use_prebuilt_mem":"Bool", "width":"Int"},"implicit"], + "unary":[{"width":"Int"},"implicit"] + } + }, + "global":{ + "modules":{ + "ADD":{ + "type":["Record",[ + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2","Bit"], + ["O3","Bit"], + ["O4","Bit"], + ["O5","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_0_17":{ + "genref":"coreir.const", + "genargs":{"width":["Int",17]}, + "modargs":{"value":[["BitVector",17],"17'h00000"]} + }, + "magma_Bit_and_inst0":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst1":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst2":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst3":{ + "modref":"corebit.and" + }, + "magma_Bit_not_inst0":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst1":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst2":{ + "modref":"corebit.not" + }, + "magma_Bit_or_inst0":{ + "modref":"corebit.or" + }, + "magma_Bits_16_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_17_add_inst0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",17]} + }, + "magma_Bits_17_add_inst1":{ + "genref":"coreir.add", + "genargs":{"width":["Int",17]} + } + }, + "connections":[ + ["magma_Bits_17_add_inst0.in0.16","bit_const_0_None.out"], + ["magma_Bits_17_add_inst0.in1.16","bit_const_0_None.out"], + ["magma_Bits_16_eq_inst0.in1","const_0_16.out"], + ["magma_Bits_17_add_inst1.in1","const_0_17.out"], + ["self.a.15","magma_Bit_and_inst0.in0"], + ["self.b.15","magma_Bit_and_inst0.in1"], + ["magma_Bit_and_inst1.in0","magma_Bit_and_inst0.out"], + ["magma_Bit_not_inst0.out","magma_Bit_and_inst1.in1"], + ["magma_Bit_or_inst0.in0","magma_Bit_and_inst1.out"], + ["magma_Bit_not_inst1.out","magma_Bit_and_inst2.in0"], + ["magma_Bit_not_inst2.out","magma_Bit_and_inst2.in1"], + ["magma_Bit_and_inst3.in0","magma_Bit_and_inst2.out"], + ["magma_Bits_17_add_inst1.out.15","magma_Bit_and_inst3.in1"], + ["magma_Bit_or_inst0.in1","magma_Bit_and_inst3.out"], + ["magma_Bits_17_add_inst1.out.15","magma_Bit_not_inst0.in"], + ["self.a.15","magma_Bit_not_inst1.in"], + ["self.b.15","magma_Bit_not_inst2.in"], + ["self.O5","magma_Bit_or_inst0.out"], + ["magma_Bits_17_add_inst1.out.0:16","magma_Bits_16_eq_inst0.in0.0:16"], + ["self.O2","magma_Bits_16_eq_inst0.out"], + ["self.a.0:16","magma_Bits_17_add_inst0.in0.0:16"], + ["self.b.0:16","magma_Bits_17_add_inst0.in1.0:16"], + ["magma_Bits_17_add_inst1.in0","magma_Bits_17_add_inst0.out"], + ["self.O0.0:16","magma_Bits_17_add_inst1.out.0:16"], + ["self.O3","magma_Bits_17_add_inst1.out.15"], + ["self.O1","magma_Bits_17_add_inst1.out.16"], + ["self.O4","magma_Bits_17_add_inst1.out.16"] + ] + }, + "Cond":{ + "type":["Record",[ + ["code",["Array",5,"BitIn"]], + ["alu","BitIn"], + ["Z","BitIn"], + ["N","BitIn"], + ["C","BitIn"], + ["V","BitIn"], + ["O","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xBit_inst0":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst1":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst10":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst11":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst12":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst13":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst14":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst15":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst16":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst17":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst2":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst3":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst4":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst5":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst6":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst7":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst8":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst9":{ + "modref":"global.Mux2xBit" + }, + "const_0_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h00"]} + }, + "const_10_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h0a"]} + }, + "const_11_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h0b"]} + }, + "const_12_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h0c"]} + }, + "const_13_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h0d"]} + }, + "const_14_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h0e"]} + }, + "const_15_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h0f"]} + }, + "const_16_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h10"]} + }, + "const_17_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h11"]} + }, + "const_1_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h01"]} + }, + "const_2_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h02"]} + }, + "const_3_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h03"]} + }, + "const_4_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h04"]} + }, + "const_5_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h05"]} + }, + "const_6_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h06"]} + }, + "const_7_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h07"]} + }, + "const_8_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h08"]} + }, + "const_9_5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",5]}, + "modargs":{"value":[["BitVector",5],"5'h09"]} + }, + "magma_Bit_and_inst0":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst1":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst2":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst3":{ + "modref":"corebit.and" + }, + "magma_Bit_not_inst0":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst1":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst10":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst11":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst12":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst2":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst3":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst4":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst5":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst6":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst7":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst8":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst9":{ + "modref":"corebit.not" + }, + "magma_Bit_or_inst0":{ + "modref":"corebit.or" + }, + "magma_Bit_or_inst1":{ + "modref":"corebit.or" + }, + "magma_Bit_or_inst2":{ + "modref":"corebit.or" + }, + "magma_Bit_or_inst3":{ + "modref":"corebit.or" + }, + "magma_Bit_or_inst4":{ + "modref":"corebit.or" + }, + "magma_Bit_or_inst5":{ + "modref":"corebit.or" + }, + "magma_Bit_xor_inst0":{ + "modref":"corebit.xor" + }, + "magma_Bit_xor_inst1":{ + "modref":"corebit.xor" + }, + "magma_Bit_xor_inst2":{ + "modref":"corebit.xor" + }, + "magma_Bit_xor_inst3":{ + "modref":"corebit.xor" + }, + "magma_Bits_5_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst1":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst10":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst11":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst12":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst13":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst14":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst15":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst16":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst17":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst18":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst19":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst2":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst3":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst4":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst5":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst6":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst7":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst8":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + }, + "magma_Bits_5_eq_inst9":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",5]} + } + }, + "connections":[ + ["magma_Bit_and_inst3.out","Mux2xBit_inst0.I0"], + ["magma_Bit_or_inst5.out","Mux2xBit_inst0.I1"], + ["Mux2xBit_inst1.I0","Mux2xBit_inst0.O"], + ["magma_Bits_5_eq_inst0.out","Mux2xBit_inst0.S"], + ["magma_Bit_and_inst2.out","Mux2xBit_inst1.I1"], + ["Mux2xBit_inst2.I0","Mux2xBit_inst1.O"], + ["magma_Bits_5_eq_inst1.out","Mux2xBit_inst1.S"], + ["Mux2xBit_inst9.O","Mux2xBit_inst10.I0"], + ["magma_Bit_not_inst3.out","Mux2xBit_inst10.I1"], + ["Mux2xBit_inst11.I0","Mux2xBit_inst10.O"], + ["magma_Bits_5_eq_inst10.out","Mux2xBit_inst10.S"], + ["self.V","Mux2xBit_inst11.I1"], + ["Mux2xBit_inst12.I0","Mux2xBit_inst11.O"], + ["magma_Bits_5_eq_inst11.out","Mux2xBit_inst11.S"], + ["magma_Bit_not_inst2.out","Mux2xBit_inst12.I1"], + ["Mux2xBit_inst13.I0","Mux2xBit_inst12.O"], + ["magma_Bits_5_eq_inst12.out","Mux2xBit_inst12.S"], + ["self.N","Mux2xBit_inst13.I1"], + ["Mux2xBit_inst14.I0","Mux2xBit_inst13.O"], + ["magma_Bits_5_eq_inst13.out","Mux2xBit_inst13.S"], + ["magma_Bit_not_inst1.out","Mux2xBit_inst14.I1"], + ["Mux2xBit_inst15.I0","Mux2xBit_inst14.O"], + ["magma_Bit_or_inst0.out","Mux2xBit_inst14.S"], + ["self.C","Mux2xBit_inst15.I1"], + ["Mux2xBit_inst16.I0","Mux2xBit_inst15.O"], + ["magma_Bit_or_inst1.out","Mux2xBit_inst15.S"], + ["magma_Bit_not_inst0.out","Mux2xBit_inst16.I1"], + ["Mux2xBit_inst17.I0","Mux2xBit_inst16.O"], + ["magma_Bits_5_eq_inst18.out","Mux2xBit_inst16.S"], + ["self.Z","Mux2xBit_inst17.I1"], + ["self.O","Mux2xBit_inst17.O"], + ["magma_Bits_5_eq_inst19.out","Mux2xBit_inst17.S"], + ["magma_Bit_or_inst4.out","Mux2xBit_inst2.I1"], + ["Mux2xBit_inst3.I0","Mux2xBit_inst2.O"], + ["magma_Bits_5_eq_inst2.out","Mux2xBit_inst2.S"], + ["self.alu","Mux2xBit_inst3.I1"], + ["Mux2xBit_inst4.I0","Mux2xBit_inst3.O"], + ["magma_Bits_5_eq_inst3.out","Mux2xBit_inst3.S"], + ["magma_Bit_or_inst3.out","Mux2xBit_inst4.I1"], + ["Mux2xBit_inst5.I0","Mux2xBit_inst4.O"], + ["magma_Bits_5_eq_inst4.out","Mux2xBit_inst4.S"], + ["magma_Bit_and_inst1.out","Mux2xBit_inst5.I1"], + ["Mux2xBit_inst6.I0","Mux2xBit_inst5.O"], + ["magma_Bits_5_eq_inst5.out","Mux2xBit_inst5.S"], + ["magma_Bit_xor_inst1.out","Mux2xBit_inst6.I1"], + ["Mux2xBit_inst7.I0","Mux2xBit_inst6.O"], + ["magma_Bits_5_eq_inst6.out","Mux2xBit_inst6.S"], + ["magma_Bit_not_inst6.out","Mux2xBit_inst7.I1"], + ["Mux2xBit_inst8.I0","Mux2xBit_inst7.O"], + ["magma_Bits_5_eq_inst7.out","Mux2xBit_inst7.S"], + ["magma_Bit_or_inst2.out","Mux2xBit_inst8.I1"], + ["Mux2xBit_inst9.I0","Mux2xBit_inst8.O"], + ["magma_Bits_5_eq_inst8.out","Mux2xBit_inst8.S"], + ["magma_Bit_and_inst0.out","Mux2xBit_inst9.I1"], + ["magma_Bits_5_eq_inst9.out","Mux2xBit_inst9.S"], + ["magma_Bits_5_eq_inst19.in1","const_0_5.out"], + ["magma_Bits_5_eq_inst7.in1","const_10_5.out"], + ["magma_Bits_5_eq_inst6.in1","const_11_5.out"], + ["magma_Bits_5_eq_inst5.in1","const_12_5.out"], + ["magma_Bits_5_eq_inst4.in1","const_13_5.out"], + ["magma_Bits_5_eq_inst3.in1","const_14_5.out"], + ["magma_Bits_5_eq_inst2.in1","const_15_5.out"], + ["magma_Bits_5_eq_inst1.in1","const_16_5.out"], + ["magma_Bits_5_eq_inst0.in1","const_17_5.out"], + ["magma_Bits_5_eq_inst18.in1","const_1_5.out"], + ["magma_Bits_5_eq_inst16.in1","const_2_5.out"], + ["magma_Bits_5_eq_inst17.in1","const_2_5.out"], + ["magma_Bits_5_eq_inst14.in1","const_3_5.out"], + ["magma_Bits_5_eq_inst15.in1","const_3_5.out"], + ["magma_Bits_5_eq_inst13.in1","const_4_5.out"], + ["magma_Bits_5_eq_inst12.in1","const_5_5.out"], + ["magma_Bits_5_eq_inst11.in1","const_6_5.out"], + ["magma_Bits_5_eq_inst10.in1","const_7_5.out"], + ["magma_Bits_5_eq_inst9.in1","const_8_5.out"], + ["magma_Bits_5_eq_inst8.in1","const_9_5.out"], + ["self.C","magma_Bit_and_inst0.in0"], + ["magma_Bit_not_inst4.out","magma_Bit_and_inst0.in1"], + ["magma_Bit_not_inst7.out","magma_Bit_and_inst1.in0"], + ["magma_Bit_not_inst8.out","magma_Bit_and_inst1.in1"], + ["magma_Bit_not_inst10.out","magma_Bit_and_inst2.in0"], + ["magma_Bit_not_inst11.out","magma_Bit_and_inst2.in1"], + ["self.N","magma_Bit_and_inst3.in0"], + ["magma_Bit_not_inst12.out","magma_Bit_and_inst3.in1"], + ["self.Z","magma_Bit_not_inst0.in"], + ["self.C","magma_Bit_not_inst1.in"], + ["self.N","magma_Bit_not_inst10.in"], + ["self.Z","magma_Bit_not_inst11.in"], + ["self.Z","magma_Bit_not_inst12.in"], + ["self.N","magma_Bit_not_inst2.in"], + ["self.V","magma_Bit_not_inst3.in"], + ["self.Z","magma_Bit_not_inst4.in"], + ["self.C","magma_Bit_not_inst5.in"], + ["magma_Bit_or_inst2.in0","magma_Bit_not_inst5.out"], + ["magma_Bit_xor_inst0.out","magma_Bit_not_inst6.in"], + ["self.Z","magma_Bit_not_inst7.in"], + ["magma_Bit_xor_inst2.out","magma_Bit_not_inst8.in"], + ["self.N","magma_Bit_not_inst9.in"], + ["magma_Bit_or_inst4.in0","magma_Bit_not_inst9.out"], + ["magma_Bits_5_eq_inst14.out","magma_Bit_or_inst0.in0"], + ["magma_Bits_5_eq_inst15.out","magma_Bit_or_inst0.in1"], + ["magma_Bits_5_eq_inst16.out","magma_Bit_or_inst1.in0"], + ["magma_Bits_5_eq_inst17.out","magma_Bit_or_inst1.in1"], + ["self.Z","magma_Bit_or_inst2.in1"], + ["self.Z","magma_Bit_or_inst3.in0"], + ["magma_Bit_xor_inst3.out","magma_Bit_or_inst3.in1"], + ["self.Z","magma_Bit_or_inst4.in1"], + ["self.N","magma_Bit_or_inst5.in0"], + ["self.Z","magma_Bit_or_inst5.in1"], + ["self.N","magma_Bit_xor_inst0.in0"], + ["self.V","magma_Bit_xor_inst0.in1"], + ["self.N","magma_Bit_xor_inst1.in0"], + ["self.V","magma_Bit_xor_inst1.in1"], + ["self.N","magma_Bit_xor_inst2.in0"], + ["self.V","magma_Bit_xor_inst2.in1"], + ["self.N","magma_Bit_xor_inst3.in0"], + ["self.V","magma_Bit_xor_inst3.in1"], + ["self.code","magma_Bits_5_eq_inst0.in0"], + ["self.code","magma_Bits_5_eq_inst1.in0"], + ["self.code","magma_Bits_5_eq_inst10.in0"], + ["self.code","magma_Bits_5_eq_inst11.in0"], + ["self.code","magma_Bits_5_eq_inst12.in0"], + ["self.code","magma_Bits_5_eq_inst13.in0"], + ["self.code","magma_Bits_5_eq_inst14.in0"], + ["self.code","magma_Bits_5_eq_inst15.in0"], + ["self.code","magma_Bits_5_eq_inst16.in0"], + ["self.code","magma_Bits_5_eq_inst17.in0"], + ["self.code","magma_Bits_5_eq_inst18.in0"], + ["self.code","magma_Bits_5_eq_inst19.in0"], + ["self.code","magma_Bits_5_eq_inst2.in0"], + ["self.code","magma_Bits_5_eq_inst3.in0"], + ["self.code","magma_Bits_5_eq_inst4.in0"], + ["self.code","magma_Bits_5_eq_inst5.in0"], + ["self.code","magma_Bits_5_eq_inst6.in0"], + ["self.code","magma_Bits_5_eq_inst7.in0"], + ["self.code","magma_Bits_5_eq_inst8.in0"], + ["self.code","magma_Bits_5_eq_inst9.in0"] + ] + }, + "GTE":{ + "type":["Record",[ + ["signed_",["Array",1,"BitIn"]], + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2","Bit"], + ["O3","Bit"], + ["O4","Bit"], + ["O5","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xBit_inst0":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBits16_inst0":{ + "modref":"global.Mux2xBits16" + }, + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_1_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h1"]} + }, + "magma_Bits_16_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_sge_inst0":{ + "genref":"coreir.sge", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_uge_inst0":{ + "genref":"coreir.uge", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_1_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + } + }, + "connections":[ + ["magma_Bits_16_uge_inst0.out","Mux2xBit_inst0.I0"], + ["magma_Bits_16_sge_inst0.out","Mux2xBit_inst0.I1"], + ["Mux2xBits16_inst0.S","Mux2xBit_inst0.O"], + ["self.O1","Mux2xBit_inst0.O"], + ["magma_Bits_1_eq_inst0.out","Mux2xBit_inst0.S"], + ["self.b","Mux2xBits16_inst0.I0"], + ["self.a","Mux2xBits16_inst0.I1"], + ["magma_Bits_16_eq_inst0.in0","Mux2xBits16_inst0.O"], + ["self.O0","Mux2xBits16_inst0.O"], + ["self.O3","Mux2xBits16_inst0.O.15"], + ["self.O4","bit_const_0_None.out"], + ["self.O5","bit_const_0_None.out"], + ["magma_Bits_16_eq_inst0.in1","const_0_16.out"], + ["magma_Bits_1_eq_inst0.in1","const_1_1.out"], + ["self.O2","magma_Bits_16_eq_inst0.out"], + ["self.a","magma_Bits_16_sge_inst0.in0"], + ["self.b","magma_Bits_16_sge_inst0.in1"], + ["self.a","magma_Bits_16_uge_inst0.in0"], + ["self.b","magma_Bits_16_uge_inst0.in1"], + ["self.signed_","magma_Bits_1_eq_inst0.in0"] + ] + }, + "LTE":{ + "type":["Record",[ + ["signed_",["Array",1,"BitIn"]], + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2","Bit"], + ["O3","Bit"], + ["O4","Bit"], + ["O5","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xBit_inst0":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBits16_inst0":{ + "modref":"global.Mux2xBits16" + }, + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_1_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h1"]} + }, + "magma_Bits_16_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_sle_inst0":{ + "genref":"coreir.sle", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_ule_inst0":{ + "genref":"coreir.ule", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_1_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + } + }, + "connections":[ + ["magma_Bits_16_ule_inst0.out","Mux2xBit_inst0.I0"], + ["magma_Bits_16_sle_inst0.out","Mux2xBit_inst0.I1"], + ["Mux2xBits16_inst0.S","Mux2xBit_inst0.O"], + ["self.O1","Mux2xBit_inst0.O"], + ["magma_Bits_1_eq_inst0.out","Mux2xBit_inst0.S"], + ["self.b","Mux2xBits16_inst0.I0"], + ["self.a","Mux2xBits16_inst0.I1"], + ["magma_Bits_16_eq_inst0.in0","Mux2xBits16_inst0.O"], + ["self.O0","Mux2xBits16_inst0.O"], + ["self.O3","Mux2xBits16_inst0.O.15"], + ["self.O4","bit_const_0_None.out"], + ["self.O5","bit_const_0_None.out"], + ["magma_Bits_16_eq_inst0.in1","const_0_16.out"], + ["magma_Bits_1_eq_inst0.in1","const_1_1.out"], + ["self.O2","magma_Bits_16_eq_inst0.out"], + ["self.a","magma_Bits_16_sle_inst0.in0"], + ["self.b","magma_Bits_16_sle_inst0.in1"], + ["self.a","magma_Bits_16_ule_inst0.in0"], + ["self.b","magma_Bits_16_ule_inst0.in1"], + ["self.signed_","magma_Bits_1_eq_inst0.in0"] + ] + }, + "LUT":{ + "type":["Record",[ + ["lut",["Array",8,"BitIn"]], + ["bit0","BitIn"], + ["bit1","BitIn"], + ["bit2","BitIn"], + ["O","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_1_8":{ + "genref":"coreir.const", + "genargs":{"width":["Int",8]}, + "modargs":{"value":[["BitVector",8],"8'h01"]} + }, + "magma_Bits_8_and_inst0":{ + "genref":"coreir.and", + "genargs":{"width":["Int",8]} + }, + "magma_Bits_8_lshr_inst0":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",8]} + } + }, + "connections":[ + ["magma_Bits_8_lshr_inst0.in1.3","bit_const_0_None.out"], + ["magma_Bits_8_lshr_inst0.in1.4","bit_const_0_None.out"], + ["magma_Bits_8_lshr_inst0.in1.5","bit_const_0_None.out"], + ["magma_Bits_8_lshr_inst0.in1.6","bit_const_0_None.out"], + ["magma_Bits_8_lshr_inst0.in1.7","bit_const_0_None.out"], + ["magma_Bits_8_and_inst0.in1","const_1_8.out"], + ["magma_Bits_8_lshr_inst0.out","magma_Bits_8_and_inst0.in0"], + ["self.O","magma_Bits_8_and_inst0.out.0"], + ["self.lut","magma_Bits_8_lshr_inst0.in0"], + ["self.bit0","magma_Bits_8_lshr_inst0.in1.0"], + ["self.bit1","magma_Bits_8_lshr_inst0.in1.1"], + ["self.bit2","magma_Bits_8_lshr_inst0.in1.2"] + ] + }, + "MUL":{ + "type":["Record",[ + ["instr",["Array",1,"BitIn"]], + ["signed_",["Array",1,"BitIn"]], + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xUInt16_inst0":{ + "modref":"global.Mux2xUInt16" + }, + "Mux2xUInt32_inst0":{ + "modref":"global.Mux2xUInt32" + }, + "Mux2xUInt32_inst1":{ + "modref":"global.Mux2xUInt32" + }, + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h0"]} + }, + "const_1_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h1"]} + }, + "magma_Bits_1_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + }, + "magma_Bits_1_eq_inst1":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + }, + "magma_Bits_32_mul_inst0":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",32]} + } + }, + "connections":[ + ["magma_Bits_32_mul_inst0.out.16:32","Mux2xUInt16_inst0.I0.0:16"], + ["magma_Bits_32_mul_inst0.out.0:16","Mux2xUInt16_inst0.I1.0:16"], + ["self.O","Mux2xUInt16_inst0.O"], + ["magma_Bits_1_eq_inst1.out","Mux2xUInt16_inst0.S"], + ["self.a.0:16","Mux2xUInt32_inst0.I0.0:16"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.16"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.17"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.18"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.19"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.20"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.21"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.22"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.23"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.24"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.25"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.26"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.27"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.28"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.29"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.30"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.31"], + ["self.a.0:16","Mux2xUInt32_inst0.I1.0:16"], + ["self.a.15","Mux2xUInt32_inst0.I1.16"], + ["self.a.15","Mux2xUInt32_inst0.I1.17"], + ["self.a.15","Mux2xUInt32_inst0.I1.18"], + ["self.a.15","Mux2xUInt32_inst0.I1.19"], + ["self.a.15","Mux2xUInt32_inst0.I1.20"], + ["self.a.15","Mux2xUInt32_inst0.I1.21"], + ["self.a.15","Mux2xUInt32_inst0.I1.22"], + ["self.a.15","Mux2xUInt32_inst0.I1.23"], + ["self.a.15","Mux2xUInt32_inst0.I1.24"], + ["self.a.15","Mux2xUInt32_inst0.I1.25"], + ["self.a.15","Mux2xUInt32_inst0.I1.26"], + ["self.a.15","Mux2xUInt32_inst0.I1.27"], + ["self.a.15","Mux2xUInt32_inst0.I1.28"], + ["self.a.15","Mux2xUInt32_inst0.I1.29"], + ["self.a.15","Mux2xUInt32_inst0.I1.30"], + ["self.a.15","Mux2xUInt32_inst0.I1.31"], + ["magma_Bits_32_mul_inst0.in0","Mux2xUInt32_inst0.O"], + ["magma_Bits_1_eq_inst0.out","Mux2xUInt32_inst0.S"], + ["self.b.0:16","Mux2xUInt32_inst1.I0.0:16"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.16"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.17"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.18"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.19"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.20"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.21"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.22"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.23"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.24"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.25"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.26"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.27"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.28"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.29"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.30"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.31"], + ["self.b.0:16","Mux2xUInt32_inst1.I1.0:16"], + ["self.b.15","Mux2xUInt32_inst1.I1.16"], + ["self.b.15","Mux2xUInt32_inst1.I1.17"], + ["self.b.15","Mux2xUInt32_inst1.I1.18"], + ["self.b.15","Mux2xUInt32_inst1.I1.19"], + ["self.b.15","Mux2xUInt32_inst1.I1.20"], + ["self.b.15","Mux2xUInt32_inst1.I1.21"], + ["self.b.15","Mux2xUInt32_inst1.I1.22"], + ["self.b.15","Mux2xUInt32_inst1.I1.23"], + ["self.b.15","Mux2xUInt32_inst1.I1.24"], + ["self.b.15","Mux2xUInt32_inst1.I1.25"], + ["self.b.15","Mux2xUInt32_inst1.I1.26"], + ["self.b.15","Mux2xUInt32_inst1.I1.27"], + ["self.b.15","Mux2xUInt32_inst1.I1.28"], + ["self.b.15","Mux2xUInt32_inst1.I1.29"], + ["self.b.15","Mux2xUInt32_inst1.I1.30"], + ["self.b.15","Mux2xUInt32_inst1.I1.31"], + ["magma_Bits_32_mul_inst0.in1","Mux2xUInt32_inst1.O"], + ["magma_Bits_1_eq_inst0.out","Mux2xUInt32_inst1.S"], + ["magma_Bits_1_eq_inst1.in1","const_0_1.out"], + ["magma_Bits_1_eq_inst0.in1","const_1_1.out"], + ["self.signed_","magma_Bits_1_eq_inst0.in0"], + ["self.instr","magma_Bits_1_eq_inst1.in0"] + ] + }, + "Mux":{ + "type":["Record",[ + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["sel","BitIn"], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xBits16_inst0":{ + "modref":"global.Mux2xBits16" + } + }, + "connections":[ + ["self.a","Mux2xBits16_inst0.I0"], + ["self.b","Mux2xBits16_inst0.I1"], + ["self.O","Mux2xBits16_inst0.O"], + ["self.sel","Mux2xBits16_inst0.S"] + ] + }, + "Mux2xBit":{ + "type":["Record",[ + ["I0","BitIn"], + ["I1","BitIn"], + ["S","BitIn"], + ["O","Bit"] + ]], + "instances":{ + "coreir_commonlib_mux2x1_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",1]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x1_inst0.in.data.0.0"], + ["self.I1","coreir_commonlib_mux2x1_inst0.in.data.1.0"], + ["self.S","coreir_commonlib_mux2x1_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x1_inst0.out.0"] + ] + }, + "Mux2xBits16":{ + "type":["Record",[ + ["I0",["Array",16,"BitIn"]], + ["I1",["Array",16,"BitIn"]], + ["S","BitIn"], + ["O",["Array",16,"Bit"]] + ]], + "instances":{ + "coreir_commonlib_mux2x16_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",16]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x16_inst0.in.data.0"], + ["self.I1","coreir_commonlib_mux2x16_inst0.in.data.1"], + ["self.S","coreir_commonlib_mux2x16_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x16_inst0.out"] + ] + }, + "Mux2xSInt16":{ + "type":["Record",[ + ["I0",["Array",16,"BitIn"]], + ["I1",["Array",16,"BitIn"]], + ["S","BitIn"], + ["O",["Array",16,"Bit"]] + ]], + "instances":{ + "coreir_commonlib_mux2x16_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",16]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x16_inst0.in.data.0"], + ["self.I1","coreir_commonlib_mux2x16_inst0.in.data.1"], + ["self.S","coreir_commonlib_mux2x16_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x16_inst0.out"] + ] + }, + "Mux2xUInt16":{ + "type":["Record",[ + ["I0",["Array",16,"BitIn"]], + ["I1",["Array",16,"BitIn"]], + ["S","BitIn"], + ["O",["Array",16,"Bit"]] + ]], + "instances":{ + "coreir_commonlib_mux2x16_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",16]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x16_inst0.in.data.0"], + ["self.I1","coreir_commonlib_mux2x16_inst0.in.data.1"], + ["self.S","coreir_commonlib_mux2x16_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x16_inst0.out"] + ] + }, + "Mux2xUInt32":{ + "type":["Record",[ + ["I0",["Array",32,"BitIn"]], + ["I1",["Array",32,"BitIn"]], + ["S","BitIn"], + ["O",["Array",32,"Bit"]] + ]], + "instances":{ + "coreir_commonlib_mux2x32_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",32]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x32_inst0.in.data.0"], + ["self.I1","coreir_commonlib_mux2x32_inst0.in.data.1"], + ["self.S","coreir_commonlib_mux2x32_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x32_inst0.out"] + ] + }, + "PE":{ + "type":["Record",[ + ["inst",["Array",51,"BitIn"]], + ["inputs0",["Array",16,"BitIn"]], + ["inputs1",["Array",16,"BitIn"]], + ["inputs2",["Array",16,"BitIn"]], + ["inputs3","BitIn"], + ["inputs4","BitIn"], + ["inputs5","BitIn"], + ["clk_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "PE_gen_inst0":{ + "modref":"global.PE_gen" + } + }, + "connections":[ + ["self.ASYNCRESET","PE_gen_inst0.ASYNCRESET"], + ["self.CLK","PE_gen_inst0.CLK"], + ["self.O0.0:16","PE_gen_inst0.O.0:16"], + ["self.O1","PE_gen_inst0.O.16"], + ["self.clk_en","PE_gen_inst0.clk_en"], + ["self.inputs0.0:16","PE_gen_inst0.inputs.0:16"], + ["self.inputs1.0:16","PE_gen_inst0.inputs.16:32"], + ["self.inputs2.0:16","PE_gen_inst0.inputs.32:48"], + ["self.inputs3","PE_gen_inst0.inputs.48"], + ["self.inputs4","PE_gen_inst0.inputs.49"], + ["self.inputs5","PE_gen_inst0.inputs.50"], + ["self.inst","PE_gen_inst0.inst"] + ] + }, + "PE_gen":{ + "type":["Record",[ + ["inst",["Array",51,"BitIn"]], + ["inputs",["Array",51,"BitIn"]], + ["clk_en","BitIn"], + ["O",["Array",17,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "ADD_inst0":{ + "modref":"global.ADD" + }, + "ADD_inst1":{ + "modref":"global.ADD" + }, + "Cond_inst1":{ + "modref":"global.Cond" + }, + "Cond_inst2":{ + "modref":"global.Cond" + }, + "GTE_inst0":{ + "modref":"global.GTE" + }, + "LTE_inst0":{ + "modref":"global.LTE" + }, + "LUT_inst0":{ + "modref":"global.LUT" + }, + "MUL_inst0":{ + "modref":"global.MUL" + }, + "Mux2xBit_inst0":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst1":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst2":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBit_inst3":{ + "modref":"global.Mux2xBit" + }, + "Mux2xBits16_inst0":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst1":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst2":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst3":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst4":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst5":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst6":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst7":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst8":{ + "modref":"global.Mux2xBits16" + }, + "Mux_inst0":{ + "modref":"global.Mux" + }, + "SHR_inst0":{ + "modref":"global.SHR" + }, + "SUB_inst0":{ + "modref":"global.SUB" + }, + "const_0_2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",2]}, + "modargs":{"value":[["BitVector",2],"2'h0"]} + }, + "const_0_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h0"]} + }, + "const_1_2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",2]}, + "modargs":{"value":[["BitVector",2],"2'h1"]} + }, + "const_1_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h1"]} + }, + "const_2_2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",2]}, + "modargs":{"value":[["BitVector",2],"2'h2"]} + }, + "const_2_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h2"]} + }, + "const_3_2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",2]}, + "modargs":{"value":[["BitVector",2],"2'h3"]} + }, + "const_3_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h3"]} + }, + "const_4_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h4"]} + }, + "const_5_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h5"]} + }, + "const_6_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h6"]} + }, + "const_7_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h7"]} + }, + "const_8_4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",4]}, + "modargs":{"value":[["BitVector",4],"4'h8"]} + }, + "magma_Bits_2_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",2]} + }, + "magma_Bits_2_eq_inst1":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",2]} + }, + "magma_Bits_2_eq_inst2":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",2]} + }, + "magma_Bits_2_eq_inst3":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",2]} + }, + "magma_Bits_4_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst1":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst2":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst3":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst4":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst5":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst6":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst7":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + }, + "magma_Bits_4_eq_inst8":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",4]} + } + }, + "connections":[ + ["self.ASYNCRESET","ADD_inst0.ASYNCRESET"], + ["self.CLK","ADD_inst0.CLK"], + ["ADD_inst1.b","ADD_inst0.O0"], + ["Mux2xBits16_inst0.I0","ADD_inst0.O0"], + ["Mux2xBits16_inst0.I1","ADD_inst0.O0"], + ["self.inputs.0:16","ADD_inst0.a.0:16"], + ["self.inputs.16:32","ADD_inst0.b.0:16"], + ["self.ASYNCRESET","ADD_inst1.ASYNCRESET"], + ["self.CLK","ADD_inst1.CLK"], + ["Mux2xBits16_inst8.I1","ADD_inst1.O0"], + ["self.inputs.32:48","ADD_inst1.a.0:16"], + ["self.ASYNCRESET","Cond_inst1.ASYNCRESET"], + ["LTE_inst0.O4","Cond_inst1.C"], + ["self.CLK","Cond_inst1.CLK"], + ["LTE_inst0.O3","Cond_inst1.N"], + ["Mux2xBit_inst0.I0","Cond_inst1.O"], + ["Mux2xBit_inst0.I1","Cond_inst1.O"], + ["LTE_inst0.O5","Cond_inst1.V"], + ["LTE_inst0.O2","Cond_inst1.Z"], + ["LTE_inst0.O1","Cond_inst1.alu"], + ["self.inst.5:10","Cond_inst1.code.0:5"], + ["self.ASYNCRESET","Cond_inst2.ASYNCRESET"], + ["SUB_inst0.O4","Cond_inst2.C"], + ["self.CLK","Cond_inst2.CLK"], + ["SUB_inst0.O3","Cond_inst2.N"], + ["Mux2xBit_inst2.I1","Cond_inst2.O"], + ["SUB_inst0.O5","Cond_inst2.V"], + ["SUB_inst0.O2","Cond_inst2.Z"], + ["SUB_inst0.O1","Cond_inst2.alu"], + ["self.inst.10:15","Cond_inst2.code.0:5"], + ["self.ASYNCRESET","GTE_inst0.ASYNCRESET"], + ["self.CLK","GTE_inst0.CLK"], + ["Mux2xBits16_inst4.I1","GTE_inst0.O0"], + ["self.inputs.32:48","GTE_inst0.a.0:16"], + ["self.inputs.16:32","GTE_inst0.b.0:16"], + ["self.inst.39","GTE_inst0.signed_.0"], + ["self.ASYNCRESET","LTE_inst0.ASYNCRESET"], + ["self.CLK","LTE_inst0.CLK"], + ["Mux2xBits16_inst2.I1","LTE_inst0.O0"], + ["self.inputs.32:48","LTE_inst0.a.0:16"], + ["self.inputs.16:32","LTE_inst0.b.0:16"], + ["self.inst.40","LTE_inst0.signed_.0"], + ["self.ASYNCRESET","LUT_inst0.ASYNCRESET"], + ["self.CLK","LUT_inst0.CLK"], + ["Mux2xBit_inst3.I1","LUT_inst0.O"], + ["self.inputs.48","LUT_inst0.bit0"], + ["self.inputs.49","LUT_inst0.bit1"], + ["self.inputs.50","LUT_inst0.bit2"], + ["self.inst.43:51","LUT_inst0.lut.0:8"], + ["self.ASYNCRESET","MUL_inst0.ASYNCRESET"], + ["self.CLK","MUL_inst0.CLK"], + ["Mux2xBits16_inst7.I1","MUL_inst0.O"], + ["self.inputs.32:48","MUL_inst0.a.0:16"], + ["self.inputs.16:32","MUL_inst0.b.0:16"], + ["self.inst.15","MUL_inst0.instr.0"], + ["self.inst.41","MUL_inst0.signed_.0"], + ["Mux2xBit_inst1.I0","Mux2xBit_inst0.O"], + ["magma_Bits_2_eq_inst0.out","Mux2xBit_inst0.S"], + ["self.inst.32","Mux2xBit_inst1.I1"], + ["Mux2xBit_inst2.I0","Mux2xBit_inst1.O"], + ["magma_Bits_2_eq_inst1.out","Mux2xBit_inst1.S"], + ["Mux2xBit_inst3.I0","Mux2xBit_inst2.O"], + ["magma_Bits_2_eq_inst2.out","Mux2xBit_inst2.S"], + ["self.O.16","Mux2xBit_inst3.O"], + ["magma_Bits_2_eq_inst3.out","Mux2xBit_inst3.S"], + ["Mux2xBits16_inst1.I0","Mux2xBits16_inst0.O"], + ["magma_Bits_4_eq_inst0.out","Mux2xBits16_inst0.S"], + ["self.inst.16:32","Mux2xBits16_inst1.I1.0:16"], + ["Mux2xBits16_inst2.I0","Mux2xBits16_inst1.O"], + ["magma_Bits_4_eq_inst1.out","Mux2xBits16_inst1.S"], + ["Mux2xBits16_inst3.I0","Mux2xBits16_inst2.O"], + ["magma_Bits_4_eq_inst2.out","Mux2xBits16_inst2.S"], + ["SUB_inst0.O0","Mux2xBits16_inst3.I1"], + ["Mux2xBits16_inst4.I0","Mux2xBits16_inst3.O"], + ["magma_Bits_4_eq_inst3.out","Mux2xBits16_inst3.S"], + ["Mux2xBits16_inst5.I0","Mux2xBits16_inst4.O"], + ["magma_Bits_4_eq_inst4.out","Mux2xBits16_inst4.S"], + ["Mux_inst0.O","Mux2xBits16_inst5.I1"], + ["Mux2xBits16_inst6.I0","Mux2xBits16_inst5.O"], + ["magma_Bits_4_eq_inst5.out","Mux2xBits16_inst5.S"], + ["SHR_inst0.O0","Mux2xBits16_inst6.I1"], + ["Mux2xBits16_inst7.I0","Mux2xBits16_inst6.O"], + ["magma_Bits_4_eq_inst6.out","Mux2xBits16_inst6.S"], + ["Mux2xBits16_inst8.I0","Mux2xBits16_inst7.O"], + ["magma_Bits_4_eq_inst7.out","Mux2xBits16_inst7.S"], + ["self.O.0:16","Mux2xBits16_inst8.O.0:16"], + ["magma_Bits_4_eq_inst8.out","Mux2xBits16_inst8.S"], + ["self.ASYNCRESET","Mux_inst0.ASYNCRESET"], + ["self.CLK","Mux_inst0.CLK"], + ["self.inputs.32:48","Mux_inst0.a.0:16"], + ["self.inputs.0:16","Mux_inst0.b.0:16"], + ["self.inputs.48","Mux_inst0.sel"], + ["self.ASYNCRESET","SHR_inst0.ASYNCRESET"], + ["self.CLK","SHR_inst0.CLK"], + ["self.inputs.32:48","SHR_inst0.a.0:16"], + ["self.inputs.16:32","SHR_inst0.b.0:16"], + ["self.inst.42","SHR_inst0.signed_.0"], + ["self.ASYNCRESET","SUB_inst0.ASYNCRESET"], + ["self.CLK","SUB_inst0.CLK"], + ["self.inputs.32:48","SUB_inst0.a.0:16"], + ["self.inputs.16:32","SUB_inst0.b.0:16"], + ["magma_Bits_2_eq_inst0.in1","const_0_2.out"], + ["magma_Bits_4_eq_inst0.in1","const_0_4.out"], + ["magma_Bits_2_eq_inst1.in1","const_1_2.out"], + ["magma_Bits_4_eq_inst1.in1","const_1_4.out"], + ["magma_Bits_2_eq_inst2.in1","const_2_2.out"], + ["magma_Bits_4_eq_inst2.in1","const_2_4.out"], + ["magma_Bits_2_eq_inst3.in1","const_3_2.out"], + ["magma_Bits_4_eq_inst3.in1","const_3_4.out"], + ["magma_Bits_4_eq_inst4.in1","const_4_4.out"], + ["magma_Bits_4_eq_inst5.in1","const_5_4.out"], + ["magma_Bits_4_eq_inst6.in1","const_6_4.out"], + ["magma_Bits_4_eq_inst7.in1","const_7_4.out"], + ["magma_Bits_4_eq_inst8.in1","const_8_4.out"], + ["self.inst.37:39","magma_Bits_2_eq_inst0.in0.0:2"], + ["self.inst.37:39","magma_Bits_2_eq_inst1.in0.0:2"], + ["self.inst.37:39","magma_Bits_2_eq_inst2.in0.0:2"], + ["self.inst.37:39","magma_Bits_2_eq_inst3.in0.0:2"], + ["self.inst.33:37","magma_Bits_4_eq_inst0.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst1.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst2.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst3.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst4.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst5.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst6.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst7.in0.0:4"], + ["self.inst.33:37","magma_Bits_4_eq_inst8.in0.0:4"] + ] + }, + "SHR":{ + "type":["Record",[ + ["signed_",["Array",1,"BitIn"]], + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2","Bit"], + ["O3","Bit"], + ["O4","Bit"], + ["O5","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xBits16_inst0":{ + "modref":"global.Mux2xBits16" + }, + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_1_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h1"]} + }, + "magma_Bits_16_ashr_inst0":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_lshr_inst0":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_1_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + } + }, + "connections":[ + ["magma_Bits_16_lshr_inst0.out","Mux2xBits16_inst0.I0"], + ["magma_Bits_16_ashr_inst0.out","Mux2xBits16_inst0.I1"], + ["magma_Bits_16_eq_inst0.in0","Mux2xBits16_inst0.O"], + ["self.O0","Mux2xBits16_inst0.O"], + ["self.O3","Mux2xBits16_inst0.O.15"], + ["magma_Bits_1_eq_inst0.out","Mux2xBits16_inst0.S"], + ["self.O1","bit_const_0_None.out"], + ["self.O4","bit_const_0_None.out"], + ["self.O5","bit_const_0_None.out"], + ["magma_Bits_16_eq_inst0.in1","const_0_16.out"], + ["magma_Bits_1_eq_inst0.in1","const_1_1.out"], + ["self.a","magma_Bits_16_ashr_inst0.in0"], + ["self.b","magma_Bits_16_ashr_inst0.in1"], + ["self.O2","magma_Bits_16_eq_inst0.out"], + ["self.a","magma_Bits_16_lshr_inst0.in0"], + ["self.b","magma_Bits_16_lshr_inst0.in1"], + ["self.signed_","magma_Bits_1_eq_inst0.in0"] + ] + }, + "SUB":{ + "type":["Record",[ + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2","Bit"], + ["O3","Bit"], + ["O4","Bit"], + ["O5","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_1_17":{ + "genref":"coreir.const", + "genargs":{"width":["Int",17]}, + "modargs":{"value":[["BitVector",17],"17'h00001"]} + }, + "magma_Bit_and_inst0":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst1":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst2":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst3":{ + "modref":"corebit.and" + }, + "magma_Bit_not_inst0":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst1":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst2":{ + "modref":"corebit.not" + }, + "magma_Bit_or_inst0":{ + "modref":"corebit.or" + }, + "magma_Bits_16_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_not_inst0":{ + "genref":"coreir.not", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_17_add_inst0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",17]} + }, + "magma_Bits_17_add_inst1":{ + "genref":"coreir.add", + "genargs":{"width":["Int",17]} + } + }, + "connections":[ + ["magma_Bits_17_add_inst0.in0.16","bit_const_0_None.out"], + ["magma_Bits_17_add_inst0.in1.16","bit_const_0_None.out"], + ["magma_Bits_16_eq_inst0.in1","const_0_16.out"], + ["magma_Bits_17_add_inst1.in1","const_1_17.out"], + ["self.a.15","magma_Bit_and_inst0.in0"], + ["magma_Bits_16_not_inst0.out.15","magma_Bit_and_inst0.in1"], + ["magma_Bit_and_inst1.in0","magma_Bit_and_inst0.out"], + ["magma_Bit_not_inst0.out","magma_Bit_and_inst1.in1"], + ["magma_Bit_or_inst0.in0","magma_Bit_and_inst1.out"], + ["magma_Bit_not_inst1.out","magma_Bit_and_inst2.in0"], + ["magma_Bit_not_inst2.out","magma_Bit_and_inst2.in1"], + ["magma_Bit_and_inst3.in0","magma_Bit_and_inst2.out"], + ["magma_Bits_17_add_inst1.out.15","magma_Bit_and_inst3.in1"], + ["magma_Bit_or_inst0.in1","magma_Bit_and_inst3.out"], + ["magma_Bits_17_add_inst1.out.15","magma_Bit_not_inst0.in"], + ["self.a.15","magma_Bit_not_inst1.in"], + ["magma_Bits_16_not_inst0.out.15","magma_Bit_not_inst2.in"], + ["self.O5","magma_Bit_or_inst0.out"], + ["magma_Bits_17_add_inst1.out.0:16","magma_Bits_16_eq_inst0.in0.0:16"], + ["self.O2","magma_Bits_16_eq_inst0.out"], + ["self.b","magma_Bits_16_not_inst0.in"], + ["magma_Bits_17_add_inst0.in1.0:16","magma_Bits_16_not_inst0.out.0:16"], + ["self.a.0:16","magma_Bits_17_add_inst0.in0.0:16"], + ["magma_Bits_17_add_inst1.in0","magma_Bits_17_add_inst0.out"], + ["self.O0.0:16","magma_Bits_17_add_inst1.out.0:16"], + ["self.O3","magma_Bits_17_add_inst1.out.15"], + ["self.O1","magma_Bits_17_add_inst1.out.16"], + ["self.O4","magma_Bits_17_add_inst1.out.16"] + ] + }, + "WrappedPE":{ + "type":["Record",[ + ["inst",["Array",51,"BitIn"]], + ["inputs0",["Array",16,"BitIn"]], + ["inputs1",["Array",16,"BitIn"]], + ["inputs2",["Array",16,"BitIn"]], + ["inputs3","BitIn"], + ["inputs4","BitIn"], + ["inputs5","BitIn"], + ["clk_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "PE_inst0":{ + "modref":"global.PE" + } + }, + "connections":[ + ["self.ASYNCRESET","PE_inst0.ASYNCRESET"], + ["self.CLK","PE_inst0.CLK"], + ["self.O0","PE_inst0.O0"], + ["self.O1","PE_inst0.O1"], + ["self.clk_en","PE_inst0.clk_en"], + ["self.inputs0","PE_inst0.inputs0"], + ["self.inputs1","PE_inst0.inputs1"], + ["self.inputs2","PE_inst0.inputs2"], + ["self.inputs3","PE_inst0.inputs3"], + ["self.inputs4","PE_inst0.inputs4"], + ["self.inputs5","PE_inst0.inputs5"], + ["self.inst","PE_inst0.inst"] + ] + }, + "hcompute_cim_output_stencil":{ + "type":["Record",[ + ["out_cim_output_stencil",["Array",16,"Bit"]], + ["in0_cim_stencil",["Array",9,["Array",16,"BitIn"]]] + ]], + "instances":{ + "bitand_575_576_577":{ + "modref":"corebit.and" + }, + "bitand_577_578_579":{ + "modref":"corebit.and" + }, + "bitand_579_580_581":{ + "modref":"corebit.and" + }, + "bitand_581_582_583":{ + "modref":"corebit.and" + }, + "bitand_583_584_585":{ + "modref":"corebit.and" + }, + "bitand_585_586_587":{ + "modref":"corebit.and" + }, + "bitand_587_588_589":{ + "modref":"corebit.and" + }, + "bitand_589_591_592":{ + "modref":"corebit.and" + }, + "const_p0_0":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1__590":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0001"]} + }, + "const_p255_255":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00ff"]} + }, + "mux_5922550":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "sle_590_cim_stencil_2_591":{ + "genref":"coreir.sle", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_1_cim_stencil_2_575":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_3_cim_stencil_2_576":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_4_cim_stencil_2_578":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_5_cim_stencil_2_580":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_6_cim_stencil_2_582":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_7_cim_stencil_2_584":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_8_cim_stencil_2_586":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + }, + "slt_cim_stencil_9_cim_stencil_2_588":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["slt_cim_stencil_1_cim_stencil_2_575.out","bitand_575_576_577.in0"], + ["slt_cim_stencil_3_cim_stencil_2_576.out","bitand_575_576_577.in1"], + ["bitand_577_578_579.in0","bitand_575_576_577.out"], + ["slt_cim_stencil_4_cim_stencil_2_578.out","bitand_577_578_579.in1"], + ["bitand_579_580_581.in0","bitand_577_578_579.out"], + ["slt_cim_stencil_5_cim_stencil_2_580.out","bitand_579_580_581.in1"], + ["bitand_581_582_583.in0","bitand_579_580_581.out"], + ["slt_cim_stencil_6_cim_stencil_2_582.out","bitand_581_582_583.in1"], + ["bitand_583_584_585.in0","bitand_581_582_583.out"], + ["slt_cim_stencil_7_cim_stencil_2_584.out","bitand_583_584_585.in1"], + ["bitand_585_586_587.in0","bitand_583_584_585.out"], + ["slt_cim_stencil_8_cim_stencil_2_586.out","bitand_585_586_587.in1"], + ["bitand_587_588_589.in0","bitand_585_586_587.out"], + ["slt_cim_stencil_9_cim_stencil_2_588.out","bitand_587_588_589.in1"], + ["bitand_589_591_592.in0","bitand_587_588_589.out"], + ["sle_590_cim_stencil_2_591.out","bitand_589_591_592.in1"], + ["mux_5922550.sel","bitand_589_591_592.out"], + ["mux_5922550.in0","const_p0_0.out"], + ["sle_590_cim_stencil_2_591.in0","const_p1__590.out"], + ["mux_5922550.in1","const_p255_255.out"], + ["self.out_cim_output_stencil","mux_5922550.out"], + ["slt_cim_stencil_1_cim_stencil_2_575.in0","self.in0_cim_stencil.0"], + ["sle_590_cim_stencil_2_591.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_1_cim_stencil_2_575.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_3_cim_stencil_2_576.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_4_cim_stencil_2_578.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_5_cim_stencil_2_580.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_6_cim_stencil_2_582.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_7_cim_stencil_2_584.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_8_cim_stencil_2_586.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_9_cim_stencil_2_588.in1","self.in0_cim_stencil.1"], + ["slt_cim_stencil_3_cim_stencil_2_576.in0","self.in0_cim_stencil.2"], + ["slt_cim_stencil_4_cim_stencil_2_578.in0","self.in0_cim_stencil.3"], + ["slt_cim_stencil_5_cim_stencil_2_580.in0","self.in0_cim_stencil.4"], + ["slt_cim_stencil_6_cim_stencil_2_582.in0","self.in0_cim_stencil.5"], + ["slt_cim_stencil_7_cim_stencil_2_584.in0","self.in0_cim_stencil.6"], + ["slt_cim_stencil_8_cim_stencil_2_586.in0","self.in0_cim_stencil.7"], + ["slt_cim_stencil_9_cim_stencil_2_588.in0","self.in0_cim_stencil.8"] + ] + }, + "hcompute_cim_output_stencil_mapped":{ + "type":["Record",[ + ["in0_cim_stencil",["Array",9,["Array",16,"BitIn"]]], + ["out_cim_output_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014477376848":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014478855696":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200ff0c63"]} + }, + "c140014478869008":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000a00000c63"]} + }, + "c140014483226576":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014483758800":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014484138256":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014485612560":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014485612880":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h00100000015c3"]} + }, + "c140014485613072":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014485614544":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200010c63"]} + }, + "c140014485682000":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014485682192":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014485683344":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0004000003204"]} + }, + "c140014485692624":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014485692944":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014485694672":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014485755856":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014485756560":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014485757328":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014485757904":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h4406000000d63"]} + }, + "c140014485788368":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200000c63"]} + }, + "i140014464122832_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464159248_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014464180368_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014464180880_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464181200_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464181968_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464182416_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014464183696_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014464183760_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014464209040_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464209104_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464210448_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464210704_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014464211344_i140014469962128":{ + "modref":"global.WrappedPE" + }, + "i140014464211408_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014464211920_i140014487486928":{ + "modref":"global.WrappedPE" + }, + "i140014464212112_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014464212688_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014466734800_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014468808912_i140014470039952":{ + "modref":"global.WrappedPE" + }, + "i140014475980304_i140014469805904":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014464180368_i140014470039952.inst","c140014477376848.out"], + ["i140014464212688_i140014469641104.inst","c140014478855696.out"], + ["i140014475980304_i140014469805904.inst","c140014478869008.out"], + ["i140014464211344_i140014469962128.inst","c140014483226576.out"], + ["i140014464183760_i140014470039952.inst","c140014483758800.out"], + ["i140014464182416_i140014470039952.inst","c140014484138256.out"], + ["i140014464211408_i140014470039952.inst","c140014485612560.out"], + ["i140014464211920_i140014487486928.inst","c140014485612880.out"], + ["i140014464212112_i140014470039952.inst","c140014485613072.out"], + ["i140014464159248_i140014469641104.inst","c140014485614544.out"], + ["i140014464210704_i140014470039952.inst","c140014485682000.out"], + ["i140014468808912_i140014470039952.inst","c140014485682192.out"], + ["i140014464183696_i140014470039952.inst","c140014485683344.out"], + ["i140014464181968_i140014469962128.inst","c140014485692624.out"], + ["i140014464210448_i140014469962128.inst","c140014485692944.out"], + ["i140014464181200_i140014469962128.inst","c140014485694672.out"], + ["i140014464180880_i140014469962128.inst","c140014485755856.out"], + ["i140014464209040_i140014469962128.inst","c140014485756560.out"], + ["i140014464122832_i140014469962128.inst","c140014485757328.out"], + ["i140014464209104_i140014469962128.inst","c140014485757904.out"], + ["i140014466734800_i140014469641104.inst","c140014485788368.out"], + ["i140014464209040_i140014469962128.inputs4","i140014464122832_i140014469962128.O1"], + ["i140014464183696_i140014470039952.O1","i140014464122832_i140014469962128.inputs3"], + ["i140014464181968_i140014469962128.O1","i140014464122832_i140014469962128.inputs4"], + ["i140014464211920_i140014487486928.inputs2","i140014464159248_i140014469641104.O0"], + ["i140014464181200_i140014469962128.inputs4","i140014464180368_i140014470039952.O1"], + ["self.in0_cim_stencil.0","i140014464180368_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014464180368_i140014470039952.inputs2"], + ["i140014475980304_i140014469805904.inputs3","i140014464180880_i140014469962128.O1"], + ["i140014464211920_i140014487486928.O1","i140014464180880_i140014469962128.inputs3"], + ["i140014464211344_i140014469962128.O1","i140014464180880_i140014469962128.inputs4"], + ["i140014464181968_i140014469962128.inputs4","i140014464181200_i140014469962128.O1"], + ["i140014464182416_i140014470039952.O1","i140014464181200_i140014469962128.inputs3"], + ["i140014464183760_i140014470039952.O1","i140014464181968_i140014469962128.inputs3"], + ["self.in0_cim_stencil.2","i140014464182416_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014464182416_i140014470039952.inputs2"], + ["self.in0_cim_stencil.4","i140014464183696_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014464183696_i140014470039952.inputs2"], + ["self.in0_cim_stencil.3","i140014464183760_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014464183760_i140014470039952.inputs2"], + ["i140014464209104_i140014469962128.inputs4","i140014464209040_i140014469962128.O1"], + ["i140014468808912_i140014470039952.O1","i140014464209040_i140014469962128.inputs3"], + ["i140014464210448_i140014469962128.inputs4","i140014464209104_i140014469962128.O1"], + ["i140014464210704_i140014470039952.O1","i140014464209104_i140014469962128.inputs3"], + ["i140014464211344_i140014469962128.inputs4","i140014464210448_i140014469962128.O1"], + ["i140014464211408_i140014470039952.O1","i140014464210448_i140014469962128.inputs3"], + ["self.in0_cim_stencil.6","i140014464210704_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014464210704_i140014470039952.inputs2"], + ["i140014464212112_i140014470039952.O1","i140014464211344_i140014469962128.inputs3"], + ["self.in0_cim_stencil.7","i140014464211408_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014464211408_i140014470039952.inputs2"], + ["self.in0_cim_stencil.1","i140014464211920_i140014487486928.inputs1"], + ["self.in0_cim_stencil.8","i140014464212112_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014464212112_i140014470039952.inputs2"], + ["i140014475980304_i140014469805904.inputs0","i140014464212688_i140014469641104.O0"], + ["i140014475980304_i140014469805904.inputs2","i140014466734800_i140014469641104.O0"], + ["self.in0_cim_stencil.5","i140014468808912_i140014470039952.inputs1"], + ["self.in0_cim_stencil.1","i140014468808912_i140014470039952.inputs2"], + ["self.out_cim_output_stencil","i140014475980304_i140014469805904.O0"] + ] + }, + "hcompute_cim_stencil":{ + "type":["Record",[ + ["out_cim_stencil",["Array",16,"Bit"]], + ["in0_lgxx_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lgxy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_lgyy_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_529_530_535":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "ashr_536_537_538":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "ashr_lgxx_stencil_2_528_529":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "ashr_lgxy_stencil_2_528_532":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "ashr_lgyy_stencil_2_528_530":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_p4__537":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0004"]} + }, + "const_p6__528":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0006"]} + }, + "const_p6__528$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0006"]} + }, + "const_p6__528$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0006"]} + }, + "mul_529_530_531":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_532_532_533":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_535_535_536":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "sub_531_533_534":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_534_538_539":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["ashr_lgxx_stencil_2_528_529.out","add_529_530_535.in0"], + ["ashr_lgyy_stencil_2_528_530.out","add_529_530_535.in1"], + ["mul_535_535_536.in0","add_529_530_535.out"], + ["mul_535_535_536.in1","add_529_530_535.out"], + ["mul_535_535_536.out","ashr_536_537_538.in0"], + ["const_p4__537.out","ashr_536_537_538.in1"], + ["sub_534_538_539.in1","ashr_536_537_538.out"], + ["self.in0_lgxx_stencil.0","ashr_lgxx_stencil_2_528_529.in0"], + ["const_p6__528.out","ashr_lgxx_stencil_2_528_529.in1"], + ["mul_529_530_531.in0","ashr_lgxx_stencil_2_528_529.out"], + ["self.in1_lgxy_stencil.0","ashr_lgxy_stencil_2_528_532.in0"], + ["const_p6__528$2.out","ashr_lgxy_stencil_2_528_532.in1"], + ["mul_532_532_533.in0","ashr_lgxy_stencil_2_528_532.out"], + ["mul_532_532_533.in1","ashr_lgxy_stencil_2_528_532.out"], + ["self.in2_lgyy_stencil.0","ashr_lgyy_stencil_2_528_530.in0"], + ["const_p6__528$1.out","ashr_lgyy_stencil_2_528_530.in1"], + ["mul_529_530_531.in1","ashr_lgyy_stencil_2_528_530.out"], + ["sub_531_533_534.in0","mul_529_530_531.out"], + ["sub_531_533_534.in1","mul_532_532_533.out"], + ["sub_534_538_539.out","self.out_cim_stencil"], + ["sub_534_538_539.in0","sub_531_533_534.out"] + ] + }, + "hcompute_cim_stencil_mapped":{ + "type":["Record",[ + ["in0_lgxx_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lgxy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_lgyy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_cim_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014465828176":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200040c63"]} + }, + "c140014465830864":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014465843856":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014465844752":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014465845648":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014465880784":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001a00000c63"]} + }, + "c140014465881552":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200060c63"]} + }, + "c140014465881616":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014465883408":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0040c00000c63"]} + }, + "c140014465883664":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0040c00000c63"]} + }, + "c140014465904720":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0040c00000c63"]} + }, + "c140014465906320":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0040c00000c63"]} + }, + "c140014465908048":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200060c63"]} + }, + "c140014465908560":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200060c63"]} + }, + "i140014477346320_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014477346384_i140014473810768":{ + "modref":"global.WrappedPE" + }, + "i140014477347856_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014477348496_i140014473810768":{ + "modref":"global.WrappedPE" + }, + "i140014477435088_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014477435344_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014477435856_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014477436752_i140014473810768":{ + "modref":"global.WrappedPE" + }, + "i140014477437136_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014477438160_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014483250832_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014483365584_i140014487766608":{ + "modref":"global.WrappedPE" + }, + "i140014485681168_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014485682512_i140014473810768":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014477437136_i140014469641104.inst","c140014465828176.out"], + ["i140014485681168_i140014487856016.inst","c140014465830864.out"], + ["i140014477346320_i140014470284304.inst","c140014465843856.out"], + ["i140014477435088_i140014470284304.inst","c140014465844752.out"], + ["i140014477435856_i140014470284304.inst","c140014465845648.out"], + ["i140014483365584_i140014487766608.inst","c140014465880784.out"], + ["i140014477438160_i140014469641104.inst","c140014465881552.out"], + ["i140014483250832_i140014487856016.inst","c140014465881616.out"], + ["i140014477348496_i140014473810768.inst","c140014465883408.out"], + ["i140014485682512_i140014473810768.inst","c140014465883664.out"], + ["i140014477346384_i140014473810768.inst","c140014465904720.out"], + ["i140014477436752_i140014473810768.inst","c140014465906320.out"], + ["i140014477347856_i140014469641104.inst","c140014465908048.out"], + ["i140014477435344_i140014469641104.inst","c140014465908560.out"], + ["i140014485681168_i140014487856016.inputs2","i140014477346320_i140014470284304.O0"], + ["i140014477346384_i140014473810768.O0","i140014477346320_i140014470284304.inputs1"], + ["i140014477348496_i140014473810768.O0","i140014477346320_i140014470284304.inputs2"], + ["i140014483365584_i140014487766608.inputs1","i140014477346384_i140014473810768.O0"], + ["i140014477347856_i140014469641104.O0","i140014477346384_i140014473810768.inputs1"], + ["self.in0_lgxx_stencil.0","i140014477346384_i140014473810768.inputs2"], + ["i140014483365584_i140014487766608.inputs0","i140014477348496_i140014473810768.O0"], + ["i140014477435344_i140014469641104.O0","i140014477348496_i140014473810768.inputs1"], + ["self.in2_lgyy_stencil.0","i140014477348496_i140014473810768.inputs2"], + ["i140014485681168_i140014487856016.inputs1","i140014477435088_i140014470284304.O0"], + ["i140014477436752_i140014473810768.O0","i140014477435088_i140014470284304.inputs1"], + ["i140014477436752_i140014473810768.O0","i140014477435088_i140014470284304.inputs2"], + ["i140014485682512_i140014473810768.inputs2","i140014477435856_i140014470284304.O0"], + ["i140014483365584_i140014487766608.O0","i140014477435856_i140014470284304.inputs1"], + ["i140014483365584_i140014487766608.O0","i140014477435856_i140014470284304.inputs2"], + ["i140014477438160_i140014469641104.O0","i140014477436752_i140014473810768.inputs1"], + ["self.in1_lgxy_stencil.0","i140014477436752_i140014473810768.inputs2"], + ["i140014485682512_i140014473810768.inputs1","i140014477437136_i140014469641104.O0"], + ["self.out_cim_stencil","i140014483250832_i140014487856016.O0"], + ["i140014485682512_i140014473810768.O0","i140014483250832_i140014487856016.inputs1"], + ["i140014485681168_i140014487856016.O0","i140014483250832_i140014487856016.inputs2"] + ] + }, + "hcompute_grad_x_stencil":{ + "type":["Record",[ + ["out_grad_x_stencil",["Array",16,"Bit"]], + ["in0_padded16_global_wrapper_stencil",["Array",6,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_padded16_global_wrapper_stencil_1_275_276":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_padded16_global_wrapper_stencil_2_274_275":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_n255__283":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'hff01"]} + }, + "const_p255__281":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00ff"]} + }, + "const_p2__273":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p2__273$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "mul_padded16_global_wrapper_stencil_3_273_274":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_padded16_global_wrapper_stencil_5_273_278":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "smax_282_283_284$max_mux":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "smax_282_283_284$scomp":{ + "genref":"coreir.sge", + "genargs":{"width":["Int",16]} + }, + "smin_280_281_282$min_mux":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "smin_280_281_282$scomp":{ + "genref":"coreir.sle", + "genargs":{"width":["Int",16]} + }, + "sub_276_padded16_global_wrapper_stencil_4_277":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_277_278_279":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_279_padded16_global_wrapper_stencil_6_280":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_padded16_global_wrapper_stencil.0","add_padded16_global_wrapper_stencil_1_275_276.in0"], + ["add_padded16_global_wrapper_stencil_2_274_275.out","add_padded16_global_wrapper_stencil_1_275_276.in1"], + ["sub_276_padded16_global_wrapper_stencil_4_277.in0","add_padded16_global_wrapper_stencil_1_275_276.out"], + ["self.in0_padded16_global_wrapper_stencil.1","add_padded16_global_wrapper_stencil_2_274_275.in0"], + ["mul_padded16_global_wrapper_stencil_3_273_274.out","add_padded16_global_wrapper_stencil_2_274_275.in1"], + ["smax_282_283_284$max_mux.in0","const_n255__283.out"], + ["smax_282_283_284$scomp.in1","const_n255__283.out"], + ["smin_280_281_282$min_mux.in0","const_p255__281.out"], + ["smin_280_281_282$scomp.in1","const_p255__281.out"], + ["mul_padded16_global_wrapper_stencil_5_273_278.in1","const_p2__273$1.out"], + ["mul_padded16_global_wrapper_stencil_3_273_274.in1","const_p2__273.out"], + ["self.in0_padded16_global_wrapper_stencil.2","mul_padded16_global_wrapper_stencil_3_273_274.in0"], + ["self.in0_padded16_global_wrapper_stencil.4","mul_padded16_global_wrapper_stencil_5_273_278.in0"], + ["sub_277_278_279.in1","mul_padded16_global_wrapper_stencil_5_273_278.out"], + ["sub_276_padded16_global_wrapper_stencil_4_277.in1","self.in0_padded16_global_wrapper_stencil.3"], + ["sub_279_padded16_global_wrapper_stencil_6_280.in1","self.in0_padded16_global_wrapper_stencil.5"], + ["smax_282_283_284$max_mux.out","self.out_grad_x_stencil"], + ["smin_280_281_282$min_mux.out","smax_282_283_284$max_mux.in1"], + ["smax_282_283_284$scomp.out","smax_282_283_284$max_mux.sel"], + ["smin_280_281_282$min_mux.out","smax_282_283_284$scomp.in0"], + ["sub_279_padded16_global_wrapper_stencil_6_280.out","smin_280_281_282$min_mux.in1"], + ["smin_280_281_282$scomp.out","smin_280_281_282$min_mux.sel"], + ["sub_279_padded16_global_wrapper_stencil_6_280.out","smin_280_281_282$scomp.in0"], + ["sub_277_278_279.in0","sub_276_padded16_global_wrapper_stencil_4_277.out"], + ["sub_279_padded16_global_wrapper_stencil_6_280.in0","sub_277_278_279.out"] + ] + }, + "hcompute_grad_x_stencil_mapped":{ + "type":["Record",[ + ["in0_padded16_global_wrapper_stencil",["Array",6,["Array",16,"BitIn"]]], + ["out_grad_x_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014465048912":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h00002ff010c63"]} + }, + "c140014465063568":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200020c63"]} + }, + "c140014465064592":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0008800000c63"]} + }, + "c140014465077456":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0010400000c63"]} + }, + "c140014465078672":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014465080528":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014465080912":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014465097488":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200ff0c63"]} + }, + "c140014465126672":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014465127248":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014465127824":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014465129232":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200020c63"]} + }, + "i140014465482512_i140014470554256":{ + "modref":"global.WrappedPE" + }, + "i140014465523792_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014465524816_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014465525456_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014465531984_i140014470211792":{ + "modref":"global.WrappedPE" + }, + "i140014465532240_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014465533200_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014465533328_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014465533520_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014465533584_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014465533712_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014465535120_i140014470694416":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014465532240_i140014469641104.inst","c140014465048912.out"], + ["i140014465525456_i140014469641104.inst","c140014465063568.out"], + ["i140014465482512_i140014470554256.inst","c140014465064592.out"], + ["i140014465531984_i140014470211792.inst","c140014465077456.out"], + ["i140014465535120_i140014470694416.inst","c140014465078672.out"], + ["i140014465533712_i140014470284304.inst","c140014465080528.out"], + ["i140014465523792_i140014470284304.inst","c140014465080912.out"], + ["i140014465533584_i140014469641104.inst","c140014465097488.out"], + ["i140014465533328_i140014487856016.inst","c140014465126672.out"], + ["i140014465533200_i140014487856016.inst","c140014465127248.out"], + ["i140014465533520_i140014487856016.inst","c140014465127824.out"], + ["i140014465524816_i140014469641104.inst","c140014465129232.out"], + ["self.out_grad_x_stencil","i140014465482512_i140014470554256.O0"], + ["i140014465531984_i140014470211792.O0","i140014465482512_i140014470554256.inputs1"], + ["i140014465532240_i140014469641104.O0","i140014465482512_i140014470554256.inputs2"], + ["i140014465535120_i140014470694416.inputs0","i140014465523792_i140014470284304.O0"], + ["self.in0_padded16_global_wrapper_stencil.2","i140014465523792_i140014470284304.inputs1"], + ["i140014465524816_i140014469641104.O0","i140014465523792_i140014470284304.inputs2"], + ["i140014465533712_i140014470284304.inputs2","i140014465525456_i140014469641104.O0"], + ["i140014465533520_i140014487856016.O0","i140014465531984_i140014470211792.inputs1"], + ["i140014465533584_i140014469641104.O0","i140014465531984_i140014470211792.inputs2"], + ["i140014465533520_i140014487856016.inputs2","i140014465533200_i140014487856016.O0"], + ["i140014465533712_i140014470284304.O0","i140014465533200_i140014487856016.inputs1"], + ["i140014465533328_i140014487856016.O0","i140014465533200_i140014487856016.inputs2"], + ["self.in0_padded16_global_wrapper_stencil.3","i140014465533328_i140014487856016.inputs1"], + ["i140014465535120_i140014470694416.O0","i140014465533328_i140014487856016.inputs2"], + ["self.in0_padded16_global_wrapper_stencil.5","i140014465533520_i140014487856016.inputs1"], + ["self.in0_padded16_global_wrapper_stencil.4","i140014465533712_i140014470284304.inputs1"], + ["self.in0_padded16_global_wrapper_stencil.0","i140014465535120_i140014470694416.inputs1"], + ["self.in0_padded16_global_wrapper_stencil.1","i140014465535120_i140014470694416.inputs2"] + ] + }, + "hcompute_grad_y_stencil":{ + "type":["Record",[ + ["out_grad_y_stencil",["Array",16,"Bit"]], + ["in0_padded16_global_wrapper_stencil",["Array",6,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_padded16_global_wrapper_stencil_7_375_376":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_padded16_global_wrapper_stencil_8_374_375":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_n255__383":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'hff01"]} + }, + "const_p255__381":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h00ff"]} + }, + "const_p2__373":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p2__373$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "mul_padded16_global_wrapper_stencil_11_373_378":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_padded16_global_wrapper_stencil_9_373_374":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "smax_382_383_384$max_mux":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "smax_382_383_384$scomp":{ + "genref":"coreir.sge", + "genargs":{"width":["Int",16]} + }, + "smin_380_381_382$min_mux":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "smin_380_381_382$scomp":{ + "genref":"coreir.sle", + "genargs":{"width":["Int",16]} + }, + "sub_376_padded16_global_wrapper_stencil_10_377":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_377_378_379":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + }, + "sub_379_padded16_global_wrapper_stencil_12_380":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_padded16_global_wrapper_stencil.3","add_padded16_global_wrapper_stencil_7_375_376.in0"], + ["add_padded16_global_wrapper_stencil_8_374_375.out","add_padded16_global_wrapper_stencil_7_375_376.in1"], + ["sub_376_padded16_global_wrapper_stencil_10_377.in0","add_padded16_global_wrapper_stencil_7_375_376.out"], + ["self.in0_padded16_global_wrapper_stencil.4","add_padded16_global_wrapper_stencil_8_374_375.in0"], + ["mul_padded16_global_wrapper_stencil_9_373_374.out","add_padded16_global_wrapper_stencil_8_374_375.in1"], + ["smax_382_383_384$max_mux.in0","const_n255__383.out"], + ["smax_382_383_384$scomp.in1","const_n255__383.out"], + ["smin_380_381_382$min_mux.in0","const_p255__381.out"], + ["smin_380_381_382$scomp.in1","const_p255__381.out"], + ["mul_padded16_global_wrapper_stencil_11_373_378.in1","const_p2__373$1.out"], + ["mul_padded16_global_wrapper_stencil_9_373_374.in1","const_p2__373.out"], + ["self.in0_padded16_global_wrapper_stencil.1","mul_padded16_global_wrapper_stencil_11_373_378.in0"], + ["sub_377_378_379.in1","mul_padded16_global_wrapper_stencil_11_373_378.out"], + ["self.in0_padded16_global_wrapper_stencil.5","mul_padded16_global_wrapper_stencil_9_373_374.in0"], + ["sub_376_padded16_global_wrapper_stencil_10_377.in1","self.in0_padded16_global_wrapper_stencil.0"], + ["sub_379_padded16_global_wrapper_stencil_12_380.in1","self.in0_padded16_global_wrapper_stencil.2"], + ["smax_382_383_384$max_mux.out","self.out_grad_y_stencil"], + ["smin_380_381_382$min_mux.out","smax_382_383_384$max_mux.in1"], + ["smax_382_383_384$scomp.out","smax_382_383_384$max_mux.sel"], + ["smin_380_381_382$min_mux.out","smax_382_383_384$scomp.in0"], + ["sub_379_padded16_global_wrapper_stencil_12_380.out","smin_380_381_382$min_mux.in1"], + ["smin_380_381_382$scomp.out","smin_380_381_382$min_mux.sel"], + ["sub_379_padded16_global_wrapper_stencil_12_380.out","smin_380_381_382$scomp.in0"], + ["sub_377_378_379.in0","sub_376_padded16_global_wrapper_stencil_10_377.out"], + ["sub_379_padded16_global_wrapper_stencil_12_380.in0","sub_377_378_379.out"] + ] + }, + "hcompute_grad_y_stencil_mapped":{ + "type":["Record",[ + ["in0_padded16_global_wrapper_stencil",["Array",6,["Array",16,"BitIn"]]], + ["out_grad_y_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014463946064":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200ff0c63"]} + }, + "c140014463946192":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h00002ff010c63"]} + }, + "c140014464026704":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014464026832":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0010400000c63"]} + }, + "c140014464028176":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014464041296":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014464063504":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200020c63"]} + }, + "c140014464063952":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014464064720":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014464064784":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000600000c63"]} + }, + "c140014464086544":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200020c63"]} + }, + "c140014464879184":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0008800000c63"]} + }, + "i140014464701520_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014464702352_i140014470211792":{ + "modref":"global.WrappedPE" + }, + "i140014464703376_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014464703440_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014464704464_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014464774224_i140014487856016":{ + "modref":"global.WrappedPE" + }, + "i140014464774288_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014464775184_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014464776144_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014464776464_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014464776912_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014464907408_i140014470554256":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014464703440_i140014469641104.inst","c140014463946064.out"], + ["i140014464701520_i140014469641104.inst","c140014463946192.out"], + ["i140014464775184_i140014470694416.inst","c140014464026704.out"], + ["i140014464702352_i140014470211792.inst","c140014464026832.out"], + ["i140014464774288_i140014470284304.inst","c140014464028176.out"], + ["i140014464776144_i140014470284304.inst","c140014464041296.out"], + ["i140014464776464_i140014469641104.inst","c140014464063504.out"], + ["i140014464774224_i140014487856016.inst","c140014464063952.out"], + ["i140014464704464_i140014487856016.inst","c140014464064720.out"], + ["i140014464703376_i140014487856016.inst","c140014464064784.out"], + ["i140014464776912_i140014469641104.inst","c140014464086544.out"], + ["i140014464907408_i140014470554256.inst","c140014464879184.out"], + ["i140014464907408_i140014470554256.inputs2","i140014464701520_i140014469641104.O0"], + ["i140014464907408_i140014470554256.inputs1","i140014464702352_i140014470211792.O0"], + ["i140014464703376_i140014487856016.O0","i140014464702352_i140014470211792.inputs1"], + ["i140014464703440_i140014469641104.O0","i140014464702352_i140014470211792.inputs2"], + ["self.in0_padded16_global_wrapper_stencil.2","i140014464703376_i140014487856016.inputs1"], + ["i140014464704464_i140014487856016.O0","i140014464703376_i140014487856016.inputs2"], + ["i140014464774288_i140014470284304.O0","i140014464704464_i140014487856016.inputs1"], + ["i140014464774224_i140014487856016.O0","i140014464704464_i140014487856016.inputs2"], + ["self.in0_padded16_global_wrapper_stencil.0","i140014464774224_i140014487856016.inputs1"], + ["i140014464775184_i140014470694416.O0","i140014464774224_i140014487856016.inputs2"], + ["self.in0_padded16_global_wrapper_stencil.1","i140014464774288_i140014470284304.inputs1"], + ["i140014464776464_i140014469641104.O0","i140014464774288_i140014470284304.inputs2"], + ["i140014464776144_i140014470284304.O0","i140014464775184_i140014470694416.inputs0"], + ["self.in0_padded16_global_wrapper_stencil.3","i140014464775184_i140014470694416.inputs1"], + ["self.in0_padded16_global_wrapper_stencil.4","i140014464775184_i140014470694416.inputs2"], + ["self.in0_padded16_global_wrapper_stencil.5","i140014464776144_i140014470284304.inputs1"], + ["i140014464776912_i140014469641104.O0","i140014464776144_i140014470284304.inputs2"], + ["self.out_grad_y_stencil","i140014464907408_i140014470554256.O0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_cim_output_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_cim_output_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_mapped":{ + "type":["Record",[ + ["in0_cim_output_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_hw_output_stencil",["Array",16,"Bit"]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_cim_output_stencil.0"] + ] + }, + "hcompute_lgxx_stencil":{ + "type":["Record",[ + ["out_lgxx_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__318":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_lgxx_stencil","const_p0__318.out"] + ] + }, + "hcompute_lgxx_stencil_1":{ + "type":["Record",[ + ["out_lgxx_stencil",["Array",16,"Bit"]], + ["in0_lgxx_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lxx_stencil",["Array",9,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_lgxx_stencil_1_335_336":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_1_336_337":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_2_334_335":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_3_333_334":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_4_332_333":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_5_331_332":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_6_330_331":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_7_329_330":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxx_stencil_8_lxx_stencil_9_329":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_lgxx_stencil.0","add_lgxx_stencil_1_335_336.in0"], + ["add_lxx_stencil_2_334_335.out","add_lgxx_stencil_1_335_336.in1"], + ["add_lxx_stencil_1_336_337.in1","add_lgxx_stencil_1_335_336.out"], + ["self.in1_lxx_stencil.0","add_lxx_stencil_1_336_337.in0"], + ["self.out_lgxx_stencil","add_lxx_stencil_1_336_337.out"], + ["self.in1_lxx_stencil.1","add_lxx_stencil_2_334_335.in0"], + ["add_lxx_stencil_3_333_334.out","add_lxx_stencil_2_334_335.in1"], + ["self.in1_lxx_stencil.2","add_lxx_stencil_3_333_334.in0"], + ["add_lxx_stencil_4_332_333.out","add_lxx_stencil_3_333_334.in1"], + ["self.in1_lxx_stencil.3","add_lxx_stencil_4_332_333.in0"], + ["add_lxx_stencil_5_331_332.out","add_lxx_stencil_4_332_333.in1"], + ["self.in1_lxx_stencil.4","add_lxx_stencil_5_331_332.in0"], + ["add_lxx_stencil_6_330_331.out","add_lxx_stencil_5_331_332.in1"], + ["self.in1_lxx_stencil.5","add_lxx_stencil_6_330_331.in0"], + ["add_lxx_stencil_7_329_330.out","add_lxx_stencil_6_330_331.in1"], + ["self.in1_lxx_stencil.6","add_lxx_stencil_7_329_330.in0"], + ["add_lxx_stencil_8_lxx_stencil_9_329.out","add_lxx_stencil_7_329_330.in1"], + ["self.in1_lxx_stencil.7","add_lxx_stencil_8_lxx_stencil_9_329.in0"], + ["self.in1_lxx_stencil.8","add_lxx_stencil_8_lxx_stencil_9_329.in1"] + ] + }, + "hcompute_lgxx_stencil_1_mapped":{ + "type":["Record",[ + ["in0_lgxx_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lxx_stencil",["Array",9,["Array",16,"BitIn"]]], + ["out_lgxx_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014462096272":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001a00000c63"]} + }, + "c140014462191056":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014462192528":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014462193040":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014462218448":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "i140014462592336_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014462677904_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014462679504_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014463031312_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014463032336_i140014487766608":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014463032336_i140014487766608.inst","c140014462096272.out"], + ["i140014463031312_i140014470694416.inst","c140014462191056.out"], + ["i140014462592336_i140014470694416.inst","c140014462192528.out"], + ["i140014462677904_i140014470694416.inst","c140014462193040.out"], + ["i140014462679504_i140014470694416.inst","c140014462218448.out"], + ["i140014463031312_i140014470694416.inputs0","i140014462592336_i140014470694416.O0"], + ["i140014462677904_i140014470694416.O0","i140014462592336_i140014470694416.inputs0"], + ["self.in1_lxx_stencil.2","i140014462592336_i140014470694416.inputs1"], + ["self.in1_lxx_stencil.3","i140014462592336_i140014470694416.inputs2"], + ["i140014462679504_i140014470694416.O0","i140014462677904_i140014470694416.inputs0"], + ["self.in1_lxx_stencil.4","i140014462677904_i140014470694416.inputs1"], + ["self.in1_lxx_stencil.5","i140014462677904_i140014470694416.inputs2"], + ["self.in1_lxx_stencil.8","i140014462679504_i140014470694416.inputs0"], + ["self.in1_lxx_stencil.6","i140014462679504_i140014470694416.inputs1"], + ["self.in1_lxx_stencil.7","i140014462679504_i140014470694416.inputs2"], + ["i140014463032336_i140014487766608.inputs0","i140014463031312_i140014470694416.O0"], + ["self.in0_lgxx_stencil.0","i140014463031312_i140014470694416.inputs1"], + ["self.in1_lxx_stencil.1","i140014463031312_i140014470694416.inputs2"], + ["self.out_lgxx_stencil","i140014463032336_i140014487766608.O0"], + ["self.in1_lxx_stencil.0","i140014463032336_i140014487766608.inputs1"] + ] + }, + "hcompute_lgxx_stencil_mapped":{ + "type":["Record",[ + ["out_lgxx_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014462594000":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200000c63"]} + }, + "i140014463123984_i140014469641104":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014463123984_i140014469641104.inst","c140014462594000.out"], + ["self.out_lgxx_stencil","i140014463123984_i140014469641104.O0"] + ] + }, + "hcompute_lgxy_stencil":{ + "type":["Record",[ + ["out_lgxy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__419":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_lgxy_stencil","const_p0__419.out"] + ] + }, + "hcompute_lgxy_stencil_1":{ + "type":["Record",[ + ["out_lgxy_stencil",["Array",16,"Bit"]], + ["in0_lgxy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lxy_stencil",["Array",9,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_lgxy_stencil_1_436_437":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_1_437_438":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_2_435_436":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_3_434_435":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_4_433_434":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_5_432_433":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_6_431_432":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_7_430_431":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lxy_stencil_8_lxy_stencil_9_430":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_lgxy_stencil.0","add_lgxy_stencil_1_436_437.in0"], + ["add_lxy_stencil_2_435_436.out","add_lgxy_stencil_1_436_437.in1"], + ["add_lxy_stencil_1_437_438.in1","add_lgxy_stencil_1_436_437.out"], + ["self.in1_lxy_stencil.0","add_lxy_stencil_1_437_438.in0"], + ["self.out_lgxy_stencil","add_lxy_stencil_1_437_438.out"], + ["self.in1_lxy_stencil.1","add_lxy_stencil_2_435_436.in0"], + ["add_lxy_stencil_3_434_435.out","add_lxy_stencil_2_435_436.in1"], + ["self.in1_lxy_stencil.2","add_lxy_stencil_3_434_435.in0"], + ["add_lxy_stencil_4_433_434.out","add_lxy_stencil_3_434_435.in1"], + ["self.in1_lxy_stencil.3","add_lxy_stencil_4_433_434.in0"], + ["add_lxy_stencil_5_432_433.out","add_lxy_stencil_4_433_434.in1"], + ["self.in1_lxy_stencil.4","add_lxy_stencil_5_432_433.in0"], + ["add_lxy_stencil_6_431_432.out","add_lxy_stencil_5_432_433.in1"], + ["self.in1_lxy_stencil.5","add_lxy_stencil_6_431_432.in0"], + ["add_lxy_stencil_7_430_431.out","add_lxy_stencil_6_431_432.in1"], + ["self.in1_lxy_stencil.6","add_lxy_stencil_7_430_431.in0"], + ["add_lxy_stencil_8_lxy_stencil_9_430.out","add_lxy_stencil_7_430_431.in1"], + ["self.in1_lxy_stencil.7","add_lxy_stencil_8_lxy_stencil_9_430.in0"], + ["self.in1_lxy_stencil.8","add_lxy_stencil_8_lxy_stencil_9_430.in1"] + ] + }, + "hcompute_lgxy_stencil_1_mapped":{ + "type":["Record",[ + ["in0_lgxy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lxy_stencil",["Array",9,["Array",16,"BitIn"]]], + ["out_lgxy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014460714000":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001a00000c63"]} + }, + "c140014460736464":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014460736528":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014460737104":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014460737744":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "i140014461230032_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014461251856_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014461711120_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014462482640_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014463031568_i140014487766608":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014463031568_i140014487766608.inst","c140014460714000.out"], + ["i140014461711120_i140014470694416.inst","c140014460736464.out"], + ["i140014462482640_i140014470694416.inst","c140014460736528.out"], + ["i140014461230032_i140014470694416.inst","c140014460737104.out"], + ["i140014461251856_i140014470694416.inst","c140014460737744.out"], + ["i140014461711120_i140014470694416.inputs0","i140014461230032_i140014470694416.O0"], + ["i140014461251856_i140014470694416.O0","i140014461230032_i140014470694416.inputs0"], + ["self.in1_lxy_stencil.4","i140014461230032_i140014470694416.inputs1"], + ["self.in1_lxy_stencil.5","i140014461230032_i140014470694416.inputs2"], + ["self.in1_lxy_stencil.8","i140014461251856_i140014470694416.inputs0"], + ["self.in1_lxy_stencil.6","i140014461251856_i140014470694416.inputs1"], + ["self.in1_lxy_stencil.7","i140014461251856_i140014470694416.inputs2"], + ["i140014462482640_i140014470694416.inputs0","i140014461711120_i140014470694416.O0"], + ["self.in1_lxy_stencil.2","i140014461711120_i140014470694416.inputs1"], + ["self.in1_lxy_stencil.3","i140014461711120_i140014470694416.inputs2"], + ["i140014463031568_i140014487766608.inputs0","i140014462482640_i140014470694416.O0"], + ["self.in0_lgxy_stencil.0","i140014462482640_i140014470694416.inputs1"], + ["self.in1_lxy_stencil.1","i140014462482640_i140014470694416.inputs2"], + ["self.out_lgxy_stencil","i140014463031568_i140014487766608.O0"], + ["self.in1_lxy_stencil.0","i140014463031568_i140014487766608.inputs1"] + ] + }, + "hcompute_lgxy_stencil_mapped":{ + "type":["Record",[ + ["out_lgxy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014462163216":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200000c63"]} + }, + "i140014462258832_i140014469641104":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014462258832_i140014469641104.inst","c140014462163216.out"], + ["self.out_lgxy_stencil","i140014462258832_i140014469641104.O0"] + ] + }, + "hcompute_lgyy_stencil":{ + "type":["Record",[ + ["out_lgyy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__473":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_lgyy_stencil","const_p0__473.out"] + ] + }, + "hcompute_lgyy_stencil_1":{ + "type":["Record",[ + ["out_lgyy_stencil",["Array",16,"Bit"]], + ["in0_lgyy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lyy_stencil",["Array",9,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_lgyy_stencil_1_490_491":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_1_491_492":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_2_489_490":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_3_488_489":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_4_487_488":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_5_486_487":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_6_485_486":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_7_484_485":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_lyy_stencil_8_lyy_stencil_9_484":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_lgyy_stencil.0","add_lgyy_stencil_1_490_491.in0"], + ["add_lyy_stencil_2_489_490.out","add_lgyy_stencil_1_490_491.in1"], + ["add_lyy_stencil_1_491_492.in1","add_lgyy_stencil_1_490_491.out"], + ["self.in1_lyy_stencil.0","add_lyy_stencil_1_491_492.in0"], + ["self.out_lgyy_stencil","add_lyy_stencil_1_491_492.out"], + ["self.in1_lyy_stencil.1","add_lyy_stencil_2_489_490.in0"], + ["add_lyy_stencil_3_488_489.out","add_lyy_stencil_2_489_490.in1"], + ["self.in1_lyy_stencil.2","add_lyy_stencil_3_488_489.in0"], + ["add_lyy_stencil_4_487_488.out","add_lyy_stencil_3_488_489.in1"], + ["self.in1_lyy_stencil.3","add_lyy_stencil_4_487_488.in0"], + ["add_lyy_stencil_5_486_487.out","add_lyy_stencil_4_487_488.in1"], + ["self.in1_lyy_stencil.4","add_lyy_stencil_5_486_487.in0"], + ["add_lyy_stencil_6_485_486.out","add_lyy_stencil_5_486_487.in1"], + ["self.in1_lyy_stencil.5","add_lyy_stencil_6_485_486.in0"], + ["add_lyy_stencil_7_484_485.out","add_lyy_stencil_6_485_486.in1"], + ["self.in1_lyy_stencil.6","add_lyy_stencil_7_484_485.in0"], + ["add_lyy_stencil_8_lyy_stencil_9_484.out","add_lyy_stencil_7_484_485.in1"], + ["self.in1_lyy_stencil.7","add_lyy_stencil_8_lyy_stencil_9_484.in0"], + ["self.in1_lyy_stencil.8","add_lyy_stencil_8_lyy_stencil_9_484.in1"] + ] + }, + "hcompute_lgyy_stencil_1_mapped":{ + "type":["Record",[ + ["in0_lgyy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_lyy_stencil",["Array",9,["Array",16,"BitIn"]]], + ["out_lgyy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014459933904":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014459933968":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014459934544":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014459935184":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001000000c63"]} + }, + "c140014460411152":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0001a00000c63"]} + }, + "i140014469191248_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014470856592_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014479999760_i140014487766608":{ + "modref":"global.WrappedPE" + }, + "i140014480000208_i140014470694416":{ + "modref":"global.WrappedPE" + }, + "i140014480053904_i140014470694416":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014480000208_i140014470694416.inst","c140014459933904.out"], + ["i140014469191248_i140014470694416.inst","c140014459933968.out"], + ["i140014470856592_i140014470694416.inst","c140014459934544.out"], + ["i140014480053904_i140014470694416.inst","c140014459935184.out"], + ["i140014479999760_i140014487766608.inst","c140014460411152.out"], + ["i140014479999760_i140014487766608.inputs0","i140014469191248_i140014470694416.O0"], + ["i140014480000208_i140014470694416.O0","i140014469191248_i140014470694416.inputs0"], + ["self.in0_lgyy_stencil.0","i140014469191248_i140014470694416.inputs1"], + ["self.in1_lyy_stencil.1","i140014469191248_i140014470694416.inputs2"], + ["i140014480000208_i140014470694416.inputs0","i140014470856592_i140014470694416.O0"], + ["i140014480053904_i140014470694416.O0","i140014470856592_i140014470694416.inputs0"], + ["self.in1_lyy_stencil.4","i140014470856592_i140014470694416.inputs1"], + ["self.in1_lyy_stencil.5","i140014470856592_i140014470694416.inputs2"], + ["self.out_lgyy_stencil","i140014479999760_i140014487766608.O0"], + ["self.in1_lyy_stencil.0","i140014479999760_i140014487766608.inputs1"], + ["self.in1_lyy_stencil.2","i140014480000208_i140014470694416.inputs1"], + ["self.in1_lyy_stencil.3","i140014480000208_i140014470694416.inputs2"], + ["self.in1_lyy_stencil.8","i140014480053904_i140014470694416.inputs0"], + ["self.in1_lyy_stencil.6","i140014480053904_i140014470694416.inputs1"], + ["self.in1_lyy_stencil.7","i140014480053904_i140014470694416.inputs2"] + ] + }, + "hcompute_lgyy_stencil_mapped":{ + "type":["Record",[ + ["out_lgyy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014470853520":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200000c63"]} + }, + "i140014461187600_i140014469641104":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014461187600_i140014469641104.inst","c140014470853520.out"], + ["self.out_lgyy_stencil","i140014461187600_i140014469641104.O0"] + ] + }, + "hcompute_lxx_stencil":{ + "type":["Record",[ + ["out_lxx_stencil",["Array",16,"Bit"]], + ["in0_grad_x_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "ashr_310_311_312":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_p7__311":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0007"]} + }, + "mul_grad_x_stencil_1_grad_x_stencil_1_310":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["mul_grad_x_stencil_1_grad_x_stencil_1_310.out","ashr_310_311_312.in0"], + ["const_p7__311.out","ashr_310_311_312.in1"], + ["self.out_lxx_stencil","ashr_310_311_312.out"], + ["self.in0_grad_x_stencil.0","mul_grad_x_stencil_1_grad_x_stencil_1_310.in0"], + ["self.in0_grad_x_stencil.0","mul_grad_x_stencil_1_grad_x_stencil_1_310.in1"] + ] + }, + "hcompute_lxx_stencil_mapped":{ + "type":["Record",[ + ["in0_grad_x_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_lxx_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014459400272":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0040c00000c63"]} + }, + "c140014459401680":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200070c63"]} + }, + "c140014459403472":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "i140014459978064_i140014470284304":{ + "modref":"global.WrappedPE" + }, + "i140014459980624_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014459980816_i140014473810768":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014459980816_i140014473810768.inst","c140014459400272.out"], + ["i140014459980624_i140014469641104.inst","c140014459401680.out"], + ["i140014459978064_i140014470284304.inst","c140014459403472.out"], + ["i140014459980816_i140014473810768.inputs2","i140014459978064_i140014470284304.O0"], + ["self.in0_grad_x_stencil.0","i140014459978064_i140014470284304.inputs1"], + ["self.in0_grad_x_stencil.0","i140014459978064_i140014470284304.inputs2"], + ["i140014459980816_i140014473810768.inputs1","i140014459980624_i140014469641104.O0"], + ["self.out_lxx_stencil","i140014459980816_i140014473810768.O0"] + ] + }, + "hcompute_lxy_stencil":{ + "type":["Record",[ + ["out_lxy_stencil",["Array",16,"Bit"]], + ["in0_grad_x_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_grad_y_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "ashr_410_411_412":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_p7__411":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0007"]} + }, + "mul_grad_x_stencil_2_grad_y_stencil_1_410":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["mul_grad_x_stencil_2_grad_y_stencil_1_410.out","ashr_410_411_412.in0"], + ["const_p7__411.out","ashr_410_411_412.in1"], + ["self.out_lxy_stencil","ashr_410_411_412.out"], + ["self.in0_grad_x_stencil.0","mul_grad_x_stencil_2_grad_y_stencil_1_410.in0"], + ["self.in1_grad_y_stencil.0","mul_grad_x_stencil_2_grad_y_stencil_1_410.in1"] + ] + }, + "hcompute_lxy_stencil_mapped":{ + "type":["Record",[ + ["in0_grad_x_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_grad_y_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_lxy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014458881744":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200070c63"]} + }, + "c140014458888656":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "c140014458888912":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0040c00000c63"]} + }, + "i140014459482960_i140014473810768":{ + "modref":"global.WrappedPE" + }, + "i140014459483408_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014459483472_i140014470284304":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014459483408_i140014469641104.inst","c140014458881744.out"], + ["i140014459483472_i140014470284304.inst","c140014458888656.out"], + ["i140014459482960_i140014473810768.inst","c140014458888912.out"], + ["self.out_lxy_stencil","i140014459482960_i140014473810768.O0"], + ["i140014459483408_i140014469641104.O0","i140014459482960_i140014473810768.inputs1"], + ["i140014459483472_i140014470284304.O0","i140014459482960_i140014473810768.inputs2"], + ["self.in0_grad_x_stencil.0","i140014459483472_i140014470284304.inputs1"], + ["self.in1_grad_y_stencil.0","i140014459483472_i140014470284304.inputs2"] + ] + }, + "hcompute_lyy_stencil":{ + "type":["Record",[ + ["out_lyy_stencil",["Array",16,"Bit"]], + ["in0_grad_y_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "ashr_465_466_467":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + }, + "const_p7__466":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0007"]} + }, + "mul_grad_y_stencil_2_grad_y_stencil_2_465":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["mul_grad_y_stencil_2_grad_y_stencil_2_465.out","ashr_465_466_467.in0"], + ["const_p7__466.out","ashr_465_466_467.in1"], + ["self.out_lyy_stencil","ashr_465_466_467.out"], + ["self.in0_grad_y_stencil.0","mul_grad_y_stencil_2_grad_y_stencil_2_465.in0"], + ["self.in0_grad_y_stencil.0","mul_grad_y_stencil_2_grad_y_stencil_2_465.in1"] + ] + }, + "hcompute_lyy_stencil_mapped":{ + "type":["Record",[ + ["in0_grad_y_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_lyy_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140014458860816":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0040c00000c63"]} + }, + "c140014458861968":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000200070c63"]} + }, + "c140014458862736":{ + "genref":"coreir.const", + "genargs":{"width":["Int",51]}, + "modargs":{"value":[["BitVector",51],"51'h0000e00000c63"]} + }, + "i140014458880848_i140014473810768":{ + "modref":"global.WrappedPE" + }, + "i140014458931024_i140014469641104":{ + "modref":"global.WrappedPE" + }, + "i140014458931536_i140014470284304":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140014458880848_i140014473810768.inst","c140014458860816.out"], + ["i140014458931024_i140014469641104.inst","c140014458861968.out"], + ["i140014458931536_i140014470284304.inst","c140014458862736.out"], + ["self.out_lyy_stencil","i140014458880848_i140014473810768.O0"], + ["i140014458931024_i140014469641104.O0","i140014458880848_i140014473810768.inputs1"], + ["i140014458931536_i140014470284304.O0","i140014458880848_i140014473810768.inputs2"], + ["self.in0_grad_y_stencil.0","i140014458931536_i140014470284304.inputs1"], + ["self.in0_grad_y_stencil.0","i140014458931536_i140014470284304.inputs2"] + ] + }, + "hcompute_padded16_global_wrapper_stencil":{ + "type":["Record",[ + ["out_padded16_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_padded16_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_padded16_global_wrapper_stencil","self.in0_padded16_stencil.0"] + ] + }, + "hcompute_padded16_global_wrapper_stencil_mapped":{ + "type":["Record",[ + ["in0_padded16_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_padded16_global_wrapper_stencil",["Array",16,"Bit"]] + ]], + "connections":[ + ["self.out_padded16_global_wrapper_stencil","self.in0_padded16_stencil.0"] + ] + }, + "mapping_function_0":{ + "type":["Record",[ + ["data27",["Array",16,"BitIn"]], + ["data28",["Array",16,"BitIn"]], + ["data26",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_add_inst0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_add_inst1":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data26","magma_Bits_16_add_inst0.in0"], + ["self.data27","magma_Bits_16_add_inst0.in1"], + ["magma_Bits_16_add_inst1.in1","magma_Bits_16_add_inst0.out"], + ["self.data28","magma_Bits_16_add_inst1.in0"], + ["self.O","magma_Bits_16_add_inst1.out"] + ] + }, + "mapping_function_1":{ + "type":["Record",[ + ["data30",["Array",16,"BitIn"]], + ["data31",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_sge_inst0":{ + "genref":"coreir.sge", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data31","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.in0"], + ["self.data30","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.in1"], + ["self.O","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.out"], + ["magma_Bits_16_sge_inst0.out","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.sel"], + ["self.data30","magma_Bits_16_sge_inst0.in0"], + ["self.data31","magma_Bits_16_sge_inst0.in1"] + ] + }, + "mapping_function_10":{ + "type":["Record",[ + ["data58",["Array",16,"BitIn"]], + ["data57",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_add_inst0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data57","magma_Bits_16_add_inst0.in0"], + ["self.data58","magma_Bits_16_add_inst0.in1"], + ["self.O","magma_Bits_16_add_inst0.out"] + ] + }, + "mapping_function_11":{ + "type":["Record",[ + ["data60",["Array",16,"BitIn"]], + ["data61",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_sub_inst0":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data60","magma_Bits_16_sub_inst0.in0"], + ["self.data61","magma_Bits_16_sub_inst0.in1"], + ["self.O","magma_Bits_16_sub_inst0.out"] + ] + }, + "mapping_function_12":{ + "type":["Record",[ + ["data64",["Array",16,"BitIn"]], + ["data63",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_ashr_inst0":{ + "genref":"coreir.ashr", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data63","magma_Bits_16_ashr_inst0.in0"], + ["self.data64","magma_Bits_16_ashr_inst0.in1"], + ["self.O","magma_Bits_16_ashr_inst0.out"] + ] + }, + "mapping_function_2":{ + "type":["Record",[ + ["data33",["Array",16,"BitIn"]], + ["data34",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_sle_inst0":{ + "genref":"coreir.sle", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data34","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.in0"], + ["self.data33","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.in1"], + ["self.O","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.out"], + ["magma_Bits_16_sle_inst0.out","Mux2xSInt16_inst0$coreir_commonlib_mux2x16_inst0$_join.sel"], + ["self.data33","magma_Bits_16_sle_inst0.in0"], + ["self.data34","magma_Bits_16_sle_inst0.in1"] + ] + }, + "mapping_function_3":{ + "type":["Record",[ + ["data36",["Array",16,"BitIn"]], + ["data37",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_mul_inst0":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data36","magma_Bits_16_mul_inst0.in0"], + ["self.data37","magma_Bits_16_mul_inst0.in1"], + ["self.O","magma_Bits_16_mul_inst0.out"] + ] + }, + "mapping_function_4":{ + "type":["Record",[ + ["data39","BitIn"], + ["data40","BitIn"], + ["O","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bit_and_inst0":{ + "modref":"corebit.and" + } + }, + "connections":[ + ["self.data39","magma_Bit_and_inst0.in0"], + ["self.data40","magma_Bit_and_inst0.in1"], + ["self.O","magma_Bit_and_inst0.out"] + ] + }, + "mapping_function_5":{ + "type":["Record",[ + ["data43",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "connections":[ + ["self.data43","self.O"] + ] + }, + "mapping_function_6":{ + "type":["Record",[ + ["data46",["Array",16,"BitIn"]], + ["data45",["Array",16,"BitIn"]], + ["data47","BitIn"], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xBits16_inst0$coreir_commonlib_mux2x16_inst0$_join":{ + "genref":"coreir.mux", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data45","Mux2xBits16_inst0$coreir_commonlib_mux2x16_inst0$_join.in0"], + ["self.data46","Mux2xBits16_inst0$coreir_commonlib_mux2x16_inst0$_join.in1"], + ["self.O","Mux2xBits16_inst0$coreir_commonlib_mux2x16_inst0$_join.out"], + ["self.data47","Mux2xBits16_inst0$coreir_commonlib_mux2x16_inst0$_join.sel"] + ] + }, + "mapping_function_7":{ + "type":["Record",[ + ["data49",["Array",16,"BitIn"]], + ["data50",["Array",16,"BitIn"]], + ["O","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_sle_inst0":{ + "genref":"coreir.sle", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data49","magma_Bits_16_sle_inst0.in0"], + ["self.data50","magma_Bits_16_sle_inst0.in1"], + ["self.O","magma_Bits_16_sle_inst0.out"] + ] + }, + "mapping_function_8":{ + "type":["Record",[ + ["data52",["Array",16,"BitIn"]], + ["data53",["Array",16,"BitIn"]], + ["O","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_slt_inst0":{ + "genref":"coreir.slt", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data52","magma_Bits_16_slt_inst0.in0"], + ["self.data53","magma_Bits_16_slt_inst0.in1"], + ["self.O","magma_Bits_16_slt_inst0.out"] + ] + }, + "mapping_function_9":{ + "type":["Record",[ + ["data55","BitIn"], + ["O","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "connections":[ + ["self.data55","self.O"] + ] + } + } + } +} +} diff --git a/examples/clockwork/laplacian_pyramid_new_compute.json b/examples/clockwork/laplacian_pyramid_new_compute.json new file mode 100644 index 0000000..5491e5a --- /dev/null +++ b/examples/clockwork/laplacian_pyramid_new_compute.json @@ -0,0 +1,144 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_blur_unnormalized_stencil":{ + "type":["Record",[ + ["out_blur_unnormalized_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__262":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_blur_unnormalized_stencil","const_p0__262.out"] + ] + }, + "hcompute_blur_unnormalized_stencil_1":{ + "type":["Record",[ + ["out_blur_unnormalized_stencil",["Array",16,"Bit"]], + ["in0_blur_unnormalized_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_linput_gpyr_gpyr_0_stencil",["Array",1,["Array",16,"BitIn"]]], + ["blur_unnormalized_s1_win_x",["Array",16,"BitIn"]], + ["blur_unnormalized_s1_win_y",["Array",16,"BitIn"]] + ]], + "instances":{ + "add_blur_unnormalized_s1_win_x_295_296":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_blur_unnormalized_stencil_1_298_299":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p3_3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "mul_blur_unnormalized_s1_win_y3_295":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_linput_gpyr_gpyr_0_stencil_1_297_298":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "rom_kernela0":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",9], "width":["Int",16]}, + "modargs":{"init":["Json",[3,21,3,21,158,21,3,21,3]]} + }, + "rom_kernela0_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + } + }, + "connections":[ + ["self.blur_unnormalized_s1_win_x","add_blur_unnormalized_s1_win_x_295_296.in0"], + ["mul_blur_unnormalized_s1_win_y3_295.out","add_blur_unnormalized_s1_win_x_295_296.in1"], + ["rom_kernela0.raddr","add_blur_unnormalized_s1_win_x_295_296.out"], + ["self.in0_blur_unnormalized_stencil.0","add_blur_unnormalized_stencil_1_298_299.in0"], + ["mul_linput_gpyr_gpyr_0_stencil_1_297_298.out","add_blur_unnormalized_stencil_1_298_299.in1"], + ["self.out_blur_unnormalized_stencil","add_blur_unnormalized_stencil_1_298_299.out"], + ["mul_blur_unnormalized_s1_win_y3_295.in1","const_p3_3.out"], + ["self.blur_unnormalized_s1_win_y","mul_blur_unnormalized_s1_win_y3_295.in0"], + ["self.in1_linput_gpyr_gpyr_0_stencil.0","mul_linput_gpyr_gpyr_0_stencil_1_297_298.in0"], + ["rom_kernela0.rdata","mul_linput_gpyr_gpyr_0_stencil_1_297_298.in1"], + ["rom_kernela0_ren.out","rom_kernela0.ren"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_linput_lpyr_0_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_linput_lpyr_0_stencil.0"] + ] + }, + "hcompute_linput_gpyr_gpyr_0_stencil":{ + "type":["Record",[ + ["out_linput_gpyr_gpyr_0_stencil",["Array",16,"Bit"]], + ["in0_hw_input_global_wrapper_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_linput_gpyr_gpyr_0_stencil","self.in0_hw_input_global_wrapper_stencil.0"] + ] + }, + "hcompute_linput_gpyr_gpyr_1_stencil":{ + "type":["Record",[ + ["out_linput_gpyr_gpyr_1_stencil",["Array",16,"Bit"]], + ["in0_blur_unnormalized_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p8__313":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0008"]} + }, + "lshr_blur_unnormalized_stencil_2_313_314":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["lshr_blur_unnormalized_stencil_2_313_314.in1","const_p8__313.out"], + ["self.in0_blur_unnormalized_stencil.0","lshr_blur_unnormalized_stencil_2_313_314.in0"], + ["self.out_linput_gpyr_gpyr_1_stencil","lshr_blur_unnormalized_stencil_2_313_314.out"] + ] + }, + "hcompute_linput_lpyr_0_stencil":{ + "type":["Record",[ + ["out_linput_lpyr_0_stencil",["Array",16,"Bit"]], + ["in0_linput_gpyr_gpyr_0_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_linput_gpyr_gpyr_1_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "sub_linput_gpyr_gpyr_0_stencil_2_linput_gpyr_gpyr_1_stencil_1_321":{ + "genref":"coreir.sub", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["sub_linput_gpyr_gpyr_0_stencil_2_linput_gpyr_gpyr_1_stencil_1_321.in0","self.in0_linput_gpyr_gpyr_0_stencil.0"], + ["sub_linput_gpyr_gpyr_0_stencil_2_linput_gpyr_gpyr_1_stencil_1_321.in1","self.in1_linput_gpyr_gpyr_1_stencil.0"], + ["sub_linput_gpyr_gpyr_0_stencil_2_linput_gpyr_gpyr_1_stencil_1_321.out","self.out_linput_lpyr_0_stencil"] + ] + } + } + } +} +} diff --git a/examples/clockwork/mobilenet_compute.json b/examples/clockwork/mobilenet_compute.json new file mode 100644 index 0000000..1cc7020 --- /dev/null +++ b/examples/clockwork/mobilenet_compute.json @@ -0,0 +1,220 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_dw_conv_stencil":{ + "type":["Record",[ + ["out_dw_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__723":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_dw_conv_stencil","const_p0__723.out"] + ] + }, + "hcompute_dw_conv_stencil_1":{ + "type":["Record",[ + ["out_dw_conv_stencil",["Array",16,"Bit"]], + ["in0_dw_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_filter_dw_global_wrapper_stencil",["Array",9,["Array",16,"BitIn"]]], + ["in2_hw_input_global_wrapper_stencil",["Array",9,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_743_759_760":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_744_757_758":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_745_756_757":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_746_755_756":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_747_754_755":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_748_753_754":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_749_752_753":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_750_751_752":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_dw_conv_stencil_1_758_759":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_1_hw_input_global_wrapper_stencil_1_743":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_2_hw_input_global_wrapper_stencil_2_744":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_3_745":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_4_746":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_5_hw_input_global_wrapper_stencil_5_747":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_6_hw_input_global_wrapper_stencil_6_748":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_7_hw_input_global_wrapper_stencil_7_749":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_8_hw_input_global_wrapper_stencil_8_750":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_dw_global_wrapper_stencil_9_hw_input_global_wrapper_stencil_9_751":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["mul_hw_filter_dw_global_wrapper_stencil_1_hw_input_global_wrapper_stencil_1_743.out","add_743_759_760.in0"], + ["add_dw_conv_stencil_1_758_759.out","add_743_759_760.in1"], + ["self.out_dw_conv_stencil","add_743_759_760.out"], + ["mul_hw_filter_dw_global_wrapper_stencil_2_hw_input_global_wrapper_stencil_2_744.out","add_744_757_758.in0"], + ["add_745_756_757.out","add_744_757_758.in1"], + ["add_dw_conv_stencil_1_758_759.in1","add_744_757_758.out"], + ["mul_hw_filter_dw_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_3_745.out","add_745_756_757.in0"], + ["add_746_755_756.out","add_745_756_757.in1"], + ["mul_hw_filter_dw_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_4_746.out","add_746_755_756.in0"], + ["add_747_754_755.out","add_746_755_756.in1"], + ["mul_hw_filter_dw_global_wrapper_stencil_5_hw_input_global_wrapper_stencil_5_747.out","add_747_754_755.in0"], + ["add_748_753_754.out","add_747_754_755.in1"], + ["mul_hw_filter_dw_global_wrapper_stencil_6_hw_input_global_wrapper_stencil_6_748.out","add_748_753_754.in0"], + ["add_749_752_753.out","add_748_753_754.in1"], + ["mul_hw_filter_dw_global_wrapper_stencil_7_hw_input_global_wrapper_stencil_7_749.out","add_749_752_753.in0"], + ["add_750_751_752.out","add_749_752_753.in1"], + ["mul_hw_filter_dw_global_wrapper_stencil_8_hw_input_global_wrapper_stencil_8_750.out","add_750_751_752.in0"], + ["mul_hw_filter_dw_global_wrapper_stencil_9_hw_input_global_wrapper_stencil_9_751.out","add_750_751_752.in1"], + ["self.in0_dw_conv_stencil.0","add_dw_conv_stencil_1_758_759.in0"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.0","mul_hw_filter_dw_global_wrapper_stencil_1_hw_input_global_wrapper_stencil_1_743.in0"], + ["self.in2_hw_input_global_wrapper_stencil.0","mul_hw_filter_dw_global_wrapper_stencil_1_hw_input_global_wrapper_stencil_1_743.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.1","mul_hw_filter_dw_global_wrapper_stencil_2_hw_input_global_wrapper_stencil_2_744.in0"], + ["self.in2_hw_input_global_wrapper_stencil.1","mul_hw_filter_dw_global_wrapper_stencil_2_hw_input_global_wrapper_stencil_2_744.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.2","mul_hw_filter_dw_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_3_745.in0"], + ["self.in2_hw_input_global_wrapper_stencil.2","mul_hw_filter_dw_global_wrapper_stencil_3_hw_input_global_wrapper_stencil_3_745.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.3","mul_hw_filter_dw_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_4_746.in0"], + ["self.in2_hw_input_global_wrapper_stencil.3","mul_hw_filter_dw_global_wrapper_stencil_4_hw_input_global_wrapper_stencil_4_746.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.4","mul_hw_filter_dw_global_wrapper_stencil_5_hw_input_global_wrapper_stencil_5_747.in0"], + ["self.in2_hw_input_global_wrapper_stencil.4","mul_hw_filter_dw_global_wrapper_stencil_5_hw_input_global_wrapper_stencil_5_747.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.5","mul_hw_filter_dw_global_wrapper_stencil_6_hw_input_global_wrapper_stencil_6_748.in0"], + ["self.in2_hw_input_global_wrapper_stencil.5","mul_hw_filter_dw_global_wrapper_stencil_6_hw_input_global_wrapper_stencil_6_748.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.6","mul_hw_filter_dw_global_wrapper_stencil_7_hw_input_global_wrapper_stencil_7_749.in0"], + ["self.in2_hw_input_global_wrapper_stencil.6","mul_hw_filter_dw_global_wrapper_stencil_7_hw_input_global_wrapper_stencil_7_749.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.7","mul_hw_filter_dw_global_wrapper_stencil_8_hw_input_global_wrapper_stencil_8_750.in0"], + ["self.in2_hw_input_global_wrapper_stencil.7","mul_hw_filter_dw_global_wrapper_stencil_8_hw_input_global_wrapper_stencil_8_750.in1"], + ["self.in1_hw_filter_dw_global_wrapper_stencil.8","mul_hw_filter_dw_global_wrapper_stencil_9_hw_input_global_wrapper_stencil_9_751.in0"], + ["self.in2_hw_input_global_wrapper_stencil.8","mul_hw_filter_dw_global_wrapper_stencil_9_hw_input_global_wrapper_stencil_9_751.in1"] + ] + }, + "hcompute_hw_filter_dw_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_filter_dw_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_filter_dw_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_filter_dw_global_wrapper_stencil","self.in0_hw_filter_dw_stencil.0"] + ] + }, + "hcompute_hw_filter_pw_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_filter_pw_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_filter_pw_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_filter_pw_global_wrapper_stencil","self.in0_hw_filter_pw_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_pw_conv_reduction_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_pw_conv_reduction_stencil.0"] + ] + }, + "hcompute_pw_conv_reduction_stencil":{ + "type":["Record",[ + ["out_pw_conv_reduction_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__804":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_pw_conv_reduction_stencil","const_p0__804.out"] + ] + }, + "hcompute_pw_conv_reduction_stencil_1":{ + "type":["Record",[ + ["out_pw_conv_reduction_stencil",["Array",16,"Bit"]], + ["in0_dw_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_filter_pw_global_wrapper_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_pw_conv_reduction_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_pw_conv_reduction_stencil_1_808_809":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_filter_pw_global_wrapper_stencil_1_dw_conv_stencil_2_808":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in2_pw_conv_reduction_stencil.0","add_pw_conv_reduction_stencil_1_808_809.in0"], + ["mul_hw_filter_pw_global_wrapper_stencil_1_dw_conv_stencil_2_808.out","add_pw_conv_reduction_stencil_1_808_809.in1"], + ["self.out_pw_conv_reduction_stencil","add_pw_conv_reduction_stencil_1_808_809.out"], + ["self.in1_hw_filter_pw_global_wrapper_stencil.0","mul_hw_filter_pw_global_wrapper_stencil_1_dw_conv_stencil_2_808.in0"], + ["self.in0_dw_conv_stencil.0","mul_hw_filter_pw_global_wrapper_stencil_1_dw_conv_stencil_2_808.in1"] + ] + } + } + } +} +} diff --git a/examples/clockwork/resnet_layer_gen_compute.json b/examples/clockwork/resnet_layer_gen_compute.json new file mode 100644 index 0000000..7242102 --- /dev/null +++ b/examples/clockwork/resnet_layer_gen_compute.json @@ -0,0 +1,415 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_conv_stencil":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__391":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_conv_stencil","const_p0__391.out"] + ] + }, + "hcompute_conv_stencil_1":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_412_415_416":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_416_419_420":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_420_423_424":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_1_411_412":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p3_3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "mul_4093_410":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_4133_414":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_4173_418":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_4213_422":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_1_411_412.out","add_412_415_416.in0"], + ["mul_4133_414.out","add_412_415_416.in1"], + ["add_416_419_420.in0","add_412_415_416.out"], + ["mul_4173_418.out","add_416_419_420.in1"], + ["add_420_423_424.in0","add_416_419_420.out"], + ["mul_4213_422.out","add_420_423_424.in1"], + ["self.out_conv_stencil","add_420_423_424.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_1_411_412.in0"], + ["mul_4093_410.out","add_conv_stencil_1_411_412.in1"], + ["mul_4133_414.in1","const_p3_3$1.out"], + ["mul_4173_418.in1","const_p3_3$2.out"], + ["mul_4213_422.in1","const_p3_3$3.out"], + ["mul_4093_410.in1","const_p3_3.out"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_4093_410.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_4133_414.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_4173_418.in0"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_4213_422.in0"] + ] + }, + "hcompute_conv_stencil_2":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_465_468_469":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_469_472_473":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_473_476_477":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_2_464_465":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p3_3$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$6":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$7":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "mul_4623_463":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_4663_467":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_4703_471":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_4743_475":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_2_464_465.out","add_465_468_469.in0"], + ["mul_4663_467.out","add_465_468_469.in1"], + ["add_469_472_473.in0","add_465_468_469.out"], + ["mul_4703_471.out","add_469_472_473.in1"], + ["add_473_476_477.in0","add_469_472_473.out"], + ["mul_4743_475.out","add_473_476_477.in1"], + ["self.out_conv_stencil","add_473_476_477.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_2_464_465.in0"], + ["mul_4623_463.out","add_conv_stencil_2_464_465.in1"], + ["mul_4623_463.in1","const_p3_3$4.out"], + ["mul_4663_467.in1","const_p3_3$5.out"], + ["mul_4703_471.in1","const_p3_3$6.out"], + ["mul_4743_475.in1","const_p3_3$7.out"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_4623_463.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_4663_467.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_4703_471.in0"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_4743_475.in0"] + ] + }, + "hcompute_conv_stencil_3":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_518_521_522":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_522_525_526":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_526_529_530":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_3_517_518":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p3_3$10":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$11":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$8":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$9":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "mul_5153_516":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_5193_520":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_5233_524":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_5273_528":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_3_517_518.out","add_518_521_522.in0"], + ["mul_5193_520.out","add_518_521_522.in1"], + ["add_522_525_526.in0","add_518_521_522.out"], + ["mul_5233_524.out","add_522_525_526.in1"], + ["add_526_529_530.in0","add_522_525_526.out"], + ["mul_5273_528.out","add_526_529_530.in1"], + ["self.out_conv_stencil","add_526_529_530.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_3_517_518.in0"], + ["mul_5153_516.out","add_conv_stencil_3_517_518.in1"], + ["mul_5233_524.in1","const_p3_3$10.out"], + ["mul_5273_528.in1","const_p3_3$11.out"], + ["mul_5153_516.in1","const_p3_3$8.out"], + ["mul_5193_520.in1","const_p3_3$9.out"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_5153_516.in0"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_5193_520.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_5233_524.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_5273_528.in0"] + ] + }, + "hcompute_conv_stencil_4":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_571_574_575":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_575_578_579":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_579_582_583":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_4_570_571":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p3_3$12":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$13":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$14":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3_3$15":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "mul_5683_569":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_5723_573":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_5763_577":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_5803_581":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_4_570_571.out","add_571_574_575.in0"], + ["mul_5723_573.out","add_571_574_575.in1"], + ["add_575_578_579.in0","add_571_574_575.out"], + ["mul_5763_577.out","add_575_578_579.in1"], + ["add_579_582_583.in0","add_575_578_579.out"], + ["mul_5803_581.out","add_579_582_583.in1"], + ["self.out_conv_stencil","add_579_582_583.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_4_570_571.in0"], + ["mul_5683_569.out","add_conv_stencil_4_570_571.in1"], + ["mul_5683_569.in1","const_p3_3$12.out"], + ["mul_5723_573.in1","const_p3_3$13.out"], + ["mul_5763_577.in1","const_p3_3$14.out"], + ["mul_5803_581.in1","const_p3_3$15.out"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_5683_569.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_5723_573.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_5763_577.in0"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_5803_581.in0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil_1":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil_2":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil_3":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_1":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_2":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_3":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + } + } + } +} +} diff --git a/examples/clockwork/resnet_one_input_compute.json b/examples/clockwork/resnet_one_input_compute.json new file mode 100644 index 0000000..db435cd --- /dev/null +++ b/examples/clockwork/resnet_one_input_compute.json @@ -0,0 +1,415 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_conv_stencil":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__391":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_conv_stencil","const_p0__391.out"] + ] + }, + "hcompute_conv_stencil_1":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_412_415_416":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_416_419_420":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_420_423_424":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_1_411_412":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p15_15":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h000f"]} + }, + "const_p77_77":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h004d"]} + }, + "const_p83_83":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0053"]} + }, + "const_p86_86":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0056"]} + }, + "mul_40983_410":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_41386_414":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_41777_418":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_42115_422":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_1_411_412.out","add_412_415_416.in0"], + ["mul_41386_414.out","add_412_415_416.in1"], + ["add_416_419_420.in0","add_412_415_416.out"], + ["mul_41777_418.out","add_416_419_420.in1"], + ["add_420_423_424.in0","add_416_419_420.out"], + ["mul_42115_422.out","add_420_423_424.in1"], + ["self.out_conv_stencil","add_420_423_424.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_1_411_412.in0"], + ["mul_40983_410.out","add_conv_stencil_1_411_412.in1"], + ["mul_42115_422.in1","const_p15_15.out"], + ["mul_41777_418.in1","const_p77_77.out"], + ["mul_40983_410.in1","const_p83_83.out"], + ["mul_41386_414.in1","const_p86_86.out"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_40983_410.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_41386_414.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_41777_418.in0"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_42115_422.in0"] + ] + }, + "hcompute_conv_stencil_2":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_465_468_469":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_469_472_473":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_473_476_477":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_2_464_465":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p35_35":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0023"]} + }, + "const_p86_86$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0056"]} + }, + "const_p92_92":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h005c"]} + }, + "const_p93_93":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h005d"]} + }, + "mul_46293_463":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_46635_467":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_47086_471":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_47492_475":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_2_464_465.out","add_465_468_469.in0"], + ["mul_46635_467.out","add_465_468_469.in1"], + ["add_469_472_473.in0","add_465_468_469.out"], + ["mul_47086_471.out","add_469_472_473.in1"], + ["add_473_476_477.in0","add_469_472_473.out"], + ["mul_47492_475.out","add_473_476_477.in1"], + ["self.out_conv_stencil","add_473_476_477.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_2_464_465.in0"], + ["mul_46293_463.out","add_conv_stencil_2_464_465.in1"], + ["mul_46635_467.in1","const_p35_35.out"], + ["mul_47086_471.in1","const_p86_86$1.out"], + ["mul_47492_475.in1","const_p92_92.out"], + ["mul_46293_463.in1","const_p93_93.out"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_46293_463.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_46635_467.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_47086_471.in0"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_47492_475.in0"] + ] + }, + "hcompute_conv_stencil_3":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_518_521_522":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_522_525_526":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_526_529_530":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_3_517_518":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p21_21":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0015"]} + }, + "const_p27_27":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h001b"]} + }, + "const_p49_49":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0031"]} + }, + "const_p62_62":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h003e"]} + }, + "mul_51549_516":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_51921_520":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_52362_524":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_52727_528":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_3_517_518.out","add_518_521_522.in0"], + ["mul_51921_520.out","add_518_521_522.in1"], + ["add_522_525_526.in0","add_518_521_522.out"], + ["mul_52362_524.out","add_522_525_526.in1"], + ["add_526_529_530.in0","add_522_525_526.out"], + ["mul_52727_528.out","add_526_529_530.in1"], + ["self.out_conv_stencil","add_526_529_530.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_3_517_518.in0"], + ["mul_51549_516.out","add_conv_stencil_3_517_518.in1"], + ["mul_51921_520.in1","const_p21_21.out"], + ["mul_52727_528.in1","const_p27_27.out"], + ["mul_51549_516.in1","const_p49_49.out"], + ["mul_52362_524.in1","const_p62_62.out"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_51549_516.in0"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_51921_520.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_52362_524.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_52727_528.in0"] + ] + }, + "hcompute_conv_stencil_4":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_571_574_575":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_575_578_579":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_579_582_583":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_conv_stencil_4_570_571":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p26_26":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h001a"]} + }, + "const_p59_59":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h003b"]} + }, + "const_p63_63":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h003f"]} + }, + "const_p90_90":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h005a"]} + }, + "mul_56890_569":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_57259_573":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_57663_577":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_58026_581":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["add_conv_stencil_4_570_571.out","add_571_574_575.in0"], + ["mul_57259_573.out","add_571_574_575.in1"], + ["add_575_578_579.in0","add_571_574_575.out"], + ["mul_57663_577.out","add_575_578_579.in1"], + ["add_579_582_583.in0","add_575_578_579.out"], + ["mul_58026_581.out","add_579_582_583.in1"], + ["self.out_conv_stencil","add_579_582_583.out"], + ["self.in0_conv_stencil.0","add_conv_stencil_4_570_571.in0"], + ["mul_56890_569.out","add_conv_stencil_4_570_571.in1"], + ["mul_58026_581.in1","const_p26_26.out"], + ["mul_57259_573.in1","const_p59_59.out"], + ["mul_57663_577.in1","const_p63_63.out"], + ["mul_56890_569.in1","const_p90_90.out"], + ["self.in1_hw_input_global_wrapper_stencil.0","mul_56890_569.in0"], + ["self.in1_hw_input_global_wrapper_stencil.1","mul_57259_573.in0"], + ["self.in1_hw_input_global_wrapper_stencil.2","mul_57663_577.in0"], + ["self.in1_hw_input_global_wrapper_stencil.3","mul_58026_581.in0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil_1":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil_2":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_input_global_wrapper_stencil_3":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_1":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_2":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_3":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + } + } + } +} +} diff --git a/examples/clockwork/rom_compute.json b/examples/clockwork/rom_compute.json new file mode 100644 index 0000000..108235c --- /dev/null +++ b/examples/clockwork/rom_compute.json @@ -0,0 +1,61 @@ +{ +"namespaces":{ + "global":{ + "modules":{ + "hcompute_hw_input_global_wrapper_stencil":{ + "type":["Record",[ + ["out_hw_input_global_wrapper_stencil",["Array",16,"Bit"]], + ["in0_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_global_wrapper_stencil","self.in0_hw_input_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_hw_input_global_wrapper_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "const_p0__777":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_p1023__775":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h03ff"]} + }, + "rom_curvea0":{ + "genref":"memory.rom2", + "genargs":{"depth":["Int",256], "width":["Int",16]}, + "modargs":{"init":["Json",[0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63]]} + }, + "rom_curvea0_ren":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "smax_776_777_778":{ + "genref":"commonlib.smax", + "genargs":{"width":["Int",16]} + }, + "smin_hw_input_global_wrapper_stencil_1_775_776":{ + "genref":"commonlib.smin", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["smax_776_777_778.in1","const_p0__777.out"], + ["smin_hw_input_global_wrapper_stencil_1_775_776.in1","const_p1023__775.out"], + ["smax_776_777_778.out","rom_curvea0.raddr"], + ["self.out_hw_output_stencil","rom_curvea0.rdata"], + ["rom_curvea0_ren.out","rom_curvea0.ren"], + ["smin_hw_input_global_wrapper_stencil_1_775_776.in0","self.in0_hw_input_global_wrapper_stencil.0"], + ["smin_hw_input_global_wrapper_stencil_1_775_776.out","smax_776_777_778.in0"] + ] + } + } + } +} +} diff --git a/examples/clockwork/up_sample_compute.json b/examples/clockwork/up_sample_compute.json index 4bc8d27..0be026e 100644 --- a/examples/clockwork/up_sample_compute.json +++ b/examples/clockwork/up_sample_compute.json @@ -14,19 +14,129 @@ "hcompute_hw_output_stencil":{ "type":["Record",[ ["out_hw_output_stencil",["Array",16,"Bit"]], - ["in0_nearest_neighbor_stencil",["Array",1,["Array",16,"BitIn"]]] + ["in0_hw_input_global_wrapper_stencil",["Array",4,["Array",16,"BitIn"]]] ]], + "instances":{ + "add_275_278_279":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_280_286_287":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add_281_283_284":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "const_p2__274":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p2__274$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p2__274$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p2__274$3":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p2__274$4":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p2__274$5":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0002"]} + }, + "const_p3__276":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3__276$1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "const_p3__276$2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0003"]} + }, + "lshr_277_274_278":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_279_274_280":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_282_274_283":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_285_274_286":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_hw_input_global_wrapper_stencil_1_274_275":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "lshr_hw_input_global_wrapper_stencil_3_274_281":{ + "genref":"coreir.lshr", + "genargs":{"width":["Int",16]} + }, + "mul_284_276_285":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_input_global_wrapper_stencil_2_276_277":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + }, + "mul_hw_input_global_wrapper_stencil_4_276_282":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, "connections":[ - ["self.out_hw_output_stencil","self.in0_nearest_neighbor_stencil.0"] - ] - }, - "hcompute_nearest_neighbor_stencil":{ - "type":["Record",[ - ["out_nearest_neighbor_stencil",["Array",16,"Bit"]], - ["in0_hw_input_global_wrapper_stencil",["Array",1,["Array",16,"BitIn"]]] - ]], - "connections":[ - ["self.out_nearest_neighbor_stencil","self.in0_hw_input_global_wrapper_stencil.0"] + ["lshr_hw_input_global_wrapper_stencil_1_274_275.out","add_275_278_279.in0"], + ["lshr_277_274_278.out","add_275_278_279.in1"], + ["lshr_279_274_280.in0","add_275_278_279.out"], + ["lshr_279_274_280.out","add_280_286_287.in0"], + ["lshr_285_274_286.out","add_280_286_287.in1"], + ["self.out_hw_output_stencil","add_280_286_287.out"], + ["lshr_hw_input_global_wrapper_stencil_3_274_281.out","add_281_283_284.in0"], + ["lshr_282_274_283.out","add_281_283_284.in1"], + ["mul_284_276_285.in0","add_281_283_284.out"], + ["lshr_277_274_278.in1","const_p2__274$1.out"], + ["lshr_279_274_280.in1","const_p2__274$2.out"], + ["lshr_hw_input_global_wrapper_stencil_3_274_281.in1","const_p2__274$3.out"], + ["lshr_282_274_283.in1","const_p2__274$4.out"], + ["lshr_285_274_286.in1","const_p2__274$5.out"], + ["lshr_hw_input_global_wrapper_stencil_1_274_275.in1","const_p2__274.out"], + ["mul_hw_input_global_wrapper_stencil_4_276_282.in1","const_p3__276$1.out"], + ["mul_284_276_285.in1","const_p3__276$2.out"], + ["mul_hw_input_global_wrapper_stencil_2_276_277.in1","const_p3__276.out"], + ["mul_hw_input_global_wrapper_stencil_2_276_277.out","lshr_277_274_278.in0"], + ["mul_hw_input_global_wrapper_stencil_4_276_282.out","lshr_282_274_283.in0"], + ["mul_284_276_285.out","lshr_285_274_286.in0"], + ["self.in0_hw_input_global_wrapper_stencil.0","lshr_hw_input_global_wrapper_stencil_1_274_275.in0"], + ["self.in0_hw_input_global_wrapper_stencil.2","lshr_hw_input_global_wrapper_stencil_3_274_281.in0"], + ["self.in0_hw_input_global_wrapper_stencil.1","mul_hw_input_global_wrapper_stencil_2_276_277.in0"], + ["self.in0_hw_input_global_wrapper_stencil.3","mul_hw_input_global_wrapper_stencil_4_276_282.in0"] ] } } diff --git a/examples/coreir/add2_const.json b/examples/coreir/add2_const.json new file mode 100644 index 0000000..be522b4 --- /dev/null +++ b/examples/coreir/add2_const.json @@ -0,0 +1,42 @@ +{"top":"global.add3_const", +"namespaces":{ + "global":{ + "modules":{ + "add3_const":{ + "type":["Record",[ + ["in", ["Array", 3, ["Array",16,"BitIn"]]], + ["out",["Array", 1, ["Array",16,"Bit"]]] + ]], + "instances":{ + "c1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector", 16], "16'h55"]} + }, + "add00":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add01":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "add1":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in.0","add00.in0"], + ["self.in.1","add00.in1"], + ["add1.in0","add00.out"], + ["self.in.2","add01.in0"], + ["c1.out","add01.in1"], + ["add1.in1","add01.out"], + ["self.out.0","add1.out"] + ] + } + } + } +} +} diff --git a/examples/coreir/branch.json b/examples/coreir/branch.json new file mode 100644 index 0000000..bc52b7b --- /dev/null +++ b/examples/coreir/branch.json @@ -0,0 +1,31 @@ +{"top":"global.Add4", +"namespaces":{ + "global":{ + "modules":{ + "Add4":{ + "type":["Record",[ + ["in", ["Array", 2, ["Array",16,"BitIn"]]], + ["out",["Array", 1, ["Array",16,"Bit"]]] + ]], + "instances":{ + "a0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "a1":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in.0","a0.in0"], + ["self.in.1","a0.in1"], + ["a0.out","a1.in0"], + ["self.in.0","a1.in1"], + ["self.out.0","a1.out"] + ] + } + } + } +} +} diff --git a/examples/peak_gen/peak_eq_0.py b/examples/peak_gen/peak_eq_0.py new file mode 100644 index 0000000..c6d840d --- /dev/null +++ b/examples/peak_gen/peak_eq_0.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_0_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_0(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + sub0 = SInt(data52 - data53); + return Data((sub0 >= SInt(0)).ite(sub0, (SInt(-1)*sub0))) + + return mapping_function_0 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_1.py b/examples/peak_gen/peak_eq_1.py new file mode 100644 index 0000000..b902044 --- /dev/null +++ b/examples/peak_gen/peak_eq_1.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_1_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_1(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data((UInt(data53) >= UInt(data52)).ite(UInt(data53), UInt(data52))) + + return mapping_function_1 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_10.py b/examples/peak_gen/peak_eq_10.py new file mode 100644 index 0000000..ea56a28 --- /dev/null +++ b/examples/peak_gen/peak_eq_10.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_10_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_10(Peak): + def __call__(self, data52 : Data, data53 : Data, data106 : Bit) -> Data: + + return Data(data106.ite(UInt(data52),UInt(data53))) + + return mapping_function_10 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_11.py b/examples/peak_gen/peak_eq_11.py new file mode 100644 index 0000000..69080ea --- /dev/null +++ b/examples/peak_gen/peak_eq_11.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_11_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_11(Peak): + def __call__(self, data108 : Const(Data)) -> Data: + + return data108 + + return mapping_function_11 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_12.py b/examples/peak_gen/peak_eq_12.py new file mode 100644 index 0000000..0cd006f --- /dev/null +++ b/examples/peak_gen/peak_eq_12.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_12_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_12(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Bit: + + return Bit(SInt(data53) >= SInt(data52)) + + return mapping_function_12 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_13.py b/examples/peak_gen/peak_eq_13.py new file mode 100644 index 0000000..2511915 --- /dev/null +++ b/examples/peak_gen/peak_eq_13.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_13_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_13(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data(UInt(data53) * UInt(data52)) + + return mapping_function_13 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_14.py b/examples/peak_gen/peak_eq_14.py new file mode 100644 index 0000000..87c146d --- /dev/null +++ b/examples/peak_gen/peak_eq_14.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_14_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_14(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data(UInt(data53) >> UInt(data52)) + + return mapping_function_14 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_15.py b/examples/peak_gen/peak_eq_15.py new file mode 100644 index 0000000..71b4a4c --- /dev/null +++ b/examples/peak_gen/peak_eq_15.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_15_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_15(Peak): + def __call__(self, data5042 : Data, data5047 : Data) -> Data: + + return Data(UInt(data5042) & UInt(data5047)) + + return mapping_function_15 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_16.py b/examples/peak_gen/peak_eq_16.py new file mode 100644 index 0000000..b206eb2 --- /dev/null +++ b/examples/peak_gen/peak_eq_16.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_16_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_16(Peak): + def __call__(self, data5043 : Data, data5048 : Data) -> Bit: + + return Bit(UInt(data5048) < UInt(data5043)) + + return mapping_function_16 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_17.py b/examples/peak_gen/peak_eq_17.py new file mode 100644 index 0000000..f40b144 --- /dev/null +++ b/examples/peak_gen/peak_eq_17.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_17_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_17(Peak): + def __call__(self, data5043 : Data, data5048 : Data) -> Bit: + + return Bit(UInt(data5048) == UInt(data5043)) + + return mapping_function_17 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_18.py b/examples/peak_gen/peak_eq_18.py new file mode 100644 index 0000000..92c40df --- /dev/null +++ b/examples/peak_gen/peak_eq_18.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_18_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_18(Peak): + def __call__(self, data5043 : Data, data5045 : Data) -> Data: + + return Data(SInt(data5045) >> SInt(data5043)) + + return mapping_function_18 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_19.py b/examples/peak_gen/peak_eq_19.py new file mode 100644 index 0000000..41ae884 --- /dev/null +++ b/examples/peak_gen/peak_eq_19.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_19_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_19(Peak): + def __call__(self, data91 : Data, data92 : Data, data197 : Bit) -> Data: + + return Data(data197.ite(UInt(data92),UInt(data91))) + + return mapping_function_19 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_2.py b/examples/peak_gen/peak_eq_2.py new file mode 100644 index 0000000..e334170 --- /dev/null +++ b/examples/peak_gen/peak_eq_2.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_2_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_2(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data((UInt(data53) <= UInt(data52)).ite(UInt(data53), UInt(data52))) + + return mapping_function_2 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_20.py b/examples/peak_gen/peak_eq_20.py new file mode 100644 index 0000000..d43d2c7 --- /dev/null +++ b/examples/peak_gen/peak_eq_20.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_20_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_20(Peak): + def __call__(self, data91 : Data, data92 : Data) -> Bit: + + return Bit(UInt(data91) == UInt(data92)) + + return mapping_function_20 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_21.py b/examples/peak_gen/peak_eq_21.py new file mode 100644 index 0000000..02f6b5a --- /dev/null +++ b/examples/peak_gen/peak_eq_21.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_21_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_21(Peak): + def __call__(self, data91 : Data, data92 : Data) -> Bit: + + return Bit(SInt(data91) < SInt(data92)) + + return mapping_function_21 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_22.py b/examples/peak_gen/peak_eq_22.py new file mode 100644 index 0000000..e34ebec --- /dev/null +++ b/examples/peak_gen/peak_eq_22.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_22_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_22(Peak): + def __call__(self, data91 : Data, data92 : Data) -> Data: + + return Data(UInt(data91) >> UInt(data92)) + + return mapping_function_22 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_23.py b/examples/peak_gen/peak_eq_23.py new file mode 100644 index 0000000..d4b6a53 --- /dev/null +++ b/examples/peak_gen/peak_eq_23.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_23_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_23(Peak): + def __call__(self, data197 : Bit, data199 : Bit) -> Bit: + + return Bit(Bit(data197) & Bit(data199)) + + return mapping_function_23 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_24.py b/examples/peak_gen/peak_eq_24.py new file mode 100644 index 0000000..22b3966 --- /dev/null +++ b/examples/peak_gen/peak_eq_24.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_24_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_24(Peak): + def __call__(self, data91 : Data, data92 : Data) -> Data: + + return Data(UInt(data91) + UInt(data92)) + + return mapping_function_24 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_25.py b/examples/peak_gen/peak_eq_25.py new file mode 100644 index 0000000..4e811b1 --- /dev/null +++ b/examples/peak_gen/peak_eq_25.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_25_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_25(Peak): + def __call__(self, data91 : Data, data92 : Data) -> Data: + + return Data(SInt(data91) >> SInt(data92)) + + return mapping_function_25 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_26.py b/examples/peak_gen/peak_eq_26.py new file mode 100644 index 0000000..dbaad46 --- /dev/null +++ b/examples/peak_gen/peak_eq_26.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_26_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_26(Peak): + def __call__(self, data91 : Data, data92 : Data) -> Data: + + return Data(UInt(data91) - UInt(data92)) + + return mapping_function_26 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_27.py b/examples/peak_gen/peak_eq_27.py new file mode 100644 index 0000000..3073549 --- /dev/null +++ b/examples/peak_gen/peak_eq_27.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_27_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_27(Peak): + def __call__(self, data91 : Data, data92 : Data) -> Bit: + + return Bit(SInt(data91) <= SInt(data92)) + + return mapping_function_27 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_28.py b/examples/peak_gen/peak_eq_28.py new file mode 100644 index 0000000..24a19b0 --- /dev/null +++ b/examples/peak_gen/peak_eq_28.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_28_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_28(Peak): + def __call__(self, data1065 : Data, data1070 : Data) -> Data: + + return Data(UInt(data1065) >> UInt(data1070)) + + return mapping_function_28 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_29.py b/examples/peak_gen/peak_eq_29.py new file mode 100644 index 0000000..708374b --- /dev/null +++ b/examples/peak_gen/peak_eq_29.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_29_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_29(Peak): + def __call__(self, data1062 : Const(Data)) -> Data: + + return data1062 + + return mapping_function_29 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_3.py b/examples/peak_gen/peak_eq_3.py new file mode 100644 index 0000000..b512ae3 --- /dev/null +++ b/examples/peak_gen/peak_eq_3.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_3_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_3(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data(UInt(data53) - UInt(data52)) + + return mapping_function_3 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_30.py b/examples/peak_gen/peak_eq_30.py new file mode 100644 index 0000000..683d245 --- /dev/null +++ b/examples/peak_gen/peak_eq_30.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_30_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_30(Peak): + def __call__(self, data1065 : Data, data1063 : Data) -> Bit: + + return Bit(UInt(data1063) < UInt(data1065)) + + return mapping_function_30 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_31.py b/examples/peak_gen/peak_eq_31.py new file mode 100644 index 0000000..730ecdb --- /dev/null +++ b/examples/peak_gen/peak_eq_31.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_31_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_31(Peak): + def __call__(self, data1069 : Data, data1063 : Data) -> Data: + + return Data(UInt(data1063) + UInt(data1069)) + + return mapping_function_31 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_4.py b/examples/peak_gen/peak_eq_4.py new file mode 100644 index 0000000..72f35c1 --- /dev/null +++ b/examples/peak_gen/peak_eq_4.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_4_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_4(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Bit: + + return Bit(UInt(data53) == UInt(data52)) + + return mapping_function_4 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_5.py b/examples/peak_gen/peak_eq_5.py new file mode 100644 index 0000000..28b7f8a --- /dev/null +++ b/examples/peak_gen/peak_eq_5.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_5_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_5(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data(UInt(data53) + UInt(data52)) + + return mapping_function_5 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_6.py b/examples/peak_gen/peak_eq_6.py new file mode 100644 index 0000000..5d48500 --- /dev/null +++ b/examples/peak_gen/peak_eq_6.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_6_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_6(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data(UInt(data53) & UInt(data52)) + + return mapping_function_6 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_7.py b/examples/peak_gen/peak_eq_7.py new file mode 100644 index 0000000..57bcb6e --- /dev/null +++ b/examples/peak_gen/peak_eq_7.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_7_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_7(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Bit: + + return Bit(UInt(data53) < UInt(data52)) + + return mapping_function_7 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_8.py b/examples/peak_gen/peak_eq_8.py new file mode 100644 index 0000000..7af4437 --- /dev/null +++ b/examples/peak_gen/peak_eq_8.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_8_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_8(Peak): + def __call__(self, data52 : Data, data53 : Data) -> Data: + + return Data(SInt(data53) >> SInt(data52)) + + return mapping_function_8 + \ No newline at end of file diff --git a/examples/peak_gen/peak_eq_9.py b/examples/peak_gen/peak_eq_9.py new file mode 100644 index 0000000..c9b35c7 --- /dev/null +++ b/examples/peak_gen/peak_eq_9.py @@ -0,0 +1,19 @@ + +from peak import Peak, family_closure, Const +from peak import family +from peak.family import AbstractFamily + +@family_closure +def mapping_function_9_fc(family: AbstractFamily): + Data = family.BitVector[16] + SInt = family.Signed[16] + UInt = family.Unsigned[16] + Bit = family.Bit + @family.assemble(locals(), globals()) + class mapping_function_9(Peak): + def __call__(self, data104 : Const(Bit)) -> Bit: + + return data104 + + return mapping_function_9 + \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_0.json b/examples/peak_gen/rewrite_rules/rewrite_rule_0.json new file mode 100644 index 0000000..4bc110f --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_0.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 4 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_1.json b/examples/peak_gen/rewrite_rules/rewrite_rule_1.json new file mode 100644 index 0000000..aff4ad4 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_1.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 65535 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 1 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_10.json b/examples/peak_gen/rewrite_rules/rewrite_rule_10.json new file mode 100644 index 0000000..e665679 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_10.json @@ -0,0 +1,210 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 1 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 2 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + [ + "data106" + ], + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_11.json b/examples/peak_gen/rewrite_rules/rewrite_rule_11.json new file mode 100644 index 0000000..2add4a4 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_11.json @@ -0,0 +1,202 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 4 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 4 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 4 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + [ + "data108" + ], + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 7 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + "unbound", + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs1" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_12.json b/examples/peak_gen/rewrite_rules/rewrite_rule_12.json new file mode 100644 index 0000000..97799dc --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_12.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 14 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 0 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 3 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + "unbound", + [ + "pe_outputs_0" + ] + ], + [ + [ + 0 + ], + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_13.json b/examples/peak_gen/rewrite_rules/rewrite_rule_13.json new file mode 100644 index 0000000..5bfda72 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_13.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 1 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 17 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 6 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_14.json b/examples/peak_gen/rewrite_rules/rewrite_rule_14.json new file mode 100644 index 0000000..fb503f4 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_14.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 0 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 0 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 0 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 3 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_2.json b/examples/peak_gen/rewrite_rules/rewrite_rule_2.json new file mode 100644 index 0000000..7a89c69 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_2.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 65535 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 8 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_3.json b/examples/peak_gen/rewrite_rules/rewrite_rule_3.json new file mode 100644 index 0000000..f030e59 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_3.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 65535 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 15 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_4.json b/examples/peak_gen/rewrite_rules/rewrite_rule_4.json new file mode 100644 index 0000000..b28a4c3 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_4.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 0 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 0 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 0 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 0 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 1 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + "unbound", + [ + "pe_outputs_0" + ] + ], + [ + [ + 0 + ], + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_5.json b/examples/peak_gen/rewrite_rules/rewrite_rule_5.json new file mode 100644 index 0000000..2eca8f5 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_5.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 65535 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 9 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_6.json b/examples/peak_gen/rewrite_rules/rewrite_rule_6.json new file mode 100644 index 0000000..f1e115e --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_6.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 1 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 15 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 15 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 15 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 32767 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 5 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_7.json b/examples/peak_gen/rewrite_rules/rewrite_rule_7.json new file mode 100644 index 0000000..a8e8fa4 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_7.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 0 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 4 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 3 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 0 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 1 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + "unbound", + [ + "pe_outputs_0" + ] + ], + [ + [ + 0 + ], + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_8.json b/examples/peak_gen/rewrite_rules/rewrite_rule_8.json new file mode 100644 index 0000000..5fce5cc --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_8.json @@ -0,0 +1,208 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": false + }, + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 65535 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 3 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 0 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 1 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + [ + "data53" + ], + [ + "inputs1" + ] + ], + [ + [ + "data52" + ], + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + [ + 0 + ], + [ + "pe_outputs_0" + ] + ], + [ + "unbound", + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/peak_gen/rewrite_rules/rewrite_rule_9.json b/examples/peak_gen/rewrite_rules/rewrite_rule_9.json new file mode 100644 index 0000000..f4cedc1 --- /dev/null +++ b/examples/peak_gen/rewrite_rules/rewrite_rule_9.json @@ -0,0 +1,202 @@ +{ + "ibinding": [ + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "bit_alu", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 5, + "value": 18 + }, + [ + "inst", + "cond", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "mul", + 0 + ] + ], + [ + [ + "data104" + ], + [ + "inst", + "const_data", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 16, + "value": 0 + }, + [ + "inst", + "const_data", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 4, + "value": 0 + }, + [ + "inst", + "mux_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 2, + "value": 2 + }, + [ + "inst", + "mux_bit_out", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 0 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 1 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 2 + ] + ], + [ + { + "type": "BitVector", + "width": 1, + "value": 0 + }, + [ + "inst", + "signed", + 3 + ] + ], + [ + "unbound", + [ + "inputs0" + ] + ], + [ + "unbound", + [ + "inputs1" + ] + ], + [ + "unbound", + [ + "inputs2" + ] + ], + [ + { + "type": "Bit", + "width": 1, + "value": true + }, + [ + "clk_en" + ] + ] + ], + "obinding": [ + [ + "unbound", + [ + "pe_outputs_0" + ] + ], + [ + [ + 0 + ], + [ + "pe_outputs_1" + ] + ] + ] +} \ No newline at end of file diff --git a/examples/post_mapping/add3_const_mapped.json b/examples/post_mapping/add3_const_mapped.json index 1c5a78e..3cfbf6d 100644 --- a/examples/post_mapping/add3_const_mapped.json +++ b/examples/post_mapping/add3_const_mapped.json @@ -1,5 +1,5 @@ {"top":"global.add3_const_mapped", -"namespaces":{ + "namespaces":{ "coreir":{ "generators":{ "const":{ @@ -55,51 +55,51 @@ ["out",["Array",1,["Array",16,"Bit"]]] ]], "instances":{ - "c4493117200":{ + "c4436970240":{ "genref":"coreir.const", "genargs":{"width":["Int",67]}, "modargs":{"value":[["BitVector",67],"67'h00001540000500000"]} }, - "c4493344952":{ + "c4437099016":{ "genref":"coreir.const", "genargs":{"width":["Int",67]}, "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} }, - "c4493369240":{ + "c4437101256":{ "genref":"coreir.const", "genargs":{"width":["Int",67]}, "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} }, - "c4493386808":{ + "c4437136160":{ "genref":"coreir.const", "genargs":{"width":["Int",67]}, "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} }, - "i4492655472_i4511551560":{ + "i4434164648_i4455256808":{ "modref":"global.PE" }, - "i4492743064_i4511551560":{ + "i4434165432_i4455256808":{ "modref":"global.PE" }, - "i4492743232_i4511551560":{ + "i4434165600_i4455256808":{ "modref":"global.PE" }, - "i4492743736_i4499993320":{ + "i4436677240_i4444632736":{ "modref":"global.PE" } }, "connections":[ - ["i4492743736_i4499993320.inst","c4493117200.out"], - ["i4492655472_i4511551560.inst","c4493344952.out"], - ["i4492743064_i4511551560.inst","c4493369240.out"], - ["i4492743232_i4511551560.inst","c4493386808.out"], - ["i4492743232_i4511551560.data0","i4492655472_i4511551560.O0"], - ["self.in.0","i4492655472_i4511551560.data0"], - ["self.in.1","i4492655472_i4511551560.data1"], - ["i4492743232_i4511551560.data1","i4492743064_i4511551560.O0"], - ["self.in.2","i4492743064_i4511551560.data0"], - ["i4492743736_i4499993320.O0","i4492743064_i4511551560.data1"], - ["self.out.0","i4492743232_i4511551560.O0"] + ["i4436677240_i4444632736.inst","c4436970240.out"], + ["i4434165600_i4455256808.inst","c4437099016.out"], + ["i4434164648_i4455256808.inst","c4437101256.out"], + ["i4434165432_i4455256808.inst","c4437136160.out"], + ["i4434165600_i4455256808.data0","i4434164648_i4455256808.O0"], + ["self.in.0","i4434164648_i4455256808.data0"], + ["self.in.1","i4434164648_i4455256808.data1"], + ["i4434165600_i4455256808.data1","i4434165432_i4455256808.O0"], + ["self.in.2","i4434165432_i4455256808.data0"], + ["i4436677240_i4444632736.O0","i4434165432_i4455256808.data1"], + ["self.out.0","i4434165600_i4455256808.O0"] ] } } diff --git a/examples/post_mapping/add4_pipe_mapped.json b/examples/post_mapping/add4_pipe_mapped.json new file mode 100644 index 0000000..7c112a2 --- /dev/null +++ b/examples/post_mapping/add4_pipe_mapped.json @@ -0,0 +1,142 @@ +{"top":"global.add4_pipe_mapped", + "namespaces":{ + "coreir":{ + "generators":{ + "const":{ + "typegen":"coreir.singleOutType", + "genparams":{"width":"Int"}, + "modules":[ + [ + {"width":["Int",67]}, + { + "type":["Record",[ + ["out",["Array",67,"Bit"]] + ]], + "modparams":{"value":["BitVector",67]} + } + ] + ] + }, + "reg":{ + "typegen":"coreir.regType", + "genparams":{"width":"Int"}, + "modules":[ + [ + {"width":["Int",16]}, + { + "type":["Record",[ + ["clk",["Named","coreir.clkIn"]], + ["in",["Array",16,"BitIn"]], + ["out",["Array",16,"Bit"]] + ]], + "modparams":{"clk_posedge":"Bool", "init":["BitVector",16]}, + "defaultmodargs":{"clk_posedge":["Bool",true], "init":[["BitVector",16],"16'hxxxx"]} + } + ] + ] + } + }, + "typegens":{ + "regType":[ + {"width":"Int"}, + "sparse", + [ + [{"width":["Int",16]},["Record",[["clk",["Named","coreir.clkIn"]],["in",["Array",16,"BitIn"]],["out",["Array",16,"Bit"]]]]] + ] + ], + "singleOutType":[ + {"width":"Int"}, + "sparse", + [ + [{"width":["Int",67]},["Record",[["out",["Array",67,"Bit"]]]]] + ] + ] + } + }, + "global":{ + "modules":{ + "PE":{ + "type":["Record",[ + ["inst",["Array",67,"BitIn"]], + ["data0",["Array",16,"BitIn"]], + ["data1",["Array",16,"BitIn"]], + ["bit0","BitIn"], + ["bit1","BitIn"], + ["bit2","BitIn"], + ["clk_en","BitIn"], + ["config_addr",["Array",8,"BitIn"]], + ["config_data",["Array",32,"BitIn"]], + ["config_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2",["Array",32,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]] + }, + "add4_pipe_mapped":{ + "type":["Record",[ + ["in",["Array",4,["Array",16,"BitIn"]]], + ["out",["Array",16,"Bit"]] + ]], + "instances":{ + "c4599330128":{ + "genref":"coreir.const", + "genargs":{"width":["Int",67]}, + "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} + }, + "c4599346624":{ + "genref":"coreir.const", + "genargs":{"width":["Int",67]}, + "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} + }, + "c4599416424":{ + "genref":"coreir.const", + "genargs":{"width":["Int",67]}, + "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} + }, + "i4596465792_i4617393712":{ + "modref":"global.PE" + }, + "i4598861896_i4617393712":{ + "modref":"global.PE" + }, + "i4598862176_i4617393712":{ + "modref":"global.PE" + }, + "r00":{ + "genref":"coreir.reg", + "genargs":{"width":["Int",16]}, + "modargs":{"clk_posedge":["Bool",true], "init":[["BitVector",16],"16'h0000"]} + }, + "r01":{ + "genref":"coreir.reg", + "genargs":{"width":["Int",16]}, + "modargs":{"clk_posedge":["Bool",true], "init":[["BitVector",16],"16'h0000"]} + }, + "r1":{ + "genref":"coreir.reg", + "genargs":{"width":["Int",16]}, + "modargs":{"clk_posedge":["Bool",true], "init":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["i4598862176_i4617393712.inst","c4599330128.out"], + ["i4598861896_i4617393712.inst","c4599346624.out"], + ["i4596465792_i4617393712.inst","c4599416424.out"], + ["r00.in","i4596465792_i4617393712.O0"], + ["self.in.0","i4596465792_i4617393712.data0"], + ["self.in.1","i4596465792_i4617393712.data1"], + ["r01.in","i4598861896_i4617393712.O0"], + ["self.in.2","i4598861896_i4617393712.data0"], + ["self.in.3","i4598861896_i4617393712.data1"], + ["r1.in","i4598862176_i4617393712.O0"], + ["r00.out","i4598862176_i4617393712.data0"], + ["r01.out","i4598862176_i4617393712.data1"], + ["self.out","r1.out"] + ] + } + } + } +} +} diff --git a/examples/post_mapping/branch_mapped.json b/examples/post_mapping/branch_mapped.json new file mode 100644 index 0000000..289c646 --- /dev/null +++ b/examples/post_mapping/branch_mapped.json @@ -0,0 +1,119 @@ +{"top":"global.branch_mapped", + "namespaces":{ + "coreir":{ + "generators":{ + "const":{ + "typegen":"coreir.singleOutType", + "genparams":{"width":"Int"}, + "modules":[ + [ + {"width":["Int",67]}, + { + "type":["Record",[ + ["out",["Array",67,"Bit"]] + ]], + "modparams":{"value":["BitVector",67]} + } + ] + ] + }, + "reg":{ + "typegen":"coreir.regType", + "genparams":{"width":"Int"}, + "modules":[ + [ + {"width":["Int",16]}, + { + "type":["Record",[ + ["clk",["Named","coreir.clkIn"]], + ["in",["Array",16,"BitIn"]], + ["out",["Array",16,"Bit"]] + ]], + "modparams":{"clk_posedge":"Bool", "init":["BitVector",16]}, + "defaultmodargs":{"clk_posedge":["Bool",true], "init":[["BitVector",16],"16'hxxxx"]} + } + ] + ] + } + }, + "typegens":{ + "regType":[ + {"width":"Int"}, + "sparse", + [ + [{"width":["Int",16]},["Record",[["clk",["Named","coreir.clkIn"]],["in",["Array",16,"BitIn"]],["out",["Array",16,"Bit"]]]]] + ] + ], + "singleOutType":[ + {"width":"Int"}, + "sparse", + [ + [{"width":["Int",67]},["Record",[["out",["Array",67,"Bit"]]]]] + ] + ] + } + }, + "global":{ + "modules":{ + "branch_mapped":{ + "type":["Record",[ + ["in",["Array",2,["Array",16,"BitIn"]]], + ["out",["Array",1,["Array",16,"Bit"]]] + ]], + "instances":{ + "c4432046680":{ + "genref":"coreir.const", + "genargs":{"width":["Int",67]}, + "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} + }, + "c4432047464":{ + "genref":"coreir.const", + "genargs":{"width":["Int",67]}, + "modargs":{"value":[["BitVector",67],"67'h00000020000880002"]} + }, + "i4431536312_i4450399680":{ + "modref":"global.PE" + }, + "i4431536704_i4450399680":{ + "modref":"global.PE" + }, + "i4432047576":{ + "genref":"coreir.reg", + "genargs":{"width":["Int",16]}, + "modargs":{"clk_posedge":["Bool",true], "init":[["BitVector",16],"16'hxxxx"]} + } + }, + "connections":[ + ["i4431536312_i4450399680.inst","c4432046680.out"], + ["i4431536704_i4450399680.inst","c4432047464.out"], + ["i4431536704_i4450399680.data0","i4431536312_i4450399680.O0"], + ["self.in.0","i4431536312_i4450399680.data0"], + ["self.in.1","i4431536312_i4450399680.data1"], + ["self.out.0","i4431536704_i4450399680.O0"], + ["i4432047576.out","i4431536704_i4450399680.data1"], + ["self.in.0","i4432047576.in"] + ] + }, + "PE":{ + "type":["Record",[ + ["inst",["Array",67,"BitIn"]], + ["data0",["Array",16,"BitIn"]], + ["data1",["Array",16,"BitIn"]], + ["bit0","BitIn"], + ["bit1","BitIn"], + ["bit2","BitIn"], + ["clk_en","BitIn"], + ["config_addr",["Array",8,"BitIn"]], + ["config_data",["Array",32,"BitIn"]], + ["config_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2",["Array",32,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]] + } + } + } +} +} diff --git a/libs/lassen_header.json b/libs/lassen_header.json index a1fdbb8..04494ca 100644 --- a/libs/lassen_header.json +++ b/libs/lassen_header.json @@ -3,19 +3,15 @@ "modules":{ "PE":{ "type":["Record",[ - ["inst",["Array",67,"BitIn"]], + ["inst",["Array",63,"BitIn"]], ["data0",["Array",16,"BitIn"]], ["data1",["Array",16,"BitIn"]], ["bit0","BitIn"], ["bit1","BitIn"], ["bit2","BitIn"], ["clk_en","BitIn"], - ["config_addr",["Array",8,"BitIn"]], - ["config_data",["Array",32,"BitIn"]], - ["config_en","BitIn"], ["O0",["Array",16,"Bit"]], ["O1","Bit"], - ["O2",["Array",32,"Bit"]], ["CLK",["Named","coreir.clkIn"]], ["ASYNCRESET",["Named","coreir.arstIn"]] ]] diff --git a/libs/lassen_header_test.json b/libs/lassen_header_test.json new file mode 100644 index 0000000..a1fdbb8 --- /dev/null +++ b/libs/lassen_header_test.json @@ -0,0 +1,26 @@ +{"namespaces":{ + "global":{ + "modules":{ + "PE":{ + "type":["Record",[ + ["inst",["Array",67,"BitIn"]], + ["data0",["Array",16,"BitIn"]], + ["data1",["Array",16,"BitIn"]], + ["bit0","BitIn"], + ["bit1","BitIn"], + ["bit2","BitIn"], + ["clk_en","BitIn"], + ["config_addr",["Array",8,"BitIn"]], + ["config_data",["Array",32,"BitIn"]], + ["config_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2",["Array",32,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]] + } + } + } +} +} diff --git a/libs/mem_header.json b/libs/mem_header.json index 883daff..cca6905 100644 --- a/libs/mem_header.json +++ b/libs/mem_header.json @@ -8,7 +8,8 @@ ["chain_data_in_1",["Array",16,"BitIn"]], ["flush","BitIn"], ["config_read","BitIn"], - ["ren_in",["Array",2,"BitIn"]], + ["ren_in_0","BitIn"], + ["ren_in_1","BitIn"], ["config_en",["Array",2,"BitIn"]], ["config_write","BitIn"], ["config_data_in",["Array",32,"BitIn"]], @@ -25,8 +26,9 @@ ["O3","Bit"], ["O4",["Array",16,"Bit"]], ["O5","Bit"], - ["O6",["Array",2,"Bit"]], - ["O7",["Array",32,"Bit"]], + ["O6","Bit"], + ["O7","Bit"], + ["O8",["Array",32,"Bit"]], ["CLK",["Named","coreir.clkIn"]], ["ASYNCRESET",["Named","coreir.arstIn"]] ]] diff --git a/libs/pe_header.json b/libs/pe_header.json new file mode 100644 index 0000000..7d5927b --- /dev/null +++ b/libs/pe_header.json @@ -0,0 +1,22 @@ +{"namespaces":{ + "global":{ + "modules":{ + "PE":{ + "type":["Record",[ + ["inst",["Array",56,"BitIn"]], + ["inputs0",["Array",16,"BitIn"]], + ["inputs1",["Array",16,"BitIn"]], + ["inputs2","BitIn"], + ["inputs3","BitIn"], + ["inputs4","BitIn"], + ["clk_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]] + } + } + } +} +} diff --git a/metamapper/common_passes.py b/metamapper/common_passes.py index 2aed373..08b707f 100644 --- a/metamapper/common_passes.py +++ b/metamapper/common_passes.py @@ -1,5 +1,6 @@ from collections import OrderedDict +from graphviz import Digraph from DagVisitor import Visitor, Transformer from .node import Nodes, Dag, Input, Common, Bind, Combine, Select, Constant, Output from .family import fam @@ -22,7 +23,7 @@ def __init__(self, no_unbound): def doit(self, dag: Dag): AddID().run(dag) - self.graph = Digraph(format='png') + self.graph = Digraph() self.run(dag) return self.graph @@ -32,9 +33,9 @@ def n2s(node): return f"{str(node)}_{node._id_}" if self.no_unbound and not is_unbound_const(node): self.graph.node(n2s(node)) - for child in node.children(): + for i, child in enumerate(node.children()): if self.no_unbound and not is_unbound_const(child): - self.graph.edge(n2s(child), n2s(node)) + self.graph.edge(n2s(child), n2s(node), label=str(i)) def gen_dag_img(dag, file, no_unbound=True): DagToPdf(no_unbound).doit(dag).render(filename=file) @@ -300,6 +301,18 @@ def generic_visit(self, node): child_ids = ", ".join([str(child._id_) for child in node.children()]) self.res += f"{node._id_}<{node.kind()[0]}:{node._id_}, {list(T.field_dict.keys())}>({child_ids})\n" + def visit_PipelineRegister(self, node): + Visitor.generic_visit(self, node) + self.res += f"{node._id_}({node.child._id_})" + + def visit_RegisterSource(self, node): + Visitor.generic_visit(self, node) + self.res += f"{node._id_}" + + def visit_RegisterSink(self, node): + Visitor.generic_visit(self, node) + self.res += f"{node._id_}({node.child._id_})" + def visit_Bind(self, node): Visitor.generic_visit(self, node) child_ids = ", ".join([str(child._id_) for child in node.children()]) @@ -334,7 +347,6 @@ def visit_Combine(self, node: Bind): child_ids = ", ".join([str(child._id_) for child in node.children()]) self.res += f"{node._id_}({child_ids})\n" - class BindsToCombines(Transformer): def gen_combine(self, node: Bind): if len(node.paths) == 1 and len(node.paths[0]) == 0: @@ -429,6 +441,10 @@ def print_dag(dag: Dag): def count_pes(dag: Dag): return CountPEs().run(dag).res +def dag_to_pdf(dag: Dag, filename): + AddID().run(dag) + DagToPdf().run(dag).graph.render(filename, view=False) + class CheckIfTree(Visitor): def __init__(self): self.parent_cnt = {} diff --git a/metamapper/coreir_mapper.py b/metamapper/coreir_mapper.py index 58e6123..c969e4a 100644 --- a/metamapper/coreir_mapper.py +++ b/metamapper/coreir_mapper.py @@ -1,41 +1,22 @@ from metamapper.common_passes import VerifyNodes, print_dag, count_pes, SimplifyCombines, RemoveSelects, prove_equal, \ - Clone, ExtractNames, Unbound2Const + Clone, ExtractNames, Unbound2Const, gen_dag_img import metamapper.coreir_util as cutil from metamapper.rewrite_table import RewriteTable from metamapper.node import Nodes, Dag +from metamapper.delay_matching import DelayMatching, KernelDelay from metamapper.instruction_selection import GreedyCovering +from metamapper.irs.coreir.ir import mult_const_fc from peak.mapper import RewriteRule as PeakRule, read_serialized_bindings import typing as tp import coreir import json -#conv_ops = ( -# "corebit.const", -# "coreir.add", -# "coreir.mul", -# "coreir.const", -#) -#camera_ops = ( -# "corebit.const", -# "corebit.or_", -# "corebit.and_", -# "coreir.add", -# "coreir.and_", -# "coreir.ashr", -# "coreir.const", -# "coreir.eq", -# "coreir.lshr", -# "coreir.mul", -# "coreir.mux", -# "coreir.slt", -# "coreir.sub", -# "coreir.ult", -# "commonlib.abs", -# "commonlib.smax", -# "commonlib.smin", -# "commonlib.umax", -# "commonlib.umin", -#) + +class DefaultLatency: + + @staticmethod + def get(node): + return 0 class Mapper: # Lazy # Discover at mapping time @@ -47,9 +28,10 @@ def __init__(self, CoreIRNodes: Nodes, ArchNodes: Nodes, alg=GreedyCovering, laz self.ArchNodes = ArchNodes self.table = RewriteTable(CoreIRNodes, ArchNodes) self.num_pes = 0 + self.kernel_latencies = {} - if not lazy and rule_file is None and len(ops) == 0: - raise ValueError("If not lazy, need ops specified!") + # if not lazy and rule_file is None and len(ops) == 0: + # raise ValueError("If not lazy, need ops specified!") if lazy and len(ops) > 0: raise ValueError("if lazy, needs no ops specified!") @@ -78,7 +60,7 @@ def gen_rules(self, ops, rule_file=None, rrules=None): else: print(f" Found!") elif rrules is None: - + for arch_name in self.ArchNodes._node_names: if arch_name != "global.PE": continue @@ -86,40 +68,52 @@ def gen_rules(self, ops, rule_file=None, rrules=None): with open(rule_file, "r") as read_file: rrs = json.loads(read_file.read()) for op, rr in rrs.items(): - ir_fc = self.CoreIRNodes.peak_nodes[op] + print(op) + if op == "coreir.mult_const": + ir_fc = mult_const_fc + else: + ir_fc = self.CoreIRNodes.peak_nodes[op] new_rewrite_rule = read_serialized_bindings(rr, ir_fc, arch_fc) counter_example = new_rewrite_rule.verify() - + if counter_example is not None: print(counter_example) - raise ValueError(f"RR for {op} fails with ^ Counter Example") + # raise ValueError(f"RR for {op} fails with ^ Counter Example") self.table.add_peak_rule(new_rewrite_rule) else: for ind, peak_rule in enumerate(rrules): - self.table.add_peak_rule(peak_rule, name="test_name_" + str(ind)) + self.table.add_peak_rule(peak_rule, str(ind)) - def do_mapping(self, dag, convert_unbound=True, prove_mapping=True) -> coreir.Module: + def do_mapping(self, dag, kname="", convert_unbound=True, prove_mapping=True, node_latencies=None) -> coreir.Module: #Preprocess isolates coreir primitive modules #inline inlines them back in - #print("premapped") + # print("premapped") #print_dag(dag) + self.compile_time_rule_gen(dag) original_dag = Clone().clone(dag, iname_prefix=f"original_") mapped_dag = self.inst_sel(dag) - #print("postmapped") + # print("postmapped") #print_dag(mapped_dag) SimplifyCombines().run(mapped_dag) - #print("simplifyCombines") + # print("simplifyCombines") #print_dag(mapped_dag) RemoveSelects().run(mapped_dag) - #print("RemovedSelects") + # print("RemovedSelects") #print_dag(mapped_dag) self.num_pes += count_pes(mapped_dag) + print(count_pes(mapped_dag)) unmapped = VerifyNodes(self.ArchNodes).verify(mapped_dag) + if unmapped is not None: raise ValueError(f"Following nodes were unmapped: {unmapped}") assert VerifyNodes(self.CoreIRNodes).verify(original_dag) is None + + if node_latencies is not None: + DelayMatching(node_latencies).run(mapped_dag) + self.kernel_latencies[kname] = KernelDelay(node_latencies).doit(mapped_dag) + if prove_mapping: counter_example = prove_equal(original_dag, mapped_dag) if counter_example is not None: diff --git a/metamapper/coreir_util.py b/metamapper/coreir_util.py index 9ae626a..c4678d7 100644 --- a/metamapper/coreir_util.py +++ b/metamapper/coreir_util.py @@ -1,7 +1,7 @@ import coreir from DagVisitor import Visitor, Transformer from collections import OrderedDict -from .node import DagNode, Dag, Nodes, Source, Sink, Input, InstanceInput, Combine, Constant, Select +from .node import DagNode, Dag, Nodes, Source, Sink, Input, InstanceInput, Combine, Constant, Select, RegisterSource, RegisterSink from . import CoreIRContext import typing as tp from .family import fam @@ -26,6 +26,10 @@ def create_bit_const(value): def is_const(cmod: coreir.Module): return cmod.ref_name.split(".")[1] =="const" +def is_reg(cmod: coreir.Module): + return cmod.ref_name.split(".")[1] =="reg" + + #There is a hack where names aliasing with python keywords need to get remapped #Use this function to select into coreir instances def select(inst, name): @@ -37,6 +41,7 @@ def select(inst, name): + def fix_keyword_from_coreir(val:str): if val.isdigit(): return int(val) @@ -131,80 +136,105 @@ def fields_to_adt(inputs: dict, name): return Product.from_fields(name, {"__fake__": fam().PyFamily().Bit}) return Product.from_fields(name, {field:ctype_to_adt(CT) for field, CT in inputs.items()}) + +#coreir.const/corebit.const translates to a Constant node +#coreir.reg/corebit.reg translates to a Registers + class Loader: def __init__(self, cmod: coreir.Module, nodes: Nodes, allow_unknown_instances=False): + if allow_unknown_instances: + raise NotImplementedError() self.cmod = cmod self.nodes = nodes self.c = cmod.context self.node_map: tp.Mapping[coreir.Instance, str] = {} + self.const_cache = {} inputs, outputs = parse_rtype(cmod.type) input_adt = fields_to_adt(inputs, "Input") output_adt = fields_to_adt(outputs, "Output") source_nodes = [Input(iname="self", type=input_adt)] + self.node_map[cmod.definition.interface] = source_nodes[0] + + #reg_nodes = [] stateful_instances = {cmod.definition.interface: output_adt} + #Sort into non-stateful nodes (Do nothing), stateful nodes, and registers for inst in cmod.definition.instances: + if is_const(inst.module): + continue + if is_reg(inst.module): + adt = fields_to_adt(parse_rtype(inst.module.type)[1], "_sink") + in_type = adt["out"] + assert issubclass(in_type, (ht.BitVector, ht.Bit)) + node = RegisterSource(iname=inst.name, type=in_type) + source_nodes.append(node) + stateful_instances[inst] = in_type + self.node_map[inst] = node + continue + node_name = self.nodes.name_from_coreir(inst.module) - #print("node_name: ", node_name, inst.module.name) - source_node_t = None if node_name is None: - if is_const(inst.module): - source_node_t = None - elif allow_unknown_instances: - print("Warning:", inst.module.name) - inst.module.print_() - print("end") - source_node_t = InstanceInput - else: - raise ValueError(f"Unknown module {inst.module.name}") - elif self.nodes.is_stateful(node_name): - source_node_t, _ = self.nodes.dag_nodes[node_name] - if source_node_t is not None: - inputs, outputs = parse_rtype(inst.module.type) - sink_adt = fields_to_adt(inputs, f"{inst.name}_sink") - source_adt = fields_to_adt(outputs, f"{inst.name}_source") - node = source_node_t(iname=inst.name, type=source_adt) - source_nodes.append(node) - stateful_instances[inst] = sink_adt + raise ValueError(f"Unknown module {inst.module.name}") + + if not self.nodes.is_stateful(node_name): + continue + + #Absolutely stateful - # load up node_map with source nodes - for source, inst in zip(source_nodes, stateful_instances.keys()): - self.node_map[inst] = source + source_node_t, _ = self.nodes.dag_nodes[node_name] + inputs, outputs = parse_rtype(inst.module.type) + sink_adt = fields_to_adt(inputs, f"{inst.name}_sink") + source_adt = fields_to_adt(outputs, f"{inst.name}_source") + node = source_node_t(iname=inst.name, type=source_adt) + source_nodes.append(node) + stateful_instances[inst] = sink_adt + self.node_map[inst] = node - #create all the sinks + #create all the non-register sinks sink_nodes = [] for source, (inst, sink_adt) in zip(source_nodes, stateful_instances.items()): sink_t = type(source).sink_t - #print("ADDING SINK", sink_t, sink_adt) sink_node = self.add_node(inst, sink_t=sink_t, sink_adt=sink_adt) assert isinstance(sink_node, DagNode) sink_nodes.append(sink_node) + self.dag = Dag(source_nodes, sink_nodes) def add_const(self, inst: coreir.Instance): + if inst in self.const_cache: + return self.const_cache[inst] mref = inst.module if mref.ref_name == "coreir.const": width = mref.generator_args["width"].value value = inst.config["value"].value - return create_bv_const(width, value) + + const_node = create_bv_const(width, value) elif mref.ref_name == "corebit.const": value = inst.config["value"].value - return create_bit_const(value) + const_node = create_bit_const(value) else: return None - def add_node(self, inst: coreir.Instance, sink_t=None, sink_adt=None): + self.const_cache[inst] = const_node + return const_node - const_node = self.add_const(inst) - if const_node is not None: - return const_node + #Cases + # 1) Const: ignore sink_t and sink_adt + # 2) Reg: ?? + # 3) Comb instance: ?? + # 4) Stateful Module: sink_t and sink_adt valid + def add_node(self, inst: coreir.Instance, sink_t=None, sink_adt=None): + if is_const(inst.module): + return self.add_const(inst) - #print("Adding inst", inst) + #if node already exists if sink_t is None and inst in self.node_map: return self.node_map[inst] + + #If not a sink if sink_t is None: node_name = self.nodes.name_from_coreir(inst.module) node_t = self.nodes.dag_nodes[node_name] @@ -213,9 +243,8 @@ def add_node(self, inst: coreir.Instance, sink_t=None, sink_adt=None): node_t = sink_t # Translates Coreir selectpath into node selectpath - def csp_to_nsp(node: DagNode, csp: tuple): - cmod = node.nodes.coreir_modules[node.node_name] - + #def csp_to_nsp(node: DagNode, csp: tuple): + # cmod = node.nodes.coreir_modules[node.node_name] def type_recurse(w): children = [] #Depth first traversal. adding child nodes before self. @@ -228,7 +257,7 @@ def type_recurse(w): # b) When there are things connected at a different level of hierarchy (wireable) # c) at leaf type with normal connection (other_inst, ports) if (child_inst, sel_path) == (None, None): - children.append(Constant(value=Unbound, type=None)) + children.append(Constant(value=Unbound, type=ht.Bit)) else: child_node = self.add_node(child_inst) if isinstance(child_node, Constant): @@ -251,41 +280,52 @@ def type_recurse(w): if isinstance(w, coreir.Select): adt = ctype_to_adt(w.type) return Combine(*children, iname=f"UC{random.randint(0, 1000)}", type=adt) - else: - # inst is named w in this function - inst = w - if w is self.cmod.definition.interface: - iname = "self" - elif isinstance(w, coreir.Instance): - def get_adt(inst, k): - vtype = inst.module.params[k] - if vtype.kind is bool: - return fam().PyFamily().Bit - elif vtype.kind is fam().PyFamily().BitVector: - #TODO HACK assuming 16 bit constants always - return fam().PyFamily().BitVector[16] - else: - raise NotImplementedError() - - if inst.module.name != "rom2" and inst.module.name != "Mem": - try: - modargs = [Constant(value=v.value, type=get_adt(inst, k)) for k, v in inst.config.items()] - except: - print(inst.module.name) - #TODO unsafe. Assumes that modargs are specified at the end. - children += modargs - iname = inst.name - - if inst.module.name == "rom2": - node = node_t(*children, init=inst.config["init"], iname=iname) - elif sink_t is None: - node = node_t(*children, iname=iname) - self.node_map[inst] = node - elif sink_adt is None: - node = node_t(*children, iname=iname) - else: - node = node_t(*children, iname=iname, type=sink_adt) + + # inst is named w in this function + inst = w + if w is self.cmod.definition.interface: + node = node_t(*children, iname="self", type=sink_adt) return node + + #Definitaly an instance. Need to create a node + assert isinstance(w, coreir.Instance) + iname = inst.name + def get_adt(inst, k): + vtype = inst.module.params[k] + if vtype.kind is bool: + return ht.Bit + elif vtype.kind is ht.BitVector: + #TODO HACK assuming 16 bit constants always + return ht.BitVector[16] + else: + raise NotImplementedError() + + + + #elif inst.module.name != "rom2" and inst.module.name != "Mem": + # try: + # modargs = [Constant(value=v.value, type=get_adt(inst, k)) for k, v in inst.config.items()] + # except: + # print(inst.module.name) + # #TODO unsafe. Assumes that modargs are specified at the end. + # children += modargs + if is_reg(inst.module): + init = inst.config["init"] + assert node_t is RegisterSink + assert sink_adt is not None + node = RegisterSink(*children, type=sink_adt) + + if inst.module.name == "rom2": + node = node_t(*children, init=inst.config["init"], iname=iname) + elif sink_t is None: #Normal instance + node = node_t(*children, iname=iname) + self.node_map[inst] = node + #elif sink_adt is None: + # node = node_t(*children, iname=iname) + else: #stateful instance + node = node_t(*children, iname=iname, type=sink_adt) + return node + inst_node = type_recurse(inst) if isinstance(inst, coreir.Instance): md = inst.metadata @@ -349,6 +389,8 @@ def is_bv(t: coreir.Type): dpath = driver.selectpath driver_iname, driver_ports = dpath[0], dpath[1:] driver_inst = self.inst_from_name(driver_iname) + if is_reg(driver_inst.module): + driver_ports = () drivers.append((driver_inst, driver_ports)) else: #Array drivers.append(port) @@ -367,16 +409,15 @@ def coreir_to_dag(nodes: Nodes, cmod: coreir.Module, inline=True) -> Dag: for _ in range(3): to_inline = [] for inst in cmod.definition.instances: - mod_name = inst.module.name + if is_const(inst.module) or is_reg(inst.module): + continue node_name = nodes.name_from_coreir(inst.module) + if node_name is None: to_inline.append(inst) - #if mod_name in ("counter", "reshape", "absd", "umax", "umin", "smax", "smin", "abs", "sle"): - # to_inline.append(inst) for inst in to_inline: - #print("inlining", inst.name, inst.module.name) + print("inlining", inst.name, inst.module.name) coreir.inline_instance(inst) - #cmod.print_() return Loader(cmod, nodes, allow_unknown_instances=False).dag #returns module, and map from instances to dags @@ -421,7 +462,6 @@ class ToCoreir(Visitor): def __init__(self, nodes: Nodes, def_: coreir.ModuleDef, convert_unbounds=True): self.coreir_const = CoreIRContext().get_namespace("coreir").generators["const"] self.coreir_bit_const = CoreIRContext().get_namespace("corebit").modules["const"] - self.coreir_pt = CoreIRContext().get_namespace("_").generators["passthrough"] self.nodes = nodes self.def_ = def_ self.node_to_inst: tp.Mapping[DagNode, coreir.Wireable] = {} # inst is really the output port of the instance @@ -432,7 +472,11 @@ def doit(self, dag: Dag): for sink in list(dag.roots())[1:]: inst = self.create_instance(sink) self.node_to_inst[sink] = inst - self.node_to_inst[sink.source] = inst + if isinstance(sink, RegisterSink): + self.node_to_inst[sink.source] = inst.select("out") + else: + self.node_to_inst[sink.source] = inst + self.run(dag) def visit_Select(self, node): @@ -446,16 +490,21 @@ def visit_Input(self, node): def visit_Source(self, node): if node.sink not in self.node_to_inst: raise ValueError() - self.node_to_inst[node] = self.node_to_inst[node.sink] + def visit_RegisterSource(self, node): + if node.sink not in self.node_to_inst: + raise ValueError() + self.node_to_inst[node] = self.node_to_inst[node.sink].select("out") + + def visit_Constant(self, node): assert isinstance(node, Constant) bv_val = node.value if bv_val is Unbound: self.node_to_inst[node] = None return - is_bool = type(bv_val) is fam().PyFamily().Bit or isinstance(bv_val, bool) + is_bool = type(bv_val) is ht.Bit or isinstance(bv_val, bool) if is_bool: const_mod = self.coreir_bit_const bv_val = bool(bv_val) @@ -474,35 +523,63 @@ def visit_Combine(self, node: Combine): assert len(child_insts) == len(node.type.field_dict) self.node_to_inst[node] = [(field, child_inst) for field, child_inst in zip(node.type.field_dict.keys(), child_insts)] + def get_coreir_reg(self, t): + c = CoreIRContext() + if t is ht.Bit: + reg_mod = c.get_namespace("corebit").modules["reg"] + elif issubclass(t, ht.BitVector): + width = t.size + reg_mod = c.get_namespace("coreir").generators["reg"](width=width) + else: + raise NotImplementedError(t) + return reg_mod + + def visit_PipelineRegister(self, node): + Visitor.generic_visit(self, node) + reg_mod = self.get_coreir_reg(node.type) + inst = self.def_.add_module_instance(node.iname, reg_mod) + self.def_.connect(inst.select("in"), self.node_to_inst[node.child]) + self.node_to_inst[node] = inst.select("out") + + def create_instance(self, node): if node in self.node_to_inst: return self.node_to_inst[node] - cmod_t = self.nodes.coreir_modules[type(node).node_name] - # create new instance - #create modparams - children = list(node.children()) - config_fields = {} - for param in reversed(type(node).modparams): - child = children.pop(-1) - assert isinstance(child, Constant) - bv_val = child.value - if bv_val is Unbound: - continue - config_fields[param] = bv_val - if len(config_fields) > 0: - config = CoreIRContext().new_values(fields=config_fields) + + if isinstance(node, RegisterSink): + cmod_t = self.get_coreir_reg(node.type) + config = CoreIRContext().new_values(fields={"init":node.type(0)}) inst = self.def_.add_module_instance(node.iname, cmod_t, config=config) else: + cmod_t = self.nodes.coreir_modules[type(node).node_name] inst = self.def_.add_module_instance(node.iname, cmod_t) return inst + # create new instance + #create modparams + #children = list(node.children()) + #config_fields = {} + #for param in reversed(type(node).modparams): + # child = children.pop(-1) + # assert isinstance(child, Constant) + # bv_val = child.value + # if bv_val is Unbound: + # continue + # config_fields[param] = bv_val + #if len(config_fields) > 0: + # config = CoreIRContext().new_values(fields=config_fields) + # inst = self.def_.add_module_instance(node.iname, cmod_t, config=config) + #else: + #inst = self.def_.add_module_instance(node.iname, cmod_t) + #return inst + def generic_visit(self, node): Visitor.generic_visit(self, node) - if type(node).node_name == "memory.rom2": rom_mod = self.nodes.coreir_modules["memory.rom2"] config = CoreIRContext().new_values(dict(init=node.init)) inst = self.def_.add_module_instance(node.iname, rom_mod, config=config) + else: inst = self.create_instance(node) inst_inputs = list(self.nodes.peak_nodes[node.node_name].Py.input_t.field_dict.keys()) @@ -510,8 +587,6 @@ def generic_visit(self, node): #Get only the non-modparam children children = node.children() if len(node.modparams)==0 else list(node.children())[:-len(node.modparams)] for port, child in zip(inst_inputs, children): - if type(node).node_name == "coreir_reg" and port == "in0": - port = "in" child_inst = self.node_to_inst[child] if child_inst is not None: self.def_.connect(child_inst, select(inst, port)) @@ -521,6 +596,11 @@ def generic_visit(self, node): self.node_to_inst[node] = inst #The issue is that output is visited first then the source, then the sink. Depth first vs breadth first. + def visit_RegisterSink(self, node): + Visitor.generic_visit(self, node) + reg_inst = self.node_to_inst[node] + child_inst = self.node_to_inst[node.child] + self.def_.connect(reg_inst.select("in"), child_inst) def visit_Output(self, node): Visitor.generic_visit(self, node) @@ -532,10 +612,10 @@ def recurse(input_sel: coreir.Wireable, other): if other is None: #Unconnected input return elif isinstance(other, coreir.Wireable): + other_inst = self.def_.get_instance(other.selectpath[0]) self.def_.connect(other, input_sel) elif isinstance(other, list): for field, sub_other in other: - print(input_sel, field) recurse(select(input_sel, field), sub_other) else: raise ValueError() @@ -545,10 +625,6 @@ def recurse(input_sel: coreir.Wireable, other): recurse(input_sel, child_inst) - #I want to solve this for a generic Source/Sink Pair and not special case to registers - #CoreIR Registers have modparams. These are gotten from the Sink part of the pair. - - class VerifyUniqueIname(Visitor): def __init__(self): self.inames = {} @@ -578,8 +654,6 @@ def __init__(self, nodes): dag_node = dag_node[0] #Use the source assert issubclass(dag_node, DagNode), f"{dag_node}" peak_outputs = list(peak_fc(fam().PyFamily()).output_t.field_dict.keys()) - #print("p",peak_outputs) - #print("c", c_outputs) assert len(peak_outputs) == len(c_output_keys) self.field_map[dag_node] = {name: c_output_keys[i] for i, name in enumerate(peak_outputs)} #if len(peak_outputs) == 1: @@ -613,6 +687,7 @@ def dag_to_coreir_def(nodes: Nodes, dag: Dag, mod: coreir.Module, convert_unboun def dag_to_coreir(nodes: Nodes, dag: Dag, name: str, convert_unbounds=True) -> coreir.ModuleDef: dag = Clone().clone(dag) VerifyUniqueIname().run(dag) + # print_dag(dag) FixSelects(nodes).run(dag) c = CoreIRContext() #construct coreir type diff --git a/metamapper/delay_matching.py b/metamapper/delay_matching.py new file mode 100755 index 0000000..b1acda7 --- /dev/null +++ b/metamapper/delay_matching.py @@ -0,0 +1,86 @@ +from DagVisitor import Transformer, Visitor +from metamapper.node import Constant, PipelineRegister + + +class DelayMatching(Transformer): + def __init__(self, node_latencies): + self.node_latencies = node_latencies + self.aggregate_latencies = {} + + def visit_Constant(self, node): + self.aggregate_latencies[node] = None + + def visit_Source(self, node): + self.aggregate_latencies[node] = 0 + + def generic_visit(self, node): + Transformer.generic_visit(self, node) + assert len(node.children()) > 0 + latencies = [self.aggregate_latencies[child] + for child in node.children()] + if all([late is None for late in latencies]): + self.aggregate_latencies[node] = None + return node + else: + max_latency = max([late for late in latencies if late is not None]) + new_children = [child for child in node.children()] + for i, child in enumerate(node.children()): + latency = latencies[i] + if latency is None: + continue + diff = max_latency - latency + if diff == 0: + continue + new_child = child + pipeline_type = child.type + for reg_index in range(diff): # diff = number of pipeline reg + new_child = PipelineRegister(new_child, type=pipeline_type) + new_children[i] = new_child + node.set_children(*new_children) + this_latency = self.node_latencies.get(node) + self.aggregate_latencies[node] = max_latency + this_latency + return node + +#Verifies that a kernel is branch-delay matched +class KernelDelay(Visitor): + def __init__(self, node_latencies): + self.node_latencies = node_latencies + + def doit(self, dag): + self.aggregate_latencies = {} + self.run(dag) + output_latencies = [self.aggregate_latencies[root] if self.aggregate_latencies[root] != None else 0 for root in dag.roots()] + if not all(output_latencies[0] == l for l in output_latencies): + raise ValueError("Mismatched output latencies") + return output_latencies[0] + + def visit_Constant(self, node): + self.aggregate_latencies[node] = None + + def visit_Source(self, node): + self.aggregate_latencies[node] = 0 + + def generic_visit(self, node): + Visitor.generic_visit(self, node) + latencies = [self.aggregate_latencies[child] + for child in node.children()] + if len(latencies) == 0: + return + unique_latencies = set(latencies) + if None in unique_latencies: + unique_latencies.remove(None) + if len(unique_latencies)==0: + self.aggregate_latencies[node] = None + elif len(unique_latencies) == 1: + child_latency = unique_latencies.pop() + this_latency = self.node_latencies.get(node) + self.aggregate_latencies[node] = child_latency + this_latency + else: + raise ValueError("Dag is not delay matched", unique_latencies) + + def visit_PipelineRegister(self, node): + Visitor.generic_visit(self, node) + child = list(node.children())[0] + if self.aggregate_latencies[child] is None: + raise ValueError("Child of pipe register is constant") + self.aggregate_latencies[node] = self.aggregate_latencies[child] + 1 diff --git a/metamapper/irs/coreir/__init__.py b/metamapper/irs/coreir/__init__.py index 198712c..387a492 100644 --- a/metamapper/irs/coreir/__init__.py +++ b/metamapper/irs/coreir/__init__.py @@ -1,7 +1,7 @@ from .ir import gen_peak_CoreIR from ...node import Nodes, Constant, DagNode, Select from ... import CoreIRContext -from ...peak_util import load_from_peak +from ...peak_util import load_from_peak, peak_to_coreir import coreir from hwtypes import BitVector, Product @@ -15,14 +15,16 @@ def gen_CoreIRNodes(width): peak_ir = gen_peak_CoreIR(width) c = CoreIRContext() - basic = ("mul", "add", "const", "and_", "or_", "neg") - other = ("ashr", "eq", "lshr", "mux", "sub", "slt", "sle", "sgt", "sge", "ult", "ule", "ugt", "uge", "shl") + basic = ("mul", "add", "const", "and_", "or_", "neg", "xor") + other = ("ashr", "eq", "neq", "lshr", "mux", "sub", "slt", "sle", "sgt", "sge", "ult", "ule", "ugt", "uge", "shl") bit_ops = ("const", "or_", "and_", "xor", "not_", "mux") commonlib_ops = ("abs", "smax", "smin", "umin", "umax") + # float_ops = ("add", "mul") for namespace, ops, is_module in ( ("coreir", basic + other, False), ("corebit", bit_ops, True), ("commonlib", commonlib_ops, False) + # ("float", float_ops, False) ): for op in ops: assert c.get_namespace(namespace) is c.get_namespace(namespace) @@ -33,6 +35,7 @@ def gen_CoreIRNodes(width): cmod = c.get_namespace(namespace).modules[coreir_op] else: gen = c.get_namespace(namespace).generators[coreir_op] + cmod = gen(width=width) modparams = () if op == "const": @@ -43,11 +46,45 @@ def gen_CoreIRNodes(width): assert CoreIRNodes.name_from_coreir(cmod) == name #print(f"Loaded {name}!") - #Load reg - name = f"coreir.reg" + ##Load reg + #name = f"coreir.reg" + #peak_fc = peak_ir.instructions[name] + #cmod = c.get_namespace("coreir").generators["reg"](width=width) + #name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="coreir.reg", stateful=True, modparams=("clk_posedge", "init")) + name = f"coreir.mult_const" peak_fc = peak_ir.instructions[name] - cmod = c.get_namespace("coreir").generators["reg"](width=width) - name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="coreir.reg", stateful=True, modparams=("clk_posedge", "init")) + cmod = peak_to_coreir(peak_fc) + CoreIRNodes.peak_nodes[name] = peak_fc + #name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="coreir.mult_const", modparams=()) + #name = f"coreir.pipeline_reg" + #peak_fc = peak_ir.instructions[name] + #cmod = c.get_namespace("coreir").generators["reg"](width=width) + #name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="coreir.pipeline_reg", stateful=False) + # + #name = f"corebit.pipeline_reg" + #peak_fc = peak_ir.instructions[name] + #cmod = c.get_namespace("corebit").modules["reg"] + #name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="corebit.pipeline_reg", stateful=False) + + # name = f"coreir.mult_const" + # peak_fc = peak_ir.instructions[name] + # cmod = c.get_namespace("coreir").generators["mul"](width=16) + # name_ = load_from_peak(CoreIRNodes, peak_fc, name="coreir.mult_const", stateful=False) + + name = f"coreir.mul32" + peak_fc = peak_ir.instructions[name] + cmod = c.get_namespace("coreir").generators["mul"](width=32) + name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="coreir.mul32", stateful=False) + + name = f"coreir.sext" + peak_fc = peak_ir.instructions[name] + cmod = c.get_namespace("coreir").generators["sext"](width_in=16, width_out=32) + name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="coreir.sext", stateful=False) + + name = f"coreir.slice" + peak_fc = peak_ir.instructions[name] + cmod = c.get_namespace("coreir").generators["slice"](width=32, lo= 8, hi=24) + name_ = load_from_peak(CoreIRNodes, peak_fc, cmod=cmod, name="coreir.slice", stateful=False) class Rom(DagNode): def __init__(self, raddr, ren, *, init, iname): diff --git a/metamapper/irs/coreir/ir.py b/metamapper/irs/coreir/ir.py index 7265eba..fc6e5ba 100644 --- a/metamapper/irs/coreir/ir.py +++ b/metamapper/irs/coreir/ir.py @@ -3,10 +3,37 @@ from hwtypes.adt import Product from peak import Peak, name_outputs, family_closure, Const from peak.family import AbstractFamily +# from lassen.float.fpu import float_lib, RoundingMode + +@family_closure +def mult_const_fc(family: AbstractFamily): + Data = family.BitVector[16] + @family.assemble(locals(), globals()) + class mult_const(Peak): + @name_outputs(out=Data) + def __call__(self, in0: Data, in1: Const(Data)) -> Data: + return in0 * in1 + return mult_const def gen_peak_CoreIR(width): CoreIR = IR() + + # CoreIR.add_instruction("float.add", float_lib.const_rm(RoundingMode.RNE).Add_fc) + # CoreIR.add_instruction("float.mul", float_lib.const_rm(RoundingMode.RNE).Mul_fc) + @family_closure + def mult_const_fc(family: AbstractFamily): + Data = family.BitVector[16] + @family.assemble(locals(), globals()) + class mult_const(Peak): + @name_outputs(out=Data) + def __call__(self, in0: Data, in1: Const(Data)) -> Data: + return in0 * in1 + return mult_const + + CoreIR.add_instruction("coreir.mult_const", mult_const_fc) + + @family_closure def rom_fc(family: AbstractFamily): Data = family.BitVector[width] @@ -95,6 +122,22 @@ def __call__(self, in0: Data, in1: Data) -> Data: CoreIR.add_instruction("commonlib.umin", umin_fc) + @family_closure + def mult_middle_fc(family: AbstractFamily): + Data = family.BitVector[width] + Data32 = family.BitVector[32] + class mult_middle(Peak): + @name_outputs(out=Data) + def __call__(self, in0: Data, in1: Data) -> Data: + return Data(Data32(in0) * Data32(in1) >> 8) + return mult_middle + + CoreIR.add_instruction("commonlib.mult_middle", mult_middle_fc) + + + + # CoreIR.add_instruction("coreir.mulconst", mult_const_fc) + @family_closure def const_fc(family): @@ -136,11 +179,74 @@ def __call__(self, in___: Data, clk_posedge: Const(Bit), init: Const(Data)) -> D CoreIR.add_instruction("coreir.reg", reg_fc) + @family_closure + def pipeline_reg_fc(family): + Data = family.BitVector[width] + Bit = family.Bit + class pipeline_reg(Peak): + @name_outputs(out=Data) + def __call__(self, value: Data) -> Data: + return value + return pipeline_reg + + CoreIR.add_instruction("coreir.pipeline_reg", pipeline_reg_fc) + + @family_closure + def mul32_fc(family): + Data = family.BitVector[32] + Bit = family.Bit + class mul32(Peak): + @name_outputs(out=Data) + def __call__(self, in0: Data, in1: Data) -> Data: + return in0 * in1 + return mul32 + + CoreIR.add_instruction("coreir.mul32", mul32_fc) + + @family_closure + def slice_fc(family): + Data32 = family.BitVector[32] + Data = family.BitVector[16] + Bit = family.Bit + class slice(Peak): + @name_outputs(out=Data) + def __call__(self, in0: Data32) -> Data: + return in0[8:24] + return slice + + CoreIR.add_instruction("coreir.slice", slice_fc) + + @family_closure + def sext_fc(family): + Data32 = family.BitVector[32] + Data = family.BitVector[16] + Bit = family.Bit + class sext(Peak): + @name_outputs(out=Data) + def __call__(self, in0: Data) -> Data32: + return Data32(in0) + return sext + + CoreIR.add_instruction("coreir.sext", sext_fc) + + @family_closure + def pipeline_reg_bit_fc(family): + Bit = family.Bit + class pipeline_reg_1_bit(Peak): + @name_outputs(out=Bit) + def __call__(self, value: Bit) -> Bit: + return value + return pipeline_reg_1_bit + + CoreIR.add_instruction("corebit.pipeline_reg", pipeline_reg_bit_fc) class UnaryInput(Product): in___ = BitVector[width] + class UnaryInput32(Product): + in___ = BitVector[32] + class UnaryInputBit(Product): in___=Bit @@ -165,6 +271,9 @@ class TernaryInputBit(Product): class OutputBV(Product): out=BitVector[width] + class OutputBV32(Product): + out=BitVector[32] + class OutputBit(Product): out=Bit @@ -231,6 +340,8 @@ def _reduce(val): CoreIR.add_peak_instruction("coreir.mux", TernaryInput, OutputBV, lambda f, in0, in1, sel: sel.ite(in1, in0), cls_name="mux") CoreIR.add_peak_instruction("corebit.mux", TernaryInputBit, OutputBit, lambda f, in0, in1, sel: sel.ite(in1, in0), cls_name="mux") + # CoreIR.add_peak_instruction("coreir.sext", UnaryInput, OutputBV32, lambda f, x: x, cls_name="sext") + return CoreIR #TODO missing: diff --git a/metamapper/lake_mem.py b/metamapper/lake_mem.py index 43163c0..334c146 100644 --- a/metamapper/lake_mem.py +++ b/metamapper/lake_mem.py @@ -129,18 +129,43 @@ def MEM_fc(family): BV = family.BitVector Bit = family.Bit + @family.assemble(locals(), globals()) class MEM(Peak): def __init__(self): self.circ = circ() - @name_outputs(data_out_1=BV[16], empty=Bit, stencil_valid=Bit, full=Bit, data_out_0=BV[16], - sram_ready_out=Bit, valid_out=BV[2], config_data_out_1=BV[32], config_data_out_0=BV[32]) - def __call__(self, configs: Const(configs_adt), chain_data_in_0: BV[16], chain_data_in_1: BV[16], - flush: Bit, config_read: Bit, ren_in: BV[2], config_en: BV[2], config_write: Bit, - config_data_in: BV[32], clk_en: Bit, wen_in: BV[2], config_addr_in: BV[8], addr_in_0: BV[16], - addr_in_1: BV[16], data_in_0: BV[16], data_in_1: BV[16]) -> ( - BV[16], Bit, Bit, Bit, BV[16], Bit, BV[2], BV[32]): + @name_outputs( + data_out_1=BV[16], + empty=Bit, + stencil_valid=Bit, + full=Bit, + data_out_0=BV[16], + sram_ready_out=Bit, + valid_out_0=Bit, + valid_out_1=Bit, + config_data_out=BV[32], + ) + def __call__( + self, + configs: Const(configs_adt), + chain_data_in_0: BV[16], + chain_data_in_1: BV[16], + flush: Bit, + config_read: Bit, + ren_in_0: Bit, + ren_in_1: Bit, + config_en: BV[2], + config_write: Bit, + config_data_in: BV[32], + clk_en: Bit, + wen_in: BV[2], + config_addr_in: BV[8], + addr_in_0: BV[16], + addr_in_1: BV[16], + data_in_0: BV[16], + data_in_1: BV[16], + ) -> (BV[16], Bit, Bit, Bit, BV[16], Bit, Bit, Bit, BV[32]): circ_inputs = {} for port in peak_configs: @@ -151,6 +176,9 @@ def __call__(self, configs: Const(configs_adt), chain_data_in_0: BV[16], chain_d circ_inputs["config_write"] = config_write.ite(BV[1](1), BV[1](0)) circ_inputs["config_en"] = config_en circ_inputs["config_data_in"] = config_data_in + ren0 = ren_in_0.ite(BV[1](1), BV[1](0)) + ren1 = ren_in_1.ite(BV[1](1), BV[1](0)) + ren_in = BV[2].concat(ren0, ren1) circ_inputs["ren_in"] = ren_in circ_inputs["data_in_0"] = data_in_0 circ_inputs["data_in_1"] = data_in_1 @@ -165,7 +193,6 @@ def __call__(self, configs: Const(configs_adt), chain_data_in_0: BV[16], chain_d circ_outputs = self.circ(**circ_inputs) outputs = {} - for port, circ_output in zip(output_attrs, circ_outputs): print("test", port, type(circ_output)) outputs[port] = circ_output @@ -174,15 +201,19 @@ def __call__(self, configs: Const(configs_adt), chain_data_in_0: BV[16], chain_d stencil_valid = outputs["stencil_valid"] == BV[1](1) full = outputs["full"] == BV[1](1) sram_ready_out = outputs["sram_ready_out"] == BV[1](1) - - return (outputs["data_out_1"], - empty, - stencil_valid, - full, - outputs["data_out_0"], - sram_ready_out, - outputs["valid_out"], - outputs["config_data_out_1"]) + valid_out_0 = outputs["valid_out"][0] + valid_out_1 = outputs["valid_out"][1] + return ( + outputs["data_out_1"], + empty, + stencil_valid, + full, + outputs["data_out_0"], + sram_ready_out, + valid_out_0, + valid_out_1, + outputs["config_data_out_1"], + ) return MEM diff --git a/metamapper/lake_mem_tile.py b/metamapper/lake_mem_tile.py new file mode 100755 index 0000000..5e8fd0f --- /dev/null +++ b/metamapper/lake_mem_tile.py @@ -0,0 +1,154 @@ +from lake.top.extract_tile_info import get_interface, extract_top_config +from lake.top.lake_top import LakeTop +from lake.utils.sram_macro import SRAMMacroInfo +from lake.passes.passes import change_sram_port_names +from hwtypes.adt import Tuple, Product +from peak import family, family_closure, Peak, name_outputs, Const + +import kratos as kts + +def gen_mem_tile(data_width=16, # CGRA Params + mem_width=64, + mem_depth=512, + banks=1, + input_iterator_support=6, # Addr Controllers + output_iterator_support=6, + input_config_width=16, + output_config_width=16, + interconnect_input_ports=2, # Connection to int + interconnect_output_ports=2, + mem_input_ports=1, + mem_output_ports=1, + use_sram_stub=True, + sram_macro_info=SRAMMacroInfo("TS1N16FFCLLSBLVTC512X32M4S", + wtsel_value=0, rtsel_value=1), + read_delay=1, # Cycle delay in read (SRAM vs Register File) + rw_same_cycle=False, # Does the memory allow r+w in same cycle? + agg_height=4, + tb_sched_max=16, + config_data_width=32, + config_addr_width=8, + num_tiles=1, + fifo_mode=True, + add_clk_enable=True, + add_flush=True, + override_name=None, + gen_addr=True): + + lake_name = "LakeTop" + mem_tile = LakeTop(data_width=data_width, + mem_width=mem_width, + mem_depth=mem_depth, + banks=banks, + input_iterator_support=input_iterator_support, + output_iterator_support=output_iterator_support, + input_config_width=input_config_width, + output_config_width=output_config_width, + interconnect_input_ports=interconnect_input_ports, + interconnect_output_ports=interconnect_output_ports, + use_sram_stub=use_sram_stub, + sram_macro_info=sram_macro_info, + read_delay=read_delay, + rw_same_cycle=rw_same_cycle, + agg_height=agg_height, + config_data_width=config_data_width, + config_addr_width=config_addr_width, + num_tiles=num_tiles, + fifo_mode=fifo_mode, + add_clk_enable=add_clk_enable, + add_flush=add_flush, + name=lake_name, + gen_addr=gen_addr) + + + change_sram_port_pass = change_sram_port_names(use_sram_stub, sram_macro_info) + circ = kts.util.to_magma(mem_tile, + flatten_array=True, + check_multiple_driver=False, + optimize_if=False, + check_flip_flop_always_ff=False, + additional_passes={"change_sram_port": change_sram_port_pass}) + + core_interface = get_interface(mem_tile) + cfgs = extract_top_config(mem_tile) + + def BV(width): + if width == 1: + return family.MagmaFamily().Bit + else: + return family.MagmaFamily().BitVector[width] + + def BV_out(width): + return family.MagmaFamily().BitVector[width] + + peak_inputs = {} + peak_outputs = {} + peak_configs = {} + + + for io_info in core_interface: + if io_info.is_ctrl: + assert(not io_info.expl_arr) + assert(io_info.port_size[0] == 1) + assert(io_info.port_dir == "PortDirection.In") + peak_inputs[io_info.port_name] = BV(io_info.port_width) + else: + if io_info.port_dir == "PortDirection.In": + if io_info.expl_arr: + assert(io_info.port_size[0] > 1) + + for idx in range(io_info.port_size[0]): + peak_inputs[f"{io_info.port_name}_{idx}"] = BV(io_info.port_width) + else: + peak_inputs[io_info.port_name] = BV(io_info.port_width) + else: + if io_info.expl_arr: + assert(io_info.port_size[0] > 1) + + for idx in range(io_info.port_size[0]): + peak_outputs[f"{io_info.port_name}_{idx}"] = BV_out(io_info.port_width) + else: + peak_outputs[io_info.port_name] = BV_out(io_info.port_width) + + + for io_info in cfgs: + if io_info.expl_arr: + assert(io_info.port_size[0] > 1) + + for idx in range(io_info.port_size[0]): + peak_configs[f"{io_info.port_name}_{idx}"] = BV(io_info.port_width) + else: + peak_configs[io_info.port_name] = BV(io_info.port_width) + + + inputs_adt = Product.from_fields('inputs', peak_inputs) + outputs_adt = Product.from_fields('outputs', peak_outputs) + configs_adt = Product.from_fields('configs', peak_configs) + outputs_c = family.MagmaFamily().get_constructor(outputs_adt) + + @family_closure + def MEM_fc(family): + @family.assemble(locals(), globals()) + class MEM(Peak): + def __init__(self): + self.circ = circ + + @name_outputs(outputs=outputs_adt) + def __call__(self, configs: Const(configs_adt), inputs: inputs_adt) -> (outputs_adt): + for peak_input in peak_inputs: + setattr(self.circ, peak_input, getattr(inputs, peak_input)) + for peak_config in peak_configs: + setattr(self.circ, peak_config, getattr(configs, peak_config)) + + outputs = {} + + for peak_output in peak_outputs: + outputs[peak_output] = getattr(self.circ, peak_output) + + return outputs_c(**outputs) + + return MEM + + MEM = MEM_fc(family.MagmaFamily()) + +gen_mem_tile() \ No newline at end of file diff --git a/metamapper/magma_util.py b/metamapper/magma_util.py index db28b6f..6654714 100644 --- a/metamapper/magma_util.py +++ b/metamapper/magma_util.py @@ -40,8 +40,8 @@ def generic_visit(self, node): inst = NodeCircuit() #Wire all the children (inputs) for port, child in zip(node.input_names(), node.children()): - print(port, getattr(inst, port)) - print(self.node_to_inst[child]) + # print(port, getattr(inst, port)) + # print(self.node_to_inst[child]) m.wire(getattr(inst, port), self.node_to_inst[child]) #TODO assuming single output diff --git a/metamapper/node.py b/metamapper/node.py index 1cc0c0c..e2610d7 100644 --- a/metamapper/node.py +++ b/metamapper/node.py @@ -13,8 +13,12 @@ #Passes will be run on this class DagNode(Visited): def __init__(self, *args, **kwargs): - if "type" in kwargs and is_modified(kwargs['type']): - raise ValueError(f"{self}, {kwargs['type']} cannot be modified") + if "type" in kwargs: + t = kwargs['type'] + if t is None: + raise ValueError("Need to specify a type") + if is_modified(kwargs['type']): + raise ValueError(f"{self}, {kwargs['type']} cannot be modified") elif "type" in self.static_attributes and is_modified(self.static_attributes["type"]): raise ValueError(f"{self} {self.static_attributes['type']}") self.set_kwargs(**kwargs) @@ -55,6 +59,12 @@ def add_metadata(self, md): def children(self): return self._children + @property + def child(self): + if len(self.children()) != 1: + raise ValueError("Cannot select singular child") + return list(self.children())[0] + @property @abc.abstractmethod def attributes(self): @@ -67,7 +77,6 @@ def num_children(self): @lru_cache(None) def select(self, field, original=None): - key_list = {f"O{i}": k for i, k in enumerate(self.type.field_dict.keys())} new_field = key_list.get(field) if original is None and new_field is not None: @@ -139,6 +148,8 @@ def __init__(self, inputs, outputs, sources: tp.List[Visited] = [], sinks: tp.Li source.set_sink(sink) sink.set_source(source) + self.non_input_sources = sources + self.non_output_sinks = sinks self.inputs = inputs self.outputs = outputs self.sources = [*inputs, *sources] @@ -175,6 +186,8 @@ def is_stateful(self, node_name): #returns Node name from coreir module name def name_from_coreir(self, cmod) -> str: names = [k for k,v in self.coreir_modules.items() if v == cmod] + if len(names) > 1: + breakpoint() assert len(names) <2 if len(names) == 1: return names[0] @@ -238,21 +251,27 @@ def create_dag_node(self, node_name, num_children, stateful: bool, attrs: tp.Lis input_t = static_attrs["input_t"] if "input_t" in static_attrs else None output_t = static_attrs["output_t"] if "output_t" in static_attrs else None assert (input_t is None and output_t is None) or (input_t is not None and output_t is not None) - sink_node = type(node_name + "_sink", parents + (Sink,), dict( + snk_static_attrs = {} + src_static_attrs = {} + if (input_t is not None): + snk_static_attrs = dict(type=input_t) + if (output_t is not None): + src_static_attrs = dict(type=output_t) + sink_node = type(node_name + "Sink", parents + (Sink,), dict( num_children=num_children, nodes=self, node_name=node_name, attributes=attrs, - static_attributes=dict(type=input_t), + static_attributes=snk_static_attrs, modparams=modparams )) #Create the 'source node' - src_node = type(node_name + "_source", parents + (Source,), dict( + src_node = type(node_name + "Source", parents + (Source,), dict( num_children=0, nodes=self, node_name=node_name, attributes=attrs, - static_attributes=dict(type=output_t), + static_attributes=src_static_attrs, modparams=() )) sink_node.source_t = src_node @@ -279,6 +298,11 @@ def create_dag_node(self, node_name, num_children, stateful: bool, attrs: tp.Lis Select = Common.create_dag_node("Select", 1, False, ("field",)) Select.__str__ = lambda self: f"Select<{self.field}>" +#Represents a delay of 1 cycle +PipelineRegister = Common.create_dag_node("PipelineRegister", 1, False, ("type",)) + + + from hwtypes import AbstractBitVector, AbstractBit from peak.mapper.utils import rebind_type @@ -305,7 +329,7 @@ def assemble(self, family): Constant = Common.create_dag_node("Constant", 0, False, attrs=("value",), parents=(ConstAssemble,)) -#Constant.__str__ = lambda self: f"Constant<{self.value}>" +Constant.__str__ = lambda self: f"C<{self.value}>" class State(object): pass class Source(State): @@ -321,6 +345,11 @@ def set_source(self, source): Input.sink_t = Output Output.source_t = Input + +#Generic register that could have backedges +RegisterSource, RegisterSink = Common.create_dag_node("Register", 1, True, attrs=("type",)) + + InstanceInput = Common.create_dag_node("InstanceInput", 0, False, parents=(Source,)) InstanceOutput = Common.create_dag_node("InstanceOutput", -1, False, parents=(Sink,)) InstanceInput.sink_t = InstanceOutput @@ -378,3 +407,4 @@ def attributes(self): static_attributes = {} nodes = Common + node_name = "Combine" diff --git a/metamapper/peak_util.py b/metamapper/peak_util.py index 48cce08..f59c260 100644 --- a/metamapper/peak_util.py +++ b/metamapper/peak_util.py @@ -88,9 +88,7 @@ def magma_to_coreir(mod): magma.compile(f.name, mod, output="coreir") cname = mod.coreir_name crt = magma.backend.coreir.coreir_runtime - return crt.module_map()[crt.coreir_context()]["global"][cname] - ##backend.compile(mod) - #return backend.modules[cname] + return crt.module_map()[crt.coreir_context()]['global'][cname] def peak_to_coreir(peak_fc, wrap=False) -> coreir.Module: peak_m = peak_fc(fam().MagmaFamily()) @@ -168,6 +166,9 @@ def load_and_link_peak(nodes: Nodes, header_file: str, peak_dict: dict): if cmod.ref_name not in peak_dict: raise ValueError(f"{cmod.ref_name} does not have an associated peak_dict") peak_fc = peak_dict[cmod.ref_name] - node_name = load_from_peak(nodes, peak_fc, stateful=False, cmod=cmod, name=cmod.ref_name) + stateful = False + if isinstance(peak_fc, tuple): + peak_fc, stateful = peak_fc + node_name = load_from_peak(nodes, peak_fc, stateful=stateful, cmod=cmod, name=cmod.ref_name) assert node_name == cmod.ref_name diff --git a/metamapper/rewrite_table.py b/metamapper/rewrite_table.py index 5bf523e..a9d60ce 100644 --- a/metamapper/rewrite_table.py +++ b/metamapper/rewrite_table.py @@ -1,7 +1,7 @@ from functools import lru_cache from hwtypes.modifiers import strip_modifiers -from .common_passes import CheckIfTree, VerifyNodes, print_dag, BindsToCombines, SimplifyCombines, RemoveSelects +from .common_passes import CheckIfTree, VerifyNodes, print_dag, BindsToCombines, SimplifyCombines, RemoveSelects, gen_dag_img, Constant2CoreIRConstant import typing as tp from .node import Nodes, DagNode, Dag, Constant, Input, Output, Bind from .peak_util import peak_to_dag @@ -51,12 +51,14 @@ def add_rule(self, rr: RewriteRule): raise ValueError("rule is not a Rewrite Rule") #Verify from from rule VerifyNodes(self.from_).run(rr.tile) + Constant2CoreIRConstant(self.from_).run(rr.tile) self.rules.append(rr) def add_peak_rule(self, rule: PeakRule, name=None): if not isinstance(rule, PeakRule): raise ValueError("rule is not a Peak Rule") from_dag = peak_to_dag(self.from_, rule.ir_fc) + # gen_dag_img(from_dag, name) from_bv = rule.ir_fc(fam().PyFamily()) from_node_name = self.from_.name_from_peak(rule.ir_fc) #print("from_dag") diff --git a/outputs/conv_3_3_compute_kernel_latencies.json b/outputs/conv_3_3_compute_kernel_latencies.json new file mode 100644 index 0000000..cbf936d --- /dev/null +++ b/outputs/conv_3_3_compute_kernel_latencies.json @@ -0,0 +1 @@ +{"hcompute_conv_stencil": 0, "hcompute_conv_stencil_1": 0, "hcompute_conv_stencil_2": 0, "hcompute_conv_stencil_3": 0, "hcompute_conv_stencil_4": 0, "hcompute_conv_stencil_5": 0, "hcompute_conv_stencil_6": 0, "hcompute_conv_stencil_7": 0, "hcompute_conv_stencil_8": 0, "hcompute_conv_stencil_9": 0, "hcompute_hw_input_stencil": 0, "hcompute_hw_kernel_stencil": 0, "hcompute_hw_output_stencil": 0, "": 0} \ No newline at end of file diff --git a/outputs/conv_3_3_compute_mapped.json b/outputs/conv_3_3_compute_mapped.json new file mode 100644 index 0000000..08fe9e4 --- /dev/null +++ b/outputs/conv_3_3_compute_mapped.json @@ -0,0 +1,1145 @@ +{"top":"global.mapping_function_4", +"namespaces":{ + "global":{ + "modules":{ + "ADD":{ + "type":["Record",[ + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["O2","Bit"], + ["O3","Bit"], + ["O4","Bit"], + ["O5","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_16":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + }, + "const_0_17":{ + "genref":"coreir.const", + "genargs":{"width":["Int",17]}, + "modargs":{"value":[["BitVector",17],"17'h00000"]} + }, + "magma_Bit_and_inst0":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst1":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst2":{ + "modref":"corebit.and" + }, + "magma_Bit_and_inst3":{ + "modref":"corebit.and" + }, + "magma_Bit_not_inst0":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst1":{ + "modref":"corebit.not" + }, + "magma_Bit_not_inst2":{ + "modref":"corebit.not" + }, + "magma_Bit_or_inst0":{ + "modref":"corebit.or" + }, + "magma_Bits_16_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_17_add_inst0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",17]} + }, + "magma_Bits_17_add_inst1":{ + "genref":"coreir.add", + "genargs":{"width":["Int",17]} + } + }, + "connections":[ + ["magma_Bits_17_add_inst0.in0.16","bit_const_0_None.out"], + ["magma_Bits_17_add_inst0.in1.16","bit_const_0_None.out"], + ["magma_Bits_16_eq_inst0.in1","const_0_16.out"], + ["magma_Bits_17_add_inst1.in1","const_0_17.out"], + ["self.a.15","magma_Bit_and_inst0.in0"], + ["self.b.15","magma_Bit_and_inst0.in1"], + ["magma_Bit_and_inst1.in0","magma_Bit_and_inst0.out"], + ["magma_Bit_not_inst0.out","magma_Bit_and_inst1.in1"], + ["magma_Bit_or_inst0.in0","magma_Bit_and_inst1.out"], + ["magma_Bit_not_inst1.out","magma_Bit_and_inst2.in0"], + ["magma_Bit_not_inst2.out","magma_Bit_and_inst2.in1"], + ["magma_Bit_and_inst3.in0","magma_Bit_and_inst2.out"], + ["magma_Bits_17_add_inst1.out.15","magma_Bit_and_inst3.in1"], + ["magma_Bit_or_inst0.in1","magma_Bit_and_inst3.out"], + ["magma_Bits_17_add_inst1.out.15","magma_Bit_not_inst0.in"], + ["self.a.15","magma_Bit_not_inst1.in"], + ["self.b.15","magma_Bit_not_inst2.in"], + ["self.O5","magma_Bit_or_inst0.out"], + ["magma_Bits_17_add_inst1.out.0:16","magma_Bits_16_eq_inst0.in0.0:16"], + ["self.O2","magma_Bits_16_eq_inst0.out"], + ["self.a.0:16","magma_Bits_17_add_inst0.in0.0:16"], + ["self.b.0:16","magma_Bits_17_add_inst0.in1.0:16"], + ["magma_Bits_17_add_inst1.in0","magma_Bits_17_add_inst0.out"], + ["self.O0.0:16","magma_Bits_17_add_inst1.out.0:16"], + ["self.O3","magma_Bits_17_add_inst1.out.15"], + ["self.O1","magma_Bits_17_add_inst1.out.16"], + ["self.O4","magma_Bits_17_add_inst1.out.16"] + ] + }, + "MUL":{ + "type":["Record",[ + ["instr",["Array",1,"BitIn"]], + ["signed_",["Array",1,"BitIn"]], + ["a",["Array",16,"BitIn"]], + ["b",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "Mux2xUInt16_inst0":{ + "modref":"global.Mux2xUInt16" + }, + "Mux2xUInt32_inst0":{ + "modref":"global.Mux2xUInt32" + }, + "Mux2xUInt32_inst1":{ + "modref":"global.Mux2xUInt32" + }, + "bit_const_0_None":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",false]} + }, + "const_0_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h0"]} + }, + "const_1_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h1"]} + }, + "magma_Bits_1_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + }, + "magma_Bits_1_eq_inst1":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + }, + "magma_Bits_32_mul_inst0":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",32]} + } + }, + "connections":[ + ["magma_Bits_32_mul_inst0.out.16:32","Mux2xUInt16_inst0.I0.0:16"], + ["magma_Bits_32_mul_inst0.out.0:16","Mux2xUInt16_inst0.I1.0:16"], + ["self.O","Mux2xUInt16_inst0.O"], + ["magma_Bits_1_eq_inst1.out","Mux2xUInt16_inst0.S"], + ["self.a.0:16","Mux2xUInt32_inst0.I0.0:16"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.16"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.17"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.18"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.19"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.20"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.21"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.22"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.23"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.24"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.25"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.26"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.27"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.28"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.29"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.30"], + ["bit_const_0_None.out","Mux2xUInt32_inst0.I0.31"], + ["self.a.0:16","Mux2xUInt32_inst0.I1.0:16"], + ["self.a.15","Mux2xUInt32_inst0.I1.16"], + ["self.a.15","Mux2xUInt32_inst0.I1.17"], + ["self.a.15","Mux2xUInt32_inst0.I1.18"], + ["self.a.15","Mux2xUInt32_inst0.I1.19"], + ["self.a.15","Mux2xUInt32_inst0.I1.20"], + ["self.a.15","Mux2xUInt32_inst0.I1.21"], + ["self.a.15","Mux2xUInt32_inst0.I1.22"], + ["self.a.15","Mux2xUInt32_inst0.I1.23"], + ["self.a.15","Mux2xUInt32_inst0.I1.24"], + ["self.a.15","Mux2xUInt32_inst0.I1.25"], + ["self.a.15","Mux2xUInt32_inst0.I1.26"], + ["self.a.15","Mux2xUInt32_inst0.I1.27"], + ["self.a.15","Mux2xUInt32_inst0.I1.28"], + ["self.a.15","Mux2xUInt32_inst0.I1.29"], + ["self.a.15","Mux2xUInt32_inst0.I1.30"], + ["self.a.15","Mux2xUInt32_inst0.I1.31"], + ["magma_Bits_32_mul_inst0.in0","Mux2xUInt32_inst0.O"], + ["magma_Bits_1_eq_inst0.out","Mux2xUInt32_inst0.S"], + ["self.b.0:16","Mux2xUInt32_inst1.I0.0:16"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.16"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.17"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.18"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.19"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.20"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.21"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.22"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.23"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.24"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.25"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.26"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.27"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.28"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.29"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.30"], + ["bit_const_0_None.out","Mux2xUInt32_inst1.I0.31"], + ["self.b.0:16","Mux2xUInt32_inst1.I1.0:16"], + ["self.b.15","Mux2xUInt32_inst1.I1.16"], + ["self.b.15","Mux2xUInt32_inst1.I1.17"], + ["self.b.15","Mux2xUInt32_inst1.I1.18"], + ["self.b.15","Mux2xUInt32_inst1.I1.19"], + ["self.b.15","Mux2xUInt32_inst1.I1.20"], + ["self.b.15","Mux2xUInt32_inst1.I1.21"], + ["self.b.15","Mux2xUInt32_inst1.I1.22"], + ["self.b.15","Mux2xUInt32_inst1.I1.23"], + ["self.b.15","Mux2xUInt32_inst1.I1.24"], + ["self.b.15","Mux2xUInt32_inst1.I1.25"], + ["self.b.15","Mux2xUInt32_inst1.I1.26"], + ["self.b.15","Mux2xUInt32_inst1.I1.27"], + ["self.b.15","Mux2xUInt32_inst1.I1.28"], + ["self.b.15","Mux2xUInt32_inst1.I1.29"], + ["self.b.15","Mux2xUInt32_inst1.I1.30"], + ["self.b.15","Mux2xUInt32_inst1.I1.31"], + ["magma_Bits_32_mul_inst0.in1","Mux2xUInt32_inst1.O"], + ["magma_Bits_1_eq_inst0.out","Mux2xUInt32_inst1.S"], + ["magma_Bits_1_eq_inst1.in1","const_0_1.out"], + ["magma_Bits_1_eq_inst0.in1","const_1_1.out"], + ["self.signed_","magma_Bits_1_eq_inst0.in0"], + ["self.instr","magma_Bits_1_eq_inst1.in0"] + ] + }, + "Mux2xBits16":{ + "type":["Record",[ + ["I0",["Array",16,"BitIn"]], + ["I1",["Array",16,"BitIn"]], + ["S","BitIn"], + ["O",["Array",16,"Bit"]] + ]], + "instances":{ + "coreir_commonlib_mux2x16_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",16]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x16_inst0.in.data.0"], + ["self.I1","coreir_commonlib_mux2x16_inst0.in.data.1"], + ["self.S","coreir_commonlib_mux2x16_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x16_inst0.out"] + ] + }, + "Mux2xUInt16":{ + "type":["Record",[ + ["I0",["Array",16,"BitIn"]], + ["I1",["Array",16,"BitIn"]], + ["S","BitIn"], + ["O",["Array",16,"Bit"]] + ]], + "instances":{ + "coreir_commonlib_mux2x16_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",16]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x16_inst0.in.data.0"], + ["self.I1","coreir_commonlib_mux2x16_inst0.in.data.1"], + ["self.S","coreir_commonlib_mux2x16_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x16_inst0.out"] + ] + }, + "Mux2xUInt32":{ + "type":["Record",[ + ["I0",["Array",32,"BitIn"]], + ["I1",["Array",32,"BitIn"]], + ["S","BitIn"], + ["O",["Array",32,"Bit"]] + ]], + "instances":{ + "coreir_commonlib_mux2x32_inst0":{ + "genref":"commonlib.muxn", + "genargs":{"N":["Int",2], "width":["Int",32]} + } + }, + "connections":[ + ["self.I0","coreir_commonlib_mux2x32_inst0.in.data.0"], + ["self.I1","coreir_commonlib_mux2x32_inst0.in.data.1"], + ["self.S","coreir_commonlib_mux2x32_inst0.in.sel.0"], + ["self.O","coreir_commonlib_mux2x32_inst0.out"] + ] + }, + "PE":{ + "type":["Record",[ + ["inst",["Array",22,"BitIn"]], + ["inputs",["Array",48,"BitIn"]], + ["clk_en","BitIn"], + ["O",["Array",17,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "ADD_inst0":{ + "modref":"global.ADD" + }, + "MUL_inst0":{ + "modref":"global.MUL" + }, + "Mux2xBits16_inst0":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst1":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst2":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst3":{ + "modref":"global.Mux2xBits16" + }, + "Mux2xBits16_inst4":{ + "modref":"global.Mux2xBits16" + }, + "const_0_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h0"]} + }, + "const_0_2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",2]}, + "modargs":{"value":[["BitVector",2],"2'h0"]} + }, + "const_1_1":{ + "genref":"coreir.const", + "genargs":{"width":["Int",1]}, + "modargs":{"value":[["BitVector",1],"1'h1"]} + }, + "const_1_2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",2]}, + "modargs":{"value":[["BitVector",2],"2'h1"]} + }, + "const_2_2":{ + "genref":"coreir.const", + "genargs":{"width":["Int",2]}, + "modargs":{"value":[["BitVector",2],"2'h2"]} + }, + "magma_Bits_1_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + }, + "magma_Bits_1_eq_inst1":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",1]} + }, + "magma_Bits_2_eq_inst0":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",2]} + }, + "magma_Bits_2_eq_inst1":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",2]} + }, + "magma_Bits_2_eq_inst2":{ + "genref":"coreir.eq", + "genargs":{"width":["Int",2]} + } + }, + "connections":[ + ["self.ASYNCRESET","ADD_inst0.ASYNCRESET"], + ["self.CLK","ADD_inst0.CLK"], + ["Mux2xBits16_inst3.I1","ADD_inst0.O0"], + ["self.inputs.32:48","ADD_inst0.a.0:16"], + ["Mux2xBits16_inst1.O","ADD_inst0.b"], + ["self.ASYNCRESET","MUL_inst0.ASYNCRESET"], + ["self.CLK","MUL_inst0.CLK"], + ["Mux2xBits16_inst0.I0","MUL_inst0.O"], + ["Mux2xBits16_inst0.I1","MUL_inst0.O"], + ["Mux2xBits16_inst4.I1","MUL_inst0.O"], + ["self.inputs.0:16","MUL_inst0.a.0:16"], + ["self.inputs.16:32","MUL_inst0.b.0:16"], + ["self.inst.0","MUL_inst0.instr.0"], + ["self.inst.21","MUL_inst0.signed_.0"], + ["Mux2xBits16_inst1.I0","Mux2xBits16_inst0.O"], + ["magma_Bits_1_eq_inst0.out","Mux2xBits16_inst0.S"], + ["self.inputs.0:16","Mux2xBits16_inst1.I1.0:16"], + ["magma_Bits_1_eq_inst1.out","Mux2xBits16_inst1.S"], + ["self.inst.2:18","Mux2xBits16_inst2.I0.0:16"], + ["self.inst.2:18","Mux2xBits16_inst2.I1.0:16"], + ["Mux2xBits16_inst3.I0","Mux2xBits16_inst2.O"], + ["magma_Bits_2_eq_inst0.out","Mux2xBits16_inst2.S"], + ["Mux2xBits16_inst4.I0","Mux2xBits16_inst3.O"], + ["magma_Bits_2_eq_inst1.out","Mux2xBits16_inst3.S"], + ["self.O.0:16","Mux2xBits16_inst4.O.0:16"], + ["magma_Bits_2_eq_inst2.out","Mux2xBits16_inst4.S"], + ["magma_Bits_1_eq_inst0.in1","const_0_1.out"], + ["magma_Bits_2_eq_inst0.in1","const_0_2.out"], + ["magma_Bits_1_eq_inst1.in1","const_1_1.out"], + ["magma_Bits_2_eq_inst1.in1","const_1_2.out"], + ["magma_Bits_2_eq_inst2.in1","const_2_2.out"], + ["self.inst.18","magma_Bits_1_eq_inst0.in0.0"], + ["self.inst.18","magma_Bits_1_eq_inst1.in0.0"], + ["self.inst.19:21","magma_Bits_2_eq_inst0.in0.0:2"], + ["self.inst.19:21","magma_Bits_2_eq_inst1.in0.0:2"], + ["self.inst.19:21","magma_Bits_2_eq_inst2.in0.0:2"], + ["self.inst.1","self.O.16"] + ] + }, + "PE_wrapped":{ + "type":["Record",[ + ["inst",["Array",22,"BitIn"]], + ["inputs0",["Array",16,"BitIn"]], + ["inputs1",["Array",16,"BitIn"]], + ["inputs2",["Array",16,"BitIn"]], + ["clk_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "PE_inst0":{ + "modref":"global.PE" + } + }, + "connections":[ + ["self.ASYNCRESET","PE_inst0.ASYNCRESET"], + ["self.CLK","PE_inst0.CLK"], + ["self.O0.0:16","PE_inst0.O.0:16"], + ["self.O1","PE_inst0.O.16"], + ["self.clk_en","PE_inst0.clk_en"], + ["self.inputs0.0:16","PE_inst0.inputs.0:16"], + ["self.inputs1.0:16","PE_inst0.inputs.16:32"], + ["self.inputs2.0:16","PE_inst0.inputs.32:48"], + ["self.inst","PE_inst0.inst"] + ] + }, + "WrappedPE":{ + "type":["Record",[ + ["inst",["Array",22,"BitIn"]], + ["inputs0",["Array",16,"BitIn"]], + ["inputs1",["Array",16,"BitIn"]], + ["inputs2",["Array",16,"BitIn"]], + ["clk_en","BitIn"], + ["O0",["Array",16,"Bit"]], + ["O1","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "PE_wrapped_inst0":{ + "modref":"global.PE_wrapped" + } + }, + "connections":[ + ["self.ASYNCRESET","PE_wrapped_inst0.ASYNCRESET"], + ["self.CLK","PE_wrapped_inst0.CLK"], + ["self.O0","PE_wrapped_inst0.O0"], + ["self.O1","PE_wrapped_inst0.O1"], + ["self.clk_en","PE_wrapped_inst0.clk_en"], + ["self.inputs0","PE_wrapped_inst0.inputs0"], + ["self.inputs1","PE_wrapped_inst0.inputs1"], + ["self.inputs2","PE_wrapped_inst0.inputs2"], + ["self.inst","PE_wrapped_inst0.inst"] + ] + }, + "hcompute_conv_stencil":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "const_p0__667":{ + "genref":"coreir.const", + "genargs":{"width":["Int",16]}, + "modargs":{"value":[["BitVector",16],"16'h0000"]} + } + }, + "connections":[ + ["self.out_conv_stencil","const_p0__667.out"] + ] + }, + "hcompute_conv_stencil_1":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_1_671_672":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_1_hw_input_stencil_1_671":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_1_671_672.in0"], + ["mul_hw_kernel_stencil_1_hw_input_stencil_1_671.out","add_conv_stencil_1_671_672.in1"], + ["self.out_conv_stencil","add_conv_stencil_1_671_672.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_1_hw_input_stencil_1_671.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_1_hw_input_stencil_1_671.in1"] + ] + }, + "hcompute_conv_stencil_1_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169539862928":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169539864400":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169540219856_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169540219856_i140169543537424.inst","c140169539862928.out"], + ["i140169540219856_i140169543537424.clk_en","c140169539864400.out"], + ["self.out_conv_stencil","i140169540219856_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169540219856_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169540219856_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169540219856_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_2":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_2_684_685":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_2_hw_input_stencil_2_684":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_2_684_685.in0"], + ["mul_hw_kernel_stencil_2_hw_input_stencil_2_684.out","add_conv_stencil_2_684_685.in1"], + ["self.out_conv_stencil","add_conv_stencil_2_684_685.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_2_hw_input_stencil_2_684.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_2_hw_input_stencil_2_684.in1"] + ] + }, + "hcompute_conv_stencil_2_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169539536208":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169539536656":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169539912720_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169539912720_i140169543537424.inst","c140169539536208.out"], + ["i140169539912720_i140169543537424.clk_en","c140169539536656.out"], + ["self.out_conv_stencil","i140169539912720_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169539912720_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169539912720_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169539912720_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_3":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_3_699_700":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_3_hw_input_stencil_3_699":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_3_699_700.in0"], + ["mul_hw_kernel_stencil_3_hw_input_stencil_3_699.out","add_conv_stencil_3_699_700.in1"], + ["self.out_conv_stencil","add_conv_stencil_3_699_700.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_3_hw_input_stencil_3_699.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_3_hw_input_stencil_3_699.in1"] + ] + }, + "hcompute_conv_stencil_3_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169539723408":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169539723856":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169539537744_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169539537744_i140169543537424.inst","c140169539723408.out"], + ["i140169539537744_i140169543537424.clk_en","c140169539723856.out"], + ["self.out_conv_stencil","i140169539537744_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169539537744_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169539537744_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169539537744_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_4":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_4_714_715":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_4_hw_input_stencil_4_714":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_4_714_715.in0"], + ["mul_hw_kernel_stencil_4_hw_input_stencil_4_714.out","add_conv_stencil_4_714_715.in1"], + ["self.out_conv_stencil","add_conv_stencil_4_714_715.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_4_hw_input_stencil_4_714.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_4_hw_input_stencil_4_714.in1"] + ] + }, + "hcompute_conv_stencil_4_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169539388304":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169539388752":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169539724496_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169539724496_i140169543537424.inst","c140169539388304.out"], + ["i140169539724496_i140169543537424.clk_en","c140169539388752.out"], + ["self.out_conv_stencil","i140169539724496_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169539724496_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169539724496_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169539724496_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_5":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_5_729_730":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_5_hw_input_stencil_5_729":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_5_729_730.in0"], + ["mul_hw_kernel_stencil_5_hw_input_stencil_5_729.out","add_conv_stencil_5_729_730.in1"], + ["self.out_conv_stencil","add_conv_stencil_5_729_730.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_5_hw_input_stencil_5_729.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_5_hw_input_stencil_5_729.in1"] + ] + }, + "hcompute_conv_stencil_5_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169539022544":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169539035344":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169539416528_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169539416528_i140169543537424.inst","c140169539022544.out"], + ["i140169539416528_i140169543537424.clk_en","c140169539035344.out"], + ["self.out_conv_stencil","i140169539416528_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169539416528_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169539416528_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169539416528_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_6":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_6_746_747":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_6_hw_input_stencil_6_746":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_6_746_747.in0"], + ["mul_hw_kernel_stencil_6_hw_input_stencil_6_746.out","add_conv_stencil_6_746_747.in1"], + ["self.out_conv_stencil","add_conv_stencil_6_746_747.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_6_hw_input_stencil_6_746.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_6_hw_input_stencil_6_746.in1"] + ] + }, + "hcompute_conv_stencil_6_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169539212560":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169539213008":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169539523792_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169539523792_i140169543537424.inst","c140169539212560.out"], + ["i140169539523792_i140169543537424.clk_en","c140169539213008.out"], + ["self.out_conv_stencil","i140169539523792_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169539523792_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169539523792_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169539523792_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_7":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_7_763_764":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_7_hw_input_stencil_7_763":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_7_763_764.in0"], + ["mul_hw_kernel_stencil_7_hw_input_stencil_7_763.out","add_conv_stencil_7_763_764.in1"], + ["self.out_conv_stencil","add_conv_stencil_7_763_764.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_7_hw_input_stencil_7_763.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_7_hw_input_stencil_7_763.in1"] + ] + }, + "hcompute_conv_stencil_7_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169538884688":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169538885136":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169539240784_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169539240784_i140169543537424.inst","c140169538884688.out"], + ["i140169539240784_i140169543537424.clk_en","c140169538885136.out"], + ["self.out_conv_stencil","i140169539240784_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169539240784_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169539240784_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169539240784_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_8":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_8_778_779":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_8_hw_input_stencil_8_778":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_8_778_779.in0"], + ["mul_hw_kernel_stencil_8_hw_input_stencil_8_778.out","add_conv_stencil_8_778_779.in1"], + ["self.out_conv_stencil","add_conv_stencil_8_778_779.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_8_hw_input_stencil_8_778.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_8_hw_input_stencil_8_778.in1"] + ] + }, + "hcompute_conv_stencil_8_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169538525712":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169538526160":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169538904720_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169538904720_i140169543537424.inst","c140169538525712.out"], + ["i140169538904720_i140169543537424.clk_en","c140169538526160.out"], + ["self.out_conv_stencil","i140169538904720_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169538904720_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169538904720_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169538904720_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_9":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "instances":{ + "add_conv_stencil_9_795_796":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "mul_hw_kernel_stencil_9_hw_input_stencil_9_795":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.in0_conv_stencil.0","add_conv_stencil_9_795_796.in0"], + ["mul_hw_kernel_stencil_9_hw_input_stencil_9_795.out","add_conv_stencil_9_795_796.in1"], + ["self.out_conv_stencil","add_conv_stencil_9_795_796.out"], + ["self.in2_hw_kernel_stencil.0","mul_hw_kernel_stencil_9_hw_input_stencil_9_795.in0"], + ["self.in1_hw_input_stencil.0","mul_hw_kernel_stencil_9_hw_input_stencil_9_795.in1"] + ] + }, + "hcompute_conv_stencil_9_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in1_hw_input_stencil",["Array",1,["Array",16,"BitIn"]]], + ["in2_hw_kernel_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169538715728":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h080000"]} + }, + "c140169538716176":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169538504528_i140169543537424":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169538504528_i140169543537424.inst","c140169538715728.out"], + ["i140169538504528_i140169543537424.clk_en","c140169538716176.out"], + ["self.out_conv_stencil","i140169538504528_i140169543537424.O0"], + ["self.in2_hw_kernel_stencil.0","i140169538504528_i140169543537424.inputs0"], + ["self.in1_hw_input_stencil.0","i140169538504528_i140169543537424.inputs1"], + ["self.in0_conv_stencil.0","i140169538504528_i140169543537424.inputs2"] + ] + }, + "hcompute_conv_stencil_mapped":{ + "type":["Record",[ + ["out_conv_stencil",["Array",16,"Bit"]] + ]], + "instances":{ + "c140169540164560":{ + "genref":"coreir.const", + "genargs":{"width":["Int",22]}, + "modargs":{"value":[["BitVector",22],"22'h000000"]} + }, + "c140169540219216":{ + "modref":"corebit.const", + "modargs":{"value":["Bool",true]} + }, + "i140169541805328_i140169540183632":{ + "modref":"global.WrappedPE" + } + }, + "connections":[ + ["i140169541805328_i140169540183632.inst","c140169540164560.out"], + ["i140169541805328_i140169540183632.clk_en","c140169540219216.out"], + ["self.out_conv_stencil","i140169541805328_i140169540183632.O0"] + ] + }, + "hcompute_hw_input_stencil":{ + "type":["Record",[ + ["out_hw_input_stencil",["Array",16,"Bit"]], + ["in0_input_copy_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_input_stencil","self.in0_input_copy_stencil.0"] + ] + }, + "hcompute_hw_input_stencil_mapped":{ + "type":["Record",[ + ["in0_input_copy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_hw_input_stencil",["Array",16,"Bit"]] + ]], + "connections":[ + ["self.out_hw_input_stencil","self.in0_input_copy_stencil.0"] + ] + }, + "hcompute_hw_kernel_stencil":{ + "type":["Record",[ + ["out_hw_kernel_stencil",["Array",16,"Bit"]], + ["in0_kernel_copy_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_kernel_stencil","self.in0_kernel_copy_stencil.0"] + ] + }, + "hcompute_hw_kernel_stencil_mapped":{ + "type":["Record",[ + ["in0_kernel_copy_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_hw_kernel_stencil",["Array",16,"Bit"]] + ]], + "connections":[ + ["self.out_hw_kernel_stencil","self.in0_kernel_copy_stencil.0"] + ] + }, + "hcompute_hw_output_stencil":{ + "type":["Record",[ + ["out_hw_output_stencil",["Array",16,"Bit"]], + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "hcompute_hw_output_stencil_mapped":{ + "type":["Record",[ + ["in0_conv_stencil",["Array",1,["Array",16,"BitIn"]]], + ["out_hw_output_stencil",["Array",16,"Bit"]] + ]], + "connections":[ + ["self.out_hw_output_stencil","self.in0_conv_stencil.0"] + ] + }, + "mapping_function_0":{ + "type":["Record",[ + ["data6",["Array",16,"BitIn"]], + ["data8",["Array",16,"BitIn"]], + ["data7",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_add_inst0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + }, + "magma_Bits_16_mul_inst0":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data8","magma_Bits_16_add_inst0.in0"], + ["magma_Bits_16_mul_inst0.out","magma_Bits_16_add_inst0.in1"], + ["self.O","magma_Bits_16_add_inst0.out"], + ["self.data6","magma_Bits_16_mul_inst0.in0"], + ["self.data7","magma_Bits_16_mul_inst0.in1"] + ] + }, + "mapping_function_1":{ + "type":["Record",[ + ["data6",["Array",16,"BitIn"]], + ["data7",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_mul_inst0":{ + "genref":"coreir.mul", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data6","magma_Bits_16_mul_inst0.in0"], + ["self.data7","magma_Bits_16_mul_inst0.in1"], + ["self.O","magma_Bits_16_mul_inst0.out"] + ] + }, + "mapping_function_2":{ + "type":["Record",[ + ["data21","BitIn"], + ["O","Bit"], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "connections":[ + ["self.data21","self.O"] + ] + }, + "mapping_function_3":{ + "type":["Record",[ + ["data6",["Array",16,"BitIn"]], + ["data8",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "instances":{ + "magma_Bits_16_add_inst0":{ + "genref":"coreir.add", + "genargs":{"width":["Int",16]} + } + }, + "connections":[ + ["self.data8","magma_Bits_16_add_inst0.in0"], + ["self.data6","magma_Bits_16_add_inst0.in1"], + ["self.O","magma_Bits_16_add_inst0.out"] + ] + }, + "mapping_function_4":{ + "type":["Record",[ + ["data24",["Array",16,"BitIn"]], + ["O",["Array",16,"Bit"]], + ["CLK",["Named","coreir.clkIn"]], + ["ASYNCRESET",["Named","coreir.arstIn"]] + ]], + "connections":[ + ["self.data24","self.O"] + ] + } + } + } +} +} diff --git a/scripts/camera_pipe_test.py b/scripts/camera_pipe_test.py new file mode 100755 index 0000000..f70ee6e --- /dev/null +++ b/scripts/camera_pipe_test.py @@ -0,0 +1,138 @@ +from metamapper.irs.coreir import gen_CoreIRNodes +import metamapper.coreir_util as cutil +import metamapper.peak_util as putil +from metamapper.node import Nodes +from metamapper import CoreIRContext +from metamapper.coreir_mapper import Mapper +from metamapper.common_passes import print_dag, Constant2CoreIRConstant, gen_dag_img + +from peak_gen.arch import read_arch +from peak_gen.peak_wrapper import wrapped_peak_class + +from peak.mapper import read_serialized_bindings + +import delegator +import pytest +import glob +import importlib +import jsonpickle +import sys, os +import json + +class _ArchLatency: + def get(self, node): + kind = node.kind()[0] + print(kind) + if kind == "Rom": + return 1 + elif kind == "global.PE": + return latency + + return 0 + +app = "camera_pipeline_compute" +if len(sys.argv) > 2: + latency = int(sys.argv[2]) +else: + latency = 0 + +# DSE_PE_location = "../DSEGraphAnalysis/outputs" +pe_header = "./libs/pe_header.json" +pe_def = "./libs/pe_def.json" + +def gen_rrules(): + + arch = read_arch(f"examples/PE.json") + PE_fc = wrapped_peak_class(arch, debug=True) + c = CoreIRContext() + cmod = putil.peak_to_coreir(PE_fc) + c.serialize_header(pe_header, [cmod]) + # c.serialize_definitions(pe_def, [cmod]) + mapping_funcs = [] + rrules = [] + + num_rrules = len(glob.glob(f'examples/peak_gen/rewrite_rules/*.json')) + + + for ind in range(num_rrules): + + + + peak_eq = importlib.import_module("examples.peak_gen.peak_eq_" + str(ind)) + + ir_fc = getattr(peak_eq, "mapping_function_" + str(ind) + "_fc") + mapping_funcs.append(ir_fc) + + with open(f"examples/peak_gen/rewrite_rules/rewrite_rule_" + str(ind) + ".json", "r") as json_file: + rewrite_rule_in = jsonpickle.decode(json_file.read()) + + rewrite_rule = read_serialized_bindings(rewrite_rule_in, ir_fc, PE_fc) + counter_example = rewrite_rule.verify() + + + rrules.append(rewrite_rule) + return PE_fc, rrules + + + +arch_fc, rrules = gen_rrules() +verilog = False +print("STARTING TEST") +base = "examples/clockwork" +file_name = f"{base}/{app}.json" + +c = CoreIRContext(reset=True) +cutil.load_libs(["commonlib"]) +CoreIRNodes = gen_CoreIRNodes(16) +cutil.load_from_json(file_name) #libraries=["lakelib"]) +c.run_passes(["rungenerators"]) +kernels = dict(c.global_namespace.modules) + + +ArchNodes = Nodes("Arch") +putil.load_and_link_peak( + ArchNodes, + pe_header, + {"global.PE": arch_fc} +) +# putil.load_from_peak(ArchNodes, arch_fc) +mr = "memory.rom2" +ArchNodes.add(mr, CoreIRNodes.peak_nodes[mr], CoreIRNodes.coreir_modules[mr], CoreIRNodes.dag_nodes[mr]) + +mapper = Mapper(CoreIRNodes, ArchNodes, lazy=True, rrules=rrules) + +mods = [] +for kname, kmod in kernels.items(): + # if kname == "hcompute_demosaicked_1_stencil": + print(kname) + dag = cutil.coreir_to_dag(CoreIRNodes, kmod) + gen_dag_img(dag, "dag2") + Constant2CoreIRConstant(CoreIRNodes).run(dag) + mapped_dag = mapper.do_mapping(dag, kname=kname, node_latencies=_ArchLatency(), convert_unbound=False, prove_mapping=False) + gen_dag_img(mapped_dag, "mapped_dag2") + mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=verilog) + mods.append(mod) + +print(f"Num PEs used: {mapper.num_pes}") +output_file = f"outputs/{app}_mapped.json" +print(f"saving to {output_file}") +c.serialize_definitions(output_file, mods) + + +with open(f'outputs/{app}_kernel_latencies.json', 'w') as outfile: + json.dump(mapper.kernel_latencies, outfile) + +if verilog: + c.run_passes(["wireclocks-clk"]) + c.run_passes(["wireclocks-arst"]) + c.run_passes(["markdirty"]) + + + #Test syntax of serialized json + res = delegator.run(f"coreir -i {output_file} -l commonlib") + assert not res.return_code, res.out + res.err + + #Test serializing to verilog + res = delegator.run(f'coreir -i {output_file} -l commonlib -p "wireclocks-clk; wireclocks-arst" -o build/{app}_mapped.v --inline') + assert not res.return_code, res.out + res.err + diff --git a/scripts/demo.py b/scripts/demo.py new file mode 100755 index 0000000..eb731cb --- /dev/null +++ b/scripts/demo.py @@ -0,0 +1,88 @@ +from peak.demo.demo_pe import PE_fc + +from metamapper.irs.coreir import gen_CoreIRNodes +import metamapper.coreir_util as cutil +import metamapper.peak_util as putil +from metamapper.node import Nodes +from metamapper import CoreIRContext +from metamapper.coreir_mapper import Mapper +from metamapper.common_passes import print_dag, Constant2CoreIRConstant, gen_dag_img + +import delegator +import pytest +from hwtypes import BitVector, Tuple, Bit, bit_vector + +from peak_gen.sim import fp_pe_arch_closure, pe_arch_closure +from peak_gen.arch import read_arch, graph_arch +from peak_gen.isa import inst_arch_closure +from peak_gen.peak_wrapper import wrapped_peak_class +from peak.mapper import RewriteRule +from peak.mapper.utils import pretty_print_binding +import glob, jsonpickle +import peak +import shutil +import sys +import inspect +import importlib +import os +import json + +class _ArchLatency: + def get(self, node): + kind = node.kind()[0] + print(kind) + if kind == "Rom": + return 1 + elif kind == "PE": + return latency + return 0 + +app = str(sys.argv[1]) +if len(sys.argv) > 2: + latency = int(sys.argv[2]) +else: + latency = 0 + +lassen_rules = "../peak/peak/demo/demo_rewrite_rules.json" + +verilog = False +print("STARTING TEST") +base = "examples/clockwork" +file_name = f"{base}/{app}.json" + +c = CoreIRContext(reset=True) +cutil.load_libs(["commonlib"]) +CoreIRNodes = gen_CoreIRNodes(16) + +cutil.load_from_json(file_name) +kernels = dict(c.global_namespace.modules) + +ArchNodes = Nodes("Arch") +arch_fc = PE_fc +putil.load_from_peak(ArchNodes, arch_fc) + + +mapper = Mapper(CoreIRNodes, ArchNodes, lazy=True, rule_file=lassen_rules) + +c.run_passes(["rungenerators", "deletedeadinstances"]) +mods = [] + +for kname, kmod in kernels.items(): + if kname == "hcompute_conv_stencil_1": + print(kname) + dag = cutil.coreir_to_dag(CoreIRNodes, kmod) + Constant2CoreIRConstant(CoreIRNodes).run(dag) + gen_dag_img(dag, "premapped") + + mapped_dag = mapper.do_mapping(dag, kname=kname, node_latencies=_ArchLatency(), convert_unbound=False, prove_mapping=False) + mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=verilog) + mods.append(mod) + gen_dag_img(mapped_dag, "mapped") + +print(f"Num PEs used: {mapper.num_pes}") +output_file = f"outputs/{app}_mapped.json" +print(f"saving to {output_file}") +c.serialize_definitions(output_file, mods) + +with open(f'outputs/{app}_kernel_latencies.json', 'w') as outfile: + json.dump(mapper.kernel_latencies, outfile) diff --git a/scripts/gen_lassen.py b/scripts/gen_lassen.py index 0d20dcc..d443b71 100644 --- a/scripts/gen_lassen.py +++ b/scripts/gen_lassen.py @@ -12,7 +12,7 @@ def compile_PE_spec(arch_fc: "peak_fc", header_file: str, def_file: str): c = CoreIRContext() c.serialize_header(header_file, [cmod]) - c.serialize_definitions(def_file, [cmod]) + #c.serialize_definitions(def_file, [cmod]) lassen_header = "./libs/lassen_header.json" diff --git a/scripts/map_app.py b/scripts/map_app.py index 8dab216..b774d3d 100755 --- a/scripts/map_app.py +++ b/scripts/map_app.py @@ -6,7 +6,7 @@ from metamapper.node import Nodes from metamapper import CoreIRContext from metamapper.coreir_mapper import Mapper -from metamapper.common_passes import print_dag, Constant2CoreIRConstant +from metamapper.common_passes import print_dag, Constant2CoreIRConstant, gen_dag_img import delegator import pytest @@ -20,14 +20,29 @@ from peak.mapper.utils import pretty_print_binding import glob, jsonpickle import peak -import shutil +import shutil import sys import inspect -import importlib +import importlib import os -from lassen.sim import PE_fc as lassen_fc +from lassen.sim import PE_fc as lassen_fc +import json + +class _ArchLatency: + def get(self, node): + kind = node.kind()[0] + if kind == "Rom": + return 1 + elif kind == "global.PE": + return latency + return 0 + app = str(sys.argv[1]) +if len(sys.argv) > 2: + latency = int(sys.argv[2]) +else: + latency = 0 lassen_rules = "../lassen/scripts/rewrite_rules/lassen_rewrite_rules.json" lassen_header = "libs/lassen_header.json" @@ -55,7 +70,9 @@ ) mr = "memory.rom2" ArchNodes.add(mr, CoreIRNodes.peak_nodes[mr], CoreIRNodes.coreir_modules[mr], CoreIRNodes.dag_nodes[mr]) -mapper = Mapper(CoreIRNodes, ArchNodes, lazy=True, rule_file=lassen_rules) + + +mapper = Mapper(CoreIRNodes, ArchNodes, lazy=False, rule_file=lassen_rules) c.run_passes(["rungenerators", "deletedeadinstances"]) mods = [] @@ -64,22 +81,29 @@ print(kname) dag = cutil.coreir_to_dag(CoreIRNodes, kmod) Constant2CoreIRConstant(CoreIRNodes).run(dag) - # print_dag(dag) - mapped_dag = mapper.do_mapping(dag, convert_unbound=False, prove_mapping=False) - #print("Mapped",flush=True) - print_dag(mapped_dag) - #mod = cutil.dag_to_coreir_def(ArchNodes, mapped_dag, kmod) - mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=verilog) - #mod.print_() - mods.append(mod) + + mapped_dag = mapper.do_mapping(dag, kname=kname, node_latencies=_ArchLatency(), convert_unbound=False, prove_mapping=False) + gen_dag_img(dag, f"{kname}_premapped") + gen_dag_img(mapped_dag, f"{kname}_postmapped") +# mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=verilog) +# mods.append(mod) print(f"Num PEs used: {mapper.num_pes}") output_file = f"outputs/{app}_mapped.json" print(f"saving to {output_file}") -# c.save_to_file(output_file) c.serialize_definitions(output_file, mods) +total_latency = 0 +for kname, latency in mapper.kernel_latencies.items(): + print(kname, latency) + total_latency += latency + +print("Total latency:", total_latency) + +with open(f'outputs/{app}_kernel_latencies.json', 'w') as outfile: + json.dump(mapper.kernel_latencies, outfile) + if verilog: c.run_passes(["wireclocks-clk"]) c.run_passes(["wireclocks-arst"]) @@ -92,4 +116,4 @@ #Test serializing to verilog res = delegator.run(f'coreir -i {output_file} -l commonlib -p "wireclocks-clk; wireclocks-arst" -o build/{app}_mapped.v --inline') - assert not res.return_code, res.out + res.err \ No newline at end of file + assert not res.return_code, res.out + res.err diff --git a/scripts/map_dse.py b/scripts/map_dse.py index 52af070..89e8027 100755 --- a/scripts/map_dse.py +++ b/scripts/map_dse.py @@ -4,7 +4,7 @@ from metamapper.node import Nodes from metamapper import CoreIRContext from metamapper.coreir_mapper import Mapper -from metamapper.common_passes import print_dag +from metamapper.common_passes import print_dag, Constant2CoreIRConstant, gen_dag_img from peak_gen.arch import read_arch from peak_gen.peak_wrapper import wrapped_peak_class @@ -17,16 +17,36 @@ import importlib import jsonpickle import sys, os +import json + +class _ArchLatency: + def get(self, node): + kind = node.kind()[0] + if kind == "Rom": + return 1 + elif kind == "global.PE": + return latency + + return 0 app = str(sys.argv[1]) +if len(sys.argv) > 2: + latency = int(sys.argv[2]) +else: + latency = 0 DSE_PE_location = "../DSEGraphAnalysis/outputs" +pe_header = "./libs/pe_header.json" +pe_def = "./libs/pe_def.json" def gen_rrules(): arch = read_arch(f"{DSE_PE_location}/PE.json") - PE_fc = wrapped_peak_class(arch) - + PE_fc = wrapped_peak_class(arch, debug=True) + c = CoreIRContext() + cmod = putil.peak_to_coreir(PE_fc) + c.serialize_header(pe_header, [cmod]) + # c.serialize_definitions(pe_def, [cmod]) mapping_funcs = [] rrules = [] @@ -59,50 +79,58 @@ def gen_rrules(): +arch_fc, rrules = gen_rrules() verilog = False print("STARTING TEST") -c = CoreIRContext(reset=True) -arch_fc, rrules = gen_rrules() +base = "examples/clockwork" +file_name = f"{base}/{app}.json" -ArchNodes = Nodes("Arch") -putil.load_from_peak(ArchNodes, arch_fc) -file_name = f"examples/clockwork/{app}.json" +c = CoreIRContext(reset=True) cutil.load_libs(["commonlib"]) CoreIRNodes = gen_CoreIRNodes(16) -cutil.load_from_json(file_name, libraries=["cgralib"]) #libraries=["lakelib"]) +cutil.load_from_json(file_name) #libraries=["lakelib"]) +c.run_passes(["rungenerators"]) kernels = dict(c.global_namespace.modules) + +ArchNodes = Nodes("Arch") +putil.load_and_link_peak( + ArchNodes, + pe_header, + {"global.PE": arch_fc} +) +# putil.load_from_peak(ArchNodes, arch_fc) mr = "memory.rom2" ArchNodes.add(mr, CoreIRNodes.peak_nodes[mr], CoreIRNodes.coreir_modules[mr], CoreIRNodes.dag_nodes[mr]) -mapper = Mapper(CoreIRNodes, ArchNodes, lazy=True, rrules=rrules) - -c.run_passes(["rungenerators", "deletedeadinstances"]) +mapper = Mapper(CoreIRNodes, ArchNodes, lazy=False, rrules=rrules) +mods = [] for kname, kmod in kernels.items(): print(kname) dag = cutil.coreir_to_dag(CoreIRNodes, kmod) - print_dag(dag) - mapped_dag = mapper.do_mapping(dag, convert_unbound=False, prove_mapping=False) - #print("Mapped",flush=True) - print_dag(mapped_dag) - #mod = cutil.dag_to_coreir_def(ArchNodes, mapped_dag, kmod) + Constant2CoreIRConstant(CoreIRNodes).run(dag) + mapped_dag = mapper.do_mapping(dag, kname=kname, node_latencies=_ArchLatency(), convert_unbound=False, prove_mapping=False) + # if kname == "hcompute_conv_stencil_30" : + gen_dag_img(dag, f"{kname}_premapped") + gen_dag_img(mapped_dag, f"{kname}_postmapped") mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=verilog) - #mod.print_() - -print(kname) -dag = cutil.coreir_to_dag(CoreIRNodes, kmod) -#print_dag(dag) -mapped_dag = mapper.do_mapping(dag, convert_unbound=False, prove_mapping=False) -#print("Mapped",flush=True) -#print_dag(mapped_dag) -#mod = cutil.dag_to_coreir_def(ArchNodes, mapped_dag, kmod) -mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mappedd", convert_unbounds=verilog) -#mod.print_() + mods.append(mod) + print(f"Num PEs used: {mapper.num_pes}") -output_file = f"examples/clockwork/{app}_mapped.json" +output_file = f"outputs/{app}_mapped.json" print(f"saving to {output_file}") -c.save_to_file(output_file) +c.serialize_definitions(output_file, mods) + +total_latency = 0 +for kname, latency in mapper.kernel_latencies.items(): + print(kname, latency) + total_latency += latency + +print("Total latency:", total_latency) + +with open(f'outputs/{app}_kernel_latencies.json', 'w') as outfile: + json.dump(mapper.kernel_latencies, outfile) if verilog: c.run_passes(["wireclocks-clk"]) diff --git a/tests/broken_tests/_test_delay_matching.py b/tests/broken_tests/_test_delay_matching.py new file mode 100755 index 0000000..f800cc5 --- /dev/null +++ b/tests/broken_tests/_test_delay_matching.py @@ -0,0 +1,82 @@ +import delegator +import pytest +from examples.PEs.alu_basic import gen_ALU +from metamapper.irs.coreir import gen_CoreIRNodes +import metamapper.coreir_util as cutil +import metamapper.peak_util as putil +from metamapper.node import Nodes +from metamapper import CoreIRContext +from metamapper.coreir_mapper import Mapper +from metamapper.common_passes import print_dag, dag_to_pdf +from lassen import PE_fc as lassen_fc + +lassen_rules = "src/lassen/scripts/rewrite_rules/lassen_rewrite_rules.json" + + +class _ArchLatency: + @staticmethod + def get(node): + kind = node.kind()[0] + print(kind) + if kind == "PE" or kind == "Rom": + return 1 + + return 0 + +@pytest.mark.parametrize("app", ["camera_pipeline_compute","harris_compute", "gaussian_compute", "laplacian_pyramid_compute", "cascade_compute", + "resnet_block_compute", "resnet_compute"]) + + +def test_app(app): + print("STARTING TEST") + c = CoreIRContext(reset=True) + file_name = f"examples/clockwork/{app}.json" + cutil.load_libs(["commonlib"]) + CoreIRNodes = gen_CoreIRNodes(16) + cutil.load_from_json(file_name) #libraries=["lakelib"]) + kernels = dict(c.global_namespace.modules) + + arch_fc = lassen_fc + rule_file = lassen_rules + + ArchNodes = Nodes("Arch") + putil.load_from_peak(ArchNodes, arch_fc) + mr = "memory.rom2" + ArchNodes.add(mr, CoreIRNodes.peak_nodes[mr], CoreIRNodes.coreir_modules[mr], CoreIRNodes.dag_nodes[mr]) + reg = "coreir.pipeline_reg" + ArchNodes.add(reg, CoreIRNodes.peak_nodes[reg], CoreIRNodes.coreir_modules[reg], CoreIRNodes.dag_nodes[reg]) + reg1 = "corebit.pipeline_reg" + ArchNodes.add(reg1, CoreIRNodes.peak_nodes[reg1], CoreIRNodes.coreir_modules[reg1], CoreIRNodes.dag_nodes[reg1]) + + + mapper = Mapper(CoreIRNodes, ArchNodes, lazy=True, rule_file=rule_file) + c.run_passes(["rungenerators", "deletedeadinstances"]) + + + for kname, kmod in kernels.items(): + dag = cutil.coreir_to_dag(CoreIRNodes, kmod) + mapped_dag = mapper.do_mapping(dag, node_latencies=_ArchLatency(), prove_mapping=False) + mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=True) + # mod.add_metadata("latency", "2") + + + + + output_file = f"examples/clockwork/{app}_mapped.json" + print(f"saving to {output_file}") + # c.set_top(mod) + c.save_to_file(output_file) + + c.run_passes(["wireclocks-clk"]) + c.run_passes(["wireclocks-arst"]) + c.run_passes(["markdirty"]) + + + #Test syntax of serialized json + res = delegator.run(f"coreir -i {output_file} -l commonlib cgralib") + assert not res.return_code, res.out + res.err + + #Test serializing to verilog + res = delegator.run(f'coreir -i {output_file} -l commonlib cgralib -p "wireclocks-clk; wireclocks-arst" -o build/{app}_mapped.v --inline') + assert not res.return_code, res.out + res.err + diff --git a/tests/broken_tests/_test_lassen.py b/tests/broken_tests/_test_lassen.py index a9ba3fb..e0bc744 100755 --- a/tests/broken_tests/_test_lassen.py +++ b/tests/broken_tests/_test_lassen.py @@ -16,8 +16,9 @@ @pytest.mark.parametrize("arch", [ ("Lassen", lassen_fc, {}), ]) -@pytest.mark.parametrize("app", ["camera_pipeline_compute", "harris_compute", "gaussian_compute", "laplacian_pyramid_compute", "cascade_compute", - "resnet_block_compute", "resnet_compute"]) +# @pytest.mark.parametrize("app", ["camera_pipeline_compute", "harris_compute", "gaussian_compute", "laplacian_pyramid_compute", "cascade_compute", +# "resnet_block_compute", "resnet_compute"]) +@pytest.mark.parametrize("app", ["camera_pipeline_compute"]) def test_app(arch, app): print("STARTING TEST") c = CoreIRContext(reset=True) diff --git a/tests/test_basic_mapping.py b/tests/test_basic_mapping.py index 2697418..cd9e097 100644 --- a/tests/test_basic_mapping.py +++ b/tests/test_basic_mapping.py @@ -15,18 +15,19 @@ #This tests loading, mapping, serializing of toy examples - - lassen_rules = "src/lassen/scripts/rewrite_rules/lassen_rewrite_rules.json" lassen_header = "libs/lassen_header.json" lassen_def = "libs/lassen_def.json" mem_header = "libs/mem_header.json" + + + @pytest.mark.parametrize("app", [ - "add3_const" + "add4_pipe", + "add3_const", ]) -#@pytest.mark.parametrize("app", ["add4_pipe"]) def test_kernel_mapping(app): base = "examples/coreir" app_file = f"{base}/{app}.json" @@ -39,11 +40,12 @@ def test_kernel_mapping(app): app_name = cmod.name dag = cutil.coreir_to_dag(IRNodes, cmod) - + #print_dag(dag) #gen_dag_img(dag, f"img/{app}") Constant2CoreIRConstant(IRNodes).run(dag) - print_dag(dag) + + #print_dag(dag) arch_fc = lassen_fc ArchNodes = Nodes("Arch") @@ -52,7 +54,6 @@ def test_kernel_mapping(app): lassen_header, {"global.PE": arch_fc} ) - ArchNodes.copy(IRNodes, "coreir.reg") mapper = Mapper(IRNodes, ArchNodes, lazy=True, rule_file=lassen_rules) mapped_dag = mapper.do_mapping(dag, convert_unbound=False, prove_mapping=False) @@ -63,16 +64,62 @@ def test_kernel_mapping(app): c.serialize_definitions(build_file, [mod]) +class LatencyInfo: + + @staticmethod + def get(node): + if node.node_name == "global.PE": + return 1 + return 0 + @pytest.mark.parametrize("app", [ - "add3_const_mapped", + "branch" ]) -def test_post_mapped_loading(app): - base = "examples/post_mapping" +def test_kernel_mapping_with_delay(app): + base = "examples/coreir" app_file = f"{base}/{app}.json" + build_file = f"tests/build/{app}_mapped.json" + c = CoreIRContext(reset=True) cmod = cutil.load_from_json(app_file) - cmod.print_() + IRNodes = gen_CoreIRNodes(16) + + app_name = cmod.name + dag = cutil.coreir_to_dag(IRNodes, cmod) + + #gen_dag_img(dag, f"img/{app}") + + Constant2CoreIRConstant(IRNodes).run(dag) + print_dag(dag) + + arch_fc = lassen_fc + ArchNodes = Nodes("Arch") + putil.load_and_link_peak( + ArchNodes, + lassen_header, + {"global.PE": arch_fc} + ) + + mapper = Mapper(IRNodes, ArchNodes, lazy=True, rule_file=lassen_rules) + mapped_dag = mapper.do_mapping(dag, node_latencies=LatencyInfo, convert_unbound=False, prove_mapping=False) + + #gen_dag_img(mapped_dag, f"img/{app}_mapped") + mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{app_name}_mapped", convert_unbounds=False) + c.serialize_definitions(build_file, [mod]) + + + +@pytest.mark.parametrize("app", [ + "add3_const", + "add4_pipe", + "branch" +]) +def test_post_mapped_loading(app): + base = "examples/post_mapping" + app_file = f"{base}/{app}_mapped.json" + c = CoreIRContext(reset=True) + cmod = cutil.load_from_json(app_file) MEM_fc = gen_MEM_fc() # Contains an empty nodes IRNodes = gen_CoreIRNodes(16) @@ -86,4 +133,7 @@ def test_post_mapped_loading(app): mem_header, {"global.MEM": MEM_fc}, ) - app_name = cmod.name + + dag = cutil.coreir_to_dag(IRNodes, cmod) + #print_dag(dag) + #gen_dag_img(dag, f"img/{app}_mapped_loaded") diff --git a/tests/test_camera_pipe.py b/tests/test_camera_pipe.py new file mode 100755 index 0000000..ed18486 --- /dev/null +++ b/tests/test_camera_pipe.py @@ -0,0 +1,144 @@ +from metamapper.irs.coreir import gen_CoreIRNodes +import metamapper.coreir_util as cutil +import metamapper.peak_util as putil +from metamapper.node import Nodes +from metamapper import CoreIRContext +from metamapper.coreir_mapper import Mapper +from metamapper.common_passes import print_dag, Constant2CoreIRConstant, gen_dag_img + +from peak_gen.arch import read_arch +from peak_gen.peak_wrapper import wrapped_peak_class + +from peak.mapper import read_serialized_bindings + +import delegator +import pytest +import glob +import importlib +import jsonpickle +import sys, os +import json + +class _ArchLatency: + def get(self, node): + kind = node.kind()[0] + print(kind) + if kind == "Rom": + return 1 + elif kind == "global.PE": + return 0 + #return latency + + return 0 + +app = "camera_pipeline_compute" +#if len(sys.argv) > 2: +# latency = int(sys.argv[2]) +#else: +# latency = 0 + +# DSE_PE_location = "../DSEGraphAnalysis/outputs" +pe_header = "./libs/pe_header.json" +pe_def = "./libs/pe_def.json" + +def gen_rrules(): + + arch = read_arch(f"examples/PE.json") + PE_fc = wrapped_peak_class(arch, debug=True) + c = CoreIRContext() + cmod = putil.peak_to_coreir(PE_fc) + c.serialize_header(pe_header, [cmod]) + # c.serialize_definitions(pe_def, [cmod]) + mapping_funcs = [] + rrules = [] + + num_rrules = len(glob.glob(f'examples/peak_gen/rewrite_rules/*.json')) + + + for ind in range(num_rrules): + + + + peak_eq = importlib.import_module("examples.peak_gen.peak_eq_" + str(ind)) + + ir_fc = getattr(peak_eq, "mapping_function_" + str(ind) + "_fc") + mapping_funcs.append(ir_fc) + + with open(f"examples/peak_gen/rewrite_rules/rewrite_rule_" + str(ind) + ".json", "r") as json_file: + rewrite_rule_in = jsonpickle.decode(json_file.read()) + + rewrite_rule = read_serialized_bindings(rewrite_rule_in, ir_fc, PE_fc) + counter_example = rewrite_rule.verify() + + + rrules.append(rewrite_rule) + return PE_fc, rrules + + +def test_it(): + + arch_fc, rrules = gen_rrules() + verilog = False + print("STARTING TEST") + base = "examples/clockwork" + file_name = f"{base}/{app}.json" + + c = CoreIRContext(reset=True) + cutil.load_libs(["commonlib"]) + CoreIRNodes = gen_CoreIRNodes(16) + cutil.load_from_json(file_name) #libraries=["lakelib"]) + c.run_passes(["rungenerators"]) + kernels = dict(c.global_namespace.modules) + + + ArchNodes = Nodes("Arch") + putil.load_and_link_peak( + ArchNodes, + pe_header, + {"global.PE": arch_fc} + ) + # putil.load_from_peak(ArchNodes, arch_fc) + mr = "memory.rom2" + ArchNodes.add(mr, CoreIRNodes.peak_nodes[mr], CoreIRNodes.coreir_modules[mr], CoreIRNodes.dag_nodes[mr]) + + mapper = Mapper(CoreIRNodes, ArchNodes, lazy=True, rrules=rrules) + + mods = [] + absd_name = "hcompute_demosaicked_1_stencil_1" + assert absd_name in kernels + for kname, kmod in kernels.items(): + if kname != absd_name: + continue + print(kname) + dag = cutil.coreir_to_dag(CoreIRNodes, kmod) + print_dag(dag) + gen_dag_img(dag, f"img/{absd_name}") + Constant2CoreIRConstant(CoreIRNodes).run(dag) + mapped_dag = mapper.do_mapping(dag, kname=kname, node_latencies=_ArchLatency(), convert_unbound=False, prove_mapping=False) + gen_dag_img(mapped_dag, "mapped_dag2") + mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=verilog) + mods.append(mod) + + print(f"Num PEs used: {mapper.num_pes}") + output_file = f"outputs/{app}_mapped.json" + print(f"saving to {output_file}") + c.serialize_definitions(output_file, mods) + + + with open(f'outputs/{app}_kernel_latencies.json', 'w') as outfile: + json.dump(mapper.kernel_latencies, outfile) + + if verilog: + c.run_passes(["wireclocks-clk"]) + c.run_passes(["wireclocks-arst"]) + c.run_passes(["markdirty"]) + + + #Test syntax of serialized json + res = delegator.run(f"coreir -i {output_file} -l commonlib") + assert not res.return_code, res.out + res.err + + #Test serializing to verilog + res = delegator.run(f'coreir -i {output_file} -l commonlib -p "wireclocks-clk; wireclocks-arst" -o build/{app}_mapped.v --inline') + assert not res.return_code, res.out + res.err + diff --git a/tests/test_kernel_mapping.py b/tests/test_kernel_mapping.py index 1fba081..c48ee70 100644 --- a/tests/test_kernel_mapping.py +++ b/tests/test_kernel_mapping.py @@ -15,24 +15,46 @@ lassen_header = "libs/lassen_header.json" lassen_def = "libs/lassen_def.json" + +class _ArchLatency: + + @staticmethod + def get(node): + kind = node.kind()[0] + if kind == "PE" or kind == "Rom": + return 1 + return 0 + + +@pytest.mark.parametrize("lat", [ + None, + #_ArchLatency +]) @pytest.mark.parametrize("app", [ "gaussian", - #"harris", - #"laplacian_pyramid", - #"camera_pipeline" + "harris", + "camera_pipeline", + "laplacian_pyramid", + "cascade", + #"resnet_block", + #"resnet" ]) -def test_kernel_mapping(app): +def test_kernel_mapping(lat, app): verilog = False base = "examples/clockwork" app_file = f"{base}/{app}_compute.json" - mapped_file = f"tests/build/{app}_mapped.json" + if lat is None: + mapped_file = f"tests/build/{app}_mapped.json" + else: + mapped_file = f"tests/build/{app}_delay_mapped.json" c = CoreIRContext(reset=True) cutil.load_libs(["commonlib"]) CoreIRNodes = gen_CoreIRNodes(16) cutil.load_from_json(app_file) + c.run_passes(["rungenerators", "deletedeadinstances"]) kernels = dict(c.global_namespace.modules) arch_fc = lassen_fc @@ -53,7 +75,7 @@ def test_kernel_mapping(app): print(f"Mapping kernel {kname}") dag = cutil.coreir_to_dag(CoreIRNodes, kmod) Constant2CoreIRConstant(CoreIRNodes).run(dag) - mapped_dag = mapper.do_mapping(dag, convert_unbound=False, prove_mapping=False) + mapped_dag = mapper.do_mapping(dag, convert_unbound=False, prove_mapping=False, node_latencies=lat) #print_dag(mapped_dag) mod = cutil.dag_to_coreir(ArchNodes, mapped_dag, f"{kname}_mapped", convert_unbounds=verilog) mods.append(mod) diff --git a/tests/test_mem_header.py b/tests/test_mem_header.py new file mode 100644 index 0000000..b648863 --- /dev/null +++ b/tests/test_mem_header.py @@ -0,0 +1,13 @@ +from metamapper.lake_mem import gen_MEM_fc +from peak import family +from metamapper import peak_util as putil +from metamapper import CoreIRContext + + +def test_mem_header(): + MEM_fc = gen_MEM_fc() + MEM = MEM_fc(family.MagmaFamily()) + cmod = putil.magma_to_coreir(MEM) + c = CoreIRContext() + c.serialize_header("libs/mem_header.json", [cmod]) + diff --git a/tests/test_post_mapping.py b/tests/test_post_mapping.py index 4fd715b..7cf95c9 100644 --- a/tests/test_post_mapping.py +++ b/tests/test_post_mapping.py @@ -43,7 +43,9 @@ def test_post_mapped_loading(app): putil.load_and_link_peak( IRNodes, mem_header, - {"global.MEM": MEM_fc}, + {"global.MEM": (MEM_fc, True)}, ) app_name = cmod.name dag = cutil.coreir_to_dag(IRNodes, cmod) + gen_dag_img(dag, f"img/{app}") +