mirror of https://github.com/VLSIDA/OpenRAM.git
Only use max/min and typical corner
This commit is contained in:
parent
2a912dab7a
commit
bedae87315
|
|
@ -66,22 +66,44 @@ class lib:
|
||||||
self.supply_voltages = OPTS.supply_voltages
|
self.supply_voltages = OPTS.supply_voltages
|
||||||
self.process_corners = OPTS.process_corners
|
self.process_corners = OPTS.process_corners
|
||||||
|
|
||||||
# Enumerate all possible corners
|
# Corner values
|
||||||
|
min_temperature = min(self.temperatures)
|
||||||
|
nom_temperature = tech.spice["nom_temperature"]
|
||||||
|
max_temperature = max(self.temperatures)
|
||||||
|
min_supply = min(self.supply_voltages)
|
||||||
|
nom_supply = tech.spice["nom_supply_voltage"]
|
||||||
|
max_supply = max(self.supply_voltages)
|
||||||
|
min_process = "FF"
|
||||||
|
nom_process = "TT"
|
||||||
|
max_process = "SS"
|
||||||
|
|
||||||
self.corners = []
|
self.corners = []
|
||||||
self.lib_files = []
|
self.lib_files = []
|
||||||
for proc in self.process_corners:
|
|
||||||
for temp in self.temperatures:
|
|
||||||
for volt in self.supply_voltages:
|
|
||||||
self.corner_name = "{0}_{1}_{2}V_{3}C".format(self.sram.name,
|
|
||||||
proc,
|
|
||||||
volt,
|
|
||||||
temp)
|
|
||||||
self.corner_name = self.corner_name.replace(".","p") # Remove decimals
|
|
||||||
lib_name = self.out_dir+"{}.lib".format(self.corner_name)
|
|
||||||
|
|
||||||
# A corner is a tuple of PVT
|
# Nominal corner
|
||||||
self.corners.append((proc, volt, temp))
|
self.add_corner(nom_process, nom_supply, nom_temperature)
|
||||||
self.lib_files.append(lib_name)
|
# Temperature corners
|
||||||
|
self.add_corner(nom_process, nom_supply, min_temperature)
|
||||||
|
self.add_corner(nom_process, nom_supply, max_temperature)
|
||||||
|
# Supply corners
|
||||||
|
self.add_corner(nom_process, min_supply, nom_temperature)
|
||||||
|
self.add_corner(nom_process, max_supply, nom_temperature)
|
||||||
|
# Process corners
|
||||||
|
self.add_corner(min_process, nom_supply, nom_temperature)
|
||||||
|
self.add_corner(max_process, nom_supply, nom_temperature)
|
||||||
|
|
||||||
|
def add_corner(self, proc, volt, temp):
|
||||||
|
self.corner_name = "{0}_{1}_{2}V_{3}C".format(self.sram.name,
|
||||||
|
proc,
|
||||||
|
volt,
|
||||||
|
temp)
|
||||||
|
self.corner_name = self.corner_name.replace(".","p") # Remove decimals
|
||||||
|
lib_name = self.out_dir+"{}.lib".format(self.corner_name)
|
||||||
|
|
||||||
|
# A corner is a tuple of PVT
|
||||||
|
self.corners.append((proc, volt, temp))
|
||||||
|
self.lib_files.append(lib_name)
|
||||||
|
|
||||||
|
|
||||||
def characterize_corners(self):
|
def characterize_corners(self):
|
||||||
""" Characterize the list of corners. """
|
""" Characterize the list of corners. """
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue