def Create_Solution(App, Row, Col, Unrolling_Vec, Blocking_Vec, IO_Buffers, DFG_Lat): Possible_Solution = Solution() Possible_Solution.Loop_Vec = Get_Loop_Vec(App) Possible_Solution.SCGRA_Row = Row Possible_Solution.SCGRA_Col = Col Possible_Solution.SCGRA_Size = Row * Col Possible_Solution.Loop_Unrolling_Vec = copy.copy(Unrolling_Vec) Possible_Solution.DFG_Lat = DFG_Lat Possible_Solution.In_Buffer = IO_Buffers[0] Possible_Solution.Out_Buffer = IO_Buffers[1] Possible_Solution.In_Addr_Buffer = IO_Buffers[2] Possible_Solution.Out_Addr_Buffer = IO_Buffers[3] Possible_Solution.Inst_Mem = Get_Min_Inst_Mem(DFG_Lat) Possible_Solution.Loop_Blocking_Vec = copy.copy(Blocking_Vec) Possible_Solution.Update_HW_Cost() DFG_Num = Get_SB_Num(Unrolling_Vec, Blocking_Vec) Block_Num = Get_SB_Num(Blocking_Vec, Get_Loop_Vec(App)) Loop_Transfer_Vec = Get_Loop_Transfer_Vec(App, Unrolling_Vec, Blocking_Vec) Possible_Solution.Update_Lat(DFG_Num, Block_Num, Loop_Transfer_Vec) Possible_Solution.Update_Power() Possible_Solution.Update_EDP() Solution_Str = Possible_Solution.Get_Syllabus() return Possible_Solution