diff --git a/compiler/globals.py b/compiler/globals.py index f19559e2..e67d4c4d 100644 --- a/compiler/globals.py +++ b/compiler/globals.py @@ -100,9 +100,18 @@ def check_versions(): minor_required = 5 if not (major_python_version == major_required and minor_python_version >= minor_required): debug.error("Python {0}.{1} or greater is required.".format(major_required,minor_required),-1) - + # FIXME: Check versions of other tools here?? # or, this could be done in each module (e.g. verify, characterizer, etc.) + global OPTS + + try: + import flask_table + OPTS.datasheet_gen = 1 + except: + debug.warning("flask_table is not installed. HTML datasheet will not be generated") + OPTS.datasheet_gen = 0 + def init_openram(config_file, is_unit_test=True): """Initialize the technology, paths, simulators, etc.""" diff --git a/compiler/openram.py b/compiler/openram.py index 6fc6ec71..2163ae5c 100755 --- a/compiler/openram.py +++ b/compiler/openram.py @@ -40,7 +40,9 @@ import verify from sram import sram from sram_config import sram_config #from parser import * -output_extensions = ["sp","v","lib","html"] +output_extensions = ["sp","v","lib"] +if OPTS.datasheet_gen: + output_extensions.append("html") if not OPTS.netlist_only: output_extensions.extend(["gds","lef"]) output_files = ["{0}.{1}".format(OPTS.output_name,x) for x in output_extensions] diff --git a/compiler/sram.py b/compiler/sram.py index 59b7d7e8..56c7d912 100644 --- a/compiler/sram.py +++ b/compiler/sram.py @@ -109,12 +109,13 @@ class sram(): print_time("LEF", datetime.datetime.now(), start_time) # Write the datasheet - start_time = datetime.datetime.now() - from datasheet_gen import datasheet_gen - dname = OPTS.output_path + self.s.name + ".html" - print("Datasheet: writing to {0}".format(dname)) - datasheet_gen.datasheet_write(dname) - print_time("Datasheet", datetime.datetime.now(), start_time) + if OPTS.datasheet_gen: + start_time = datetime.datetime.now() + from datasheet_gen import datasheet_gen + dname = OPTS.output_path + self.s.name + ".html" + print("Datasheet: writing to {0}".format(dname)) + datasheet_gen.datasheet_write(dname) + print_time("Datasheet", datetime.datetime.now(), start_time) # Write a verilog model start_time = datetime.datetime.now()