示例#1
0
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)



示例#2
0
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(
示例#3
0
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)
示例#4
0
"""

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.")
示例#5
0
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.")
示例#6
0
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.")


示例#7
0
文件: calibre.py 项目: xinjie0831/AMC
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,