def bit2fasm(db_root, db, grid, bit_file, fasm_file, bitread, part): """ Convert bitstream to FASM file. """ part_yaml = os.path.join(db_root, '{}.yaml'.format(part)) with tempfile.NamedTemporaryFile() as f: bits_file = f.name subprocess.check_output( '{} --part_file {} -o {} -z -y {}'.format( bitread, part_yaml, bits_file, bit_file ), shell=True ) disassembler = fasm_disassembler.FasmDisassembler(db) with open(bits_file) as f: bitdata = bitstream.load_bitdata(f) model = fasm.output.merge_and_sort( disassembler.find_features_in_bitstream(bitdata, verbose=True), zero_function=disassembler.is_zero_feature, sort_key=grid.tile_key, ) with open(fasm_file, 'w') as f: print( fasm.fasm_tuple_to_string(model, canonical=False), end='', file=f )
def bits_to_fasm(db_root, bits_file, verbose, canonical): disassembler = fasm_disassembler.FasmDisassembler(db.Database(db_root)) with open(bits_file) as f: bitdata = bitstream.load_bitdata(f) print( fasm.fasm_tuple_to_string(disassembler.find_features_in_bitstream( bitdata, verbose=verbose), canonical=canonical))
def bits_to_fasm(db_root, bits_file, verbose, canonical): db = Database(db_root) grid = db.grid() disassembler = fasm_disassembler.FasmDisassembler(db) with open(bits_file) as f: bitdata = bitstream.load_bitdata(f) model = fasm.output.merge_and_sort( disassembler.find_features_in_bitstream(bitdata, verbose=verbose), zero_function=disassembler.is_zero_feature, sort_key=grid.tile_key, ) print(fasm.fasm_tuple_to_string(model, canonical=canonical), end='')