def promotePartitions(): global paConfigNamePrefix, layout output = "promote_run -run {%s} -partition_names { {system}" % (paConfigNamePrefix + '1') for slotNum in range(layout.getNumSlots()): output += " {%s}" % ("hw_task_" + str(slotNum)) output += " }\n" return output
def removeOtherReconfigModules(): global dynamicThreads, layout output = "" for slotNum in range(layout.getNumSlots()): output += "load_reconfig_modules -reconfig_modules {hw_task_%i:%s}\n" % (slotNum, dynamicThreads[0]) for threadNum in range(1, len(dynamicThreads)): output += "delete_reconfig_module -reconfig_module {hw_task_%i:%s}\n" % (slotNum, dynamicThreads[threadNum]) return output
def setPblockSizes(): global layout output = "" for slotNum in range(layout.getNumSlots()): slot = layout.slots[slotNum] output += "resize_pblock pblock_hw_task_%d -add {%s" % (slotNum, slot.getSliceRange()) for rangeType in slot.ranges.keys(): output += " " + slot.ranges[rangeType] output += "} -locs keep_all -replace\n" return output
def addFirstReconfigModules(): '''add the first reconfigurable modules (dynamic threads) for each slot''' global layout, dynamicThreads, dynamicThreadsNetlistFileNames output = "" for slotNum in range(layout.getNumSlots()): output += """\ add_reconfig_module -name {%s} -cell {%s} -file {%s} save_design """ % (dynamicThreads[0], "hw_task_" + str(slotNum), dynamicThreadsNetlistFileNames[0]) return output
def createOtherPartialModuleRuns(): global dynamicThreads, layout, paConfigNamePrefix output = "" for runNum in range(1, len(dynamicThreads)): output += "create_run -name %s -part %s -srcset sources_1 -constrset constrs_1 -flow {ISE 12} -strategy {ISE Defaults}\n" % ( paConfigNamePrefix + str(runNum + 1), layout.target.getPart()) output += "config_partition -run {%s} -implement\n" % (paConfigNamePrefix + str(runNum + 1)) for slotNum in range(layout.getNumSlots()): output += "config_partition -run {%s} -cell {%s} -reconfig_module {%s} -implement\n" % ( paConfigNamePrefix + str(runNum + 1), "hw_task_" + str(slotNum), dynamicThreads[runNum]) return output
def addOtherReconfigModules(): # adds reconfigurable modules other than the dummy ones '''add other reconfigurable modules (dynamic threads) for an extensible design''' global layout, dynamicThreads, dynamicThreadsNetlistFileNames output = "" for slotNum in range(layout.getNumSlots()): for threadNum in range(1, len(dynamicThreads)): output += "add_reconfig_module -name {%s} -cell {%s} -file {%s}\nsave_design\n" % ( dynamicThreads[threadNum], "hw_task_" + str(slotNum), dynamicThreadsNetlistFileNames[threadNum]) return output
def addReconfigModules(): '''add all reconfigurable modules (dynamic threads)''' global layout, dynamicThreads, dynamicThreadsNetlistFileNames output = "" for slotNum in range(layout.getNumSlots()): output += """\ add_reconfig_module -name {%s} -cell {%s} -file {%s} save_design """ % (dynamicThreads[0], "hw_task_" + str(slotNum), dynamicThreadsNetlistFileNames[0]) for threadNum in range(1, len(dynamicThreads)): output += "add_reconfig_module -name {%s} -cell {%s} -file {%s}\n" % ( dynamicThreads[threadNum], "hw_task_" + str(slotNum), dynamicThreadsNetlistFileNames[threadNum]) return output