From 20c859d45c7c18b0a41b924c80e6e867e1e2ccd5 Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Mon, 17 Jul 2017 00:25:58 +0200 Subject: [PATCH] soc/tools/remote/etherbone: speed optimization (~20/30%) --- litex/soc/tools/remote/etherbone.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/litex/soc/tools/remote/etherbone.py b/litex/soc/tools/remote/etherbone.py index e119d162d..2f95e31d4 100644 --- a/litex/soc/tools/remote/etherbone.py +++ b/litex/soc/tools/remote/etherbone.py @@ -1,5 +1,4 @@ import math -from copy import deepcopy import struct from litex.soc.interconnect.stream_packet import HeaderField, Header @@ -44,14 +43,11 @@ etherbone_record_header = Header(etherbone_record_header_fields, def split_bytes(v, n, endianness="big"): r = [] - r_bytes = v.to_bytes(n, byteorder=endianness) - for byte in r_bytes: - r.append(int(byte)) - return r + return v.to_bytes(n, byteorder=endianness) def merge_bytes(b, endianness="big"): - return int.from_bytes(bytes(b), endianness) + return int.from_bytes(b, endianness) def get_field_data(field, datas): @@ -304,8 +300,8 @@ class EtherbonePacket(Packet): while len(payload) != 0: record = EtherboneRecord(payload) record.decode() - records.append(deepcopy(record)) - payload = record + records.append(record) + payload = record[:] return records def decode(self):