cocoon/util.py

101 lines
2.9 KiB
Python
Raw Normal View History

import os
home_path = os.getcwd()
2020-08-11 12:30:45 +08:00
#print(home_path)
2020-08-10 10:55:05 +08:00
def getHDL(design):
return design.rtl_file
def getLib(design):
return design.lib_file
def getLef(design):
return design.lef_file
def getMmmc(design):
return design.mmmc_file
2020-08-10 10:55:05 +08:00
def getHDLPath(design, baseflow):
if baseflow == "Cadence":
2020-09-07 17:44:42 +08:00
hdl_path = home_path + "/data/" + design.top_name + "/hdl"
2020-08-30 21:24:55 +08:00
elif baseflow == "Yosys":
2020-09-07 17:44:42 +08:00
hdl_path = home_path + "/data/" + design.top_name + "/hdl"
2020-08-10 10:55:05 +08:00
return hdl_path
def getLibPath(design, baseflow):
if baseflow == "Cadence":
2020-09-07 17:44:42 +08:00
lib_path = home_path + "/data/lib"
2020-08-30 21:24:55 +08:00
elif baseflow == "Yosys":
2020-09-07 17:44:42 +08:00
lib_path = home_path + "/data/lib"
2020-08-10 10:55:05 +08:00
return lib_path
def getLefPath(design, baseflow):
if baseflow == "Cadence":
2020-09-07 17:44:42 +08:00
lef_path = home_path + "/data/lib"
2020-08-30 21:24:55 +08:00
elif baseflow == "Yosys":
2020-08-10 10:55:05 +08:00
lef_path = ""
return lef_path
def getRptPath(design, baseflow):
2020-09-07 22:08:12 +08:00
rpt_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/reports"
2020-08-10 10:55:05 +08:00
if baseflow == "Cadence":
2020-09-07 17:44:42 +08:00
rpt_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/reports"
2020-08-30 21:24:55 +08:00
elif baseflow == "Yosys":
2020-09-07 17:44:42 +08:00
rpt_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/reports"
2020-08-10 10:55:05 +08:00
return rpt_path
def getObjPath(design, baseflow):
if baseflow == "Cadence":
2020-09-07 17:44:42 +08:00
obj_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/objects"
2020-08-30 21:24:55 +08:00
elif baseflow == "Yosys":
2020-09-07 17:44:42 +08:00
obj_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/objects"
2020-08-10 10:55:05 +08:00
return obj_path
def getScriptPath(design, baseflow):
if baseflow == "Cadence":
2020-09-07 17:44:42 +08:00
script_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/scripts"
2020-08-30 21:24:55 +08:00
elif baseflow == "Yosys":
2020-09-07 17:44:42 +08:00
script_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/scripts"
2020-08-10 10:55:05 +08:00
return script_path
def getRunPath(design, baseflow):
if baseflow == "Cadence":
2020-09-07 17:44:42 +08:00
run_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/run"
2020-08-30 21:24:55 +08:00
elif baseflow == "Yosys":
2020-09-07 17:44:42 +08:00
run_path = home_path + "/data/" + design.top_name + "/" + design.lib_name + "/run"
return run_path
def getResult(design, optFunc, baseFlow):
if optFunc == "Timing":
rpt = getRptPath(design, baseFlow)
res = rpt + "/timing.rpt"
2020-09-07 22:08:12 +08:00
res = 1000
2020-09-07 17:44:42 +08:00
return res
def evaluate(ckpt_list, optFunc, baseFlow):
idx = None
res = 1000000
for ckpt in ckpt_list:
tmp = getResult(ckpt, optFunc, baseFlow)
if tmp < res:
res = tmp
idx = ckpt
return idx
2020-09-07 18:02:57 +08:00
def pull(ckpt):
pass
def push(ckpt):
pass
2020-09-07 17:44:42 +08:00
def getCheckpoint(file_path):
# read checkpoint from path
return file_path
def saveCheckpoint(ckpt, file_path):
# save checkpoint to path
pass