mirror of https://github.com/VLSIDA/OpenRAM.git
Add parameters to give preference to DRC/LVS/PEX tools like we do for spice.
This commit is contained in:
parent
309bfaea2a
commit
e804f36bec
|
|
@ -142,13 +142,22 @@ def init_openram(config_file, is_unit_test=True):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_tool(tool_type, preferences):
|
def get_tool(tool_type, preferences, default_name=None):
|
||||||
"""
|
"""
|
||||||
Find which tool we have from a list of preferences and return the
|
Find which tool we have from a list of preferences and return the
|
||||||
one selected and its full path.
|
one selected and its full path. If default is specified,
|
||||||
|
find that one only and error otherwise.
|
||||||
"""
|
"""
|
||||||
debug.info(2,"Finding {} tool...".format(tool_type))
|
debug.info(2,"Finding {} tool...".format(tool_type))
|
||||||
|
|
||||||
|
if default_name:
|
||||||
|
exe_name=find_exe(default_name)
|
||||||
|
if exe_name == None:
|
||||||
|
debug.error("{0} not found. Cannot find {1} tool.".format(default_name,tool_type),2)
|
||||||
|
else:
|
||||||
|
debug.info(1, "Using {0}: {1}".format(tool_type,exe_name))
|
||||||
|
return(default_name,exe_name)
|
||||||
|
else:
|
||||||
for name in preferences:
|
for name in preferences:
|
||||||
exe_name = find_exe(name)
|
exe_name = find_exe(name)
|
||||||
if exe_name != None:
|
if exe_name != None:
|
||||||
|
|
|
||||||
|
|
@ -24,14 +24,18 @@ class options(optparse.Values):
|
||||||
check_lvsdrc = True
|
check_lvsdrc = True
|
||||||
# Variable to select the variant of spice
|
# Variable to select the variant of spice
|
||||||
spice_name = ""
|
spice_name = ""
|
||||||
# Should we print out the banner at startup
|
# The spice executable being used which is derived from the user PATH.
|
||||||
print_banner = True
|
spice_exe = ""
|
||||||
|
# Variable to select the variant of drc, lvs, pex
|
||||||
|
drc_name = ""
|
||||||
|
lvs_name = ""
|
||||||
|
pex_name = ""
|
||||||
# The DRC/LVS/PEX executable being used which is derived from the user PATH.
|
# The DRC/LVS/PEX executable being used which is derived from the user PATH.
|
||||||
drc_exe = None
|
drc_exe = None
|
||||||
lvs_exe = None
|
lvs_exe = None
|
||||||
pex_exe = None
|
pex_exe = None
|
||||||
# The spice executable being used which is derived from the user PATH.
|
# Should we print out the banner at startup
|
||||||
spice_exe = ""
|
print_banner = True
|
||||||
# Run with extracted parasitics
|
# Run with extracted parasitics
|
||||||
use_pex = False
|
use_pex = False
|
||||||
# Remove noncritical memory cells for characterization speed-up
|
# Remove noncritical memory cells for characterization speed-up
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ if not OPTS.check_lvsdrc:
|
||||||
OPTS.pex_exe = None
|
OPTS.pex_exe = None
|
||||||
else:
|
else:
|
||||||
debug.info(1, "Finding DRC/LVS/PEX tools.")
|
debug.info(1, "Finding DRC/LVS/PEX tools.")
|
||||||
OPTS.drc_exe = get_tool("DRC",["calibre","assura","magic"])
|
OPTS.drc_exe = get_tool("DRC", ["calibre","assura","magic"], OPTS.drc_name)
|
||||||
OPTS.lvs_exe = get_tool("LVS",["calibre","assura","netgen"])
|
OPTS.lvs_exe = get_tool("LVS", ["calibre","assura","netgen"], OPTS.lvs_name)
|
||||||
OPTS.pex_exe = get_tool("PEX",["calibre","magic"])
|
OPTS.pex_exe = get_tool("PEX", ["calibre","magic"], OPTS.pex_name)
|
||||||
|
|
||||||
if OPTS.check_lvsdrc and OPTS.tech_name == "freepdk45":
|
if OPTS.check_lvsdrc and OPTS.tech_name == "freepdk45":
|
||||||
debug.check(OPTS.drc_exe[0]!="magic","Magic does not support FreePDK45 for DRC.")
|
debug.check(OPTS.drc_exe[0]!="magic","Magic does not support FreePDK45 for DRC.")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue