mirror of https://github.com/VLSIDA/OpenRAM.git
removed tabs and fixed bug in which datasheets generated without the characterizer running
This commit is contained in:
parent
49268b025f
commit
bc54bc238f
|
|
@ -64,7 +64,8 @@ s = sram(sram_config=c,
|
||||||
s.save()
|
s.save()
|
||||||
|
|
||||||
# generate datasheet from characterization of created SRAM
|
# generate datasheet from characterization of created SRAM
|
||||||
p = parser.parse(OPTS.openram_temp,os.environ.get('OPENRAM_HOME')+"/datasheets")
|
if not OPTS.analytical_delay:
|
||||||
|
p = parser.parse(OPTS.openram_temp,os.environ.get('OPENRAM_HOME')+"/datasheets")
|
||||||
|
|
||||||
# Delete temp files etc.
|
# Delete temp files etc.
|
||||||
end_openram()
|
end_openram()
|
||||||
|
|
|
||||||
|
|
@ -17,60 +17,60 @@ import contextlib
|
||||||
from globals import OPTS
|
from globals import OPTS
|
||||||
|
|
||||||
class deliverables(Table):
|
class deliverables(Table):
|
||||||
typ = Col('Type')
|
typ = Col('Type')
|
||||||
description = Col('Description')
|
description = Col('Description')
|
||||||
link = Col('Link')
|
link = Col('Link')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class deliverables_item(object):
|
class deliverables_item(object):
|
||||||
def __init__(self, typ, description,link):
|
def __init__(self, typ, description,link):
|
||||||
self.typ = typ
|
self.typ = typ
|
||||||
self.description = description
|
self.description = description
|
||||||
self.link = link
|
self.link = link
|
||||||
|
|
||||||
class operating_conditions(Table):
|
class operating_conditions(Table):
|
||||||
parameter = Col('Parameter')
|
parameter = Col('Parameter')
|
||||||
min = Col('Min')
|
min = Col('Min')
|
||||||
typ = Col('Typ')
|
typ = Col('Typ')
|
||||||
max = Col('Max')
|
max = Col('Max')
|
||||||
units = Col('Units')
|
units = Col('Units')
|
||||||
|
|
||||||
class operating_conditions_item(object):
|
class operating_conditions_item(object):
|
||||||
def __init__(self, parameter, min, typ, max, units):
|
def __init__(self, parameter, min, typ, max, units):
|
||||||
self.parameter = parameter
|
self.parameter = parameter
|
||||||
self.min = min
|
self.min = min
|
||||||
self.typ = typ
|
self.typ = typ
|
||||||
self.max = max
|
self.max = max
|
||||||
self.units = units
|
self.units = units
|
||||||
|
|
||||||
class timing_and_current_data(Table):
|
class timing_and_current_data(Table):
|
||||||
parameter = Col('Parameter')
|
parameter = Col('Parameter')
|
||||||
min = Col('Min')
|
min = Col('Min')
|
||||||
max = Col('Max')
|
max = Col('Max')
|
||||||
units = Col('Units')
|
units = Col('Units')
|
||||||
|
|
||||||
class timing_and_current_data_item(object):
|
class timing_and_current_data_item(object):
|
||||||
def __init__(self, parameter, min, max, units):
|
def __init__(self, parameter, min, max, units):
|
||||||
self.parameter = parameter
|
self.parameter = parameter
|
||||||
self.min = min
|
self.min = min
|
||||||
self.max = max
|
self.max = max
|
||||||
self.units = units
|
self.units = units
|
||||||
|
|
||||||
class characterization_corners(Table):
|
class characterization_corners(Table):
|
||||||
corner_name = Col('Corner Name')
|
corner_name = Col('Corner Name')
|
||||||
process = Col('Process')
|
process = Col('Process')
|
||||||
power_supply = Col('Power Supply')
|
power_supply = Col('Power Supply')
|
||||||
temperature = Col('Temperature')
|
temperature = Col('Temperature')
|
||||||
library_name_suffix = Col('Library Name Suffix')
|
library_name_suffix = Col('Library Name Suffix')
|
||||||
|
|
||||||
class characterization_corners_item(object):
|
class characterization_corners_item(object):
|
||||||
def __init__(self, corner_name, process, power_supply, temperature, library_name_suffix):
|
def __init__(self, corner_name, process, power_supply, temperature, library_name_suffix):
|
||||||
self.corner_name = corner_name
|
self.corner_name = corner_name
|
||||||
self.process = process
|
self.process = process
|
||||||
self.power_supply = power_supply
|
self.power_supply = power_supply
|
||||||
self.temperature = temperature
|
self.temperature = temperature
|
||||||
self.library_name_suffix = library_name_suffix
|
self.library_name_suffix = library_name_suffix
|
||||||
|
|
||||||
def process_name(corner):
|
def process_name(corner):
|
||||||
if corner == "TT":
|
if corner == "TT":
|
||||||
|
|
@ -207,7 +207,7 @@ class parse():
|
||||||
def __init__(self,in_dir,out_dir):
|
def __init__(self,in_dir,out_dir):
|
||||||
|
|
||||||
if not (os.path.isdir(in_dir)):
|
if not (os.path.isdir(in_dir)):
|
||||||
os.mkdir(in_dir)
|
os.mkdir(in_dir)
|
||||||
|
|
||||||
if not (os.path.isdir(out_dir)):
|
if not (os.path.isdir(out_dir)):
|
||||||
os.mkdir(out_dir)
|
os.mkdir(out_dir)
|
||||||
|
|
@ -221,16 +221,3 @@ class parse():
|
||||||
with open(out_dir + "/" + sheets.name + ".html", 'w+') as f:
|
with open(out_dir + "/" + sheets.name + ".html", 'w+') as f:
|
||||||
with contextlib.redirect_stdout(f):
|
with contextlib.redirect_stdout(f):
|
||||||
sheets.print()
|
sheets.print()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,9 +63,10 @@ class openram_test(openram_test):
|
||||||
files = glob.glob('{0}/*.lib'.format(out_path))
|
files = glob.glob('{0}/*.lib'.format(out_path))
|
||||||
self.assertTrue(len(files)>0)
|
self.assertTrue(len(files)>0)
|
||||||
|
|
||||||
# Make sure there is any .html file
|
# Make sure there is any .html file if characterizer was ran
|
||||||
datasheets = glob.glob('{0}/{1}/*html'.format(OPENRAM_HOME,datasheets))
|
if not OPTS.analytical_delay:
|
||||||
self.assertTrue(len(datasheets)>0)
|
datasheets = glob.glob('{0}/{1}/*html'.format(OPENRAM_HOME,'datasheets'))
|
||||||
|
self.assertTrue(len(datasheets)>0)
|
||||||
|
|
||||||
# grep any errors from the output
|
# grep any errors from the output
|
||||||
output_log = open("{0}/output.log".format(out_path),"r")
|
output_log = open("{0}/output.log".format(out_path),"r")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue