Only use max/min and typical corner

This commit is contained in:
Matt Guthaus 2019-11-29 13:31:44 -08:00
parent 2a912dab7a
commit bedae87315
1 changed files with 35 additions and 13 deletions

View File

@ -66,12 +66,33 @@ 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: # Nominal corner
for volt in self.supply_voltages: self.add_corner(nom_process, nom_supply, nom_temperature)
# 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, self.corner_name = "{0}_{1}_{2}V_{3}C".format(self.sram.name,
proc, proc,
volt, volt,
@ -83,6 +104,7 @@ class lib:
self.corners.append((proc, volt, temp)) self.corners.append((proc, volt, temp))
self.lib_files.append(lib_name) self.lib_files.append(lib_name)
def characterize_corners(self): def characterize_corners(self):
""" Characterize the list of corners. """ """ Characterize the list of corners. """
for (self.corner,lib_name) in zip(self.corners,self.lib_files): for (self.corner,lib_name) in zip(self.corners,self.lib_files):