Fix some regression fails.

This commit is contained in:
Matt Guthaus
2019-07-25 14:18:08 -07:00
parent 0bb41b8a5d
commit c8c4d05bba
6 changed files with 63 additions and 68 deletions
+2 -2
View File
@@ -393,7 +393,7 @@ class replica_bitcell_array(design.design):
# Dynamic Power from Bitline
bl_wire = self.gen_bl_wire()
cell_load = 2 * bl_wire.return_input_cap()
bl_swing = parameter["rbl_height_percentage"]
bl_swing = OPTS.rbl_delay_percentage
freq = spice["default_event_rate"]
bitline_dynamic = self.calc_dynamic_power(corner, cell_load, freq, swing=bl_swing)
@@ -451,4 +451,4 @@ class replica_bitcell_array(design.design):
def get_cell_name(self, inst_name, row, col):
"""Gets the spice name of the target bitcell."""
return self.bitcell_array.get_cell_name(inst_name+'.x'+self.bitcell_array_inst.name, row, col)
return self.bitcell_array.get_cell_name(inst_name+'.x'+self.bitcell_array_inst.name, row, col)
+20 -21
View File
@@ -61,28 +61,27 @@ class timing_sram_test(openram_test):
data.update(port_data[0])
if OPTS.tech_name == "freepdk45":
golden_data = {'delay_hl': [0.2121267],
'delay_lh': [0.2121267],
'leakage_power': 0.0023761999999999998,
'min_period': 0.43,
'read0_power': [0.5139368],
'read1_power': [0.48940979999999995],
'slew_hl': [0.0516745],
'slew_lh': [0.0516745],
'write0_power': [0.46267169999999996],
'write1_power': [0.4670826]}
golden_data = {'delay_hl': [0.2192123],
'delay_lh': [0.2192123],
'leakage_power': 0.006427800000000001,
'min_period': 0.527,
'read0_power': [0.4519997],
'read1_power': [0.42609269999999994],
'slew_hl': [0.10185999999999999],
'slew_lh': [0.10185999999999999],
'write0_power': [0.49744869999999997],
'write1_power': [0.4460337]}
elif OPTS.tech_name == "scn4m_subm":
golden_data = {'delay_hl': [1.288],
'delay_lh': [1.288],
'leakage_power': 0.0273896,
'min_period': 2.578,
'read0_power': [16.9996],
'read1_power': [16.2616],
'slew_hl': [0.47891700000000004],
'slew_lh': [0.47891700000000004],
'write0_power': [16.0656],
'write1_power': [16.2616]}
golden_data = {'delay_hl': [1.4249],
'delay_lh': [1.4249],
'leakage_power': 0.7340832,
'min_period': 3.125,
'read0_power': [14.8099],
'read1_power': [14.0866],
'slew_hl': [0.7280485],
'slew_lh': [0.7280485],
'write0_power': [16.865],
'write1_power': [14.8288]}
else:
self.assertTrue(False) # other techs fail
# Check if no too many or too few results
+5 -4
View File
@@ -15,8 +15,9 @@ from globals import OPTS
from sram_factory import factory
import debug
class model_delay_sram_test(openram_test):
class model_delay_test(openram_test):
""" Compare the accuracy of the analytical model with a spice simulation. """
def runTest(self):
globals.init_openram("config_{0}".format(OPTS.tech_name))
OPTS.analytical_delay = False
@@ -61,9 +62,9 @@ class model_delay_sram_test(openram_test):
debug.info(1,"Spice Delays={}".format(spice_delays))
debug.info(1,"Model Delays={}".format(model_delays))
if OPTS.tech_name == "freepdk45":
error_tolerance = .25
error_tolerance = 0.25
elif OPTS.tech_name == "scn4m_subm":
error_tolerance = .25
error_tolerance = 0.25
else:
self.assertTrue(False) # other techs fail
# Check if no too many or too few results
+20 -21
View File
@@ -54,28 +54,27 @@ class timing_sram_test(openram_test):
data.update(port_data[0])
if OPTS.tech_name == "freepdk45":
golden_data = {'delay_hl': [0.2108836],
'delay_lh': [0.2108836],
'leakage_power': 0.001564799,
'min_period': 0.508,
'read0_power': [0.43916689999999997],
'read1_power': [0.4198608],
'slew_hl': [0.0455126],
'slew_lh': [0.0455126],
'write0_power': [0.40681890000000004],
'write1_power': [0.4198608]}
golden_data = {'delay_hl': [0.2265453],
'delay_lh': [0.2265453],
'leakage_power': 0.003688569,
'min_period': 0.547,
'read0_power': [0.4418831],
'read1_power': [0.41914969999999996],
'slew_hl': [0.103665],
'slew_lh': [0.103665],
'write0_power': [0.48889660000000007],
'write1_power': [0.4419755]}
elif OPTS.tech_name == "scn4m_subm":
golden_data = {'delay_hl': [1.5747600000000002],
'delay_lh': [1.5747600000000002],
'leakage_power': 0.00195795,
'min_period': 3.281,
'read0_power': [14.92874],
'read1_power': [14.369810000000001],
'slew_hl': [0.49631959999999997],
'slew_lh': [0.49631959999999997],
'write0_power': [13.79953],
'write1_power': [14.369810000000001]}
golden_data = {'delay_hl': [1.718183],
'delay_lh': [1.718183],
'leakage_power': 0.1342958,
'min_period': 3.75,
'read0_power': [14.1499],
'read1_power': [13.639719999999999],
'slew_hl': [0.7794919],
'slew_lh': [0.7794919],
'write0_power': [15.978829999999999],
'write1_power': [14.128079999999999]}
else:
self.assertTrue(False) # other techs fail