import os import debug from globals import OPTS,find_exe,get_tool debug.info(2,"Initializing characterizer...") OPTS.spice_exe = "" if OPTS.spice_name != "": OPTS.spice_exe=find_exe(OPTS.spice_name) if OPTS.spice_exe=="": debug.error("{0} not found. Unable to perform characterization.".format(OPTS.spice_name),1) else: (OPTS.spice_name, OPTS.spice_exe) = get_tool("spice",["hsim", "vcs"]) if OPTS.spice_exe == "": debug.error("No recognizable spice version found. Unable to perform characterization.",1)
from globals import get_tool from tech import drc_name from tech import lvs_name from tech import pex_name debug.info(1, "Initializing verify...") if not OPTS.check_lvsdrc: debug.info(1, "LVS/DRC/PEX disabled.") OPTS.drc_exe = None OPTS.lvs_exe = None OPTS.pex_exe = None # if OPTS.tech_name == "sky130": # OPTS.magic_exe = None else: debug.info(1, "Finding DRC/LVS/PEX tools.") OPTS.drc_exe = get_tool("DRC", ["calibre", "assura", "magic"], drc_name) OPTS.lvs_exe = get_tool("LVS", ["calibre", "assura", "netgen"], lvs_name) OPTS.pex_exe = get_tool("PEX", ["calibre", "magic"], pex_name) # if OPTS.tech_name == "sky130": # OPTS.magic_exe = get_tool("GDS", ["magic"]) if not OPTS.drc_exe: from .none import run_drc, print_drc_stats, write_drc_script elif "calibre" == OPTS.drc_exe[0]: from .calibre import run_drc, print_drc_stats, write_drc_script elif "assura" == OPTS.drc_exe[0]: from .assura import run_drc, print_drc_stats, write_drc_script elif "magic" == OPTS.drc_exe[0]: from .magic import run_drc, print_drc_stats, write_drc_script else: debug.error(
import delay import setup_hold debug.info(2, "Initializing characterizer...") spice_exe = "" if OPTS.analytical_delay: debug.info(1, "Using analytical delay models (no characterization)") else: if OPTS.spice_name != "": spice_exe = find_exe(OPTS.spice_name) if spice_exe == "": debug.error( "{0} not found. Unable to perform characterization.".format( OPTS.spice_name), 1) else: (choice, spice_exe) = get_tool("spice", ["xa", "hspice", "ngspice", "ngspice.exe"]) OPTS.spice_name = choice # set the input dir for spice files if using ngspice if OPTS.spice_name == "ngspice": os.environ["NGSPICE_INPUT_DIR"] = "{0}".format(OPTS.openram_temp) if spice_exe == "": debug.error( "No recognizable spice version found. Unable to perform characterization.", 1)
""" 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.") drc_exe = None lvs_exe = None pex_exe = None else: drc_exe = get_tool("DRC",["calibre","assura","magic"]) lvs_exe = get_tool("LVS",["calibre","assura","netgen"]) pex_exe = get_tool("PEX",["calibre","magic"]) if drc_exe == None: pass elif "calibre" in drc_exe: from calibre import run_drc elif "assura" in drc_exe: from assura import run_drc elif "magic" in drc_exe: from magic import run_drc else: debug.warning("Did not find a supported DRC tool.")
from .measurements import * from .model_check import * debug.info(1, "Initializing characterizer...") OPTS.spice_exe = "" if not OPTS.analytical_delay: debug.info(1, "Finding spice simulator.") if OPTS.spice_name != "": OPTS.spice_exe = find_exe(OPTS.spice_name) if OPTS.spice_exe == "" or OPTS.spice_exe == None: debug.error( "{0} not found. Unable to perform characterization.".format( OPTS.spice_name), 1) else: (OPTS.spice_name, OPTS.spice_exe) = get_tool("spice", ["hspice", "ngspice", "ngspice.exe", "xa"]) # set the input dir for spice files if using ngspice if OPTS.spice_name == "ngspice": os.environ["NGSPICE_INPUT_DIR"] = "{0}".format(OPTS.openram_temp) if OPTS.spice_exe == "": debug.error( "No recognizable spice version found. Unable to perform characterization.", 1) else: debug.info(1, "Analytical model enabled.")
import globals from globals import OPTS,find_exe,get_tool from .lib import * from .delay import * from .setup_hold import * debug.info(1,"Initializing characterizer...") OPTS.spice_exe = "" if not OPTS.analytical_delay: debug.info(1, "Finding spice simulator.") if OPTS.spice_name != "": OPTS.spice_exe=find_exe(OPTS.spice_name) if OPTS.spice_exe=="": debug.error("{0} not found. Unable to perform characterization.".format(OPTS.spice_name),1) else: (OPTS.spice_name,OPTS.spice_exe) = get_tool("spice",["xa", "hspice", "ngspice", "ngspice.exe"]) # set the input dir for spice files if using ngspice if OPTS.spice_name == "ngspice": os.environ["NGSPICE_INPUT_DIR"] = "{0}".format(OPTS.openram_temp) if OPTS.spice_exe == "": debug.error("No recognizable spice version found. Unable to perform characterization.",1) else: debug.info(1,"Analytical model enabled.")
import time import debug from globals import OPTS import subprocess import os import debug from globals import OPTS, find_exe, get_tool debug.info(2, "Initializing Calibre...") if not OPTS.check_lvsdrc: debug.info(1, "LVS/DRC/PEX disabled.") OPTS.lvsdrc_exe = None else: OPTS.lvsdrc_exe = get_tool("LVS/DRC/PEX", ["calibre"]) def run_drc(cell_name, gds_name): """Run DRC check on a given top-level name which is implemented in gds_name.""" # the runset file contains all the options to run calibre from tech import drc drc_rules = drc["drc_rules"] drc_runset = { 'drcRulesFile': drc_rules, 'drcRunDir': OPTS.AMC_temp, 'drcLayoutPaths': gds_name, 'drcLayoutPrimary': cell_name,