Add print of values if tests fail. Modify some ngspice tests to pass withcorrect results.

This commit is contained in:
Matt Guthaus 2016-11-11 09:41:43 -08:00
parent c318a7d1bb
commit 1356e5142d
49 changed files with 64 additions and 75 deletions

View File

@ -6,6 +6,7 @@ import tech
import math
import stimuli
import charutils as ch
import utils
OPTS = globals.get_opts()

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python2.7
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test the library cells for DRC"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test the library cells for LVS"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test for DRC on basic contacts of different array sizes"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test on a basic path"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test on a basic parameterized transistors"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test on a basic parameterized transistors"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test on a basic parameterized transistors"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test on a basic parameterized transistors"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -2,7 +2,7 @@
"Run a regresion test on a basic wire"
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -6,7 +6,7 @@ size 2_input nand gate that is nmos_width=2*tech.drc[minwidth_tx].
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -6,7 +6,7 @@ It generate only the minimum size 3_input nand gate that is nmos_width=3*tech.dr
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -5,7 +5,7 @@ This module doesn't generate multi_finger 2_input nor gate
It generate only the minimum size 2_input nor gate that is nmos_width=2*tech.drc[minwidth_tx]
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run regresion tests on a parameterized inverter
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a wordline_driver array
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a basic array
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a thierarchy_decoder.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a hierarchical_predecode2x4.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a hierarchical_predecode3x8.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a single transistor column_mux.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a precharge array
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a sense amp array
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a write driver array
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a dff_array.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a control_logic
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a test on a delay chain
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a tri_gate_array.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a test on a delay chain
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a 1 bank SRAM
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a 2 bank SRAM
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on a 4 bank SRAM
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header,isclose
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals
@ -63,11 +63,7 @@ class timing_sram_test(unittest.TestCase):
self.assertTrue(False) # other techs fail
os.remove(tempspice)
def isclose(value1,value2):
""" This is used to compare relative values for convergence. """
return (abs(value1 - value2) / max(value1,value2) <= 1e-2)
# instantiate a copdsay of the class to actually run the test
if __name__ == "__main__":

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header,isclose
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals
@ -44,10 +44,6 @@ class timing_setup_test(unittest.TestCase):
else:
self.assertTrue(False) # other techs fail
def isclose(value1,value2):
""" This is used to compare relative values for convergence. """
return (abs(value1 - value2) / max(value1,value2) <= 1e-2)
# instantiate a copdsay of the class to actually run the test
if __name__ == "__main__":

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header,isclose
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals
@ -44,11 +44,6 @@ class timing_setup_test(unittest.TestCase):
else:
self.assertTrue(False) # other techs fail
def isclose(value1,value2):
""" This is used to compare relative values for convergence. """
return (abs(value1 - value2) / max(value1,value2) <= 1e-2)
# instantiate a copdsay of the class to actually run the test
if __name__ == "__main__":
(OPTS, args) = globals.parse_args()

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header,isclose
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals
@ -64,11 +64,6 @@ class timing_sram_test(unittest.TestCase):
os.remove(tempspice)
def isclose(value1,value2):
""" This is used to compare relative values for convergence. """
return (abs(value1 - value2) / max(value1,value2) <= 1e-2)
# instantiate a copdsay of the class to actually run the test
if __name__ == "__main__":
(OPTS, args) = globals.parse_args()

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header,isclose
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals
@ -39,16 +39,11 @@ class timing_setup_test(unittest.TestCase):
self.assertTrue(isclose(one_setup_time,-0.0048828125))
self.assertTrue(isclose(zero_setup_time,-0.010986328125))
elif OPTS.tech_name == "scn3me_subm":
self.assertTrue(isclose(one_setup_time,0.04638671875))
self.assertTrue(isclose(one_setup_time,0.45654296875)) # diff than hspice
self.assertTrue(isclose(zero_setup_time,-0.0830078125))
else:
self.assertTrue(False) # other techs fail
def isclose(value1,value2):
""" This is used to compare relative values for convergence. """
return (abs(value1 - value2) / max(value1,value2) <= 1e-2)
# instantiate a copdsay of the class to actually run the test
if __name__ == "__main__":
(OPTS, args) = globals.parse_args()

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header,isclose
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals
@ -38,16 +38,11 @@ class timing_setup_test(unittest.TestCase):
self.assertTrue(isclose(one_setup_time,0.0146484375))
self.assertTrue(isclose(zero_setup_time,0.008544921875))
elif OPTS.tech_name == "scn3me_subm":
self.assertTrue(isclose(one_setup_time,0.0927734375))
self.assertTrue(isclose(one_setup_time,0.09521484375)) #diff than hspice
self.assertTrue(isclose(zero_setup_time,-0.0244140625))
else:
self.assertTrue(False) # other techs fail
def isclose(value1,value2):
""" This is used to compare relative values for convergence. """
return (abs(value1 - value2) / max(value1,value2) <= 1e-2)
# instantiate a copdsay of the class to actually run the test
if __name__ == "__main__":
(OPTS, args) = globals.parse_args()

View File

@ -4,7 +4,7 @@ Run a regression test on an extracted SRAM to ensure functionality.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Run a regresion test on various srams
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Check the .lib file for an SRAM
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Check the LEF file for an SRMA
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -4,7 +4,7 @@ Check the .v file for an SRAM
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -6,7 +6,7 @@ check that these files are right.
"""
import unittest
from header import header
from testutils import header
import sys,os
sys.path.append(os.path.join(sys.path[0],".."))
import globals

View File

@ -1,4 +1,16 @@
def isclose(value1,value2,error_tolerance=1e-2):
""" This is used to compare relative values.. """
import debug
relative_diff = abs(value1 - value2) / max(value1,value2)
check = relative_diff <= error_tolerance
if not check:
debug.info(2,"NOT CLOSE {0} {1} relative diff={2}".format(value1,value2,relative_diff))
else:
debug.info(2,"CLOSE {0} {1} relative diff={2}".format(value1,value2,relative_diff))
return (check)
def header(str, tec):
tst = "Running Test for:"
print "\n"

View File

@ -41,3 +41,7 @@ def auto_measure_libcell(pin_list, name, units, layer):
for pin in pin_list:
cell[str(pin)] = gdsPinToOffset(cell_vlsi.readPin(str(pin)))
return cell