OpenRAM/compiler/verify/__init__.py

60 lines
1.6 KiB
Python
Raw Normal View History

"""
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 os
import debug
from globals import OPTS,find_exe,get_tool
debug.info(2,"Initializing verify...")
if not OPTS.check_lvsdrc:
debug.info(1,"LVS/DRC/PEX disabled.")
2018-01-12 23:39:42 +01:00
OPTS.drc_exe = None
OPTS.lvs_exe = None
OPTS.pex_exe = None
else:
2018-01-12 23:39:42 +01:00
OPTS.drc_exe = get_tool("DRC",["calibre","assura","magic"])
OPTS.lvs_exe = get_tool("LVS",["calibre","assura","netgen"])
OPTS.pex_exe = get_tool("PEX",["calibre","magic"])
2018-01-12 23:39:42 +01:00
if OPTS.drc_exe == None:
pass
2018-01-12 23:39:42 +01:00
elif "calibre" in OPTS.drc_exe:
from calibre import run_drc
2018-01-12 23:39:42 +01:00
elif "assura" in OPTS.drc_exe:
2017-11-15 21:07:10 +01:00
from assura import run_drc
2018-01-12 23:39:42 +01:00
elif "magic" in OPTS.drc_exe:
from magic import run_drc
else:
debug.warning("Did not find a supported DRC tool.")
2018-01-12 23:39:42 +01:00
if OPTS.lvs_exe == None:
pass
2018-01-12 23:39:42 +01:00
elif "calibre" in OPTS.lvs_exe:
from calibre import run_lvs
2018-01-12 23:39:42 +01:00
elif "assura" in OPTS.lvs_exe:
2017-11-15 21:07:10 +01:00
from assura import run_lvs
2018-01-12 23:39:42 +01:00
elif "netgen" in OPTS.lvs_exe:
from magic import run_lvs
else:
debug.warning("Did not find a supported LVS tool.")
2018-01-12 23:39:42 +01:00
if OPTS.pex_exe == None:
pass
2018-01-12 23:39:42 +01:00
elif "calibre" in OPTS.pex_exe:
from calibre import run_pex
2018-01-12 23:39:42 +01:00
elif "magic" in OPTS.pex_exe:
from magic import run_pex
else:
debug.warning("Did not find a supported PEX tool.")