mirror of https://github.com/VLSIDA/OpenRAM.git
Added an option that prevents lib.py from generating corners and only uses corners in config file.
This commit is contained in:
parent
240dc784af
commit
732404b330
|
|
@ -77,18 +77,27 @@ class lib:
|
||||||
|
|
||||||
# Nominal corner
|
# Nominal corner
|
||||||
corner_set = set()
|
corner_set = set()
|
||||||
nom_corner = (nom_process, nom_supply, nom_temperature)
|
if OPTS.only_use_config_corners:
|
||||||
corner_set.add(nom_corner)
|
if OPTS.nominal_corner_only:
|
||||||
if not OPTS.nominal_corner_only:
|
debug.warning("Nominal corner only option ignored if use only config corners is set.")
|
||||||
# Temperature corners
|
# Generate a powerset of input PVT lists
|
||||||
corner_set.add((nom_process, nom_supply, min_temperature))
|
for p in self.process_corners:
|
||||||
corner_set.add((nom_process, nom_supply, max_temperature))
|
for v in self.supply_voltages:
|
||||||
# Supply corners
|
for t in self.temperatures:
|
||||||
corner_set.add((nom_process, min_supply, nom_temperature))
|
corner_set.add((p, v, t))
|
||||||
corner_set.add((nom_process, max_supply, nom_temperature))
|
else:
|
||||||
# Process corners
|
nom_corner = (nom_process, nom_supply, nom_temperature)
|
||||||
corner_set.add((min_process, nom_supply, nom_temperature))
|
corner_set.add(nom_corner)
|
||||||
corner_set.add((max_process, nom_supply, nom_temperature))
|
if not OPTS.nominal_corner_only:
|
||||||
|
# Temperature corners
|
||||||
|
corner_set.add((nom_process, nom_supply, min_temperature))
|
||||||
|
corner_set.add((nom_process, nom_supply, max_temperature))
|
||||||
|
# Supply corners
|
||||||
|
corner_set.add((nom_process, min_supply, nom_temperature))
|
||||||
|
corner_set.add((nom_process, max_supply, nom_temperature))
|
||||||
|
# Process corners
|
||||||
|
corner_set.add((min_process, nom_supply, nom_temperature))
|
||||||
|
corner_set.add((max_process, nom_supply, nom_temperature))
|
||||||
|
|
||||||
# Enforce that nominal corner is the first to be characterized
|
# Enforce that nominal corner is the first to be characterized
|
||||||
self.add_corner(*nom_corner)
|
self.add_corner(*nom_corner)
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,8 @@ class options(optparse.Values):
|
||||||
verbose_level = 0
|
verbose_level = 0
|
||||||
# Drop to pdb on failure?
|
# Drop to pdb on failure?
|
||||||
debug = False
|
debug = False
|
||||||
|
# Only use corners in config file. Disables generated corners
|
||||||
|
only_use_config_corners = False
|
||||||
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue