def main(): options, args = parser.parse_args() if len(args) < 1: print('ERROR: no model file specified') sys.exit(-1) elif len(args) > 1: print('ERROR: too many model files specified') sys.exit(-1) m = model.parse_model_file(args[0]) if options.best: db = database.get_instance(options.url) best, value, cost = db.get_best(m) if best is None: print('ERROR: Model not found') sys.exit(-1) m.memory = memlist.parse_memory_list(lex.Lexer(StringIO(best))) print('-- Cost: {}, value: {}'.format(cost, value)) name = '-- ' + str(m).replace(') (', ')\n -- (') name = name.replace(')(benchmarks ', ')\n-- (benchmarks ') print(name) for b in m.benchmarks: mem = m.memory.get_subsystem(b.index) if mem.depth < 0: word_size = mem.get_word_size() total_size = b.get_size(options.directory) mem.depth = total_size // word_size assert(mem.depth >= 0) gen = vhdl.VHDLGenerator(m.machine) result = gen.generate(m.memory) print(result)
def dump_spec(db, experiments): names = get_name_map(db, experiments) for mname, _, _ in db.get_status(): key = db.get_hash(mname) if key in names: bname, _, _ = db.get_best(mname) m = model.parse_model(lex.Lexer(StringIO(mname))) m.memory = memlist.parse_memory_list(lex.Lexer(StringIO(bname))) print(m)