2017-11-14 23:59:14 +01:00
|
|
|
"""
|
|
|
|
|
This is a module that will import the correct DRC/LVS/PEX
|
|
|
|
|
module based on what tools are found. It is a layer of indirection
|
|
|
|
|
to enable multiple verification tool support.
|
|
|
|
|
|
|
|
|
|
Each DRC/LVS/PEX tool should implement the functions run_drc, run_lvs, and
|
|
|
|
|
run_pex, repsectively. If there is an error, they should abort and report the errors.
|
|
|
|
|
If not, OpenRAM will continue as if nothing happened!
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
import debug
|
2017-11-15 00:27:03 +01:00
|
|
|
from globals import OPTS
|
2017-11-14 23:59:14 +01:00
|
|
|
|
2017-11-15 00:27:03 +01:00
|
|
|
|
2017-11-15 00:31:58 +01:00
|
|
|
if OPTS.drc_exe == None:
|
|
|
|
|
pass
|
|
|
|
|
elif "calibre" in OPTS.drc_exe:
|
2017-11-14 23:59:14 +01:00
|
|
|
from calibre import run_drc
|
2017-11-15 00:27:03 +01:00
|
|
|
elif "magic" in OPTS.drc_exe:
|
2017-11-14 23:59:14 +01:00
|
|
|
from magic import run_drc
|
|
|
|
|
else:
|
|
|
|
|
debug.warning("Did not find a supported DRC tool.")
|
|
|
|
|
|
2017-11-15 00:31:58 +01:00
|
|
|
if OPTS.lvs_exe == None:
|
|
|
|
|
pass
|
|
|
|
|
elif "calibre" in OPTS.lvs_exe:
|
2017-11-14 23:59:14 +01:00
|
|
|
from calibre import run_lvs
|
2017-11-15 00:27:03 +01:00
|
|
|
elif "netgen" in OPTS.lvs_exe:
|
2017-11-14 23:59:14 +01:00
|
|
|
from magic import run_lvs
|
|
|
|
|
else:
|
|
|
|
|
debug.warning("Did not find a supported LVS tool.")
|
|
|
|
|
|
|
|
|
|
|
2017-11-15 00:31:58 +01:00
|
|
|
if OPTS.pex_exe == None:
|
|
|
|
|
pass
|
|
|
|
|
elif "calibre" in OPTS.pex_exe:
|
2017-11-14 23:59:14 +01:00
|
|
|
from calibre import run_pex
|
2017-11-15 00:27:03 +01:00
|
|
|
elif "magic" in OPTS.pex_exe:
|
2017-11-14 23:59:14 +01:00
|
|
|
from magic import run_pex
|
|
|
|
|
else:
|
|
|
|
|
debug.warning("Did not find a supported PEX tool.")
|
|
|
|
|
|