コード例 #1
0
ファイル: memgen.py プロジェクト: hoangt/ms3
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)
コード例 #2
0
ファイル: dump.py プロジェクト: hoangt/ms3
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)