mirror of
https://github.com/VLSIDA/OpenRAM.git
synced 2026-08-29 17:39:02 +02:00
Move DRC/LVS/PEX tools to tech file.
This commit is contained in:
+14
-4
@@ -448,14 +448,24 @@ def init_paths():
|
||||
|
||||
def set_default_corner():
|
||||
""" Set the default corner. """
|
||||
|
||||
|
||||
import tech
|
||||
# Set some default options now based on the technology...
|
||||
if (OPTS.process_corners == ""):
|
||||
OPTS.process_corners = tech.spice["fet_models"].keys()
|
||||
if OPTS.nominal_corner_only:
|
||||
OPTS.process_corners = ["TT"]
|
||||
else:
|
||||
OPTS.process_corners = tech.spice["fet_models"].keys()
|
||||
if (OPTS.supply_voltages == ""):
|
||||
OPTS.supply_voltages = tech.spice["supply_voltages"]
|
||||
if OPTS.nominal_corner_only:
|
||||
OPTS.supply_voltages = [tech.spice["supply_voltages"][1]]
|
||||
else:
|
||||
OPTS.supply_voltages = tech.spice["supply_voltages"]
|
||||
if (OPTS.temperatures == ""):
|
||||
OPTS.temperatures = tech.spice["temperatures"]
|
||||
if OPTS.nominal_corner_only:
|
||||
OPTS.temperatures = [tech.spice["temperatures"][1]]
|
||||
else:
|
||||
OPTS.temperatures = tech.spice["temperatures"]
|
||||
|
||||
|
||||
def import_tech():
|
||||
|
||||
+4
-2
@@ -34,6 +34,7 @@ class options(optparse.Values):
|
||||
write_size = None
|
||||
|
||||
# These will get initialized by the user or the tech file
|
||||
nominal_corner_only = True
|
||||
supply_voltages = ""
|
||||
temperatures = ""
|
||||
process_corners = ""
|
||||
@@ -85,6 +86,8 @@ class options(optparse.Values):
|
||||
check_lvsdrc = False
|
||||
# This determines whether LVS and DRC is checked for every submodule.
|
||||
inline_lvsdrc = False
|
||||
# Treat the bitcell as a black box (no DRC, LVS, or extraction)
|
||||
blackbox_bitcell = False
|
||||
# Remove noncritical memory cells for characterization speed-up
|
||||
trim_netlist = False
|
||||
# Run with extracted parasitics
|
||||
@@ -110,8 +113,7 @@ class options(optparse.Values):
|
||||
|
||||
# Should we print out the banner at startup
|
||||
print_banner = True
|
||||
# Use detailed LEF blockages
|
||||
detailed_blockages = True
|
||||
|
||||
# Define the output file paths
|
||||
output_path = "."
|
||||
# Define the output file base name
|
||||
|
||||
@@ -11,20 +11,6 @@ num_words = 16
|
||||
|
||||
tech_name = OPTS.tech_name
|
||||
|
||||
process_corners = ["TT"]
|
||||
supply_voltages = [5.0]
|
||||
temperatures = [25]
|
||||
|
||||
route_supplies = True
|
||||
check_lvsdrc = True
|
||||
|
||||
if tech_name.startswith("scn"):
|
||||
drc_name = "magic"
|
||||
lvs_name = "netgen"
|
||||
pex_name = "magic"
|
||||
else:
|
||||
supply_voltages = [1.0]
|
||||
drc_name = "calibre"
|
||||
lvs_name = "calibre"
|
||||
pex_name = "calibre"
|
||||
|
||||
|
||||
@@ -10,22 +10,10 @@ word_size = 1
|
||||
num_words = 16
|
||||
|
||||
tech_name = OPTS.tech_name
|
||||
process_corners = ["TT"]
|
||||
supply_voltages = [5.0]
|
||||
temperatures = [25]
|
||||
|
||||
route_supplies = True
|
||||
check_lvsdrc = True
|
||||
inline_lvsdrc = True
|
||||
analytical_delay = False
|
||||
|
||||
if tech_name.startswith("scn"):
|
||||
drc_name = "magic"
|
||||
lvs_name = "netgen"
|
||||
pex_name = "magic"
|
||||
else:
|
||||
supply_voltages = [1.0]
|
||||
drc_name = "calibre"
|
||||
lvs_name = "calibre"
|
||||
pex_name = "calibre"
|
||||
|
||||
|
||||
@@ -10,18 +10,5 @@ word_size = 1
|
||||
num_words = 16
|
||||
|
||||
tech_name = OPTS.tech_name
|
||||
process_corners = ["TT"]
|
||||
supply_voltages = [5.0]
|
||||
temperatures = [25]
|
||||
|
||||
if tech_name.startswith("scn"):
|
||||
drc_name = "magic"
|
||||
lvs_name = "netgen"
|
||||
pex_name = "magic"
|
||||
else:
|
||||
supply_voltages = [1.0]
|
||||
drc_name = "calibre"
|
||||
lvs_name = "calibre"
|
||||
pex_name = "calibre"
|
||||
|
||||
|
||||
|
||||
+17
-12
@@ -17,7 +17,12 @@ If not, OpenRAM will continue as if nothing happened!
|
||||
|
||||
import os
|
||||
import debug
|
||||
from globals import OPTS,find_exe,get_tool
|
||||
from globals import OPTS
|
||||
from globals import find_exe
|
||||
from globals import get_tool
|
||||
from tech import drc_name
|
||||
from tech import lvs_name
|
||||
from tech import pex_name
|
||||
import sys
|
||||
|
||||
debug.info(1,"Initializing verify...")
|
||||
@@ -29,29 +34,29 @@ if not OPTS.check_lvsdrc:
|
||||
OPTS.pex_exe = None
|
||||
else:
|
||||
debug.info(1, "Finding DRC/LVS/PEX tools.")
|
||||
OPTS.drc_exe = get_tool("DRC", ["calibre","assura","magic"], OPTS.drc_name)
|
||||
OPTS.lvs_exe = get_tool("LVS", ["calibre","assura","netgen"], OPTS.lvs_name)
|
||||
OPTS.pex_exe = get_tool("PEX", ["calibre","magic"], OPTS.pex_name)
|
||||
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.drc_exe == None:
|
||||
from .none import run_drc,print_drc_stats
|
||||
from .none import run_drc, print_drc_stats
|
||||
elif "calibre"==OPTS.drc_exe[0]:
|
||||
from .calibre import run_drc,print_drc_stats
|
||||
from .calibre import run_drc, print_drc_stats
|
||||
elif "assura"==OPTS.drc_exe[0]:
|
||||
from .assura import run_drc,print_drc_stats
|
||||
from .assura import run_drc, print_drc_stats
|
||||
elif "magic"==OPTS.drc_exe[0]:
|
||||
from .magic import run_drc,print_drc_stats
|
||||
from .magic import run_drc, print_drc_stats
|
||||
else:
|
||||
debug.warning("Did not find a supported DRC tool.")
|
||||
|
||||
if OPTS.lvs_exe == None:
|
||||
from .none import run_lvs,print_lvs_stats
|
||||
from .none import run_lvs, print_lvs_stats
|
||||
elif "calibre"==OPTS.lvs_exe[0]:
|
||||
from .calibre import run_lvs,print_lvs_stats
|
||||
from .calibre import run_lvs, print_lvs_stats
|
||||
elif "assura"==OPTS.lvs_exe[0]:
|
||||
from .assura import run_lvs,print_lvs_stats
|
||||
from .assura import run_lvs, print_lvs_stats
|
||||
elif "netgen"==OPTS.lvs_exe[0]:
|
||||
from .magic import run_lvs,print_lvs_stats
|
||||
from .magic import run_lvs, print_lvs_stats
|
||||
else:
|
||||
debug.warning("Did not find a supported LVS tool.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user